From 196e0f4e85f1f69cd20421dcb247bdb368a6b33b Mon Sep 17 00:00:00 2001 From: Hyyan Abo Fakher Date: Wed, 4 Mar 2020 22:25:44 +0100 Subject: [PATCH] feat: add ensureIndexVisible add ensureIndexVisible to Ensure the row index is visible by vertically scrolling the grid and deprecate setVisibleRow --- BBjGridExWidget.bbj | 33 ++++++++++++++++++++++++++---- client/dist/bbj-grid-widget.js | 18 ++++++++++++---- client/dist/bbj-grid-widget.min.js | 2 +- client/dist/report.html | 2 +- client/src/api/rows.js | 15 +++++++++++--- 5 files changed, 57 insertions(+), 13 deletions(-) diff --git a/BBjGridExWidget.bbj b/BBjGridExWidget.bbj index 6e6b646d..8fe17853 100644 --- a/BBjGridExWidget.bbj +++ b/BBjGridExWidget.bbj @@ -2084,7 +2084,27 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns #executeScript(script$) methodend rem /** - rem * Set visible row + rem * Ensures the row index is visible by vertically scrolling the grid + rem * + rem * Ensures the row index is visible by vertically scrolling the grid· + rem * The valid values for positions are {'top', 'middle', 'bottom'}· + rem * If top, middle or bottom, the grid will scroll the row to place the row at top, middle or bottom + rem * + rem *
#API + rem * + rem * @param BBjString key!: the row key + rem * @param BBjString position!: the scrolling position + rem * + rem * @see GRID_ROWPOS_TOP() + rem * @see GRID_ROWPOS_MIDDLE() + rem * @see GRID_ROWPOS_BOTTOM() + rem */ + method public void ensureIndexVisible(BBjString key! , BBjString position!) + script$="gw_ensureIndexVisible('" + #GRIDID$ + "','" + str(key!) + "','" + str(position!) +"');" + #executeScript(script$) + methodend + rem /** + rem * Ensures the row index is visible by vertically scrolling the grid rem * rem * Ensures the row index is visible by vertically scrolling the grid· rem * The valid values for positions are {'top', 'middle', 'bottom'}· @@ -2099,10 +2119,15 @@ class public BBjGridExWidget extends BBjWidget implements BBjGridExWidgetColumns rem * @see GRID_ROWPOS_MIDDLE() rem * @see GRID_ROWPOS_BOTTOM() rem */ + method public void ensureIndexVisible(BBjNumber index! , BBjString position!) + #ensureIndexVisible(str(index!),position!) + methodend + rem /** + rem * @deprecated use ensureIndexVisible instead + rem */ method public void setVisibleRow(BBjNumber index! , BBjString position!) - script$="gw_setVisibleRow('" + #GRIDID$ + "'," + str(index!) + ",'" + str(position!) +"');" - #executeScript(script$) - methodend + #ensureIndexVisible(index!,position!) + methodend rem /** rem * Set visible column· Ensures the column is visible, scrolling the table if needed· rem * diff --git a/client/dist/bbj-grid-widget.js b/client/dist/bbj-grid-widget.js index cc64c129..dd61fc18 100644 --- a/client/dist/bbj-grid-widget.js +++ b/client/dist/bbj-grid-widget.js @@ -24230,7 +24230,7 @@ Object.defineProperty(exports, "__esModule", { exports.gw_setQuickFilter = gw_setQuickFilter; exports.gw_expandAll = gw_expandAll; exports.gw_collapseAll = gw_collapseAll; -exports.gw_setVisibleRow = gw_setVisibleRow; +exports.gw_ensureIndexVisible = gw_ensureIndexVisible; exports.gw_navigateToNextRow = gw_navigateToNextRow; exports.gw_getRowNodeId = gw_getRowNodeId; exports.gw_setRowsData = gw_setRowsData; @@ -24270,9 +24270,19 @@ function gw_expandAll(id) { function gw_collapseAll(id) { (0, _utilities.gw_getGrid)(id).options.api.collapseAll(); } +/** + * Ensures the row index is visible by vertically scrolling the grid + * + * @param {String} id the grid's id + * @param {String|Number} index the row index or key + * @param {String} position {'top', 'middle', 'bottom', undefined/null} + */ + -function gw_setVisibleRow(id, index, position) { - (0, _utilities.gw_getGrid)(id).options.api.ensureIndexVisible(index, position); +function gw_ensureIndexVisible(id, index, position) { + var api = (0, _utilities.gw_getGrid)(id).options.api; + var rowId = api.getRowNode(index).rowIndex; + api.ensureIndexVisible(rowId, position); } function gw_navigateToNextRow(id, params) { @@ -25578,4 +25588,4 @@ module.exports = __webpack_require__(/*! ./src/index.js */"./src/index.js"); /***/ }) /******/ }))); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vLi4vLi4vYmFzaXMtaW5wdXQtbWFza2luZy9ub2RlX21vZHVsZXMvYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrL051bWJlck1hc2suanMiLCJ3ZWJwYWNrOi8vLy4vLi4vLi4vYmFzaXMtaW5wdXQtbWFza2luZy9ub2RlX21vZHVsZXMvYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrL2luZGV4LmpzIiwid2VicGFjazovLy8uLy4uLy4uL2Jhc2lzLWlucHV0LW1hc2tpbmcvbm9kZV9tb2R1bGVzL2Jiai1tYXNrcy9zcmMvU3RyaW5nTWFzay9TdHJpbmdNYXNrLmpzIiwid2VicGFjazovLy8uLy4uLy4uL2Jhc2lzLWlucHV0LW1hc2tpbmcvbm9kZV9tb2R1bGVzL2Jiai1tYXNrcy9zcmMvU3RyaW5nTWFzay9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9zdHlsZXMvYWctZ3JpZC5jc3M/YjQzNiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9zdHlsZXMvYWctdGhlbWUtYmFsaGFtLWRhcmsuY3NzP2NkYzEiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L2Rpc3Qvc3R5bGVzL2FnLXRoZW1lLWJhbGhhbS5jc3M/YjkzMCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9zdHlsZXMvYWctdGhlbWUtbWF0ZXJpYWwuY3NzPzExYWUiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrOi93ZWJwYWNrL2Jvb3RzdHJhcCA5OTA1NGJkNzlmMjNlYTBmMDk4OCIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQ29tcG9uZW50L2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9jb3JlLWRlY29yYXRvcnMvc3JjL2F1dG9iaW5kLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9jb3JlLWRlY29yYXRvcnMvc3JjL292ZXJyaWRlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VHZXRUYWcuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc09iamVjdExpa2UuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvY29yZS1kZWNvcmF0b3JzL3NyYy9wcml2YXRlL3V0aWxzLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU3ltYm9sLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Jvb3QuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lcS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlMaWtlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vX2xpYi90b0ludGVnZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VzbS9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhblN3aXRjaC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvVGVtcGxhdGVSZW5kZXJlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0Z1bmN0aW9uLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2ZyZWVHbG9iYWwuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VSZXN0LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXBwbHkuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNJdGVyYXRlZUNhbGwuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0xlbmd0aC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TGlrZUtleXMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL2hhcm1vbnktbW9kdWxlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzUHJvdG90eXBlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNFcnJvci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyQXJnLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TWFwLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlSW50ZXJwb2xhdGUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvY29yZS1kZWNvcmF0b3JzL3NyYy9yZWFkb25seS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvZGF0ZS1mbnMtdHovZXNtL3V0Y1RvWm9uZWRUaW1lL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy10ei9lc20vX2xpYi90elBhcnNlVGltZXpvbmUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0V2ZW50c01peGluL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlVGltZUlucHV0L2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhbkVkaXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhbkVkaXRvci9Cb29sZWFuRWRpdG9yLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9Db21wb25lbnQvQ29tcG9uZW50LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9Cb29sZWFuU3dpdGNoL0Jvb2xlYW5Td2l0Y2guanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2NvcmUtZGVjb3JhdG9ycy9zcmMvbGF6eS1pbml0aWFsaXplLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9Cb29sZWFuU3dpdGNoL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0Jvb2xlYW5Td2l0Y2gvc3R5bGUuc2Nzcz84ZjAyIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL3VybHMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0Jvb2xlYW5SZW5kZXJlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhblJlbmRlcmVyL0Jvb2xlYW5SZW5kZXJlci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhbkZpbHRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhbkZpbHRlci9Cb29sZWFuRmlsdGVyLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9Cb29sZWFuRmlsdGVyL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0Jvb2xlYW5GaWx0ZXIvc3R5bGUuc2Nzcz84MmRiIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9OdW1iZXJFZGl0b3IvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL051bWJlckVkaXRvci9OdW1iZXJFZGl0b3IuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL051bWJlckVkaXRvci9zdHlsZS5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9OdW1iZXJFZGl0b3Ivc3R5bGUuc2Nzcz80YjdjIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UZXh0RWRpdG9yL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UZXh0RWRpdG9yL1RleHRFZGl0b3IuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL1RleHRFZGl0b3Ivc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvVGV4dEVkaXRvci9zdHlsZS5zY3NzPzEzYzEiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL1RlbXBsYXRlUmVuZGVyZXIvVGVtcGxhdGVSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RlbXBsYXRlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXNzaWduSW5XaXRoLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcHlPYmplY3QuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0TmF0aXZlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc05hdGl2ZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRSYXdUYWcuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fb2JqZWN0VG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNNYXNrZWQuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29yZUpzRGF0YS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRWYWx1ZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVBc3NpZ25lci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyUmVzdC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zZXRUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU2V0VG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb25zdGFudC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zaG9ydE91dC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXNJbi5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVGltZXMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FyZ3VtZW50cy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0J1ZmZlci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJGYWxzZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNUeXBlZEFycmF5LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VVbmFyeS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19ub2RlVXRpbC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5c0luLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2F0dGVtcHQuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1BsYWluT2JqZWN0LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVmFsdWVzLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2N1c3RvbURlZmF1bHRzQXNzaWduSW4uanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXNjYXBlU3RyaW5nQ2hhci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbmF0aXZlS2V5cy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RlbXBsYXRlU2V0dGluZ3MuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lc2NhcGUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXNjYXBlSHRtbENoYXIuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVByb3BlcnR5T2YuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVRvU3RyaW5nLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNTeW1ib2wuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcmVFc2NhcGUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcmVFdmFsdWF0ZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvSW1hZ2VSZW5kZXJlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvSW1hZ2VSZW5kZXJlci9JbWFnZVJlbmRlcmVyLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlVGltZUZpbHRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvRGF0ZVRpbWVGaWx0ZXIvRGF0ZVRpbWVGaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2RhdGUtZm5zLXR6L2VzbS9fbGliL3R6VG9rZW5pemVEYXRlL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vc3ViTWlsbGlzZWNvbmRzL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vYWRkTWlsbGlzZWNvbmRzL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vdG9EYXRlL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy10ei9lc20vdG9EYXRlL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9FdmVudHNNaXhpbi9FdmVudHNNaXhpbi5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvRGF0ZVRpbWVJbnB1dC9EYXRlVGltZUlucHV0LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlVGltZUlucHV0L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0RhdGVUaW1lSW5wdXQvc3R5bGUuc2Nzcz9jNzMyIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlVGltZUVkaXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvRGF0ZVRpbWVFZGl0b3IvRGF0ZVRpbWVFZGl0b3IuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6L3dlYnBhY2svYm9vdHN0cmFwIDBlNDFkYTFlODgzMDAzZmI4ZjI5Iiwid2VicGFjazovLy93ZWJwYWNrOi9leHRlcm5hbCB7XCJjb21tb25qc1wiOlwiYmJqLW1hc2tzL3NyYy9TdHJpbmdNYXNrXCIsXCJjb21tb25qczJcIjpcImJiai1tYXNrcy9zcmMvU3RyaW5nTWFza1wiLFwiYW1kXCI6XCJiYmotbWFza3Mvc3JjL1N0cmluZ01hc2tcIixcInJvb3RcIjpbXCJCQmpcIixcIk1hc2tzXCIsXCJTdHJpbmdNYXNrXCJdfSIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvVGV4dElucHV0L2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UZXh0SW5wdXQvVGV4dElucHV0LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UZXh0SW5wdXQvdG9vbHMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL051bWJlcklucHV0L2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9OdW1iZXJJbnB1dC9OdW1iZXJJbnB1dC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovZXh0ZXJuYWwge1wiY29tbW9uanNcIjpcImJiai1tYXNrcy9zcmMvTnVtYmVyTWFza1wiLFwiY29tbW9uanMyXCI6XCJiYmotbWFza3Mvc3JjL051bWJlck1hc2tcIixcImFtZFwiOlwiYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrXCIsXCJyb290XCI6W1wiQkJqXCIsXCJNYXNrc1wiLFwiTnVtYmVyTWFza1wiXX0iLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6L3dlYnBhY2svYm9vdHN0cmFwIGVmZWY4N2EwMWMzZWQyMmNhMzU4Iiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9OdW1iZXJNYXNrL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlTWFzay9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvU3RyaW5nTWFzay9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvTnVtYmVyTWFzay9OdW1iZXJNYXNrLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlTWFzay9EYXRlTWFzay5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvd2Vla3N0YXJ0L2Rpc3QvZXMtbW9kdWxlL21haW4uanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3dlZWtzdGFydC9kaXN0L2VzLW1vZHVsZS9hcGkuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3dlZWtzdGFydC9kaXN0L2VzLW1vZHVsZS9sYW5nUmVnaW9uTWFwLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy93ZWVrc3RhcnQvZGlzdC9lcy1tb2R1bGUvcmVnaW9uRGF5TWFwLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9TdHJpbmdNYXNrL1N0cmluZ01hc2suanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL1R5cGVzL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UeXBlcy9UeXBlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanNzL2pzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9hcnJheS9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9hcnJheS9pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9udW1iZXIvaXMtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9zdHJpbmcvc3RhcnRzLXdpdGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYS1mdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hZGQtdG8tdW5zY29wYWJsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYW4tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LW1ldGhvZHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fY29yZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jdHguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kb20tY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2V4cG9ydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mYWlscy1pcy1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZmFpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZnVuY3Rpb24tdG8tc3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19oYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faGlkZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLWFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLXJlZ2V4cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19saWJyYXJ5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1kcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19wcm9wZXJ0eS1kZXNjLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3JlZGVmaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NoYXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpY3QtbWV0aG9kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3N0cmluZy1jb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8taW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL191aWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fd2tzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5LmZvci1lYWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci5pcy1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy5zdGFydHMtd2l0aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5hcnJheS5pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZGVlcC1wYXJzZS1qc29uL2luZGV4LmpzIiwid2VicGFjazovLy9EOi9HaXRodWIvYmJqLW1hc2tzL2Rpc3QvYmJqLW1hc2tzLmpzLWV4cG9zZWQiLCJ3ZWJwYWNrOi8vL0Q6L0dpdGh1Yi9iYXNpcy1hZ2dyaWQtY29tcG9uZW50cy9kaXN0L2Jhc2lzLWFnZ3JpZC1jb21wb25lbnRzLmpzLWV4cG9zZWQiLCJ3ZWJwYWNrOi8vL0Q6L0dpdGh1Yi9iYXNpcy1pbnB1dC1tYXNraW5nL2Rpc3QvYmFzaXMtaW5wdXQtbWFza2luZy5qcy1leHBvc2VkIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qc3MvanNzLmpzLWV4cG9zZWQiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ZsYXRwaWNrci9kaXN0L2ZsYXRwaWNrci5jc3M/N2I2OCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXBwbHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlMaWtlS2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheU1hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25WYWx1ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUdldFRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTmF0aXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc1R5cGVkQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXNJbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUHJvcGVydHlPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUmVzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU2V0VG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVRpbWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVW5hcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVZhbHVlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcmVKc0RhdGEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlQXNzaWduZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3VzdG9tRGVmYXVsdHNBc3NpZ25Jbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lc2NhcGVIdG1sQ2hhci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lc2NhcGVTdHJpbmdDaGFyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2ZyZWVHbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0TmF0aXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRSYXdUYWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0VmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNJbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0l0ZXJhdGVlQ2FsbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc01hc2tlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19ub2RlVXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyQXJnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX292ZXJSZXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlRXNjYXBlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlRXZhbHVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcmVJbnRlcnBvbGF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yb290LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3NldFRvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Nob3J0T3V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3RvU291cmNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXNzaWduSW5XaXRoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXR0ZW1wdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2NvbnN0YW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZXEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lc2NhcGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pZGVudGl0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJndW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlMaWtlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0Vycm9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTGVuZ3RoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc09iamVjdExpa2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1BsYWluT2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNTeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1R5cGVkQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9rZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5c0luLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YkZhbHNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGVtcGxhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90ZW1wbGF0ZVNldHRpbmdzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L2Rpc3Qvc3R5bGVzL2FnLWdyaWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9kaXN0L3N0eWxlcy9hZy10aGVtZS1iYWxoYW0tZGFyay5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L2Rpc3Qvc3R5bGVzL2FnLXRoZW1lLWJhbGhhbS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L2Rpc3Qvc3R5bGVzL2FnLXRoZW1lLW1hdGVyaWFsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZmxhdHBpY2tyL2Rpc3QvZmxhdHBpY2tyLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGUvY2xhc3Nlcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL3VybHMuanMiLCJ3ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvY2VsbHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS9jaGFydHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS9jb2x1bW5zLmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvY29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvaW5pdC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2pzcy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvYXBpL21lbnVzLmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvb3ZlcmxheXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS9yb3dzLmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvc3RhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS9zdGF0dXNiYXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS90b29scGFuZWwuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS91dGlsaXRpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V2ZW50cy9jb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V2ZW50cy9lZGl0aW5nLmpzIiwid2VicGFjazovLy8uL3NyYy9ldmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V2ZW50cy9rZXlib2FyZC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvZXZlbnRzL3JlYWR5LmpzIiwid2VicGFjazovLy8uL3NyYy9ldmVudHMvc2VsZWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvZXZlbnRzL3N0YXRlLmpzIiwid2VicGFjazovLy8uL3NyYy9ldmVudHMvdXRpbGl0aWVzLmpzIiwid2VicGFjazovLy8uL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcG9seWZpbGxzLmpzIiwid2VicGFjazovLy8uL3NyYy9zdHlsZS9jbGFzc2VzLmNzcz9iNzM4Il0sIm5hbWVzIjpbIk51bWJlck1hc2siLCJudW1iZXIiLCJtYXNrIiwiZ3JvdXBpbmdTZXBhcmF0b3IiLCJkZWNpbWFsU2VwYXJhdG9yIiwiZm9yY2VUcmFpbGluZ1plcm9zIiwibG9vc2UiLCJtYXNrTGVuIiwibGVuZ3RoIiwic3RyIiwibmFtZSIsIm1lc3NhZ2UiLCJtYXNrQmVmb3JlRGVjaW1hbCIsIm1hc2tBZnRlckRlY2ltYWwiLCJmb3VuZERlY2ltYWwiLCJpIiwibSIsImNoYXJBdCIsIm51bSIsIl9yb3VuZCIsImJ5dGVzIiwiX3RvQ2hhckFycmF5IiwiaW5MZW4iLCJudW1CZWZvcmVEZWNpbWFsIiwibnVtQWZ0ZXJEZWNpbWFsIiwidG9TdHJpbmciLCJmaWxsQnl0ZSIsImZsb2F0Qnl0ZSIsImluUG9zIiwib3V0UG9zIiwiZmxvYXRQb3MiLCJmaWxsSW5pdCIsImlzTmVnYXRpdmUiLCJfZ2V0U2lnbiIsImVtaXREZWNpbWFsIiwiaW5kZXhPZiIsImZvdW5kWmVybyIsImZvdW5kRGlnaXQiLCJjdXJyZW5jeSIsInJldCIsIkFycmF5IiwibWFza1BvcyIsImpvaW4iLCJwcmVjaXNpb24iLCJyZXZlcnNlU2hpZnQiLCJudW1BcnJheSIsInNwbGl0IiwiX3NoaWZ0IiwiTWF0aCIsInJvdW5kIiwic2lnbnVtIiwiY2hhcnMiLCJzdHJpbmciLCJzdWJzdHJpbmciLCJ4IiwiaXNOdW1iZXJSZWdleCIsImlzV2hpdGVzcGFjZVJlZ2V4IiwicHVuY3R1YXRpb25MaXN0IiwiaXNMb3dlckNhc2UiLCJ0b0xvd2VyQ2FzZSIsInRvVXBwZXJDYXNlIiwiaXNVcHBlckNhc2UiLCJwYXNzT3JUaHJvd0Vycm9yIiwiY2hhciIsInBvcyIsIlN0cmluZ01hc2siLCJTdHJpbmciLCJzdHJMZW4iLCJtYXNrQnl0ZSIsImJ5dGUiLCJ0ZXN0IiwiQ29tcG9uZW50IiwiZGVmaW5lUHJvcGVydHkiLCJPYmplY3QiLCJnZXRQcm90b3R5cGVPZiIsImZuIiwibWFwU3RvcmUiLCJzdXBlclN0b3JlIiwiYmluZCIsImRlc2NzIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImtsYXNzIiwia2V5cyIsImdldE93bktleXMiLCJsIiwia2V5IiwiZGVzYyIsImF1dG9iaW5kTWV0aG9kIiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwiY29uc3RydWN0b3IiLCJ0YXJnZXQiLCJnZXQiLCJnZXRCb3VuZFN1cGVyIiwiYm91bmRGbiIsIndyaXRhYmxlIiwic2V0IiwiY3JlYXRlRGVmYXVsdFNldHRlciIsImFyZ3MiLCJhdXRvYmluZENsYXNzIiwiaGFuZGxlIiwiR0VORVJJQ19GVU5DVElPTl9FUlJPUiIsIkZVTkNUSU9OX1JFR0VYUCIsIlN5bnRheEVycm9yUmVwb3J0ZXIiLCJkZXNjcmlwdG9yIiwidG9waWMiLCJwYXJhbXMiLCJwYXJlbnRLbGFzcyIsImNoaWxkS2xhc3MiLCJwYXJlbnREZXNjcmlwdG9yIiwiY2hpbGREZXNjcmlwdG9yIiwiY29uZGl0aW9uIiwibXNnIiwicmVwb3J0ZXIiLCJwYXJlbnQiLCJjaGlsZCIsInBhcmVudFZhbHVlVHlwZSIsImNoaWxkVmFsdWVUeXBlIiwiaXNGdW5jdGlvbk92ZXJVbmRlZmluZWQiLCJjaGVja0Z1bmN0aW9uU2lnbmF0dXJlcyIsInBhcmVudEhhc0dldHRlciIsImNoaWxkSGFzR2V0dGVyIiwicGFyZW50SGFzU2V0dGVyIiwiY2hpbGRIYXNTZXR0ZXIiLCJwYXJlbnRUeXBlIiwiZ2V0RGVzY3JpcHRvclR5cGUiLCJjaGlsZFR5cGUiLCJjaGVja0RhdGFEZXNjcmlwdG9ycyIsImNoZWNrQWNjZXNzb3JEZXNjcmlwdG9ycyIsInN1Z2dlc3Rpb25UcmFuc2Zvcm1zIiwic3VnZ2VzdGlvbiIsInN1cGVyS2xhc3MiLCJzdXBlckRlc2NyaXB0b3IiLCJzdWdnZXN0ZWRLZXkiLCJmaW5kUG9zc2libGVBbHRlcm5hdGl2ZXMiLCJjaGVja0Rlc2NyaXB0b3JzIiwiZGVjb3JhdGUiLCJudWxsVGFnIiwidW5kZWZpbmVkVGFnIiwic3ltVG9TdHJpbmdUYWciLCJTeW1ib2wiLCJnZXRSYXdUYWciLCJvYmplY3RUb1N0cmluZyIsImJhc2VHZXRUYWciLCJpc09iamVjdExpa2UiLCJtb2R1bGUiLCJsaXN0IiwiY29udGVudCIsImNzc1dpdGhNYXBwaW5nVG9TdHJpbmciLCJpdGVtIiwibW9kdWxlcyIsImFscmVhZHlJbXBvcnRlZE1vZHVsZXMiLCJpZCIsIm1lZGlhUXVlcnkiLCJjc3NNYXBwaW5nIiwidXNlU291cmNlTWFwIiwic291cmNlTWFwcGluZyIsInRvQ29tbWVudCIsInNvdXJjZVVSTHMiLCJiYXNlNjQiLCJidG9hIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJKU09OIiwiZGF0YSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldE93blByb3BlcnR5TmFtZXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpc0Rlc2NyaXB0b3IiLCJlbnRyeUFyZ3MiLCJoYW5kbGVEZXNjcmlwdG9yIiwiTWV0YSIsImxhenlJbml0aWFsaXplIiwiTUVUQV9LRVkiLCJvYmoiLCJuZXdWYWx1ZSIsIndhcm4iLCJjb25zb2xlIiwic2VlbkRlcHJlY2F0aW9ucyIsInR5cGUiLCJpc09iamVjdCIsInJvb3QiLCJmcmVlU2VsZiIsInNlbGYiLCJmcmVlR2xvYmFsIiwiRnVuY3Rpb24iLCJvdGhlciIsImVxIiwiaXNMZW5ndGgiLCJpc0Z1bmN0aW9uIiwiaXNBcnJheUxpa2UiLCJkaXJ0eU51bWJlciIsIk51bWJlciIsImlzTmFOIiwicmVxdWlyZWQiLCJCb29sZWFuU3dpdGNoIiwiVGVtcGxhdGVSZW5kZXJlciIsIm9iamVjdCIsImJhc2VBc3NpZ25WYWx1ZSIsImZ1bmMiLCJnZXROYXRpdmUiLCJhc3luY1RhZyIsImZ1bmNUYWciLCJnZW5UYWciLCJwcm94eVRhZyIsInRhZyIsImdsb2JhbCIsImciLCJzZXRUb1N0cmluZyIsIm92ZXJSZXN0IiwiaWRlbnRpdHkiLCJiYXNlUmVzdCIsImFwcGx5IiwiaXNJbmRleCIsImluZGV4IiwiaXNJdGVyYXRlZUNhbGwiLCJNQVhfU0FGRV9JTlRFR0VSIiwicmVJc1VpbnQiLCJvYmplY3RQcm90byIsImhhc093blByb3BlcnR5IiwiaXNBcnIiLCJpc0FycmF5IiwiaXNBcmciLCJpc0FyZ3VtZW50cyIsImlzQnVmZiIsImlzQnVmZmVyIiwiaXNUeXBlIiwiaXNUeXBlZEFycmF5Iiwic2tpcEluZGV4ZXMiLCJyZXN1bHQiLCJiYXNlVGltZXMiLCJpbmhlcml0ZWQiLCJhcnJheUxpa2VLZXlzIiwib3JpZ2luYWxNb2R1bGUiLCJDdG9yIiwicHJvdG8iLCJpc1Byb3RvdHlwZSIsImRvbUV4Y1RhZyIsImVycm9yVGFnIiwiaXNQbGFpbk9iamVjdCIsImlzRXJyb3IiLCJ0cmFuc2Zvcm0iLCJvdmVyQXJnIiwiYXJyYXkiLCJpdGVyYXRlZSIsImFycmF5TWFwIiwicmVJbnRlcnBvbGF0ZSIsImJhc2VUb1N0cmluZyIsImRhdGUiLCJ0b0RhdGUiLCJ1dGNEYXRlIiwib2Zmc2V0TWlsbGlzZWNvbmRzIiwidHpQYXJzZVRpbWV6b25lIiwic3ViTWlsbGlzZWNvbmRzIiwiTUlMTElTRUNPTkRTX0lOX0hPVVIiLCJNSUxMSVNFQ09ORFNfSU5fTUlOVVRFIiwicGF0dGVybnMiLCJ0aW1lem9uZSIsInRpbWV6b25lWiIsInRpbWV6b25lSEgiLCJ0aW1lem9uZUhITU0iLCJ0aW1lem9uZUlBTkEiLCJ0b2tlbiIsImhvdXJzIiwicGFyc2VJbnQiLCJ2YWxpZGF0ZVRpbWV6b25lIiwiYWJzb2x1dGVPZmZzZXQiLCJtaW51dGVzIiwidG9rZW5zIiwidHpUb2tlbml6ZURhdGUiLCJhc1VUQyIsIkRhdGUiLCJ0aW1lc3RhbXBXaXRoTXNaZXJvZWQiLCJFdmVudHNNaXhpbiIsIkRhdGVUaW1lSW5wdXQiLCJCb29sZWFuRWRpdG9yIiwiQm9vbGVhbiIsImtleVByZXNzQmFja3NwYWNlT3JEZWxldGUiLCJzd2l0Y2hlciIsInRydWVWYWx1ZSIsImZhbHNlVmFsdWUiLCJ2YWx1ZUFzU3RyaW5nIiwiX2d1aSIsImZhbGxiYWNrIiwib3B0aW9uIiwiQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZyIsImNvbnRleHQiLCJ3aW4iLCJkb2MiLCJpbml0aWFsVmFsdWUiLCJsaXN0ZW5lciIsImJvb2xTd2l0Y2giLCJkb2N1bWVudCIsImxhYmVsIiwiZSIsIm92ZXJyaWRlIiwiYXV0b2JpbmQiLCJpbml0aWFsaXplciIsInJlcXVpcmUiLCJvcHRpb25zIiwid2luZG93IiwidXBkYXRlIiwibG9jYXRpb24iLCJiYXNlVXJsIiwiY3VycmVudERpciIsImZpeGVkQ3NzIiwidW5xdW90ZWRPcmlnVXJsIiwibmV3VXJsIiwiQm9vbGVhblJlbmRlcmVyIiwiaXNJbml0IiwiYm9vbGVhblRydWVSZW5kZXJWYWx1ZSIsImJvb2xlYW5GYWxzZVJlbmRlclZhbHVlIiwiYm9vbGVhblRydWVWYWx1ZSIsImJvb2xlYW5GYWxzZVZhbHVlIiwiQm9vbGVhbkZpbHRlciIsInRvVGl0bGVDYXNlIiwid29yZCIsInN0cmlwSFRNTCIsInRtcCIsIl9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24iLCJ0cmFuc2xhdGUiLCJpc0NsZWFyRmlsdGVyIiwiaXNSZXNldEJ1dHRvbiIsImlzQXBwbHlCdXR0b24iLCJyZXNldCIsImJvZHkiLCJhcHBseUZpbHRlclBhbmVsIiwibW9kZWwiLCJfZmlsdGVyVGV4dCIsImZpbHRlclRleHRBc1N0cmluZyIsIk51bWJlckVkaXRvciIsIm1pbiIsIm1heCIsInN0ZXAiLCJzdGFydFZhbHVlIiwiQmFzaXMiLCJlbGVtZW50cyIsIm9uVXBkYXRlIiwib25JbnZhbGlkIiwiaW5wdXQiLCJjYXN0ZWQiLCJldmVudCIsImlzVmFsaWQiLCJUZXh0RWRpdG9yIiwicGF0dGVybiIsInRpdGxlIiwidGVtcGxhdGUiLCJyZUVtcHR5U3RyaW5nTGVhZGluZyIsInJlRW1wdHlTdHJpbmdNaWRkbGUiLCJyZUVtcHR5U3RyaW5nVHJhaWxpbmciLCJyZUVzVGVtcGxhdGUiLCJyZU5vTWF0Y2giLCJyZVVuZXNjYXBlZFN0cmluZyIsInNldHRpbmdzIiwidGVtcGxhdGVTZXR0aW5ncyIsImd1YXJkIiwiYXNzaWduSW5XaXRoIiwiY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiIsImltcG9ydHMiLCJpbXBvcnRzS2V5cyIsImltcG9ydHNWYWx1ZXMiLCJiYXNlVmFsdWVzIiwiaW50ZXJwb2xhdGUiLCJzb3VyY2UiLCJyZURlbGltaXRlcnMiLCJSZWdFeHAiLCJzb3VyY2VVUkwiLCJpbnRlcnBvbGF0ZVZhbHVlIiwiZXNjYXBlU3RyaW5nQ2hhciIsImlzRXNjYXBpbmciLCJpc0V2YWx1YXRpbmciLCJvZmZzZXQiLCJtYXRjaCIsInZhcmlhYmxlIiwiYXR0ZW1wdCIsImNyZWF0ZUFzc2lnbmVyIiwiY29weU9iamVjdCIsImtleXNJbiIsImlzTmV3IiwicHJvcHMiLCJjdXN0b21pemVyIiwiYXNzaWduVmFsdWUiLCJvYmpWYWx1ZSIsImdldFZhbHVlIiwiYmFzZUlzTmF0aXZlIiwicmVSZWdFeHBDaGFyIiwicmVJc0hvc3RDdG9yIiwiZnVuY1Byb3RvIiwiZnVuY1RvU3RyaW5nIiwicmVJc05hdGl2ZSIsImlzTWFza2VkIiwidG9Tb3VyY2UiLCJuYXRpdmVPYmplY3RUb1N0cmluZyIsImlzT3duIiwidW5tYXNrZWQiLCJtYXNrU3JjS2V5IiwidWlkIiwiY29yZUpzRGF0YSIsInNvdXJjZXMiLCJhc3NpZ25lciIsIm5hdGl2ZU1heCIsInN0YXJ0Iiwib3RoZXJBcmdzIiwic2hvcnRPdXQiLCJiYXNlU2V0VG9TdHJpbmciLCJjb25zdGFudCIsIkhPVF9DT1VOVCIsIkhPVF9TUEFOIiwibmF0aXZlTm93IiwiY291bnQiLCJsYXN0Q2FsbGVkIiwic3RhbXAiLCJyZW1haW5pbmciLCJhcmd1bWVudHMiLCJiYXNlS2V5c0luIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJiYXNlSXNBcmd1bWVudHMiLCJhcmdzVGFnIiwiZnJlZUV4cG9ydHMiLCJleHBvcnRzIiwiZnJlZU1vZHVsZSIsIm1vZHVsZUV4cG9ydHMiLCJCdWZmZXIiLCJuYXRpdmVJc0J1ZmZlciIsInN0dWJGYWxzZSIsIm5vZGVJc1R5cGVkQXJyYXkiLCJub2RlVXRpbCIsImJhc2VVbmFyeSIsImJhc2VJc1R5cGVkQXJyYXkiLCJhcnJheVRhZyIsImJvb2xUYWciLCJkYXRlVGFnIiwibWFwVGFnIiwibnVtYmVyVGFnIiwib2JqZWN0VGFnIiwicmVnZXhwVGFnIiwic2V0VGFnIiwic3RyaW5nVGFnIiwid2Vha01hcFRhZyIsImFycmF5QnVmZmVyVGFnIiwiZGF0YVZpZXdUYWciLCJmbG9hdDMyVGFnIiwiZmxvYXQ2NFRhZyIsImludDhUYWciLCJpbnQxNlRhZyIsImludDMyVGFnIiwidWludDhUYWciLCJ1aW50OENsYW1wZWRUYWciLCJ1aW50MTZUYWciLCJ1aW50MzJUYWciLCJ0eXBlZEFycmF5VGFncyIsImZyZWVQcm9jZXNzIiwidHlwZXMiLCJuYXRpdmVLZXlzSW4iLCJpc1Byb3RvIiwib2JqZWN0Q3RvclN0cmluZyIsImdldFByb3RvdHlwZSIsInN0cmluZ0VzY2FwZXMiLCJiYXNlS2V5cyIsIm5hdGl2ZUtleXMiLCJyZUVzY2FwZSIsInJlRXZhbHVhdGUiLCJlc2NhcGUiLCJyZVVuZXNjYXBlZEh0bWwiLCJyZUhhc1VuZXNjYXBlZEh0bWwiLCJlc2NhcGVIdG1sQ2hhciIsImh0bWxFc2NhcGVzIiwiYmFzZVByb3BlcnR5T2YiLCJJTkZJTklUWSIsInN5bWJvbFByb3RvIiwic3ltYm9sVG9TdHJpbmciLCJpc1N5bWJvbCIsInN5bWJvbFRhZyIsIkltYWdlUmVuZGVyZXIiLCJpbWFnZVdpZHRoIiwiaW1hZ2VIZWlnaHQiLCJpbWFnZUxpc3QiLCJEYXRlVGltZUZpbHRlciIsIlRPS0VOUyIsIlRPS0VOX0VRVUFMIiwiVE9LRU5fTk9UX0VRVUFMIiwiVE9LRU5fTEVTUyIsIlRPS0VOX0dSRUFURVIiLCJUT0tFTl9SQU5HRSIsIlRPS0VOX0FORCIsIlRPS0VOX09SIiwiQ29uZGl0aW9uUGFuZWwiLCJ3aXRoRXZlbnRzTWl4aW4iLCJfZmlsdGVyVGltZUlucHV0IiwiX2ZpbHRlclRvRGF0ZVRpbWVJbnB1dCIsIl9maWx0ZXJPcHRpb25zIiwiX2RlZmF1bHRPcHRpb24iLCJvcHRpb25zVHJhbnNsYXRpb25zIiwic2VsZWN0Iiwic3RhdGUiLCJndWkiLCJmaWx0ZXJPcHRpb25zIiwic2VsZWN0RWwiLCJmaWx0ZXJJbnB1dCIsImZpbHRlclRvSW5wdXQiLCJldnQiLCJlbCIsImZpbHRlckRhdGVUbyIsIk9OX0NPTkRJVElPTl9DSEFOR0VEIiwicmVhZG9ubHkiLCJmaWx0ZXIiLCJmaWx0ZXJUbyIsIkpvaW5Db25kaXRpb25QYW5lbCIsIl9maXJzdENvbmRpdGlvblBhbmVsIiwiX3NlY29uZENvbmRpdGlvblBhbmVsIiwiX29wZXJhdG9yUGFuZWwiLCJfcGFyYW1zIiwic3VwcHJlc3NBbmRPckNvbmRpdGlvbiIsInNlY29uZENvbmRpdGlvbkd1aSIsIm9wZXJhdG9yUGFuZWxHdWkiLCJPTl9KT0lOX0NPTkRJVElPTl9DSEFOR0VEIiwiY29uZGl0aW9uMSIsImNvbmRpdGlvbjIiLCJvcGVyYXRvciIsIl9Kb2luQ29uZGl0aW9uUGFuZWwiLCJfc3RhdGUiLCJfZG9lc0ZpbHRlclBhc3NPcHRpb25zIiwiZW5hYmxlVGltZSIsImluUmFuZ2VJbmNsdXNpdmUiLCJ2YWx1ZUdldHRlciIsImRvZXNQYXNzRmlyc3RDb25kaXRpb24iLCJkb2VzUGFzc1NlY29uZENvbmRpdGlvbiIsImNsb25lIiwiZGF0ZVRpbWVNYXNrIiwibG9jYWxlIiwiSW50bCIsIkJCaiIsImZpcnN0Q29uZGl0aW9uQXNTdHJpbmciLCJzZWNvbmRDb25kaXRpb25Bc1N0cmluZyIsIm9wZXJhdG9yQXNTdHJpbmciLCJwYXNzZWQiLCJ1dGNUb1pvbmVkVGltZSIsImlzQXBwbHlCdXR0b25BY3RpdmUiLCJkdGYiLCJnZXREYXRlVGltZUZvcm1hdCIsInBhcnRzT2Zmc2V0IiwiaGFja3lPZmZzZXQiLCJ0eXBlVG9Qb3MiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VyIiwibWludXRlIiwic2Vjb25kIiwiZm9ybWF0dGVkIiwiZmlsbGVkIiwicGFyc2VkIiwiZHRmQ2FjaGUiLCJ0ZXN0RGF0ZUZvcm1hdHRlZCIsImhvdXIxMiIsInRpbWVab25lIiwiaG91ckN5Y2xlU3VwcG9ydGVkIiwiaG91ckN5Y2xlIiwicmVxdWlyZWRBcmdzIiwiYW1vdW50IiwidG9JbnRlZ2VyIiwiYWRkTWlsbGlzZWNvbmRzIiwidGltZXN0YW1wIiwiYXJnU3RyIiwiYXJndW1lbnQiLCJERUZBVUxUX0FERElUSU9OQUxfRElHSVRTIiwiZGF0ZVRpbWVEZWxpbWV0ZXIiLCJwbGFpblRpbWUiLCJ0aW1lWm9uZURlbGltZXRlciIsIllZIiwiWVlZIiwiWVlZWSIsIllZWVlZIiwiTU0iLCJEREQiLCJNTUREIiwiV3d3IiwiV3d3RCIsIkhIIiwiSEhNTSIsIkhITU1TUyIsImRpcnR5T3B0aW9ucyIsImFkZGl0aW9uYWxEaWdpdHMiLCJkYXRlU3RyaW5ncyIsInNwbGl0RGF0ZVN0cmluZyIsInBhcnNlWWVhclJlc3VsdCIsInBhcnNlWWVhciIsInJlc3REYXRlU3RyaW5nIiwicGFyc2VEYXRlIiwidGltZSIsInBhcnNlVGltZSIsImdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMiLCJkYXRlU3RyaW5nIiwidGltZVN0cmluZyIsInBhdHRlcm5ZWVkiLCJwYXR0ZXJuWVlZWVkiLCJ5ZWFyU3RyaW5nIiwiY2VudHVyeVN0cmluZyIsInZhbGlkYXRlRGF0ZSIsImRheU9mWWVhciIsInZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSIsIndlZWsiLCJ2YWxpZGF0ZVdlZWtEYXRlIiwiZGF5T2ZJU09XZWVrWWVhciIsImRheU9mV2VlayIsInBhcnNlRmxvYXQiLCJ2YWxpZGF0ZVRpbWUiLCJzZWNvbmRzIiwiZm91cnRoT2ZKYW51YXJ5RGF5IiwiZGlmZiIsIkRBWVNfSU5fTU9OVEgiLCJEQVlTX0lOX01PTlRIX0xFQVBfWUVBUiIsImlzTGVhcFllYXIiLCJpc0xlYXBZZWFySW5kZXgiLCJkaXJ0eURhdGUiLCJiYXNlVGltZXpvbmVPZmZzZXQiLCJtaWxsaXNlY29uZHNQYXJ0T2ZUaW1lem9uZU9mZnNldCIsImhhbmRsZXJzIiwiaGFuZGxlciIsInBpY2tlciIsInNlbGVjdGVkRGF0ZSIsInRpbWVfMjRociIsImVuYWJsZVNlY29uZHMiLCJub0NhbGVuZGFyIiwiZGF0ZUZvcm1hdCIsImZsYXRwaWNrciIsIndyYXAiLCJhbGxvd0lucHV0Iiwib25DaGFuZ2UiLCJmb3JtYXREYXRlIiwibWF4RGF0ZSIsIm1pbkRhdGUiLCJkZWZhdWx0SG91ciIsImRlZmF1bHRNaW51dGUiLCJkaXNhYmxlTW9iaWxlIiwid2Vla051bWJlcnMiLCJmb3JtYXQiLCJkYXRlVGltZUZvcm1hdHRlciIsImV4cHJlc3Npb24iLCJzZWxlY3RlZERhdGVzIiwid2Vla0RheXNTaG9ydCIsIndlZWtEYXlzTG9uZyIsIndlZWtkYXkiLCJtb250aHNTaG9ydCIsIm1vbnRoc0xvbmciLCJ3ZWVrZGF5cyIsInNob3J0aGFuZCIsImxvbmdoYW5kIiwibW9udGhzIiwiZGF5c0luTW9udGgiLCJmaXJzdERheU9mV2VlayIsIm9yZGluYWwiLCJyYW5nZVNlcGFyYXRvciIsIndlZWtBYmJyZXZpYXRpb24iLCJzY3JvbGxUaXRsZSIsInRvZ2dsZVRpdGxlIiwiYW1QTSIsInllYXJBcmlhTGFiZWwiLCJob3VyQXJpYUxhYmVsIiwibWludXRlQXJpYUxhYmVsIiwiT05fREFURV9DSEFOR0VEIiwiRGF0ZVRpbWVFZGl0b3IiLCJfaW5wdXQiLCJfdmFsdWUiLCJUZXh0SW5wdXQiLCJjc3NDbGFzc0Vycm9yIiwiY3NzQ2xhc3NTdWNjZXNzIiwicGFyZW50Q2xhc3MiLCJpc1dyYXBwZWQiLCJpbnB1dElkIiwiaW5wdXROYW1lIiwib3JpZ2luYWxQYXR0ZXJuIiwiZGVmYXVsdFBhdHRlcm4iLCJnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzayIsInVubWFza0lucHV0IiwibWFza0lmTm90TWFza2VkIiwidW5tYXNrIiwidGV4dElucHV0IiwiZXZlbnRUeXBlIiwia2V5Q29kZSIsImtleUNvbnRlbnQiLCJpbnNlcnRQb3NpdGlvbiIsImZpbmRDYXJldFBvc2l0aW9uIiwibWFza0Vycm9yIiwic2VsZWN0aW9uU3RhcnQiLCJ1bm1hc2tlZFZhbHVlIiwic2V0VGltZW91dCIsInBvc2l0aW9uIiwidmFsdWVNYXNrZWQiLCJ2YWx1ZVVubWFza2VkIiwiZXJyb3IiLCJTVVBQT1JURURfTUFTS1MiLCJJU19VTklDT0RFX1BST1BFUlRZX1NVUFBPUlRFRCIsImV2YWwiLCJpc01hc2tlZFZhbHVlIiwiY2FjaGVLZXkiLCJtYXNrQXNBcnJ5IiwicmVnZXgiLCJjIiwibWFza0FzQXJyYXkiLCJtYXNrZWRWYWx1ZUFzQXJyYXkiLCJtYXNrZWRWYWx1ZSIsImVsSGFzTWFzayIsIk51bWJlcklucHV0IiwiY291bnREZWNpbWFscyIsImFjdHVhbElucHV0IiwiYWN0dWFsSW5wdXRJZCIsImFjdHVhbElucHV0TmFtZSIsImFjdHVhbElucHV0U3RlcCIsImFjdHVhbElucHV0TWF4IiwiYWN0dWFsSW5wdXRNaW4iLCJhY3R1YWxJbnB1dEdyb3VwaW5nU2VwYXJhdG9yIiwiYWN0dWFsSW5wdXREZWNpbWFsU2VwYXJhdG9yIiwiYWN0dWFsSW5wdXRGb3JjZVRyYWlsaW5nWmVyb3MiLCJhY3R1YWxJbnB1dE1hc2siLCJhY3R1YWxJbnB1dENsYXNzZXMiLCJhY3R1YWxJbnB1dFJlcXVpcmVkIiwidW5tYXNrZWRJbnB1dCIsImRlY2ltYWxzIiwicmVzdG9yZSIsIkRhdGVNYXNrIiwiVXRpbHMiLCJEYXRlcyIsImdldERheU9mWWVhciIsImdldFdlZWtOdW1iZXIiLCJnZXRXZWVrU3RhcnRCeUxvY2FsZSIsIklTX0RBVEVfUkVHRVgiLCJJU19USU1FX1JFR0VYIiwiZml4U2hvcnRJU08iLCJnZXRUaW1lem9uZU9yT2Zmc2V0IiwiVHlwZXMiLCJvcmlnaW5hbEdldFdlZWtTdGFydEJ5TG9jYWxlIiwib25lRGF5IiwicGFkIiwiZCIsImRheU51bSIsIndlZWtTdGFydCIsInllYXJTdGFydCIsImRhdGVPYmplY3QiLCJ0cmFuc2xhdGlvbiIsIm1vbnRoU2hvcnQiLCJtb250aExvbmciLCJkYXlTaG9ydCIsImRheUxvbmciLCJ3ZWVrTnVtYmVyIiwiZGF0ZURldGFpbHMiLCJZeiIsIllzIiwiWWwiLCJZcCIsIllkIiwiWSIsIk16IiwiTXMiLCJNbCIsIk1wIiwiTWQiLCJNIiwiRHoiLCJEcyIsIkRsIiwiRHAiLCJEZCIsIkQiLCJIeiIsIkhzIiwiSGwiLCJIcCIsIkhkIiwiSCIsImh6IiwiaHMiLCJobCIsImhwIiwiaGQiLCJoIiwibXoiLCJtcyIsIm1sIiwibXAiLCJtZCIsInN6Iiwic3MiLCJzbCIsInNwIiwic2QiLCJzIiwiUFAiLCJQIiwicHAiLCJwIiwiSnoiLCJKcyIsIkpsIiwiSmQiLCJKIiwiV3oiLCJXcyIsIldsIiwiV3AiLCJXZCIsIlciLCJ3eiIsIndzIiwid2wiLCJ3cCIsIndkIiwidyIsImpzcyIsImFkalNlbEF0dHJSZWdleCIsImRvdWJsZUNvbG9uUHNldWRvRWxSZWdleCIsInNpbmdsZUNvbG9uUHNldWRvRWxSZWdleCIsInNpbmdsZUNvbG9uRm9yUHNldWRvRWxlbWVudHMiLCJnZXRTZWxlY3RvcnNBbmRSdWxlcyIsInNoZWV0IiwicnVsZXMiLCJjc3NSdWxlcyIsInJlc3VsdHMiLCJzZWxlY3RvclRleHQiLCJ0b0RvdWJsZUNvbG9uUHNldWRvRWxlbWVudHMiLCJwdXNoIiwic3R5bGUiLCJnZXRSdWxlcyIsInNlbGVjdG9yIiwic3dhcEFkalNlbEF0dHIiLCJzd2FwUHNldWRvRWxTeW50YXgiLCJhZGRSdWxlIiwicHNldWRvRWxlbWVudFJ1bGUiLCJhZGRQc2V1ZG9FbGVtZW50UnVsZSIsImFkZFJ1bGVUb1NoZWV0IiwiaW5zZXJ0UnVsZSIsImRvdWJsZUNvbG9uU2VsZWN0b3IiLCJzaW5nbGVDb2xvblNlbGVjdG9yIiwiZXhlYyIsInRvU2luZ2xlQ29sb25Qc2V1ZG9FbGVtZW50cyIsInJlcGxhY2UiLCJzdWJtYXRjaDEiLCJzdWJtYXRjaDIiLCJzdWJtYXRjaDMiLCJyZW1vdmVSdWxlIiwicnVsZSIsImRlbGV0ZVJ1bGUiLCJleHRlbmQiLCJkZXN0Iiwic3JjIiwiYWdncmVnYXRlU3R5bGVzIiwiYWdncmVnYXRlIiwiZGVjbGFyZWRQcm9wZXJ0aWVzIiwiZGVjbGFyZWQiLCJ0b0NhbWVsQ2FzZSIsInN3YXAiLCJsYXN0SW5kZXgiLCJzdWJzdHIiLCJzZXRTdHlsZVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiaW1wb3J0YW50SW5kZXgiLCJyZW1vdmVQcm9wZXJ0eSIsInNldFByb3BlcnR5Iiwic3VibWF0Y2giLCJ0cmFuc2Zvcm1DYW1lbENhc2VkUHJvcGVydHlOYW1lcyIsIm9sZFByb3BzIiwibmV3UHJvcHMiLCJ1bkNhbWVsQ2FzZSIsIkpzcyIsImhlYWQiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInNoZWV0cyIsInN0eWxlU2hlZXRzIiwicHJvdG90eXBlIiwiZGVmYXVsdFNoZWV0IiwiZ2V0QWxsIiwiX2NyZWF0ZVNoZWV0IiwicmVtb3ZlIiwiX3JlbW92ZVNoZWV0Iiwic3R5bGVOb2RlIiwiY3JlYXRlRWxlbWVudCIsInJlbCIsImFwcGVuZENoaWxkIiwibm9kZSIsIm93bmVyTm9kZSIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsImZvckRvY3VtZW50IiwiZm9yRWFjaCIsImluY2x1ZGVzIiwiaXNJbnRlZ2VyIiwic3RhcnRzV2l0aCIsIml0IiwiVHlwZUVycm9yIiwiVU5TQ09QQUJMRVMiLCJBcnJheVByb3RvIiwidW5kZWZpbmVkIiwidG9JT2JqZWN0IiwidG9MZW5ndGgiLCJ0b0Fic29sdXRlSW5kZXgiLCJJU19JTkNMVURFUyIsIiR0aGlzIiwiZnJvbUluZGV4IiwiTyIsImN0eCIsIklPYmplY3QiLCJ0b09iamVjdCIsImFzYyIsIlRZUEUiLCIkY3JlYXRlIiwiSVNfTUFQIiwiSVNfRklMVEVSIiwiSVNfU09NRSIsIklTX0VWRVJZIiwiSVNfRklORF9JTkRFWCIsIk5PX0hPTEVTIiwiY3JlYXRlIiwiY2FsbGJhY2tmbiIsInRoYXQiLCJmIiwidmFsIiwicmVzIiwiU1BFQ0lFUyIsIm9yaWdpbmFsIiwiQyIsInNwZWNpZXNDb25zdHJ1Y3RvciIsImNhbGwiLCJzbGljZSIsImNvcmUiLCJ2ZXJzaW9uIiwiX19lIiwiYUZ1bmN0aW9uIiwiYSIsImIiLCJpcyIsImhpZGUiLCJyZWRlZmluZSIsIlBST1RPVFlQRSIsIiRleHBvcnQiLCJJU19GT1JDRUQiLCJGIiwiSVNfR0xPQkFMIiwiRyIsIklTX1NUQVRJQyIsIlMiLCJJU19QUk9UTyIsIklTX0JJTkQiLCJCIiwiZXhwUHJvdG8iLCJvd24iLCJvdXQiLCJleHAiLCJVIiwiUiIsIk1BVENIIiwiS0VZIiwicmUiLCJfX2ciLCJkUCIsImNyZWF0ZURlc2MiLCJjb2YiLCJhcmciLCJmbG9vciIsImlzRmluaXRlIiwiaXNSZWdFeHAiLCJhbk9iamVjdCIsIklFOF9ET01fREVGSU5FIiwidG9QcmltaXRpdmUiLCJBdHRyaWJ1dGVzIiwiYml0bWFwIiwiaGFzIiwiU1JDIiwiJHRvU3RyaW5nIiwiVE9fU1RSSU5HIiwiVFBMIiwiaW5zcGVjdFNvdXJjZSIsInNhZmUiLCJTSEFSRUQiLCJzdG9yZSIsIm1vZGUiLCJjb3B5cmlnaHQiLCJmYWlscyIsIm1ldGhvZCIsImRlZmluZWQiLCJzZWFyY2hTdHJpbmciLCJOQU1FIiwiY2VpbCIsInZhbHVlT2YiLCJweCIsInJhbmRvbSIsImNvbmNhdCIsIlVTRV9TWU1CT0wiLCIkZXhwb3J0cyIsIiRmb3JFYWNoIiwiU1RSSUNUIiwiU1RBUlRTX1dJVEgiLCIkc3RhcnRzV2l0aCIsInNlYXJjaCIsIiRpbmNsdWRlcyIsImRlZXBQYXJzZUpzb24iLCJqc29uU3RyaW5nIiwicGFyc2UiLCJlcnIiLCJtYXAiLCJyZWR1Y2UiLCJ0aGlzQXJnIiwidG9TdHJpbmdUYWciLCJuIiwic3JjVmFsdWUiLCJjaHIiLCJJRV9QUk9UTyIsIm5vZGVUeXBlIiwicHJvY2VzcyIsImJpbmRpbmciLCJub3ciLCJzcmNJbmRleCIsIkVycm9yIiwiXyIsImV2YWx1YXRlIiwiZXNjYXBlVmFsdWUiLCJlc1RlbXBsYXRlVmFsdWUiLCJldmFsdWF0ZVZhbHVlIiwiY3NzIiwicHJvdG9jb2wiLCJob3N0IiwicGF0aG5hbWUiLCJmdWxsTWF0Y2giLCJvcmlnVXJsIiwidHJpbSIsIm8iLCIkMSIsInN0cmluZ2lmeSIsIndlYnBhY2tQb2x5ZmlsbCIsImRlcHJlY2F0ZSIsInBhdGhzIiwiY2hpbGRyZW4iLCJnd19zdGFydEVkaXRpbmdDZWxsIiwicm93IiwiY29sS2V5IiwiYXBpIiwic2V0Rm9jdXNlZENlbGwiLCJzdGFydEVkaXRpbmdDZWxsIiwicm93SW5kZXgiLCJrZXlQcmVzcyIsImNoYXJQcmVzcyIsImd3X3N0b3BFZGl0aW5nIiwiY2FuY2VsIiwic3RvcEVkaXRpbmciLCJnd19lZGl0TmV4dENlbGwiLCJ0YWJUb05leHRDZWxsIiwiZ3dfZWRpdFByZXZpb3VzQ2VsbCIsInRhYlRvUHJldmlvdXNDZWxsIiwiZ3dfc2V0Rm9jdXNlZENlbGwiLCJjb2x1bW4iLCJyIiwiZ2V0Um93Tm9kZSIsImNvbHVtbkFwaSIsImdldEFsbEdyaWRDb2x1bW5zIiwiY29sSWQiLCJnd19nZXRSYW5nZVNlbGVjdGlvbnMiLCJyYW5nZXMiLCJnZXRDZWxsUmFuZ2VzIiwiZ2V0TW9kZWwiLCJyYW5nZSIsImNvbHVtbnMiLCJhY2N1bXVsYXRvciIsImN1cnJlbnQiLCJzdGFySW5kZXgiLCJzdGFydFJvdyIsImVuZFJvdyIsImVuZEluZGV4Iiwicm93cyIsImdldFJvdyIsInBhcnNlZE5vZGUiLCJnd19wYXJzZUFkZENlbGxSYW5nZSIsInByIiwiZW5kIiwicm93RGF0YSIsInJvd1N0YXJ0SW5kZXgiLCJhYnMiLCJyb3dFbmRJbmRleCIsImd3X2FkZENlbGxSYW5nZSIsImFkZENlbGxSYW5nZSIsImd3X2NsZWFyUmFuZ2VTZWxlY3Rpb24iLCJjbGVhclJhbmdlU2VsZWN0aW9uIiwiZ3dfZ2V0Q2hhcnRUb29sYmFySXRlbXMiLCJncmlkT3B0aW9uc1dyYXBwZXIiLCJncmlkT3B0aW9ucyIsImNoYXJ0VG9vbGJhckl0ZW1zIiwiZ3dfYWRkQ2hhcnRSYW5nZSIsImdyaWQiLCJjZWxsUmFuZ2UiLCJyZWYiLCJjaGFydFJhbmdlIiwidXVpZCIsImNyZWF0ZWRfY2hhcnRzIiwiZ3dfZGVzdHJveUNoYXJ0IiwiZGVzdHJveUNoYXJ0IiwiY2hhcnQiLCJnd19leHRlbmRDb2x1bW5EZWZpbml0aW9ucyIsImRlZmluaXRpb25zIiwiZGVmIiwiY2hlY2tib3hTZWxlY3Rpb24iLCJnd19pc1Nob3dTZWxlY3Rpb25DaGVja2JveCIsImhlYWRlckNoZWNrYm94U2VsZWN0aW9uIiwiZ3dfaXNIZWFkZXJDaGVja2JveFNlbGVjdGlvbiIsImd3X3NldENvbHVtbkRlZmluaXRpb25zIiwiZGVlcFBhcnNlZERlZmluaXRpb25zIiwic2V0Q29sdW1uRGVmcyIsImNvbHVtbkRlZnMiLCJnd19zaXplQ29sdW1uc1RvRml0Iiwid2lkdGgiLCJjb2x1bW5zQVBJIiwic2l6ZUNvbHVtbnNUb0ZpdCIsImd3X2F1dG9TaXplQ29sdW1ucyIsInNraXBIZWFkZXIiLCJhbGxDb2x1bW5JZHMiLCJnZXRBbGxDb2x1bW5zIiwiYXV0b1NpemVDb2x1bW5zIiwiZ3dfc2V0VmlzaWJsZUNvbHVtbiIsImNvbHVtbklkIiwiZW5zdXJlQ29sdW1uVmlzaWJsZSIsImd3X3NldENvbHVtbldpZHRoIiwic2V0Q29sdW1uV2lkdGgiLCJnd19waW5Db2x1bW4iLCJwaW4iLCJzZXRDb2x1bW5QaW5uZWQiLCJnd19tb3ZlQ29sdW1uIiwidG9JbmRleCIsIm1vdmVDb2x1bW4iLCJwYXJhbSIsInNob3dTZWxlY3Rpb25DaGVja2JveCIsImNvbERlZiIsImZpZWxkIiwic2hvd0hlYWRlclNlbGVjdGlvbkNoZWNrYm94IiwiZ3dfYWRkUm93R3JvdXBDb2x1bW4iLCJnd19yZW1vdmVSb3dHcm91cENvbHVtbiIsInJlbW92ZVJvd0dyb3VwQ29sdW1ucyIsImd3X2dldFBpdm90TW9kZSIsImlzUGl2b3RNb2RlIiwiZ3dfc2V0UGl2b3RNb2RlIiwic2V0UGl2b3RNb2RlIiwiZ3dfYWRkUGl2b3RDb2x1bW5zIiwiZ3dfcmVtb3ZlUGl2b3RDb2x1bW5zIiwicmVtb3ZlUGl2b3RDb2x1bW5zIiwiZ3dfYWRkVmFsdWVDb2x1bW5zIiwiYWRkVmFsdWVDb2x1bW5zIiwiZ3dfcmVtb3ZlVmFsdWVDb2x1bW5zIiwicmVtb3ZlVmFsdWVDb2x1bW5zIiwiZ3dfdXBkYXRlQ29udGV4dCIsImd3X2luaXQiLCJsaWNlbnNlIiwiYWdHcmlkIiwiTGljZW5zZU1hbmFnZXIiLCJzZXRMaWNlbnNlS2V5IiwiY29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJpbm5lckhUTUwiLCJwYXJzZWRPcHRpb25zIiwiZ3dfcGFyc2VPcHRpb25zIiwiaW5zdGFuY2UiLCJHcmlkIiwibG9nIiwiZGVlcFBhcnNlZE9wdGlvbnMiLCJnZXREYXRhUGF0aFRlbXBsYXRlIiwiZ2V0RGF0YVBhdGgiLCJkZWJvdW5jZUR1cmF0aW9uIiwiZmluYWxPcHRpb25zIiwiZ2V0RG9jdW1lbnQiLCJvbkNlbGxFZGl0aW5nU3RhcnRlZCIsIm9uQ2VsbEVkaXRpbmdTdG9wcGVkIiwib25DZWxsVmFsdWVDaGFuZ2VkIiwib25Sb3dFZGl0aW5nU3RhcnRlZCIsIm9uUm93RWRpdGluZ1N0b3BwZWQiLCJvblJvd1ZhbHVlQ2hhbmdlZCIsIm9uQ2VsbENsaWNrZWQiLCJvbkNlbGxEb3VibGVDbGlja2VkIiwib25HcmlkUmVhZHkiLCJnZXRSb3dOb2RlSWQiLCJnd19nZXRSb3dOb2RlSWQiLCJnZXRDb250ZXh0TWVudUl0ZW1zIiwiZ3dfb25Sb3dEb3VibGVDbGlja2VkIiwiZ3dfb25TZWxlY3Rpb25DaGFuZ2VkIiwiZ3dfb25SYW5nZVNlbGVjdGlvbkNoYW5nZWQiLCJBZ0dyaWRDb21wb25lbnRzIiwibmF2aWdhdGVUb05leHRDZWxsIiwidHJlZURhdGEiLCJnZXREYXRhUGF0aFRlbXBsYXRlQ29tcGxpZWQiLCJmb3JtYXRTZWxlY3RvciIsImd3X3NldFN0eWxlIiwiZ3dfcmVtb3ZlU3R5bGUiLCJnd19nZXRDb250ZXh0TWVudSIsImdyaWRJZCIsImJ1aWxkQ29udGV4dE1lbnVBY3Rpb24iLCJ2IiwicGFyc2VNZW51IiwibWVudSIsImNvbnRleHRNZW51IiwiZ3dfc2hvd0xvYWRpbmdPdmVybGF5Iiwic2hvd0xvYWRpbmdPdmVybGF5IiwiZ3dfc2hvd05vUm93c092ZXJsYXkiLCJzaG93Tm9Sb3dzT3ZlcmxheSIsImd3X2hpZGVPdmVybGF5IiwiaGlkZU92ZXJsYXkiLCJnd19zZXRRdWlja0ZpbHRlciIsInNldFF1aWNrRmlsdGVyIiwiZ3dfZXhwYW5kQWxsIiwiZXhwYW5kQWxsIiwiZ3dfY29sbGFwc2VBbGwiLCJjb2xsYXBzZUFsbCIsImd3X3NldFZpc2libGVSb3ciLCJlbnN1cmVJbmRleFZpc2libGUiLCJnd19uYXZpZ2F0ZVRvTmV4dFJvdyIsInByZXZpb3VzQ2VsbCIsInByZXZpb3VzQ2VsbFBvc2l0aW9uIiwic3VnZ2VzdGVkTmV4dENlbGwiLCJuZXh0Q2VsbFBvc2l0aW9uIiwiS0VZX1VQIiwiS0VZX0RPV04iLCJLRVlfTEVGVCIsIktFWV9SSUdIVCIsImZvckVhY2hOb2RlIiwic2V0U2VsZWN0ZWQiLCJnd19zZXRSb3dzRGF0YSIsImpzb24iLCJzZXRSb3dEYXRhIiwiZ3dfc2V0Um93RGF0YSIsInVwZGF0ZVJvd0RhdGEiLCJnd19yZW1vdmVSb3dzIiwiaW5kZXhlcyIsIml0ZW1zIiwiZ3dfYWRkUm93cyIsImFkZCIsImFkZEluZGV4IiwiZ3dfc2V0Um93c0hlaWdodCIsImhlaWdodCIsInNldFJvd0hlaWdodCIsIm9uUm93SGVpZ2h0Q2hhbmdlZCIsImd3X3NldFJvd0hlaWdodCIsImdldERpc3BsYXllZFJvd0F0SW5kZXgiLCJnd19zZXRTZWxlY3RlZFJvd3MiLCJmb3JFYWNoTm9kZUFmdGVyRmlsdGVyQW5kU29ydCIsImV4cGFuZGVkIiwib25Hcm91cEV4cGFuZGVkT3JDb2xsYXBzZWQiLCJnd19zZWxlY3RBbGwiLCJmaWx0ZXJlZCIsInNlbGVjdEFsbEZpbHRlcmVkIiwic2VsZWN0QWxsIiwiZ3dfZGVzZWxlY3RBbGwiLCJkZXNlbGVjdEFsbEZpbHRlcmVkIiwiZGVzZWxlY3RBbGwiLCJnd19nZXRTZWxlY3RlZFJvd3MiLCJub2RlcyIsImdldFNlbGVjdGVkTm9kZXMiLCJnd19nZXRTZWxlY3RlZFJvdyIsImd3X3NldFN0YXRlIiwic2V0Q29sdW1uU3RhdGUiLCJzZXRDb2x1bW5Hcm91cFN0YXRlIiwiZ3JvdXBzIiwic2V0U29ydE1vZGVsIiwic29ydCIsInNldEZpbHRlck1vZGVsIiwiZmlsdGVycyIsImd3X2dldFN0YXRlIiwiZ2V0Q29sdW1uU3RhdGUiLCJnZXRDb2x1bW5Hcm91cFN0YXRlIiwiZ2V0U29ydE1vZGVsIiwiZ2V0RmlsdGVyTW9kZWwiLCJnd19zZXRTdGF0dXNiYXJDb21wb25lbnRWaXNpYmlsaXR5IiwidmlzaWJpbGl0eSIsImdldFN0YXR1c1BhbmVsIiwic2V0VmlzaWJsZSIsImd3X3NldFNpZGVCYXJWaXNpYmxlIiwic2V0U2lkZUJhclZpc2libGUiLCJnd19vcGVuVG9vbHBhbmVsIiwidG9vbHBhbmVsSWQiLCJvcGVuVG9vbFBhbmVsIiwiZ3dfY2xvc2VUb29scGFuZWwiLCJjbG9zZVRvb2xQYW5lbCIsImd3X3NldEZ1bmN0aW9uc1JlYWRPbmx5Iiwic2V0RnVuY3Rpb25zUmVhZE9ubHkiLCJnd19nZXREb2N1bWVudCIsIiRkb2MiLCJnd19nZXRXaW5kb3ciLCIkd2luIiwiZ3dfZXNjYXBlIiwiZ3dfdXVpZCIsImd3X2dldEdyaWQiLCJCQmpHcmlkRXhXaWRnZXQiLCJyZWdpc3RlcmVkR3JpZHMiLCJnd19hZGRHcmlkIiwiR1dfRVZFTlRfUk9XX0NMSUNLIiwiR1dfRVZFTlRfUk9XX0RPVUJMRV9DTElDSyIsIkdXX0VWRU5UX0NFTExfQ0xJQ0siLCJHV19FVkVOVF9DRUxMX0RPVUJMRV9DTElDSyIsIkdXX0VWRU5UX0NFTExfRURJVElOR19TVEFSVEVEIiwiR1dfRVZFTlRfQ0VMTF9FRElUSU5HX1NUT1BQRUQiLCJHV19FVkVOVF9DRUxMX1ZBTFVFX0NIQU5HRUQiLCJHV19FVkVOVF9ST1dfRURJVElOR19TVEFSVEVEIiwiR1dfRVZFTlRfUk9XX0VESVRJTkdfU1RPUFBFRCIsIkdXX0VWRU5UX0dSSURfU1RBVEVfQ0hBTkdFIiwiR1dfRVZFTlRfUkFOR0VfU0VMRUNUSU9OX0NIQU5HRUQiLCJHV19FVkVOVF9LRVlQUkVTUyIsIkNFTExfRURJVElOR19FVkVOVFNfTUFQIiwiUk9XX0VESVRJTkdfRVZFTlRTX01BUCIsImd3X29uQ2VsbEVkaXRpbmdFdmVudCIsIm9sZFZhbHVlIiwiZ3dfb25Sb3dFZGl0aW5nRXZlbnQiLCJnd19vbktleWRvd24iLCJrZXlkb3duRXZlbnQiLCJrYyIsIndoaWNoIiwiYWsiLCJhbHRLZXkiLCJzayIsInNoaWZ0S2V5IiwiY2siLCJjdHJsS2V5IiwiZ3dfb25SZWFkeUV2ZW50Iiwic3RhdGVEZWJvdW5jZSIsImNoYW5nZUV2ZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWJvYXJkRGVib3VuY2UiLCJDRUxMX0NMSUNLSU5HX0VWRU5UU19NQVAiLCJnd19vbkNlbGxDbGlja0V2ZW50IiwiZ3dfb25TdGF0ZUNoYW5nZWQiLCJnd19kZWJvdW5jZSIsIndhaXQiLCJpbW1lZGlhdGUiLCJ0aW1lb3V0IiwibGF0ZXIiLCJjYWxsTm93IiwiY2xlYXJUaW1lb3V0IiwiZ3dfc2VuZEV2ZW50IiwicGF5bG9hZCIsImV2ZW50SWQiLCJyZWdpc3RlcmVkSW50ZXJlc3RzIiwiaW50ZXJlc3RzIiwiZGl2IiwiQ3VzdG9tRXZlbnQiLCJkaXNwYXRjaEV2ZW50IiwiZ3dfcGFyc2VOb2RlIiwiZ3JvdXAiLCJyb3dOb2RlSWQiLCJjaGlsZEluZGV4Iiwic2VsZWN0ZWQiLCJnd19wYXJzZU5vZGVGcm9tRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsImRldGFpbCIsImNyZWF0ZUV2ZW50IiwiaW5pdEN1c3RvbUV2ZW50IiwiRXZlbnQiLCJmaW5kIiwicHJlZGljYXRlIiwibGVuIiwiayIsImtWYWx1ZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0RBQTBDLGdDQUFnQztBQUMxRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdFQUF3RCxrQkFBa0I7QUFDMUU7QUFDQSx5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Q0FrQkE7OztBQUNBOztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBOUJBLENBZ0NBOzs7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQTVDQSxDQThDQTs7O0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQTNEQSxDQTZEQTs7O0FBQ0E7O0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQXZFQSxDQXlFQTs7O0FBQ0E7O0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFNBcEZBLENBc0ZBOzs7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG9CQUhBLENBS0E7O0FBQ0E7O0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxTQWZBLENBaUJBOzs7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGlCQUNBLG9FQURBO0FBR0EsU0E5QkEsQ0FnQ0E7OztBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxpQkFDQSxvQ0FDQSxnQ0FEQSxHQUVBLGNBSEE7QUFLQSxTQWhEQSxDQWtEQTs7O0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPLENBRUE7OztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7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QkE7QUFxQkEsYUFyQkE7QUFzQkEsYUF0QkE7QUF1QkEsY0F2QkE7QUF3QkEsYUF4QkE7QUF5QkEsYUF6QkE7QUEwQkEsY0ExQkE7QUEyQkEsYUEzQkE7QUE0QkEsYUE1QkE7QUE2QkEsY0E3QkE7QUE4QkEsY0E5QkE7QUErQkEsYUEvQkE7QUFnQ0EsY0FoQ0E7QUFpQ0EsY0FqQ0E7QUFrQ0EsYUFsQ0E7QUFtQ0EsY0FuQ0E7QUFvQ0EsY0FwQ0E7QUFxQ0EsYUFyQ0E7QUFzQ0EsY0F0Q0E7QUF1Q0EsY0F2Q0E7QUF3Q0EsYUF4Q0E7QUF5Q0EsY0F6Q0E7QUEwQ0EsY0ExQ0E7QUEyQ0EsYUEzQ0E7QUE0Q0EsY0E1Q0E7QUE2Q0EsY0E3Q0E7QUE4Q0EsYUE5Q0E7QUErQ0EsY0EvQ0E7QUFnREEsY0FoREE7QUFpREEsYUFqREE7QUFrREEsY0FsREE7QUFtREEsY0FuREE7QUFvREEsYUFwREE7QUFxREEsY0FyREE7QUFzREEsY0F0REE7QUF1REEsYUF2REE7QUF3REEsY0F4REE7QUF5REEsY0F6REE7QUEwREEsYUExREE7QUEyREEsY0EzREE7QUE0REEsY0E1REE7QUE2REEsYUE3REE7QUE4REEsY0E5REE7QUErREEsY0EvREE7QUFnRUEsYUFoRUE7QUFpRUEsY0FqRUE7QUFrRUEsY0FsRUE7QUFtRUEsYUFuRUE7QUFvRUEsY0FwRUE7QUFxRUEsY0FyRUE7QUFzRUEsYUF0RUE7QUF1RUEsY0F2RUE7QUF3RUEsY0F4RUE7QUF5RUEsYUF6RUE7QUEwRUEsY0ExRUE7QUEyRUEsY0EzRUE7QUE0RUEsYUE1RUE7QUE2RUEsY0E3RUE7QUE4RUEsY0E5RUE7QUErRUEsYUEvRUE7QUFnRkEsY0FoRkE7QUFpRkEsY0FqRkE7QUFrRkEsYUFsRkE7QUFtRkEsY0FuRkE7QUFvRkEsY0FwRkE7QUFxRkEsYUFyRkE7QUFzRkEsY0F0RkE7QUF1RkEsY0F2RkE7QUF3RkEsYUF4RkE7QUF5RkEsY0F6RkE7QUEwRkEsY0ExRkE7QUEyRkEsYUEzRkE7QUE0RkEsY0E1RkE7QUE2RkEsY0E3RkE7QUE4RkEsYUE5RkE7QUErRkEsY0EvRkE7QUFnR0EsY0FoR0E7QUFpR0EsYUFqR0E7QUFrR0EsY0FsR0E7QUFtR0EsY0FuR0E7QUFvR0EsYUFwR0E7QUFxR0EsY0FyR0E7QUFzR0EsY0F0R0E7QUF1R0EsYUF2R0E7QUF3R0EsY0F4R0E7QUF5R0EsY0F6R0E7QUEwR0EsYUExR0E7QUEyR0EsY0EzR0E7QUE0R0EsY0E1R0E7QUE2R0EsYUE3R0E7QUE4R0EsY0E5R0E7QUErR0EsY0EvR0E7QUFnSEEsYUFoSEE7QUFpSEEsY0FqSEE7QUFrSEEsY0FsSEE7QUFtSEEsYUFuSEE7QUFvSEEsY0FwSEE7QUFxSEEsY0FySEE7QUFzSEEsYUF0SEE7QUF1SEEsY0F2SEE7QUF3SEEsY0F4SEE7QUF5SEEsYUF6SEE7QUEwSEEsY0ExSEE7QUEySEEsY0EzSEE7QUE0SEEsYUE1SEE7QUE2SEEsY0E3SEE7QUE4SEEsY0E5SEE7QUErSEEsYUEvSEE7QUFnSUEsY0FoSUE7QUFpSUEsY0FqSUE7QUFrSUEsYUFsSUE7QUFtSUEsY0FuSUE7QUFvSUEsY0FwSUE7QUFxSUEsYUFySUE7QUFzSUEsY0F0SUE7QUF1SUEsY0F2SUE7QUF3SUEsYUF4SUE7QUF5SUEsY0F6SUE7QUEwSUEsY0ExSUE7QUEySUEsYUEzSUE7QUE0SUEsY0E1SUE7QUE2SUEsY0E3SUE7QUE4SUEsYUE5SUE7QUErSUEsY0EvSUE7QUFnSkEsY0FoSkE7QUFpSkEsYUFqSkE7QUFrSkEsY0FsSkE7QUFtSkEsY0FuSkE7QUFvSkEsYUFwSkE7QUFxSkEsY0FySkE7QUFzSkEsY0F0SkE7QUF1SkEsYUF2SkE7QUF3SkEsY0F4SkE7QUF5SkEsY0F6SkE7QUEwSkEsYUExSkE7QUEySkEsY0EzSkE7QUE0SkEsY0E1SkE7QUE2SkEsYUE3SkE7QUE4SkEsY0E5SkE7QUErSkEsY0EvSkE7QUFnS0EsYUFoS0E7QUFpS0EsY0FqS0E7QUFrS0EsY0FsS0E7QUFtS0EsYUFuS0E7QUFvS0EsY0FwS0E7QUFxS0EsY0FyS0E7QUFzS0EsYUF0S0E7QUF1S0EsY0F2S0E7QUF3S0EsY0F4S0E7QUF5S0EsYUF6S0E7QUEwS0EsY0Ex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RUFBRSxvQ0FBb0Msd0JBQXdCLEVBQUUsb0NBQW9DLHVCQUF1QixFQUFFLG9DQUFvQyx3QkFBd0IsRUFBRSxvQ0FBb0MsdUJBQXVCLEVBQUUsb0NBQW9DLHdCQUF3QixFQUFFLG9DQUFvQyx1QkFBdUIsRUFBRSxvQ0FBb0Msd0JBQXdCLEVBQUUsb0NBQW9DLHVCQUF1QixFQUFFLG9DQUFvQyx3QkFBd0IsRUFBRSxvQ0FBb0MsdUJBQXVCLEVBQUUsb0NBQW9DLHdCQUF3QixFQUFFLG9DQUFvQyx1QkFBdUIsRUFBRSxvQ0FBb0Msd0JBQXdCLEVBQUUsb0NBQW9DLHVCQUF1QixFQUFFLG9DQUFvQyx3QkFBd0IsRUFBRSxvQ0FBb0MsdUJBQXVCLEVBQUUsb0NBQW9DLHdCQUF3QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVB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QUFFLDBEQUEwRCwyQkFBMkIsRUFBRSwwREFBMEQsMEJBQTBCLEVBQUUsMERBQTBELDJCQUEyQixFQUFFLDBEQUEwRCwwQkFBMEIsRUFBRSwwREFBMEQsMkJBQTJCLEVBQUUsMERBQTBELDBCQUEwQixFQUFFLDBEQUEwRCwyQkFBMkIsRUFBRSwwREFBMEQsMEJBQTBCLEVBQUUsMERBQTBELDJCQUEyQixFQUFFLDBEQUEwRCwwQkFBMEIsRUFBRSwwREFBMEQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsNEJBQTRCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDRCQUE0QixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCw0QkFBNEIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsNEJBQTRCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDRCQUE0QixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCw0QkFBNEIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFB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MEJBQTBCLEVBQUUscURBQXFELDJCQUEyQixFQUFFLHFEQUFxRCwwQkFBMEIsRUFBRSxxREFBcUQsMkJBQTJCLEVBQUUscURBQXFELDBCQUEwQixFQUFFLHFEQUFxRCwyQkFBMkIsRUFBRSxxREFBcUQsMEJBQTBCLEVBQUUscURBQXFELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDRCQUE0QixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCw0QkFBNEIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsNEJBQTRCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDRCQUE0QixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCw0QkFBNEIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsNEJBQTRCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDRCQUE0QixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDJC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RSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUs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aUJBQU93VSxNQUFQO0FBQ0QsU0FSYSxDQVNkOzs7QUFDQUQsU0FBQztBQUNGLE9BbEN5QixDQW9DMUI7OztBQUNBLGFBQU81YyxTQUFQO0FBQ0QsS0F2QzRDO0FBd0M3Q255QixnQkFBWSxFQUFFLElBeEMrQjtBQXlDN0NPLFlBQVEsRUFBRTtBQXpDbUMsR0FBL0M7QUEyQ0QsQzs7Ozs7Ozs7Ozs7O0FDcEVELGNBQWMsbUJBQU8sQ0FBQyxpTkFBK0c7O0FBRXJJLDRDQUE0QyxRQUFTOztBQUVyRDtBQUNBOzs7O0FBSUEsZUFBZTs7QUFFZjtBQUNBLGtDQUFrQzs7QUFFbEMsYUFBYSxtQkFBTyxDQUFDLHNHQUFtRDs7QUFFeEU7O0FBRUEsR0FBRyxLQUFVLEVBQUUsRSIsImZpbGUiOiJiYmotZ3JpZC13aWRnZXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMCk7XG4iLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuLyoqXG4gKiBOdW1iZXJNYXNrXG4gKlxuICogQSBqYXZhc2NyaXB0IGltcGxlbWVudGF0aW9uIGZvciBCQmogbnVtYmVycyBtYXNraW5nXG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgTnVtYmVyTWFzayB7XG4gIC8qKlxuICAgKiBNYXNrIHRoZSBnaXZlbiBudW1iZXIgd2l0aCB0aGUgZ2l2ZW4gbWFzayBhY2NvcmRpbmcgdG8gQkJqIHJ1bGVzXG4gICAqXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBudW1iZXIgdGhlIG51bWJlciB0byBmb3JtYXRcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgdGhlIG1hc2sgdG8gdXNlIGZvciBmb3JtYXR0aW5nXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBbZ3JvdXBpbmdTZXBhcmF0b3I9LF0gLSBhIGNoYXIgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIGEgZ3JvdXBpbmcgc2VwYXJhdG9yXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBbZGVjaW1hbFNlcGFyYXRvcj0uXSAgLSBhIGNoYXIgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIGEgZGVjaW1hbCBzZXBhcmF0b3JcbiAgICogQHBhcmFtIHtCb29sZWFufSBbZm9yY2VUcmFpbGluZ1plcm9zPWZhbHNlXSAtIEFmZmVjdHMgdGhlIG91dHB1dCBieSBzd2l0Y2hpbmcgdGhlIHdheSBhIG1hc2sgd2l0aCBcIiNcIiBjaGFyYWN0ZXJzIGluIHRoZSB0cmFpbGluZyBwb3NpdGlvbnMgaXMgZmlsbGVkLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSwgdGhlIGZ1bmN0aW9uIGBOdW1iZXJNYXNrLm1hc2soLjEwOlwiIy4jI1wiKWAgcmV0dXJucyBgIC4xMGAgaW5zdGVhZCBvZiBgIC4xIGBcbiAgICogQHBhcmFtIHtCb29sZWFufSBbbG9vc2U9dHJ1ZV0gd2hlbiB0cnVlICwgZXJyb3JzIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIG1ldGhvZCB3aWxsIHRyeSBhdCBhcHBseSB0aGUgbWFza1xuICAgKiAgICAgICAgICAgICAgICBhbnl3YXkgLCBvdGhlcndpc2UgaXQgd2lsbCBzdG9wIGF0IGZpcnN0IGVycm9yIGFuZCB0aHJvdyBpdC5cbiAgICogXG4gICAqIEB0aHJvd3Mge01hc2tFcnJvcn0gb25seSBpZiBsb29zZSBpcyBkaXNhYmxlZFxuICAgKiBcbiAgICogQHJldHVybnMge1N0cmluZ30gdGhlIG1hc2tlZCBudW1iZXJcbiAgICovXG4gIHN0YXRpYyBtYXNrKFxuICAgIG51bWJlcixcbiAgICBtYXNrLFxuICAgIGdyb3VwaW5nU2VwYXJhdG9yID0gJywnLFxuICAgIGRlY2ltYWxTZXBhcmF0b3IgPSAnLicsXG4gICAgZm9yY2VUcmFpbGluZ1plcm9zID0gZmFsc2UsXG4gICAgbG9vc2UgPSB0cnVlXG4gICkge1xuICAgIGNvbnN0IG1hc2tMZW4gPSBtYXNrLmxlbmd0aFxuICAgIGlmICgwID09PSBtYXNrTGVuKSB7XG4gICAgICBpZiAobG9vc2UpIHJldHVybiBzdHJcbiAgICAgIC8vIGZyaWVuZGx5IHNpbGVudCBmYWlsXG4gICAgICBlbHNlXG4gICAgICAgIHRocm93IHtcbiAgICAgICAgICBuYW1lOiAnTWFza0Vycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiBgTWFza0Vycm9yOiBNYXNrIGlzIGVtcHR5YFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gR2V0IG1hZ25pdHVkZSBhbmQgcHJlY2lzaW9uIG9mIE1BU0tcbiAgICBsZXQgbWFza0JlZm9yZURlY2ltYWwgPSAwXG4gICAgbGV0IG1hc2tBZnRlckRlY2ltYWwgPSAwXG4gICAgbGV0IGZvdW5kRGVjaW1hbCA9IGZhbHNlXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrTGVuOyArK2kpIHtcbiAgICAgIGNvbnN0IG0gPSBtYXNrLmNoYXJBdChpKVxuICAgICAgaWYgKG0gPT0gJzAnIHx8IG0gPT0gJyMnKSB7XG4gICAgICAgIGlmIChmb3VuZERlY2ltYWwpICsrbWFza0FmdGVyRGVjaW1hbFxuICAgICAgICBlbHNlICsrbWFza0JlZm9yZURlY2ltYWxcbiAgICAgIH0gZWxzZSBpZiAobSA9PSAnLicpIGZvdW5kRGVjaW1hbCA9IHRydWVcbiAgICB9XG5cbiAgICBsZXQgbnVtID0gTnVtYmVyTWFzay5fcm91bmQobnVtYmVyLCBtYXNrQWZ0ZXJEZWNpbWFsKVxuICAgIGxldCBieXRlcyA9IE51bWJlck1hc2suX3RvQ2hhckFycmF5KG51bSlcblxuICAgIC8vIEdldCBtYWduaXR1ZGUgYW5kIHByZWNpc2lvbiBvZiBOVU1CRVJcbiAgICBsZXQgaW5MZW4gPSBieXRlcy5sZW5ndGhcbiAgICBsZXQgbnVtQmVmb3JlRGVjaW1hbCA9IDBcbiAgICBsZXQgbnVtQWZ0ZXJEZWNpbWFsID0gMFxuICAgIGZvdW5kRGVjaW1hbCA9IGZhbHNlXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbkxlbjsgKytpKSB7XG4gICAgICBpZiAoYnl0ZXNbaV0gPT0gJy4nKSBmb3VuZERlY2ltYWwgPSB0cnVlXG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKGZvdW5kRGVjaW1hbCkgKytudW1BZnRlckRlY2ltYWxcbiAgICAgICAgZWxzZSArK251bUJlZm9yZURlY2ltYWxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhbHdheXMgaWdub3JlIG1hc2sgb3ZlcmZsb3dcbiAgICBpZiAobnVtQmVmb3JlRGVjaW1hbCA+IG1hc2tCZWZvcmVEZWNpbWFsKSB7XG4gICAgICBpZiAobG9vc2UpIHJldHVybiBudW1iZXIudG9TdHJpbmcoKVxuICAgICAgLy8gZnJpZW5kbHkgc2lsZW50IGZhaWxcbiAgICAgIGVsc2VcbiAgICAgICAgdGhyb3cge1xuICAgICAgICAgIG5hbWU6ICdNYXNrRXJyb3InLFxuICAgICAgICAgIG1lc3NhZ2U6IGBNYXNrRXJyb3I6IE51bWJlciBpcyB0b28gbGFyZ2UgZm9yIG1hc2tgXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByb3VuZCBpZiBtYXNrIGlzIGZvciBhIGxvd2VyIHByZWNpc2lvbiBudW1iZXJcbiAgICBpZiAobnVtQWZ0ZXJEZWNpbWFsID4gbWFza0FmdGVyRGVjaW1hbCkge1xuICAgICAgbnVtID0gTnVtYmVyTWFzay5fcm91bmQobnVtLCBtYXNrQWZ0ZXJEZWNpbWFsKVxuICAgICAgYnl0ZXMgPSBOdW1iZXJNYXNrLl90b0NoYXJBcnJheShudW0pXG4gICAgICBpbkxlbiA9IGJ5dGVzLmxlbmd0aFxuXG4gICAgICAvLyBHZXQgbmV3IG1hZ25pdHVkZSBhbmQgcHJlY2lzaW9uIG9mIE5VTUJFUlxuICAgICAgbnVtQmVmb3JlRGVjaW1hbCA9IDBcbiAgICAgIG51bUFmdGVyRGVjaW1hbCA9IDBcbiAgICAgIGZvdW5kRGVjaW1hbCA9IGZhbHNlXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluTGVuOyArK2kpIHtcbiAgICAgICAgaWYgKGJ5dGVzW2ldID09ICcuJykgZm91bmREZWNpbWFsID0gdHJ1ZVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpZiAoZm91bmREZWNpbWFsKSArK251bUFmdGVyRGVjaW1hbFxuICAgICAgICAgIGVsc2UgKytudW1CZWZvcmVEZWNpbWFsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gYWx3YXlzIGlnbm9yZSBtYXNrIG92ZXJmbG93XG4gICAgICBpZiAobnVtQmVmb3JlRGVjaW1hbCA+IG1hc2tCZWZvcmVEZWNpbWFsKSB7XG4gICAgICAgIGlmIChsb29zZSkgcmV0dXJuIG51bWJlci50b1N0cmluZygpXG4gICAgICAgIC8vIGZyaWVuZGx5IHNpbGVudCBmYWlsXG4gICAgICAgIGVsc2VcbiAgICAgICAgICB0aHJvdyB7XG4gICAgICAgICAgICBuYW1lOiAnTWFza0Vycm9yJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBNYXNrRXJyb3I6IE51bWJlciBpcyB0b28gbGFyZ2UgZm9yIG1hc2tgXG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBmaWxsQnl0ZSA9ICcgJyxcbiAgICAgIGZsb2F0Qnl0ZSA9ICcgJ1xuICAgIGxldCBpblBvcyA9IDAsXG4gICAgICBvdXRQb3MgPSAwLFxuICAgICAgZmxvYXRQb3MgPSAwXG4gICAgaWYgKG1hc2suY2hhckF0KDApID09ICcqJykgZmlsbEJ5dGUgPSAnKidcblxuICAgIGNvbnN0IGZpbGxJbml0ID0gZmlsbEJ5dGVcbiAgICBjb25zdCBpc05lZ2F0aXZlID0gTnVtYmVyTWFzay5fZ2V0U2lnbihudW0pIDwgMFxuICAgIGxldCBlbWl0RGVjaW1hbCA9IGluTGVuID4gMCB8fCBtYXNrLmluZGV4T2YoJzAnKSA+PSAwXG4gICAgbGV0IGZvdW5kWmVybyA9IGZhbHNlXG4gICAgbGV0IGZvdW5kRGlnaXQgPSBmYWxzZVxuICAgIGxldCBjdXJyZW5jeSA9IGZhbHNlXG4gICAgZm91bmREZWNpbWFsID0gZmFsc2VcblxuICAgIGxldCByZXQgPSBuZXcgQXJyYXkobWFza0xlbilcblxuICAgIGZvciAobGV0IG1hc2tQb3MgPSAwOyBtYXNrUG9zIDwgbWFza0xlbjsgKyttYXNrUG9zKSB7XG4gICAgICBsZXQgbSA9IG1hc2suY2hhckF0KG1hc2tQb3MpXG4gICAgICBzd2l0Y2ggKG0pIHtcbiAgICAgICAgY2FzZSAnMCc6XG4gICAgICAgICAgLS1tYXNrQmVmb3JlRGVjaW1hbFxuICAgICAgICAgIGlmIChtYXNrQmVmb3JlRGVjaW1hbCA8IG51bUJlZm9yZURlY2ltYWwgJiYgaW5Qb3MgPCBpbkxlbikge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBieXRlc1tpblBvc11cbiAgICAgICAgICAgICsraW5Qb3NcbiAgICAgICAgICAgIGZvdW5kRGlnaXQgPSB0cnVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJzAnXG4gICAgICAgICAgICBmb3VuZFplcm8gPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcjJzpcbiAgICAgICAgICAtLW1hc2tCZWZvcmVEZWNpbWFsXG4gICAgICAgICAgaWYgKG1hc2tCZWZvcmVEZWNpbWFsIDwgbnVtQmVmb3JlRGVjaW1hbCAmJiBpblBvcyA8IGluTGVuKSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGJ5dGVzW2luUG9zXVxuICAgICAgICAgICAgKytpblBvc1xuICAgICAgICAgICAgZm91bmREaWdpdCA9IHRydWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPVxuICAgICAgICAgICAgICBmb3VuZERlY2ltYWwgJiZcbiAgICAgICAgICAgICAgZm9yY2VUcmFpbGluZ1plcm9zICYmXG4gICAgICAgICAgICAgIE51bWJlck1hc2suX2dldFNpZ24obnVtKSAhPSAwXG4gICAgICAgICAgICAgICAgPyAnMCdcbiAgICAgICAgICAgICAgICA6IGZpbGxCeXRlXG4gICAgICAgICAgICBpZiAoIWZvdW5kRGVjaW1hbCkgZmxvYXRQb3MgPSBtYXNrUG9zXG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcsJzpcbiAgICAgICAgICBpZiAoZm91bmRaZXJvIHx8IGluUG9zID4gMCkgcmV0W291dFBvc10gPSBncm91cGluZ1NlcGFyYXRvclxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAgICAgaWYgKCFmb3VuZERlY2ltYWwpIGZsb2F0UG9zID0gbWFza1Bvc1xuICAgICAgICAgIH1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSBmbG9hdEJ5dGUgPSAnLSdcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgICAgfSBlbHNlIHJldFtvdXRQb3NdID0gaXNOZWdhdGl2ZSA/ICctJyA6IGZpbGxCeXRlXG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgIGlmICghZm91bmREaWdpdCAmJiBmbG9hdEJ5dGUgPT0gJyAnKSB7XG4gICAgICAgICAgICBmbG9hdEJ5dGUgPSBpc05lZ2F0aXZlID8gJy0nIDogJysnXG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgICAgICBmbG9hdFBvcyA9IGZvdW5kRGVjaW1hbCA/IC0xIDogbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSByZXRbb3V0UG9zXSA9IGlzTmVnYXRpdmUgPyAnLScgOiAnKydcbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnJCc6XG4gICAgICAgICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgICAgIGZsb2F0Qnl0ZSA9ICckJ1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAgICAgZmxvYXRQb3MgPSBmb3VuZERlY2ltYWwgPyAtMSA6IG1hc2tQb3NcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSAnJCdcbiAgICAgICAgICB9XG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIC8vIGNhc2UgJyYnOlxuICAgICAgICAvLyAgIGN1cnJlbmN5ID0gdHJ1ZVxuICAgICAgICAvLyAgIGlmICghZm91bmREaWdpdCAmJiBmbG9hdEJ5dGUgPT0gJyAnKSB7XG4gICAgICAgIC8vICAgICBmbG9hdEJ5dGUgPSAnJidcbiAgICAgICAgLy8gICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgLy8gICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgIC8vICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIHJldFtvdXRQb3NdID0gJyYnXG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgICsrb3V0UG9zXG4gICAgICAgIC8vICAgYnJlYWtcblxuICAgICAgICAvLyBjYXNlICdAJzpcbiAgICAgICAgLy8gICBjdXJyZW5jeSA9IHRydWVcbiAgICAgICAgLy8gICBpZiAoIWZvdW5kRGlnaXQgJiYgZmxvYXRCeXRlID09ICcgJykge1xuICAgICAgICAvLyAgICAgZmxvYXRCeXRlID0gJ0AnXG4gICAgICAgIC8vICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgIC8vICAgICBmbG9hdFBvcyA9IGZvdW5kRGVjaW1hbCA/IC0xIDogbWFza1Bvc1xuICAgICAgICAvLyAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXRbb3V0UG9zXSA9ICdAJ1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gICArK291dFBvc1xuICAgICAgICAvLyAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnKCc6XG4gICAgICAgICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSBmbG9hdEJ5dGUgPSAnKCdcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJygnXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZvdW5kRGVjaW1hbCA/ICcgJyA6IGZpbGxCeXRlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcpJzpcbiAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSAnKSdcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmb3VuZERlY2ltYWwgPyAnICcgOiBmaWxsQnl0ZVxuICAgICAgICAgIH1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnQyc6XG4gICAgICAgICAgaWYgKG1hc2tQb3MgPCBtYXNrTGVuIC0gMSAmJiBtYXNrLmNoYXJBdChtYXNrUG9zICsgMSkgPT0gJ1InKSB7XG4gICAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdDJ1xuICAgICAgICAgICAgICByZXRbb3V0UG9zICsgMV0gPSAnUidcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJyAnXG4gICAgICAgICAgICAgIHJldFtvdXRQb3MgKyAxXSA9ICcgJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0UG9zICs9IDJcbiAgICAgICAgICAgICsrbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdDJ1xuICAgICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgaWYgKG1hc2tQb3MgPCBtYXNrTGVuIC0gMSAmJiBtYXNrLmNoYXJBdChtYXNrUG9zICsgMSkgPT0gJ1InKSB7XG4gICAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdDJ1xuICAgICAgICAgICAgICByZXRbb3V0UG9zICsgMV0gPSAnUidcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJ0QnXG4gICAgICAgICAgICAgIHJldFtvdXRQb3MgKyAxXSA9ICdSJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0UG9zICs9IDJcbiAgICAgICAgICAgICsrbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdEJ1xuICAgICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcqJzpcbiAgICAgICAgICByZXRbb3V0UG9zXSA9ICcqJ1xuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcuJzpcbiAgICAgICAgICByZXRbb3V0UG9zXSA9IGVtaXREZWNpbWFsID8gZGVjaW1hbFNlcGFyYXRvciA6IGZpbGxCeXRlXG4gICAgICAgICAgZmlsbEJ5dGUgPSAnICdcbiAgICAgICAgICBmb3VuZERlY2ltYWwgPSB0cnVlXG4gICAgICAgICAgKytpblBvc1xuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICdCJzpcbiAgICAgICAgICByZXRbb3V0UG9zXSA9ICcgJ1xuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldFtvdXRQb3NdID0gbVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmxvYXRCeXRlICE9ICcgJykge1xuICAgICAgaWYgKGZsb2F0UG9zIDwgMCkgZmxvYXRQb3MgPSBvdXRQb3NcbiAgICAgIHdoaWxlIChmbG9hdFBvcyA+PSBtYXNrTGVuKSAtLWZsb2F0UG9zXG4gICAgICBpZiAocmV0W2Zsb2F0UG9zXSA9PSBmaWxsSW5pdCkgcmV0W2Zsb2F0UG9zXSA9IGZsb2F0Qnl0ZVxuICAgIH1cblxuICAgIHJldHVybiByZXQuam9pbignJylcbiAgfVxuXG4gIHN0YXRpYyBfc2hpZnQobnVtYmVyLCBwcmVjaXNpb24sIHJldmVyc2VTaGlmdCkge1xuICAgIGlmIChyZXZlcnNlU2hpZnQpIHByZWNpc2lvbiA9IC1wcmVjaXNpb25cbiAgICB2YXIgbnVtQXJyYXkgPSAoJycgKyBudW1iZXIpLnNwbGl0KCdlJylcbiAgICByZXR1cm4gKyhcbiAgICAgIG51bUFycmF5WzBdICtcbiAgICAgICdlJyArXG4gICAgICAobnVtQXJyYXlbMV0gPyArbnVtQXJyYXlbMV0gKyBwcmVjaXNpb24gOiBwcmVjaXNpb24pXG4gICAgKVxuICB9XG5cbiAgc3RhdGljIF9yb3VuZChudW1iZXIsIHByZWNpc2lvbikge1xuICAgIHJldHVybiBOdW1iZXJNYXNrLl9zaGlmdChcbiAgICAgIE1hdGgucm91bmQoTnVtYmVyTWFzay5fc2hpZnQobnVtYmVyLCBwcmVjaXNpb24sIGZhbHNlKSksXG4gICAgICBwcmVjaXNpb24sXG4gICAgICB0cnVlXG4gICAgKVxuICB9XG5cbiAgc3RhdGljIF90b0NoYXJBcnJheShudW1iZXIpIHtcbiAgICBjb25zdCBzaWdudW0gPSBOdW1iZXJNYXNrLl9nZXRTaWduKG51bWJlcilcbiAgICBsZXQgY2hhcnMgPSBbXVxuXG4gICAgaWYgKHNpZ251bSAhPT0gMCkge1xuICAgICAgbGV0IHN0cmluZyA9IHNpZ251bSA8IDAgPyBgJHstMSAqIG51bWJlci50b1N0cmluZygpfWAgOiBudW1iZXIudG9TdHJpbmcoKVxuXG4gICAgICBpZiAoc3RyaW5nLmxlbmd0aCA+IDEgJiYgc3RyaW5nLmNoYXJBdCgwKSA9PSAnMCcpXG4gICAgICAgIHN0cmluZyA9IHN0cmluZy5zdWJzdHJpbmcoMSlcblxuICAgICAgLy8gVGhlIHN0cmluZyBjb250YWlucyBvbmx5IFswLTldIGFuZCAnLidcbiAgICAgIGNoYXJzID0gc3RyaW5nLnNwbGl0KCcnKVxuICAgIH1cblxuICAgIHJldHVybiBjaGFyc1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNpZ24gb2YgYSBudW1iZXJcbiAgICpcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHggbnVtYmVyXG4gICAqIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIHJlcHJlc2VudGluZyB0aGUgc2lnbiBvZiB0aGUgZ2l2ZW4gYXJndW1lbnQuXG4gICAqICAgICAgICAgICAgICAgICAgIElmIHRoZSBhcmd1bWVudCBpcyBhIHBvc2l0aXZlIG51bWJlciwgbmVnYXRpdmUgbnVtYmVyLCBwb3NpdGl2ZSB6ZXJvXG4gICAqICAgICAgICAgICAgICAgICAgIG9yIG5lZ2F0aXZlIHplcm8sIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiAxLCAtMSwgMCBvciAtMCByZXNwZWN0aXZlbHkuXG4gICAqICAgICAgICAgICAgICAgICAgIE90aGVyd2lzZSwgTmFOIGlzIHJldHVybmVkLlxuICAgKi9cbiAgc3RhdGljIF9nZXRTaWduKHgpIHtcbiAgICByZXR1cm4gKHggPiAwKSAtICh4IDwgMCkgfHwgK3hcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBOdW1iZXJNYXNrXG4iLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IE51bWJlck1hc2sgZnJvbSAnLi9OdW1iZXJNYXNrJ1xuXG5leHBvcnQgZGVmYXVsdCBOdW1iZXJNYXNrXG4iLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuY29uc3QgaXNOdW1iZXJSZWdleCA9IC9eXFxkKyQvXG5jb25zdCBpc1doaXRlc3BhY2VSZWdleCA9IC9cXHMvXG5jb25zdCBwdW5jdHVhdGlvbkxpc3QgPSAnIVwiIyQlJlxcJygpKissLS4vOjs8PT4/QFtdXl9ge3x9fidcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGlzIGluIGxvd2VyIGNhc2VcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKi9cbmNvbnN0IGlzTG93ZXJDYXNlID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ciA9PSBzdHIudG9Mb3dlckNhc2UoKSAmJiBzdHIgIT0gc3RyLnRvVXBwZXJDYXNlKClcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGlzIGluIHVwcGVyIGNhc2VcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKi9cbmNvbnN0IGlzVXBwZXJDYXNlID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ciA9PSBzdHIudG9VcHBlckNhc2UoKSAmJiBzdHIgIT0gc3RyLnRvTG93ZXJDYXNlKClcbn1cblxuY29uc3QgcGFzc09yVGhyb3dFcnJvciA9IChsb29zZSwgcmV0LCBpLCBzdHIpID0+IHtcbiAgaWYgKCFsb29zZSkge1xuICAgIGNvbnN0IGNoYXIgPSBzdHIuY2hhckF0KGkpXG4gICAgY29uc3QgcG9zID0gaSArIDFcbiAgICB0aHJvdyB7XG4gICAgICBuYW1lOiAnU3RyaW5nTWFza0Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6IGBTdHJpbmdNYXNrRXJyb3I6IGVycm9yIGFwcGx5aW5nIG1hc2sgYXQgcG9zaXRpb24gXCIke3Bvc31cIiAsIGNoYXIgXCIke2NoYXJ9XCJgLFxuICAgICAgcG9zLFxuICAgICAgY2hhclxuICAgIH1cbiAgfSBlbHNlIHJldFtpXSA9ICcgJ1xufVxuXG4vKipcbiAqIE51bWJlck1hc2tcbiAqXG4gKiBBIGphdmFzY3JpcHQgaW1wbGVtZW50YXRpb24gZm9yIEJCaiBudW1iZXJzIG1hc2tpbmdcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBTdHJpbmdNYXNrIHtcbiAgLyoqXG4gICAqIE1hc2sgdGhlIGdpdmVuIHN0cmluZyB3aXRoIHRoZSBnaXZlbiBtYXNrIGFjY29yZGluZyB0byBCQmogcnVsZXNcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0ciB0aGUgc3RyaW5nIHRvIG1hc2tcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgdGhlIG1hc2sgdG8gdXNlIGZvciBmb3JtYXR0aW5nXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2xvb3NlPXRydWVdIHdoZW4gdHJ1ZSAsIGVycm9ycyB3aWxsIGJlIGlnbm9yZWQgYW5kIHRoZSBtZXRob2Qgd2lsbCB0cnkgYXQgYXBwbHkgdGhlIG1hc2tcbiAgICogICAgICAgICAgICAgICAgYW55d2F5ICwgb3RoZXJ3aXNlIGl0IHdpbGwgc3RvcCBhdCBmaXJzdCBlcnJvciBhbmQgdGhyb3cgaXQuXG4gICAqIFxuICAgKiBAdGhyb3dzIHtNYXNrSXNUb29TaG9ydEVycm9yfVxuICAgKiBAdGhyb3dzIHtTdHJpbmdNYXNrRXJyb3J9XG4gICAqIEB0aHJvd3Mge01hc2tFcnJvcn1cbiAgICogXG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IHRoZSBtYXNrZWQgc3RyaW5nXG4gICAqL1xuICBzdGF0aWMgbWFzayhzdHIsIG1hc2ssIGxvb3NlID0gdHJ1ZSkge1xuICAgIHN0ciA9IFN0cmluZyhzdHIpXG4gICAgbWFzayA9IFN0cmluZyhtYXNrKVxuICAgIGNvbnN0IG1hc2tMZW4gPSBtYXNrLmxlbmd0aFxuICAgIGNvbnN0IHN0ckxlbiA9IHN0ci5sZW5ndGhcblxuICAgIGlmIChzdHJMZW4gPiBtYXNrTGVuKSB7XG4gICAgICBpZiAobG9vc2UpIHJldHVybiBzdHJcbiAgICAgIC8vIGZyaWVuZGx5IHNpbGVudCBmYWlsXG4gICAgICBlbHNlXG4gICAgICAgIHRocm93IHtcbiAgICAgICAgICBuYW1lOiAnTWFza0lzVG9vU2hvcnRFcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogYE1hc2tJc1Rvb1Nob3J0RXJyb3I6IE1hc2sgaXMgc2hvcnRlciB0aGFuIHRoZSBwYXNzZWQgc3RyaW5nYFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5KG1hc2tMZW4pXG4gICAgbGV0IHBvcyA9IDAgLy8gdG8ga2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgc3RyXG4gICAgbGV0IG1hc2tCeXRlID0gJydcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFza0xlbjsgaSsrKSB7XG4gICAgICBtYXNrQnl0ZSA9IG1hc2suY2hhckF0KGkpXG4gICAgICBzd2l0Y2ggKG1hc2tCeXRlKSB7XG4gICAgICAgIGNhc2UgJ1gnOiAvLyBtYXRjaCBhbnkgY2hhcmFjdGVyXG4gICAgICAgICAgcmV0W2ldID0gcG9zIDwgc3RyTGVuID8gc3RyLmNoYXJBdChwb3MpIDogJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ0EnOiAvLyBtYXRjaCBsZXR0ZXI7IGZvcmNlIHVwcGVyIGNhc2VcbiAgICAgICAgICBpZiAocG9zIDwgc3RyTGVuKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlID0gc3RyLmNoYXJBdChwb3MpXG4gICAgICAgICAgICBpZiAoaXNVcHBlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzTG93ZXJDYXNlKGJ5dGUpKSByZXRbaV0gPSBieXRlLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICdhJzogLy8gbWF0Y2ggbGV0dGVyXG4gICAgICAgICAgaWYgKHBvcyA8IHN0ckxlbikge1xuICAgICAgICAgICAgY29uc3QgYnl0ZSA9IHN0ci5jaGFyQXQocG9zKVxuICAgICAgICAgICAgaWYgKGlzVXBwZXJDYXNlKGJ5dGUpIHx8IGlzTG93ZXJDYXNlKGJ5dGUpKSByZXRbaV0gPSBieXRlXG4gICAgICAgICAgICBlbHNlIHBhc3NPclRocm93RXJyb3IobG9vc2UsIHJldCwgaSwgc3RyKVxuICAgICAgICAgIH0gZWxzZSByZXRbaV0gPSAnICdcbiAgICAgICAgICArK3Bvc1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJzAnOiAvLyBtYXRjaCBkaWdpdFxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChpc051bWJlclJlZ2V4LnRlc3QoYnl0ZSkpIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnWic6IC8vIG1hdGNoIGxldHRlciBvciBkaWdpdDsgZm9yY2UgdXBwZXIgY2FzZVxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChpc1VwcGVyQ2FzZShieXRlKSB8fCBpc051bWJlclJlZ2V4LnRlc3QoYnl0ZSkpIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzTG93ZXJDYXNlKGJ5dGUpKSByZXRbaV0gPSBieXRlLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAneic6IC8vIG1hdGNoIGxldHRlciBvciBkaWdpdFxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgaXNVcHBlckNhc2UoYnl0ZSkgfHxcbiAgICAgICAgICAgICAgaXNMb3dlckNhc2UoYnl0ZSkgfHxcbiAgICAgICAgICAgICAgaXNOdW1iZXJSZWdleC50ZXN0KGJ5dGUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ1UnOiAvLyBtYXRjaCBsZXR0ZXIgKGZvcmNlIHVwcGVyIGNhc2UpLCBkaWdpdCwgd2hpdGVzcGFjZSBvciBwdW5jdHVhdGlvbi5cbiAgICAgICAgICBpZiAocG9zIDwgc3RyTGVuKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlID0gc3RyLmNoYXJBdChwb3MpXG4gICAgICAgICAgICBpZiAoaXNMb3dlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGUudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAgIGlzVXBwZXJDYXNlKGJ5dGUpIHx8XG4gICAgICAgICAgICAgIGlzTnVtYmVyUmVnZXgudGVzdChieXRlKSB8fFxuICAgICAgICAgICAgICBpc1doaXRlc3BhY2VSZWdleC50ZXN0KGJ5dGUpIHx8XG4gICAgICAgICAgICAgIHB1bmN0dWF0aW9uTGlzdC5pbmRleE9mKGJ5dGUpID4gLTFcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldFtpXSA9IG1hc2tCeXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocG9zIDwgc3RyTGVuKSB7XG4gICAgICBpZiAoIWxvb3NlKSB7XG4gICAgICAgIHRocm93IHsgbmFtZTogJ01hc2tFcnJvcicsIG1lc3NhZ2U6ICdNYXNrIGNhbm5vdCBiZSBhcHBsaWVkJyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldC5qb2luKCcnKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFN0cmluZ01hc2tcbiIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgU3RyaW5nTWFzayBmcm9tICcuL1N0cmluZ01hc2snXG5cbmV4cG9ydCBkZWZhdWx0IFN0cmluZ01hc2tcbiIsIlxudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctZ3JpZC5jc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWQgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcIikoY29udGVudCwgb3B0aW9ucyk7XG5cbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuXG5pZihtb2R1bGUuaG90KSB7XG5cdG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctZ3JpZC5jc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctZ3JpZC5jc3NcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuL2FnLXRoZW1lLWJhbGhhbS1kYXJrLmNzc1wiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuaGVhZCB9O1xuXG52YXIgdXBkYXRlID0gcmVxdWlyZShcIiEuLi8uLi8uLi9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcblxuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG5cbmlmKG1vZHVsZS5ob3QpIHtcblx0bW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy10aGVtZS1iYWxoYW0tZGFyay5jc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctdGhlbWUtYmFsaGFtLWRhcmsuY3NzXCIpO1xuXG5cdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cblx0XHR2YXIgbG9jYWxzID0gKGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdHZhciBrZXksIGlkeCA9IDA7XG5cblx0XHRcdGZvcihrZXkgaW4gYSkge1xuXHRcdFx0XHRpZighYiB8fCBhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRpZHgrKztcblx0XHRcdH1cblxuXHRcdFx0Zm9yKGtleSBpbiBiKSBpZHgtLTtcblxuXHRcdFx0cmV0dXJuIGlkeCA9PT0gMDtcblx0XHR9KGNvbnRlbnQubG9jYWxzLCBuZXdDb250ZW50LmxvY2FscykpO1xuXG5cdFx0aWYoIWxvY2FscykgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGluZyBDU1MgSE1SIGR1ZSB0byBjaGFuZ2VkIGNzcy1tb2R1bGVzIGxvY2Fscy4nKTtcblxuXHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0fSk7XG5cblx0bW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59IiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy10aGVtZS1iYWxoYW0uY3NzXCIpO1xuXG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcblxudmFyIHRyYW5zZm9ybTtcbnZhciBpbnNlcnRJbnRvO1xuXG5cblxudmFyIG9wdGlvbnMgPSB7XCJobXJcIjp0cnVlfVxuXG5vcHRpb25zLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxub3B0aW9ucy5pbnNlcnRJbnRvID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LnBhcmVudC5kb2N1bWVudC5oZWFkIH07XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uLy4uL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuL2FnLXRoZW1lLWJhbGhhbS5jc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctdGhlbWUtYmFsaGFtLmNzc1wiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsIlxudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctdGhlbWUtbWF0ZXJpYWwuY3NzXCIpO1xuXG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcblxudmFyIHRyYW5zZm9ybTtcbnZhciBpbnNlcnRJbnRvO1xuXG5cblxudmFyIG9wdGlvbnMgPSB7XCJobXJcIjp0cnVlfVxuXG5vcHRpb25zLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxub3B0aW9ucy5pbnNlcnRJbnRvID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LnBhcmVudC5kb2N1bWVudC5oZWFkIH07XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uLy4uL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuL2FnLXRoZW1lLW1hdGVyaWFsLmNzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy10aGVtZS1tYXRlcmlhbC5jc3NcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJNYXNrc1wiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJCQmpcIl0gPSByb290W1wiQkJqXCJdIHx8IHt9LCByb290W1wiQkJqXCJdW1wiTWFza3NcIl0gPSBmYWN0b3J5KCk7XG59KSh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgPyBzZWxmIDogdGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDQyKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCA5OTA1NGJkNzlmMjNlYTBmMDk4OCIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi9Db21wb25lbnQnXG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudFxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0NvbXBvbmVudC9pbmRleC5qcyIsImltcG9ydCB7IGRlY29yYXRlLCBjcmVhdGVEZWZhdWx0U2V0dGVyLFxuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLCBnZXRPd25LZXlzLCBiaW5kIH0gZnJvbSAnLi9wcml2YXRlL3V0aWxzJztcbmNvbnN0IHsgZGVmaW5lUHJvcGVydHksIGdldFByb3RvdHlwZU9mIH0gPSBPYmplY3Q7XG5cbmxldCBtYXBTdG9yZTtcblxuZnVuY3Rpb24gZ2V0Qm91bmRTdXBlcihvYmosIGZuKSB7XG4gIGlmICh0eXBlb2YgV2Vha01hcCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVXNpbmcgQGF1dG9iaW5kIG9uICR7Zm4ubmFtZX0oKSByZXF1aXJlcyBXZWFrTWFwIHN1cHBvcnQgZHVlIHRvIGl0cyB1c2Ugb2Ygc3VwZXIuJHtmbi5uYW1lfSgpXG4gICAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2pheXBoZWxwcy9jb3JlLWRlY29yYXRvcnMuanMvaXNzdWVzLzIwYFxuICAgICk7XG4gIH1cblxuICBpZiAoIW1hcFN0b3JlKSB7XG4gICAgIG1hcFN0b3JlID0gbmV3IFdlYWtNYXAoKTtcbiAgfVxuXG4gIGlmIChtYXBTdG9yZS5oYXMob2JqKSA9PT0gZmFsc2UpIHtcbiAgICBtYXBTdG9yZS5zZXQob2JqLCBuZXcgV2Vha01hcCgpKTtcbiAgfVxuXG4gIGNvbnN0IHN1cGVyU3RvcmUgPSBtYXBTdG9yZS5nZXQob2JqKTtcblxuICBpZiAoc3VwZXJTdG9yZS5oYXMoZm4pID09PSBmYWxzZSkge1xuICAgIHN1cGVyU3RvcmUuc2V0KGZuLCBiaW5kKGZuLCBvYmopKTtcbiAgfVxuXG4gIHJldHVybiBzdXBlclN0b3JlLmdldChmbik7XG59XG5cbmZ1bmN0aW9uIGF1dG9iaW5kQ2xhc3Moa2xhc3MpIHtcbiAgY29uc3QgZGVzY3MgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGtsYXNzLnByb3RvdHlwZSk7XG4gIGNvbnN0IGtleXMgPSBnZXRPd25LZXlzKGRlc2NzKTtcblxuICBmb3IgKGxldCBpID0gMCwgbCA9IGtleXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICBjb25zdCBkZXNjID0gZGVzY3Nba2V5XTtcblxuICAgIGlmICh0eXBlb2YgZGVzYy52YWx1ZSAhPT0gJ2Z1bmN0aW9uJyB8fCBrZXkgPT09ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGRlZmluZVByb3BlcnR5KGtsYXNzLnByb3RvdHlwZSwga2V5LCBhdXRvYmluZE1ldGhvZChrbGFzcy5wcm90b3R5cGUsIGtleSwgZGVzYykpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGF1dG9iaW5kTWV0aG9kKHRhcmdldCwga2V5LCB7IHZhbHVlOiBmbiwgY29uZmlndXJhYmxlLCBlbnVtZXJhYmxlIH0pIHtcbiAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihgQGF1dG9iaW5kIGNhbiBvbmx5IGJlIHVzZWQgb24gZnVuY3Rpb25zLCBub3Q6ICR7Zm59YCk7XG4gIH1cblxuICBjb25zdCB7IGNvbnN0cnVjdG9yIH0gPSB0YXJnZXQ7XG5cbiAgcmV0dXJuIHtcbiAgICBjb25maWd1cmFibGUsXG4gICAgZW51bWVyYWJsZSxcblxuICAgIGdldCgpIHtcbiAgICAgIC8vIENsYXNzLnByb3RvdHlwZS5rZXkgbG9va3VwXG4gICAgICAvLyBTb21lb25lIGFjY2Vzc2VzIHRoZSBwcm9wZXJ0eSBkaXJlY3RseSBvbiB0aGUgcHJvdG90eXBlIG9uIHdoaWNoIGl0IGlzXG4gICAgICAvLyBhY3R1YWxseSBkZWZpbmVkIG9uLCBpLmUuIENsYXNzLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShrZXkpXG4gICAgICBpZiAodGhpcyA9PT0gdGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiBmbjtcbiAgICAgIH1cblxuICAgICAgLy8gQ2xhc3MucHJvdG90eXBlLmtleSBsb29rdXBcbiAgICAgIC8vIFNvbWVvbmUgYWNjZXNzZXMgdGhlIHByb3BlcnR5IGRpcmVjdGx5IG9uIGEgcHJvdG90eXBlIGJ1dCBpdCB3YXMgZm91bmRcbiAgICAgIC8vIHVwIHRoZSBjaGFpbiwgbm90IGRlZmluZWQgZGlyZWN0bHkgb24gaXRcbiAgICAgIC8vIGkuZS4gQ2xhc3MucHJvdG90eXBlLmhhc093blByb3BlcnR5KGtleSkgPT0gZmFsc2UgJiYga2V5IGluIENsYXNzLnByb3RvdHlwZVxuICAgICAgaWYgKHRoaXMuY29uc3RydWN0b3IgIT09IGNvbnN0cnVjdG9yICYmIGdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yID09PSBjb25zdHJ1Y3Rvcikge1xuICAgICAgICByZXR1cm4gZm47XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG9ib3VuZCBtZXRob2QgY2FsbGluZyBzdXBlci5zYW1lTWV0aG9kKCkgd2hpY2ggaXMgYWxzbyBhdXRvYm91bmQgYW5kIHNvIG9uLlxuICAgICAgaWYgKHRoaXMuY29uc3RydWN0b3IgIT09IGNvbnN0cnVjdG9yICYmIGtleSBpbiB0aGlzLmNvbnN0cnVjdG9yLnByb3RvdHlwZSkge1xuICAgICAgICByZXR1cm4gZ2V0Qm91bmRTdXBlcih0aGlzLCBmbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvdW5kRm4gPSBiaW5kKGZuLCB0aGlzKTtcblxuICAgICAgZGVmaW5lUHJvcGVydHkodGhpcywga2V5LCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIC8vIE5PVCBlbnVtZXJhYmxlIHdoZW4gaXQncyBhIGJvdW5kIG1ldGhvZFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IGJvdW5kRm5cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYm91bmRGbjtcbiAgICB9LFxuICAgIHNldDogY3JlYXRlRGVmYXVsdFNldHRlcihrZXkpXG4gIH07XG59XG5cbmZ1bmN0aW9uIGhhbmRsZShhcmdzKSB7XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiBhdXRvYmluZENsYXNzKC4uLmFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhdXRvYmluZE1ldGhvZCguLi5hcmdzKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhdXRvYmluZCguLi5hcmdzKSB7XG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaGFuZGxlKGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gaGFuZGxlKGFyZ3MpO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1kZWNvcmF0b3JzL3NyYy9hdXRvYmluZC5qcyIsImltcG9ydCB7IGRlY29yYXRlIH0gZnJvbSAnLi9wcml2YXRlL3V0aWxzJztcblxuY29uc3QgR0VORVJJQ19GVU5DVElPTl9FUlJPUiA9ICd7Y2hpbGR9IGRvZXMgbm90IHByb3Blcmx5IG92ZXJyaWRlIHtwYXJlbnR9JztcbmNvbnN0IEZVTkNUSU9OX1JFR0VYUCA9IC9eZnVuY3Rpb24gKFtfJGEtekEtWlxceEEwLVxcdUZGRkZdW18kYS16QS1aMC05XFx4QTAtXFx1RkZGRl0qKT8oXFwoW15cXCldKlxcKSlbXFxzXFxTXSskLztcblxuY2xhc3MgU3ludGF4RXJyb3JSZXBvcnRlciB7XG4gIHBhcmVudEtsYXNzO1xuICBjaGlsZEtsYXNzO1xuICBwYXJlbnREZXNjcmlwdG9yO1xuICBjaGlsZERlc2NyaXB0b3I7XG4gIFxuICBnZXQga2V5KCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkRGVzY3JpcHRvci5rZXk7ICBcbiAgfVxuICBcbiAgZ2V0IHBhcmVudE5vdGF0aW9uKCkge1xuICAgIHJldHVybiBgJHt0aGlzLnBhcmVudEtsYXNzLmNvbnN0cnVjdG9yLm5hbWV9IyR7dGhpcy5wYXJlbnRQcm9wZXJ0eVNpZ25hdHVyZX1gO1xuICB9XG5cbiAgZ2V0IGNoaWxkTm90YXRpb24oKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuY2hpbGRLbGFzcy5jb25zdHJ1Y3Rvci5uYW1lfSMke3RoaXMuY2hpbGRQcm9wZXJ0eVNpZ25hdHVyZX1gO1xuICB9XG4gIFxuICBnZXQgcGFyZW50VG9waWMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFRvcGljKHRoaXMucGFyZW50RGVzY3JpcHRvcik7XG4gIH1cbiAgXG4gIGdldCBjaGlsZFRvcGljKCkge1xuICAgIHJldHVybiB0aGlzLl9nZXRUb3BpYyh0aGlzLmNoaWxkRGVzY3JpcHRvcik7XG4gIH1cbiAgXG4gIF9nZXRUb3BpYyhkZXNjcmlwdG9yKSB7XG4gICAgaWYgKGRlc2NyaXB0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7ICBcbiAgICB9XG4gICAgXG4gICAgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikge1xuICAgICAgcmV0dXJuIGRlc2NyaXB0b3IudmFsdWU7XG4gICAgfVxuICAgIFxuICAgIGlmICgnZ2V0JyBpbiBkZXNjcmlwdG9yKSB7XG4gICAgICByZXR1cm4gZGVzY3JpcHRvci5nZXQ7XG4gICAgfVxuICAgIFxuICAgIGlmICgnc2V0JyBpbiBkZXNjcmlwdG9yKSB7XG4gICAgICByZXR1cm4gZGVzY3JpcHRvci5zZXQ7XG4gICAgfVxuICB9XG4gIFxuICBnZXQgcGFyZW50UHJvcGVydHlTaWduYXR1cmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2V4dHJhY3RUb3BpY1NpZ25hdHVyZSh0aGlzLnBhcmVudFRvcGljKTsgXG4gIH1cbiAgXG4gIGdldCBjaGlsZFByb3BlcnR5U2lnbmF0dXJlKCkge1xuICAgIHJldHVybiB0aGlzLl9leHRyYWN0VG9waWNTaWduYXR1cmUodGhpcy5jaGlsZFRvcGljKTsgXG4gIH1cbiAgXG4gIF9leHRyYWN0VG9waWNTaWduYXR1cmUodG9waWMpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiB0b3BpYykge1xuICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICByZXR1cm4gdGhpcy5fZXh0cmFjdEZ1bmN0aW9uU2lnbmF0dXJlKHRvcGljKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLmtleTtcbiAgICB9XG4gIH1cbiAgXG4gIF9leHRyYWN0RnVuY3Rpb25TaWduYXR1cmUoZm4pIHtcbiAgICByZXR1cm4gZm5cbiAgICAgIC50b1N0cmluZygpXG4gICAgICAucmVwbGFjZShcbiAgICAgICAgRlVOQ1RJT05fUkVHRVhQLFxuICAgICAgICAobWF0Y2gsIG5hbWUgPSB0aGlzLmtleSwgcGFyYW1zKSA9PiBuYW1lICsgcGFyYW1zXG4gICAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocGFyZW50S2xhc3MsIGNoaWxkS2xhc3MsIHBhcmVudERlc2NyaXB0b3IsIGNoaWxkRGVzY3JpcHRvcikge1xuICAgIHRoaXMucGFyZW50S2xhc3MgPSBwYXJlbnRLbGFzcztcbiAgICB0aGlzLmNoaWxkS2xhc3MgPSBjaGlsZEtsYXNzO1xuICAgIHRoaXMucGFyZW50RGVzY3JpcHRvciA9IHBhcmVudERlc2NyaXB0b3I7XG4gICAgdGhpcy5jaGlsZERlc2NyaXB0b3IgPSBjaGlsZERlc2NyaXB0b3I7XG4gIH1cbiAgXG4gIGFzc2VydChjb25kaXRpb24sIG1zZyA9ICcnKSB7XG4gICAgaWYgKGNvbmRpdGlvbiAhPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5lcnJvcihHRU5FUklDX0ZVTkNUSU9OX0VSUk9SICsgbXNnKTtcbiAgICB9XG4gIH1cbiAgXG4gIGVycm9yKG1zZykge1xuICAgIG1zZyA9IG1zZ1xuICAgICAgLy8gUmVwbGFjZSBsYXppbHksIGJlY2F1c2UgdGhleSBhY3R1YWxseSBtaWdodCBub3RcbiAgICAgIC8vIGJlIGF2YWlsYWJsZSBpbiBhbGwgY2FzZXNcbiAgICAgIC5yZXBsYWNlKCd7cGFyZW50fScsIG0gPT4gdGhpcy5wYXJlbnROb3RhdGlvbilcbiAgICAgIC5yZXBsYWNlKCd7Y2hpbGR9JywgbSA9PiB0aGlzLmNoaWxkTm90YXRpb24pO1xuICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihtc2cpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlc2NyaXB0b3JUeXBlKGRlc2NyaXB0b3IpIHtcbiAgaWYgKGRlc2NyaXB0b3IuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykpIHtcbiAgICByZXR1cm4gJ2RhdGEnO1xuICB9XG5cbiAgaWYgKGRlc2NyaXB0b3IuaGFzT3duUHJvcGVydHkoJ2dldCcpIHx8IGRlc2NyaXB0b3IuaGFzT3duUHJvcGVydHkoJ3NldCcpKSB7XG4gICAgcmV0dXJuICdhY2Nlc3Nvcic7XG4gIH1cblxuICAvLyBJZiBub25lIG9mIHRoZW0gZXhpc3QsIGJyb3dzZXJzIHRyZWF0IGl0IGFzXG4gIC8vIGEgZGF0YSBkZXNjcmlwdG9yIHdpdGggYSB2YWx1ZSBvZiBgdW5kZWZpbmVkYFxuICByZXR1cm4gJ2RhdGEnO1xufVxuXG5mdW5jdGlvbiBjaGVja0Z1bmN0aW9uU2lnbmF0dXJlcyhwYXJlbnQsIGNoaWxkLCByZXBvcnRlcikge1xuICByZXBvcnRlci5hc3NlcnQocGFyZW50Lmxlbmd0aCA9PT0gY2hpbGQubGVuZ3RoKTtcbn1cblxuZnVuY3Rpb24gY2hlY2tEYXRhRGVzY3JpcHRvcnMocGFyZW50LCBjaGlsZCwgcmVwb3J0ZXIpIHtcbiAgY29uc3QgcGFyZW50VmFsdWVUeXBlID0gdHlwZW9mIHBhcmVudC52YWx1ZTtcbiAgY29uc3QgY2hpbGRWYWx1ZVR5cGUgPSB0eXBlb2YgY2hpbGQudmFsdWU7XG4gIFxuICBpZiAocGFyZW50VmFsdWVUeXBlID09PSAndW5kZWZpbmVkJyAmJiBjaGlsZFZhbHVlVHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBjbGFzcyBwcm9wZXJ0aWVzIGNhbiBiZSBhbnkgZXhwcmVzc2lvbiwgd2hpY2ggaXNuJ3QgcmFuIHVudGlsIHRoZVxuICAgIC8vIHRoZSBpbnN0YW5jZSBpcyBjcmVhdGVkLCBzbyB3ZSBjYW4ndCByZWxpYWJseSBnZXQgdHlwZSBpbmZvcm1hdGlvblxuICAgIC8vIGZvciB0aGVtIHlldCAocGVyIHNwZWMpLiBQZXJoYXBzIHdoZW4gQmFiZWwgaW5jbHVkZXMgZmxvdy10eXBlIGluZm9cbiAgICAvLyBpbiBydW50aW1lPyBUcmllZCByZWdleCBzb2x1dGlvbnMsIGJ1dCBzdXBlciBoYWNreSBhbmQgb25seSBmZWFzaWJsZVxuICAgIC8vIG9uIHByaW1pdGl2ZXMsIHdoaWNoIGlzIGNvbmZ1c2luZyBmb3IgdXNhZ2UuLi5cbiAgICByZXBvcnRlci5lcnJvcihgZGVzY3JpcHRvciB2YWx1ZXMgYXJlIGJvdGggdW5kZWZpbmVkLiAoY2xhc3MgcHJvcGVydGllcyBhcmUgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkKSdgKTtcbiAgfVxuICBcbiAgaWYgKHBhcmVudFZhbHVlVHlwZSAhPT0gY2hpbGRWYWx1ZVR5cGUpIHtcbiAgICBjb25zdCBpc0Z1bmN0aW9uT3ZlclVuZGVmaW5lZCA9IChjaGlsZFZhbHVlVHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJiBwYXJlbnRWYWx1ZVR5cGUgPT09IHVuZGVmaW5lZCk7XG4gICAgLy8gRXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBjbGFzcyBwcm9wZXJ0aWVzLCB0aGlzXG4gICAgLy8gd2lsbCBzdGlsbCBoYW5kbGUgbW9yZSB0aGFuIGp1c3QgZnVuY3Rpb25zLCBqdXN0IGluIGNhc2UuXG4gICAgLy8gU2hhZG93aW5nIGFuIHVuZGVmaW5lZCB2YWx1ZSBpcyBhbiBlcnJvciBpZiB0aGUgaW5oZXJpdGVkXG4gICAgLy8gdmFsdWUgd2FzIHVuZGVmaW5lZCAodXN1YWxseSBhIGNsYXNzIHByb3BlcnR5LCBub3QgYSBtZXRob2QpXG4gICAgaWYgKGlzRnVuY3Rpb25PdmVyVW5kZWZpbmVkIHx8IHBhcmVudFZhbHVlVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXBvcnRlci5lcnJvcihgdmFsdWUgdHlwZXMgZG8gbm90IG1hdGNoLiB7cGFyZW50fSBpcyBcIiR7cGFyZW50VmFsdWVUeXBlfVwiLCB7Y2hpbGR9IGlzIFwiJHtjaGlsZFZhbHVlVHlwZX1cImApO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gU3dpdGNoLCBpbiBwcmVwYXJhdGlvbiBmb3Igc3VwcG9ydGluZyBtb3JlIHR5cGVzXG4gIHN3aXRjaCAoY2hpbGRWYWx1ZVR5cGUpIHtcbiAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICBjaGVja0Z1bmN0aW9uU2lnbmF0dXJlcyhwYXJlbnQudmFsdWUsIGNoaWxkLnZhbHVlLCByZXBvcnRlcik7XG4gICAgICBicmVhaztcbiAgICAgIFxuICAgIGRlZmF1bHQ6XG4gICAgICByZXBvcnRlci5lcnJvcihgVW5leHBlY3RlZCBlcnJvci4gUGxlYXNlIGZpbGUgYSBidWcgd2l0aDoge3BhcmVudH0gaXMgXCIke3BhcmVudFZhbHVlVHlwZX1cIiwge2NoaWxkfSBpcyBcIiR7Y2hpbGRWYWx1ZVR5cGV9XCJgKTtcbiAgICAgIGJyZWFrO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrQWNjZXNzb3JEZXNjcmlwdG9ycyhwYXJlbnQsIGNoaWxkLCByZXBvcnRlcikge1xuICBjb25zdCBwYXJlbnRIYXNHZXR0ZXIgPSB0eXBlb2YgcGFyZW50LmdldCA9PT0gJ2Z1bmN0aW9uJztcbiAgY29uc3QgY2hpbGRIYXNHZXR0ZXIgPSB0eXBlb2YgY2hpbGQuZ2V0ID09PSAnZnVuY3Rpb24nO1xuICBjb25zdCBwYXJlbnRIYXNTZXR0ZXIgPSB0eXBlb2YgcGFyZW50LnNldCA9PT0gJ2Z1bmN0aW9uJztcbiAgY29uc3QgY2hpbGRIYXNTZXR0ZXIgPSB0eXBlb2YgY2hpbGQuc2V0ID09PSAnZnVuY3Rpb24nO1xuICBcbiAgaWYgKHBhcmVudEhhc0dldHRlciB8fCBjaGlsZEhhc0dldHRlcikge1xuICAgIGlmICghcGFyZW50SGFzR2V0dGVyICYmIHBhcmVudEhhc1NldHRlcikge1xuICAgICAgcmVwb3J0ZXIuZXJyb3IoYHtwYXJlbnR9IGlzIHNldHRlciBidXQge2NoaWxkfSBpcyBnZXR0ZXJgKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKCFjaGlsZEhhc0dldHRlciAmJiBjaGlsZEhhc1NldHRlcikge1xuICAgICAgcmVwb3J0ZXIuZXJyb3IoYHtwYXJlbnR9IGlzIGdldHRlciBidXQge2NoaWxkfSBpcyBzZXR0ZXJgKTtcbiAgICB9XG4gICAgXG4gICAgY2hlY2tGdW5jdGlvblNpZ25hdHVyZXMocGFyZW50LmdldCwgY2hpbGQuZ2V0LCByZXBvcnRlcik7XG4gIH1cbiAgXG4gIGlmIChwYXJlbnRIYXNTZXR0ZXIgfHwgY2hpbGRIYXNTZXR0ZXIpIHtcbiAgICBpZiAoIXBhcmVudEhhc1NldHRlciAmJiBwYXJlbnRIYXNHZXR0ZXIpIHtcbiAgICAgIHJlcG9ydGVyLmVycm9yKGB7cGFyZW50fSBpcyBnZXR0ZXIgYnV0IHtjaGlsZH0gaXMgc2V0dGVyYCk7XG4gICAgfVxuICAgIFxuICAgIGlmICghY2hpbGRIYXNTZXR0ZXIgJiYgY2hpbGRIYXNHZXR0ZXIpIHtcbiAgICAgIHJlcG9ydGVyLmVycm9yKGB7cGFyZW50fSBpcyBzZXR0ZXIgYnV0IHtjaGlsZH0gaXMgZ2V0dGVyYCk7XG4gICAgfVxuICAgIFxuICAgIGNoZWNrRnVuY3Rpb25TaWduYXR1cmVzKHBhcmVudC5zZXQsIGNoaWxkLnNldCwgcmVwb3J0ZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrRGVzY3JpcHRvcnMocGFyZW50LCBjaGlsZCwgcmVwb3J0ZXIpIHtcbiAgY29uc3QgcGFyZW50VHlwZSA9IGdldERlc2NyaXB0b3JUeXBlKHBhcmVudCk7XG4gIGNvbnN0IGNoaWxkVHlwZSA9IGdldERlc2NyaXB0b3JUeXBlKGNoaWxkKTtcblxuICBpZiAocGFyZW50VHlwZSAhPT0gY2hpbGRUeXBlKSB7XG4gICAgcmVwb3J0ZXIuZXJyb3IoYGRlc2NyaXB0b3IgdHlwZXMgZG8gbm90IG1hdGNoLiB7cGFyZW50fSBpcyBcIiR7cGFyZW50VHlwZX1cIiwge2NoaWxkfSBpcyBcIiR7Y2hpbGRUeXBlfVwiYCk7XG4gIH1cblxuICBzd2l0Y2ggKGNoaWxkVHlwZSkge1xuICAgIGNhc2UgJ2RhdGEnOlxuICAgICAgY2hlY2tEYXRhRGVzY3JpcHRvcnMocGFyZW50LCBjaGlsZCwgcmVwb3J0ZXIpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdhY2Nlc3Nvcic6XG4gICAgICBjaGVja0FjY2Vzc29yRGVzY3JpcHRvcnMocGFyZW50LCBjaGlsZCwgcmVwb3J0ZXIpO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cblxuY29uc3Qgc3VnZ2VzdGlvblRyYW5zZm9ybXMgPSBbXG4gIGtleSA9PiBrZXkudG9Mb3dlckNhc2UoKSxcbiAga2V5ID0+IGtleS50b1VwcGVyQ2FzZSgpLFxuICBrZXkgPT4ga2V5ICsgJ3MnLFxuICBrZXkgPT4ga2V5LnNsaWNlKDAsIC0xKSxcbiAga2V5ID0+IGtleS5zbGljZSgxLCBrZXkubGVuZ3RoKSxcbl07XG5cbmZ1bmN0aW9uIGZpbmRQb3NzaWJsZUFsdGVybmF0aXZlcyhzdXBlcktsYXNzLCBrZXkpIHtcbiAgZm9yIChsZXQgaSA9IDAsIGwgPSBzdWdnZXN0aW9uVHJhbnNmb3Jtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb25zdCBmbiA9IHN1Z2dlc3Rpb25UcmFuc2Zvcm1zW2ldO1xuICAgIGNvbnN0IHN1Z2dlc3Rpb24gPSBmbihrZXkpO1xuXG4gICAgaWYgKHN1Z2dlc3Rpb24gaW4gc3VwZXJLbGFzcykge1xuICAgICAgcmV0dXJuIHN1Z2dlc3Rpb247XG4gICAgfVxuICB9XG4gIFxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gaGFuZGxlRGVzY3JpcHRvcih0YXJnZXQsIGtleSwgZGVzY3JpcHRvcikge1xuICBkZXNjcmlwdG9yLmtleSA9IGtleTtcbiAgY29uc3Qgc3VwZXJLbGFzcyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0YXJnZXQpO1xuICBjb25zdCBzdXBlckRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHN1cGVyS2xhc3MsIGtleSk7XG4gIGNvbnN0IHJlcG9ydGVyID0gbmV3IFN5bnRheEVycm9yUmVwb3J0ZXIoc3VwZXJLbGFzcywgdGFyZ2V0LCBzdXBlckRlc2NyaXB0b3IsIGRlc2NyaXB0b3IpO1xuICBcbiAgaWYgKHN1cGVyRGVzY3JpcHRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3Qgc3VnZ2VzdGVkS2V5ID0gZmluZFBvc3NpYmxlQWx0ZXJuYXRpdmVzKHN1cGVyS2xhc3MsIGtleSk7XG4gICAgY29uc3Qgc3VnZ2VzdGlvbiA9IHN1Z2dlc3RlZEtleSA/IGBcXG5cXG4gIERpZCB5b3UgbWVhbiBcIiR7c3VnZ2VzdGVkS2V5fVwiP2AgOiAnJztcbiAgICByZXBvcnRlci5lcnJvcihgTm8gZGVzY3JpcHRvciBtYXRjaGluZyB7Y2hpbGR9IHdhcyBmb3VuZCBvbiB0aGUgcHJvdG90eXBlIGNoYWluLiR7c3VnZ2VzdGlvbn1gKTtcbiAgfVxuICBcbiAgY2hlY2tEZXNjcmlwdG9ycyhzdXBlckRlc2NyaXB0b3IsIGRlc2NyaXB0b3IsIHJlcG9ydGVyKTtcbiAgXG4gIHJldHVybiBkZXNjcmlwdG9yO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvdmVycmlkZSguLi5hcmdzKSB7XG4gIHJldHVybiBkZWNvcmF0ZShoYW5kbGVEZXNjcmlwdG9yLCBhcmdzKTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWRlY29yYXRvcnMvc3JjL292ZXJyaWRlLmpzIiwiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuaW1wb3J0IGdldFJhd1RhZyBmcm9tICcuL19nZXRSYXdUYWcuanMnO1xuaW1wb3J0IG9iamVjdFRvU3RyaW5nIGZyb20gJy4vX29iamVjdFRvU3RyaW5nLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIG51bGxUYWcgPSAnW29iamVjdCBOdWxsXScsXG4gICAgdW5kZWZpbmVkVGFnID0gJ1tvYmplY3QgVW5kZWZpbmVkXSc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBnZXRUYWdgIHdpdGhvdXQgZmFsbGJhY2tzIGZvciBidWdneSBlbnZpcm9ubWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldFRhZyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkVGFnIDogbnVsbFRhZztcbiAgfVxuICByZXR1cm4gKHN5bVRvU3RyaW5nVGFnICYmIHN5bVRvU3RyaW5nVGFnIGluIE9iamVjdCh2YWx1ZSkpXG4gICAgPyBnZXRSYXdUYWcodmFsdWUpXG4gICAgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VHZXRUYWc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0VGFnLmpzIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzT2JqZWN0TGlrZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3RMaWtlLmpzIiwiLypcblx0TUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbi8vIGNzcyBiYXNlIGNvZGUsIGluamVjdGVkIGJ5IHRoZSBjc3MtbG9hZGVyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHVzZVNvdXJjZU1hcCkge1xuXHR2YXIgbGlzdCA9IFtdO1xuXG5cdC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblx0bGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuXHRcdFx0dmFyIGNvbnRlbnQgPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0sIHVzZVNvdXJjZU1hcCk7XG5cdFx0XHRpZihpdGVtWzJdKSB7XG5cdFx0XHRcdHJldHVybiBcIkBtZWRpYSBcIiArIGl0ZW1bMl0gKyBcIntcIiArIGNvbnRlbnQgKyBcIn1cIjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH0pLmpvaW4oXCJcIik7XG5cdH07XG5cblx0Ly8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3Rcblx0bGlzdC5pID0gZnVuY3Rpb24obW9kdWxlcywgbWVkaWFRdWVyeSkge1xuXHRcdGlmKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKVxuXHRcdFx0bW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgXCJcIl1dO1xuXHRcdHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cdFx0Zm9yKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBpZCA9IHRoaXNbaV1bMF07XG5cdFx0XHRpZih0eXBlb2YgaWQgPT09IFwibnVtYmVyXCIpXG5cdFx0XHRcdGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcblx0XHR9XG5cdFx0Zm9yKGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGl0ZW0gPSBtb2R1bGVzW2ldO1xuXHRcdFx0Ly8gc2tpcCBhbHJlYWR5IGltcG9ydGVkIG1vZHVsZVxuXHRcdFx0Ly8gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgMTAwJSBwZXJmZWN0IGZvciB3ZWlyZCBtZWRpYSBxdWVyeSBjb21iaW5hdGlvbnNcblx0XHRcdC8vICB3aGVuIGEgbW9kdWxlIGlzIGltcG9ydGVkIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1lZGlhIHF1ZXJpZXMuXG5cdFx0XHQvLyAgSSBob3BlIHRoaXMgd2lsbCBuZXZlciBvY2N1ciAoSGV5IHRoaXMgd2F5IHdlIGhhdmUgc21hbGxlciBidW5kbGVzKVxuXHRcdFx0aWYodHlwZW9mIGl0ZW1bMF0gIT09IFwibnVtYmVyXCIgfHwgIWFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcblx0XHRcdFx0aWYobWVkaWFRdWVyeSAmJiAhaXRlbVsyXSkge1xuXHRcdFx0XHRcdGl0ZW1bMl0gPSBtZWRpYVF1ZXJ5O1xuXHRcdFx0XHR9IGVsc2UgaWYobWVkaWFRdWVyeSkge1xuXHRcdFx0XHRcdGl0ZW1bMl0gPSBcIihcIiArIGl0ZW1bMl0gKyBcIikgYW5kIChcIiArIG1lZGlhUXVlcnkgKyBcIilcIjtcblx0XHRcdFx0fVxuXHRcdFx0XHRsaXN0LnB1c2goaXRlbSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRyZXR1cm4gbGlzdDtcbn07XG5cbmZ1bmN0aW9uIGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKSB7XG5cdHZhciBjb250ZW50ID0gaXRlbVsxXSB8fCAnJztcblx0dmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuXHRpZiAoIWNzc01hcHBpbmcpIHtcblx0XHRyZXR1cm4gY29udGVudDtcblx0fVxuXG5cdGlmICh1c2VTb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgPT09ICdmdW5jdGlvbicpIHtcblx0XHR2YXIgc291cmNlTWFwcGluZyA9IHRvQ29tbWVudChjc3NNYXBwaW5nKTtcblx0XHR2YXIgc291cmNlVVJMcyA9IGNzc01hcHBpbmcuc291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuXHRcdFx0cmV0dXJuICcvKiMgc291cmNlVVJMPScgKyBjc3NNYXBwaW5nLnNvdXJjZVJvb3QgKyBzb3VyY2UgKyAnICovJ1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIFtjb250ZW50XS5jb25jYXQoc291cmNlVVJMcykuY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbignXFxuJyk7XG5cdH1cblxuXHRyZXR1cm4gW2NvbnRlbnRdLmpvaW4oJ1xcbicpO1xufVxuXG4vLyBBZGFwdGVkIGZyb20gY29udmVydC1zb3VyY2UtbWFwIChNSVQpXG5mdW5jdGlvbiB0b0NvbW1lbnQoc291cmNlTWFwKSB7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuXHR2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKTtcblx0dmFyIGRhdGEgPSAnc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsJyArIGJhc2U2NDtcblxuXHRyZXR1cm4gJy8qIyAnICsgZGF0YSArICcgKi8nO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzIiwiLypcblx0TUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cblxudmFyIHN0eWxlc0luRG9tID0ge307XG5cbnZhclx0bWVtb2l6ZSA9IGZ1bmN0aW9uIChmbikge1xuXHR2YXIgbWVtbztcblxuXHRyZXR1cm4gZnVuY3Rpb24gKCkge1xuXHRcdGlmICh0eXBlb2YgbWVtbyA9PT0gXCJ1bmRlZmluZWRcIikgbWVtbyA9IGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cdFx0cmV0dXJuIG1lbW87XG5cdH07XG59O1xuXG52YXIgaXNPbGRJRSA9IG1lbW9pemUoZnVuY3Rpb24gKCkge1xuXHQvLyBUZXN0IGZvciBJRSA8PSA5IGFzIHByb3Bvc2VkIGJ5IEJyb3dzZXJoYWNrc1xuXHQvLyBAc2VlIGh0dHA6Ly9icm93c2VyaGFja3MuY29tLyNoYWNrLWU3MWQ4NjkyZjY1MzM0MTczZmVlNzE1YzIyMmNiODA1XG5cdC8vIFRlc3RzIGZvciBleGlzdGVuY2Ugb2Ygc3RhbmRhcmQgZ2xvYmFscyBpcyB0byBhbGxvdyBzdHlsZS1sb2FkZXJcblx0Ly8gdG8gb3BlcmF0ZSBjb3JyZWN0bHkgaW50byBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRzXG5cdC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIvaXNzdWVzLzE3N1xuXHRyZXR1cm4gd2luZG93ICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFsbCAmJiAhd2luZG93LmF0b2I7XG59KTtcblxudmFyIGdldFRhcmdldCA9IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTtcbn07XG5cbnZhciBnZXRFbGVtZW50ID0gKGZ1bmN0aW9uIChmbikge1xuXHR2YXIgbWVtbyA9IHt9O1xuXG5cdHJldHVybiBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBwYXNzaW5nIGZ1bmN0aW9uIGluIG9wdGlvbnMsIHRoZW4gdXNlIGl0IGZvciByZXNvbHZlIFwiaGVhZFwiIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgLy8gVXNlZnVsIGZvciBTaGFkb3cgUm9vdCBzdHlsZSBpLmVcbiAgICAgICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAgICAgLy8gICBpbnNlcnRJbnRvOiBmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2Zvb1wiKS5zaGFkb3dSb290IH1cbiAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRcdHZhciBzdHlsZVRhcmdldCA9IGdldFRhcmdldC5jYWxsKHRoaXMsIHRhcmdldCk7XG5cdFx0XHQvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuXHRcdFx0aWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG5cdFx0XHRcdFx0Ly8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcblx0XHRcdFx0XHRzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuXHRcdFx0XHR9IGNhdGNoKGUpIHtcblx0XHRcdFx0XHRzdHlsZVRhcmdldCA9IG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuXHRcdH1cblx0XHRyZXR1cm4gbWVtb1t0YXJnZXRdXG5cdH07XG59KSgpO1xuXG52YXIgc2luZ2xldG9uID0gbnVsbDtcbnZhclx0c2luZ2xldG9uQ291bnRlciA9IDA7XG52YXJcdHN0eWxlc0luc2VydGVkQXRUb3AgPSBbXTtcblxudmFyXHRmaXhVcmxzID0gcmVxdWlyZShcIi4vdXJsc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihsaXN0LCBvcHRpb25zKSB7XG5cdGlmICh0eXBlb2YgREVCVUcgIT09IFwidW5kZWZpbmVkXCIgJiYgREVCVUcpIHtcblx0XHRpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgc3R5bGUtbG9hZGVyIGNhbm5vdCBiZSB1c2VkIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnRcIik7XG5cdH1cblxuXHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuXHRvcHRpb25zLmF0dHJzID0gdHlwZW9mIG9wdGlvbnMuYXR0cnMgPT09IFwib2JqZWN0XCIgPyBvcHRpb25zLmF0dHJzIDoge307XG5cblx0Ly8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XG5cdC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2Vcblx0aWYgKCFvcHRpb25zLnNpbmdsZXRvbiAmJiB0eXBlb2Ygb3B0aW9ucy5zaW5nbGV0b24gIT09IFwiYm9vbGVhblwiKSBvcHRpb25zLnNpbmdsZXRvbiA9IGlzT2xkSUUoKTtcblxuXHQvLyBCeSBkZWZhdWx0LCBhZGQgPHN0eWxlPiB0YWdzIHRvIHRoZSA8aGVhZD4gZWxlbWVudFxuICAgICAgICBpZiAoIW9wdGlvbnMuaW5zZXJ0SW50bykgb3B0aW9ucy5pbnNlcnRJbnRvID0gXCJoZWFkXCI7XG5cblx0Ly8gQnkgZGVmYXVsdCwgYWRkIDxzdHlsZT4gdGFncyB0byB0aGUgYm90dG9tIG9mIHRoZSB0YXJnZXRcblx0aWYgKCFvcHRpb25zLmluc2VydEF0KSBvcHRpb25zLmluc2VydEF0ID0gXCJib3R0b21cIjtcblxuXHR2YXIgc3R5bGVzID0gbGlzdFRvU3R5bGVzKGxpc3QsIG9wdGlvbnMpO1xuXG5cdGFkZFN0eWxlc1RvRG9tKHN0eWxlcywgb3B0aW9ucyk7XG5cblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZSAobmV3TGlzdCkge1xuXHRcdHZhciBtYXlSZW1vdmUgPSBbXTtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgaXRlbSA9IHN0eWxlc1tpXTtcblx0XHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuXG5cdFx0XHRkb21TdHlsZS5yZWZzLS07XG5cdFx0XHRtYXlSZW1vdmUucHVzaChkb21TdHlsZSk7XG5cdFx0fVxuXG5cdFx0aWYobmV3TGlzdCkge1xuXHRcdFx0dmFyIG5ld1N0eWxlcyA9IGxpc3RUb1N0eWxlcyhuZXdMaXN0LCBvcHRpb25zKTtcblx0XHRcdGFkZFN0eWxlc1RvRG9tKG5ld1N0eWxlcywgb3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBtYXlSZW1vdmUubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBkb21TdHlsZSA9IG1heVJlbW92ZVtpXTtcblxuXHRcdFx0aWYoZG9tU3R5bGUucmVmcyA9PT0gMCkge1xuXHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSBkb21TdHlsZS5wYXJ0c1tqXSgpO1xuXG5cdFx0XHRcdGRlbGV0ZSBzdHlsZXNJbkRvbVtkb21TdHlsZS5pZF07XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufTtcblxuZnVuY3Rpb24gYWRkU3R5bGVzVG9Eb20gKHN0eWxlcywgb3B0aW9ucykge1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBpdGVtID0gc3R5bGVzW2ldO1xuXHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuXG5cdFx0aWYoZG9tU3R5bGUpIHtcblx0XHRcdGRvbVN0eWxlLnJlZnMrKztcblxuXHRcdFx0Zm9yKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGRvbVN0eWxlLnBhcnRzW2pdKGl0ZW0ucGFydHNbal0pO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3IoOyBqIDwgaXRlbS5wYXJ0cy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRkb21TdHlsZS5wYXJ0cy5wdXNoKGFkZFN0eWxlKGl0ZW0ucGFydHNbal0sIG9wdGlvbnMpKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dmFyIHBhcnRzID0gW107XG5cblx0XHRcdGZvcih2YXIgaiA9IDA7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdHBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSwgb3B0aW9ucykpO1xuXHRcdFx0fVxuXG5cdFx0XHRzdHlsZXNJbkRvbVtpdGVtLmlkXSA9IHtpZDogaXRlbS5pZCwgcmVmczogMSwgcGFydHM6IHBhcnRzfTtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gbGlzdFRvU3R5bGVzIChsaXN0LCBvcHRpb25zKSB7XG5cdHZhciBzdHlsZXMgPSBbXTtcblx0dmFyIG5ld1N0eWxlcyA9IHt9O1xuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBpdGVtID0gbGlzdFtpXTtcblx0XHR2YXIgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcblx0XHR2YXIgY3NzID0gaXRlbVsxXTtcblx0XHR2YXIgbWVkaWEgPSBpdGVtWzJdO1xuXHRcdHZhciBzb3VyY2VNYXAgPSBpdGVtWzNdO1xuXHRcdHZhciBwYXJ0ID0ge2NzczogY3NzLCBtZWRpYTogbWVkaWEsIHNvdXJjZU1hcDogc291cmNlTWFwfTtcblxuXHRcdGlmKCFuZXdTdHlsZXNbaWRdKSBzdHlsZXMucHVzaChuZXdTdHlsZXNbaWRdID0ge2lkOiBpZCwgcGFydHM6IFtwYXJ0XX0pO1xuXHRcdGVsc2UgbmV3U3R5bGVzW2lkXS5wYXJ0cy5wdXNoKHBhcnQpO1xuXHR9XG5cblx0cmV0dXJuIHN0eWxlcztcbn1cblxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50IChvcHRpb25zLCBzdHlsZSkge1xuXHR2YXIgdGFyZ2V0ID0gZ2V0RWxlbWVudChvcHRpb25zLmluc2VydEludG8pXG5cblx0aWYgKCF0YXJnZXQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydEludG8nIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcblx0fVxuXG5cdHZhciBsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcCA9IHN0eWxlc0luc2VydGVkQXRUb3Bbc3R5bGVzSW5zZXJ0ZWRBdFRvcC5sZW5ndGggLSAxXTtcblxuXHRpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJ0b3BcIikge1xuXHRcdGlmICghbGFzdFN0eWxlRWxlbWVudEluc2VydGVkQXRUb3ApIHtcblx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIHRhcmdldC5maXJzdENoaWxkKTtcblx0XHR9IGVsc2UgaWYgKGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wLm5leHRTaWJsaW5nKSB7XG5cdFx0XHR0YXJnZXQuaW5zZXJ0QmVmb3JlKHN0eWxlLCBsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcC5uZXh0U2libGluZyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdFx0fVxuXHRcdHN0eWxlc0luc2VydGVkQXRUb3AucHVzaChzdHlsZSk7XG5cdH0gZWxzZSBpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJib3R0b21cIikge1xuXHRcdHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0QXQgPT09IFwib2JqZWN0XCIgJiYgb3B0aW9ucy5pbnNlcnRBdC5iZWZvcmUpIHtcblx0XHR2YXIgbmV4dFNpYmxpbmcgPSBnZXRFbGVtZW50KG9wdGlvbnMuaW5zZXJ0SW50byArIFwiIFwiICsgb3B0aW9ucy5pbnNlcnRBdC5iZWZvcmUpO1xuXHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIG5leHRTaWJsaW5nKTtcblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJbU3R5bGUgTG9hZGVyXVxcblxcbiBJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgJ2luc2VydEF0JyAoJ29wdGlvbnMuaW5zZXJ0QXQnKSBmb3VuZC5cXG4gTXVzdCBiZSAndG9wJywgJ2JvdHRvbScsIG9yIE9iamVjdC5cXG4gKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvc3R5bGUtbG9hZGVyI2luc2VydGF0KVxcblwiKTtcblx0fVxufVxuXG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQgKHN0eWxlKSB7XG5cdGlmIChzdHlsZS5wYXJlbnROb2RlID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG5cdHN0eWxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGUpO1xuXG5cdHZhciBpZHggPSBzdHlsZXNJbnNlcnRlZEF0VG9wLmluZGV4T2Yoc3R5bGUpO1xuXHRpZihpZHggPj0gMCkge1xuXHRcdHN0eWxlc0luc2VydGVkQXRUb3Auc3BsaWNlKGlkeCwgMSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlU3R5bGVFbGVtZW50IChvcHRpb25zKSB7XG5cdHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblxuXHRvcHRpb25zLmF0dHJzLnR5cGUgPSBcInRleHQvY3NzXCI7XG5cblx0YWRkQXR0cnMoc3R5bGUsIG9wdGlvbnMuYXR0cnMpO1xuXHRpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucywgc3R5bGUpO1xuXG5cdHJldHVybiBzdHlsZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGlua0VsZW1lbnQgKG9wdGlvbnMpIHtcblx0dmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcblxuXHRvcHRpb25zLmF0dHJzLnR5cGUgPSBcInRleHQvY3NzXCI7XG5cdG9wdGlvbnMuYXR0cnMucmVsID0gXCJzdHlsZXNoZWV0XCI7XG5cblx0YWRkQXR0cnMobGluaywgb3B0aW9ucy5hdHRycyk7XG5cdGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zLCBsaW5rKTtcblxuXHRyZXR1cm4gbGluaztcbn1cblxuZnVuY3Rpb24gYWRkQXR0cnMgKGVsLCBhdHRycykge1xuXHRPYmplY3Qua2V5cyhhdHRycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0ZWwuc2V0QXR0cmlidXRlKGtleSwgYXR0cnNba2V5XSk7XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBhZGRTdHlsZSAob2JqLCBvcHRpb25zKSB7XG5cdHZhciBzdHlsZSwgdXBkYXRlLCByZW1vdmUsIHJlc3VsdDtcblxuXHQvLyBJZiBhIHRyYW5zZm9ybSBmdW5jdGlvbiB3YXMgZGVmaW5lZCwgcnVuIGl0IG9uIHRoZSBjc3Ncblx0aWYgKG9wdGlvbnMudHJhbnNmb3JtICYmIG9iai5jc3MpIHtcblx0ICAgIHJlc3VsdCA9IG9wdGlvbnMudHJhbnNmb3JtKG9iai5jc3MpO1xuXG5cdCAgICBpZiAocmVzdWx0KSB7XG5cdCAgICBcdC8vIElmIHRyYW5zZm9ybSByZXR1cm5zIGEgdmFsdWUsIHVzZSB0aGF0IGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGNzcy5cblx0ICAgIFx0Ly8gVGhpcyBhbGxvd3MgcnVubmluZyBydW50aW1lIHRyYW5zZm9ybWF0aW9ucyBvbiB0aGUgY3NzLlxuXHQgICAgXHRvYmouY3NzID0gcmVzdWx0O1xuXHQgICAgfSBlbHNlIHtcblx0ICAgIFx0Ly8gSWYgdGhlIHRyYW5zZm9ybSBmdW5jdGlvbiByZXR1cm5zIGEgZmFsc3kgdmFsdWUsIGRvbid0IGFkZCB0aGlzIGNzcy5cblx0ICAgIFx0Ly8gVGhpcyBhbGxvd3MgY29uZGl0aW9uYWwgbG9hZGluZyBvZiBjc3Ncblx0ICAgIFx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHQgICAgXHRcdC8vIG5vb3Bcblx0ICAgIFx0fTtcblx0ICAgIH1cblx0fVxuXG5cdGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xuXHRcdHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrO1xuXG5cdFx0c3R5bGUgPSBzaW5nbGV0b24gfHwgKHNpbmdsZXRvbiA9IGNyZWF0ZVN0eWxlRWxlbWVudChvcHRpb25zKSk7XG5cblx0XHR1cGRhdGUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIGZhbHNlKTtcblx0XHRyZW1vdmUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIHRydWUpO1xuXG5cdH0gZWxzZSBpZiAoXG5cdFx0b2JqLnNvdXJjZU1hcCAmJlxuXHRcdHR5cGVvZiBVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBVUkwuY3JlYXRlT2JqZWN0VVJMID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHR0eXBlb2YgVVJMLnJldm9rZU9iamVjdFVSTCA9PT0gXCJmdW5jdGlvblwiICYmXG5cdFx0dHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCJcblx0KSB7XG5cdFx0c3R5bGUgPSBjcmVhdGVMaW5rRWxlbWVudChvcHRpb25zKTtcblx0XHR1cGRhdGUgPSB1cGRhdGVMaW5rLmJpbmQobnVsbCwgc3R5bGUsIG9wdGlvbnMpO1xuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG5cblx0XHRcdGlmKHN0eWxlLmhyZWYpIFVSTC5yZXZva2VPYmplY3RVUkwoc3R5bGUuaHJlZik7XG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRzdHlsZSA9IGNyZWF0ZVN0eWxlRWxlbWVudChvcHRpb25zKTtcblx0XHR1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGUpO1xuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG5cdFx0fTtcblx0fVxuXG5cdHVwZGF0ZShvYmopO1xuXG5cdHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZSAobmV3T2JqKSB7XG5cdFx0aWYgKG5ld09iaikge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRuZXdPYmouY3NzID09PSBvYmouY3NzICYmXG5cdFx0XHRcdG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmXG5cdFx0XHRcdG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXBcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHVwZGF0ZShvYmogPSBuZXdPYmopO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZW1vdmUoKTtcblx0XHR9XG5cdH07XG59XG5cbnZhciByZXBsYWNlVGV4dCA9IChmdW5jdGlvbiAoKSB7XG5cdHZhciB0ZXh0U3RvcmUgPSBbXTtcblxuXHRyZXR1cm4gZnVuY3Rpb24gKGluZGV4LCByZXBsYWNlbWVudCkge1xuXHRcdHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudDtcblxuXHRcdHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcbicpO1xuXHR9O1xufSkoKTtcblxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyAoc3R5bGUsIGluZGV4LCByZW1vdmUsIG9iaikge1xuXHR2YXIgY3NzID0gcmVtb3ZlID8gXCJcIiA6IG9iai5jc3M7XG5cblx0aWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcblx0XHRzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcblx0fSBlbHNlIHtcblx0XHR2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcyk7XG5cdFx0dmFyIGNoaWxkTm9kZXMgPSBzdHlsZS5jaGlsZE5vZGVzO1xuXG5cdFx0aWYgKGNoaWxkTm9kZXNbaW5kZXhdKSBzdHlsZS5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XG5cblx0XHRpZiAoY2hpbGROb2Rlcy5sZW5ndGgpIHtcblx0XHRcdHN0eWxlLmluc2VydEJlZm9yZShjc3NOb2RlLCBjaGlsZE5vZGVzW2luZGV4XSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN0eWxlLmFwcGVuZENoaWxkKGNzc05vZGUpO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBhcHBseVRvVGFnIChzdHlsZSwgb2JqKSB7XG5cdHZhciBjc3MgPSBvYmouY3NzO1xuXHR2YXIgbWVkaWEgPSBvYmoubWVkaWE7XG5cblx0aWYobWVkaWEpIHtcblx0XHRzdHlsZS5zZXRBdHRyaWJ1dGUoXCJtZWRpYVwiLCBtZWRpYSlcblx0fVxuXG5cdGlmKHN0eWxlLnN0eWxlU2hlZXQpIHtcblx0XHRzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG5cdH0gZWxzZSB7XG5cdFx0d2hpbGUoc3R5bGUuZmlyc3RDaGlsZCkge1xuXHRcdFx0c3R5bGUucmVtb3ZlQ2hpbGQoc3R5bGUuZmlyc3RDaGlsZCk7XG5cdFx0fVxuXG5cdFx0c3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlTGluayAobGluaywgb3B0aW9ucywgb2JqKSB7XG5cdHZhciBjc3MgPSBvYmouY3NzO1xuXHR2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcblxuXHQvKlxuXHRcdElmIGNvbnZlcnRUb0Fic29sdXRlVXJscyBpc24ndCBkZWZpbmVkLCBidXQgc291cmNlbWFwcyBhcmUgZW5hYmxlZFxuXHRcdGFuZCB0aGVyZSBpcyBubyBwdWJsaWNQYXRoIGRlZmluZWQgdGhlbiBsZXRzIHR1cm4gY29udmVydFRvQWJzb2x1dGVVcmxzXG5cdFx0b24gYnkgZGVmYXVsdC4gIE90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBjb252ZXJ0VG9BYnNvbHV0ZVVybHMgb3B0aW9uXG5cdFx0ZGlyZWN0bHlcblx0Ki9cblx0dmFyIGF1dG9GaXhVcmxzID0gb3B0aW9ucy5jb252ZXJ0VG9BYnNvbHV0ZVVybHMgPT09IHVuZGVmaW5lZCAmJiBzb3VyY2VNYXA7XG5cblx0aWYgKG9wdGlvbnMuY29udmVydFRvQWJzb2x1dGVVcmxzIHx8IGF1dG9GaXhVcmxzKSB7XG5cdFx0Y3NzID0gZml4VXJscyhjc3MpO1xuXHR9XG5cblx0aWYgKHNvdXJjZU1hcCkge1xuXHRcdC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI2NjAzODc1XG5cdFx0Y3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIiArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSkgKyBcIiAqL1wiO1xuXHR9XG5cblx0dmFyIGJsb2IgPSBuZXcgQmxvYihbY3NzXSwgeyB0eXBlOiBcInRleHQvY3NzXCIgfSk7XG5cblx0dmFyIG9sZFNyYyA9IGxpbmsuaHJlZjtcblxuXHRsaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG5cdGlmKG9sZFNyYykgVVJMLnJldm9rZU9iamVjdFVSTChvbGRTcmMpO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiAzIiwiaW1wb3J0IGxhenlJbml0aWFsaXplIGZyb20gJy4uL2xhenktaW5pdGlhbGl6ZSc7XG5cbmNvbnN0IHsgZGVmaW5lUHJvcGVydHksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcixcbiAgICAgICAgZ2V0T3duUHJvcGVydHlOYW1lcywgZ2V0T3duUHJvcGVydHlTeW1ib2xzIH0gPSBPYmplY3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc2NyaXB0b3IoZGVzYykge1xuICBpZiAoIWRlc2MgfHwgIWRlc2MuaGFzT3duUHJvcGVydHkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBrZXlzID0gWyd2YWx1ZScsICdpbml0aWFsaXplcicsICdnZXQnLCAnc2V0J107XG5cbiAgZm9yIChsZXQgaSA9IDAsIGwgPSBrZXlzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGlmIChkZXNjLmhhc093blByb3BlcnR5KGtleXNbaV0pKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvcmF0ZShoYW5kbGVEZXNjcmlwdG9yLCBlbnRyeUFyZ3MpIHtcbiAgaWYgKGlzRGVzY3JpcHRvcihlbnRyeUFyZ3NbZW50cnlBcmdzLmxlbmd0aCAtIDFdKSkge1xuICAgIHJldHVybiBoYW5kbGVEZXNjcmlwdG9yKC4uLmVudHJ5QXJncywgW10pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRGVzY3JpcHRvciguLi5BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLCBlbnRyeUFyZ3MpO1xuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgTWV0YSB7XG4gIEBsYXp5SW5pdGlhbGl6ZVxuICBkZWJvdW5jZVRpbWVvdXRJZHMgPSB7fTtcblxuICBAbGF6eUluaXRpYWxpemVcbiAgdGhyb3R0bGVUaW1lb3V0SWRzID0ge307XG5cbiAgQGxhenlJbml0aWFsaXplXG4gIHRocm90dGxlUHJldmlvdXNUaW1lc3RhbXBzID0ge307XG5cbiAgQGxhenlJbml0aWFsaXplXG4gIHRocm90dGxlVHJhaWxpbmdBcmdzID0gbnVsbDtcblxuICBAbGF6eUluaXRpYWxpemVcbiAgcHJvZmlsZUxhc3RSYW4gPSBudWxsO1xufVxuXG5jb25zdCBNRVRBX0tFWSA9ICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nKVxuICA/IFN5bWJvbCgnX19jb3JlX2RlY29yYXRvcnNfXycpXG4gIDogJ19fY29yZV9kZWNvcmF0b3JzX18nO1xuXG5leHBvcnQgZnVuY3Rpb24gbWV0YUZvcihvYmopIHtcbiAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShNRVRBX0tFWSkgPT09IGZhbHNlKSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqLCBNRVRBX0tFWSwge1xuICAgICAgLy8gRGVmYXVsdHM6IE5PVCBlbnVtZXJhYmxlLCBjb25maWd1cmFibGUsIG9yIHdyaXRhYmxlXG4gICAgICB2YWx1ZTogbmV3IE1ldGEoKVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG9ialtNRVRBX0tFWV07XG59XG5cbmV4cG9ydCBjb25zdCBnZXRPd25LZXlzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzXG4gICAgPyBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdClcbiAgICAgICAgICAuY29uY2F0KGdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpKTtcbiAgICAgIH1cbiAgICA6IGdldE93blByb3BlcnR5TmFtZXM7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnMob2JqKSB7XG4gIGNvbnN0IGRlc2NzID0ge307XG5cbiAgZ2V0T3duS2V5cyhvYmopLmZvckVhY2goXG4gICAga2V5ID0+IChkZXNjc1trZXldID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSlcbiAgKTtcblxuICByZXR1cm4gZGVzY3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0U2V0dGVyKGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24gc2V0KG5ld1ZhbHVlKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGtleSwge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAvLyBJUyBlbnVtZXJhYmxlIHdoZW4gcmVhc3NpZ25lZCBieSB0aGUgb3V0c2lkZSB3b3JkXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IG5ld1ZhbHVlXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3VmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiaW5kKGZuLCBjb250ZXh0KSB7XG4gIGlmIChmbi5iaW5kKSB7XG4gICAgcmV0dXJuIGZuLmJpbmQoY29udGV4dCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIF9fYXV0b2JpbmRfXygpIHtcbiAgICAgIHJldHVybiBmbi5hcHBseShjb250ZXh0LCBhcmd1bWVudHMpO1xuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHdhcm4gPSAoKCkgPT4ge1xuICBpZiAodHlwZW9mIGNvbnNvbGUgIT09ICdvYmplY3QnIHx8ICFjb25zb2xlIHx8IHR5cGVvZiBjb25zb2xlLndhcm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gKCkgPT4ge307XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGJpbmQoY29uc29sZS53YXJuLCBjb25zb2xlKTtcbiAgfVxufSkoKTtcblxuY29uc3Qgc2VlbkRlcHJlY2F0aW9ucyA9IHt9O1xuZXhwb3J0IGZ1bmN0aW9uIGludGVybmFsRGVwcmVjYXRpb24obXNnKSB7XG4gIGlmIChzZWVuRGVwcmVjYXRpb25zW21zZ10gIT09IHRydWUpIHtcbiAgICBzZWVuRGVwcmVjYXRpb25zW21zZ10gPSB0cnVlO1xuICAgIHdhcm4oJ0RFUFJFQ0FUSU9OOiAnICsgbXNnKTtcbiAgfVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtZGVjb3JhdG9ycy9zcmMvcHJpdmF0ZS91dGlscy5qcyIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgdGhlXG4gKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KF8ubm9vcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc09iamVjdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanMiLCJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgU3ltYm9sID0gcm9vdC5TeW1ib2w7XG5cbmV4cG9ydCBkZWZhdWx0IFN5bWJvbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1N5bWJvbC5qcyIsImltcG9ydCBmcmVlR2xvYmFsIGZyb20gJy4vX2ZyZWVHbG9iYWwuanMnO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHNlbGZgLiAqL1xudmFyIGZyZWVTZWxmID0gdHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZiAmJiBzZWxmLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG5cbi8qKiBVc2VkIGFzIGEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgb2JqZWN0LiAqL1xudmFyIHJvb3QgPSBmcmVlR2xvYmFsIHx8IGZyZWVTZWxmIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHJvb3Q7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yb290LmpzIiwiLyoqXG4gKiBQZXJmb3JtcyBhXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogY29tcGFyaXNvbiBiZXR3ZWVuIHR3byB2YWx1ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0geyp9IG90aGVyIFRoZSBvdGhlciB2YWx1ZSB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKiB2YXIgb3RoZXIgPSB7ICdhJzogMSB9O1xuICpcbiAqIF8uZXEob2JqZWN0LCBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEob2JqZWN0LCBvdGhlcik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoJ2EnLCAnYScpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uZXEoJ2EnLCBPYmplY3QoJ2EnKSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uZXEoTmFOLCBOYU4pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBlcSh2YWx1ZSwgb3RoZXIpIHtcbiAgcmV0dXJuIHZhbHVlID09PSBvdGhlciB8fCAodmFsdWUgIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGVxO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lcS5qcyIsImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNMZW5ndGggZnJvbSAnLi9pc0xlbmd0aC5qcyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS4gQSB2YWx1ZSBpcyBjb25zaWRlcmVkIGFycmF5LWxpa2UgaWYgaXQnc1xuICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0FycmF5TGlrZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcnJheUxpa2UuanMiLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0b0ludGVnZXIoZGlydHlOdW1iZXIpIHtcbiAgaWYgKGRpcnR5TnVtYmVyID09PSBudWxsIHx8IGRpcnR5TnVtYmVyID09PSB0cnVlIHx8IGRpcnR5TnVtYmVyID09PSBmYWxzZSkge1xuICAgIHJldHVybiBOYU47XG4gIH1cblxuICB2YXIgbnVtYmVyID0gTnVtYmVyKGRpcnR5TnVtYmVyKTtcblxuICBpZiAoaXNOYU4obnVtYmVyKSkge1xuICAgIHJldHVybiBudW1iZXI7XG4gIH1cblxuICByZXR1cm4gbnVtYmVyIDwgMCA/IE1hdGguY2VpbChudW1iZXIpIDogTWF0aC5mbG9vcihudW1iZXIpO1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VzbS9fbGliL3RvSW50ZWdlci9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlcXVpcmVkQXJncyhyZXF1aXJlZCwgYXJncykge1xuICBpZiAoYXJncy5sZW5ndGggPCByZXF1aXJlZCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IocmVxdWlyZWQgKyAnIGFyZ3VtZW50JyArIHJlcXVpcmVkID4gMSA/ICdzJyA6ICcnICsgJyByZXF1aXJlZCwgYnV0IG9ubHkgJyArIGFyZ3MubGVuZ3RoICsgJyBwcmVzZW50Jyk7XG4gIH1cbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZXNtL19saWIvcmVxdWlyZWRBcmdzL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IEJvb2xlYW5Td2l0Y2ggZnJvbSAnLi9Cb29sZWFuU3dpdGNoJ1xuXG5leHBvcnQgZGVmYXVsdCBCb29sZWFuU3dpdGNoXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvQm9vbGVhblN3aXRjaC9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBUZW1wbGF0ZVJlbmRlcmVyIGZyb20gJy4vVGVtcGxhdGVSZW5kZXJlcidcblxuZXhwb3J0IGRlZmF1bHQgVGVtcGxhdGVSZW5kZXJlclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL1RlbXBsYXRlUmVuZGVyZXIvaW5kZXguanMiLCJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSAnLi9fZGVmaW5lUHJvcGVydHkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlQXNzaWduVmFsdWU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMiLCJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICB2YXIgZnVuYyA9IGdldE5hdGl2ZShPYmplY3QsICdkZWZpbmVQcm9wZXJ0eScpO1xuICAgIGZ1bmMoe30sICcnLCB7fSk7XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVQcm9wZXJ0eTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2RlZmluZVByb3BlcnR5LmpzIiwiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhc3luY1RhZyA9ICdbb2JqZWN0IEFzeW5jRnVuY3Rpb25dJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBnZW5UYWcgPSAnW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0nLFxuICAgIHByb3h5VGFnID0gJ1tvYmplY3QgUHJveHldJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYEZ1bmN0aW9uYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBmdW5jdGlvbiwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oXyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gVGhlIHVzZSBvZiBgT2JqZWN0I3RvU3RyaW5nYCBhdm9pZHMgaXNzdWVzIHdpdGggdGhlIGB0eXBlb2ZgIG9wZXJhdG9yXG4gIC8vIGluIFNhZmFyaSA5IHdoaWNoIHJldHVybnMgJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5cyBhbmQgb3RoZXIgY29uc3RydWN0b3JzLlxuICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gIHJldHVybiB0YWcgPT0gZnVuY1RhZyB8fCB0YWcgPT0gZ2VuVGFnIHx8IHRhZyA9PSBhc3luY1RhZyB8fCB0YWcgPT0gcHJveHlUYWc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzRnVuY3Rpb247XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRnVuY3Rpb24uanMiLCIvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCAmJiBnbG9iYWwuT2JqZWN0ID09PSBPYmplY3QgJiYgZ2xvYmFsO1xuXG5leHBvcnQgZGVmYXVsdCBmcmVlR2xvYmFsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZnJlZUdsb2JhbC5qcyIsInZhciBnO1xyXG5cclxuLy8gVGhpcyB3b3JrcyBpbiBub24tc3RyaWN0IG1vZGVcclxuZyA9IChmdW5jdGlvbigpIHtcclxuXHRyZXR1cm4gdGhpcztcclxufSkoKTtcclxuXHJcbnRyeSB7XHJcblx0Ly8gVGhpcyB3b3JrcyBpZiBldmFsIGlzIGFsbG93ZWQgKHNlZSBDU1ApXHJcblx0ZyA9IGcgfHwgRnVuY3Rpb24oXCJyZXR1cm4gdGhpc1wiKSgpIHx8ICgxLGV2YWwpKFwidGhpc1wiKTtcclxufSBjYXRjaChlKSB7XHJcblx0Ly8gVGhpcyB3b3JrcyBpZiB0aGUgd2luZG93IHJlZmVyZW5jZSBpcyBhdmFpbGFibGVcclxuXHRpZih0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiKVxyXG5cdFx0ZyA9IHdpbmRvdztcclxufVxyXG5cclxuLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLlxyXG4vLyBXZSByZXR1cm4gdW5kZWZpbmVkLCBpbnN0ZWFkIG9mIG5vdGhpbmcgaGVyZSwgc28gaXQnc1xyXG4vLyBlYXNpZXIgdG8gaGFuZGxlIHRoaXMgY2FzZS4gaWYoIWdsb2JhbCkgeyAuLi59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGc7XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAod2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanMiLCJpbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgb3ZlclJlc3QgZnJvbSAnLi9fb3ZlclJlc3QuanMnO1xuaW1wb3J0IHNldFRvU3RyaW5nIGZyb20gJy4vX3NldFRvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZXN0YCB3aGljaCBkb2Vzbid0IHZhbGlkYXRlIG9yIGNvZXJjZSBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVJlc3QoZnVuYywgc3RhcnQpIHtcbiAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCBpZGVudGl0eSksIGZ1bmMgKyAnJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VSZXN0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVJlc3QuanMiLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGZpcnN0IGFyZ3VtZW50IGl0IHJlY2VpdmVzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcGFyYW0geyp9IHZhbHVlIEFueSB2YWx1ZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICpcbiAqIGNvbnNvbGUubG9nKF8uaWRlbnRpdHkob2JqZWN0KSA9PT0gb2JqZWN0KTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpZGVudGl0eTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaWRlbnRpdHkuanMiLCIvKipcbiAqIEEgZmFzdGVyIGFsdGVybmF0aXZlIHRvIGBGdW5jdGlvbiNhcHBseWAsIHRoaXMgZnVuY3Rpb24gaW52b2tlcyBgZnVuY2BcbiAqIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGB0aGlzQXJnYCBhbmQgdGhlIGFyZ3VtZW50cyBvZiBgYXJnc2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZS5cbiAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXN1bHQgb2YgYGZ1bmNgLlxuICovXG5mdW5jdGlvbiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKSB7XG4gIHN3aXRjaCAoYXJncy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZyk7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0pO1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gIH1cbiAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFwcGx5O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXBwbHkuanMiLCJpbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5pbXBvcnQgaXNJbmRleCBmcm9tICcuL19pc0luZGV4LmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIGluZGV4O1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJ1xuICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdClcbiAgICAgICkge1xuICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0l0ZXJhdGVlQ2FsbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzSXRlcmF0ZWVDYWxsLmpzIiwiLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGxlbmd0aC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGxlbmd0aCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzTGVuZ3RoKDMpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNMZW5ndGgoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoSW5maW5pdHkpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzTGVuZ3RoKCczJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0xlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmXG4gICAgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0xlbmd0aDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNMZW5ndGguanMiLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcblxuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxuICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzSW5kZXg7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0luZGV4LmpzIiwiaW1wb3J0IGJhc2VUaW1lcyBmcm9tICcuL19iYXNlVGltZXMuanMnO1xuaW1wb3J0IGlzQXJndW1lbnRzIGZyb20gJy4vaXNBcmd1bWVudHMuanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcbmltcG9ydCBpc0J1ZmZlciBmcm9tICcuL2lzQnVmZmVyLmpzJztcbmltcG9ydCBpc0luZGV4IGZyb20gJy4vX2lzSW5kZXguanMnO1xuaW1wb3J0IGlzVHlwZWRBcnJheSBmcm9tICcuL2lzVHlwZWRBcnJheS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgYXJyYXktbGlrZSBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkIFNwZWNpZnkgcmV0dXJuaW5nIGluaGVyaXRlZCBwcm9wZXJ0eSBuYW1lcy5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TGlrZUtleXModmFsdWUsIGluaGVyaXRlZCkge1xuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKSxcbiAgICAgIGlzQXJnID0gIWlzQXJyICYmIGlzQXJndW1lbnRzKHZhbHVlKSxcbiAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiAhaXNBcmcgJiYgaXNCdWZmZXIodmFsdWUpLFxuICAgICAgaXNUeXBlID0gIWlzQXJyICYmICFpc0FyZyAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheSh2YWx1ZSksXG4gICAgICBza2lwSW5kZXhlcyA9IGlzQXJyIHx8IGlzQXJnIHx8IGlzQnVmZiB8fCBpc1R5cGUsXG4gICAgICByZXN1bHQgPSBza2lwSW5kZXhlcyA/IGJhc2VUaW1lcyh2YWx1ZS5sZW5ndGgsIFN0cmluZykgOiBbXSxcbiAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKChpbmhlcml0ZWQgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkgJiZcbiAgICAgICAgIShza2lwSW5kZXhlcyAmJiAoXG4gICAgICAgICAgIC8vIFNhZmFyaSA5IGhhcyBlbnVtZXJhYmxlIGBhcmd1bWVudHMubGVuZ3RoYCBpbiBzdHJpY3QgbW9kZS5cbiAgICAgICAgICAga2V5ID09ICdsZW5ndGgnIHx8XG4gICAgICAgICAgIC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxuICAgICAgICAgICAoaXNCdWZmICYmIChrZXkgPT0gJ29mZnNldCcgfHwga2V5ID09ICdwYXJlbnQnKSkgfHxcbiAgICAgICAgICAgLy8gUGhhbnRvbUpTIDIgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gdHlwZWQgYXJyYXlzLlxuICAgICAgICAgICAoaXNUeXBlICYmIChrZXkgPT0gJ2J1ZmZlcicgfHwga2V5ID09ICdieXRlTGVuZ3RoJyB8fCBrZXkgPT0gJ2J5dGVPZmZzZXQnKSkgfHxcbiAgICAgICAgICAgLy8gU2tpcCBpbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgICAgICBpc0luZGV4KGtleSwgbGVuZ3RoKVxuICAgICAgICApKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlMaWtlS2V5cztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TGlrZUtleXMuanMiLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgaXNBcnJheTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcnJheS5qcyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24ob3JpZ2luYWxNb2R1bGUpIHtcclxuXHRpZighb3JpZ2luYWxNb2R1bGUud2VicGFja1BvbHlmaWxsKSB7XHJcblx0XHR2YXIgbW9kdWxlID0gT2JqZWN0LmNyZWF0ZShvcmlnaW5hbE1vZHVsZSk7XHJcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcclxuXHRcdGlmKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xyXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xyXG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcclxuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJleHBvcnRzXCIsIHtcclxuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcclxuXHRcdH0pO1xyXG5cdFx0bW9kdWxlLndlYnBhY2tQb2x5ZmlsbCA9IDE7XHJcblx0fVxyXG5cdHJldHVybiBtb2R1bGU7XHJcbn07XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAod2VicGFjaykvYnVpbGRpbi9oYXJtb255LW1vZHVsZS5qcyIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQcm90b3R5cGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcyIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICcuL2lzUGxhaW5PYmplY3QuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgZG9tRXhjVGFnID0gJ1tvYmplY3QgRE9NRXhjZXB0aW9uXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGBFcnJvcmAsIGBFdmFsRXJyb3JgLCBgUmFuZ2VFcnJvcmAsIGBSZWZlcmVuY2VFcnJvcmAsXG4gKiBgU3ludGF4RXJyb3JgLCBgVHlwZUVycm9yYCwgb3IgYFVSSUVycm9yYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gZXJyb3Igb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNFcnJvcihuZXcgRXJyb3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNFcnJvcihFcnJvcik7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Vycm9yKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gIHJldHVybiB0YWcgPT0gZXJyb3JUYWcgfHwgdGFnID09IGRvbUV4Y1RhZyB8fFxuICAgICh0eXBlb2YgdmFsdWUubWVzc2FnZSA9PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUubmFtZSA9PSAnc3RyaW5nJyAmJiAhaXNQbGFpbk9iamVjdCh2YWx1ZSkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0Vycm9yO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0Vycm9yLmpzIiwiLyoqXG4gKiBDcmVhdGVzIGEgdW5hcnkgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGl0cyBhcmd1bWVudCB0cmFuc2Zvcm1lZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgYXJndW1lbnQgdHJhbnNmb3JtLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG92ZXJBcmcoZnVuYywgdHJhbnNmb3JtKSB7XG4gIHJldHVybiBmdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4gZnVuYyh0cmFuc2Zvcm0oYXJnKSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG92ZXJBcmc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyQXJnLmpzIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8ubWFwYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWVcbiAqIHNob3J0aGFuZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TWFwKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5ID09IG51bGwgPyAwIDogYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlNYXA7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheU1hcC5qcyIsIi8qKiBVc2VkIHRvIG1hdGNoIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXG52YXIgcmVJbnRlcnBvbGF0ZSA9IC88JT0oW1xcc1xcU10rPyklPi9nO1xuXG5leHBvcnQgZGVmYXVsdCByZUludGVycG9sYXRlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcmVJbnRlcnBvbGF0ZS5qcyIsImltcG9ydCBiYXNlVG9TdHJpbmcgZnJvbSAnLi9fYmFzZVRvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nLiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgZm9yIGBudWxsYFxuICogYW5kIGB1bmRlZmluZWRgIHZhbHVlcy4gVGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvU3RyaW5nKG51bGwpO1xuICogLy8gPT4gJydcbiAqXG4gKiBfLnRvU3RyaW5nKC0wKTtcbiAqIC8vID0+ICctMCdcbiAqXG4gKiBfLnRvU3RyaW5nKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAnMSwyLDMnXG4gKi9cbmZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiBiYXNlVG9TdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b1N0cmluZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdG9TdHJpbmcuanMiLCJpbXBvcnQgeyBkZWNvcmF0ZSB9IGZyb20gJy4vcHJpdmF0ZS91dGlscyc7XG5cbmZ1bmN0aW9uIGhhbmRsZURlc2NyaXB0b3IodGFyZ2V0LCBrZXksIGRlc2NyaXB0b3IpIHtcbiAgZGVzY3JpcHRvci53cml0YWJsZSA9IGZhbHNlO1xuICByZXR1cm4gZGVzY3JpcHRvcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVhZG9ubHkoLi4uYXJncykge1xuICByZXR1cm4gZGVjb3JhdGUoaGFuZGxlRGVzY3JpcHRvciwgYXJncyk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1kZWNvcmF0b3JzL3NyYy9yZWFkb25seS5qcyIsImltcG9ydCB0elBhcnNlVGltZXpvbmUgZnJvbSAnLi4vX2xpYi90elBhcnNlVGltZXpvbmUnXG5pbXBvcnQgc3ViTWlsbGlzZWNvbmRzIGZyb20gJ2RhdGUtZm5zL2VzbS9zdWJNaWxsaXNlY29uZHMnXG5pbXBvcnQgdG9EYXRlIGZyb20gJy4uL3RvRGF0ZSdcblxuLyoqXG4gKiBAbmFtZSB1dGNUb1pvbmVkVGltZVxuICogQGNhdGVnb3J5IFRpbWUgWm9uZSBIZWxwZXJzXG4gKiBAc3VtbWFyeSBHZXQgYSBkYXRlL3RpbWUgcmVwcmVzZW50aW5nIGxvY2FsIHRpbWUgaW4gYSBnaXZlbiB0aW1lIHpvbmUgZnJvbSB0aGUgVVRDIGRhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFJldHVybnMgYSBkYXRlIGluc3RhbmNlIHdpdGggdmFsdWVzIHJlcHJlc2VudGluZyB0aGUgbG9jYWwgdGltZSBpbiB0aGUgdGltZSB6b25lXG4gKiBzcGVjaWZpZWQgb2YgdGhlIFVUQyB0aW1lIGZyb20gdGhlIGRhdGUgcHJvdmlkZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHRoZSBuZXcgZGF0ZVxuICogaXMgZm9ybWF0dGVkIGl0IHdpbGwgc2hvdyB0aGUgZXF1aXZhbGVudCBob3VycyBpbiB0aGUgdGFyZ2V0IHRpbWUgem9uZSByZWdhcmRsZXNzXG4gKiBvZiB0aGUgY3VycmVudCBzeXN0ZW0gdGltZSB6b25lLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxTdHJpbmd8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgd2l0aCB0aGUgcmVsZXZhbnQgVVRDIHRpbWVcbiAqIEBwYXJhbSB7U3RyaW5nfSB0aW1lWm9uZSAtIHRoZSB0aW1lIHpvbmUgdG8gZ2V0IGxvY2FsIHRpbWUgZm9yLCBjYW4gYmUgYW4gb2Zmc2V0IG9yIElBTkEgdGltZSB6b25lXG4gKiBAcGFyYW0ge09wdGlvbnNXaXRoVFp9IFtvcHRpb25zXSAtIHRoZSBvYmplY3Qgd2l0aCBvcHRpb25zLiBTZWUgW09wdGlvbnNde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvT3B0aW9uc31cbiAqIEBwYXJhbSB7MHwxfDJ9IFtvcHRpb25zLmFkZGl0aW9uYWxEaWdpdHM9Ml0gLSBwYXNzZWQgdG8gYHRvRGF0ZWAuIFNlZSBbdG9EYXRlXXtAbGluayBodHRwczovL2RhdGUtZm5zLm9yZy9kb2NzL3RvRGF0ZX1cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgZXF1aXZhbGVudCB0aW1lIGluIHRoZSB0aW1lIHpvbmVcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMiBhcmd1bWVudHMgcmVxdWlyZWRcbiAqIEB0aHJvd3Mge1JhbmdlRXJyb3J9IGBvcHRpb25zLmFkZGl0aW9uYWxEaWdpdHNgIG11c3QgYmUgMCwgMSBvciAyXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEluIEp1bmUgMTBhbSBVVEMgaXMgNmFtIGluIE5ldyBZb3JrICgtMDQ6MDApXG4gKiBjb25zdCByZXN1bHQgPSB1dGNUb1pvbmVkVGltZSgnMjAxNC0wNi0yNVQxMDowMDowMC4wMDBaJywgJ0FtZXJpY2EvTmV3X1lvcmsnKVxuICogLy89PiBKdW4gMjUgMjAxNCAwNjowMDowMFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1dGNUb1pvbmVkVGltZShkaXJ0eURhdGUsIHRpbWVab25lLCBvcHRpb25zKSB7XG4gIHZhciBkYXRlID0gdG9EYXRlKGRpcnR5RGF0ZSwgb3B0aW9ucylcblxuICAvLyBUaGlzIGRhdGUgaGFzIHRoZSBVVEMgdGltZSB2YWx1ZXMgb2YgdGhlIGlucHV0IGRhdGUgYXQgdGhlIHN5c3RlbSB0aW1lIHpvbmVcbiAgdmFyIHV0Y0RhdGUgPSBuZXcgRGF0ZShcbiAgICBkYXRlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgZGF0ZS5nZXRVVENNb250aCgpLFxuICAgIGRhdGUuZ2V0VVRDRGF0ZSgpLFxuICAgIGRhdGUuZ2V0VVRDSG91cnMoKSxcbiAgICBkYXRlLmdldFVUQ01pbnV0ZXMoKSxcbiAgICBkYXRlLmdldFVUQ1NlY29uZHMoKSxcbiAgICBkYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpXG4gIClcbiAgLy8gV2UganVzdCBuZWVkIHRvIGFwcGx5IHRoZSBvZmZzZXQgaW5kaWNhdGVkIGJ5IHRoZSB0aW1lIHpvbmUgdG8gdGhpcyBsb2NhbGl6ZWQgZGF0ZVxuICB2YXIgb2Zmc2V0TWlsbGlzZWNvbmRzID0gdHpQYXJzZVRpbWV6b25lKHRpbWVab25lLCBkYXRlKVxuXG4gIHJldHVybiBvZmZzZXRNaWxsaXNlY29uZHNcbiAgICA/IHN1Yk1pbGxpc2Vjb25kcyh1dGNEYXRlLCBvZmZzZXRNaWxsaXNlY29uZHMpXG4gICAgOiB1dGNEYXRlXG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9kYXRlLWZucy10ei9lc20vdXRjVG9ab25lZFRpbWUvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDhcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCJpbXBvcnQgdHpUb2tlbml6ZURhdGUgZnJvbSAnLi4vdHpUb2tlbml6ZURhdGUvaW5kZXguanMnXG5cbnZhciBNSUxMSVNFQ09ORFNfSU5fSE9VUiA9IDM2MDAwMDBcbnZhciBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFID0gNjAwMDBcblxudmFyIHBhdHRlcm5zID0ge1xuICB0aW1lem9uZTogLyhbWistXS4qKSQvLFxuICB0aW1lem9uZVo6IC9eKFopJC8sXG4gIHRpbWV6b25lSEg6IC9eKFsrLV0pKFxcZHsyfSkkLyxcbiAgdGltZXpvbmVISE1NOiAvXihbKy1dKShcXGR7Mn0pOj8oXFxkezJ9KSQvLFxuICB0aW1lem9uZUlBTkE6IC8oVVRDfCg/OlthLXpBLVpdK1xcL1thLXpBLVpfXSsoPzpcXC9bYS16QS1aX10rKT8pKSQvXG59XG5cbi8vIFBhcnNlIHZhcmlvdXMgdGltZSB6b25lIG9mZnNldCBmb3JtYXRzIHRvIGFuIG9mZnNldCBpbiBtaWxsaXNlY29uZHNcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHR6UGFyc2VUaW1lem9uZSh0aW1lem9uZVN0cmluZywgZGF0ZSkge1xuICB2YXIgdG9rZW5cbiAgdmFyIGFic29sdXRlT2Zmc2V0XG5cbiAgLy8gWlxuICB0b2tlbiA9IHBhdHRlcm5zLnRpbWV6b25lWi5leGVjKHRpbWV6b25lU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICByZXR1cm4gMFxuICB9XG5cbiAgdmFyIGhvdXJzXG5cbiAgLy8gwrFoaFxuICB0b2tlbiA9IHBhdHRlcm5zLnRpbWV6b25lSEguZXhlYyh0aW1lem9uZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgaG91cnMgPSBwYXJzZUludCh0b2tlblsyXSwgMTApXG5cbiAgICBpZiAoIXZhbGlkYXRlVGltZXpvbmUoaG91cnMpKSB7XG4gICAgICByZXR1cm4gTmFOXG4gICAgfVxuXG4gICAgYWJzb2x1dGVPZmZzZXQgPSBob3VycyAqIE1JTExJU0VDT05EU19JTl9IT1VSXG4gICAgcmV0dXJuIHRva2VuWzFdID09PSAnKycgPyAtYWJzb2x1dGVPZmZzZXQgOiBhYnNvbHV0ZU9mZnNldFxuICB9XG5cbiAgLy8gwrFoaDptbSBvciDCsWhobW1cbiAgdG9rZW4gPSBwYXR0ZXJucy50aW1lem9uZUhITU0uZXhlYyh0aW1lem9uZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgaG91cnMgPSBwYXJzZUludCh0b2tlblsyXSwgMTApXG4gICAgdmFyIG1pbnV0ZXMgPSBwYXJzZUludCh0b2tlblszXSwgMTApXG5cbiAgICBpZiAoIXZhbGlkYXRlVGltZXpvbmUoaG91cnMsIG1pbnV0ZXMpKSB7XG4gICAgICByZXR1cm4gTmFOXG4gICAgfVxuXG4gICAgYWJzb2x1dGVPZmZzZXQgPVxuICAgICAgaG91cnMgKiBNSUxMSVNFQ09ORFNfSU5fSE9VUiArIG1pbnV0ZXMgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFXG4gICAgcmV0dXJuIHRva2VuWzFdID09PSAnKycgPyAtYWJzb2x1dGVPZmZzZXQgOiBhYnNvbHV0ZU9mZnNldFxuICB9XG5cbiAgLy8gSUFOQSB0aW1lIHpvbmVcbiAgdG9rZW4gPSBwYXR0ZXJucy50aW1lem9uZUlBTkEuZXhlYyh0aW1lem9uZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgLy8gdmFyIFtmWWVhciwgZk1vbnRoLCBmRGF5LCBmSG91ciwgZk1pbnV0ZSwgZlNlY29uZF0gPSB0elRva2VuaXplRGF0ZShkYXRlLCB0aW1lem9uZVN0cmluZylcbiAgICB2YXIgdG9rZW5zID0gdHpUb2tlbml6ZURhdGUoZGF0ZSwgdGltZXpvbmVTdHJpbmcpXG4gICAgdmFyIGFzVVRDID0gRGF0ZS5VVEMoXG4gICAgICB0b2tlbnNbMF0sXG4gICAgICB0b2tlbnNbMV0gLSAxLFxuICAgICAgdG9rZW5zWzJdLFxuICAgICAgdG9rZW5zWzNdLFxuICAgICAgdG9rZW5zWzRdLFxuICAgICAgdG9rZW5zWzVdXG4gICAgKVxuICAgIHZhciB0aW1lc3RhbXBXaXRoTXNaZXJvZWQgPSBkYXRlLmdldFRpbWUoKSAtIChkYXRlLmdldFRpbWUoKSAlIDEwMDApXG4gICAgcmV0dXJuIC0oYXNVVEMgLSB0aW1lc3RhbXBXaXRoTXNaZXJvZWQpXG4gIH1cblxuICByZXR1cm4gMFxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVRpbWV6b25lKGhvdXJzLCBtaW51dGVzKSB7XG4gIGlmIChtaW51dGVzICE9IG51bGwgJiYgKG1pbnV0ZXMgPCAwIHx8IG1pbnV0ZXMgPiA1OSkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9kYXRlLWZucy10ei9lc20vX2xpYi90elBhcnNlVGltZXpvbmUvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgeyBFdmVudHNNaXhpbiwgd2l0aEV2ZW50c01peGluIH0gZnJvbSAnLi9FdmVudHNNaXhpbidcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRzTWl4aW5cbmV4cG9ydCB7IHdpdGhFdmVudHNNaXhpbiB9XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvRXZlbnRzTWl4aW4vaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgRGF0ZVRpbWVJbnB1dCBmcm9tICcuL0RhdGVUaW1lSW5wdXQnXG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lSW5wdXRcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9EYXRlVGltZUlucHV0L2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJiai1tYXNrcyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBOdW1iZXJNYXNrIGZyb20gJy4vTnVtYmVyTWFzaydcbmltcG9ydCBEYXRlTWFzaywge1xuICBnZXREYXlPZlllYXIsXG4gIGdldFdlZWtOdW1iZXIsXG4gIGdldFdlZWtTdGFydEJ5TG9jYWxlLFxuICBJU19EQVRFX1JFR0VYLFxuICBJU19USU1FX1JFR0VYLFxuICBmaXhTaG9ydElTTyxcbiAgZ2V0VGltZXpvbmVPck9mZnNldFxufSBmcm9tICcuL0RhdGVNYXNrJ1xuXG5pbXBvcnQgU3RyaW5nTWFzayBmcm9tICcuL1N0cmluZ01hc2snXG5pbXBvcnQgVHlwZXMgZnJvbSAnLi9UeXBlcydcblxuY29uc3QgVXRpbHMgPSB7XG4gIERhdGVzOiB7XG4gICAgZ2V0RGF5T2ZZZWFyLFxuICAgIGdldFdlZWtOdW1iZXIsXG4gICAgZ2V0V2Vla1N0YXJ0QnlMb2NhbGUsXG4gICAgSVNfREFURV9SRUdFWCxcbiAgICBJU19USU1FX1JFR0VYLFxuICAgIGZpeFNob3J0SVNPLFxuICAgIGdldFRpbWV6b25lT3JPZmZzZXRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBUeXBlc1xuZXhwb3J0IHsgVHlwZXMsIE51bWJlck1hc2ssIERhdGVNYXNrLCBTdHJpbmdNYXNrLCBVdGlscyB9XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgQm9vbGVhbkVkaXRvciBmcm9tICcuL0Jvb2xlYW5FZGl0b3InXG5cbmV4cG9ydCBkZWZhdWx0IEJvb2xlYW5FZGl0b3JcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9Cb29sZWFuRWRpdG9yL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IENvbXBvbmVudCBmcm9tICcuLi9Db21wb25lbnQnXG5pbXBvcnQgQm9vbGVhblN3aXRjaCBmcm9tICcuLi9Cb29sZWFuU3dpdGNoJ1xuXG4vKipcbiAqIEJvb2xlYW5zIEVkaXRvclxuICpcbiAqIEhhbmRsZSBib29sZWFuIHZhbHVlcyBFZGl0aW5nXG4gKlxuICogIyMgT3B0aW9uc1xuICpcbiAqIHwgTmFtZSAgICAgICAgICAgICAgICAgIFx0fCBEZWZhdWx0ICAgICBcdHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0fFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cdHw6LS0tLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8ICoqYm9vbGVhblVzZWRUcnVlVmFsdWUqKiAgIHwgdW5kZWZpbmVkICAgIHwgdGhlIHZhbHVlIHRvIHJldHVybiB3aGVuIHRoZSBlZGl0b3IgY2hhbmdlcyB0aGUgY3VycmVudCBjZWxsIHZhbHVlIHRvIHRydWUuIGluIGNhc2UgaXQgaXMgdW5kZWZpbmVkIHRoZW4gd2UgdXNlIHRoZSBmaXJzdCBpdGVtIGluICoqYm9vbGVhblRydWVWYWx1ZVtdKipcbiAqIHwgKipib29sZWFuVXNlZEZhbHNlVmFsdWUqKiAgIHwgdW5kZWZpbmVkICAgIHwgdGhlIHZhbHVlIHRvIHJldHVybiB3aGVuIHRoZSBlZGl0b3IgY2hhbmdlcyB0aGUgY3VycmVudCBjZWxsIHZhbHVlIHRvIGZhbHNlLiBpbiBjYXNlIGl0IGlzIHVuZGVmaW5lZCB0aGVuIHdlIHVzZSB0aGUgZmlyc3QgaXRlbSBpbiAqKmJvb2xlYW5GYWxzZVZhbHVlW10qKlxuICogfCAqKmJvb2xlYW5UcnVlVmFsdWVbXSoqICAgICAgIHwgdHJ1ZShib29sKSAgXHR8IFRoZSBvcHRpb25zIGRlc2NyaWJlcyB3aGF0IGlzIGNvbnNpZGVyZWQgYHRydWVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwgKipib29sZWFuRmFsc2VWYWx1ZVtdKiogICAgICB8IGZhbHNlKGJvb2wpIFx0fCBUaGUgb3B0aW9ucyBkZXNjcmliZXMgd2hhdCBpcyBjb25zaWRlcmVkIGBmYWxzZWBcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBCb29sZWFuRWRpdG9yIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgaW5pdChwYXJhbXMpIHtcbiAgICBpZiAocGFyYW1zLmtleVByZXNzICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IEJvb2xlYW4ocGFyYW1zLmtleVByZXNzKVxuICAgIH0gZWxzZSBpZiAocGFyYW1zLmNoYXJQcmVzcyAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBCb29sZWFuKHBhcmFtcy5jaGFyUHJlc3MpXG4gICAgfVxuXG4gICAgdGhpcy5fdHJ1ZVZhbHVlID0gW10uY29uY2F0KFxuICAgICAgdGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5UcnVlVmFsdWUnLCBwYXJhbXMsIFt0cnVlXSlcbiAgICApXG5cbiAgICB0aGlzLl9mYWxzZVZhbHVlID0gW10uY29uY2F0KFxuICAgICAgdGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5GYWxzZVZhbHVlJywgcGFyYW1zLCBbZmFsc2VdKVxuICAgIClcblxuICAgIHRoaXMuX3JldHVyblRydWVWYWx1ZSA9IHRoaXMuZ2V0T3B0aW9uKFxuICAgICAgJ2Jvb2xlYW5Vc2VkVHJ1ZVZhbHVlJyxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHRoaXMuX3RydWVWYWx1ZVswXVxuICAgIClcbiAgICB0aGlzLl9yZXR1cm5GYWxzZVZhbHVlID0gdGhpcy5nZXRPcHRpb24oXG4gICAgICAnYm9vbGVhblVzZWRGYWxzZVZhbHVlJyxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHRoaXMuX2ZhbHNlVmFsdWVbMF1cbiAgICApXG5cbiAgICB0aGlzLl90cnVlVmFsdWUgPSB0aGlzLl90cnVlVmFsdWUubWFwKHggPT4gU3RyaW5nKHgpKVxuICAgIHRoaXMuX2ZhbHNlVmFsdWUgPSB0aGlzLl9mYWxzZVZhbHVlLm1hcCh4ID0+IFN0cmluZyh4KSlcblxuICAgIHRoaXMuZm9jdXNBZnRlckF0dGFjaGVkID0gcGFyYW1zLmNlbGxTdGFydGVkRWRpdFxuICAgIGlmICh0aGlzLmZvY3VzQWZ0ZXJBdHRhY2hlZCkge1xuICAgICAgbGV0IGtleVByZXNzQmFja3NwYWNlT3JEZWxldGUgPVxuICAgICAgICBwYXJhbXMua2V5UHJlc3MgPT0gMzIgfHwgcGFyYW1zLmtleVByZXNzID09IDQ2IC8vIHNwYWNlIC8vIGRlbGV0ZVxuXG4gICAgICBpZiAoa2V5UHJlc3NCYWNrc3BhY2VPckRlbGV0ZSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IGZhbHNlXG4gICAgICB9IGVsc2UgaWYgKHBhcmFtcy5jaGFyUHJlc3MgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBwYXJhbXMuY2hhclByZXNzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHBhcmFtcy52YWx1ZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHBhcmFtcy52YWx1ZVxuICAgIH1cblxuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fY29udmVydFZhbHVlKFxuICAgICAgdGhpcy5fdmFsdWUsXG4gICAgICB0aGlzLl90cnVlVmFsdWUsXG4gICAgICB0aGlzLl9mYWxzZVZhbHVlXG4gICAgKVxuXG4gICAgdGhpcy5fc3dpdGNoZXIgPSBuZXcgQm9vbGVhblN3aXRjaCh0aGlzLl92YWx1ZSwgc3dpdGNoZXIgPT4ge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jb252ZXJ0VmFsdWUoXG4gICAgICAgIHN3aXRjaGVyLmlzQ2hlY2tlZCgpLFxuICAgICAgICB0aGlzLl90cnVlVmFsdWUsXG4gICAgICAgIHRoaXMuX2ZhbHNlVmFsdWVcbiAgICAgIClcbiAgICB9KVxuICAgIHRoaXMuX3N3aXRjaGVyLmluaXQocGFyYW1zKVxuICB9XG5cbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgZ2V0R3VpKCkge1xuICAgIHJldHVybiB0aGlzLl9zd2l0Y2hlci5nZXRHdWkoKVxuICB9XG5cbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9zd2l0Y2hlci5kZXN0cm95KClcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNhbGxlZCBvbmNlIGFmdGVyIEdVSSBpcyBhdHRhY2hlZCB0byBET00uXG4gICAqIE1ha2Ugc3VyZSB0aGUgY29udGFpbmVyIGlzIGFsd2F5cyBmb2N1c2VkIGFuZCBsaXN0ZW5pbmcgdG8ga2V5IGNoYW5nZXNcbiAgICovXG4gIGFmdGVyR3VpQXR0YWNoZWQoKSB7XG4gICAgaWYgKHRoaXMuZm9jdXNBZnRlckF0dGFjaGVkKSB7XG4gICAgICB0aGlzLmZvY3VzSW4oKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZpbmFsIHZhbHVlIHRvIHRoZSBncmlkLCB0aGUgcmVzdWx0IG9mIHRoZSBlZGl0aW5nXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59XG4gICAqL1xuICBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUgPyB0aGlzLl9yZXR1cm5UcnVlVmFsdWUgOiB0aGlzLl9yZXR1cm5GYWxzZVZhbHVlXG4gIH1cblxuICAvKipcbiAgICogR2V0cyBjYWxsZWQgb25jZSBhZnRlciBpbml0aWFsaXplZCBhbmQgcmV0dXJucyBmYWxzZSBzbyB0aGUgZWRpdG9yIGFwcGVhcnMgaW4gdGhlIGNlbGxcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gYWx3YXlzIGZhbHNlXG4gICAqKi9cbiAgaXNQb3B1cCgpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBkb2luZyBmdWxsIHJvdyBlZGl0LCB0aGVuIGdldHMgY2FsbGVkIHdoZW4gdGFiYmluZyBpbnRvIHRoZSBjZWxsLlxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufVxuICAgKi9cbiAgZm9jdXNJbigpIHtcbiAgICB0aGlzLl9zd2l0Y2hlci5zZXREaXNhYmxlZChmYWxzZSlcbiAgICB0aGlzLl9zd2l0Y2hlci5mb2N1cygpXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBkb2luZyBmdWxsIHJvdyBlZGl0LCB0aGVuIGdldHMgY2FsbGVkIHdoZW4gdGFiYmluZyBvdXQgb2YgdGhlIGNlbGwuXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59XG4gICAqL1xuICBmb2N1c091dCgpIHtcbiAgICB0aGlzLl9zd2l0Y2hlci5zZXREaXNhYmxlZCh0cnVlKVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtCb29sZWFufSB2YWx1ZSB0aGUgY3VycmVudCBjZWxsIHZhbHVlXG4gICAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcn0gdHJ1ZVZhbHVlIHRydWUgdmFsdWUgYWxpYXNcbiAgICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSBmYWxzZVZhbHVlIGZhbHNlIHZhbHVlIGFsaWFzXG4gICAqL1xuICBfY29udmVydFZhbHVlKHZhbHVlLCB0cnVlVmFsdWUsIGZhbHNlVmFsdWUpIHtcbiAgICBjb25zdCB2YWx1ZUFzU3RyaW5nID0gU3RyaW5nKHZhbHVlKVxuXG4gICAgcmV0dXJuIHRydWVWYWx1ZS5pbmRleE9mKHZhbHVlQXNTdHJpbmcpID4gLTFcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZVZhbHVlLmluZGV4T2YodmFsdWVBc1N0cmluZykgPiAtMVxuICAgICAgPyBmYWxzZVxuICAgICAgOiB2YWx1ZVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2xlYW5FZGl0b3JcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9Cb29sZWFuRWRpdG9yL0Jvb2xlYW5FZGl0b3IuanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cblxuLyoqXG4gKiBUaGUgYmFzZSBjb21wb25lbnQgY2xhc3NcbiAqXG4gKiBUaGlzIGNsYXNzIGlzIHRoZSBhYnN0cmFjdCBjbGFzcyB3aGljaCBhbGwgY29tcG9uZW50cyBzaG91bGQgdXNlXG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBjb21wb25lbnQgaHRtbCBlbGVtZW50XG4gICAqXG4gICAqIEB0eXBlIHtIVE1MRWxlbWVudH1cbiAgICovXG4gIF9ndWkgPSBudWxsXG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zXG4gICAqXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIGluaXQocGFyYW1zKSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIFtpbml0XSBtZXRob2RgXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgRE9NIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudCwgdGhpcyBpcyB3aGF0IHRoZSBncmlkIHB1dHMgaW50byB0aGUgY2VsbFxuICAgKlxuICAgKiBAcmV0dXJuIHtIVE1MRWxlbWVudH1cbiAgICovXG4gIGdldEd1aSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZ3VpXG4gIH1cblxuICAvKipcbiAgICogR2V0cyBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC4gSWYgeW91ciBjdXN0b20gY29tcG9uZW50IG5lZWRzIHRvIGRvXG4gICAqIGFueSByZXNvdXJjZSBjbGVhbmluZyB1cCwgZG8gaXQgaGVyZS5cbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgLy8gcGFzc1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgdGhlIHJlcXVpcmVkIG9wdGlvbiB2YWx1ZVxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgdHJ5IHRvIGZpbmQgdGhlIHBhc3NlZCBvcHRpb24ncyB2YWx1ZSBpbiB0aGUgZm9sbG93aW5nIG9yZGVyXG4gICAqXG4gICAqICAxLiBwYXJhbXNcbiAgICogIDIuIFNlYXJjaCBgcGFyYW1zLmNvbERlZmBcbiAgICogIDMuIFNlYXJjaCBgcGFyYW1zLmNvbnRleHQuQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZ1tDT0xVTU5fSURdYCBvciBgcGFyYW1zLmNvbnRleHQubWV0YVtDT0xVTU5fSURdYFxuICAgKiAgNC4gU2VhcmNoIGBwYXJhbXMuY29udGV4dC5BR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnYCBvciBgcGFyYW1zLmNvbnRleHQubWV0YWBcbiAgICogIDUuIFNlYXJjaCBgcGFyYW1zLmNvbnRleHRgXG4gICAqICA2LiBJZiBub25lIGZvdW5kIHJldHVybiB0aGUgZmFsbGJhY2tcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgdGhlIG5hbWUgb2YgdGhlIG9wdGlvblxuICAgKiBAcGFyYW0ge3BhcmFtc30gcGFyYW1zIGFuIG9iamVjdCB1c2VkIHRvIHNlYXJjaCBmb3IgdGhlIG9wdGlvblxuICAgKiBAcGFyYW0ge1N0cmluZ30gZmFsbGJhY2sgYSB2YWx1ZSB0byByZXR1cm4gaW4gY2FzZSB0aGUgb3B0aW9uIGNhbiBub3QgYmUgZm91bmRcbiAgICovXG4gIGdldE9wdGlvbihuYW1lLCBwYXJhbXMsIGZhbGxiYWNrID0gbnVsbCkge1xuICAgIGxldCBvcHRpb25cblxuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICBvcHRpb24gPSBwYXJhbXNbbmFtZV1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdHJ5IHRvIGZldGNoIGZyb20gdGhlIGNvbHVtbiBkZWYgZmlyc3RcbiAgICAgIGlmIChcbiAgICAgICAgcGFyYW1zLmhhc093blByb3BlcnR5KCdjb2xEZWYnKSAmJlxuICAgICAgICBwYXJhbXMuY29sRGVmLmhhc093blByb3BlcnR5KG5hbWUpXG4gICAgICApIHtcbiAgICAgICAgb3B0aW9uID0gcGFyYW1zLmNvbERlZltuYW1lXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdHJ5IHRvIGZldGNoIGZyb20gQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZ3xtZXRhIGluIHRoZSBjb250ZXh0XG4gICAgICAgIGxldCBBR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnID0gbnVsbFxuICAgICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KCdjb250ZXh0JykpIHtcbiAgICAgICAgICBBR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnID1cbiAgICAgICAgICAgIHBhcmFtcy5jb250ZXh0LkFHcmlkQ29tcG9uZW50c01ldGFDb25maWcgfHwgcGFyYW1zLmNvbnRleHQubWV0YVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIEFHcmlkQ29tcG9uZW50c01ldGFDb25maWcgJiZcbiAgICAgICAgICBBR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnLmhhc093blByb3BlcnR5KHBhcmFtcy5jb2x1bW4uY29sSWQpICYmXG4gICAgICAgICAgQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZ1twYXJhbXMuY29sdW1uLmNvbElkXS5oYXNPd25Qcm9wZXJ0eShuYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICBvcHRpb24gPSBBR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnW3BhcmFtcy5jb2x1bW4uY29sSWRdW25hbWVdXG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZyAmJlxuICAgICAgICAgIEFHcmlkQ29tcG9uZW50c01ldGFDb25maWcuaGFzT3duUHJvcGVydHkobmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgb3B0aW9uID0gQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZ1tuYW1lXVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHRyeSB0byBmZXRjaCBmcm9tIHRoZSBjb250ZXh0IG9iamVjdCBpdHNlbGZcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gcGFyYW1zLmNvbnRleHRcbiAgICAgICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0Lmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgICBvcHRpb24gPSBjb250ZXh0W25hbWVdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRyeSB0byBjaGVjayBwYXJhbXMgaXRzZWxmIG9yIGZhbGxiYWNrIHRvIGRlZmF1bHRcbiAgICAgICAgICAgIG9wdGlvbiA9IGZhbGxiYWNrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVvZiBvcHRpb24gIT09ICd1bmRlZmluZWQnID8gb3B0aW9uIDogZmFsbGJhY2tcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgV2luZG93IEluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7cGFyYW1zfSBwYXJhbXMgYW4gb2JqZWN0IHVzZWQgdG8gc2VhcmNoIGZvciB0aGUgd2luZG93IGluc3RhbmNlXG4gICAqXG4gICAqIEByZXR1cm4ge1dpbmRvd31cbiAgICovXG4gIGdldFdpbihwYXJhbXMpIHtcbiAgICBjb25zdCB3aW4gPSB0aGlzLmdldE9wdGlvbignd2luZG93JywgcGFyYW1zKSB8fCB3aW5kb3cgfHwgbnVsbFxuXG4gICAgaWYgKCF3aW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3VycmVudCBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IHdpbmRvdycpXG4gICAgfVxuXG4gICAgcmV0dXJuIHdpblxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkb2N1bWVudCBJbnN0YW5jZVxuICAgKlxuICAgKiBAcGFyYW0ge3BhcmFtc30gcGFyYW1zIGFuIG9iamVjdCB1c2VkIHRvIHNlYXJjaCBmb3IgdGhlIGRvY3VtZW50IGluc3RhbmNlXG4gICAqXG4gICAqIEByZXR1cm4ge0hUTUxEb2N1bWVudH1cbiAgICovXG4gIGdldERvYyhwYXJhbXMpIHtcbiAgICBjb25zdCBkb2MgPSB0aGlzLmdldE9wdGlvbignZG9jdW1lbnQnLCBwYXJhbXMpIHx8IGRvY3VtZW50IHx8IG51bGxcblxuICAgIGlmICghZG9jKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0N1cnJlbnQgZW52aXJvbm1lbnQgZG9lcyBub3Qgc3VwcG9ydCBkb2N1bWVudCcpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRvY1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbXBvbmVudFxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0NvbXBvbmVudC9Db21wb25lbnQuanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgeyBhdXRvYmluZCwgb3ZlcnJpZGUgfSBmcm9tICdjb3JlLWRlY29yYXRvcnMnXG5pbXBvcnQgQ29tcG9uZW50IGZyb20gJy4uL0NvbXBvbmVudCdcbmltcG9ydCAnLi9zdHlsZS5zY3NzJ1xuXG4vKipcbiAqIEJvb2xlYW4gUmVuZGVyZXJcbiAqXG4gKiBTaW1wbGUgdG9nZ2xlIHN3aXRjaCB0byBoYW5kbGUgYm9vbGVhbiB2YWx1ZXNcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBCb29sZWFuU3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdCBuZXcgQm9vbGVhblN3aXRjaCBDb21wb25lbnRcbiAgICpcbiAgICogQHBhcmFtIHtCb29sZWFufSBbaW5pdGlhbFZhbHVlID0gZmFsc2VdIHRoZSBkZWZhdWx0IHN0YXRlICwgY2hlY2tlZCBvciB1bmNoZWNrZWRcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW2xpc3RlbmVyID0gbnVsbF0gYSBsaXN0ZW5lciB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc3RhdGUgaXMgY2hhbmdlZFxuICAgKi9cbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlID0gZmFsc2UsIGxpc3RlbmVyID0gbnVsbCkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLnNldENoZWNrZWQoaW5pdGlhbFZhbHVlKVxuICAgIHRoaXMuc2V0TGlzdGVuZXIobGlzdGVuZXIpXG4gICAgdGhpcy5zZXREaXNhYmxlZChmYWxzZSlcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBpbml0KHBhcmFtcykge1xuICAgIHRoaXMuX3BhcmFtcyA9IHBhcmFtc1xuICAgIHRoaXMuX29uQ2xpY2sgPSB0aGlzLl9vbkNsaWNrLmJpbmQodGhpcylcbiAgICB0aGlzLl9vbktleWRvd24gPSB0aGlzLl9vbktleWRvd24uYmluZCh0aGlzKVxuXG4gICAgdGhpcy5fZ3VpID0gdGhpcy5nZXREb2MocGFyYW1zKS5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMuX2d1aS5jbGFzc05hbWUgPSAnYm9vbFN3aXRjaF9fd3JhcHBlcidcbiAgICB0aGlzLl9ndWkudGFiSW5kZXggPSAtMVxuXG4gICAgdGhpcy5yZW5kZXIoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgc3dpdGNoIHNsaWRlciBhbmQgaGlkZGVuIGlucHV0LlxuICAgKi9cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGRvYyA9IHRoaXMuZ2V0RG9jKHRoaXMuX3BhcmFtcylcblxuICAgIGNvbnN0IGJvb2xTd2l0Y2ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIGJvb2xTd2l0Y2guY2xhc3NOYW1lID0gJ2Jvb2xTd2l0Y2gnXG5cbiAgICAvLyBpbnB1dFxuICAgIHRoaXMuX2lucHV0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2lucHV0JylcbiAgICB0aGlzLl9pbnB1dC5pZCA9IGBlbC0ke01hdGgucmFuZG9tKCl9YFxuICAgIHRoaXMuX2lucHV0Lm5hbWUgPSAnY2hlY2tib3gnXG4gICAgdGhpcy5faW5wdXQuY2xhc3NOYW1lID0gJ2Jvb2xTd2l0Y2hfX2NoZWNrYm94J1xuICAgIHRoaXMuX2lucHV0LnR5cGUgPSAnY2hlY2tib3gnXG4gICAgdGhpcy5faW5wdXQuY2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKClcbiAgICB0aGlzLl9pbnB1dC5kaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZCgpXG4gICAgdGhpcy5faW5wdXQudGFiSW5kZXggPSAnMCdcblxuICAgIC8vIGxhYmVsXG4gICAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpXG4gICAgbGFiZWwuY2xhc3NOYW1lID0gJ2Jvb2xTd2l0Y2hfX2xhYmVsJ1xuICAgIGxhYmVsLmZvciA9IHRoaXMuX2lucHV0LmlkXG4gICAgbGFiZWwuaW5uZXJIVE1MID0gLyogaHRtbCAqLyBgXG4gICAgICA8c3BhbiBjbGFzcz1cImJvb2xTd2l0Y2hfX2lubmVyXCI+PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJib29sU3dpdGNoX19zd2l0Y2hcIj48L3NwYW4+XG4gICAgYFxuXG4gICAgLy8gYXR0YWNoZSBpbnB1dCBhbmQgc2xpZGVyIHRvIGNvbXBvbmVudFxuICAgIGJvb2xTd2l0Y2guYXBwZW5kQ2hpbGQodGhpcy5faW5wdXQpXG4gICAgYm9vbFN3aXRjaC5hcHBlbmRDaGlsZChsYWJlbClcblxuICAgIGJvb2xTd2l0Y2guYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9vbkNsaWNrKVxuICAgIHRoaXMuX2d1aS5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25LZXlkb3duKVxuXG4gICAgdGhpcy5fZ3VpLmFwcGVuZENoaWxkKGJvb2xTd2l0Y2gpXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgZGVzdHJveSgpIHtcbiAgICBjb25zdCBib29sU3dpdGNoID0gdGhpcy5fZ3VpLnF1ZXJ5U2VsZWN0b3IoJy5ib29sU3dpdGNoJylcbiAgICBib29sU3dpdGNoLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb25DbGljaylcbiAgICB0aGlzLl9ndWkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uS2V5ZG93bilcbiAgfVxuXG4gIC8qKlxuICAgKiBGb2N1cyB0aGUgY29tcG9uZW50XG4gICAqL1xuICBmb2N1cygpIHtcbiAgICB0aGlzLl9ndWkuZm9jdXMoKVxuICAgIHRoaXMuX2lucHV0LmZvY3VzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBsaXN0ZW5lciB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc3dpdGNoIHN0YXRlIGlzIGNoYW5nZWRcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXJcbiAgICovXG4gIHNldExpc3RlbmVyKGxpc3RlbmVyKSB7XG4gICAgdGhpcy5fbGlzdGVuZXIgPSBsaXN0ZW5lclxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdGVuZXIgaW5zdGFuY2UgLCBpZlxuICAgKlxuICAgKiBAcmV0dXJuIHtGdW5jdGlvbnxudWxsfVxuICAgKi9cbiAgZ2V0TGlzdGVuZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3RlbmVyXG4gIH1cblxuICAvKipcbiAgICogU2V0IGNoZWNrZWRcbiAgICpcbiAgICogQHBhcmFtIHtCb29sZWFufSB2YWx1ZSB0cnVlIHRvIGNoZWNrICwgZmFsc2UgdG8gdW5jaGVja1xuICAgKi9cbiAgc2V0Q2hlY2tlZCh2YWx1ZSkge1xuICAgIHRoaXMuX2NoZWNrZWQgPSB2YWx1ZVxuICAgIGlmICh0aGlzLl9pbnB1dCkge1xuICAgICAgdGhpcy5faW5wdXQuY2hlY2tlZCA9IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHRoZSBpZiBzd2l0Y2ggaXMgY2hlY2tlZFxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSAgdHJ1ZSB3aGVuIGNoZWNrZWQgLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGlzQ2hlY2tlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tlZFxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgY29tcG9uZW50IHN0YXRlXG4gICAqL1xuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5zZXRDaGVja2VkKCF0aGlzLmlzQ2hlY2tlZCgpKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkaXNhYmxlZFxuICAgKlxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHZhbHVlIHRydWUgdG8gZGlzYWJsZWQgLCBmYWxzZSB0byBlbmFibGVcbiAgICovXG4gIHNldERpc2FibGVkKHZhbHVlKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZVxuICAgIGlmICh0aGlzLl9pbnB1dCkge1xuICAgICAgdGhpcy5faW5wdXQuZGlzYWJsZWQgPSB2YWx1ZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgc3dpdGNoIGlzIGRpc2FibGVkXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgd2hlbiBkaXNhYmxlZCAsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaXNEaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBjbGljayBsaXN0ZW5lciBvZiB0aGUgc3dpdGNoLiBJdCB3aWxsIHRvZ2dsZSB0aGUgc3RhdGUgYW5kIGZpcmUgYW55IHJlZ2lzdGVyZWQgbGlzdGVuZXJcbiAgICpcbiAgICogQHBhcmFtIHtFdmVudH0gZSB0aGUgZXZlbnQgb2JqZWN0XG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIEBhdXRvYmluZFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgX29uQ2xpY2soZSkge1xuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgdGhpcy50b2dnbGUoKVxuXG4gICAgaWYgKHRoaXMuX2xpc3RlbmVyKSB7XG4gICAgICB0aGlzLl9saXN0ZW5lcih0aGlzKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBrZXkgbGlzdGVuZXIgb2YgdGhlIHN3aXRjaC4gSXQgd2lsbCB0b2dnbGUgdGhlIHN0YXRlIHVzaW5nIGtleWJvYXJkIGtleXMgKGxlZnQgLCByaWdodCAsIHNwYWNlKVxuICAgKiBhbmQgZmlyZSBhbnkgcmVnaXN0ZXJlZCBsaXN0ZW5lclxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBlICB0aGUgZXZlbnQgb2JqZWN0XG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIEBhdXRvYmluZFxuICBfb25LZXlkb3duKGUpIHtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGtleSA9IGUud2hpY2ggfHwgZS5rZXlDb2RlXG5cbiAgICAvLyBzcGFjZVxuICAgIGlmIChrZXkgPT0gMzIpIHtcbiAgICAgIHRoaXMudG9nZ2xlKClcbiAgICAgIGlmICh0aGlzLl9saXN0ZW5lcikge1xuICAgICAgICB0aGlzLl9saXN0ZW5lcih0aGlzKVxuICAgICAgfVxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIH1cbiAgICAvLyByaWdodFxuICAgIGVsc2UgaWYgKGtleSA9PSAzOSkge1xuICAgICAgdGhpcy5zZXRDaGVja2VkKHRydWUpXG4gICAgICBpZiAodGhpcy5fbGlzdGVuZXIpIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuZXIodGhpcylcbiAgICAgIH1cbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB9XG4gICAgLy8gbGVmdFxuICAgIGVsc2UgaWYgKGtleSA9PSAzNykge1xuICAgICAgdGhpcy5zZXRDaGVja2VkKGZhbHNlKVxuICAgICAgaWYgKHRoaXMuX2xpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuX2xpc3RlbmVyKHRoaXMpXG4gICAgICB9XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2xlYW5Td2l0Y2hcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9Cb29sZWFuU3dpdGNoL0Jvb2xlYW5Td2l0Y2guanMiLCJpbXBvcnQgeyBkZWNvcmF0ZSwgY3JlYXRlRGVmYXVsdFNldHRlciB9IGZyb20gJy4vcHJpdmF0ZS91dGlscyc7XG5jb25zdCB7IGRlZmluZVByb3BlcnR5IH0gPSBPYmplY3Q7XG5cbmZ1bmN0aW9uIGhhbmRsZURlc2NyaXB0b3IodGFyZ2V0LCBrZXksIGRlc2NyaXB0b3IpIHtcbiAgY29uc3QgeyBjb25maWd1cmFibGUsIGVudW1lcmFibGUsIGluaXRpYWxpemVyLCB2YWx1ZSB9ID0gZGVzY3JpcHRvcjtcbiAgcmV0dXJuIHtcbiAgICBjb25maWd1cmFibGUsXG4gICAgZW51bWVyYWJsZSxcblxuICAgIGdldCgpIHtcbiAgICAgIC8vIFRoaXMgaGFwcGVucyBpZiBzb21lb25lIGFjY2Vzc2VzIHRoZVxuICAgICAgLy8gcHJvcGVydHkgZGlyZWN0bHkgb24gdGhlIHByb3RvdHlwZVxuICAgICAgaWYgKHRoaXMgPT09IHRhcmdldCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJldCA9IGluaXRpYWxpemVyID8gaW5pdGlhbGl6ZXIuY2FsbCh0aGlzKSA6IHZhbHVlO1xuXG4gICAgICBkZWZpbmVQcm9wZXJ0eSh0aGlzLCBrZXksIHtcbiAgICAgICAgY29uZmlndXJhYmxlLFxuICAgICAgICBlbnVtZXJhYmxlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IHJldFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSxcblxuICAgIHNldDogY3JlYXRlRGVmYXVsdFNldHRlcihrZXkpXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxhenlJbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgcmV0dXJuIGRlY29yYXRlKGhhbmRsZURlc2NyaXB0b3IsIGFyZ3MpO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtZGVjb3JhdG9ycy9zcmMvbGF6eS1pbml0aWFsaXplLmpzIiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LnBhcmVudC5kb2N1bWVudC5oZWFkXG4gICAgICAgICAgICAgIH07XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcblxuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG5cbmlmKG1vZHVsZS5ob3QpIHtcblx0bW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zdHlsZS5zY3NzXCIpO1xuXG5cdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cblx0XHR2YXIgbG9jYWxzID0gKGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdHZhciBrZXksIGlkeCA9IDA7XG5cblx0XHRcdGZvcihrZXkgaW4gYSkge1xuXHRcdFx0XHRpZighYiB8fCBhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRpZHgrKztcblx0XHRcdH1cblxuXHRcdFx0Zm9yKGtleSBpbiBiKSBpZHgtLTtcblxuXHRcdFx0cmV0dXJuIGlkeCA9PT0gMDtcblx0XHR9KGNvbnRlbnQubG9jYWxzLCBuZXdDb250ZW50LmxvY2FscykpO1xuXG5cdFx0aWYoIWxvY2FscykgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGluZyBDU1MgSE1SIGR1ZSB0byBjaGFuZ2VkIGNzcy1tb2R1bGVzIGxvY2Fscy4nKTtcblxuXHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0fSk7XG5cblx0bW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0Jvb2xlYW5Td2l0Y2gvc3R5bGUuc2NzcyIsImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikoZmFsc2UpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcgLmJvb2xTd2l0Y2hfX3dyYXBwZXJ7bWFyZ2luOmF1dG8gMTFweH0uYm9vbFN3aXRjaF9fd3JhcHBlcntkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZX0uYm9vbFN3aXRjaHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo1NXB4Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmV9LmJvb2xTd2l0Y2hfX2NoZWNrYm94e2Rpc3BsYXk6bm9uZX0uYm9vbFN3aXRjaF9fbGFiZWx7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyOjJweCBzb2xpZCAjOTk5OTk5O2JvcmRlci1yYWRpdXM6MjBweH0uYm9vbFN3aXRjaF9faW5uZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoyMDAlO21hcmdpbi1sZWZ0Oi0xMDAlO3RyYW5zaXRpb246bWFyZ2luIDAuM3MgZWFzZS1pbiAwc30uYm9vbFN3aXRjaF9faW5uZXI6YmVmb3JlLC5ib29sU3dpdGNoX19pbm5lcjphZnRlcntkaXNwbGF5OmJsb2NrO2Zsb2F0OmxlZnQ7d2lkdGg6NTAlO2hlaWdodDoxNXB4O3BhZGRpbmc6MDtsaW5lLWhlaWdodDoxNXB4O2ZvbnQtc2l6ZToxNHB4O2NvbG9yOndoaXRlO2ZvbnQtZmFtaWx5OidTZWdvZSBVSSBTeW1ib2wnLCBUcmVidWNoZXQsIEFyaWFsLCBzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OmJvbGQ7Ym94LXNpemluZzpib3JkZXItYm94fS5ib29sU3dpdGNoX19pbm5lcjpiZWZvcmV7Y29udGVudDonXFxcXDI3MTQnO3BhZGRpbmctbGVmdDoxMHB4O2JhY2tncm91bmQtY29sb3I6IzM0YTdjMTtjb2xvcjojZmZmZmZmfS5ib29sU3dpdGNoX19pbm5lcjphZnRlcntjb250ZW50OidcXFxcMjcxOCc7cGFkZGluZy1yaWdodDoxMHB4O2JhY2tncm91bmQtY29sb3I6I2VlZWVlZTtjb2xvcjojOTk5OTk5O3RleHQtYWxpZ246cmlnaHR9LmJvb2xTd2l0Y2hfX3N3aXRjaHtkaXNwbGF5OmJsb2NrO3dpZHRoOjE4cHg7bWFyZ2luOjFweDtiYWNrZ3JvdW5kOiNmZmZmZmY7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MzVweDtib3JkZXI6MnB4IHNvbGlkICM5OTk5OTk7Ym9yZGVyLXJhZGl1czoyMHB4O3RyYW5zaXRpb246YWxsIDAuM3MgZWFzZS1pbiAwc30uYm9vbFN3aXRjaF9fY2hlY2tib3g6Y2hlY2tlZCsuYm9vbFN3aXRjaF9fbGFiZWwgLmJvb2xTd2l0Y2hfX2lubmVye21hcmdpbi1sZWZ0OjB9LmJvb2xTd2l0Y2hfX2NoZWNrYm94OmNoZWNrZWQrLmJvb2xTd2l0Y2hfX2xhYmVsIC5ib29sU3dpdGNoX19zd2l0Y2h7cmlnaHQ6MHB4fS5hZy10aGVtZS1iYWxoYW0gLmJvb2xTd2l0Y2hfX2xhYmVse2JvcmRlci1jb2xvcjojQkRDM0M3fS5hZy10aGVtZS1iYWxoYW0gLmJvb2xTd2l0Y2hfX2lubmVyOmJlZm9yZSwuYWctdGhlbWUtYmFsaGFtIC5ib29sU3dpdGNoX19pbm5lcjphZnRlcntjb2xvcjojZmZmfS5hZy10aGVtZS1iYWxoYW0gLmJvb2xTd2l0Y2hfX2lubmVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDkxRUE7Y29sb3I6I2ZmZn0uYWctdGhlbWUtYmFsaGFtIC5ib29sU3dpdGNoX19pbm5lcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Y29sb3I6I0JEQzNDN30uYWctdGhlbWUtYmFsaGFtIC5ib29sU3dpdGNoX19zd2l0Y2h7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojQkRDM0M3fS5hZy10aGVtZS1iYWxoYW0tZGFyayAuYm9vbFN3aXRjaF9fbGFiZWx7Ym9yZGVyLWNvbG9yOiM0MjQyNDJ9LmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5ib29sU3dpdGNoX19pbm5lcjpiZWZvcmUsLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5ib29sU3dpdGNoX19pbm5lcjphZnRlcntjb2xvcjojMmQzNDM2fS5hZy10aGVtZS1iYWxoYW0tZGFyayAuYm9vbFN3aXRjaF9faW5uZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAwQjBGRjtjb2xvcjojY2ZkOWRifS5hZy10aGVtZS1iYWxoYW0tZGFyayAuYm9vbFN3aXRjaF9faW5uZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjEyNzI4O2NvbG9yOiM0MjQyNDJ9LmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5ib29sU3dpdGNoX19zd2l0Y2h7YmFja2dyb3VuZDojMmQzNDM2O2JvcmRlci1jb2xvcjojNDI0MjQyfS5hZy10aGVtZS1tYXRlcmlhbCAuYm9vbFN3aXRjaF9fbGFiZWx7Ym9yZGVyLWNvbG9yOiNlMmUyZTJ9LmFnLXRoZW1lLW1hdGVyaWFsIC5ib29sU3dpdGNoX19pbm5lcjpiZWZvcmUsLmFnLXRoZW1lLW1hdGVyaWFsIC5ib29sU3dpdGNoX19pbm5lcjphZnRlcntjb2xvcjojZmZmfS5hZy10aGVtZS1tYXRlcmlhbCAuYm9vbFN3aXRjaF9faW5uZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2ZmNDA4MTtjb2xvcjojZmZmfS5hZy10aGVtZS1tYXRlcmlhbCAuYm9vbFN3aXRjaF9faW5uZXI6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyO2NvbG9yOiNkNWQ1ZDV9LmFnLXRoZW1lLW1hdGVyaWFsIC5ib29sU3dpdGNoX19zd2l0Y2h7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojZTJlMmUyfVxcblwiLCBcIlwiXSk7XG5cbi8vIGV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIhLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvQm9vbGVhblN3aXRjaC9zdHlsZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSA0OVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIDMiLCJcbi8qKlxuICogV2hlbiBzb3VyY2UgbWFwcyBhcmUgZW5hYmxlZCwgYHN0eWxlLWxvYWRlcmAgdXNlcyBhIGxpbmsgZWxlbWVudCB3aXRoIGEgZGF0YS11cmkgdG9cbiAqIGVtYmVkIHRoZSBjc3Mgb24gdGhlIHBhZ2UuIFRoaXMgYnJlYWtzIGFsbCByZWxhdGl2ZSB1cmxzIGJlY2F1c2Ugbm93IHRoZXkgYXJlIHJlbGF0aXZlIHRvIGFcbiAqIGJ1bmRsZSBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IHBhZ2UuXG4gKlxuICogT25lIHNvbHV0aW9uIGlzIHRvIG9ubHkgdXNlIGZ1bGwgdXJscywgYnV0IHRoYXQgbWF5IGJlIGltcG9zc2libGUuXG4gKlxuICogSW5zdGVhZCwgdGhpcyBmdW5jdGlvbiBcImZpeGVzXCIgdGhlIHJlbGF0aXZlIHVybHMgdG8gYmUgYWJzb2x1dGUgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHBhZ2UgbG9jYXRpb24uXG4gKlxuICogQSBydWRpbWVudGFyeSB0ZXN0IHN1aXRlIGlzIGxvY2F0ZWQgYXQgYHRlc3QvZml4VXJscy5qc2AgYW5kIGNhbiBiZSBydW4gdmlhIHRoZSBgbnBtIHRlc3RgIGNvbW1hbmQuXG4gKlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzcykge1xuICAvLyBnZXQgY3VycmVudCBsb2NhdGlvblxuICB2YXIgbG9jYXRpb24gPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5sb2NhdGlvbjtcblxuICBpZiAoIWxvY2F0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiZml4VXJscyByZXF1aXJlcyB3aW5kb3cubG9jYXRpb25cIik7XG4gIH1cblxuXHQvLyBibGFuayBvciBudWxsP1xuXHRpZiAoIWNzcyB8fCB0eXBlb2YgY3NzICE9PSBcInN0cmluZ1wiKSB7XG5cdCAgcmV0dXJuIGNzcztcbiAgfVxuXG4gIHZhciBiYXNlVXJsID0gbG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyBsb2NhdGlvbi5ob3N0O1xuICB2YXIgY3VycmVudERpciA9IGJhc2VVcmwgKyBsb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cXC9bXlxcL10qJC8sIFwiL1wiKTtcblxuXHQvLyBjb252ZXJ0IGVhY2ggdXJsKC4uLilcblx0Lypcblx0VGhpcyByZWd1bGFyIGV4cHJlc3Npb24gaXMganVzdCBhIHdheSB0byByZWN1cnNpdmVseSBtYXRjaCBicmFja2V0cyB3aXRoaW5cblx0YSBzdHJpbmcuXG5cblx0IC91cmxcXHMqXFwoICA9IE1hdGNoIG9uIHRoZSB3b3JkIFwidXJsXCIgd2l0aCBhbnkgd2hpdGVzcGFjZSBhZnRlciBpdCBhbmQgdGhlbiBhIHBhcmVuc1xuXHQgICAoICA9IFN0YXJ0IGEgY2FwdHVyaW5nIGdyb3VwXG5cdCAgICAgKD86ICA9IFN0YXJ0IGEgbm9uLWNhcHR1cmluZyBncm91cFxuXHQgICAgICAgICBbXikoXSAgPSBNYXRjaCBhbnl0aGluZyB0aGF0IGlzbid0IGEgcGFyZW50aGVzZXNcblx0ICAgICAgICAgfCAgPSBPUlxuXHQgICAgICAgICBcXCggID0gTWF0Y2ggYSBzdGFydCBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgKD86ICA9IFN0YXJ0IGFub3RoZXIgbm9uLWNhcHR1cmluZyBncm91cHNcblx0ICAgICAgICAgICAgICAgICBbXikoXSsgID0gTWF0Y2ggYW55dGhpbmcgdGhhdCBpc24ndCBhIHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICAgICAgfCAgPSBPUlxuXHQgICAgICAgICAgICAgICAgIFxcKCAgPSBNYXRjaCBhIHN0YXJ0IHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICAgICAgICAgIFteKShdKiAgPSBNYXRjaCBhbnl0aGluZyB0aGF0IGlzbid0IGEgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICAgICBcXCkgID0gTWF0Y2ggYSBlbmQgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICkgID0gRW5kIEdyb3VwXG4gICAgICAgICAgICAgICpcXCkgPSBNYXRjaCBhbnl0aGluZyBhbmQgdGhlbiBhIGNsb3NlIHBhcmVuc1xuICAgICAgICAgICkgID0gQ2xvc2Ugbm9uLWNhcHR1cmluZyBncm91cFxuICAgICAgICAgICogID0gTWF0Y2ggYW55dGhpbmdcbiAgICAgICApICA9IENsb3NlIGNhcHR1cmluZyBncm91cFxuXHQgXFwpICA9IE1hdGNoIGEgY2xvc2UgcGFyZW5zXG5cblx0IC9naSAgPSBHZXQgYWxsIG1hdGNoZXMsIG5vdCB0aGUgZmlyc3QuICBCZSBjYXNlIGluc2Vuc2l0aXZlLlxuXHQgKi9cblx0dmFyIGZpeGVkQ3NzID0gY3NzLnJlcGxhY2UoL3VybFxccypcXCgoKD86W14pKF18XFwoKD86W14pKF0rfFxcKFteKShdKlxcKSkqXFwpKSopXFwpL2dpLCBmdW5jdGlvbihmdWxsTWF0Y2gsIG9yaWdVcmwpIHtcblx0XHQvLyBzdHJpcCBxdW90ZXMgKGlmIHRoZXkgZXhpc3QpXG5cdFx0dmFyIHVucXVvdGVkT3JpZ1VybCA9IG9yaWdVcmxcblx0XHRcdC50cmltKClcblx0XHRcdC5yZXBsYWNlKC9eXCIoLiopXCIkLywgZnVuY3Rpb24obywgJDEpeyByZXR1cm4gJDE7IH0pXG5cdFx0XHQucmVwbGFjZSgvXicoLiopJyQvLCBmdW5jdGlvbihvLCAkMSl7IHJldHVybiAkMTsgfSk7XG5cblx0XHQvLyBhbHJlYWR5IGEgZnVsbCB1cmw/IG5vIGNoYW5nZVxuXHRcdGlmICgvXigjfGRhdGE6fGh0dHA6XFwvXFwvfGh0dHBzOlxcL1xcL3xmaWxlOlxcL1xcL1xcL3xcXHMqJCkvaS50ZXN0KHVucXVvdGVkT3JpZ1VybCkpIHtcblx0XHQgIHJldHVybiBmdWxsTWF0Y2g7XG5cdFx0fVxuXG5cdFx0Ly8gY29udmVydCB0aGUgdXJsIHRvIGEgZnVsbCB1cmxcblx0XHR2YXIgbmV3VXJsO1xuXG5cdFx0aWYgKHVucXVvdGVkT3JpZ1VybC5pbmRleE9mKFwiLy9cIikgPT09IDApIHtcblx0XHQgIFx0Ly9UT0RPOiBzaG91bGQgd2UgYWRkIHByb3RvY29sP1xuXHRcdFx0bmV3VXJsID0gdW5xdW90ZWRPcmlnVXJsO1xuXHRcdH0gZWxzZSBpZiAodW5xdW90ZWRPcmlnVXJsLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0XHQvLyBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZSB0byB0aGUgYmFzZSB1cmxcblx0XHRcdG5ld1VybCA9IGJhc2VVcmwgKyB1bnF1b3RlZE9yaWdVcmw7IC8vIGFscmVhZHkgc3RhcnRzIHdpdGggJy8nXG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIHBhdGggc2hvdWxkIGJlIHJlbGF0aXZlIHRvIGN1cnJlbnQgZGlyZWN0b3J5XG5cdFx0XHRuZXdVcmwgPSBjdXJyZW50RGlyICsgdW5xdW90ZWRPcmlnVXJsLnJlcGxhY2UoL15cXC5cXC8vLCBcIlwiKTsgLy8gU3RyaXAgbGVhZGluZyAnLi8nXG5cdFx0fVxuXG5cdFx0Ly8gc2VuZCBiYWNrIHRoZSBmaXhlZCB1cmwoLi4uKVxuXHRcdHJldHVybiBcInVybChcIiArIEpTT04uc3RyaW5naWZ5KG5ld1VybCkgKyBcIilcIjtcblx0fSk7XG5cblx0Ly8gc2VuZCBiYWNrIHRoZSBmaXhlZCBjc3Ncblx0cmV0dXJuIGZpeGVkQ3NzO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL3VybHMuanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgQm9vbGVhblJlbmRlcmVyIGZyb20gJy4vQm9vbGVhblJlbmRlcmVyJ1xuXG5leHBvcnQgZGVmYXVsdCBCb29sZWFuUmVuZGVyZXJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9Cb29sZWFuUmVuZGVyZXIvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgQ29tcG9uZW50IGZyb20gJy4uL0NvbXBvbmVudCdcbmltcG9ydCBCb29sZWFuU3dpdGNoIGZyb20gJy4uL0Jvb2xlYW5Td2l0Y2gnXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvdHlwZS1idWlsdGlucyAqL1xuXG4vKipcbiAqIEJvb2xlYW5zIFJlbmRlcmVyXG4gKlxuICogSGFuZGxlIGJvb2xlYW4gdmFsdWVzIFJlbmRlcmluZ1xuICpcbiAqICMjIE9wdGlvbnNcbiAqXG4gKiB8IE5hbWUgICAgICAgICAgICAgICAgICBcdHwgRGVmYXVsdCAgICAgXHR8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHR8Oi0tLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKmJvb2xlYW5UcnVlUmVuZGVyVmFsdWUqKiAgXHR8IHN3aXRjaCAgICAgIFx0fCBUaGUgb3B0aW9uIGNvbnRyb2xzIGhvdyB0byByZW5kZXIgYHRydWVgIHZhbHVlcy4gPGJyPiAqKnN3aXRjaCoqIGlzIGEgc3BlY2lhbCB2YWx1ZSB1c2VkIHRvIHJlbmRlciB0cnVlIHZhbHVlcyBhcyBhIHN3aXRjaCBjb21wb25lbnQgIFx0fFxuICogfCAqKmJvb2xlYW5GYWxzZVJlbmRlclZhbHVlKiogXHR8IHN3aXRjaCAgICAgIFx0fCBUaGUgb3B0aW9uIGNvbnRyb2xzIGhvdyB0byByZW5kZXIgYGZhbHNlYCB2YWx1ZXMuIDxicj4gKipzd2l0Y2gqKiBpcyBhIHNwZWNpYWwgdmFsdWUgdXNlZCB0byByZW5kZXIgdHJ1ZSB2YWx1ZXMgYXMgYSBzd2l0Y2ggY29tcG9uZW50IFx0fFxuICogfCAqKmJvb2xlYW5UcnVlVmFsdWVbXSoqICAgICAgIHwgdHJ1ZShib29sKSAgXHR8IFRoZSBvcHRpb25zIGRlc2NyaWJlcyB3aGF0IGlzIGNvbnNpZGVyZWQgYHRydWVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwgKipib29sZWFuRmFsc2VWYWx1ZVtdKiogICAgICB8IGZhbHNlKGJvb2wpIFx0fCBUaGUgb3B0aW9ucyBkZXNjcmliZXMgd2hhdCBpcyBjb25zaWRlcmVkIGBmYWxzZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR8XG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgQm9vbGVhblJlbmRlcmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdCBuZXcgQm9vbGVhblJlbmRlcmVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG5cbiAgICAvLyB3aWxsIHRoaXMgYWZmZWN0IEJCaiBidWkgP1xuICAgIHRoaXMuX2d1aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxuICAgIHRoaXMuX2d1aS5jbGFzc05hbWUgPSAnYm9vbFJlbmRlcmVyJ1xuICAgIHRoaXMuX2d1aS5zdHlsZS5mb250RmFtaWx5ID1cbiAgICAgICdcIlNlZ29lIFVJIFN5bWJvbFwiLFRyZWJ1Y2hldCwgQXJpYWwsIHNhbnMtc2VyaWYnXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBpbml0KHBhcmFtcykge1xuICAgIHRoaXMucmVmcmVzaChwYXJhbXMsIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBnZXRHdWkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2d1aVxuICB9XG5cbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5fc3dpdGNoZXIpIHtcbiAgICAgIHRoaXMuX3N3aXRjaGVyLmRlc3Ryb3koKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoIHRoZSBjZWxsXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgY2VsbCByZW5kZXJlciBwYXJhbXNcbiAgICogQHBhcmFtIHtCb29sZWFufSBpc0luaXQgdHJ1ZSB3aGVuIHRoaXMgbWV0aG9kIGlzIGJlaW5nIGNhbGxlZCBpbiBgaW5pdGAgcGhhc2UgLCBmYWxzZSBvdGhlcndpc2VcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSBpZiB0aGUgcmVmcmVzaCBzdWNjZWVkZWQsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgcmVmcmVzaChwYXJhbXMsIGlzSW5pdCkge1xuICAgIGxldCB2YWx1ZSA9IHBhcmFtcy52YWx1ZUZvcm1hdHRlZCA/IHBhcmFtcy52YWx1ZUZvcm1hdHRlZCA6IHBhcmFtcy52YWx1ZVxuXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuX2d1aS5pbm5lckhUTUwgPSAnJ1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IFN0cmluZyh2YWx1ZSlcbiAgICAgIGNvbnN0IGJvb2xlYW5UcnVlUmVuZGVyVmFsdWUgPSBTdHJpbmcoXG4gICAgICAgIHRoaXMuZ2V0T3B0aW9uKCdib29sZWFuVHJ1ZVJlbmRlclZhbHVlJywgcGFyYW1zLCAnc3dpdGNoJylcbiAgICAgIClcbiAgICAgIGNvbnN0IGJvb2xlYW5GYWxzZVJlbmRlclZhbHVlID0gU3RyaW5nKFxuICAgICAgICB0aGlzLmdldE9wdGlvbignYm9vbGVhbkZhbHNlUmVuZGVyVmFsdWUnLCBwYXJhbXMsICdzd2l0Y2gnKVxuICAgICAgKVxuICAgICAgY29uc3QgYm9vbGVhblRydWVWYWx1ZSA9IFtdXG4gICAgICAgIC5jb25jYXQodGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5UcnVlVmFsdWUnLCBwYXJhbXMsIFt0cnVlXSkpXG4gICAgICAgIC5tYXAoeCA9PiBTdHJpbmcoeCkpXG4gICAgICBjb25zdCBib29sZWFuRmFsc2VWYWx1ZSA9IFtdXG4gICAgICAgIC5jb25jYXQodGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5GYWxzZVZhbHVlJywgcGFyYW1zLCBbZmFsc2VdKSlcbiAgICAgICAgLm1hcCh4ID0+IFN0cmluZyh4KSlcblxuICAgICAgLy8gaGFuZGxlIHRydWUgdmFsdWVzXG4gICAgICBpZiAoYm9vbGVhblRydWVWYWx1ZS5pbmRleE9mKHZhbHVlKSA+IC0xKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhYm9vbGVhblRydWVSZW5kZXJWYWx1ZS5sZW5ndGggfHxcbiAgICAgICAgICBib29sZWFuVHJ1ZVJlbmRlclZhbHVlID09PSAnc3dpdGNoJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBzd2l0Y2hlciA9IHRoaXMuX2dldFN3aXRjaGVyKHBhcmFtcylcbiAgICAgICAgICBzd2l0Y2hlci5zZXRDaGVja2VkKHRydWUpXG4gICAgICAgICAgdGhpcy5fZ3VpLmlubmVySFRNTCA9ICcnXG4gICAgICAgICAgdGhpcy5fZ3VpLmFwcGVuZENoaWxkKHN3aXRjaGVyLmdldEd1aSgpKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2d1aS5pbm5lckhUTUwgPSBib29sZWFuVHJ1ZVJlbmRlclZhbHVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIGhhbmRsZSBmYWxzZSB2YWx1ZXNcbiAgICAgIGVsc2UgaWYgKGJvb2xlYW5GYWxzZVZhbHVlLmluZGV4T2YodmFsdWUpID4gLTEpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFib29sZWFuRmFsc2VSZW5kZXJWYWx1ZS5sZW5ndGggfHxcbiAgICAgICAgICBib29sZWFuRmFsc2VSZW5kZXJWYWx1ZSA9PT0gJ3N3aXRjaCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3Qgc3dpdGNoZXIgPSB0aGlzLl9nZXRTd2l0Y2hlcihwYXJhbXMpXG4gICAgICAgICAgc3dpdGNoZXIuc2V0Q2hlY2tlZChmYWxzZSlcbiAgICAgICAgICB0aGlzLl9ndWkuaW5uZXJIVE1MID0gJydcbiAgICAgICAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQoc3dpdGNoZXIuZ2V0R3VpKCkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZ3VpLmlubmVySFRNTCA9IGJvb2xlYW5GYWxzZVJlbmRlclZhbHVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2d1aS5pbm5lckhUTUwgPSB2YWx1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogR2V0IHN3aXRjaCBpbnN0YW5jZSBpZiBhdmFpbGFibGUgLCBvciBjcmVhdGUgaXQgb3RoZXJ3aXNlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXNcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhblN3aXRjaH0gc3dpdGNoIGluc3RhbmNlXG4gICAqL1xuICBfZ2V0U3dpdGNoZXIocGFyYW1zKSB7XG4gICAgaWYgKCF0aGlzLl9zd2l0Y2hlcikge1xuICAgICAgdGhpcy5fc3dpdGNoZXIgPSBuZXcgQm9vbGVhblN3aXRjaCgpXG4gICAgICB0aGlzLl9zd2l0Y2hlci5zZXREaXNhYmxlZCh0cnVlKVxuICAgICAgdGhpcy5fc3dpdGNoZXIuaW5pdChwYXJhbXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3N3aXRjaGVyXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQm9vbGVhblJlbmRlcmVyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvQm9vbGVhblJlbmRlcmVyL0Jvb2xlYW5SZW5kZXJlci5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBCb29sZWFuRmlsdGVyIGZyb20gJy4vQm9vbGVhbkZpbHRlcidcblxuZXhwb3J0IGRlZmF1bHQgQm9vbGVhbkZpbHRlclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0Jvb2xlYW5GaWx0ZXIvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgeyBhdXRvYmluZCwgb3ZlcnJpZGUgfSBmcm9tICdjb3JlLWRlY29yYXRvcnMnXG5pbXBvcnQgQ29tcG9uZW50IGZyb20gJy4uL0NvbXBvbmVudCdcbmltcG9ydCAnLi9zdHlsZS5zY3NzJ1xuXG5jb25zdCB0b1RpdGxlQ2FzZSA9IHBocmFzZSA9PiB7XG4gIHJldHVybiBwaHJhc2VcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5zcGxpdCgnICcpXG4gICAgLm1hcCh3b3JkID0+IHdvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpKVxuICAgIC5qb2luKCcgJylcbn1cblxuY29uc3Qgc3RyaXBIVE1MID0gaHRtbCA9PiB7XG4gIGNvbnN0IHRtcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpXG4gIHRtcC5pbm5lckhUTUwgPSBodG1sXG4gIHJldHVybiB0bXAudGV4dENvbnRlbnQgfHwgdG1wLmlubmVyVGV4dCB8fCAnJ1xufVxuXG4vKipcbiAqIEJvb2xlYW5zIEZpbHRlclxuICpcbiAqIEhhbmRsZSBib29sZWFuIHZhbHVlcyBGaWx0ZXJpbmdcbiAqXG4gKiAjIyBPcHRpb25zXG4gKlxuICogfCBOYW1lICAgICAgICAgICAgICAgICAgXHR8IERlZmF1bHQgICAgIFx0fCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVx0fDotLS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipib29sZWFuVXNlZFRydWVWYWx1ZSoqICAgfCB1bmRlZmluZWQgICAgfCB0aGUgdmFsdWUgdG8gdXNlIHdoZW4gdGhlIGZpbHRlciBkaXNwbGF5cyB0aGUgdHJ1ZSBzdGF0ZSAuIGluIGNhc2UgaXQgaXMgdW5kZWZpbmVkIHRoZW4gd2UgdXNlIHRoZSBmaXJzdCBpdGVtIGluICoqYm9vbGVhblRydWVWYWx1ZVtdKipcbiAqIHwgKipib29sZWFuVXNlZEZhbHNlVmFsdWUqKiAgIHwgdW5kZWZpbmVkICAgIHwgdGhlIHZhbHVlIHRvIHVzZSB3aGVuIHRoZSBmaWx0ZXIgZGlzcGxheXMgdGhlIGZhbHNlIHN0YXRlLiBpbiBjYXNlIGl0IGlzIHVuZGVmaW5lZCB0aGVuIHdlIHVzZSB0aGUgZmlyc3QgaXRlbSBpbiAqKmJvb2xlYW5GYWxzZVZhbHVlW10qKlxuICogfCAqKmJvb2xlYW5UcnVlVmFsdWVbXSoqICAgICAgIHwgdHJ1ZShib29sKSAgXHR8IFRoZSBvcHRpb25zIGRlc2NyaWJlcyB3aGF0IGlzIGNvbnNpZGVyZWQgYHRydWVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwgKipib29sZWFuRmFsc2VWYWx1ZVtdKiogICAgICB8IGZhbHNlKGJvb2wpIFx0fCBUaGUgb3B0aW9ucyBkZXNjcmliZXMgd2hhdCBpcyBjb25zaWRlcmVkIGBmYWxzZWBcbiAqIHwgKipjbGVhckJ1dHRvbioqICAgfCBmYWxzZSAgICB8ICBTZXQgdG8gdHJ1ZSB0byBoYXZlIHRoZSBmaWx0ZXIgdXNlIGEgQ2xlYXIgYnV0dG9uLiBUaGUgQ2xlYXIgYnV0dG9uIHdpbGwgY2xlYXIgdGhlIChmb3JtKSBkZXRhaWxzIG9mIHRoZSBmaWx0ZXIgd2l0aG91dCByZW1vdmluZyBhbnkgYWN0aXZlIGZpbHRlcnMgb24gdGhlIGNvbHVtbi5cbiAqIHwgKiphcHBseUJ1dHRvbioqICAgfCBmYWxzZSAgICB8ICBTZXQgdG8gdHJ1ZSB0byBoYXZlIHRoZSBmaWx0ZXIgdXNlIGFuIEFwcGx5IGJ1dHRvbi4gSWYgdGhlIEFwcGx5IGJ1dHRvbiBpcyBwcmVzZW50LCB0aGVuIHRoZSBmaWx0ZXIgaXMgb25seSBhcHBsaWVkIGFmdGVyIHRoZSB1c2VyIGhpdHMgdGhlIEFwcGx5IGJ1dHRvbi5cbiAqIHwgKipyZXNldEJ1dHRvbioqICAgfCBmYWxzZSAgICB8ICBTZXQgdG8gdHJ1ZSB0byBoYXZlIHRoZSBmaWx0ZXIgdXNlIGEgUmVzZXQgYnV0dG9uLiBUaGUgUmVzZXQgYnV0dG9uIHdpbGwgY2xlYXIgdGhlIGRldGFpbHMgb2YgdGhlIGZpbHRlciBhbmQgYW55IGFjdGl2ZSBmaWx0ZXJzIG9uIHRoYXQgY29sdW1uLlxuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIEJvb2xlYW5GaWx0ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogVHJ1ZSAsIGZhbHNlIHRyYW5zbGF0aW9uXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBfYm9vbGVhbkZpbHRlclRyYW5zbGF0aW9uID0ge31cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBuZXcgQm9vbGVhbkZpbHRlclxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgdGhpcy5fZ3VpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB0aGlzLl9ndWkuY2xhc3NOYW1lID0gJ2Jvb2xlYW5GaWx0ZXIgYWctZmlsdGVyLWJvZHktd3JhcHBlcidcbiAgICB0aGlzLl9ndWkudGFiSW5kZXggPSAnMCdcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgQG92ZXJyaWRlXG4gIGluaXQocGFyYW1zKSB7XG4gICAgY29uc3QgdHJhbnNsYXRlID0gcGFyYW1zLmFwaS5ncmlkT3B0aW9uc1dyYXBwZXIuZ2V0TG9jYWxlVGV4dEZ1bmMoKVxuICAgIGNvbnN0IGlzQ2xlYXJGaWx0ZXIgPSB0aGlzLmdldE9wdGlvbignY2xlYXJCdXR0b24nLCBwYXJhbXMsIGZhbHNlKVxuICAgIGNvbnN0IGlzUmVzZXRCdXR0b24gPSB0aGlzLmdldE9wdGlvbigncmVzZXRCdXR0b24nLCBwYXJhbXMsIGZhbHNlKVxuICAgIGNvbnN0IGlzQXBwbHlCdXR0b24gPSB0aGlzLmdldE9wdGlvbignYXBwbHlCdXR0b24nLCBwYXJhbXMsIGZhbHNlKVxuXG4gICAgdGhpcy5fdHJ1ZVZhbHVlID0gW11cbiAgICAgIC5jb25jYXQodGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5UcnVlVmFsdWUnLCBwYXJhbXMsIFt0cnVlXSkpXG4gICAgICAubWFwKHggPT4gU3RyaW5nKHgpKVxuXG4gICAgdGhpcy5fZmFsc2VWYWx1ZSA9IFtdXG4gICAgICAuY29uY2F0KHRoaXMuZ2V0T3B0aW9uKCdib29sZWFuRmFsc2VWYWx1ZScsIHBhcmFtcywgW2ZhbHNlXSkpXG4gICAgICAubWFwKHggPT4gU3RyaW5nKHgpKVxuXG4gICAgdGhpcy5fdXNlZFRydWVWYWx1ZSA9IFN0cmluZyhcbiAgICAgIHRoaXMuZ2V0T3B0aW9uKCdib29sZWFuVXNlZFRydWVWYWx1ZScsIHBhcmFtcywgdGhpcy5fdHJ1ZVZhbHVlWzBdKVxuICAgIClcblxuICAgIHRoaXMuX3VzZWRGYWxzZVZhbHVlID0gU3RyaW5nKFxuICAgICAgdGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5Vc2VkRmFsc2VWYWx1ZScsIHBhcmFtcywgdGhpcy5fZmFsc2VWYWx1ZVswXSlcbiAgICApXG5cbiAgICB0aGlzLl9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24gPSB0aGlzLmdldE9wdGlvbihcbiAgICAgICdib29sZWFuRmlsdGVyVHJhbnNsYXRpb24nLFxuICAgICAgcGFyYW1zLFxuICAgICAge1xuICAgICAgICB0cnVlOiB0cmFuc2xhdGUoXG4gICAgICAgICAgJ2Jvb2xlYW5UcnVlJyxcbiAgICAgICAgICB0b1RpdGxlQ2FzZShTdHJpbmcodGhpcy5fdXNlZFRydWVWYWx1ZSkpXG4gICAgICAgICksXG4gICAgICAgIGZhbHNlOiB0cmFuc2xhdGUoXG4gICAgICAgICAgJ2Jvb2xlYW5GYWxzZScsXG4gICAgICAgICAgdG9UaXRsZUNhc2UoU3RyaW5nKHRoaXMuX3VzZWRGYWxzZVZhbHVlKSlcbiAgICAgICAgKSxcbiAgICAgICAgcmVzZXQ6IHRyYW5zbGF0ZShcbiAgICAgICAgICAnYm9vbGVhblJlc2V0JyxcbiAgICAgICAgICB0cmFuc2xhdGUoJ3Jlc2V0RmlsdGVyJywgJ1Jlc2V0IEZpbHRlcicpXG4gICAgICAgICksXG4gICAgICB9XG4gICAgKVxuXG4gICAgdGhpcy5fcGFyYW1zID0gcGFyYW1zXG4gICAgdGhpcy5fZmlsdGVyVGV4dCA9IG51bGxcblxuICAgIHRoaXMuX29uUmFkaW9DaGFuZ2UgPSB0aGlzLl9vblJhZGlvQ2hhbmdlLmJpbmQodGhpcywgaXNBcHBseUJ1dHRvbilcblxuICAgIC8vIGNyZWF0ZSBib2R5XG4gICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgYm9keS5jbGFzc05hbWUgPSAnYm9vbGVhbkZpbHRlcl9fYm9keSBhZy1maWx0ZXItYm9keSdcbiAgICBib2R5LnN0eWxlLnBhZGRpbmcgPSAnNXB4IDE1cHgnXG4gICAgYm9keS5pbm5lckhUTUwgPSAvKiBodG1sICovIGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvb2xlYW5GaWx0ZXJfX2JvZHlfX2xhYmVsc1wiPlxuICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiYm9vbGVhblwiIHZhbHVlPVwidHJ1ZVwiPlxuICAgICAgICAgICAgJHt0aGlzLl9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24udHJ1ZX1cbiAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJib29sZWFuXCIgdmFsdWU9XCJmYWxzZVwiPlxuICAgICAgICAgICAgJHt0aGlzLl9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24uZmFsc2V9XG4gICAgICAgICAgPC9sYWJlbD4gICAgIFxuICAgICAgICAgIFxuICAgICAgICAgICR7XG4gICAgICAgICAgICAhaXNSZXNldEJ1dHRvblxuICAgICAgICAgICAgICA/IC8qIGh0bWwgKi8gYFxuICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiYm9vbGVhblwiIHZhbHVlPVwiXCIgY2hlY2tlZD5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5fYm9vbGVhbkZpbHRlclRyYW5zbGF0aW9uLnJlc2V0fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+ICAgXG4gICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIH0gICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgIGBcblxuICAgIGJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5fb25SYWRpb0NoYW5nZSlcblxuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZChib2R5KVxuXG4gICAgLy8gY3JlYXRlIGFwcGx5IGZpbHRlciBwYW5lbFxuICAgIGNvbnN0IGFwcGx5RmlsdGVyUGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIGFwcGx5RmlsdGVyUGFuZWwuY2xhc3NOYW1lID0gYGJvb2xlYW5GaWx0ZXJfX2JvZHlfX2FwcGx5UGFuZWwgYWctZmlsdGVyLWFwcGx5LXBhbmVsIGFnLWhpZGRlbmBcbiAgICBhcHBseUZpbHRlclBhbmVsLmlubmVySFRNTCA9IC8qIGh0bWwgKi8gYFxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsZWFyICR7IWlzQ2xlYXJGaWx0ZXIgJiZcbiAgICAgICAgJ2FnLWhpZGRlbid9XCIgdHlwZT1cImJ1dHRvblwiPiR7dHJhbnNsYXRlKFxuICAgICAgJ2NsZWFyRmlsdGVyJyxcbiAgICAgICdDbGVhciBGaWx0ZXInXG4gICAgKX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJyZXNldCAkeyFpc1Jlc2V0QnV0dG9uICYmXG4gICAgICAgICdhZy1oaWRkZW4nfVwiIHR5cGU9XCJidXR0b25cIj4ke3RyYW5zbGF0ZShcbiAgICAgICdyZXNldEZpbHRlcicsXG4gICAgICAnUmVzZXQgRmlsdGVyJ1xuICAgICl9PC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYXBwbHkgJHshaXNBcHBseUJ1dHRvbiAmJlxuICAgICAgICAnYWctaGlkZGVuJ31cIiB0eXBlPVwiYnV0dG9uXCI+JHt0cmFuc2xhdGUoXG4gICAgICAnYXBwbHlGaWx0ZXInLFxuICAgICAgJ0FwcGx5IEZpbHRlcidcbiAgICApfTwvYnV0dG9uPlxuICAgIGBcblxuICAgIGlmIChpc0NsZWFyRmlsdGVyIHx8IGlzUmVzZXRCdXR0b24gfHwgaXNBcHBseUJ1dHRvbikge1xuICAgICAgYXBwbHlGaWx0ZXJQYW5lbC5jbGFzc0xpc3QucmVtb3ZlKCdhZy1oaWRkZW4nKVxuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyUGFuZWwuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjbGljaycsXG4gICAgICB0aGlzLl9BcHBseUZpbHRlclBhbmVsQnV0dG9uQ2xpY2tcbiAgICApXG5cbiAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQoYXBwbHlGaWx0ZXJQYW5lbClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgQG92ZXJyaWRlXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZ3VpXG4gICAgICAucXVlcnlTZWxlY3RvcignLmJvb2xlYW5GaWx0ZXJfX2JvZHlfX2xhYmVscycpXG4gICAgICAucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5fb25SYWRpb0NoYW5nZSlcblxuICAgIHRoaXMuX2d1aVxuICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5ib29sZWFuRmlsdGVyX19ib2R5X19hcHBseVBhbmVsJylcbiAgICAgIC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX0FwcGx5RmlsdGVyUGFuZWxCdXR0b25DbGljaylcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB3aGV0aGVyIHNlbGVjdGVkIGZpbHRlciBtYXRjaGVzIHRoZSBwYXNzZWQgY2VsbCBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXNcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSB3aGVuIHBhc3MsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgZG9lc0ZpbHRlclBhc3MocGFyYW1zKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgIGNvbnN0IHZhbHVlID0gU3RyaW5nKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgICAgdGhpcy5fcGFyYW1zLmhhc093blByb3BlcnR5KCdmaWx0ZXJWYWx1ZUdldHRlcicpXG4gICAgICAgID8gdGhpcy5fcGFyYW1zLmZpbHRlclZhbHVlR2V0dGVyKHBhcmFtcylcbiAgICAgICAgOiB0aGlzLl9wYXJhbXMudmFsdWVHZXR0ZXIocGFyYW1zKVxuICAgIClcblxuICAgIHJldHVybiB0aGlzLl9maWx0ZXJUZXh0ID09PSAndHJ1ZSdcbiAgICAgID8gdGhpcy5fdHJ1ZVZhbHVlLmluZGV4T2YodmFsdWUpID4gLTFcbiAgICAgIDogdGhpcy5fZmFsc2VWYWx1ZS5pbmRleE9mKHZhbHVlKSA+IC0xXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGFwcGx5aW5nIGFueSBmaWx0ZXIgb24gdGhlIGNvbHVtblxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufVxuICAgKiovXG4gIGlzRmlsdGVyQWN0aXZlKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLl9maWx0ZXJUZXh0ICE9PSBudWxsICYmXG4gICAgICB0aGlzLl9maWx0ZXJUZXh0ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuX2ZpbHRlclRleHQgIT09ICcnXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGZpbHRlciBzdGF0ZS4gSWYgZmlsdGVyIGlzIG5vdCBhY3RpdmUsIHRoZW4gc2hvdWxkIHJldHVybiBudWxsL3VuZGVmaW5lZC5cbiAgICogVGhlIGdyaWQgY2FsbHMgZ2V0TW9kZWwoKSBvbiBhbGwgYWN0aXZlIGZpbHRlcnMgd2hlbiBncmlkQXBpLmdldEZpbHRlck1vZGVsKCkgaXMgY2FsbGVkLlxuICAgKlxuICAgKiBAcmV0dXJuIE9iamVjdCB8IG51bGwgdGhlIGZpbHRlciBzdGF0ZVxuICAgKi9cbiAgZ2V0TW9kZWwoKSB7XG4gICAgaWYgKCF0aGlzLmlzRmlsdGVyQWN0aXZlKCkpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWwgPSB7IHZhbHVlOiB0aGlzLl9maWx0ZXJUZXh0IH1cbiAgICByZXR1cm4gbW9kZWxcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgZmlsdGVyIHN0YXRlLiBDYWxsZWQgYnkgdGhlIGdyaWQgYWZ0ZXIgZ3JpZEFwaS5zZXRGaWx0ZXJNb2RlbChtb2RlbCkgaXMgY2FsbGVkLlxuICAgKiBUaGUgZ3JpZCB3aWxsIHBhc3MgdW5kZWZpbmVkL251bGwgdG8gY2xlYXIgdGhlIGZpbHRlci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3QgfCBudWxsfSBtb2RlbFxuICAgKi9cbiAgc2V0TW9kZWwobW9kZWwpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cbiAgICB0aGlzLl9maWx0ZXJUZXh0ID0gbW9kZWwgJiYgbW9kZWwuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykgPyBtb2RlbC52YWx1ZSA6ICcnXG5cbiAgICBjb25zdCBmaWx0ZXJUZXh0QXNTdHJpbmcgPSBTdHJpbmcodGhpcy5fZmlsdGVyVGV4dClcbiAgICBjb25zdCBib2R5ID0gdGhpcy5fZ3VpLnF1ZXJ5U2VsZWN0b3IoJy5ib29sZWFuRmlsdGVyX19ib2R5JylcbiAgICBib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXScpLmZvckVhY2goaSA9PiB7XG4gICAgICBpZiAoaS52YWx1ZSA9PSBmaWx0ZXJUZXh0QXNTdHJpbmcpIHtcbiAgICAgICAgaS5jaGVja2VkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaS5jaGVja2VkID0gZmFsc2VcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmlsdGVyIG1vZGVsIGFzIHBsYWluIHN0cmluZyB0byBkaXNwbGF5IGluIHRoZSBmbG9hdGluZyBmaWx0ZXIgaW5wdXRcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3QgfCBudWxsfSBtb2RlbFxuICAgKi9cbiAgZ2V0TW9kZWxBc1N0cmluZyhtb2RlbCkge1xuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiAnJ1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpcEhUTUwoXG4gICAgICBtb2RlbC52YWx1ZSA9PT0gJ3RydWUnXG4gICAgICAgID8gdGhpcy5fYm9vbGVhbkZpbHRlclRyYW5zbGF0aW9uLnRydWVcbiAgICAgICAgOiB0aGlzLl9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24uZmFsc2VcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIGZpbHRlciBzdGF0ZVxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuX2d1aS5xdWVyeVNlbGVjdG9yKCcuYm9vbGVhbkZpbHRlcl9fYm9keScpXG4gICAgYm9keS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicmFkaW9cIl0nKS5mb3JFYWNoKGkgPT4ge1xuICAgICAgaS5jaGVja2VkID0gZmFsc2VcbiAgICB9KVxuXG4gICAgdGhpcy5fZmlsdGVyVGV4dCA9IG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gc2VsZWN0aW9uIGNoYW5nZXMgaW4gdGhlIGZpbHRlciByYWRpbyBidXR0b25zIGFuZCB1cGRhdGUgdGhlIGN1cnJlbnQgZmlsdGVyIHRleHRcbiAgICpcbiAgICogQHBhcmFtIHtFdmVudH0gZVxuICAgKi9cbiAgX29uUmFkaW9DaGFuZ2UoaXNBcHBseUJ1dHRvbiwgZSkge1xuICAgIHRoaXMuX2ZpbHRlclRleHQgPSBlLnRhcmdldC52YWx1ZVxuICAgIGlmIChmYWxzZSA9PT0gaXNBcHBseUJ1dHRvbikge1xuICAgICAgdGhpcy5fcGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byB0aGUgYnV0dG9uIGNsaWNrcyBpbiB0aGUgYnV0dG9ucyBwYW5lbCBhbmQgYXBwbHkgdGhlIGNob3NlbiBhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtFdmVudH0gZVxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9BcHBseUZpbHRlclBhbmVsQnV0dG9uQ2xpY2soZSkge1xuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0XG5cbiAgICBpZiAodGFyZ2V0Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xuICAgICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ3Jlc2V0JykpIHtcbiAgICAgICAgdGhpcy5yZXNldCgpXG4gICAgICAgIHRoaXMuX3BhcmFtcy5maWx0ZXJDaGFuZ2VkQ2FsbGJhY2soKVxuICAgICAgfSBlbHNlIGlmICh0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbGVhcicpKSB7XG4gICAgICAgIHRoaXMucmVzZXQoKVxuICAgICAgfSBlbHNlIGlmICh0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdhcHBseScpKSB7XG4gICAgICAgIHRoaXMuX3BhcmFtcy5maWx0ZXJDaGFuZ2VkQ2FsbGJhY2soKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCb29sZWFuRmlsdGVyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvQm9vbGVhbkZpbHRlci9Cb29sZWFuRmlsdGVyLmpzIiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LnBhcmVudC5kb2N1bWVudC5oZWFkXG4gICAgICAgICAgICAgIH07XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcblxuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG5cbmlmKG1vZHVsZS5ob3QpIHtcblx0bW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zdHlsZS5zY3NzXCIpO1xuXG5cdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cblx0XHR2YXIgbG9jYWxzID0gKGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdHZhciBrZXksIGlkeCA9IDA7XG5cblx0XHRcdGZvcihrZXkgaW4gYSkge1xuXHRcdFx0XHRpZighYiB8fCBhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRpZHgrKztcblx0XHRcdH1cblxuXHRcdFx0Zm9yKGtleSBpbiBiKSBpZHgtLTtcblxuXHRcdFx0cmV0dXJuIGlkeCA9PT0gMDtcblx0XHR9KGNvbnRlbnQubG9jYWxzLCBuZXdDb250ZW50LmxvY2FscykpO1xuXG5cdFx0aWYoIWxvY2FscykgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGluZyBDU1MgSE1SIGR1ZSB0byBjaGFuZ2VkIGNzcy1tb2R1bGVzIGxvY2Fscy4nKTtcblxuXHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0fSk7XG5cblx0bW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0Jvb2xlYW5GaWx0ZXIvc3R5bGUuc2NzcyIsImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikoZmFsc2UpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiLmJvb2xlYW5GaWx0ZXJfX2JvZHlfX2xhYmVscyBsYWJlbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6M3B4IDB9XFxuXCIsIFwiXCJdKTtcblxuLy8gZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlciEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9Cb29sZWFuRmlsdGVyL3N0eWxlLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDU2XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIgMyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBOdW1iZXJFZGl0b3IgZnJvbSAnLi9OdW1iZXJFZGl0b3InXG5cbmV4cG9ydCBkZWZhdWx0IE51bWJlckVkaXRvclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL051bWJlckVkaXRvci9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vQ29tcG9uZW50J1xuaW1wb3J0IHsgYXV0b2JpbmQsIG92ZXJyaWRlIH0gZnJvbSAnY29yZS1kZWNvcmF0b3JzJ1xuXG5pbXBvcnQgJy4vc3R5bGUuc2NzcydcblxuLyoqXG4gKiBOdW1iZXJzIEVkaXRvclxuICpcbiAqIEhhbmRsZSBudW1iZXIgdmFsdWVzIEVkaXRpbmdcbiAqXG4gKiB8IE5hbWUgICAgICAgICAgICAgICAgICBcdHwgRGVmYXVsdCAgICAgXHR8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHR8Oi0tLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKm51bWJlck1pblZhbHVlKiogICB8IHVuZGVmaW5lZCAgICB8IG1pbiBhbGxvd2VkIHZhbHVlXG4gKiB8ICoqbnVtYmVyTWF4VmFsdWUqKiAgIHwgdW5kZWZpbmVkICAgIHwgbWF4IGFsbG93ZWQgdmFsdWVcbiAqIHwgKipudW1iZXJTdGVwVmFsdWUqKiAgICAgICB8IHVuZGVmaW5lZCAgXHR8IG51bWJlciBvZiBzdGVwIGJ5IGluY3JlbWVudCBvciBkZWNyZW1lbnRcbiAqIHwgKipudW1iZXJNYXNrKiogICAgICAgfCB1bmRlZmluZWQgIFx0fCBhIGJiaiBudW1iZXIgbWFzayB0byB2YWxpZGF0ZSB0aGUgbnVtYmVyIGFnYWluc3RcbiAqIHwqKm51bWJlckdyb3VwaW5nU2VwYXJhdG9yKiogfCAsIHwgYSBjaGFyIHdoaWNoIHdpbGwgYmUgdXNlZCBhcyBhIGdyb3VwaW5nIHNlcGFyYXRvci4gVGhlIG9wdGlvbnMgaXMgdXNlZCBvbmx5IHdoZW4gKipudW1iZXJNYXNrKiogaXMgZGVmaW5lZCB8XG4gKiB8KipudW1iZXJEZWNpbWFsU2VwYXJhdG9yKiogfCAuIHwgYSBjaGFyIHdoaWNoIHdpbGwgYmUgdXNlZCBhcyBhIGRlY2ltYWwgc2VwYXJhdG9yLiBUaGUgb3B0aW9ucyBpcyB1c2VkIG9ubHkgd2hlbiAqKm51bWJlck1hc2sqKiBpcyBkZWZpbmVkICB8XG4gKiB8KipudW1iZXJGb3JjZVRyYWlsaW5nWmVyb3MqKiB8IGZhbHNlIHwgQWZmZWN0cyB0aGUgb3V0cHV0IGJ5IHN3aXRjaGluZyB0aGUgd2F5IGEgbWFzayB3aXRoIFwiI1wiIGNoYXJhY3RlcnMgaW4gdGhlIHRyYWlsaW5nIHBvc2l0aW9ucyBpcyBmaWxsZWQuIGZvciBleGFtcGxlLCB0aGUgZnVuY3Rpb24gTnVtYmVyTWFzay5tYXNrKC4xMDpcIiMuIyNcIikgcmV0dXJucyAuMTAgaW5zdGVhZCBvZiAuMSAuIFRoZSBvcHRpb25zIGlzIHVzZWQgb25seSB3aGVuICoqbnVtYmVyTWFzayoqIGlzIGRlZmluZWR8XG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgTnVtYmVyRWRpdG9yIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgQG92ZXJyaWRlXG4gIGluaXQocGFyYW1zKSB7XG4gICAgY29uc3QgbWluID0gdGhpcy5nZXRPcHRpb24oJ251bWJlck1pblZhbHVlJywgcGFyYW1zKVxuICAgIGNvbnN0IG1heCA9IHRoaXMuZ2V0T3B0aW9uKCdudW1iZXJNYXhWYWx1ZScsIHBhcmFtcylcbiAgICBjb25zdCBzdGVwID0gdGhpcy5nZXRPcHRpb24oJ251bWJlclN0ZXBWYWx1ZScsIHBhcmFtcylcbiAgICBjb25zdCBtYXNrID0gdGhpcy5nZXRPcHRpb24oJ251bWJlck1hc2snLCBwYXJhbXMpXG5cbiAgICBsZXQgc3RhcnRWYWx1ZVxuXG4gICAgdGhpcy5fZm9jdXNBZnRlckF0dGFjaGVkID0gcGFyYW1zLmNlbGxTdGFydGVkRWRpdFxuICAgIGlmICh0aGlzLl9mb2N1c0FmdGVyQXR0YWNoZWQpIHtcbiAgICAgIGxldCBrZXlQcmVzc0JhY2tzcGFjZU9yRGVsZXRlID1cbiAgICAgICAgcGFyYW1zLmtleVByZXNzID09IDMyIHx8IHBhcmFtcy5rZXlQcmVzcyA9PSA0NiAvLyBzcGFjZSAvLyBkZWxldGVcblxuICAgICAgaWYgKGtleVByZXNzQmFja3NwYWNlT3JEZWxldGUpIHtcbiAgICAgICAgc3RhcnRWYWx1ZSA9ICcnXG4gICAgICB9IGVsc2UgaWYgKHBhcmFtcy5jaGFyUHJlc3MpIHtcbiAgICAgICAgc3RhcnRWYWx1ZSA9IHBhcmFtcy5jaGFyUHJlc3NcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXJ0VmFsdWUgPSBwYXJhbXMudmFsdWVcbiAgICAgICAgaWYgKHBhcmFtcy5rZXlQcmVzcyAhPSAxMTMpIHtcbiAgICAgICAgICAvL0YyXG4gICAgICAgICAgdGhpcy5faGlnaGxpZ2h0QWxsT25Gb2N1cyA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzdGFydFZhbHVlID0gcGFyYW1zLnZhbHVlXG4gICAgfVxuXG4gICAgdGhpcy5fZ3VpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKVxuICAgIHRoaXMuX2d1aS5jbGFzc05hbWUgPSAnbnVtYmVyRWRpdG9yIGFnLWlucHV0LXdyYXBwZXInXG4gICAgdGhpcy5fZ3VpLnRhYkluZGV4ID0gJzAnXG5cbiAgICAvLyBpbnB1dFxuICAgIHRoaXMuX2lucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKVxuICAgIHRoaXMuX2lucHV0LmNsYXNzTmFtZSA9ICdudW1iZXJFZGl0b3JfX2lucHV0IGFnLWNlbGwtZWRpdC1pbnB1dCdcbiAgICB0aGlzLl9pbnB1dC5pZCA9IGBlbC0ke01hdGgucmFuZG9tKClcbiAgICAgIC50b1N0cmluZygxNilcbiAgICAgIC5zbGljZSgyLCAxMCl9YCAvLyBnZW5lcmF0ZSByYW5kb20gaWRcbiAgICB0aGlzLl9pbnB1dC50eXBlID0gbWFzayA/ICd0ZXh0JyA6ICdudW1iZXInXG4gICAgdGhpcy5faW5wdXQudmFsdWUgPSBzdGFydFZhbHVlXG4gICAgdGhpcy5faW5wdXQudGFiSW5kZXggPSAwXG5cbiAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQodGhpcy5faW5wdXQpXG5cbiAgICBpZiAobWluICE9PSBudWxsKSB7XG4gICAgICBtYXNrID8gKHRoaXMuX2lucHV0LmRhdGFzZXQubWluID0gbWluKSA6ICh0aGlzLl9pbnB1dC5taW4gPSBtaW4pXG4gICAgfVxuXG4gICAgaWYgKG1heCAhPT0gbnVsbCkge1xuICAgICAgbWFzayA/ICh0aGlzLl9pbnB1dC5kYXRhc2V0Lm1heCA9IG1heCkgOiAodGhpcy5faW5wdXQubWF4ID0gbWF4KVxuICAgIH1cblxuICAgIGlmIChzdGVwICE9PSBudWxsKSB7XG4gICAgICBtYXNrID8gKHRoaXMuX2lucHV0LmRhdGFzZXQuc3RlcCA9IHN0ZXApIDogKHRoaXMuX2lucHV0LnN0ZXAgPSBzdGVwKVxuICAgIH1cblxuICAgIGlmIChtYXNrKSB7XG4gICAgICBjb25zdCBncm91cGluZ1NlcGFyYXRvciA9IHRoaXMuZ2V0T3B0aW9uKFxuICAgICAgICAnbnVtYmVyR3JvdXBpbmdTZXBhcmF0b3InLFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHRoaXMuZ2V0T3B0aW9uKCdudW1iZXJHcm91cFNlcCcsIHBhcmFtcylcbiAgICAgIClcbiAgICAgIGNvbnN0IGRlY2ltYWxTZXBhcmF0b3IgPSB0aGlzLmdldE9wdGlvbihcbiAgICAgICAgJ251bWJlckRlY2ltYWxTZXBhcmF0b3InLFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHRoaXMuZ2V0T3B0aW9uKCdudW1iZXJEZWNpbWFsU2VwJywgcGFyYW1zKVxuICAgICAgKVxuICAgICAgY29uc3QgZm9yY2VUcmFpbGluZ1plcm9zID0gdGhpcy5nZXRPcHRpb24oXG4gICAgICAgICdudW1iZXJGb3JjZVRyYWlsaW5nWmVyb3MnLFxuICAgICAgICBwYXJhbXNcbiAgICAgIClcblxuICAgICAgaWYgKGdyb3VwaW5nU2VwYXJhdG9yICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2lucHV0LmRhdGFzZXQuZ3JvdXBpbmdTZXBhcmF0b3IgPSBncm91cGluZ1NlcGFyYXRvclxuICAgICAgfVxuXG4gICAgICBpZiAoZGVjaW1hbFNlcGFyYXRvciAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9pbnB1dC5kYXRhc2V0LmRlY2ltYWxTZXBhcmF0b3IgPSBkZWNpbWFsU2VwYXJhdG9yXG4gICAgICB9XG5cbiAgICAgIGlmIChmb3JjZVRyYWlsaW5nWmVyb3MgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5faW5wdXQuZGF0YXNldC5mb3JjZVRyYWlsaW5nWmVyb3MgPSBmb3JjZVRyYWlsaW5nWmVyb3NcbiAgICAgIH1cblxuICAgICAgdGhpcy5faW5wdXQuZGF0YXNldC5tYXNrID0gbWFza1xuICAgICAgdGhpcy5fbnVtYmVySW5wdXQgPSBuZXcgQmFzaXMuSW5wdXRNYXNraW5nLk51bWJlcklucHV0KHtcbiAgICAgICAgZWxlbWVudHM6IFt0aGlzLl9pbnB1dF0sXG4gICAgICAgIGRvYzogdGhpcy5nZXREb2MocGFyYW1zKSxcbiAgICAgICAgb25VcGRhdGU6IChfbWFza2VkLCB1bm1hc2tlZCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHVubWFza2VkXG4gICAgICAgICAgdGhpcy5mb2N1c0luKClcbiAgICAgICAgfSxcbiAgICAgICAgb25JbnZhbGlkOiAoZXJyb3IsIGlucHV0KSA9PiB7XG4gICAgICAgICAgdGhpcy5mb2N1c0luKClcbiAgICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaW5wdXQuc2V0Q3VzdG9tVmFsaWRpdHkoZXJyb3IpXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uS2V5RG93blVwKVxuICAgICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleURvd25VcClcbiAgICAgIHRoaXMuX2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX29uQ2hhbmdlKVxuICAgIH1cblxuICAgIC8vIHVwZGF0ZSBgY3VycmVudFZhbHVlYCB0aGUgdmFsdWUgd2hpY2ggdGhpcyBjb21wb25lbnQgaXMgbWFuYWdpbmdcbiAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSBzdGFydFZhbHVlXG4gICAgdGhpcy5fX2lzTWFza2VkX18gPSBtYXNrICYmIG1hc2subGVuZ3RoXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgZGVzdHJveSgpIHtcbiAgICBpZiAoIXRoaXMuX19pc01hc2tlZF9fKSB7XG4gICAgICB0aGlzLl9pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25LZXlEb3duVXApXG4gICAgICB0aGlzLl9pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX29uS2V5RG93blVwKVxuICAgICAgdGhpcy5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5fb25DaGFuZ2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX251bWJlcklucHV0LmRlc3Ryb3koKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNhbGxlZCBvbmNlIGFmdGVyIEdVSSBpcyBhdHRhY2hlZCB0byBET00uXG4gICAqXG4gICAqIE1ha2Ugc3VyZSBjb250YWluZXIgaXMgYWx3YXlzIGZvY3VzZWQgdG8gbGlzdGVuIHRvIGtleSBjaGFuZ2VzXG4gICAqL1xuICBhZnRlckd1aUF0dGFjaGVkKCkge1xuICAgIGlmICghdGhpcy5fX2lzTWFza2VkX18pIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlSW5wdXQodGhpcy5faW5wdXQpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2hpZ2hsaWdodEFsbE9uRm9jdXMpIHtcbiAgICAgIHRoaXMuX2lucHV0LnNlbGVjdCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9mb2N1c0FmdGVyQXR0YWNoZWQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0luKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IFRoZSBjb21wb25lbnQgdmFsdWVcbiAgICpcbiAgICogQHJldHVybiB7TnVtYmVyfVxuICAgKi9cbiAgZ2V0VmFsdWUoKSB7XG4gICAgY29uc3QgY2FzdGVkID0gTnVtYmVyKHRoaXMuX2N1cnJlbnRWYWx1ZSlcbiAgICByZXR1cm4gaXNOYU4oY2FzdGVkKSA/IHRoaXMuX2N1cnJlbnRWYWx1ZSA6IGNhc3RlZFxuICB9XG5cbiAgLyoqXG4gICAqIElmIGRvaW5nIGZ1bGwgcm93IGVkaXQsIHRoZW4gZ2V0cyBjYWxsZWQgd2hlbiB0YWJiaW5nIGludG8gdGhlIGNlbGwuXG4gICAqL1xuICBmb2N1c0luKCkge1xuICAgIHRoaXMuX2lucHV0LmZvY3VzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNhbGxlZCBvbmNlIGFmdGVyIGluaXRpYWxpemVkIGFuZCByZXR1cm5zIGZhbHNlIHNvIHRoZSBlZGl0b3IgYXBwZWFycyBpbiB0aGUgY2VsbFxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSBhbHdheXMgZmFsc2VcbiAgICoqL1xuICBpc1BvcHVwKCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBgY3VycmVudFZhbHVlYCB3aGVuIHRoZSBjaGVja2JveCB2YWx1ZSBpcyBjaGFuZ2VkXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX29uQ2hhbmdlKGV2ZW50KSB7XG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuX3ZhbGlkYXRlSW5wdXQoZXZlbnQudGFyZ2V0KVxuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB0aGlzLl9pbnB1dC52YWx1ZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8ga2V5IGNoYW5nZXMgYW5kIHZhbGlkYXRlIHRoZSBpbnB1dFxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9vbktleURvd25VcChldmVudCkge1xuICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLl92YWxpZGF0ZUlucHV0KGV2ZW50LnRhcmdldClcblxuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gZXZlbnQud2hpY2ggfHwgZXZlbnQua2V5Q29kZVxuXG4gICAgaWYgKGtleSA9PSAzOCB8fCBrZXkgPT0gNDApIHtcbiAgICAgIC8vIHRvcCB8IGRvd25cbiAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHRoaXMuX2lucHV0LnZhbHVlXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgIH0gZWxzZSBpZiAoa2V5ID09IDEzIHx8IGtleSA9PT0gOSkge1xuICAgICAgLy8gZW50ZXJcbiAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHRoaXMuX2lucHV0LnZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoZSBnaXZlbiBpbnB1dCBlbGVtZW50XG4gICAqXG4gICAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gaW5wdXQgaW5wdXQgZWxlbWVudFxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIHdoZW4gdmFsaWQgLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIF92YWxpZGF0ZUlucHV0KGlucHV0KSB7XG4gICAgY29uc3QgaXNWYWxpZCA9IGlucHV0LmNoZWNrVmFsaWRpdHkoKVxuXG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICBpbnB1dC5jbGFzc0xpc3QuYWRkKCdiYmotbWFzay1lcnJvcicpXG4gICAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCdiYmotbWFzay1zdWNjZXNzJylcbiAgICB9IGVsc2Uge1xuICAgICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgnYmJqLW1hc2stZXJyb3InKVxuICAgICAgaW5wdXQuY2xhc3NMaXN0LmFkZCgnYmJqLW1hc2stc3VjY2VzcycpXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmFsaWRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBOdW1iZXJFZGl0b3JcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9OdW1iZXJFZGl0b3IvTnVtYmVyRWRpdG9yLmpzIiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LnBhcmVudC5kb2N1bWVudC5oZWFkXG4gICAgICAgICAgICAgIH07XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcblxuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG5cbmlmKG1vZHVsZS5ob3QpIHtcblx0bW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zdHlsZS5zY3NzXCIpO1xuXG5cdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cblx0XHR2YXIgbG9jYWxzID0gKGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdHZhciBrZXksIGlkeCA9IDA7XG5cblx0XHRcdGZvcihrZXkgaW4gYSkge1xuXHRcdFx0XHRpZighYiB8fCBhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRpZHgrKztcblx0XHRcdH1cblxuXHRcdFx0Zm9yKGtleSBpbiBiKSBpZHgtLTtcblxuXHRcdFx0cmV0dXJuIGlkeCA9PT0gMDtcblx0XHR9KGNvbnRlbnQubG9jYWxzLCBuZXdDb250ZW50LmxvY2FscykpO1xuXG5cdFx0aWYoIWxvY2FscykgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGluZyBDU1MgSE1SIGR1ZSB0byBjaGFuZ2VkIGNzcy1tb2R1bGVzIGxvY2Fscy4nKTtcblxuXHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0fSk7XG5cblx0bW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL051bWJlckVkaXRvci9zdHlsZS5zY3NzIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIubnVtYmVyRWRpdG9yIC5udW1iZXJJbnB1dE1hc2tfX3dyYXB7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0ubnVtYmVyRWRpdG9yIC5iYmotbWFzay1lcnJvcntib3gtc2hhZG93OjAgLTJweCAwICNlOTFlNjMgaW5zZXR9Lm51bWJlckVkaXRvciAuYmJqLW1hc2stc3VjY2Vzc3tib3gtc2hhZG93OjAgLTJweCAwICM0Y2FmNTAgaW5zZXR9XFxuXCIsIFwiXCJdKTtcblxuLy8gZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlciEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9OdW1iZXJFZGl0b3Ivc3R5bGUuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNjBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiAzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IFRleHRFZGl0b3IgZnJvbSAnLi9UZXh0RWRpdG9yJ1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0RWRpdG9yXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvVGV4dEVkaXRvci9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vQ29tcG9uZW50J1xuaW1wb3J0IHsgYXV0b2JpbmQsIG92ZXJyaWRlIH0gZnJvbSAnY29yZS1kZWNvcmF0b3JzJ1xuXG5pbXBvcnQgJy4vc3R5bGUuc2NzcydcblxuLyoqXG4gKiBUZXh0IEVkaXRvclxuICpcbiAqIEhhbmRsZSB0ZXh0IHZhbHVlcyBFZGl0aW5nXG4gKlxuICogfCBOYW1lICAgICAgICAgICAgICAgICAgXHR8IERlZmF1bHQgICAgIFx0fCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVx0fDotLS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKip0ZXh0UGF0dGVybioqICAgfCB1bmRlZmluZWQgICAgfCBBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IHRoZSBpbnB1dCdzIHZhbHVlIG11c3QgbWF0Y2ggaW4gb3JkZXIgZm9yIHRoZSB2YWx1ZSB0byBwYXNzIGNvbnN0cmFpbnQgdmFsaWRhdGlvblxuICogfCAqKnRleHRSZXF1aXJlZCoqICAgfCB1bmRlZmluZWQgICAgfCBCb29sZWFuLiBBIHZhbHVlIGlzIHJlcXVpcmVkIHRvIGNvbnNpZGVyIHRoZSBpbnB1dCB2YWxpZFxuICogfCAqKnRleHRNYXNrKiogICB8IHVuZGVmaW5lZCAgICB8IEEgYmJqIHN0cmluZyBtYXNrIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZVxuICogfCAqKnRleHRUaXRsZSoqICAgfCBudWxsICAgIHwgVGhlIGlucHV0IHRpdGxlICwgd2hlbiBudWxsIGFuZCB0aGUgKip0ZXh0TWFzayoqIG9wdGlvbnMgaXMgZGVmaW5lZCAsIHRoZW4gd2UgdXNlIHRoZSBtYXNrIGFzIHRpdGxlICwgd2hlbiBzZXQgdG8gYGRlZmF1bHRgIHdlIHRoZSBicm93c2VyJ3MgZGVmYXVsdCB0aXRsZSAsIG90aGVyd2lzZSB0aGUgdmFsdWUgZGVmaW5lZCBpbiB0aGlzIG9wdGlvblxuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIFRleHRFZGl0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgaW5pdChwYXJhbXMpIHtcbiAgICBjb25zdCBwYXR0ZXJuID0gdGhpcy5nZXRPcHRpb24oJ3RleHRQYXR0ZXJuJywgcGFyYW1zKVxuICAgIGNvbnN0IHJlcXVpcmVkID0gdGhpcy5nZXRPcHRpb24oJ3RleHRSZXF1aXJlZCcsIHBhcmFtcylcbiAgICBjb25zdCBtYXNrID0gdGhpcy5nZXRPcHRpb24oJ3RleHRNYXNrJywgcGFyYW1zKVxuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5nZXRPcHRpb24oJ3RleHRUaXRsZScsIHBhcmFtcylcblxuICAgIGxldCBzdGFydFZhbHVlXG5cbiAgICB0aGlzLl9mb2N1c0FmdGVyQXR0YWNoZWQgPSBwYXJhbXMuY2VsbFN0YXJ0ZWRFZGl0XG4gICAgaWYgKHRoaXMuX2ZvY3VzQWZ0ZXJBdHRhY2hlZCkge1xuICAgICAgbGV0IGtleVByZXNzQmFja3NwYWNlT3JEZWxldGUgPVxuICAgICAgICBwYXJhbXMua2V5UHJlc3MgPT0gMzIgfHwgcGFyYW1zLmtleVByZXNzID09IDQ2IC8vIHNwYWNlIC8vIGRlbGV0ZVxuXG4gICAgICBpZiAoa2V5UHJlc3NCYWNrc3BhY2VPckRlbGV0ZSkge1xuICAgICAgICBzdGFydFZhbHVlID0gJydcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLmNoYXJQcmVzcykge1xuICAgICAgICBzdGFydFZhbHVlID0gcGFyYW1zLmNoYXJQcmVzc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhcnRWYWx1ZSA9IHBhcmFtcy52YWx1ZVxuICAgICAgICBpZiAocGFyYW1zLmtleVByZXNzICE9IDExMykge1xuICAgICAgICAgIC8vRjJcbiAgICAgICAgICB0aGlzLl9oaWdobGlnaHRBbGxPbkZvY3VzID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXJ0VmFsdWUgPSBwYXJhbXMudmFsdWVcbiAgICB9XG5cbiAgICB0aGlzLl9wYXJhbXMgPSBwYXJhbXNcblxuICAgIHRoaXMuX2d1aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJylcbiAgICB0aGlzLl9ndWkuY2xhc3NOYW1lID0gJ3RleHRFZGl0b3IgYWctaW5wdXQtd3JhcHBlcidcbiAgICB0aGlzLl9ndWkudGFiSW5kZXggPSAnMCdcblxuICAgIC8vIGlucHV0XG4gICAgdGhpcy5faW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpXG4gICAgdGhpcy5faW5wdXQuY2xhc3NOYW1lID0gJ3RleHRFZGl0b3JfX2lucHV0IGFnLWNlbGwtZWRpdC1pbnB1dCdcbiAgICB0aGlzLl9pbnB1dC5pZCA9IGBlbC0ke01hdGgucmFuZG9tKClcbiAgICAgIC50b1N0cmluZygxNilcbiAgICAgIC5zbGljZSgyLCAxMCl9YCAvLyBnZW5lcmF0ZSByYW5kb20gaWRcbiAgICB0aGlzLl9pbnB1dC50eXBlID0gJ3RleHQnXG4gICAgdGhpcy5faW5wdXQudmFsdWUgPSBzdGFydFZhbHVlXG4gICAgdGhpcy5faW5wdXQudGFiSW5kZXggPSAwXG5cbiAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQodGhpcy5faW5wdXQpXG5cbiAgICBpZiAocGF0dGVybiAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5faW5wdXQuc2V0QXR0cmlidXRlKCdwYXR0ZXJuJywgcGF0dGVybilcbiAgICB9XG5cbiAgICBpZiAocmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuX2lucHV0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAncmVxdWlyZWQnKVxuICAgIH1cblxuICAgIGlmICh0aXRsZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKHRpdGxlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgdGhpcy5faW5wdXQudGl0bGUgPSB0aXRsZVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobWFzaykge1xuICAgICAgdGhpcy5faW5wdXQudGl0bGUgPSBtYXNrXG4gICAgfVxuXG4gICAgaWYgKG1hc2spIHtcbiAgICAgIHRoaXMuX2lucHV0LmRhdGFzZXQubWFzayA9IG1hc2tcbiAgICAgIHRoaXMuX3RleHRJbnB1dCA9IG5ldyBCYXNpcy5JbnB1dE1hc2tpbmcuVGV4dElucHV0KHtcbiAgICAgICAgZWxlbWVudHM6IFt0aGlzLl9pbnB1dF0sXG4gICAgICAgIGRvYzogdGhpcy5nZXREb2MocGFyYW1zKSxcbiAgICAgICAgb25VcGRhdGU6IChfbWFza2VkLCB1bm1hc2tlZCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHVubWFza2VkXG4gICAgICAgICAgdGhpcy5mb2N1c0luKClcbiAgICAgICAgfSxcbiAgICAgICAgb25JbnZhbGlkOiAoZXJyb3IsIGlucHV0KSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlucHV0LnNldEN1c3RvbVZhbGlkaXR5KGVycm9yKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbkNoYW5nZSlcbiAgICAgIHRoaXMuX2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgdGhpcy5fb25DaGFuZ2UpXG4gICAgICB0aGlzLl9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9vbkNoYW5nZSlcbiAgICB9XG5cbiAgICAvLyB1cGRhdGUgYGN1cnJlbnRWYWx1ZWAgdGhlIHZhbHVlIHdoaWNoIHRoaXMgY29tcG9uZW50IGlzIG1hbmFnaW5nXG4gICAgdGhpcy5fY3VycmVudFZhbHVlID0gc3RhcnRWYWx1ZVxuICAgIHRoaXMuX19pc01hc2tlZF9fID0gbWFzayAmJiBtYXNrLmxlbmd0aFxuICB9XG5cbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgQG92ZXJyaWRlXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKCF0aGlzLl9faXNNYXNrZWRfXykge1xuICAgICAgdGhpcy5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uQ2hhbmdlKVxuICAgICAgdGhpcy5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignaW5wdXQnLCB0aGlzLl9vbkNoYW5nZSlcbiAgICAgIHRoaXMuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX29uQ2hhbmdlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl90ZXh0SW5wdXQuZGVzdHJveSgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIG9uY2UgYWZ0ZXIgR1VJIGlzIGF0dGFjaGVkIHRvIERPTS5cbiAgICpcbiAgICogTWFrZSBzdXJlIGNvbnRhaW5lciBpcyBhbHdheXMgZm9jdXNlZCB0byBsaXN0ZW4gdG8ga2V5IGNoYW5nZXNcbiAgICovXG4gIGFmdGVyR3VpQXR0YWNoZWQoKSB7XG4gICAgaWYgKCF0aGlzLl9faXNNYXNrZWRfXykge1xuICAgICAgdGhpcy5fdmFsaWRhdGVJbnB1dCh0aGlzLl9pbnB1dClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faGlnaGxpZ2h0QWxsT25Gb2N1cykge1xuICAgICAgdGhpcy5faW5wdXQuc2VsZWN0KClcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2ZvY3VzQWZ0ZXJBdHRhY2hlZCkge1xuICAgICAgICB0aGlzLmZvY3VzSW4oKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgVGhlIGNvbXBvbmVudCB2YWx1ZVxuICAgKlxuICAgKiBAcmV0dXJuIHtOdW1iZXJ9XG4gICAqL1xuICBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFZhbHVlXG4gIH1cblxuICAvKipcbiAgICogSWYgZG9pbmcgZnVsbCByb3cgZWRpdCwgdGhlbiBnZXRzIGNhbGxlZCB3aGVuIHRhYmJpbmcgaW50byB0aGUgY2VsbC5cbiAgICovXG4gIGZvY3VzSW4oKSB7XG4gICAgdGhpcy5faW5wdXQuZm9jdXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIG9uY2UgYWZ0ZXIgaW5pdGlhbGl6ZWQgYW5kIHJldHVybnMgZmFsc2Ugc28gdGhlIGVkaXRvciBhcHBlYXJzIGluIHRoZSBjZWxsXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IGFsd2F5cyBmYWxzZVxuICAgKiovXG4gIGlzUG9wdXAoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGBjdXJyZW50VmFsdWVgIG9uIHRoZSBpbnB1dCB2YWx1ZSBpcyBjaGFuZ2VkIGFuZCBpdCBpcyB2YWxpZFxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9vbkNoYW5nZShldmVudCkge1xuICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLl92YWxpZGF0ZUlucHV0KGV2ZW50LnRhcmdldClcbiAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB0aGlzLl9wYXJhbXMudmFsdWVcbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gdGhpcy5faW5wdXQudmFsdWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIGdpdmVuIGlucHV0IGVsZW1lbnRcbiAgICpcbiAgICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBpbnB1dCBpbnB1dCBlbGVtZW50XG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgd2hlbiB2YWxpZCAsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgX3ZhbGlkYXRlSW5wdXQoaW5wdXQpIHtcbiAgICBjb25zdCBpc1ZhbGlkID0gaW5wdXQuY2hlY2tWYWxpZGl0eSgpXG5cbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgIGlucHV0LmNsYXNzTGlzdC5hZGQoJ2Jiai1tYXNrLWVycm9yJylcbiAgICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ2Jiai1tYXNrLXN1Y2Nlc3MnKVxuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCdiYmotbWFzay1lcnJvcicpXG4gICAgICBpbnB1dC5jbGFzc0xpc3QuYWRkKCdiYmotbWFzay1zdWNjZXNzJylcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWYWxpZFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRFZGl0b3JcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UZXh0RWRpdG9yL1RleHRFZGl0b3IuanMiLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWRcbiAgICAgICAgICAgICAgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvVGV4dEVkaXRvci9zdHlsZS5zY3NzIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIudGV4dEVkaXRvciAudGV4dElucHV0TWFza19fd3JhcHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS50ZXh0RWRpdG9yIC5iYmotbWFzay1lcnJvcntib3gtc2hhZG93OjAgLTJweCAwICNlOTFlNjMgaW5zZXR9LnRleHRFZGl0b3IgLmJiai1tYXNrLXN1Y2Nlc3N7Ym94LXNoYWRvdzowIC0ycHggMCAjNGNhZjUwIGluc2V0fVxcblwiLCBcIlwiXSk7XG5cbi8vIGV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIhLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvVGV4dEVkaXRvci9zdHlsZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSA2NFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIDMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgQ29tcG9uZW50IGZyb20gJy4uL0NvbXBvbmVudCdcbmltcG9ydCB0ZW1wbGF0ZSBmcm9tICdsb2Rhc2gtZXMvdGVtcGxhdGUnXG5cbi8qKlxuICogTnVtYmVycyBFZGl0b3JcbiAqXG4gKiBIYW5kbGUgbnVtYmVyIHZhbHVlcyBFZGl0aW5nXG4gKlxuICogfCBOYW1lICAgICAgICAgICAgICAgICAgXHR8IERlZmF1bHQgICAgIFx0fCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVx0fDotLS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipyZW5kZXJUZW1wbGF0ZSoqICAgfCB1bmRlZmluZWQgICAgfCBsb2Rhc2ggdGVtcGxhdGVcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBUZW1wbGF0ZVJlbmRlcmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdCBuZXcgVGVtcGxhdGVSZW5kZXJlclxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgLy8gd2lsbCB0aGlzIGFmZmVjdCBCQmogYnVpID9cbiAgICB0aGlzLl9ndWkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMuX2d1aS5jbGFzc05hbWUgPSAndGVtcGxhdGVSZW5kZXJlcidcbiAgICB0aGlzLl9ndWkuc3R5bGUud2lkdGggPSAnMTAwJSdcbiAgICB0aGlzLl9ndWkuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnXG4gICAgdGhpcy5fZ3VpLnN0eWxlLmxpbmVIZWlnaHQgPSAnbm9ybWFsJ1xuICB9XG5cbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgaW5pdChwYXJhbXMpIHtcbiAgICB0aGlzLnJlZnJlc2gocGFyYW1zLCB0cnVlKVxuICB9XG5cbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgZ2V0R3VpKCkge1xuICAgIHJldHVybiB0aGlzLl9ndWlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoIHRoZSBjZWxsIGxcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBjZWxsIHJlbmRlcmVyIHBhcmFtc1xuICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzSW5pdCB0cnVlIHdoZW4gdGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkIGluIGBpbml0YCBwaGFzZSAsIGZhbHNlIG90aGVyd2lzZVxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIHRoZSByZWZyZXNoIHN1Y2NlZWRlZCwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS5cbiAgICovXG4gIHJlZnJlc2gocGFyYW1zLCBpc0luaXQpIHtcbiAgICBpZiAoaXNJbml0KSB7XG4gICAgICB0aGlzLl9jb21waWxlZFRlbXBsYXRlID0gdGVtcGxhdGUoXG4gICAgICAgIHRoaXMuZ2V0T3B0aW9uKCdyZW5kZXJUZW1wbGF0ZScsIHBhcmFtcywgJycpXG4gICAgICApXG4gICAgfVxuXG4gICAgbGV0IGNvbnRlbnRcblxuICAgIGlmICh0eXBlb2YgdGhpcy5fY29tcGlsZWRUZW1wbGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29udGVudCA9IHRoaXMuX2NvbXBpbGVkVGVtcGxhdGUoeyBwYXJhbXMgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCA9IHBhcmFtcy52YWx1ZUZvcm1hdHRlZCA/IHBhcmFtcy52YWx1ZUZvcm1hdHRlZCA6IHBhcmFtcy52YWx1ZVxuICAgIH1cblxuICAgIHRoaXMuX2d1aS5pbm5lckhUTUwgPSBjb250ZW50XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRlbXBsYXRlUmVuZGVyZXJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UZW1wbGF0ZVJlbmRlcmVyL1RlbXBsYXRlUmVuZGVyZXIuanMiLCJpbXBvcnQgYXNzaWduSW5XaXRoIGZyb20gJy4vYXNzaWduSW5XaXRoLmpzJztcbmltcG9ydCBhdHRlbXB0IGZyb20gJy4vYXR0ZW1wdC5qcyc7XG5pbXBvcnQgYmFzZVZhbHVlcyBmcm9tICcuL19iYXNlVmFsdWVzLmpzJztcbmltcG9ydCBjdXN0b21EZWZhdWx0c0Fzc2lnbkluIGZyb20gJy4vX2N1c3RvbURlZmF1bHRzQXNzaWduSW4uanMnO1xuaW1wb3J0IGVzY2FwZVN0cmluZ0NoYXIgZnJvbSAnLi9fZXNjYXBlU3RyaW5nQ2hhci5qcyc7XG5pbXBvcnQgaXNFcnJvciBmcm9tICcuL2lzRXJyb3IuanMnO1xuaW1wb3J0IGlzSXRlcmF0ZWVDYWxsIGZyb20gJy4vX2lzSXRlcmF0ZWVDYWxsLmpzJztcbmltcG9ydCBrZXlzIGZyb20gJy4va2V5cy5qcyc7XG5pbXBvcnQgcmVJbnRlcnBvbGF0ZSBmcm9tICcuL19yZUludGVycG9sYXRlLmpzJztcbmltcG9ydCB0ZW1wbGF0ZVNldHRpbmdzIGZyb20gJy4vdGVtcGxhdGVTZXR0aW5ncy5qcyc7XG5pbXBvcnQgdG9TdHJpbmcgZnJvbSAnLi90b1N0cmluZy5qcyc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGVtcHR5IHN0cmluZyBsaXRlcmFscyBpbiBjb21waWxlZCB0ZW1wbGF0ZSBzb3VyY2UuICovXG52YXIgcmVFbXB0eVN0cmluZ0xlYWRpbmcgPSAvXFxiX19wIFxcKz0gJyc7L2csXG4gICAgcmVFbXB0eVN0cmluZ01pZGRsZSA9IC9cXGIoX19wIFxcKz0pICcnIFxcKy9nLFxuICAgIHJlRW1wdHlTdHJpbmdUcmFpbGluZyA9IC8oX19lXFwoLio/XFwpfFxcYl9fdFxcKSkgXFwrXFxuJyc7L2c7XG5cbi8qKlxuICogVXNlZCB0byBtYXRjaFxuICogW0VTIHRlbXBsYXRlIGRlbGltaXRlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRlbXBsYXRlLWxpdGVyYWwtbGV4aWNhbC1jb21wb25lbnRzKS5cbiAqL1xudmFyIHJlRXNUZW1wbGF0ZSA9IC9cXCRcXHsoW15cXFxcfV0qKD86XFxcXC5bXlxcXFx9XSopKilcXH0vZztcblxuLyoqIFVzZWQgdG8gZW5zdXJlIGNhcHR1cmluZyBvcmRlciBvZiB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLiAqL1xudmFyIHJlTm9NYXRjaCA9IC8oJF4pLztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggdW5lc2NhcGVkIGNoYXJhY3RlcnMgaW4gY29tcGlsZWQgc3RyaW5nIGxpdGVyYWxzLiAqL1xudmFyIHJlVW5lc2NhcGVkU3RyaW5nID0gL1snXFxuXFxyXFx1MjAyOFxcdTIwMjlcXFxcXS9nO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbiB0aGF0IGNhbiBpbnRlcnBvbGF0ZSBkYXRhIHByb3BlcnRpZXNcbiAqIGluIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXJzLCBIVE1MLWVzY2FwZSBpbnRlcnBvbGF0ZWQgZGF0YSBwcm9wZXJ0aWVzIGluXG4gKiBcImVzY2FwZVwiIGRlbGltaXRlcnMsIGFuZCBleGVjdXRlIEphdmFTY3JpcHQgaW4gXCJldmFsdWF0ZVwiIGRlbGltaXRlcnMuIERhdGFcbiAqIHByb3BlcnRpZXMgbWF5IGJlIGFjY2Vzc2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIHRoZSB0ZW1wbGF0ZS4gSWYgYSBzZXR0aW5nXG4gKiBvYmplY3QgaXMgZ2l2ZW4sIGl0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBgXy50ZW1wbGF0ZVNldHRpbmdzYCB2YWx1ZXMuXG4gKlxuICogKipOb3RlOioqIEluIHRoZSBkZXZlbG9wbWVudCBidWlsZCBgXy50ZW1wbGF0ZWAgdXRpbGl6ZXNcbiAqIFtzb3VyY2VVUkxzXShodHRwOi8vd3d3Lmh0bWw1cm9ja3MuY29tL2VuL3R1dG9yaWFscy9kZXZlbG9wZXJ0b29scy9zb3VyY2VtYXBzLyN0b2Mtc291cmNldXJsKVxuICogZm9yIGVhc2llciBkZWJ1Z2dpbmcuXG4gKlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gcHJlY29tcGlsaW5nIHRlbXBsYXRlcyBzZWVcbiAqIFtsb2Rhc2gncyBjdXN0b20gYnVpbGRzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbG9kYXNoLmNvbS9jdXN0b20tYnVpbGRzKS5cbiAqXG4gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBDaHJvbWUgZXh0ZW5zaW9uIHNhbmRib3hlcyBzZWVcbiAqIFtDaHJvbWUncyBleHRlbnNpb25zIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVyLmNocm9tZS5jb20vZXh0ZW5zaW9ucy9zYW5kYm94aW5nRXZhbCkuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSB0ZW1wbGF0ZSBzdHJpbmcuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIFRoZSBvcHRpb25zIG9iamVjdC5cbiAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5lc2NhcGU9Xy50ZW1wbGF0ZVNldHRpbmdzLmVzY2FwZV1cbiAqICBUaGUgSFRNTCBcImVzY2FwZVwiIGRlbGltaXRlci5cbiAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5ldmFsdWF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuZXZhbHVhdGVdXG4gKiAgVGhlIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXIuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnMuaW1wb3J0cz1fLnRlbXBsYXRlU2V0dGluZ3MuaW1wb3J0c11cbiAqICBBbiBvYmplY3QgdG8gaW1wb3J0IGludG8gdGhlIHRlbXBsYXRlIGFzIGZyZWUgdmFyaWFibGVzLlxuICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmludGVycG9sYXRlPV8udGVtcGxhdGVTZXR0aW5ncy5pbnRlcnBvbGF0ZV1cbiAqICBUaGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlci5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5zb3VyY2VVUkw9J3RlbXBsYXRlU291cmNlc1tuXSddXG4gKiAgVGhlIHNvdXJjZVVSTCBvZiB0aGUgY29tcGlsZWQgdGVtcGxhdGUuXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudmFyaWFibGU9J29iaiddXG4gKiAgVGhlIGRhdGEgb2JqZWN0IHZhcmlhYmxlIG5hbWUuXG4gKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYW4gaXRlcmF0ZWUgZm9yIG1ldGhvZHMgbGlrZSBgXy5tYXBgLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjb21waWxlZCB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogLy8gVXNlIHRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyIHRvIGNyZWF0ZSBhIGNvbXBpbGVkIHRlbXBsYXRlLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gPCU9IHVzZXIgJT4hJyk7XG4gKiBjb21waWxlZCh7ICd1c2VyJzogJ2ZyZWQnIH0pO1xuICogLy8gPT4gJ2hlbGxvIGZyZWQhJ1xuICpcbiAqIC8vIFVzZSB0aGUgSFRNTCBcImVzY2FwZVwiIGRlbGltaXRlciB0byBlc2NhcGUgZGF0YSBwcm9wZXJ0eSB2YWx1ZXMuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8Yj48JS0gdmFsdWUgJT48L2I+Jyk7XG4gKiBjb21waWxlZCh7ICd2YWx1ZSc6ICc8c2NyaXB0PicgfSk7XG4gKiAvLyA9PiAnPGI+Jmx0O3NjcmlwdCZndDs8L2I+J1xuICpcbiAqIC8vIFVzZSB0aGUgXCJldmFsdWF0ZVwiIGRlbGltaXRlciB0byBleGVjdXRlIEphdmFTY3JpcHQgYW5kIGdlbmVyYXRlIEhUTUwuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8JSBfLmZvckVhY2godXNlcnMsIGZ1bmN0aW9uKHVzZXIpIHsgJT48bGk+PCUtIHVzZXIgJT48L2xpPjwlIH0pOyAlPicpO1xuICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAqXG4gKiAvLyBVc2UgdGhlIGludGVybmFsIGBwcmludGAgZnVuY3Rpb24gaW4gXCJldmFsdWF0ZVwiIGRlbGltaXRlcnMuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8JSBwcmludChcImhlbGxvIFwiICsgdXNlcik7ICU+IScpO1xuICogY29tcGlsZWQoeyAndXNlcic6ICdiYXJuZXknIH0pO1xuICogLy8gPT4gJ2hlbGxvIGJhcm5leSEnXG4gKlxuICogLy8gVXNlIHRoZSBFUyB0ZW1wbGF0ZSBsaXRlcmFsIGRlbGltaXRlciBhcyBhbiBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICogLy8gRGlzYWJsZSBzdXBwb3J0IGJ5IHJlcGxhY2luZyB0aGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlci5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvICR7IHVzZXIgfSEnKTtcbiAqIGNvbXBpbGVkKHsgJ3VzZXInOiAncGViYmxlcycgfSk7XG4gKiAvLyA9PiAnaGVsbG8gcGViYmxlcyEnXG4gKlxuICogLy8gVXNlIGJhY2tzbGFzaGVzIHRvIHRyZWF0IGRlbGltaXRlcnMgYXMgcGxhaW4gdGV4dC5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlPSBcIlxcXFw8JS0gdmFsdWUgJVxcXFw+XCIgJT4nKTtcbiAqIGNvbXBpbGVkKHsgJ3ZhbHVlJzogJ2lnbm9yZWQnIH0pO1xuICogLy8gPT4gJzwlLSB2YWx1ZSAlPidcbiAqXG4gKiAvLyBVc2UgdGhlIGBpbXBvcnRzYCBvcHRpb24gdG8gaW1wb3J0IGBqUXVlcnlgIGFzIGBqcWAuXG4gKiB2YXIgdGV4dCA9ICc8JSBqcS5lYWNoKHVzZXJzLCBmdW5jdGlvbih1c2VyKSB7ICU+PGxpPjwlLSB1c2VyICU+PC9saT48JSB9KTsgJT4nO1xuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSh0ZXh0LCB7ICdpbXBvcnRzJzogeyAnanEnOiBqUXVlcnkgfSB9KTtcbiAqIGNvbXBpbGVkKHsgJ3VzZXJzJzogWydmcmVkJywgJ2Jhcm5leSddIH0pO1xuICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXG4gKlxuICogLy8gVXNlIHRoZSBgc291cmNlVVJMYCBvcHRpb24gdG8gc3BlY2lmeSBhIGN1c3RvbSBzb3VyY2VVUkwgZm9yIHRoZSB0ZW1wbGF0ZS5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScsIHsgJ3NvdXJjZVVSTCc6ICcvYmFzaWMvZ3JlZXRpbmcuanN0JyB9KTtcbiAqIGNvbXBpbGVkKGRhdGEpO1xuICogLy8gPT4gRmluZCB0aGUgc291cmNlIG9mIFwiZ3JlZXRpbmcuanN0XCIgdW5kZXIgdGhlIFNvdXJjZXMgdGFiIG9yIFJlc291cmNlcyBwYW5lbCBvZiB0aGUgd2ViIGluc3BlY3Rvci5cbiAqXG4gKiAvLyBVc2UgdGhlIGB2YXJpYWJsZWAgb3B0aW9uIHRvIGVuc3VyZSBhIHdpdGgtc3RhdGVtZW50IGlzbid0IHVzZWQgaW4gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGkgPCU9IGRhdGEudXNlciAlPiEnLCB7ICd2YXJpYWJsZSc6ICdkYXRhJyB9KTtcbiAqIGNvbXBpbGVkLnNvdXJjZTtcbiAqIC8vID0+IGZ1bmN0aW9uKGRhdGEpIHtcbiAqIC8vICAgdmFyIF9fdCwgX19wID0gJyc7XG4gKiAvLyAgIF9fcCArPSAnaGkgJyArICgoX190ID0gKCBkYXRhLnVzZXIgKSkgPT0gbnVsbCA/ICcnIDogX190KSArICchJztcbiAqIC8vICAgcmV0dXJuIF9fcDtcbiAqIC8vIH1cbiAqXG4gKiAvLyBVc2UgY3VzdG9tIHRlbXBsYXRlIGRlbGltaXRlcnMuXG4gKiBfLnRlbXBsYXRlU2V0dGluZ3MuaW50ZXJwb2xhdGUgPSAve3soW1xcc1xcU10rPyl9fS9nO1xuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8ge3sgdXNlciB9fSEnKTtcbiAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnbXVzdGFjaGUnIH0pO1xuICogLy8gPT4gJ2hlbGxvIG11c3RhY2hlISdcbiAqXG4gKiAvLyBVc2UgdGhlIGBzb3VyY2VgIHByb3BlcnR5IHRvIGlubGluZSBjb21waWxlZCB0ZW1wbGF0ZXMgZm9yIG1lYW5pbmdmdWxcbiAqIC8vIGxpbmUgbnVtYmVycyBpbiBlcnJvciBtZXNzYWdlcyBhbmQgc3RhY2sgdHJhY2VzLlxuICogZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ2pzdC5qcycpLCAnXFxcbiAqICAgdmFyIEpTVCA9IHtcXFxuICogICAgIFwibWFpblwiOiAnICsgXy50ZW1wbGF0ZShtYWluVGV4dCkuc291cmNlICsgJ1xcXG4gKiAgIH07XFxcbiAqICcpO1xuICovXG5mdW5jdGlvbiB0ZW1wbGF0ZShzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSB7XG4gIC8vIEJhc2VkIG9uIEpvaG4gUmVzaWcncyBgdG1wbGAgaW1wbGVtZW50YXRpb25cbiAgLy8gKGh0dHA6Ly9lam9obi5vcmcvYmxvZy9qYXZhc2NyaXB0LW1pY3JvLXRlbXBsYXRpbmcvKVxuICAvLyBhbmQgTGF1cmEgRG9rdG9yb3ZhJ3MgZG9ULmpzIChodHRwczovL2dpdGh1Yi5jb20vb2xhZG8vZG9UKS5cbiAgdmFyIHNldHRpbmdzID0gdGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzLl8udGVtcGxhdGVTZXR0aW5ncyB8fCB0ZW1wbGF0ZVNldHRpbmdzO1xuXG4gIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzdHJpbmcsIG9wdGlvbnMsIGd1YXJkKSkge1xuICAgIG9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cbiAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgb3B0aW9ucyA9IGFzc2lnbkluV2l0aCh7fSwgb3B0aW9ucywgc2V0dGluZ3MsIGN1c3RvbURlZmF1bHRzQXNzaWduSW4pO1xuXG4gIHZhciBpbXBvcnRzID0gYXNzaWduSW5XaXRoKHt9LCBvcHRpb25zLmltcG9ydHMsIHNldHRpbmdzLmltcG9ydHMsIGN1c3RvbURlZmF1bHRzQXNzaWduSW4pLFxuICAgICAgaW1wb3J0c0tleXMgPSBrZXlzKGltcG9ydHMpLFxuICAgICAgaW1wb3J0c1ZhbHVlcyA9IGJhc2VWYWx1ZXMoaW1wb3J0cywgaW1wb3J0c0tleXMpO1xuXG4gIHZhciBpc0VzY2FwaW5nLFxuICAgICAgaXNFdmFsdWF0aW5nLFxuICAgICAgaW5kZXggPSAwLFxuICAgICAgaW50ZXJwb2xhdGUgPSBvcHRpb25zLmludGVycG9sYXRlIHx8IHJlTm9NYXRjaCxcbiAgICAgIHNvdXJjZSA9IFwiX19wICs9ICdcIjtcblxuICAvLyBDb21waWxlIHRoZSByZWdleHAgdG8gbWF0Y2ggZWFjaCBkZWxpbWl0ZXIuXG4gIHZhciByZURlbGltaXRlcnMgPSBSZWdFeHAoXG4gICAgKG9wdGlvbnMuZXNjYXBlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wnICtcbiAgICBpbnRlcnBvbGF0ZS5zb3VyY2UgKyAnfCcgK1xuICAgIChpbnRlcnBvbGF0ZSA9PT0gcmVJbnRlcnBvbGF0ZSA/IHJlRXNUZW1wbGF0ZSA6IHJlTm9NYXRjaCkuc291cmNlICsgJ3wnICtcbiAgICAob3B0aW9ucy5ldmFsdWF0ZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArICd8JCdcbiAgLCAnZycpO1xuXG4gIC8vIFVzZSBhIHNvdXJjZVVSTCBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbiAgLy8gVGhlIHNvdXJjZVVSTCBnZXRzIGluamVjdGVkIGludG8gdGhlIHNvdXJjZSB0aGF0J3MgZXZhbC1lZCwgc28gYmUgY2FyZWZ1bFxuICAvLyB3aXRoIGxvb2t1cCAoaW4gY2FzZSBvZiBlLmcuIHByb3RvdHlwZSBwb2xsdXRpb24pLCBhbmQgc3RyaXAgbmV3bGluZXMgaWYgYW55LlxuICAvLyBBIG5ld2xpbmUgd291bGRuJ3QgYmUgYSB2YWxpZCBzb3VyY2VVUkwgYW55d2F5LCBhbmQgaXQnZCBlbmFibGUgY29kZSBpbmplY3Rpb24uXG4gIHZhciBzb3VyY2VVUkwgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsICdzb3VyY2VVUkwnKVxuICAgID8gKCcvLyMgc291cmNlVVJMPScgK1xuICAgICAgIChvcHRpb25zLnNvdXJjZVVSTCArICcnKS5yZXBsYWNlKC9bXFxyXFxuXS9nLCAnICcpICtcbiAgICAgICAnXFxuJylcbiAgICA6ICcnO1xuXG4gIHN0cmluZy5yZXBsYWNlKHJlRGVsaW1pdGVycywgZnVuY3Rpb24obWF0Y2gsIGVzY2FwZVZhbHVlLCBpbnRlcnBvbGF0ZVZhbHVlLCBlc1RlbXBsYXRlVmFsdWUsIGV2YWx1YXRlVmFsdWUsIG9mZnNldCkge1xuICAgIGludGVycG9sYXRlVmFsdWUgfHwgKGludGVycG9sYXRlVmFsdWUgPSBlc1RlbXBsYXRlVmFsdWUpO1xuXG4gICAgLy8gRXNjYXBlIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBiZSBpbmNsdWRlZCBpbiBzdHJpbmcgbGl0ZXJhbHMuXG4gICAgc291cmNlICs9IHN0cmluZy5zbGljZShpbmRleCwgb2Zmc2V0KS5yZXBsYWNlKHJlVW5lc2NhcGVkU3RyaW5nLCBlc2NhcGVTdHJpbmdDaGFyKTtcblxuICAgIC8vIFJlcGxhY2UgZGVsaW1pdGVycyB3aXRoIHNuaXBwZXRzLlxuICAgIGlmIChlc2NhcGVWYWx1ZSkge1xuICAgICAgaXNFc2NhcGluZyA9IHRydWU7XG4gICAgICBzb3VyY2UgKz0gXCInICtcXG5fX2UoXCIgKyBlc2NhcGVWYWx1ZSArIFwiKSArXFxuJ1wiO1xuICAgIH1cbiAgICBpZiAoZXZhbHVhdGVWYWx1ZSkge1xuICAgICAgaXNFdmFsdWF0aW5nID0gdHJ1ZTtcbiAgICAgIHNvdXJjZSArPSBcIic7XFxuXCIgKyBldmFsdWF0ZVZhbHVlICsgXCI7XFxuX19wICs9ICdcIjtcbiAgICB9XG4gICAgaWYgKGludGVycG9sYXRlVmFsdWUpIHtcbiAgICAgIHNvdXJjZSArPSBcIicgK1xcbigoX190ID0gKFwiICsgaW50ZXJwb2xhdGVWYWx1ZSArIFwiKSkgPT0gbnVsbCA/ICcnIDogX190KSArXFxuJ1wiO1xuICAgIH1cbiAgICBpbmRleCA9IG9mZnNldCArIG1hdGNoLmxlbmd0aDtcblxuICAgIC8vIFRoZSBKUyBlbmdpbmUgZW1iZWRkZWQgaW4gQWRvYmUgcHJvZHVjdHMgbmVlZHMgYG1hdGNoYCByZXR1cm5lZCBpblxuICAgIC8vIG9yZGVyIHRvIHByb2R1Y2UgdGhlIGNvcnJlY3QgYG9mZnNldGAgdmFsdWUuXG4gICAgcmV0dXJuIG1hdGNoO1xuICB9KTtcblxuICBzb3VyY2UgKz0gXCInO1xcblwiO1xuXG4gIC8vIElmIGB2YXJpYWJsZWAgaXMgbm90IHNwZWNpZmllZCB3cmFwIGEgd2l0aC1zdGF0ZW1lbnQgYXJvdW5kIHRoZSBnZW5lcmF0ZWRcbiAgLy8gY29kZSB0byBhZGQgdGhlIGRhdGEgb2JqZWN0IHRvIHRoZSB0b3Agb2YgdGhlIHNjb3BlIGNoYWluLlxuICAvLyBMaWtlIHdpdGggc291cmNlVVJMLCB3ZSB0YWtlIGNhcmUgdG8gbm90IGNoZWNrIHRoZSBvcHRpb24ncyBwcm90b3R5cGUsXG4gIC8vIGFzIHRoaXMgY29uZmlndXJhdGlvbiBpcyBhIGNvZGUgaW5qZWN0aW9uIHZlY3Rvci5cbiAgdmFyIHZhcmlhYmxlID0gaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCAndmFyaWFibGUnKSAmJiBvcHRpb25zLnZhcmlhYmxlO1xuICBpZiAoIXZhcmlhYmxlKSB7XG4gICAgc291cmNlID0gJ3dpdGggKG9iaikge1xcbicgKyBzb3VyY2UgKyAnXFxufVxcbic7XG4gIH1cbiAgLy8gQ2xlYW51cCBjb2RlIGJ5IHN0cmlwcGluZyBlbXB0eSBzdHJpbmdzLlxuICBzb3VyY2UgPSAoaXNFdmFsdWF0aW5nID8gc291cmNlLnJlcGxhY2UocmVFbXB0eVN0cmluZ0xlYWRpbmcsICcnKSA6IHNvdXJjZSlcbiAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nTWlkZGxlLCAnJDEnKVxuICAgIC5yZXBsYWNlKHJlRW1wdHlTdHJpbmdUcmFpbGluZywgJyQxOycpO1xuXG4gIC8vIEZyYW1lIGNvZGUgYXMgdGhlIGZ1bmN0aW9uIGJvZHkuXG4gIHNvdXJjZSA9ICdmdW5jdGlvbignICsgKHZhcmlhYmxlIHx8ICdvYmonKSArICcpIHtcXG4nICtcbiAgICAodmFyaWFibGVcbiAgICAgID8gJydcbiAgICAgIDogJ29iaiB8fCAob2JqID0ge30pO1xcbidcbiAgICApICtcbiAgICBcInZhciBfX3QsIF9fcCA9ICcnXCIgK1xuICAgIChpc0VzY2FwaW5nXG4gICAgICAgPyAnLCBfX2UgPSBfLmVzY2FwZSdcbiAgICAgICA6ICcnXG4gICAgKSArXG4gICAgKGlzRXZhbHVhdGluZ1xuICAgICAgPyAnLCBfX2ogPSBBcnJheS5wcm90b3R5cGUuam9pbjtcXG4nICtcbiAgICAgICAgXCJmdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cXG5cIlxuICAgICAgOiAnO1xcbidcbiAgICApICtcbiAgICBzb3VyY2UgK1xuICAgICdyZXR1cm4gX19wXFxufSc7XG5cbiAgdmFyIHJlc3VsdCA9IGF0dGVtcHQoZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEZ1bmN0aW9uKGltcG9ydHNLZXlzLCBzb3VyY2VVUkwgKyAncmV0dXJuICcgKyBzb3VyY2UpXG4gICAgICAuYXBwbHkodW5kZWZpbmVkLCBpbXBvcnRzVmFsdWVzKTtcbiAgfSk7XG5cbiAgLy8gUHJvdmlkZSB0aGUgY29tcGlsZWQgZnVuY3Rpb24ncyBzb3VyY2UgYnkgaXRzIGB0b1N0cmluZ2AgbWV0aG9kIG9yXG4gIC8vIHRoZSBgc291cmNlYCBwcm9wZXJ0eSBhcyBhIGNvbnZlbmllbmNlIGZvciBpbmxpbmluZyBjb21waWxlZCB0ZW1wbGF0ZXMuXG4gIHJlc3VsdC5zb3VyY2UgPSBzb3VyY2U7XG4gIGlmIChpc0Vycm9yKHJlc3VsdCkpIHtcbiAgICB0aHJvdyByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdGVtcGxhdGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RlbXBsYXRlLmpzIiwiaW1wb3J0IGNvcHlPYmplY3QgZnJvbSAnLi9fY29weU9iamVjdC5qcyc7XG5pbXBvcnQgY3JlYXRlQXNzaWduZXIgZnJvbSAnLi9fY3JlYXRlQXNzaWduZXIuanMnO1xuaW1wb3J0IGtleXNJbiBmcm9tICcuL2tleXNJbi5qcyc7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgaXMgbGlrZSBgXy5hc3NpZ25JbmAgZXhjZXB0IHRoYXQgaXQgYWNjZXB0cyBgY3VzdG9taXplcmBcbiAqIHdoaWNoIGlzIGludm9rZWQgdG8gcHJvZHVjZSB0aGUgYXNzaWduZWQgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJuc1xuICogYHVuZGVmaW5lZGAsIGFzc2lnbm1lbnQgaXMgaGFuZGxlZCBieSB0aGUgbWV0aG9kIGluc3RlYWQuIFRoZSBgY3VzdG9taXplcmBcbiAqIGlzIGludm9rZWQgd2l0aCBmaXZlIGFyZ3VtZW50czogKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QsIHNvdXJjZSkuXG4gKlxuICogKipOb3RlOioqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYG9iamVjdGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGFsaWFzIGV4dGVuZFdpdGhcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIGRlc3RpbmF0aW9uIG9iamVjdC5cbiAqIEBwYXJhbSB7Li4uT2JqZWN0fSBzb3VyY2VzIFRoZSBzb3VyY2Ugb2JqZWN0cy5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGFzc2lnbmVkIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKiBAc2VlIF8uYXNzaWduV2l0aFxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBjdXN0b21pemVyKG9ialZhbHVlLCBzcmNWYWx1ZSkge1xuICogICByZXR1cm4gXy5pc1VuZGVmaW5lZChvYmpWYWx1ZSkgPyBzcmNWYWx1ZSA6IG9ialZhbHVlO1xuICogfVxuICpcbiAqIHZhciBkZWZhdWx0cyA9IF8ucGFydGlhbFJpZ2h0KF8uYXNzaWduSW5XaXRoLCBjdXN0b21pemVyKTtcbiAqXG4gKiBkZWZhdWx0cyh7ICdhJzogMSB9LCB7ICdiJzogMiB9LCB7ICdhJzogMyB9KTtcbiAqIC8vID0+IHsgJ2EnOiAxLCAnYic6IDIgfVxuICovXG52YXIgYXNzaWduSW5XaXRoID0gY3JlYXRlQXNzaWduZXIoZnVuY3Rpb24ob2JqZWN0LCBzb3VyY2UsIHNyY0luZGV4LCBjdXN0b21pemVyKSB7XG4gIGNvcHlPYmplY3Qoc291cmNlLCBrZXlzSW4oc291cmNlKSwgb2JqZWN0LCBjdXN0b21pemVyKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBhc3NpZ25JbldpdGg7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Fzc2lnbkluV2l0aC5qcyIsImltcG9ydCBhc3NpZ25WYWx1ZSBmcm9tICcuL19hc3NpZ25WYWx1ZS5qcyc7XG5pbXBvcnQgYmFzZUFzc2lnblZhbHVlIGZyb20gJy4vX2Jhc2VBc3NpZ25WYWx1ZS5qcyc7XG5cbi8qKlxuICogQ29waWVzIHByb3BlcnRpZXMgb2YgYHNvdXJjZWAgdG8gYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBzb3VyY2UgVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgZnJvbS5cbiAqIEBwYXJhbSB7QXJyYXl9IHByb3BzIFRoZSBwcm9wZXJ0eSBpZGVudGlmaWVycyB0byBjb3B5LlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3Q9e31dIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIHRvLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY29waWVkIHZhbHVlcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGNvcHlPYmplY3Qoc291cmNlLCBwcm9wcywgb2JqZWN0LCBjdXN0b21pemVyKSB7XG4gIHZhciBpc05ldyA9ICFvYmplY3Q7XG4gIG9iamVjdCB8fCAob2JqZWN0ID0ge30pO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcblxuICAgIHZhciBuZXdWYWx1ZSA9IGN1c3RvbWl6ZXJcbiAgICAgID8gY3VzdG9taXplcihvYmplY3Rba2V5XSwgc291cmNlW2tleV0sIGtleSwgb2JqZWN0LCBzb3VyY2UpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXdWYWx1ZSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgICBpZiAoaXNOZXcpIHtcbiAgICAgIGJhc2VBc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhc3NpZ25WYWx1ZShvYmplY3QsIGtleSwgbmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb3B5T2JqZWN0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29weU9iamVjdC5qcyIsImltcG9ydCBiYXNlQXNzaWduVmFsdWUgZnJvbSAnLi9fYmFzZUFzc2lnblZhbHVlLmpzJztcbmltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcbiAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgYXNzaWduVmFsdWU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25WYWx1ZS5qcyIsImltcG9ydCBiYXNlSXNOYXRpdmUgZnJvbSAnLi9fYmFzZUlzTmF0aXZlLmpzJztcbmltcG9ydCBnZXRWYWx1ZSBmcm9tICcuL19nZXRWYWx1ZS5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgbmF0aXZlIGZ1bmN0aW9uIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIG1ldGhvZCB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZnVuY3Rpb24gaWYgaXQncyBuYXRpdmUsIGVsc2UgYHVuZGVmaW5lZGAuXG4gKi9cbmZ1bmN0aW9uIGdldE5hdGl2ZShvYmplY3QsIGtleSkge1xuICB2YXIgdmFsdWUgPSBnZXRWYWx1ZShvYmplY3QsIGtleSk7XG4gIHJldHVybiBiYXNlSXNOYXRpdmUodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldE5hdGl2ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldE5hdGl2ZS5qcyIsImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNNYXNrZWQgZnJvbSAnLi9faXNNYXNrZWQuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzTmF0aXZlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTmF0aXZlLmpzIiwiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgIHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcblxuICB0cnkge1xuICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgdW5tYXNrZWQgPSB0cnVlO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgaWYgKHVubWFza2VkKSB7XG4gICAgaWYgKGlzT3duKSB7XG4gICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFJhd1RhZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFJhd1RhZy5qcyIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBvYmplY3RUb1N0cmluZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX29iamVjdFRvU3RyaW5nLmpzIiwiaW1wb3J0IGNvcmVKc0RhdGEgZnJvbSAnLi9fY29yZUpzRGF0YS5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzTWFza2VkO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNNYXNrZWQuanMiLCJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xudmFyIGNvcmVKc0RhdGEgPSByb290WydfX2NvcmUtanNfc2hhcmVkX18nXTtcblxuZXhwb3J0IGRlZmF1bHQgY29yZUpzRGF0YTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcmVKc0RhdGEuanMiLCIvKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGBmdW5jYCB0byBpdHMgc291cmNlIGNvZGUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzb3VyY2UgY29kZS5cbiAqL1xuZnVuY3Rpb24gdG9Tb3VyY2UoZnVuYykge1xuICBpZiAoZnVuYyAhPSBudWxsKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBmdW5jVG9TdHJpbmcuY2FsbChmdW5jKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKGZ1bmMgKyAnJyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfVxuICByZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvU291cmNlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fdG9Tb3VyY2UuanMiLCIvKipcbiAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZShvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VmFsdWU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRWYWx1ZS5qcyIsImltcG9ydCBiYXNlUmVzdCBmcm9tICcuL19iYXNlUmVzdC5qcyc7XG5pbXBvcnQgaXNJdGVyYXRlZUNhbGwgZnJvbSAnLi9faXNJdGVyYXRlZUNhbGwuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmFzc2lnbmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGFzc2lnbmVyIFRoZSBmdW5jdGlvbiB0byBhc3NpZ24gdmFsdWVzLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYXNzaWduZXIgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUFzc2lnbmVyKGFzc2lnbmVyKSB7XG4gIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gc291cmNlcy5sZW5ndGgsXG4gICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPiAxID8gc291cmNlc1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZ3VhcmQgPSBsZW5ndGggPiAyID8gc291cmNlc1syXSA6IHVuZGVmaW5lZDtcblxuICAgIGN1c3RvbWl6ZXIgPSAoYXNzaWduZXIubGVuZ3RoID4gMyAmJiB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nKVxuICAgICAgPyAobGVuZ3RoLS0sIGN1c3RvbWl6ZXIpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPCAzID8gdW5kZWZpbmVkIDogY3VzdG9taXplcjtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfVxuICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgIGFzc2lnbmVyKG9iamVjdCwgc291cmNlLCBpbmRleCwgY3VzdG9taXplcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVBc3NpZ25lcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NyZWF0ZUFzc2lnbmVyLmpzIiwiaW1wb3J0IGFwcGx5IGZyb20gJy4vX2FwcGx5LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4O1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVJlc3RgIHdoaWNoIHRyYW5zZm9ybXMgdGhlIHJlc3QgYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIHJlc3QgYXJyYXkgdHJhbnNmb3JtLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCB0cmFuc2Zvcm0pIHtcbiAgc3RhcnQgPSBuYXRpdmVNYXgoc3RhcnQgPT09IHVuZGVmaW5lZCA/IChmdW5jLmxlbmd0aCAtIDEpIDogc3RhcnQsIDApO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChhcmdzLmxlbmd0aCAtIHN0YXJ0LCAwKSxcbiAgICAgICAgYXJyYXkgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGFycmF5W2luZGV4XSA9IGFyZ3Nbc3RhcnQgKyBpbmRleF07XG4gICAgfVxuICAgIGluZGV4ID0gLTE7XG4gICAgdmFyIG90aGVyQXJncyA9IEFycmF5KHN0YXJ0ICsgMSk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBzdGFydCkge1xuICAgICAgb3RoZXJBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdO1xuICAgIH1cbiAgICBvdGhlckFyZ3Nbc3RhcnRdID0gdHJhbnNmb3JtKGFycmF5KTtcbiAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgb3RoZXJBcmdzKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb3ZlclJlc3Q7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyUmVzdC5qcyIsImltcG9ydCBiYXNlU2V0VG9TdHJpbmcgZnJvbSAnLi9fYmFzZVNldFRvU3RyaW5nLmpzJztcbmltcG9ydCBzaG9ydE91dCBmcm9tICcuL19zaG9ydE91dC5qcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYGZ1bmNgIHRvIHJldHVybiBgc3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBzZXRUb1N0cmluZyA9IHNob3J0T3V0KGJhc2VTZXRUb1N0cmluZyk7XG5cbmV4cG9ydCBkZWZhdWx0IHNldFRvU3RyaW5nO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc2V0VG9TdHJpbmcuanMiLCJpbXBvcnQgY29uc3RhbnQgZnJvbSAnLi9jb25zdGFudC5qcyc7XG5pbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSAnLi9fZGVmaW5lUHJvcGVydHkuanMnO1xuaW1wb3J0IGlkZW50aXR5IGZyb20gJy4vaWRlbnRpdHkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBzZXRUb1N0cmluZ2Agd2l0aG91dCBzdXBwb3J0IGZvciBob3QgbG9vcCBzaG9ydGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgJ3RvU3RyaW5nJywge1xuICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICdlbnVtZXJhYmxlJzogZmFsc2UsXG4gICAgJ3ZhbHVlJzogY29uc3RhbnQoc3RyaW5nKSxcbiAgICAnd3JpdGFibGUnOiB0cnVlXG4gIH0pO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgYmFzZVNldFRvU3RyaW5nO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVNldFRvU3RyaW5nLmpzIiwiLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGB2YWx1ZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAyLjQuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHJldHVybiBmcm9tIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjb25zdGFudCBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBfLnRpbWVzKDIsIF8uY29uc3RhbnQoeyAnYSc6IDEgfSkpO1xuICpcbiAqIGNvbnNvbGUubG9nKG9iamVjdHMpO1xuICogLy8gPT4gW3sgJ2EnOiAxIH0sIHsgJ2EnOiAxIH1dXG4gKlxuICogY29uc29sZS5sb2cob2JqZWN0c1swXSA9PT0gb2JqZWN0c1sxXSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGNvbnN0YW50KHZhbHVlKSB7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbnN0YW50O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb25zdGFudC5qcyIsIi8qKiBVc2VkIHRvIGRldGVjdCBob3QgZnVuY3Rpb25zIGJ5IG51bWJlciBvZiBjYWxscyB3aXRoaW4gYSBzcGFuIG9mIG1pbGxpc2Vjb25kcy4gKi9cbnZhciBIT1RfQ09VTlQgPSA4MDAsXG4gICAgSE9UX1NQQU4gPSAxNjtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU5vdyA9IERhdGUubm93O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0J2xsIHNob3J0IG91dCBhbmQgaW52b2tlIGBpZGVudGl0eWAgaW5zdGVhZFxuICogb2YgYGZ1bmNgIHdoZW4gaXQncyBjYWxsZWQgYEhPVF9DT1VOVGAgb3IgbW9yZSB0aW1lcyBpbiBgSE9UX1NQQU5gXG4gKiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHJlc3RyaWN0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgc2hvcnRhYmxlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBzaG9ydE91dChmdW5jKSB7XG4gIHZhciBjb3VudCA9IDAsXG4gICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHN0YW1wID0gbmF0aXZlTm93KCksXG4gICAgICAgIHJlbWFpbmluZyA9IEhPVF9TUEFOIC0gKHN0YW1wIC0gbGFzdENhbGxlZCk7XG5cbiAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgaWYgKHJlbWFpbmluZyA+IDApIHtcbiAgICAgIGlmICgrK2NvdW50ID49IEhPVF9DT1VOVCkge1xuICAgICAgICByZXR1cm4gYXJndW1lbnRzWzBdO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb3VudCA9IDA7XG4gICAgfVxuICAgIHJldHVybiBmdW5jLmFwcGx5KHVuZGVmaW5lZCwgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2hvcnRPdXQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zaG9ydE91dC5qcyIsImltcG9ydCBhcnJheUxpa2VLZXlzIGZyb20gJy4vX2FycmF5TGlrZUtleXMuanMnO1xuaW1wb3J0IGJhc2VLZXlzSW4gZnJvbSAnLi9fYmFzZUtleXNJbi5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXNJbihuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG5mdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QsIHRydWUpIDogYmFzZUtleXNJbihvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBrZXlzSW47XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXNJbi5qcyIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udGltZXNgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kc1xuICogb3IgbWF4IGFycmF5IGxlbmd0aCBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gaW52b2tlIGBpdGVyYXRlZWAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBiYXNlVGltZXMobiwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICByZXN1bHQgPSBBcnJheShuKTtcblxuICB3aGlsZSAoKytpbmRleCA8IG4pIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoaW5kZXgpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VUaW1lcztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUaW1lcy5qcyIsImltcG9ydCBiYXNlSXNBcmd1bWVudHMgZnJvbSAnLi9fYmFzZUlzQXJndW1lbnRzLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhbiBgYXJndW1lbnRzYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICogIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNBcmd1bWVudHMgPSBiYXNlSXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPyBiYXNlSXNBcmd1bWVudHMgOiBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY2FsbGVlJykgJiZcbiAgICAhcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaXNBcmd1bWVudHM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJndW1lbnRzLmpzIiwiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzQXJndW1lbnRzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzQXJndW1lbnRzLmpzIiwiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5pbXBvcnQgc3R1YkZhbHNlIGZyb20gJy4vc3R1YkZhbHNlLmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gcm9vdC5CdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVJc0J1ZmZlciA9IEJ1ZmZlciA/IEJ1ZmZlci5pc0J1ZmZlciA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMy4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlciwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBCdWZmZXIoMikpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNCdWZmZXIobmV3IFVpbnQ4QXJyYXkoMikpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQnVmZmVyID0gbmF0aXZlSXNCdWZmZXIgfHwgc3R1YkZhbHNlO1xuXG5leHBvcnQgZGVmYXVsdCBpc0J1ZmZlcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNCdWZmZXIuanMiLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICogLy8gPT4gW2ZhbHNlLCBmYWxzZV1cbiAqL1xuZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0dWJGYWxzZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YkZhbHNlLmpzIiwiaW1wb3J0IGJhc2VJc1R5cGVkQXJyYXkgZnJvbSAnLi9fYmFzZUlzVHlwZWRBcnJheS5qcyc7XG5pbXBvcnQgYmFzZVVuYXJ5IGZyb20gJy4vX2Jhc2VVbmFyeS5qcyc7XG5pbXBvcnQgbm9kZVV0aWwgZnJvbSAnLi9fbm9kZVV0aWwuanMnO1xuXG4vKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xudmFyIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIHR5cGVkIGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc1R5cGVkQXJyYXkgPSBub2RlSXNUeXBlZEFycmF5ID8gYmFzZVVuYXJ5KG5vZGVJc1R5cGVkQXJyYXkpIDogYmFzZUlzVHlwZWRBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgaXNUeXBlZEFycmF5O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1R5cGVkQXJyYXkuanMiLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXG52YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbnR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xudHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxudHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxudHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJc1R5cGVkQXJyYXk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNUeXBlZEFycmF5LmpzIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy51bmFyeWAgd2l0aG91dCBzdXBwb3J0IGZvciBzdG9yaW5nIG1ldGFkYXRhLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjYXAgYXJndW1lbnRzIGZvci5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNhcHBlZCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVVuYXJ5KGZ1bmMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIGZ1bmModmFsdWUpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVW5hcnk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVW5hcnkuanMiLCJpbXBvcnQgZnJlZUdsb2JhbCBmcm9tICcuL19mcmVlR2xvYmFsLmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYHByb2Nlc3NgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlUHJvY2VzcyA9IG1vZHVsZUV4cG9ydHMgJiYgZnJlZUdsb2JhbC5wcm9jZXNzO1xuXG4vKiogVXNlZCB0byBhY2Nlc3MgZmFzdGVyIE5vZGUuanMgaGVscGVycy4gKi9cbnZhciBub2RlVXRpbCA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICAvLyBVc2UgYHV0aWwudHlwZXNgIGZvciBOb2RlLmpzIDEwKy5cbiAgICB2YXIgdHlwZXMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUucmVxdWlyZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUoJ3V0aWwnKS50eXBlcztcblxuICAgIGlmICh0eXBlcykge1xuICAgICAgcmV0dXJuIHR5cGVzO1xuICAgIH1cblxuICAgIC8vIExlZ2FjeSBgcHJvY2Vzcy5iaW5kaW5nKCd1dGlsJylgIGZvciBOb2RlLmpzIDwgMTAuXG4gICAgcmV0dXJuIGZyZWVQcm9jZXNzICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcgJiYgZnJlZVByb2Nlc3MuYmluZGluZygndXRpbCcpO1xuICB9IGNhdGNoIChlKSB7fVxufSgpKTtcblxuZXhwb3J0IGRlZmF1bHQgbm9kZVV0aWw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19ub2RlVXRpbC5qcyIsImltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcbmltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5pbXBvcnQgbmF0aXZlS2V5c0luIGZyb20gJy4vX25hdGl2ZUtleXNJbi5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c0luYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VLZXlzSW4ob2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzSW4ob2JqZWN0KTtcbiAgfVxuICB2YXIgaXNQcm90byA9IGlzUHJvdG90eXBlKG9iamVjdCksXG4gICAgICByZXN1bHQgPSBbXTtcblxuICBmb3IgKHZhciBrZXkgaW4gb2JqZWN0KSB7XG4gICAgaWYgKCEoa2V5ID09ICdjb25zdHJ1Y3RvcicgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VLZXlzSW47XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5c0luLmpzIiwiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2VcbiAqIFtgT2JqZWN0LmtleXNgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3Qua2V5cylcbiAqIGV4Y2VwdCB0aGF0IGl0IGluY2x1ZGVzIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIG5hdGl2ZUtleXNJbihvYmplY3QpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAob2JqZWN0ICE9IG51bGwpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5hdGl2ZUtleXNJbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcyIsImltcG9ydCBhcHBseSBmcm9tICcuL19hcHBseS5qcyc7XG5pbXBvcnQgYmFzZVJlc3QgZnJvbSAnLi9fYmFzZVJlc3QuanMnO1xuaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi9pc0Vycm9yLmpzJztcblxuLyoqXG4gKiBBdHRlbXB0cyB0byBpbnZva2UgYGZ1bmNgLCByZXR1cm5pbmcgZWl0aGVyIHRoZSByZXN1bHQgb3IgdGhlIGNhdWdodCBlcnJvclxuICogb2JqZWN0LiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0J3MgaW52b2tlZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXR0ZW1wdC5cbiAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGBmdW5jYCByZXN1bHQgb3IgZXJyb3Igb2JqZWN0LlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBBdm9pZCB0aHJvd2luZyBlcnJvcnMgZm9yIGludmFsaWQgc2VsZWN0b3JzLlxuICogdmFyIGVsZW1lbnRzID0gXy5hdHRlbXB0KGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gKiAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAqIH0sICc+Xz4nKTtcbiAqXG4gKiBpZiAoXy5pc0Vycm9yKGVsZW1lbnRzKSkge1xuICogICBlbGVtZW50cyA9IFtdO1xuICogfVxuICovXG52YXIgYXR0ZW1wdCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIGFyZ3MpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXBwbHkoZnVuYywgdW5kZWZpbmVkLCBhcmdzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBpc0Vycm9yKGUpID8gZSA6IG5ldyBFcnJvcihlKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGF0dGVtcHQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2F0dGVtcHQuanMiLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBpbmZlciB0aGUgYE9iamVjdGAgY29uc3RydWN0b3IuICovXG52YXIgb2JqZWN0Q3RvclN0cmluZyA9IGZ1bmNUb1N0cmluZy5jYWxsKE9iamVjdCk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC44LjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqIH1cbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QobmV3IEZvbyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoeyAneCc6IDAsICd5JzogMCB9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpIHx8IGJhc2VHZXRUYWcodmFsdWUpICE9IG9iamVjdFRhZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcHJvdG8gPSBnZXRQcm90b3R5cGUodmFsdWUpO1xuICBpZiAocHJvdG8gPT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICB2YXIgQ3RvciA9IGhhc093blByb3BlcnR5LmNhbGwocHJvdG8sICdjb25zdHJ1Y3RvcicpICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvciAmJlxuICAgIGZ1bmNUb1N0cmluZy5jYWxsKEN0b3IpID09IG9iamVjdEN0b3JTdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzUGxhaW5PYmplY3Q7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzUGxhaW5PYmplY3QuanMiLCJpbXBvcnQgb3ZlckFyZyBmcm9tICcuL19vdmVyQXJnLmpzJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgZ2V0UHJvdG90eXBlID0gb3ZlckFyZyhPYmplY3QuZ2V0UHJvdG90eXBlT2YsIE9iamVjdCk7XG5cbmV4cG9ydCBkZWZhdWx0IGdldFByb3RvdHlwZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFByb3RvdHlwZS5qcyIsImltcG9ydCBhcnJheU1hcCBmcm9tICcuL19hcnJheU1hcC5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udmFsdWVzYCBhbmQgYF8udmFsdWVzSW5gIHdoaWNoIGNyZWF0ZXMgYW5cbiAqIGFycmF5IG9mIGBvYmplY3RgIHByb3BlcnR5IHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcm9wZXJ0eSBuYW1lc1xuICogb2YgYHByb3BzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGdldCB2YWx1ZXMgZm9yLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBiYXNlVmFsdWVzKG9iamVjdCwgcHJvcHMpIHtcbiAgcmV0dXJuIGFycmF5TWFwKHByb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gb2JqZWN0W2tleV07XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVmFsdWVzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVZhbHVlcy5qcyIsImltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIGJ5IGBfLmRlZmF1bHRzYCB0byBjdXN0b21pemUgaXRzIGBfLmFzc2lnbkluYCB1c2UgdG8gYXNzaWduIHByb3BlcnRpZXNcbiAqIG9mIHNvdXJjZSBvYmplY3RzIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QgZm9yIGFsbCBkZXN0aW5hdGlvbiBwcm9wZXJ0aWVzXG4gKiB0aGF0IHJlc29sdmUgdG8gYHVuZGVmaW5lZGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gb2JqVmFsdWUgVGhlIGRlc3RpbmF0aW9uIHZhbHVlLlxuICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgc291cmNlIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBwYXJlbnQgb2JqZWN0IG9mIGBvYmpWYWx1ZWAuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBjdXN0b21EZWZhdWx0c0Fzc2lnbkluKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgaWYgKG9ialZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgIChlcShvYmpWYWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkge1xuICAgIHJldHVybiBzcmNWYWx1ZTtcbiAgfVxuICByZXR1cm4gb2JqVmFsdWU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGN1c3RvbURlZmF1bHRzQXNzaWduSW47XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jdXN0b21EZWZhdWx0c0Fzc2lnbkluLmpzIiwiLyoqIFVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG52YXIgc3RyaW5nRXNjYXBlcyA9IHtcbiAgJ1xcXFwnOiAnXFxcXCcsXG4gIFwiJ1wiOiBcIidcIixcbiAgJ1xcbic6ICduJyxcbiAgJ1xccic6ICdyJyxcbiAgJ1xcdTIwMjgnOiAndTIwMjgnLFxuICAnXFx1MjAyOSc6ICd1MjAyOSdcbn07XG5cbi8qKlxuICogVXNlZCBieSBgXy50ZW1wbGF0ZWAgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIGVzY2FwZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVzY2FwZWQgY2hhcmFjdGVyLlxuICovXG5mdW5jdGlvbiBlc2NhcGVTdHJpbmdDaGFyKGNocikge1xuICByZXR1cm4gJ1xcXFwnICsgc3RyaW5nRXNjYXBlc1tjaHJdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBlc2NhcGVTdHJpbmdDaGFyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXNjYXBlU3RyaW5nQ2hhci5qcyIsImltcG9ydCBhcnJheUxpa2VLZXlzIGZyb20gJy4vX2FycmF5TGlrZUtleXMuanMnO1xuaW1wb3J0IGJhc2VLZXlzIGZyb20gJy4vX2Jhc2VLZXlzLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy4gU2VlIHRoZVxuICogW0VTIHNwZWNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG5mdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuICByZXR1cm4gaXNBcnJheUxpa2Uob2JqZWN0KSA/IGFycmF5TGlrZUtleXMob2JqZWN0KSA6IGJhc2VLZXlzKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXMuanMiLCJpbXBvcnQgaXNQcm90b3R5cGUgZnJvbSAnLi9faXNQcm90b3R5cGUuanMnO1xuaW1wb3J0IG5hdGl2ZUtleXMgZnJvbSAnLi9fbmF0aXZlS2V5cy5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgaWYgKCFpc1Byb3RvdHlwZShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUtleXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5cy5qcyIsImltcG9ydCBvdmVyQXJnIGZyb20gJy4vX292ZXJBcmcuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlS2V5cyA9IG92ZXJBcmcoT2JqZWN0LmtleXMsIE9iamVjdCk7XG5cbmV4cG9ydCBkZWZhdWx0IG5hdGl2ZUtleXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzLmpzIiwiaW1wb3J0IGVzY2FwZSBmcm9tICcuL2VzY2FwZS5qcyc7XG5pbXBvcnQgcmVFc2NhcGUgZnJvbSAnLi9fcmVFc2NhcGUuanMnO1xuaW1wb3J0IHJlRXZhbHVhdGUgZnJvbSAnLi9fcmVFdmFsdWF0ZS5qcyc7XG5pbXBvcnQgcmVJbnRlcnBvbGF0ZSBmcm9tICcuL19yZUludGVycG9sYXRlLmpzJztcblxuLyoqXG4gKiBCeSBkZWZhdWx0LCB0aGUgdGVtcGxhdGUgZGVsaW1pdGVycyB1c2VkIGJ5IGxvZGFzaCBhcmUgbGlrZSB0aG9zZSBpblxuICogZW1iZWRkZWQgUnVieSAoRVJCKSBhcyB3ZWxsIGFzIEVTMjAxNSB0ZW1wbGF0ZSBzdHJpbmdzLiBDaGFuZ2UgdGhlXG4gKiBmb2xsb3dpbmcgdGVtcGxhdGUgc2V0dGluZ3MgdG8gdXNlIGFsdGVybmF0aXZlIGRlbGltaXRlcnMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbnZhciB0ZW1wbGF0ZVNldHRpbmdzID0ge1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGRldGVjdCBgZGF0YWAgcHJvcGVydHkgdmFsdWVzIHRvIGJlIEhUTUwtZXNjYXBlZC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgKi9cbiAgJ2VzY2FwZSc6IHJlRXNjYXBlLFxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGRldGVjdCBjb2RlIHRvIGJlIGV2YWx1YXRlZC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgKi9cbiAgJ2V2YWx1YXRlJzogcmVFdmFsdWF0ZSxcblxuICAvKipcbiAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBpbmplY3QuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICogQHR5cGUge1JlZ0V4cH1cbiAgICovXG4gICdpbnRlcnBvbGF0ZSc6IHJlSW50ZXJwb2xhdGUsXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gcmVmZXJlbmNlIHRoZSBkYXRhIG9iamVjdCBpbiB0aGUgdGVtcGxhdGUgdGV4dC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgJ3ZhcmlhYmxlJzogJycsXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gaW1wb3J0IHZhcmlhYmxlcyBpbnRvIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgJ2ltcG9ydHMnOiB7XG5cbiAgICAvKipcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzLmltcG9ydHNcbiAgICAgKiBAdHlwZSB7RnVuY3Rpb259XG4gICAgICovXG4gICAgJ18nOiB7ICdlc2NhcGUnOiBlc2NhcGUgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB0ZW1wbGF0ZVNldHRpbmdzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90ZW1wbGF0ZVNldHRpbmdzLmpzIiwiaW1wb3J0IGVzY2FwZUh0bWxDaGFyIGZyb20gJy4vX2VzY2FwZUh0bWxDaGFyLmpzJztcbmltcG9ydCB0b1N0cmluZyBmcm9tICcuL3RvU3RyaW5nLmpzJztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggSFRNTCBlbnRpdGllcyBhbmQgSFRNTCBjaGFyYWN0ZXJzLiAqL1xudmFyIHJlVW5lc2NhcGVkSHRtbCA9IC9bJjw+XCInXS9nLFxuICAgIHJlSGFzVW5lc2NhcGVkSHRtbCA9IFJlZ0V4cChyZVVuZXNjYXBlZEh0bWwuc291cmNlKTtcblxuLyoqXG4gKiBDb252ZXJ0cyB0aGUgY2hhcmFjdGVycyBcIiZcIiwgXCI8XCIsIFwiPlwiLCAnXCInLCBhbmQgXCInXCIgaW4gYHN0cmluZ2AgdG8gdGhlaXJcbiAqIGNvcnJlc3BvbmRpbmcgSFRNTCBlbnRpdGllcy5cbiAqXG4gKiAqKk5vdGU6KiogTm8gb3RoZXIgY2hhcmFjdGVycyBhcmUgZXNjYXBlZC4gVG8gZXNjYXBlIGFkZGl0aW9uYWxcbiAqIGNoYXJhY3RlcnMgdXNlIGEgdGhpcmQtcGFydHkgbGlicmFyeSBsaWtlIFtfaGVfXShodHRwczovL210aHMuYmUvaGUpLlxuICpcbiAqIFRob3VnaCB0aGUgXCI+XCIgY2hhcmFjdGVyIGlzIGVzY2FwZWQgZm9yIHN5bW1ldHJ5LCBjaGFyYWN0ZXJzIGxpa2VcbiAqIFwiPlwiIGFuZCBcIi9cIiBkb24ndCBuZWVkIGVzY2FwaW5nIGluIEhUTUwgYW5kIGhhdmUgbm8gc3BlY2lhbCBtZWFuaW5nXG4gKiB1bmxlc3MgdGhleSdyZSBwYXJ0IG9mIGEgdGFnIG9yIHVucXVvdGVkIGF0dHJpYnV0ZSB2YWx1ZS4gU2VlXG4gKiBbTWF0aGlhcyBCeW5lbnMncyBhcnRpY2xlXShodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvYW1iaWd1b3VzLWFtcGVyc2FuZHMpXG4gKiAodW5kZXIgXCJzZW1pLXJlbGF0ZWQgZnVuIGZhY3RcIikgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBXaGVuIHdvcmtpbmcgd2l0aCBIVE1MIHlvdSBzaG91bGQgYWx3YXlzXG4gKiBbcXVvdGUgYXR0cmlidXRlIHZhbHVlc10oaHR0cDovL3dvbmtvLmNvbS9wb3N0L2h0bWwtZXNjYXBpbmcpIHRvIHJlZHVjZVxuICogWFNTIHZlY3RvcnMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IFtzdHJpbmc9JyddIFRoZSBzdHJpbmcgdG8gZXNjYXBlLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBzdHJpbmcuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZXNjYXBlKCdmcmVkLCBiYXJuZXksICYgcGViYmxlcycpO1xuICogLy8gPT4gJ2ZyZWQsIGJhcm5leSwgJmFtcDsgcGViYmxlcydcbiAqL1xuZnVuY3Rpb24gZXNjYXBlKHN0cmluZykge1xuICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICByZXR1cm4gKHN0cmluZyAmJiByZUhhc1VuZXNjYXBlZEh0bWwudGVzdChzdHJpbmcpKVxuICAgID8gc3RyaW5nLnJlcGxhY2UocmVVbmVzY2FwZWRIdG1sLCBlc2NhcGVIdG1sQ2hhcilcbiAgICA6IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXNjYXBlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lc2NhcGUuanMiLCJpbXBvcnQgYmFzZVByb3BlcnR5T2YgZnJvbSAnLi9fYmFzZVByb3BlcnR5T2YuanMnO1xuXG4vKiogVXNlZCB0byBtYXAgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLiAqL1xudmFyIGh0bWxFc2NhcGVzID0ge1xuICAnJic6ICcmYW1wOycsXG4gICc8JzogJyZsdDsnLFxuICAnPic6ICcmZ3Q7JyxcbiAgJ1wiJzogJyZxdW90OycsXG4gIFwiJ1wiOiAnJiMzOTsnXG59O1xuXG4vKipcbiAqIFVzZWQgYnkgYF8uZXNjYXBlYCB0byBjb252ZXJ0IGNoYXJhY3RlcnMgdG8gSFRNTCBlbnRpdGllcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGNociBUaGUgbWF0Y2hlZCBjaGFyYWN0ZXIgdG8gZXNjYXBlLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG4gKi9cbnZhciBlc2NhcGVIdG1sQ2hhciA9IGJhc2VQcm9wZXJ0eU9mKGh0bWxFc2NhcGVzKTtcblxuZXhwb3J0IGRlZmF1bHQgZXNjYXBlSHRtbENoYXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lc2NhcGVIdG1sQ2hhci5qcyIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlPZmAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5T2Yob2JqZWN0KSB7XG4gIHJldHVybiBmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVByb3BlcnR5T2Y7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUHJvcGVydHlPZi5qcyIsImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcbmltcG9ydCBhcnJheU1hcCBmcm9tICcuL19hcnJheU1hcC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbnZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgc3ltYm9sVG9TdHJpbmcgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnRvU3RyaW5nIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvU3RyaW5nYCB3aGljaCBkb2Vzbid0IGNvbnZlcnQgbnVsbGlzaFxuICogdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAvLyBFeGl0IGVhcmx5IGZvciBzdHJpbmdzIHRvIGF2b2lkIGEgcGVyZm9ybWFuY2UgaGl0IGluIHNvbWUgZW52aXJvbm1lbnRzLlxuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgcmV0dXJuIGFycmF5TWFwKHZhbHVlLCBiYXNlVG9TdHJpbmcpICsgJyc7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBzeW1ib2xUb1N0cmluZyA/IHN5bWJvbFRvU3RyaW5nLmNhbGwodmFsdWUpIDogJyc7XG4gIH1cbiAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSkgPyAnLTAnIDogcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVG9TdHJpbmc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVG9TdHJpbmcuanMiLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzU3ltYm9sO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1N5bWJvbC5qcyIsIi8qKiBVc2VkIHRvIG1hdGNoIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXG52YXIgcmVFc2NhcGUgPSAvPCUtKFtcXHNcXFNdKz8pJT4vZztcblxuZXhwb3J0IGRlZmF1bHQgcmVFc2NhcGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yZUVzY2FwZS5qcyIsIi8qKiBVc2VkIHRvIG1hdGNoIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXG52YXIgcmVFdmFsdWF0ZSA9IC88JShbXFxzXFxTXSs/KSU+L2c7XG5cbmV4cG9ydCBkZWZhdWx0IHJlRXZhbHVhdGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yZUV2YWx1YXRlLmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IEltYWdlUmVuZGVyZXIgZnJvbSAnLi9JbWFnZVJlbmRlcmVyJ1xuXG5leHBvcnQgZGVmYXVsdCBJbWFnZVJlbmRlcmVyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvSW1hZ2VSZW5kZXJlci9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBUZW1wbGF0ZVJlbmRlcmVyIGZyb20gJy4uL1RlbXBsYXRlUmVuZGVyZXInXG5cbi8qKlxuICogTnVtYmVycyBFZGl0b3JcbiAqXG4gKiBIYW5kbGUgbnVtYmVyIHZhbHVlcyBFZGl0aW5nXG4gKlxuICogfCBOYW1lICAgICAgICAgICAgICAgICAgXHR8IERlZmF1bHQgICAgIFx0fCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVx0fDotLS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKippbWFnZVJlbmRlcmVyV2lkdGgqKiAgIHwgMjhweCAgICB8IGltYWdlIHdpZHRoXG4gKiB8ICoqaW1hZ2VSZW5kZXJlckhlaWdodCoqICAgfCAyOHB4ICAgIHwgaW1hZ2UgaGVpZ2h0XG4gKiB8ICoqaW1hZ2VSZW5kZXJlckxpc3QqKiAgICAgICB8IHt9ICBcdHwgYSBsaXN0IG9mIHdoaWNoIG1hcHMgaW1hZ2VzIHdpdGggY2VsbCB2YWx1ZXMgYXMgSlNPTiBvciBwbGFpbiBKUyBvYmplY3RcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy4xNSN0ZW1wbGF0ZVxuICovXG5jbGFzcyBJbWFnZVJlbmRlcmVyIGV4dGVuZHMgVGVtcGxhdGVSZW5kZXJlciB7XG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgcmVmcmVzaChwYXJhbXMsIGlzSW5pdCkge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zLnZhbHVlXG4gICAgY29uc3QgaW1hZ2VXaWR0aCA9IHRoaXMuZ2V0T3B0aW9uKCdpbWFnZVJlbmRlcmVyV2lkdGgnLCBwYXJhbXMsICcyOHB4JylcbiAgICBjb25zdCBpbWFnZUhlaWdodCA9IHRoaXMuZ2V0T3B0aW9uKCdpbWFnZVJlbmRlcmVySGVpZ2h0JywgcGFyYW1zLCAnMjhweCcpXG4gICAgbGV0IGltYWdlTGlzdCA9IHRoaXMuZ2V0T3B0aW9uKCdpbWFnZVJlbmRlcmVyTGlzdCcsIHBhcmFtcylcblxuICAgIHRyeSB7XG4gICAgICBpbWFnZUxpc3QgPSBKU09OLnBhcnNlKGltYWdlTGlzdClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpbWFnZUxpc3QgPSBpbWFnZUxpc3QgfHwge31cbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cbiAgICBpZiAoaW1hZ2VMaXN0ICYmIGltYWdlTGlzdC5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkpIHtcbiAgICAgIHBhcmFtcy5yZW5kZXJUZW1wbGF0ZSA9IC8qaHRtbCovIGBcbiAgICAgICAgPGltZyBcbiAgICAgICAgICBzcmM9XCIke2ltYWdlTGlzdFtwYXJhbXMudmFsdWVdfVwiIFxuICAgICAgICAgIHdpZHRoPVwiJHtpbWFnZVdpZHRofVwiXG4gICAgICAgICAgaGVpZ2h0PVwiJHtpbWFnZUhlaWdodH1cIiAgXG4gICAgICAgIC8+XG4gICAgICBgXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtcy5yZW5kZXJUZW1wbGF0ZSA9IHZhbHVlXG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLnJlZnJlc2gocGFyYW1zLCBpc0luaXQpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VSZW5kZXJlclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0ltYWdlUmVuZGVyZXIvSW1hZ2VSZW5kZXJlci5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBEYXRlVGltZUZpbHRlciBmcm9tICcuL0RhdGVUaW1lRmlsdGVyJ1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZUZpbHRlclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0RhdGVUaW1lRmlsdGVyL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgYXV0b2JpbmQsIG92ZXJyaWRlLCByZWFkb25seSB9IGZyb20gJ2NvcmUtZGVjb3JhdG9ycydcbmltcG9ydCB1dGNUb1pvbmVkVGltZSBmcm9tICdkYXRlLWZucy10ei91dGNUb1pvbmVkVGltZSdcbmltcG9ydCB7IHdpdGhFdmVudHNNaXhpbiB9IGZyb20gJy4uL0V2ZW50c01peGluJ1xuaW1wb3J0IERhdGVUaW1lSW5wdXQgZnJvbSAnLi4vRGF0ZVRpbWVJbnB1dCdcbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vQ29tcG9uZW50J1xuXG5jb25zdCBUT0tFTlMgPSB7XG4gIFRPS0VOX0VRVUFMOiAnZXF1YWxzJyxcbiAgVE9LRU5fTk9UX0VRVUFMOiAnbm90RXF1YWwnLFxuICBUT0tFTl9MRVNTOiAnbGVzc1RoYW4nLFxuICBUT0tFTl9HUkVBVEVSOiAnZ3JlYXRlclRoYW4nLFxuICBUT0tFTl9SQU5HRTogJ2luUmFuZ2UnLFxuICBUT0tFTl9BTkQ6ICdBTkQnLFxuICBUT0tFTl9PUjogJ09SJyxcbn1cblxuQHdpdGhFdmVudHNNaXhpblxuY2xhc3MgQ29uZGl0aW9uUGFuZWwgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogQ29uc3RhbnQgd2hpY2ggZGVzY3JpYmVzIHRoZSBldmVudCBuYW1lIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIHRoZSBvcHRpb25cbiAgICogc3RhdGUgaXMgY2hhbmdlZFxuICAgKlxuICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgKi9cbiAgQHJlYWRvbmx5XG4gIHN0YXRpYyBPTl9DT05ESVRJT05fQ0hBTkdFRCA9ICdDb25kaXRpb25QYW5lbC5PTl9DT05ESVRJT05fQ0hBTkdFRCdcbiAgLyoqXG4gICAqIFRoZSBvcHRpb24gc3RhdGVcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIEByZWFkb25seVxuICBzdGF0ZSA9IHtcbiAgICB0eXBlOiBUT0tFTlMuVE9LRU5fRVFVQUwsXG4gICAgZmlsdGVyOiBudWxsLFxuICAgIGZpbHRlclRvOiBudWxsLFxuICB9XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtEYXRlVGltZUlucHV0fVxuICAgKi9cbiAgX2ZpbHRlclRpbWVJbnB1dCA9IG5ldyBEYXRlVGltZUlucHV0KClcblxuICAvKipcbiAgICogQHR5cGUge0RhdGVUaW1lSW5wdXR9XG4gICAqL1xuICBfZmlsdGVyVG9EYXRlVGltZUlucHV0ID0gbmV3IERhdGVUaW1lSW5wdXQoKVxuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBlbmFibGVkIGZpbHRlciB0eXBlc1xuICAgKlxuICAgKiBAdHlwZSB7QXJyYXl9XG4gICAqL1xuICBfZmlsdGVyT3B0aW9ucyA9IFtdXG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGVuYWJsZWQgZmlsdGVyIHR5cGVcbiAgICpcbiAgICogQHR5cGUge051bWJlcn1cbiAgICovXG4gIF9kZWZhdWx0T3B0aW9uID0gLTFcbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgaW5pdChwYXJhbXMpIHtcbiAgICBjb25zdCB0cmFuc2xhdGUgPSBwYXJhbXMuYXBpLmdyaWRPcHRpb25zV3JhcHBlci5nZXRMb2NhbGVUZXh0RnVuYygpXG5cbiAgICB0aGlzLl9maWx0ZXJPcHRpb25zID0gdGhpcy5nZXRPcHRpb24oJ2ZpbHRlck9wdGlvbnMnLCBwYXJhbXMsIFtcbiAgICAgIFRPS0VOUy5UT0tFTl9FUVVBTCxcbiAgICAgIFRPS0VOUy5UT0tFTl9OT1RfRVFVQUwsXG4gICAgICBUT0tFTlMuVE9LRU5fTEVTUyxcbiAgICAgIFRPS0VOUy5UT0tFTl9HUkVBVEVSLFxuICAgICAgVE9LRU5TLlRPS0VOX1JBTkdFLFxuICAgIF0pXG5cbiAgICB0aGlzLl9kZWZhdWx0T3B0aW9uID0gdGhpcy5nZXRPcHRpb24oXG4gICAgICAnZGVmYXVsdE9wdGlvbicsXG4gICAgICBwYXJhbXMsXG4gICAgICB0aGlzLl9maWx0ZXJPcHRpb25zLmluZGV4T2YoVE9LRU5TLlRPS0VOX0VRVUFMKSA+IC0xXG4gICAgICAgID8gVE9LRU5TLlRPS0VOX0VRVUFMXG4gICAgICAgIDogdGhpcy5fZmlsdGVyT3B0aW9uc1swXVxuICAgIClcblxuICAgIHRoaXMuc3RhdGUudHlwZSA9IHRoaXMuX2RlZmF1bHRPcHRpb25cblxuICAgIGNvbnN0IG9wdGlvbnNUcmFuc2xhdGlvbnMgPSB7XG4gICAgICBbVE9LRU5TLlRPS0VOX0VRVUFMXTogdHJhbnNsYXRlKFRPS0VOUy5UT0tFTl9FUVVBTCwgJ0VxdWFscycpLFxuICAgICAgW1RPS0VOUy5UT0tFTl9OT1RfRVFVQUxdOiB0cmFuc2xhdGUoVE9LRU5TLlRPS0VOX0VRVUFMLCAnTm90IGVxdWFsJyksXG4gICAgICBbVE9LRU5TLlRPS0VOX0xFU1NdOiB0cmFuc2xhdGUoVE9LRU5TLlRPS0VOX0xFU1MsICdMZXNzIHRoYW4nKSxcbiAgICAgIFtUT0tFTlMuVE9LRU5fR1JFQVRFUl06IHRyYW5zbGF0ZShUT0tFTlMuVE9LRU5fR1JFQVRFUiwgJ0dyZWF0ZXIgdGhhbicpLFxuICAgICAgW1RPS0VOUy5UT0tFTl9SQU5HRV06IHRyYW5zbGF0ZShUT0tFTlMuVE9LRU5fUkFOR0UsICdJbiByYW5nZScpLFxuICAgIH1cblxuICAgIHRoaXMuX2d1aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGhpcy5fZ3VpLmNsYXNzTmFtZSA9ICdhZy1maWx0ZXItYm9keS13cmFwcGVyJ1xuICAgIHRoaXMuX2d1aS5pbm5lckhUTUwgPSAvKiBodG1sICovIGBcbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJhZy1maWx0ZXItc2VsZWN0XCIgICR7XG4gICAgICAgIHRoaXMuX2ZpbHRlck9wdGlvbnMubGVuZ3RoID09PSAxID8gJ2Rpc2FibGVkJyA6ICcnXG4gICAgICB9PlxuICAgICAgICAke3RoaXMuX2ZpbHRlck9wdGlvbnMubWFwKFxuICAgICAgICAgIG9wdGlvbiA9PiAvKiBodG1sICovIGBcbiAgICAgICAgICA8b3B0aW9uIFxuICAgICAgICAgICAgdmFsdWU9XCIke29wdGlvbn1cIiBcbiAgICAgICAgICAgICR7b3B0aW9uID09PSB0aGlzLl9kZWZhdWx0T3B0aW9uID8gJ3NlbGVjdGVkJyA6ICcnfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICAgJHtvcHRpb25zVHJhbnNsYXRpb25zW29wdGlvbl19XG4gICAgICAgICAgPC9vcHRpb24+YFxuICAgICAgICApfVxuICAgICAgPC9zZWxlY3Q+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWctZmlsdGVyLWJvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFnLWZpbHRlci1kYXRlLWZyb21cIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZy1maWx0ZXItZGF0ZS10byBhZy1oaWRkZW5cIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgXG5cbiAgICB0aGlzLl9maWx0ZXJUaW1lSW5wdXQuaW5pdChwYXJhbXMpXG4gICAgdGhpcy5fZmlsdGVyVGltZUlucHV0Lm9uKERhdGVUaW1lSW5wdXQuT05fREFURV9DSEFOR0VELCBzZWxlY3RlZERhdGUgPT4ge1xuICAgICAgdGhpcy5zdGF0ZS5maWx0ZXIgPSBzZWxlY3RlZERhdGVcbiAgICAgIHRoaXMubm90aWZ5KENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICAgIH0pXG5cbiAgICB0aGlzLl9maWx0ZXJUb0RhdGVUaW1lSW5wdXQuaW5pdChwYXJhbXMpXG4gICAgdGhpcy5fZmlsdGVyVG9EYXRlVGltZUlucHV0Lm9uKFxuICAgICAgRGF0ZVRpbWVJbnB1dC5PTl9EQVRFX0NIQU5HRUQsXG4gICAgICBzZWxlY3RlZERhdGUgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlLmZpbHRlclRvID0gc2VsZWN0ZWREYXRlXG4gICAgICAgIHRoaXMubm90aWZ5KENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICAgICAgfVxuICAgIClcblxuICAgIHRoaXMuX2d1aVxuICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5hZy1maWx0ZXItZGF0ZS1mcm9tJylcbiAgICAgIC5hcHBlbmRDaGlsZCh0aGlzLl9maWx0ZXJUaW1lSW5wdXQuZ2V0R3VpKCkpXG4gICAgdGhpcy5fZ3VpXG4gICAgICAucXVlcnlTZWxlY3RvcignLmFnLWZpbHRlci1kYXRlLXRvJylcbiAgICAgIC5hcHBlbmRDaGlsZCh0aGlzLl9maWx0ZXJUb0RhdGVUaW1lSW5wdXQuZ2V0R3VpKCkpXG5cbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLl9ndWkucXVlcnlTZWxlY3RvcignLmFnLWZpbHRlci1zZWxlY3QnKVxuICAgIHNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9vblR5cGVDaGFuZ2UpXG5cbiAgICB0aGlzLnNldFN0YXRlKHRoaXMuX3N0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLm9mZihDb25kaXRpb25QYW5lbC5PTl9DT05ESVRJT05fQ0hBTkdFRClcbiAgICB0aGlzLl9maWx0ZXJUaW1lSW5wdXQuZGVzdHJveSgpXG4gICAgdGhpcy5fZmlsdGVyVG9EYXRlVGltZUlucHV0LmRlc3Ryb3koKVxuICAgIHRoaXMuX2d1aVxuICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5hZy1maWx0ZXItc2VsZWN0JylcbiAgICAgIC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9vblR5cGVDaGFuZ2UpXG4gICAgdGhpcy5yZXNldCgpXG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHN0YXRlXG4gICAqL1xuICByZXNldCgpIHtcbiAgICB0aGlzLnN0YXRlLmZpbHRlciA9IG51bGxcbiAgICB0aGlzLnN0YXRlLmZpbHRlclRvID0gbnVsbFxuICAgIHRoaXMuX2ZpbHRlclRpbWVJbnB1dC5yZXNldCgpXG4gICAgdGhpcy5fZmlsdGVyVG9EYXRlVGltZUlucHV0LnJlc2V0KClcblxuICAgIHRoaXMubm90aWZ5KENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY29uZGl0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZVxuICAgKi9cbiAgc2V0U3RhdGUoc3RhdGUpIHtcbiAgICBzdGF0ZSA9IHN0YXRlIHx8IHt9XG4gICAgdGhpcy5zdGF0ZS5maWx0ZXIgPSBzdGF0ZS5maWx0ZXIgfHwgbnVsbFxuICAgIHRoaXMuc3RhdGUuZmlsdGVyVG8gPSBzdGF0ZS5maWx0ZXJUbyB8fCBudWxsXG4gICAgdGhpcy5zdGF0ZS50eXBlID0gc3RhdGUudHlwZSB8fCB0aGlzLl9kZWZhdWx0T3B0aW9uXG5cbiAgICBjb25zdCBndWkgPSB0aGlzLl9ndWlcbiAgICBjb25zdCBmaWx0ZXJPcHRpb25zID0gdGhpcy5fZmlsdGVyT3B0aW9uc1xuICAgIGNvbnN0IHNlbGVjdEVsID0gZ3VpLnF1ZXJ5U2VsZWN0b3IoJy5hZy1maWx0ZXItc2VsZWN0JylcbiAgICBjb25zdCBmaWx0ZXJJbnB1dCA9IHRoaXMuX2ZpbHRlclRpbWVJbnB1dFxuICAgIGNvbnN0IGZpbHRlclRvSW5wdXQgPSB0aGlzLl9maWx0ZXJUb0RhdGVUaW1lSW5wdXRcblxuICAgIHNlbGVjdEVsLnNlbGVjdGVkSW5kZXggPSBmaWx0ZXJPcHRpb25zLmluZGV4T2YodGhpcy5zdGF0ZS50eXBlKVxuICAgIGZpbHRlcklucHV0LnNldERhdGUodGhpcy5zdGF0ZS5maWx0ZXIpXG4gICAgZmlsdGVyVG9JbnB1dC5zZXREYXRlKHRoaXMuc3RhdGUuZmlsdGVyVG8pXG5cbiAgICAvLyB3ZSBmaXJlIG9uIGNoYW5nZSBldmVudCBpbiBjYXNlIHRoZSBmaWx0ZXIgb3B0aW9ucyBjb250YWluXG4gICAgLy8gb25lIG9wdGlvbiB3aGljaCBpcyBpbiBSYW5nZSBcImluUmFuZ2VcIlxuICAgIGlmICgnY3JlYXRlRXZlbnQnIGluIGRvY3VtZW50KSB7XG4gICAgICBjb25zdCBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpXG4gICAgICBldnQuaW5pdEV2ZW50KCdjaGFuZ2UnLCBmYWxzZSwgdHJ1ZSlcbiAgICAgIHNlbGVjdEVsLmRpc3BhdGNoRXZlbnQoZXZ0KVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWxlY3RFbC5maXJlRXZlbnQoJ29uY2hhbmdlJylcbiAgICB9XG5cbiAgICB0aGlzLm5vdGlmeShDb25kaXRpb25QYW5lbC5PTl9DT05ESVRJT05fQ0hBTkdFRCwgdGhpcy5zdGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHN0YXRlIHdpdGggdGhlIHNlbGVjdGVkIHR5cGVcbiAgICpcbiAgICogQHBhcmFtIHtFdmVudH0gZVxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9vblR5cGVDaGFuZ2UoZSkge1xuICAgIGNvbnN0IGVsID0gZS50YXJnZXRcbiAgICBjb25zdCBmaWx0ZXJEYXRlVG8gPSB0aGlzLl9ndWkucXVlcnlTZWxlY3RvcignLmFnLWZpbHRlci1kYXRlLXRvJylcblxuICAgIHRoaXMuc3RhdGUudHlwZSA9IGVsLm9wdGlvbnNbZWwuc2VsZWN0ZWRJbmRleF0udmFsdWVcblxuICAgIGlmICh0aGlzLnN0YXRlLnR5cGUgPT09IFRPS0VOUy5UT0tFTl9SQU5HRSkge1xuICAgICAgZmlsdGVyRGF0ZVRvLmNsYXNzTGlzdC5yZW1vdmUoJ2FnLWhpZGRlbicpXG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlckRhdGVUby5jbGFzc0xpc3QuYWRkKCdhZy1oaWRkZW4nKVxuICAgIH1cblxuICAgIHRoaXMubm90aWZ5KENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICB9XG59XG5cbkB3aXRoRXZlbnRzTWl4aW5cbmNsYXNzIEpvaW5Db25kaXRpb25QYW5lbCBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBDb25zdGFudCB3aGljaCBkZXNjcmliZXMgdGhlIGV2ZW50IG5hbWUgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIGpvaW5cbiAgICogc3RhdGUgaXMgY2hhbmdlZFxuICAgKlxuICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgKi9cbiAgQHJlYWRvbmx5XG4gIHN0YXRpYyBPTl9KT0lOX0NPTkRJVElPTl9DSEFOR0VEID1cbiAgICAnSm9pbkNvbmRpdGlvblBhbmVsLk9OX0pPSU5fQ09ORElUSU9OX0NIQU5HRUQnXG4gIC8qKlxuICAgKiBUaGUgam9pbiBzdGF0ZVxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgQHJlYWRvbmx5XG4gIHN0YXRlID0ge1xuICAgIGNvbmRpdGlvbjE6IHt9LFxuICAgIGNvbmRpdGlvbjI6IHt9LFxuICAgIG9wZXJhdG9yOiBUT0tFTlMuVE9LRU5fT1IsXG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge09wdGlvbn1cbiAgICovXG4gIF9maXJzdENvbmRpdGlvblBhbmVsID0gbmV3IENvbmRpdGlvblBhbmVsKClcblxuICAvKipcbiAgICogQHR5cGUge09wdGlvbn1cbiAgICovXG4gIF9zZWNvbmRDb25kaXRpb25QYW5lbCA9IG5ldyBDb25kaXRpb25QYW5lbCgpXG5cbiAgLyoqXG4gICAqIEB0eXBlIHtIVE1MRWxlbWVudH1cbiAgICovXG4gIF9vcGVyYXRvclBhbmVsID0gbnVsbFxuXG4gIC8qKlxuICAgKiBQYXJhbXMgcmVjZWl2ZWQgYWZ0ZXIgaW5pdFxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgX3BhcmFtcyA9IG51bGxcbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgaW5pdChwYXJhbXMpIHtcbiAgICBjb25zdCB0cmFuc2xhdGUgPSBwYXJhbXMuYXBpLmdyaWRPcHRpb25zV3JhcHBlci5nZXRMb2NhbGVUZXh0RnVuYygpXG5cbiAgICB0aGlzLl9wYXJhbXMgPSBwYXJhbXNcblxuICAgIHRoaXMuX2ZpcnN0Q29uZGl0aW9uUGFuZWwuaW5pdChwYXJhbXMpXG4gICAgdGhpcy5fZmlyc3RDb25kaXRpb25QYW5lbC5vbihcbiAgICAgIENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VELFxuICAgICAgdGhpcy5fb25GaXJzdENvbmRpdGlvbkNoYW5nZWRcbiAgICApXG5cbiAgICB0aGlzLl9zZWNvbmRDb25kaXRpb25QYW5lbC5pbml0KHBhcmFtcylcbiAgICB0aGlzLl9zZWNvbmRDb25kaXRpb25QYW5lbC5vbihcbiAgICAgIENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VELFxuICAgICAgdGhpcy5fb25TZWNvbmRDb25kaXRpb25DaGFuZ2VkXG4gICAgKVxuICAgIHRoaXMuX3NlY29uZENvbmRpdGlvblBhbmVsLmdldEd1aSgpLmNsYXNzTGlzdC5hZGQoJ2FnLWhpZGRlbicpXG5cbiAgICB0aGlzLl9ndWkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMuX2d1aS5jbGFzc05hbWUgPSAnYWctZmlsdGVyLWJvZHktd3JhcHBlcidcbiAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQodGhpcy5fZmlyc3RDb25kaXRpb25QYW5lbC5nZXRHdWkoKSlcblxuICAgIHRoaXMuX29wZXJhdG9yUGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMuX29wZXJhdG9yUGFuZWwuY2xhc3NOYW1lID0gJ2FnLWZpbHRlci1jb25kaXRpb24gYWctaGlkZGVuJ1xuICAgIHRoaXMuX29wZXJhdG9yUGFuZWwuaW5uZXJIVE1MID0gLyogaHRtbCAqLyBgXG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpbnB1dCBjbGFzcz1cIkFORFwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvckFuZFJhZGlvXCIgdmFsdWU9XCIke1xuICAgICAgICAgIFRPS0VOUy5UT0tFTl9BTkRcbiAgICAgICAgfVwiLz5cbiAgICAgICAgJHt0cmFuc2xhdGUoJ2FuZENvbmRpdGlvbicsICdBTkQnKX1cbiAgICAgIDwvbGFiZWw+IFxuICAgICAgPGxhYmVsPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJPUlwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvckFuZFJhZGlvXCIgdmFsdWU9XCIke1xuICAgICAgICAgIFRPS0VOUy5UT0tFTl9PUlxuICAgICAgICB9XCIgY2hlY2tlZCAvPlxuICAgICAgICAke3RyYW5zbGF0ZSgnb3JDb25kaXRpb24nLCAnT1InKX1cbiAgICAgIDwvbGFiZWw+XG4gICAgYFxuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZCh0aGlzLl9vcGVyYXRvclBhbmVsKVxuICAgIHRoaXMuX29wZXJhdG9yUGFuZWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5fb25PcGVyYXRvckNoYW5nZWQpXG5cbiAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQodGhpcy5fc2Vjb25kQ29uZGl0aW9uUGFuZWwuZ2V0R3VpKCkpXG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuX2ZpcnN0Q29uZGl0aW9uUGFuZWwuZGVzdHJveSgpXG4gICAgdGhpcy5fc2Vjb25kQ29uZGl0aW9uUGFuZWwuZGVzdHJveSgpXG4gICAgdGhpcy5fb3BlcmF0b3JQYW5lbC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9vbk9wZXJhdG9yQ2hhbmdlZClcbiAgICB0aGlzLm9mZihKb2luQ29uZGl0aW9uUGFuZWwuT05fSk9JTl9DT05ESVRJT05fQ0hBTkdFRClcbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc3RhdGVcbiAgICovXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuX2ZpcnN0Q29uZGl0aW9uUGFuZWwucmVzZXQoKVxuICAgIHRoaXMuX3NlY29uZENvbmRpdGlvblBhbmVsLnJlc2V0KClcbiAgICB0aGlzLm5vdGlmeShDb25kaXRpb25QYW5lbC5PTl9DT05ESVRJT05fQ0hBTkdFRCwgdGhpcy5zdGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbmRpdGlvbiBqb2luIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZVxuICAgKi9cbiAgc2V0U3RhdGUoc3RhdGUpIHtcbiAgICBzdGF0ZSA9IHN0YXRlIHx8IHt9XG4gICAgdGhpcy5zdGF0ZS5vcGVyYXRvciA9IHN0YXRlLm9wZXJhdG9yIHx8IFRPS0VOUy5UT0tFTl9PUlxuICAgIHRoaXMuc3RhdGUuY29uZGl0aW9uMSA9IHN0YXRlLmNvbmRpdGlvbjEgfHwgbnVsbFxuICAgIHRoaXMuc3RhdGUuY29uZGl0aW9uMiA9IHN0YXRlLmNvbmRpdGlvbjIgfHwgbnVsbFxuXG4gICAgdGhpcy5fZmlyc3RDb25kaXRpb25QYW5lbC5zZXRTdGF0ZSh0aGlzLnN0YXRlLmNvbmRpdGlvbjEpXG4gICAgdGhpcy5fc2Vjb25kQ29uZGl0aW9uUGFuZWwuc2V0U3RhdGUodGhpcy5zdGF0ZS5jb25kaXRpb24yKVxuICAgIHRoaXMuX29wZXJhdG9yUGFuZWwucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKS5mb3JFYWNoKGlucHV0ID0+IHtcbiAgICAgIGlmIChpbnB1dC5jbGFzc0xpc3QuY29udGFpbnModGhpcy5zdGF0ZS5vcGVyYXRvcikpIHtcbiAgICAgICAgaW5wdXQuY2hlY2tlZCA9IHRydWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlucHV0LmNoZWNrZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0pXG5cbiAgICB0aGlzLm5vdGlmeShKb2luQ29uZGl0aW9uUGFuZWwuT05fSk9JTl9DT05ESVRJT05fQ0hBTkdFRCwgdGhpcy5zdGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIHNlbGVjdGVkIGNvbmRpdGlvbiB0byB0aGUgY29tcG9uZW50IHN0YXRlclxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBlXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX29uT3BlcmF0b3JDaGFuZ2VkKGUpIHtcbiAgICB0aGlzLnN0YXRlLm9wZXJhdG9yID0gZS50YXJnZXQudmFsdWVcbiAgICB0aGlzLm5vdGlmeShKb2luQ29uZGl0aW9uUGFuZWwuT05fSk9JTl9DT05ESVRJT05fQ0hBTkdFRCwgdGhpcy5zdGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge09iamVjdH0gc3RhdGUgIHRoZSBvcHRpb24gc3RhdGVcbiAgICovXG4gIEBhdXRvYmluZFxuICBfb25GaXJzdENvbmRpdGlvbkNoYW5nZWQoc3RhdGUpIHtcbiAgICB0aGlzLnN0YXRlLmNvbmRpdGlvbjEgPSBzdGF0ZVxuXG4gICAgY29uc3Qgc3VwcHJlc3NBbmRPckNvbmRpdGlvbiA9IHRoaXMuZ2V0T3B0aW9uKFxuICAgICAgJ3N1cHByZXNzQW5kT3JDb25kaXRpb24nLFxuICAgICAgdGhpcy5fcGFyYW1zLFxuICAgICAgZmFsc2VcbiAgICApXG5cbiAgICBpZiAoIXN1cHByZXNzQW5kT3JDb25kaXRpb24pIHtcbiAgICAgIGNvbnN0IHsgZmlsdGVyLCBmaWx0ZXJUbywgdHlwZSB9ID0gdGhpcy5zdGF0ZS5jb25kaXRpb24xXG4gICAgICBjb25zdCBzZWNvbmRDb25kaXRpb25HdWkgPSB0aGlzLl9zZWNvbmRDb25kaXRpb25QYW5lbC5nZXRHdWkoKVxuICAgICAgY29uc3Qgb3BlcmF0b3JQYW5lbEd1aSA9IHRoaXMuX29wZXJhdG9yUGFuZWxcbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9XG4gICAgICAgIHR5cGUgPT09IFRPS0VOUy5UT0tFTl9SQU5HRSA/ICFmaWx0ZXIgfHwgIWZpbHRlclRvIDogIWZpbHRlclxuXG4gICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgIHNlY29uZENvbmRpdGlvbkd1aS5jbGFzc0xpc3QuYWRkKCdhZy1oaWRkZW4nKVxuICAgICAgICBvcGVyYXRvclBhbmVsR3VpLmNsYXNzTGlzdC5hZGQoJ2FnLWhpZGRlbicpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWNvbmRDb25kaXRpb25HdWkuY2xhc3NMaXN0LnJlbW92ZSgnYWctaGlkZGVuJylcbiAgICAgICAgb3BlcmF0b3JQYW5lbEd1aS5jbGFzc0xpc3QucmVtb3ZlKCdhZy1oaWRkZW4nKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubm90aWZ5KEpvaW5Db25kaXRpb25QYW5lbC5PTl9KT0lOX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSAgdGhlIG9wdGlvbiBzdGF0ZVxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9vblNlY29uZENvbmRpdGlvbkNoYW5nZWQoc3RhdGUpIHtcbiAgICB0aGlzLnN0YXRlLmNvbmRpdGlvbjIgPSBzdGF0ZVxuICAgIHRoaXMubm90aWZ5KEpvaW5Db25kaXRpb25QYW5lbC5PTl9KT0lOX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICB9XG59XG5cbi8qKlxuICogRGF0ZVRpbWUgRmlsdGVyXG4gKlxuICogIyMgT3B0aW9uc1xuICpcbiAqIHwgTmFtZSAgICAgICAgICAgICAgICAgIFx0fCBEZWZhdWx0ICAgICBcdHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0fFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cdHw6LS0tLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8ICoqZGF0ZVRpbWVFbmFibGVUaW1lKiogICB8IGZhbHNlICAgIHwgZW5hYmxlIC8gZGlzYWJsZSB0aW1lXG4gKiB8ICoqZGF0ZVRpbWVFbmFibGUyNEhSKiogICB8IGZhbHNlICAgIHwgZW5hYmxlIC8gZGlzYWJsZSB0aW1lIDI0IGZvcm1hdFxuICogfCAqKmRhdGVUaW1lRW5hYmxlU2Vjb25kcyoqICAgfCBmYWxzZSAgICB8IGVuYWJsZSAvIGRpc2FibGUgc2Vjb25kcyBtYW5hZ2VtZW50XG4gKiB8ICoqZGF0ZVRpbWVFbmFibGVDYWxlbmRhcioqICAgfCBmYWxzZSAgICB8IGVuYWJsZSAvIGRpc2FibGUgQ2FsZW5kYXIuXG4gKiB8ICoqZGF0ZVRpbWVNYXNrKiogICB8IGZhbHNlICAgIHwgVGhlIG1hc2sgdXNlZCB0byBmb3JtYXQgdGhlIHNlbGVjdGVkIGRhdGVcbiAqIHwgKipkYXRlVGltZU1heCoqICAgfCB1bmRlZmluZWQgICAgfCAgTWF4IGFsbG93ZWQgZGF0ZVxuICogfCAqKmRhdGVUaW1lTWluKiogICB8IHVuZGVmaW5lZCAgICB8ICBNaW4gYWxsb3dlZCBkYXRlXG4gKiB8ICoqZGF0ZVRpbWVGb3JtYXR0ZXIqKiAgIHwgdW5kZWZpbmVkICAgIHwgIEEgZnVuY3Rpb24gb3IgZXhwcmVzc2lvbiB0byBmb3JtYXQgdGhlIGRhdGUgKEBzZWUgc3VwcG9ydGVkIHBhcmFtKVxuICogfCAqKmRhdGVUaW1lTG9jYWxlKiogICB8IFN5c3RlbSBkZWZhdWx0ICAgIHwgIEEgbG9jYWxlIHRvIHVzZSBmb3IgZGF0ZSBmb3JtYXR0aW5nXG4gKiB8ICoqZGF0ZVRpbWVEZWZhdWx0SG91cioqICAgfCAxMiAgICB8ICBJbml0aWFsIHZhbHVlIG9mIHRoZSBob3VyIGVsZW1lbnQuXG4gKiB8ICoqZGF0ZVRpbWVEZWZhdWx0TWludXRlKiogICB8IDAgICAgfCAgSW5pdGlhbCB2YWx1ZSBvZiB0aGUgbWludXRlIGVsZW1lbnQuXG4gKiB8ICoqZGF0ZVRpbWVEaXNhYmxlTW9iaWxlKiogICB8IGZhbHNlICAgIHwgIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gKiB8ICoqZGF0ZVRpbWVFbmFibGVXZWVrTnVtYmVyKiogICB8IHRydWUgICAgfCAgRW5hYmxlcyBkaXNwbGF5IG9mIHdlZWsgbnVtYmVycyBpbiBjYWxlbmRhci5cbiAqIHwgKipmaWx0ZXJPcHRpb25zKiogICB8IEVxdWFscywgR3JlYXRlciBUaGFuLCBMZXNzIFRoYW4sIE5vdCBFcXVhbHMsIEluIFJhbmdlLiAgICB8ICBXaGF0IEZpbHRlciBPcHRpb25zIHRvIHByZXNlbnQgdG8gdGhlIHVzZXIuXG4gKiB8ICoqZGVmYXVsdE9wdGlvbioqICAgfCBFcXVhbHMgICAgfCAgVGhlIGRlZmF1bHQgRmlsdGVyIE9wdGlvbnMgdG8gYmUgc2VsZWN0ZWQuXG4gKiB8ICoqc3VwcHJlc3NBbmRPckNvbmRpdGlvbioqICAgfCBmYWxzZSAgICB8ICBJZiB0cnVlLCB0aGUgZmlsdGVyIHdpbGwgb25seSBvZmZlciBDb25kaXRpb24gMS5cbiAqIHwgKippblJhbmdlSW5jbHVzaXZlKiogICB8IGZhbHNlICAgIHwgIElmIHRydWUgdGhlbiBkb2luZyAnaW5SYW5nZScgZmlsdGVyIG9wdGlvbiB3aWxsIGluY2x1ZGUgdmFsdWVzIGVxdWFsIHRvIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSByYW5nZS5cbiAqIHwgKipjbGVhckJ1dHRvbioqICAgfCBmYWxzZSAgICB8ICBTZXQgdG8gdHJ1ZSB0byBoYXZlIHRoZSBmaWx0ZXIgdXNlIGEgQ2xlYXIgYnV0dG9uLiBUaGUgQ2xlYXIgYnV0dG9uIHdpbGwgY2xlYXIgdGhlIChmb3JtKSBkZXRhaWxzIG9mIHRoZSBmaWx0ZXIgd2l0aG91dCByZW1vdmluZyBhbnkgYWN0aXZlIGZpbHRlcnMgb24gdGhlIGNvbHVtbi5cbiAqIHwgKiphcHBseUJ1dHRvbioqICAgfCBmYWxzZSAgICB8ICBTZXQgdG8gdHJ1ZSB0byBoYXZlIHRoZSBmaWx0ZXIgdXNlIGFuIEFwcGx5IGJ1dHRvbi4gSWYgdGhlIEFwcGx5IGJ1dHRvbiBpcyBwcmVzZW50LCB0aGVuIHRoZSBmaWx0ZXIgaXMgb25seSBhcHBsaWVkIGFmdGVyIHRoZSB1c2VyIGhpdHMgdGhlIEFwcGx5IGJ1dHRvbi5cbiAqIHwgKipyZXNldEJ1dHRvbioqICAgfCBmYWxzZSAgICB8ICBTZXQgdG8gdHJ1ZSB0byBoYXZlIHRoZSBmaWx0ZXIgdXNlIGEgUmVzZXQgYnV0dG9uLiBUaGUgUmVzZXQgYnV0dG9uIHdpbGwgY2xlYXIgdGhlIGRldGFpbHMgb2YgdGhlIGZpbHRlciBhbmQgYW55IGFjdGl2ZSBmaWx0ZXJzIG9uIHRoYXQgY29sdW1uLlxuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIERhdGVUaW1lRmlsdGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEB0eXBlIHtKb2lufVxuICAgKi9cbiAgX0pvaW5Db25kaXRpb25QYW5lbCA9IG5ldyBKb2luQ29uZGl0aW9uUGFuZWwoKVxuXG4gIC8qKlxuICAgKiBKb2luIHBhbmVsIHN0YXRlXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBfc3RhdGUgPSB7fVxuXG4gIC8qKlxuICAgKiBDb21wb25lbnQgcGFyYW1zXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBfcGFyYW1zID0ge31cblxuICAvKipcbiAgICogQW4gb2JqZWN0IG9mIGFsbCB0aGUgcmVxdWlyZWQgb3B0aW9ucyBjYWNoZWQgZm9yIGRvZXNGaWx0ZXJQYXNzIG1ldGhvZFxuICAgKi9cbiAgX2RvZXNGaWx0ZXJQYXNzT3B0aW9ucyA9IG51bGxcblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBpbml0KHBhcmFtcykge1xuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHBhcmFtcy5hcGkuZ3JpZE9wdGlvbnNXcmFwcGVyLmdldExvY2FsZVRleHRGdW5jKClcbiAgICBjb25zdCBpc0NsZWFyRmlsdGVyID0gdGhpcy5nZXRPcHRpb24oJ2NsZWFyQnV0dG9uJywgcGFyYW1zLCBmYWxzZSlcbiAgICBjb25zdCBpc1Jlc2V0QnV0dG9uID0gdGhpcy5nZXRPcHRpb24oJ3Jlc2V0QnV0dG9uJywgcGFyYW1zLCBmYWxzZSlcbiAgICBjb25zdCBpc0FwcGx5QnV0dG9uID0gdGhpcy5nZXRPcHRpb24oJ2FwcGx5QnV0dG9uJywgcGFyYW1zLCBmYWxzZSlcblxuICAgIHRoaXMuX2d1aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG5cbiAgICB0aGlzLl9Kb2luQ29uZGl0aW9uUGFuZWwuaW5pdChwYXJhbXMpXG4gICAgdGhpcy5fSm9pbkNvbmRpdGlvblBhbmVsLm9uKFxuICAgICAgSm9pbkNvbmRpdGlvblBhbmVsLk9OX0pPSU5fQ09ORElUSU9OX0NIQU5HRUQsXG4gICAgICBzdGF0ZSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fX2Rpc2FibGVTdGF0ZUNoYW5nZUxpc3RlbmVyKSB7XG4gICAgICAgICAgdGhpcy5fb25Kb2luQ29uZGl0aW9uUGFuZWxTdGF0ZUNoYW5nZWQoc3RhdGUsIGlzQXBwbHlCdXR0b24pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApXG5cbiAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQodGhpcy5fSm9pbkNvbmRpdGlvblBhbmVsLmdldEd1aSgpKVxuXG4gICAgY29uc3QgYXBwbHlGaWx0ZXJQYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgYXBwbHlGaWx0ZXJQYW5lbC5jbGFzc05hbWUgPSBgYWctZmlsdGVyLWFwcGx5LXBhbmVsIGFnLWhpZGRlbmBcbiAgICBhcHBseUZpbHRlclBhbmVsLmlubmVySFRNTCA9IC8qIGh0bWwgKi8gYFxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsZWFyICR7IWlzQ2xlYXJGaWx0ZXIgJiZcbiAgICAgICAgJ2FnLWhpZGRlbid9XCIgdHlwZT1cImJ1dHRvblwiPiR7dHJhbnNsYXRlKFxuICAgICAgJ2NsZWFyRmlsdGVyJyxcbiAgICAgICdDbGVhciBGaWx0ZXInXG4gICAgKX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJyZXNldCAkeyFpc1Jlc2V0QnV0dG9uICYmXG4gICAgICAgICdhZy1oaWRkZW4nfVwiIHR5cGU9XCJidXR0b25cIj4ke3RyYW5zbGF0ZShcbiAgICAgICdyZXNldEZpbHRlcicsXG4gICAgICAnUmVzZXQgRmlsdGVyJ1xuICAgICl9PC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYXBwbHkgJHshaXNBcHBseUJ1dHRvbiAmJlxuICAgICAgICAnYWctaGlkZGVuJ31cIiB0eXBlPVwiYnV0dG9uXCI+JHt0cmFuc2xhdGUoXG4gICAgICAnYXBwbHlGaWx0ZXInLFxuICAgICAgJ0FwcGx5IEZpbHRlcidcbiAgICApfTwvYnV0dG9uPlxuICAgIGBcblxuICAgIGlmIChpc0NsZWFyRmlsdGVyIHx8IGlzUmVzZXRCdXR0b24gfHwgaXNBcHBseUJ1dHRvbikge1xuICAgICAgYXBwbHlGaWx0ZXJQYW5lbC5jbGFzc0xpc3QucmVtb3ZlKCdhZy1oaWRkZW4nKVxuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyUGFuZWwuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjbGljaycsXG4gICAgICB0aGlzLl9BcHBseUZpbHRlclBhbmVsQnV0dG9uQ2xpY2tcbiAgICApXG5cbiAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQoYXBwbHlGaWx0ZXJQYW5lbClcblxuICAgIHRoaXMuX3N0YXRlID0gdGhpcy5fSm9pbkNvbmRpdGlvblBhbmVsLnN0YXRlXG4gICAgdGhpcy5fcGFyYW1zID0gcGFyYW1zXG5cbiAgICB0aGlzLl9kb2VzRmlsdGVyUGFzc09wdGlvbnMgPSB7XG4gICAgICBlbmFibGVUaW1lOiB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVFbmFibGVUaW1lJywgdGhpcy5fcGFyYW1zLCB0cnVlKSxcbiAgICAgIGluUmFuZ2VJbmNsdXNpdmU6IHRoaXMuZ2V0T3B0aW9uKCdpblJhbmdlSW5jbHVzaXZlJywgdGhpcy5fcGFyYW1zLCBmYWxzZSksXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICB2YWx1ZUdldHRlcjogdGhpcy5fcGFyYW1zLmhhc093blByb3BlcnR5KCdmaWx0ZXJWYWx1ZUdldHRlcicpXG4gICAgICAgID8gdGhpcy5fcGFyYW1zLmZpbHRlclZhbHVlR2V0dGVyXG4gICAgICAgIDogdGhpcy5fcGFyYW1zLnZhbHVlR2V0dGVyLFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgQG92ZXJyaWRlXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5fSm9pbkNvbmRpdGlvblBhbmVsLmRlc3Ryb3koKVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgc2VsZWN0ZWQgZmlsdGVyIG1hdGNoZXMgdGhlIHBhc3NlZCBjZWxsIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtc1xuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIHdoZW4gcGFzcywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBkb2VzRmlsdGVyUGFzcyhwYXJhbXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2RvZXNGaWx0ZXJQYXNzT3B0aW9ucy52YWx1ZUdldHRlcihwYXJhbXMpXG4gICAgY29uc3QgeyBjb25kaXRpb24xLCBjb25kaXRpb24yLCBvcGVyYXRvciB9ID0gdGhpcy5fc3RhdGVcbiAgICBjb25zdCBkb2VzUGFzc0ZpcnN0Q29uZGl0aW9uID0gdGhpcy5fZG9lc1Bhc3NDb25kaXRpb24oY29uZGl0aW9uMSwgdmFsdWUpXG4gICAgY29uc3QgZG9lc1Bhc3NTZWNvbmRDb25kaXRpb24gPSB0aGlzLl9kb2VzUGFzc0NvbmRpdGlvbihjb25kaXRpb24yLCB2YWx1ZSlcblxuICAgIHJldHVybiBvcGVyYXRvciA9PT0gVE9LRU5TLlRPS0VOX09SXG4gICAgICA/IGRvZXNQYXNzRmlyc3RDb25kaXRpb24gfHwgZG9lc1Bhc3NTZWNvbmRDb25kaXRpb25cbiAgICAgIDogZG9lc1Bhc3NGaXJzdENvbmRpdGlvbiAmJiBkb2VzUGFzc1NlY29uZENvbmRpdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBhcHBseWluZyBhbnkgZmlsdGVyIG9uIHRoZSBjb2x1bW5cbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn1cbiAgICoqL1xuICBpc0ZpbHRlckFjdGl2ZSgpIHtcbiAgICBjb25zdCB7IGNvbmRpdGlvbjEgfSA9IHRoaXMuX3N0YXRlXG5cbiAgICBpZiAoY29uZGl0aW9uMSAmJiBjb25kaXRpb24xLmZpbHRlcikge1xuICAgICAgaWYgKGNvbmRpdGlvbjEuZmlsdGVyVG8gJiYgY29uZGl0aW9uMS50eXBlID09PSBUT0tFTlMuVE9LRU5fUkFOR0UpIHtcbiAgICAgICAgcmV0dXJuIGNvbmRpdGlvbjEuZmlsdGVyICE9PSBudWxsICYmIGNvbmRpdGlvbjEuZmlsdGVyVG8gIT09IG51bGxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbmRpdGlvbjEuZmlsdGVyICE9PSBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZmlsdGVyIHN0YXRlLiBJZiBmaWx0ZXIgaXMgbm90IGFjdGl2ZSwgdGhlbiBzaG91bGQgcmV0dXJuIG51bGwvdW5kZWZpbmVkLlxuICAgKiBUaGUgZ3JpZCBjYWxscyBnZXRNb2RlbCgpIG9uIGFsbCBhY3RpdmUgZmlsdGVycyB3aGVuIGdyaWRBcGkuZ2V0RmlsdGVyTW9kZWwoKSBpcyBjYWxsZWQuXG4gICAqXG4gICAqIEByZXR1cm4gT2JqZWN0IHwgbnVsbCB0aGUgZmlsdGVyIHN0YXRlXG4gICAqL1xuICBnZXRNb2RlbCgpIHtcbiAgICBjb25zdCBjbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5fc3RhdGUpKVxuICAgIDtbY2xvbmUuY29uZGl0aW9uMSwgY2xvbmUuY29uZGl0aW9uMl0uZm9yRWFjaCgoY29uZGl0aW9uLCBpKSA9PiB7XG4gICAgICBpZiAoY29uZGl0aW9uLmZpbHRlcikge1xuICAgICAgICBjb25kaXRpb24uZmlsdGVyID0gdGhpcy5fc3RhdGVbYGNvbmRpdGlvbiR7aSArIDF9YF0uZmlsdGVyLnRvSVNPU3RyaW5nKClcbiAgICAgIH1cbiAgICAgIGlmIChjb25kaXRpb24uZmlsdGVyVG8pIHtcbiAgICAgICAgY29uZGl0aW9uLmZpbHRlclRvID0gdGhpcy5fc3RhdGVbXG4gICAgICAgICAgYGNvbmRpdGlvbiR7aSArIDF9YFxuICAgICAgICBdLmZpbHRlclRvLnRvSVNPU3RyaW5nKClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIGNsb25lXG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgdGhlIGZpbHRlciBzdGF0ZS4gQ2FsbGVkIGJ5IHRoZSBncmlkIGFmdGVyIGdyaWRBcGkuc2V0RmlsdGVyTW9kZWwobW9kZWwpIGlzIGNhbGxlZC5cbiAgICogVGhlIGdyaWQgd2lsbCBwYXNzIHVuZGVmaW5lZC9udWxsIHRvIGNsZWFyIHRoZSBmaWx0ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVsbH0gbW9kZWxcbiAgICovXG4gIHNldE1vZGVsKG1vZGVsKSB7XG4gICAgdGhpcy5fX2Rpc2FibGVTdGF0ZUNoYW5nZUxpc3RlbmVyID0gdHJ1ZVxuICAgIHRoaXMuX0pvaW5Db25kaXRpb25QYW5lbC5zZXRTdGF0ZShtb2RlbClcbiAgICB0aGlzLl9fZGlzYWJsZVN0YXRlQ2hhbmdlTGlzdGVuZXIgPSBmYWxzZVxuXG4gICAgdGhpcy5fc3RhdGUgPSB0aGlzLl9Kb2luQ29uZGl0aW9uUGFuZWwuc3RhdGVcbiAgICA7W3RoaXMuX3N0YXRlLmNvbmRpdGlvbjEsIHRoaXMuX3N0YXRlLmNvbmRpdGlvbjJdLmZvckVhY2goY29uZGl0aW9uID0+IHtcbiAgICAgIGlmIChjb25kaXRpb24uZmlsdGVyKSB7XG4gICAgICAgIGNvbmRpdGlvbi5maWx0ZXIgPSBuZXcgRGF0ZShjb25kaXRpb24uZmlsdGVyKVxuICAgICAgfVxuICAgICAgaWYgKGNvbmRpdGlvbi5maWx0ZXJUbykge1xuICAgICAgICBjb25kaXRpb24uZmlsdGVyVG8gPSBuZXcgRGF0ZShjb25kaXRpb24uZmlsdGVyVG8pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZpbHRlciBtb2RlbCBhcyBwbGFpbiBzdHJpbmcgdG8gZGlzcGxheSBpbiB0aGUgZmxvYXRpbmcgZmlsdGVyIGlucHV0XG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0IHwgbnVsbH0gbW9kZWxcbiAgICovXG4gIGdldE1vZGVsQXNTdHJpbmcobW9kZWwpIHtcbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlVGltZU1hc2sgPSB0aGlzLmdldE9wdGlvbihcbiAgICAgICdkYXRlVGltZU1hc2snLFxuICAgICAgdGhpcy5fcGFyYW1zLFxuICAgICAgLy8gQHRvZG8gRmluZCBhIGJldHRlciB3YXkgZm9yIHRoaXNcbiAgICAgIHRoaXMuX0pvaW5Db25kaXRpb25QYW5lbC5fZmlyc3RDb25kaXRpb25QYW5lbC5fZmlsdGVyVGltZUlucHV0LnBpY2tlclxuICAgICAgICAuY29uZmlnWydkYXRlRm9ybWF0J11cbiAgICApXG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5nZXRPcHRpb24oXG4gICAgICAnZGF0ZVRpbWVMb2NhbGUnLFxuICAgICAgdGhpcy5fcGFyYW1zLFxuICAgICAgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZSB8fCAnZW4tVVMnXG4gICAgKVxuXG4gICAgY29uc3QgeyBjb25kaXRpb24xLCBjb25kaXRpb24yLCBvcGVyYXRvciB9ID0gSlNPTi5wYXJzZShcbiAgICAgIEpTT04uc3RyaW5naWZ5KG1vZGVsKVxuICAgIClcblxuICAgIDtbY29uZGl0aW9uMSwgY29uZGl0aW9uMl0uZm9yRWFjaChjb25kaXRpb24gPT4ge1xuICAgICAgaWYgKGNvbmRpdGlvbi5maWx0ZXIpIHtcbiAgICAgICAgY29uZGl0aW9uLmZpbHRlciA9IEJCai5NYXNrcy5EYXRlTWFzay5tYXNrKFxuICAgICAgICAgIGNvbmRpdGlvbi5maWx0ZXIsXG4gICAgICAgICAgZGF0ZVRpbWVNYXNrLFxuICAgICAgICAgIGxvY2FsZVxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChjb25kaXRpb24uZmlsdGVyVG8pIHtcbiAgICAgICAgY29uZGl0aW9uLmZpbHRlclRvID0gQkJqLk1hc2tzLkRhdGVNYXNrLm1hc2soXG4gICAgICAgICAgY29uZGl0aW9uLmZpbHRlclRvLFxuICAgICAgICAgIGRhdGVUaW1lTWFzayxcbiAgICAgICAgICBsb2NhbGVcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBjb25zdCBmaXJzdENvbmRpdGlvbkFzU3RyaW5nID0gYCR7Y29uZGl0aW9uMS5maWx0ZXIgfHwgJyd9ICR7XG4gICAgICBjb25kaXRpb24xLmZpbHRlclRvID8gJ+KGkiAnICsgY29uZGl0aW9uMS5maWx0ZXJUbyA6ICcnXG4gICAgfWBcbiAgICBjb25zdCBzZWNvbmRDb25kaXRpb25Bc1N0cmluZyA9IGAke2NvbmRpdGlvbjIuZmlsdGVyIHx8ICcnfSAke1xuICAgICAgY29uZGl0aW9uMi5maWx0ZXJUbyA/ICfihpIgJyArIGNvbmRpdGlvbjIuZmlsdGVyVG8gOiAnJ1xuICAgIH1gXG4gICAgY29uc3Qgb3BlcmF0b3JBc1N0cmluZyA9IGAke2NvbmRpdGlvbjIuZmlsdGVyICYmIG9wZXJhdG9yID8gb3BlcmF0b3IgOiAnJ31gXG5cbiAgICByZXR1cm4gYCR7Zmlyc3RDb25kaXRpb25Bc1N0cmluZ30gJHtvcGVyYXRvckFzU3RyaW5nfSAke3NlY29uZENvbmRpdGlvbkFzU3RyaW5nfWAudHJpbSgpXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhlIGdpdmVuIHZhbHVlIHBhc3NlcyB0aGUgZmlsdGVyIGRlZmluZWQgaW4gdGhlIHBhc3NlZCBDb25kaXRpb25QYW5lbCdzIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjb25kaXRpb24gY29uZGl0aW9uIHBhbmVsIHN0YXRlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZSBjZWxsIHZhbHVlXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgd2hlbiBwYXNzLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIF9kb2VzUGFzc0NvbmRpdGlvbihjb25kaXRpb24sIHZhbHVlKSB7XG4gICAgaWYgKCFjb25kaXRpb24uZmlsdGVyKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCB7IGZpbHRlciwgZmlsdGVyVG8sIHR5cGUgfSA9IGNvbmRpdGlvblxuICAgIGNvbnN0IHRpbWV6b25lID0gQkJqLk1hc2tzLlV0aWxzLkRhdGVzLmdldFRpbWV6b25lT3JPZmZzZXQoKVxuICAgIGNvbnN0IGluUmFuZ2VJbmNsdXNpdmUgPSB0aGlzLl9kb2VzRmlsdGVyUGFzc09wdGlvbnMuaW5SYW5nZUluY2x1c2l2ZVxuICAgIGNvbnN0IGVuYWJsZVRpbWUgPSB0aGlzLl9kb2VzRmlsdGVyUGFzc09wdGlvbnMuZW5hYmxlVGltZVxuICAgIGxldCBwYXNzZWQgPSBmYWxzZVxuXG4gICAgaWYgKEJCai5NYXNrcy5VdGlscy5EYXRlcy5JU19USU1FX1JFR0VYLnRlc3QodmFsdWUpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlID0gQkJqLk1hc2tzLlV0aWxzLkRhdGVzLmZpeFNob3J0SVNPKHZhbHVlKVxuICAgICAgO1tmaWx0ZXIsIGZpbHRlclRvXS5mb3JFYWNoKGRhdGUgPT4ge1xuICAgICAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKDE5NzApXG4gICAgICAgICAgZGF0ZS5zZXRNb250aCgwKVxuICAgICAgICAgIGRhdGUuc2V0RGF0ZSgxKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoQkJqLk1hc2tzLlV0aWxzLkRhdGVzLklTX0RBVEVfUkVHRVgudGVzdCh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gQkJqLk1hc2tzLlV0aWxzLkRhdGVzLmZpeFNob3J0SVNPKHZhbHVlKVxuICAgIH1cblxuICAgIC8vIGNvbnZlcnQgdGhlIGRhdGV0aW1lIGZyb20gdXRjIHRvIGxvY2FsZVxuICAgIHZhbHVlID0gdXRjVG9ab25lZFRpbWUodmFsdWUsIHRpbWV6b25lKVxuICAgIC8vIGZpcnN0RGF0ZSA9IGZpcnN0RGF0ZSA/IHpvbmVkVGltZVRvVXRjKGZpcnN0RGF0ZSAsIHRpbWV6b25lKSA6IGZpcnN0RGF0ZVxuICAgIC8vIHNlY29uZERhdGUgPSBzZWNvbmREYXRlID8gem9uZWRUaW1lVG9VdGMoc2Vjb25kRGF0ZSAsIHRpbWV6b25lKSA6IHNlY29uZERhdGVcblxuICAgIGlmICghZW5hYmxlVGltZSkge1xuICAgICAgLy8gcmVtb3ZlIHRoZSB0aW1lIHBvcnRpb24gZnJvbSB0aGUgZGF0ZVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLXNlbWlcbiAgICAgIDtbdmFsdWUsIGZpbHRlciwgZmlsdGVyVG9dLmZvckVhY2goZGF0ZSA9PiB7XG4gICAgICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIGRhdGUuc2V0SG91cnMoMClcbiAgICAgICAgICBkYXRlLnNldE1pbnV0ZXMoMClcbiAgICAgICAgICBkYXRlLnNldFNlY29uZHMoMClcbiAgICAgICAgICBkYXRlLnNldE1pbGxpc2Vjb25kcygwKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlID09PSBUT0tFTlMuVE9LRU5fRVFVQUwpIHtcbiAgICAgIHBhc3NlZCA9IGZpbHRlciA+IHZhbHVlID09PSBmYWxzZSAmJiBmaWx0ZXIgPCB2YWx1ZSA9PSBmYWxzZVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVE9LRU5TLlRPS0VOX05PVF9FUVVBTCkge1xuICAgICAgcGFzc2VkID0gIShmaWx0ZXIgPiB2YWx1ZSA9PT0gZmFsc2UgJiYgZmlsdGVyIDwgdmFsdWUgPT0gZmFsc2UpXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBUT0tFTlMuVE9LRU5fR1JFQVRFUikge1xuICAgICAgcGFzc2VkID0gZmlsdGVyIDwgdmFsdWVcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRPS0VOUy5UT0tFTl9MRVNTKSB7XG4gICAgICBwYXNzZWQgPSBmaWx0ZXIgPiB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVE9LRU5TLlRPS0VOX1JBTkdFICYmIGZpbHRlclRvKSB7XG4gICAgICBpZiAoaW5SYW5nZUluY2x1c2l2ZSkge1xuICAgICAgICBwYXNzZWQgPVxuICAgICAgICAgICgoZmlsdGVyIDwgdmFsdWUgfHxcbiAgICAgICAgICAgIChmaWx0ZXIgPiB2YWx1ZSA9PT0gZmFsc2UgJiYgZmlsdGVyIDwgdmFsdWUgPT0gZmFsc2UpKSAmJlxuICAgICAgICAgICAgZmlsdGVyVG8gPiB2YWx1ZSkgfHxcbiAgICAgICAgICAoZmlsdGVyVG8gPiB2YWx1ZSA9PT0gZmFsc2UgJiYgZmlsdGVyVG8gPCB2YWx1ZSA9PSBmYWxzZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhc3NlZCA9IGZpbHRlciA8IHZhbHVlICYmIGZpbHRlclRvID4gdmFsdWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGFzc2VkXG4gIH1cblxuICAvKipcbiAgICogTGlzdCB0byBjbGljayBidXR0b24gZXZlbnQgb24gdGhlIGZpbHRlciBwYW5lbCBhbmQgZXhlY3V0ZSB0aGVcbiAgICogcmlnaHQgYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGVcbiAgICovXG4gIEBhdXRvYmluZFxuICBfQXBwbHlGaWx0ZXJQYW5lbEJ1dHRvbkNsaWNrKGUpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldFxuXG4gICAgaWYgKHRhcmdldC5ub2RlTmFtZSA9PT0gJ0JVVFRPTicpIHtcbiAgICAgIGlmICh0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdyZXNldCcpKSB7XG4gICAgICAgIHRoaXMuX0pvaW5Db25kaXRpb25QYW5lbC5yZXNldCgpXG4gICAgICAgIHRoaXMuX3BhcmFtcy5maWx0ZXJDaGFuZ2VkQ2FsbGJhY2soKVxuICAgICAgfSBlbHNlIGlmICh0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbGVhcicpKSB7XG4gICAgICAgIHRoaXMuX0pvaW5Db25kaXRpb25QYW5lbC5yZXNldCgpXG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2FwcGx5JykpIHtcbiAgICAgICAgdGhpcy5fcGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgZmlsdGVyIHN0YXRlIGFuZCBBcHBseSB0aGUgZmlsdGVyIGRlcGVuZGluZyBvblxuICAgKiB3aGV0aGVyIHRoZSBgaXNBcHBseUJ1dHRvbkFjdGl2ZWAgaXMgdHJ1ZSBvciBmYWxzZVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gc3RhdGVcbiAgICogQHBhcmFtIHtCb29sZWFufSBpc0FwcGx5QnV0dG9uQWN0aXZlXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX29uSm9pbkNvbmRpdGlvblBhbmVsU3RhdGVDaGFuZ2VkKHN0YXRlLCBpc0FwcGx5QnV0dG9uQWN0aXZlKSB7XG4gICAgdGhpcy5fc3RhdGUgPSBzdGF0ZVxuICAgIGlmIChmYWxzZSA9PT0gaXNBcHBseUJ1dHRvbkFjdGl2ZSkge1xuICAgICAgdGhpcy5fcGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lRmlsdGVyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvRGF0ZVRpbWVGaWx0ZXIvRGF0ZVRpbWVGaWx0ZXIuanMiLCIvKipcbiAqIFJldHVybnMgdGhlIFt5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZHNdIHRva2VucyBvZiB0aGUgcHJvdmlkZWRcbiAqIGBkYXRlYCBhcyBpdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSBgdGltZVpvbmVgLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0elRva2VuaXplRGF0ZShkYXRlLCB0aW1lWm9uZSkge1xuICB2YXIgZHRmID0gZ2V0RGF0ZVRpbWVGb3JtYXQodGltZVpvbmUpXG4gIHJldHVybiBkdGYuZm9ybWF0VG9QYXJ0cyA/IHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkgOiBoYWNreU9mZnNldChkdGYsIGRhdGUpXG59XG5cbnZhciB0eXBlVG9Qb3MgPSB7XG4gIHllYXI6IDAsXG4gIG1vbnRoOiAxLFxuICBkYXk6IDIsXG4gIGhvdXI6IDMsXG4gIG1pbnV0ZTogNCxcbiAgc2Vjb25kOiA1XG59XG5cbmZ1bmN0aW9uIHBhcnRzT2Zmc2V0KGR0ZiwgZGF0ZSkge1xuICB2YXIgZm9ybWF0dGVkID0gZHRmLmZvcm1hdFRvUGFydHMoZGF0ZSlcbiAgdmFyIGZpbGxlZCA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBvcyA9IHR5cGVUb1Bvc1tmb3JtYXR0ZWRbaV0udHlwZV1cblxuICAgIGlmIChwb3MgPj0gMCkge1xuICAgICAgZmlsbGVkW3Bvc10gPSBwYXJzZUludChmb3JtYXR0ZWRbaV0udmFsdWUsIDEwKVxuICAgIH1cbiAgfVxuICByZXR1cm4gZmlsbGVkXG59XG5cbmZ1bmN0aW9uIGhhY2t5T2Zmc2V0KGR0ZiwgZGF0ZSkge1xuICB2YXIgZm9ybWF0dGVkID0gZHRmLmZvcm1hdChkYXRlKS5yZXBsYWNlKC9cXHUyMDBFL2csICcnKVxuICB2YXIgcGFyc2VkID0gLyhcXGQrKVxcLyhcXGQrKVxcLyhcXGQrKSw/IChcXGQrKTooXFxkKyk6KFxcZCspLy5leGVjKGZvcm1hdHRlZClcbiAgLy8gdmFyIFssIGZNb250aCwgZkRheSwgZlllYXIsIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXSA9IHBhcnNlZFxuICAvLyByZXR1cm4gW2ZZZWFyLCBmTW9udGgsIGZEYXksIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXVxuICByZXR1cm4gW3BhcnNlZFszXSwgcGFyc2VkWzFdLCBwYXJzZWRbMl0sIHBhcnNlZFs0XSwgcGFyc2VkWzVdLCBwYXJzZWRbNl1dXG59XG5cbi8vIEdldCBhIGNhY2hlZCBJbnRsLkRhdGVUaW1lRm9ybWF0IGluc3RhbmNlIGZvciB0aGUgSUFOQSBgdGltZVpvbmVgLiBUaGlzIGNhbiBiZSB1c2VkXG4vLyB0byBnZXQgZGV0ZXJtaW5pc3RpYyBsb2NhbCBkYXRlL3RpbWUgb3V0cHV0IGFjY29yZGluZyB0byB0aGUgYGVuLVVTYCBsb2NhbGUgd2hpY2hcbi8vIGNhbiBiZSB1c2VkIHRvIGV4dHJhY3QgbG9jYWwgdGltZSBwYXJ0cyBhcyBuZWNlc3NhcnkuXG52YXIgZHRmQ2FjaGUgPSB7fVxuZnVuY3Rpb24gZ2V0RGF0ZVRpbWVGb3JtYXQodGltZVpvbmUpIHtcbiAgaWYgKCFkdGZDYWNoZVt0aW1lWm9uZV0pIHtcbiAgICAvLyBOZXcgYnJvd3NlcnMgdXNlIGBob3VyQ3ljbGVgLCBJRSBhbmQgQ2hyb21lIDw3MyBkb2VzIG5vdCBzdXBwb3J0IGl0IGFuZCB1c2VzIGBob3VyMTJgXG4gICAgdmFyIHRlc3REYXRlRm9ybWF0dGVkID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJywge1xuICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgIHRpbWVab25lOiAnQW1lcmljYS9OZXdfWW9yaycsXG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgIHNlY29uZDogJzItZGlnaXQnXG4gICAgfSkuZm9ybWF0KG5ldyBEYXRlKCcyMDE0LTA2LTI1VDA0OjAwOjAwLjEyM1onKSlcbiAgICB2YXIgaG91ckN5Y2xlU3VwcG9ydGVkID1cbiAgICAgIHRlc3REYXRlRm9ybWF0dGVkID09PSAnMDYvMjUvMjAxNCwgMDA6MDA6MDAnIHx8XG4gICAgICB0ZXN0RGF0ZUZvcm1hdHRlZCA9PT0gJ+KAjjA24oCOL+KAjjI14oCOL+KAjjIwMTTigI4g4oCOMDDigI464oCOMDDigI464oCOMDAnXG5cbiAgICBkdGZDYWNoZVt0aW1lWm9uZV0gPSBob3VyQ3ljbGVTdXBwb3J0ZWRcbiAgICAgID8gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2VuLVVTJywge1xuICAgICAgICAgIGhvdXIxMjogZmFsc2UsXG4gICAgICAgICAgdGltZVpvbmU6IHRpbWVab25lLFxuICAgICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgICBtb250aDogJzItZGlnaXQnLFxuICAgICAgICAgIGRheTogJzItZGlnaXQnLFxuICAgICAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JyxcbiAgICAgICAgICBzZWNvbmQ6ICcyLWRpZ2l0J1xuICAgICAgICB9KVxuICAgICAgOiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XG4gICAgICAgICAgaG91ckN5Y2xlOiAnaDIzJyxcbiAgICAgICAgICB0aW1lWm9uZTogdGltZVpvbmUsXG4gICAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgICAgIHNlY29uZDogJzItZGlnaXQnXG4gICAgICAgIH0pXG4gIH1cbiAgcmV0dXJuIGR0ZkNhY2hlW3RpbWVab25lXVxufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMtdHovZXNtL19saWIvdHpUb2tlbml6ZURhdGUvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDlcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gJy4uL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzJztcbmltcG9ydCBhZGRNaWxsaXNlY29uZHMgZnJvbSAnLi4vYWRkTWlsbGlzZWNvbmRzL2luZGV4LmpzJztcbi8qKlxuICogQG5hbWUgc3ViTWlsbGlzZWNvbmRzXG4gKiBAY2F0ZWdvcnkgTWlsbGlzZWNvbmQgSGVscGVyc1xuICogQHN1bW1hcnkgU3VidHJhY3QgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0ge051bWJlcn0gYW1vdW50IC0gdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdG8gYmUgc3VidHJhY3RlZFxuICogQHJldHVybnMge0RhdGV9IHRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBtaWxsaXNlY29uZHMgc3VidHJhY3RlZFxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTdWJ0cmFjdCA3NTAgbWlsbGlzZWNvbmRzIGZyb20gMTAgSnVseSAyMDE0IDEyOjQ1OjMwLjAwMDpcbiAqIHZhciByZXN1bHQgPSBzdWJNaWxsaXNlY29uZHMobmV3IERhdGUoMjAxNCwgNiwgMTAsIDEyLCA0NSwgMzAsIDApLCA3NTApXG4gKiAvLz0+IFRodSBKdWwgMTAgMjAxNCAxMjo0NToyOS4yNTBcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdWJNaWxsaXNlY29uZHMoZGlydHlEYXRlLCBkaXJ0eUFtb3VudCkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCcyIGFyZ3VtZW50cyByZXF1aXJlZCwgYnV0IG9ubHkgJyArIGFyZ3VtZW50cy5sZW5ndGggKyAnIHByZXNlbnQnKTtcbiAgfVxuXG4gIHZhciBhbW91bnQgPSB0b0ludGVnZXIoZGlydHlBbW91bnQpO1xuICByZXR1cm4gYWRkTWlsbGlzZWNvbmRzKGRpcnR5RGF0ZSwgLWFtb3VudCk7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZXNtL3N1Yk1pbGxpc2Vjb25kcy9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gJy4uL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzJztcbmltcG9ydCB0b0RhdGUgZnJvbSAnLi4vdG9EYXRlL2luZGV4LmpzJztcbi8qKlxuICogQG5hbWUgYWRkTWlsbGlzZWNvbmRzXG4gKiBAY2F0ZWdvcnkgTWlsbGlzZWNvbmQgSGVscGVyc1xuICogQHN1bW1hcnkgQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gdGhlIGdpdmVuIGRhdGUuXG4gKlxuICogIyMjIHYyLjAuMCBicmVha2luZyBjaGFuZ2VzOlxuICpcbiAqIC0gW0NoYW5nZXMgdGhhdCBhcmUgY29tbW9uIGZvciB0aGUgd2hvbGUgbGlicmFyeV0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvbWFzdGVyL2RvY3MvdXBncmFkZUd1aWRlLm1kI0NvbW1vbi1DaGFuZ2VzKS5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBkYXRlIC0gdGhlIGRhdGUgdG8gYmUgY2hhbmdlZFxuICogQHBhcmFtIHtOdW1iZXJ9IGFtb3VudCAtIHRoZSBhbW91bnQgb2YgbWlsbGlzZWNvbmRzIHRvIGJlIGFkZGVkXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbGxpc2Vjb25kcyBhZGRlZFxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgNzUwIG1pbGxpc2Vjb25kcyB0byAxMCBKdWx5IDIwMTQgMTI6NDU6MzAuMDAwOlxuICogdmFyIHJlc3VsdCA9IGFkZE1pbGxpc2Vjb25kcyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMTIsIDQ1LCAzMCwgMCksIDc1MClcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDEyOjQ1OjMwLjc1MFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZE1pbGxpc2Vjb25kcyhkaXJ0eURhdGUsIGRpcnR5QW1vdW50KSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzIgYXJndW1lbnRzIHJlcXVpcmVkLCBidXQgb25seSAnICsgYXJndW1lbnRzLmxlbmd0aCArICcgcHJlc2VudCcpO1xuICB9XG5cbiAgdmFyIHRpbWVzdGFtcCA9IHRvRGF0ZShkaXJ0eURhdGUpLmdldFRpbWUoKTtcbiAgdmFyIGFtb3VudCA9IHRvSW50ZWdlcihkaXJ0eUFtb3VudCk7XG4gIHJldHVybiBuZXcgRGF0ZSh0aW1lc3RhbXAgKyBhbW91bnQpO1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VzbS9hZGRNaWxsaXNlY29uZHMvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIiwiLyoqXG4gKiBAbmFtZSB0b0RhdGVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29udmVydCB0aGUgZ2l2ZW4gYXJndW1lbnQgdG8gYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgdGhlIGdpdmVuIGFyZ3VtZW50IHRvIGFuIGluc3RhbmNlIG9mIERhdGUuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIGFuIGluc3RhbmNlIG9mIERhdGUsIHRoZSBmdW5jdGlvbiByZXR1cm5zIGl0cyBjbG9uZS5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgYSBudW1iZXIsIGl0IGlzIHRyZWF0ZWQgYXMgYSB0aW1lc3RhbXAuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIG5vbmUgb2YgdGhlIGFib3ZlLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBJbnZhbGlkIERhdGUuXG4gKlxuICogKipOb3RlKio6ICphbGwqIERhdGUgYXJndW1lbnRzIHBhc3NlZCB0byBhbnkgKmRhdGUtZm5zKiBmdW5jdGlvbiBpcyBwcm9jZXNzZWQgYnkgYHRvRGF0ZWAuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gYXJndW1lbnQgLSB0aGUgdmFsdWUgdG8gY29udmVydFxuICogQHJldHVybnMge0RhdGV9IHRoZSBwYXJzZWQgZGF0ZSBpbiB0aGUgbG9jYWwgdGltZSB6b25lXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDEgYXJndW1lbnQgcmVxdWlyZWRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ2xvbmUgdGhlIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUobmV3IERhdGUoMjAxNCwgMSwgMTEsIDExLCAzMCwgMzApKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCB0aGUgdGltZXN0YW1wIHRvIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUoMTM5MjA5ODQzMDAwMClcbiAqIC8vPT4gVHVlIEZlYiAxMSAyMDE0IDExOjMwOjMwXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRvRGF0ZShhcmd1bWVudCkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDEpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCcxIGFyZ3VtZW50IHJlcXVpcmVkLCBidXQgb25seSAnICsgYXJndW1lbnRzLmxlbmd0aCArICcgcHJlc2VudCcpO1xuICB9XG5cbiAgdmFyIGFyZ1N0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmd1bWVudCk7IC8vIENsb25lIHRoZSBkYXRlXG5cbiAgaWYgKGFyZ3VtZW50IGluc3RhbmNlb2YgRGF0ZSB8fCB0eXBlb2YgYXJndW1lbnQgPT09ICdvYmplY3QnICYmIGFyZ1N0ciA9PT0gJ1tvYmplY3QgRGF0ZV0nKSB7XG4gICAgLy8gUHJldmVudCB0aGUgZGF0ZSB0byBsb3NlIHRoZSBtaWxsaXNlY29uZHMgd2hlbiBwYXNzZWQgdG8gbmV3IERhdGUoKSBpbiBJRTEwXG4gICAgcmV0dXJuIG5ldyBEYXRlKGFyZ3VtZW50LmdldFRpbWUoKSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSAnbnVtYmVyJyB8fCBhcmdTdHIgPT09ICdbb2JqZWN0IE51bWJlcl0nKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGFyZ3VtZW50KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoKHR5cGVvZiBhcmd1bWVudCA9PT0gJ3N0cmluZycgfHwgYXJnU3RyID09PSAnW29iamVjdCBTdHJpbmddJykgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKFwiU3RhcnRpbmcgd2l0aCB2Mi4wLjAtYmV0YS4xIGRhdGUtZm5zIGRvZXNuJ3QgYWNjZXB0IHN0cmluZ3MgYXMgYXJndW1lbnRzLiBQbGVhc2UgdXNlIGBwYXJzZUlTT2AgdG8gcGFyc2Ugc3RyaW5ncy4gU2VlOiBodHRwczovL2dpdC5pby9manVsZVwiKTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcblxuICAgICAgY29uc29sZS53YXJuKG5ldyBFcnJvcigpLnN0YWNrKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKTtcbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VzbS90b0RhdGUvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDEyXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIiwiaW1wb3J0IHRvSW50ZWdlciBmcm9tICdkYXRlLWZucy9lc20vX2xpYi90b0ludGVnZXIvaW5kZXguanMnXG5pbXBvcnQgZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyBmcm9tICdkYXRlLWZucy9lc20vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzL2luZGV4LmpzJ1xuaW1wb3J0IHR6UGFyc2VUaW1lem9uZSBmcm9tICcuLi9fbGliL3R6UGFyc2VUaW1lem9uZSdcblxudmFyIE1JTExJU0VDT05EU19JTl9IT1VSID0gMzYwMDAwMFxudmFyIE1JTExJU0VDT05EU19JTl9NSU5VVEUgPSA2MDAwMFxudmFyIERFRkFVTFRfQURESVRJT05BTF9ESUdJVFMgPSAyXG5cbnZhciBwYXR0ZXJucyA9IHtcbiAgZGF0ZVRpbWVEZWxpbWV0ZXI6IC9bVCBdLyxcbiAgcGxhaW5UaW1lOiAvOi8sXG4gIHRpbWVab25lRGVsaW1ldGVyOiAvW1ogXS9pLFxuXG4gIC8vIHllYXIgdG9rZW5zXG4gIFlZOiAvXihcXGR7Mn0pJC8sXG4gIFlZWTogW1xuICAgIC9eKFsrLV1cXGR7Mn0pJC8sIC8vIDAgYWRkaXRpb25hbCBkaWdpdHNcbiAgICAvXihbKy1dXFxkezN9KSQvLCAvLyAxIGFkZGl0aW9uYWwgZGlnaXRcbiAgICAvXihbKy1dXFxkezR9KSQvIC8vIDIgYWRkaXRpb25hbCBkaWdpdHNcbiAgXSxcbiAgWVlZWTogL14oXFxkezR9KS8sXG4gIFlZWVlZOiBbXG4gICAgL14oWystXVxcZHs0fSkvLCAvLyAwIGFkZGl0aW9uYWwgZGlnaXRzXG4gICAgL14oWystXVxcZHs1fSkvLCAvLyAxIGFkZGl0aW9uYWwgZGlnaXRcbiAgICAvXihbKy1dXFxkezZ9KS8gLy8gMiBhZGRpdGlvbmFsIGRpZ2l0c1xuICBdLFxuXG4gIC8vIGRhdGUgdG9rZW5zXG4gIE1NOiAvXi0oXFxkezJ9KSQvLFxuICBEREQ6IC9eLT8oXFxkezN9KSQvLFxuICBNTUREOiAvXi0/KFxcZHsyfSktPyhcXGR7Mn0pJC8sXG4gIFd3dzogL14tP1coXFxkezJ9KSQvLFxuICBXd3dEOiAvXi0/VyhcXGR7Mn0pLT8oXFxkezF9KSQvLFxuXG4gIEhIOiAvXihcXGR7Mn0oWy4sXVxcZCopPykkLyxcbiAgSEhNTTogL14oXFxkezJ9KTo/KFxcZHsyfShbLixdXFxkKik/KSQvLFxuICBISE1NU1M6IC9eKFxcZHsyfSk6PyhcXGR7Mn0pOj8oXFxkezJ9KFsuLF1cXGQqKT8pJC8sXG5cbiAgLy8gdGltZXpvbmUgdG9rZW5zICh0byBpZGVudGlmeSB0aGUgcHJlc2VuY2Ugb2YgYSB0eilcbiAgdGltZXpvbmU6IC8oW1orLV0uKnwgVVRDfCg/OlthLXpBLVpdK1xcL1thLXpBLVpfXSsoPzpcXC9bYS16QS1aX10rKT8pKSQvXG59XG5cbi8qKlxuICogQG5hbWUgdG9EYXRlXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgdGhlIGdpdmVuIGFyZ3VtZW50IHRvIGFuIGluc3RhbmNlIG9mIERhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IHRoZSBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnN0YW5jZSBvZiBEYXRlLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBhbiBpbnN0YW5jZSBvZiBEYXRlLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBpdHMgY2xvbmUuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIGEgbnVtYmVyLCBpdCBpcyB0cmVhdGVkIGFzIGEgdGltZXN0YW1wLlxuICpcbiAqIElmIGFuIGFyZ3VtZW50IGlzIGEgc3RyaW5nLCB0aGUgZnVuY3Rpb24gdHJpZXMgdG8gcGFyc2UgaXQuXG4gKiBGdW5jdGlvbiBhY2NlcHRzIGNvbXBsZXRlIElTTyA4NjAxIGZvcm1hdHMgYXMgd2VsbCBhcyBwYXJ0aWFsIGltcGxlbWVudGF0aW9ucy5cbiAqIElTTyA4NjAxOiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT184NjAxXG4gKiBJZiB0aGUgZnVuY3Rpb24gY2Fubm90IHBhcnNlIHRoZSBzdHJpbmcgb3IgdGhlIHZhbHVlcyBhcmUgaW52YWxpZCwgaXQgcmV0dXJucyBJbnZhbGlkIERhdGUuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIG5vbmUgb2YgdGhlIGFib3ZlLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBJbnZhbGlkIERhdGUuXG4gKlxuICogKipOb3RlKio6ICphbGwqIERhdGUgYXJndW1lbnRzIHBhc3NlZCB0byBhbnkgKmRhdGUtZm5zKiBmdW5jdGlvbiBpcyBwcm9jZXNzZWQgYnkgYHRvRGF0ZWAuXG4gKiBBbGwgKmRhdGUtZm5zKiBmdW5jdGlvbnMgd2lsbCB0aHJvdyBgUmFuZ2VFcnJvcmAgaWYgYG9wdGlvbnMuYWRkaXRpb25hbERpZ2l0c2AgaXMgbm90IDAsIDEsIDIgb3IgdW5kZWZpbmVkLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxTdHJpbmd8TnVtYmVyfSBhcmd1bWVudCAtIHRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gKiBAcGFyYW0ge09wdGlvbnNXaXRoVFp9IFtvcHRpb25zXSAtIHRoZSBvYmplY3Qgd2l0aCBvcHRpb25zLiBTZWUgW09wdGlvbnNde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvT3B0aW9uc31cbiAqIEBwYXJhbSB7MHwxfDJ9IFtvcHRpb25zLmFkZGl0aW9uYWxEaWdpdHM9Ml0gLSB0aGUgYWRkaXRpb25hbCBudW1iZXIgb2YgZGlnaXRzIGluIHRoZSBleHRlbmRlZCB5ZWFyIGZvcm1hdFxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLnRpbWVab25lPScnXSAtIHVzZWQgdG8gc3BlY2lmeSB0aGUgSUFOQSB0aW1lIHpvbmUgb2Zmc2V0IG9mIGEgZGF0ZSBTdHJpbmcuXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gYG9wdGlvbnMuYWRkaXRpb25hbERpZ2l0c2AgbXVzdCBiZSAwLCAxIG9yIDJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCBzdHJpbmcgJzIwMTQtMDItMTFUMTE6MzA6MzAnIHRvIGRhdGU6XG4gKiB2YXIgcmVzdWx0ID0gdG9EYXRlKCcyMDE0LTAyLTExVDExOjMwOjMwJylcbiAqIC8vPT4gVHVlIEZlYiAxMSAyMDE0IDExOjMwOjMwXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbnZlcnQgc3RyaW5nICcrMDIwMTQxMDEnIHRvIGRhdGUsXG4gKiAvLyBpZiB0aGUgYWRkaXRpb25hbCBudW1iZXIgb2YgZGlnaXRzIGluIHRoZSBleHRlbmRlZCB5ZWFyIGZvcm1hdCBpcyAxOlxuICogdmFyIHJlc3VsdCA9IHRvRGF0ZSgnKzAyMDE0MTAxJywge2FkZGl0aW9uYWxEaWdpdHM6IDF9KVxuICogLy89PiBGcmkgQXByIDExIDIwMTQgMDA6MDA6MDBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9EYXRlKGFyZ3VtZW50LCBkaXJ0eU9wdGlvbnMpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAxKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICcxIGFyZ3VtZW50IHJlcXVpcmVkLCBidXQgb25seSAnICsgYXJndW1lbnRzLmxlbmd0aCArICcgcHJlc2VudCdcbiAgICApXG4gIH1cblxuICBpZiAoYXJndW1lbnQgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKVxuICB9XG5cbiAgdmFyIG9wdGlvbnMgPSBkaXJ0eU9wdGlvbnMgfHwge31cblxuICB2YXIgYWRkaXRpb25hbERpZ2l0cyA9XG4gICAgb3B0aW9ucy5hZGRpdGlvbmFsRGlnaXRzID09IG51bGxcbiAgICAgID8gREVGQVVMVF9BRERJVElPTkFMX0RJR0lUU1xuICAgICAgOiB0b0ludGVnZXIob3B0aW9ucy5hZGRpdGlvbmFsRGlnaXRzKVxuICBpZiAoXG4gICAgYWRkaXRpb25hbERpZ2l0cyAhPT0gMiAmJlxuICAgIGFkZGl0aW9uYWxEaWdpdHMgIT09IDEgJiZcbiAgICBhZGRpdGlvbmFsRGlnaXRzICE9PSAwXG4gICkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdhZGRpdGlvbmFsRGlnaXRzIG11c3QgYmUgMCwgMSBvciAyJylcbiAgfVxuXG4gIC8vIENsb25lIHRoZSBkYXRlXG4gIGlmIChcbiAgICBhcmd1bWVudCBpbnN0YW5jZW9mIERhdGUgfHxcbiAgICAodHlwZW9mIGFyZ3VtZW50ID09PSAnb2JqZWN0JyAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KSA9PT0gJ1tvYmplY3QgRGF0ZV0nKVxuICApIHtcbiAgICAvLyBQcmV2ZW50IHRoZSBkYXRlIHRvIGxvc2UgdGhlIG1pbGxpc2Vjb25kcyB3aGVuIHBhc3NlZCB0byBuZXcgRGF0ZSgpIGluIElFMTBcbiAgICByZXR1cm4gbmV3IERhdGUoYXJndW1lbnQuZ2V0VGltZSgpKVxuICB9IGVsc2UgaWYgKFxuICAgIHR5cGVvZiBhcmd1bWVudCA9PT0gJ251bWJlcicgfHxcbiAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJndW1lbnQpID09PSAnW29iamVjdCBOdW1iZXJdJ1xuICApIHtcbiAgICByZXR1cm4gbmV3IERhdGUoYXJndW1lbnQpXG4gIH0gZWxzZSBpZiAoXG4gICAgIShcbiAgICAgIHR5cGVvZiBhcmd1bWVudCA9PT0gJ3N0cmluZycgfHxcbiAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmd1bWVudCkgPT09ICdbb2JqZWN0IFN0cmluZ10nXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKVxuICB9XG5cbiAgdmFyIGRhdGVTdHJpbmdzID0gc3BsaXREYXRlU3RyaW5nKGFyZ3VtZW50KVxuXG4gIHZhciBwYXJzZVllYXJSZXN1bHQgPSBwYXJzZVllYXIoZGF0ZVN0cmluZ3MuZGF0ZSwgYWRkaXRpb25hbERpZ2l0cylcbiAgdmFyIHllYXIgPSBwYXJzZVllYXJSZXN1bHQueWVhclxuICB2YXIgcmVzdERhdGVTdHJpbmcgPSBwYXJzZVllYXJSZXN1bHQucmVzdERhdGVTdHJpbmdcblxuICB2YXIgZGF0ZSA9IHBhcnNlRGF0ZShyZXN0RGF0ZVN0cmluZywgeWVhcilcblxuICBpZiAoaXNOYU4oZGF0ZSkpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoTmFOKVxuICB9XG5cbiAgaWYgKGRhdGUpIHtcbiAgICB2YXIgdGltZXN0YW1wID0gZGF0ZS5nZXRUaW1lKClcbiAgICB2YXIgdGltZSA9IDBcbiAgICB2YXIgb2Zmc2V0XG5cbiAgICBpZiAoZGF0ZVN0cmluZ3MudGltZSkge1xuICAgICAgdGltZSA9IHBhcnNlVGltZShkYXRlU3RyaW5ncy50aW1lKVxuXG4gICAgICBpZiAoaXNOYU4odGltZSkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGF0ZVN0cmluZ3MudGltZXpvbmUgfHwgb3B0aW9ucy50aW1lWm9uZSkge1xuICAgICAgb2Zmc2V0ID0gdHpQYXJzZVRpbWV6b25lKFxuICAgICAgICBkYXRlU3RyaW5ncy50aW1lem9uZSB8fCBvcHRpb25zLnRpbWVab25lLFxuICAgICAgICBuZXcgRGF0ZSh0aW1lc3RhbXAgKyB0aW1lKVxuICAgICAgKVxuICAgICAgaWYgKGlzTmFOKG9mZnNldCkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTilcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZ2V0IG9mZnNldCBhY2N1cmF0ZSB0byBob3VyIGluIHRpbWV6b25lcyB0aGF0IGNoYW5nZSBvZmZzZXRcbiAgICAgIG9mZnNldCA9IGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMobmV3IERhdGUodGltZXN0YW1wICsgdGltZSkpXG4gICAgICBvZmZzZXQgPSBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKFxuICAgICAgICBuZXcgRGF0ZSh0aW1lc3RhbXAgKyB0aW1lICsgb2Zmc2V0KVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lc3RhbXAgKyB0aW1lICsgb2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pXG4gIH1cbn1cblxuZnVuY3Rpb24gc3BsaXREYXRlU3RyaW5nKGRhdGVTdHJpbmcpIHtcbiAgdmFyIGRhdGVTdHJpbmdzID0ge31cbiAgdmFyIGFycmF5ID0gZGF0ZVN0cmluZy5zcGxpdChwYXR0ZXJucy5kYXRlVGltZURlbGltZXRlcilcbiAgdmFyIHRpbWVTdHJpbmdcblxuICBpZiAocGF0dGVybnMucGxhaW5UaW1lLnRlc3QoYXJyYXlbMF0pKSB7XG4gICAgZGF0ZVN0cmluZ3MuZGF0ZSA9IG51bGxcbiAgICB0aW1lU3RyaW5nID0gYXJyYXlbMF1cbiAgfSBlbHNlIHtcbiAgICBkYXRlU3RyaW5ncy5kYXRlID0gYXJyYXlbMF1cbiAgICB0aW1lU3RyaW5nID0gYXJyYXlbMV1cbiAgICBkYXRlU3RyaW5ncy50aW1lem9uZSA9IGFycmF5WzJdXG4gICAgaWYgKHBhdHRlcm5zLnRpbWVab25lRGVsaW1ldGVyLnRlc3QoZGF0ZVN0cmluZ3MuZGF0ZSkpIHtcbiAgICAgIGRhdGVTdHJpbmdzLmRhdGUgPSBkYXRlU3RyaW5nLnNwbGl0KHBhdHRlcm5zLnRpbWVab25lRGVsaW1ldGVyKVswXVxuICAgICAgdGltZVN0cmluZyA9IGRhdGVTdHJpbmcuc3Vic3RyKGRhdGVTdHJpbmdzLmRhdGUubGVuZ3RoLCBkYXRlU3RyaW5nLmxlbmd0aClcbiAgICB9XG4gIH1cblxuICBpZiAodGltZVN0cmluZykge1xuICAgIHZhciB0b2tlbiA9IHBhdHRlcm5zLnRpbWV6b25lLmV4ZWModGltZVN0cmluZylcbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIGRhdGVTdHJpbmdzLnRpbWUgPSB0aW1lU3RyaW5nLnJlcGxhY2UodG9rZW5bMV0sICcnKVxuICAgICAgZGF0ZVN0cmluZ3MudGltZXpvbmUgPSB0b2tlblsxXVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlU3RyaW5ncy50aW1lID0gdGltZVN0cmluZ1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkYXRlU3RyaW5nc1xufVxuXG5mdW5jdGlvbiBwYXJzZVllYXIoZGF0ZVN0cmluZywgYWRkaXRpb25hbERpZ2l0cykge1xuICB2YXIgcGF0dGVybllZWSA9IHBhdHRlcm5zLllZWVthZGRpdGlvbmFsRGlnaXRzXVxuICB2YXIgcGF0dGVybllZWVlZID0gcGF0dGVybnMuWVlZWVlbYWRkaXRpb25hbERpZ2l0c11cblxuICB2YXIgdG9rZW5cblxuICAvLyBZWVlZIG9yIMKxWVlZWVlcbiAgdG9rZW4gPSBwYXR0ZXJucy5ZWVlZLmV4ZWMoZGF0ZVN0cmluZykgfHwgcGF0dGVybllZWVlZLmV4ZWMoZGF0ZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgdmFyIHllYXJTdHJpbmcgPSB0b2tlblsxXVxuICAgIHJldHVybiB7XG4gICAgICB5ZWFyOiBwYXJzZUludCh5ZWFyU3RyaW5nLCAxMCksXG4gICAgICByZXN0RGF0ZVN0cmluZzogZGF0ZVN0cmluZy5zbGljZSh5ZWFyU3RyaW5nLmxlbmd0aClcbiAgICB9XG4gIH1cblxuICAvLyBZWSBvciDCsVlZWVxuICB0b2tlbiA9IHBhdHRlcm5zLllZLmV4ZWMoZGF0ZVN0cmluZykgfHwgcGF0dGVybllZWS5leGVjKGRhdGVTdHJpbmcpXG4gIGlmICh0b2tlbikge1xuICAgIHZhciBjZW50dXJ5U3RyaW5nID0gdG9rZW5bMV1cbiAgICByZXR1cm4ge1xuICAgICAgeWVhcjogcGFyc2VJbnQoY2VudHVyeVN0cmluZywgMTApICogMTAwLFxuICAgICAgcmVzdERhdGVTdHJpbmc6IGRhdGVTdHJpbmcuc2xpY2UoY2VudHVyeVN0cmluZy5sZW5ndGgpXG4gICAgfVxuICB9XG5cbiAgLy8gSW52YWxpZCBJU08tZm9ybWF0dGVkIHllYXJcbiAgcmV0dXJuIHtcbiAgICB5ZWFyOiBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VEYXRlKGRhdGVTdHJpbmcsIHllYXIpIHtcbiAgLy8gSW52YWxpZCBJU08tZm9ybWF0dGVkIHllYXJcbiAgaWYgKHllYXIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgdmFyIHRva2VuXG4gIHZhciBkYXRlXG4gIHZhciBtb250aFxuICB2YXIgd2Vla1xuXG4gIC8vIFlZWVlcbiAgaWYgKGRhdGVTdHJpbmcubGVuZ3RoID09PSAwKSB7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKDApXG4gICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5ZWFyKVxuICAgIHJldHVybiBkYXRlXG4gIH1cblxuICAvLyBZWVlZLU1NXG4gIHRva2VuID0gcGF0dGVybnMuTU0uZXhlYyhkYXRlU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICBkYXRlID0gbmV3IERhdGUoMClcbiAgICBtb250aCA9IHBhcnNlSW50KHRva2VuWzFdLCAxMCkgLSAxXG5cbiAgICBpZiAoIXZhbGlkYXRlRGF0ZSh5ZWFyLCBtb250aCkpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShOYU4pXG4gICAgfVxuXG4gICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5ZWFyLCBtb250aClcbiAgICByZXR1cm4gZGF0ZVxuICB9XG5cbiAgLy8gWVlZWS1EREQgb3IgWVlZWURERFxuICB0b2tlbiA9IHBhdHRlcm5zLkRERC5leGVjKGRhdGVTdHJpbmcpXG4gIGlmICh0b2tlbikge1xuICAgIGRhdGUgPSBuZXcgRGF0ZSgwKVxuICAgIHZhciBkYXlPZlllYXIgPSBwYXJzZUludCh0b2tlblsxXSwgMTApXG5cbiAgICBpZiAoIXZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSh5ZWFyLCBkYXlPZlllYXIpKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTmFOKVxuICAgIH1cblxuICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoeWVhciwgMCwgZGF5T2ZZZWFyKVxuICAgIHJldHVybiBkYXRlXG4gIH1cblxuICAvLyB5eXl5LU1NLWRkIG9yIFlZWVlNTUREXG4gIHRva2VuID0gcGF0dGVybnMuTU1ERC5leGVjKGRhdGVTdHJpbmcpXG4gIGlmICh0b2tlbikge1xuICAgIGRhdGUgPSBuZXcgRGF0ZSgwKVxuICAgIG1vbnRoID0gcGFyc2VJbnQodG9rZW5bMV0sIDEwKSAtIDFcbiAgICB2YXIgZGF5ID0gcGFyc2VJbnQodG9rZW5bMl0sIDEwKVxuXG4gICAgaWYgKCF2YWxpZGF0ZURhdGUoeWVhciwgbW9udGgsIGRheSkpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShOYU4pXG4gICAgfVxuXG4gICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5ZWFyLCBtb250aCwgZGF5KVxuICAgIHJldHVybiBkYXRlXG4gIH1cblxuICAvLyBZWVlZLVd3dyBvciBZWVlZV3d3XG4gIHRva2VuID0gcGF0dGVybnMuV3d3LmV4ZWMoZGF0ZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgd2VlayA9IHBhcnNlSW50KHRva2VuWzFdLCAxMCkgLSAxXG5cbiAgICBpZiAoIXZhbGlkYXRlV2Vla0RhdGUoeWVhciwgd2VlaykpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShOYU4pXG4gICAgfVxuXG4gICAgcmV0dXJuIGRheU9mSVNPV2Vla1llYXIoeWVhciwgd2VlaylcbiAgfVxuXG4gIC8vIFlZWVktV3d3LUQgb3IgWVlZWVd3d0RcbiAgdG9rZW4gPSBwYXR0ZXJucy5Xd3dELmV4ZWMoZGF0ZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgd2VlayA9IHBhcnNlSW50KHRva2VuWzFdLCAxMCkgLSAxXG4gICAgdmFyIGRheU9mV2VlayA9IHBhcnNlSW50KHRva2VuWzJdLCAxMCkgLSAxXG5cbiAgICBpZiAoIXZhbGlkYXRlV2Vla0RhdGUoeWVhciwgd2VlaywgZGF5T2ZXZWVrKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTilcbiAgICB9XG5cbiAgICByZXR1cm4gZGF5T2ZJU09XZWVrWWVhcih5ZWFyLCB3ZWVrLCBkYXlPZldlZWspXG4gIH1cblxuICAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgZGF0ZVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBwYXJzZVRpbWUodGltZVN0cmluZykge1xuICB2YXIgdG9rZW5cbiAgdmFyIGhvdXJzXG4gIHZhciBtaW51dGVzXG5cbiAgLy8gaGhcbiAgdG9rZW4gPSBwYXR0ZXJucy5ISC5leGVjKHRpbWVTdHJpbmcpXG4gIGlmICh0b2tlbikge1xuICAgIGhvdXJzID0gcGFyc2VGbG9hdCh0b2tlblsxXS5yZXBsYWNlKCcsJywgJy4nKSlcblxuICAgIGlmICghdmFsaWRhdGVUaW1lKGhvdXJzKSkge1xuICAgICAgcmV0dXJuIE5hTlxuICAgIH1cblxuICAgIHJldHVybiAoaG91cnMgJSAyNCkgKiBNSUxMSVNFQ09ORFNfSU5fSE9VUlxuICB9XG5cbiAgLy8gaGg6bW0gb3IgaGhtbVxuICB0b2tlbiA9IHBhdHRlcm5zLkhITU0uZXhlYyh0aW1lU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICBob3VycyA9IHBhcnNlSW50KHRva2VuWzFdLCAxMClcbiAgICBtaW51dGVzID0gcGFyc2VGbG9hdCh0b2tlblsyXS5yZXBsYWNlKCcsJywgJy4nKSlcblxuICAgIGlmICghdmFsaWRhdGVUaW1lKGhvdXJzLCBtaW51dGVzKSkge1xuICAgICAgcmV0dXJuIE5hTlxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAoaG91cnMgJSAyNCkgKiBNSUxMSVNFQ09ORFNfSU5fSE9VUiArIG1pbnV0ZXMgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFXG4gICAgKVxuICB9XG5cbiAgLy8gaGg6bW06c3Mgb3IgaGhtbXNzXG4gIHRva2VuID0gcGF0dGVybnMuSEhNTVNTLmV4ZWModGltZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgaG91cnMgPSBwYXJzZUludCh0b2tlblsxXSwgMTApXG4gICAgbWludXRlcyA9IHBhcnNlSW50KHRva2VuWzJdLCAxMClcbiAgICB2YXIgc2Vjb25kcyA9IHBhcnNlRmxvYXQodG9rZW5bM10ucmVwbGFjZSgnLCcsICcuJykpXG5cbiAgICBpZiAoIXZhbGlkYXRlVGltZShob3VycywgbWludXRlcywgc2Vjb25kcykpIHtcbiAgICAgIHJldHVybiBOYU5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgKGhvdXJzICUgMjQpICogTUlMTElTRUNPTkRTX0lOX0hPVVIgK1xuICAgICAgbWludXRlcyAqIE1JTExJU0VDT05EU19JTl9NSU5VVEUgK1xuICAgICAgc2Vjb25kcyAqIDEwMDBcbiAgICApXG4gIH1cblxuICAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgdGltZVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBkYXlPZklTT1dlZWtZZWFyKGlzb1dlZWtZZWFyLCB3ZWVrLCBkYXkpIHtcbiAgd2VlayA9IHdlZWsgfHwgMFxuICBkYXkgPSBkYXkgfHwgMFxuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKDApXG4gIGRhdGUuc2V0VVRDRnVsbFllYXIoaXNvV2Vla1llYXIsIDAsIDQpXG4gIHZhciBmb3VydGhPZkphbnVhcnlEYXkgPSBkYXRlLmdldFVUQ0RheSgpIHx8IDdcbiAgdmFyIGRpZmYgPSB3ZWVrICogNyArIGRheSArIDEgLSBmb3VydGhPZkphbnVhcnlEYXlcbiAgZGF0ZS5zZXRVVENEYXRlKGRhdGUuZ2V0VVRDRGF0ZSgpICsgZGlmZilcbiAgcmV0dXJuIGRhdGVcbn1cblxuLy8gVmFsaWRhdGlvbiBmdW5jdGlvbnNcblxudmFyIERBWVNfSU5fTU9OVEggPSBbMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV1cbnZhciBEQVlTX0lOX01PTlRIX0xFQVBfWUVBUiA9IFszMSwgMjksIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXVxuXG5mdW5jdGlvbiBpc0xlYXBZZWFySW5kZXgoeWVhcikge1xuICByZXR1cm4geWVhciAlIDQwMCA9PT0gMCB8fCAoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMClcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVEYXRlKHllYXIsIG1vbnRoLCBkYXRlKSB7XG4gIGlmIChtb250aCA8IDAgfHwgbW9udGggPiAxMSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKGRhdGUgIT0gbnVsbCkge1xuICAgIGlmIChkYXRlIDwgMSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgdmFyIGlzTGVhcFllYXIgPSBpc0xlYXBZZWFySW5kZXgoeWVhcilcbiAgICBpZiAoaXNMZWFwWWVhciAmJiBkYXRlID4gREFZU19JTl9NT05USF9MRUFQX1lFQVJbbW9udGhdKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKCFpc0xlYXBZZWFyICYmIGRhdGUgPiBEQVlTX0lOX01PTlRIW21vbnRoXSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVEYXlPZlllYXJEYXRlKHllYXIsIGRheU9mWWVhcikge1xuICBpZiAoZGF5T2ZZZWFyIDwgMSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdmFyIGlzTGVhcFllYXIgPSBpc0xlYXBZZWFySW5kZXgoeWVhcilcbiAgaWYgKGlzTGVhcFllYXIgJiYgZGF5T2ZZZWFyID4gMzY2KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgaWYgKCFpc0xlYXBZZWFyICYmIGRheU9mWWVhciA+IDM2NSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVXZWVrRGF0ZSh5ZWFyLCB3ZWVrLCBkYXkpIHtcbiAgaWYgKHdlZWsgPCAwIHx8IHdlZWsgPiA1Mikge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKGRheSAhPSBudWxsICYmIChkYXkgPCAwIHx8IGRheSA+IDYpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVRpbWUoaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpIHtcbiAgaWYgKGhvdXJzICE9IG51bGwgJiYgKGhvdXJzIDwgMCB8fCBob3VycyA+PSAyNSkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChtaW51dGVzICE9IG51bGwgJiYgKG1pbnV0ZXMgPCAwIHx8IG1pbnV0ZXMgPj0gNjApKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoc2Vjb25kcyAhPSBudWxsICYmIChzZWNvbmRzIDwgMCB8fCBzZWNvbmRzID49IDYwKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zLXR6L2VzbS90b0RhdGUvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDEzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIiwidmFyIE1JTExJU0VDT05EU19JTl9NSU5VVEUgPSA2MDAwMDtcbi8qKlxuICogR29vZ2xlIENocm9tZSBhcyBvZiA2Ny4wLjMzOTYuODcgaW50cm9kdWNlZCB0aW1lem9uZXMgd2l0aCBvZmZzZXQgdGhhdCBpbmNsdWRlcyBzZWNvbmRzLlxuICogVGhleSB1c3VhbGx5IGFwcGVhciBmb3IgZGF0ZXMgdGhhdCBkZW5vdGUgdGltZSBiZWZvcmUgdGhlIHRpbWV6b25lcyB3ZXJlIGludHJvZHVjZWRcbiAqIChlLmcuIGZvciAnRXVyb3BlL1ByYWd1ZScgdGltZXpvbmUgdGhlIG9mZnNldCBpcyBHTVQrMDA6NTc6NDQgYmVmb3JlIDEgT2N0b2JlciAxODkxXG4gKiBhbmQgR01UKzAxOjAwOjAwIGFmdGVyIHRoYXQgZGF0ZSlcbiAqXG4gKiBEYXRlI2dldFRpbWV6b25lT2Zmc2V0IHJldHVybnMgdGhlIG9mZnNldCBpbiBtaW51dGVzIGFuZCB3b3VsZCByZXR1cm4gNTcgZm9yIHRoZSBleGFtcGxlIGFib3ZlLFxuICogd2hpY2ggd291bGQgbGVhZCB0byBpbmNvcnJlY3QgY2FsY3VsYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdGltZXpvbmUgb2Zmc2V0IGluIG1pbGxpc2Vjb25kcyB0aGF0IHRha2VzIHNlY29uZHMgaW4gYWNjb3VudC5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzKGRpcnR5RGF0ZSkge1xuICB2YXIgZGF0ZSA9IG5ldyBEYXRlKGRpcnR5RGF0ZS5nZXRUaW1lKCkpO1xuICB2YXIgYmFzZVRpbWV6b25lT2Zmc2V0ID0gTWF0aC5jZWlsKGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSk7XG4gIGRhdGUuc2V0U2Vjb25kcygwLCAwKTtcbiAgdmFyIG1pbGxpc2Vjb25kc1BhcnRPZlRpbWV6b25lT2Zmc2V0ID0gZGF0ZS5nZXRUaW1lKCkgJSBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFO1xuICByZXR1cm4gYmFzZVRpbWV6b25lT2Zmc2V0ICogTUlMTElTRUNPTkRTX0lOX01JTlVURSArIG1pbGxpc2Vjb25kc1BhcnRPZlRpbWV6b25lT2Zmc2V0O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VzbS9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDE0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zICovXG5cbi8qKlxuICogRXZlbnRzIE1peGluXG4gKlxuICogQWxsb3cgY2xhc3NlcyB0byBoYXZlIHRoZWlyIG93biBldmVudHMgbWFuYWdlclxuICpcbiAqIEBwYXJhbSB7Q2xhc3N9IHN1cGVyQ2xhc3NcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jb25zdCBFdmVudHNNaXhpbiA9IHN1cGVyQ2xhc3MgPT5cbiAgY2xhc3MgZXh0ZW5kcyBzdXBlckNsYXNzIHtcbiAgICAvKipcbiAgICAgKiBPYmplY3Qgb2YgcmVnaXN0ZXJzIGhhbmRsZXJzXG4gICAgICpcbiAgICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgICAqL1xuICAgIF9faGFuZGxlcnMgPSB7fVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgYW4gZXZlbnQgaGFuZGxlclxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgZXZlbnQgbmFtZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGhhbmRsZXIgaGFuZGxlciBmdW5jdGlvblxuICAgICAqL1xuICAgIG9uKG5hbWUsIGhhbmRsZXIpIHtcbiAgICAgIHRoaXMuX19oYW5kbGVyc1tuYW1lXSA9IHRoaXMuX19oYW5kbGVyc1tuYW1lXSB8fCBbXVxuICAgICAgdGhpcy5fX2hhbmRsZXJzW25hbWVdLnB1c2goaGFuZGxlcilcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYW4gZXZlbnQgaGFuZGxlclxuICAgICAqXG4gICAgICogKipOb3RlIDoqKiBpZiBoYW5kbGVyIGlzIG5vdCBwcm92aWRlZCB0aGVuIGFsbCByZWdpc3RlcmVkIGhhbmRsZXIgZm9yIHRoZSBnaXZlbiBldmVudCB3aWxsIGJlIHJlbW92ZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIGV2ZW50IG5hbWVcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyIGhhbmRsZXIgZnVuY3Rpb25cbiAgICAgKi9cbiAgICBvZmYobmFtZSwgaGFuZGxlcikge1xuICAgICAgdGhpcy5fX2hhbmRsZXJzW25hbWVdID0gdGhpcy5fX2hhbmRsZXJzW25hbWVdIHx8IFtdXG4gICAgICBpZiAoIWhhbmRsZXIpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuX19oYW5kbGVyc1tuYW1lXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCByZWdpc3RlcmVkSGFuZGxlciBpbiB0aGlzLl9faGFuZGxlcnMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9faGFuZGxlcnMuaGFzT3duUHJvcGVydHkocmVnaXN0ZXJlZEhhbmRsZXIpICYmXG4gICAgICAgICAgICB0aGlzLl9faGFuZGxlcnNbcmVnaXN0ZXJlZEhhbmRsZXJdID09PSBoYW5kbGVyXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fX2hhbmRsZXJzW25hbWVdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTm90aWZ5IGhhbmRsZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBldmVudCBuYW1lXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGV2ZW50IHBheWxvYWRcbiAgICAgKi9cbiAgICBub3RpZnkobmFtZSwgcGF5bG9hZCkge1xuICAgICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLl9faGFuZGxlcnNbbmFtZV0gfHwgW11cbiAgICAgIGhhbmRsZXJzLmZvckVhY2goaGFuZGxlciA9PiB7XG4gICAgICAgIGhhbmRsZXIocGF5bG9hZClcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbi8qKlxuICogQW4gZXZlbnRzIG1peGluIGRlY29yYXRvclxuICpcbiAqIEBwYXJhbSB7Q2xhc3N9IHN1cGVyQ2xhc3NcbiAqXG4gKiBAc2VlIHtFdmVudHNNaXhpbn1cbiAqL1xuZnVuY3Rpb24gd2l0aEV2ZW50c01peGluKHN1cGVyQ2xhc3MpIHtcbiAgcmV0dXJuIEV2ZW50c01peGluKHN1cGVyQ2xhc3MpXG59XG5cbmV4cG9ydCBkZWZhdWx0IEV2ZW50c01peGluXG5leHBvcnQgeyBFdmVudHNNaXhpbiwgd2l0aEV2ZW50c01peGluIH1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9FdmVudHNNaXhpbi9FdmVudHNNaXhpbi5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7IGF1dG9iaW5kLCBvdmVycmlkZSwgcmVhZG9ubHkgfSBmcm9tICdjb3JlLWRlY29yYXRvcnMnXG5pbXBvcnQgeyB3aXRoRXZlbnRzTWl4aW4gfSBmcm9tICcuLi9FdmVudHNNaXhpbidcbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vQ29tcG9uZW50J1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnXG5cbi8qKlxuICogRGF0ZVRpbWVJbnB1dFxuICpcbiAqIFNpbXBsZSBEYXRlVGltZUlucHV0IGNvbXBvbmVudCB3aGljaCBpbnRlZ3JhdGVzIHRoZSBmbGF0cGlja3JcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5Ad2l0aEV2ZW50c01peGluXG5jbGFzcyBEYXRlVGltZUlucHV0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENvbnN0YW50IHdoaWNoIGRlc2NyaWJlcyB0aGUgZXZlbnQgbmFtZSB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBhIGRhdGVcbiAgICogaXMgc2VsZWN0ZWQgdXNpbmcgdGhlIGRhdGUgcGlja2VyXG4gICAqXG4gICAqIEB0eXBlIHtTdHJpbmd9XG4gICAqL1xuICBAcmVhZG9ubHlcbiAgc3RhdGljIE9OX0RBVEVfQ0hBTkdFRCA9ICdEYXRlVGltZUlucHV0Lk9OX0RBVEVfQ0hBTkdFRCdcblxuICAvKipcbiAgICogVGhlIGRhdGUgcGlja2VyIGluc3RhbmNlXG4gICAqXG4gICAqIEB0eXBlIHtGbGF0cGlja3JGbn1cbiAgICovXG4gIHBpY2tlciA9IG51bGxcblxuICAvKipcbiAgICogVGhlIGxhc3Qgc2VsZWN0ZWQgZGF0ZVxuICAgKlxuICAgKiBAdHlwZSB7RGF0ZXxudWxsfVxuICAgKi9cbiAgc2VsZWN0ZWREYXRlID0gbnVsbFxuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHJlY2VpdmVkIHBhcmFtcyB3aGVuIGluaXQgaXMgY2FsbGVkXG4gICAqc1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgX3BhcmFtcyA9IHt9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBuZXcgRGF0ZVRpbWVJbnB1dFxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgdGhpcy5fZ3VpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB0aGlzLl9ndWkuY2xhc3NOYW1lID0gJ2FnLWlucHV0LXdyYXBwZXInXG4gICAgdGhpcy5fZ3VpLmlubmVySFRNTCA9IC8qIGh0bWwgKi8gYFxuICAgIDxkaXYgY2xhc3M9XCJkYXRldGltZV9faW5wdXRcIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZGF0ZXRpbWVfX2lucHV0X19pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgZGF0YS1pbnB1dD5cbiAgICAgICAgPGEgY2xhc3M9XCJkYXRldGltZV9faW5wdXRfX2NsZWFyXCIgZGF0YS1jbGVhcj5cbiAgICAgICAgICA8aSBjbGFzcz1cImRhdGV0aW1lX19pbnB1dF9fY2xlYXJfX2ljb24gYWctaWNvbiBhZy1pY29uLWNyb3NzXCI+PC9pPlxuICAgICAgICA8L2E+XG4gICAgPC9kaXY+XG4gICAgYFxuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIGluaXQocGFyYW1zKSB7XG4gICAgdGhpcy5fcGFyYW1zID0gcGFyYW1zXG4gICAgY29uc3QgZW5hYmxlVGltZSA9IHRoaXMuZ2V0T3B0aW9uKCdkYXRlVGltZUVuYWJsZVRpbWUnLCBwYXJhbXMsIHRydWUpXG4gICAgY29uc3QgdGltZV8yNGhyID0gdGhpcy5nZXRPcHRpb24oJ2RhdGVUaW1lRW5hYmxlMjRIUicsIHBhcmFtcywgdHJ1ZSlcbiAgICBjb25zdCBlbmFibGVTZWNvbmRzID0gdGhpcy5nZXRPcHRpb24oJ2RhdGVUaW1lRW5hYmxlU2Vjb25kcycsIHBhcmFtcywgZmFsc2UpXG4gICAgY29uc3Qgbm9DYWxlbmRhciA9ICF0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVFbmFibGVDYWxlbmRhcicsIHBhcmFtcywgdHJ1ZSlcblxuICAgIGxldCBkYXRlRm9ybWF0ID0gdGhpcy5nZXRPcHRpb24oJ2RhdGVUaW1lTWFzaycsIHBhcmFtcylcblxuICAgIC8vIHRyeSB0byBnZW5lcmF0ZSBhIGRlZmF1bHQgZGF0ZSBmb3JtYXQgYmFzZWQgb24gdGhlIG9wdGlvbnNcbiAgICBpZiAoIWRhdGVGb3JtYXQpIHtcbiAgICAgIGRhdGVGb3JtYXQgPSBub0NhbGVuZGFyID8gJycgOiAnJVkvJU16LyVEeidcbiAgICAgIGlmIChlbmFibGVUaW1lKSB7XG4gICAgICAgIGRhdGVGb3JtYXQgKz0gdGltZV8yNGhyID8gJyAlSHo6JW16JyA6ICcgJWh6OiVteidcblxuICAgICAgICBpZiAoZW5hYmxlU2Vjb25kcykge1xuICAgICAgICAgIGRhdGVGb3JtYXQgKz0gJzolc3onXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBkYXRlRm9ybWF0ID0gZGF0ZUZvcm1hdC50cmltKClcblxuICAgIC8vIGluaXQgdGhlIGRhdGUgcGlja2VyXG4gICAgdGhpcy5waWNrZXIgPSBmbGF0cGlja3IodGhpcy5fZ3VpLCB7XG4gICAgICB3cmFwOiB0cnVlLFxuICAgICAgLy8gYWxsb3cgZW50ZXJpbmcgdGhlIGRhdGUgbWFudWFsbHkgcmVxdWlyZXMgZGF0ZSBwYXJzaW5nIGZyb20gc3RyaW5nXG4gICAgICAvLyB0aGlzIGlzIGEgdG91Z2ggdGhpbmcgYW5kIHJlcXVpcmVzIGxpYnMgbGlrZSBtb21lbnRcbiAgICAgIGFsbG93SW5wdXQ6IGZhbHNlLFxuICAgICAgb25DaGFuZ2U6IHRoaXMuX29uRGF0ZUNoYW5nZWQsXG4gICAgICBmb3JtYXREYXRlOiB0aGlzLmZvcm1hdERhdGUsXG4gICAgICBtYXhEYXRlOiB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVNYXgnLCBwYXJhbXMsIG51bGwpLFxuICAgICAgbWluRGF0ZTogdGhpcy5nZXRPcHRpb24oJ2RhdGVUaW1lTWluJywgcGFyYW1zLCBudWxsKSxcbiAgICAgIGRlZmF1bHRIb3VyOiB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVEZWZhdWx0SG91cicsIHBhcmFtcywgMTIpLFxuICAgICAgZGVmYXVsdE1pbnV0ZTogdGhpcy5nZXRPcHRpb24oJ2RhdGVUaW1lRGVmYXVsdE1pbnV0ZScsIHBhcmFtcywgMCksXG4gICAgICBkaXNhYmxlTW9iaWxlOiB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVEaXNhYmxlTW9iaWxlJywgcGFyYW1zLCBmYWxzZSksXG4gICAgICB3ZWVrTnVtYmVyczogdGhpcy5nZXRPcHRpb24oJ2RhdGVUaW1lRW5hYmxlV2Vla051bWJlcicsIHBhcmFtcywgZmFsc2UpLFxuICAgICAgbG9jYWxlOiB0aGlzLl9nZXRQaWNrZXJMb2NhbGUoKSxcbiAgICAgIG5vQ2FsZW5kYXIsXG4gICAgICBkYXRlRm9ybWF0LFxuICAgICAgZW5hYmxlVGltZSxcbiAgICAgIGVuYWJsZVNlY29uZHMsXG4gICAgICB0aW1lXzI0aHIsXG4gICAgfSlcblxuICAgIC8vIGZvcmNlIGRpYWxvZyBvdmVyZmxvd1xuICAgIHRoaXMucGlja2VyLmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2FnLWN1c3RvbS1jb21wb25lbnQtcG9wdXAnKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnBpY2tlci5kZXN0cm95KClcbiAgICB0aGlzLm9mZihEYXRlVGltZUlucHV0Lk9OX0RBVEVfQ0hBTkdFRClcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHBpY2tlciBkYXRlXG4gICAqXG4gICAqIEBwYXJhbSB7RGF0ZXxTdHJpbmd9IHZhbHVlIHRoZSBkYXRlIHZhbHVlIHRvIHNldFxuICAgKi9cbiAgc2V0RGF0ZSh2YWx1ZSkge1xuICAgIHRoaXMucGlja2VyLnNldERhdGUodmFsdWUsIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogT3BlbiBQaWNrZXJcbiAgICovXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5waWNrZXIub3BlbigpXG4gICAgdGhpcy5fZ3VpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHBpY2tlclxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5waWNrZXIuY2xvc2UoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBwaWNrZXJcbiAgICovXG4gIHJlc2V0KCkge1xuICAgIC8qKiB0aGlzIGNoZWNrIGJlY2F1c2UgdGhlIHRlc3RzIGZhaWwgaGVyZSBmb3Igc29tZSByZWFzb25zICAqL1xuICAgIGlmICh0aGlzLnBpY2tlci5jb25maWcpIHtcbiAgICAgIHRoaXMucGlja2VyLmNsZWFyKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IHRoZSBkYXRlIHVzaW5nIGBCQmouTWFza3MuVHlwZXMuZGF0ZWBcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IGRhdGUgZGF0ZSBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gZm9ybWF0IEJCaiBkYXRlIGZvcm1hdFxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGZvcm1hdHRlZCBkYXRlIGFzIHN0cmluZ1xuICAgKi9cbiAgQGF1dG9iaW5kXG4gIGZvcm1hdERhdGUoZGF0ZSwgZm9ybWF0KSB7XG4gICAgY29uc3QgZGF0ZVRpbWVGb3JtYXR0ZXIgPSB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVGb3JtYXR0ZXInLCB0aGlzLl9wYXJhbXMpXG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5nZXRPcHRpb24oXG4gICAgICAnZGF0ZVRpbWVMb2NhbGUnLFxuICAgICAgdGhpcy5fcGFyYW1zLFxuICAgICAgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZSB8fCAnZW4tVVMnXG4gICAgKVxuXG4gICAgaWYgKGRhdGVUaW1lRm9ybWF0dGVyKSB7XG4gICAgICBjb25zdCB0eXBlID0gdHlwZW9mIGRhdGVUaW1lRm9ybWF0dGVyXG4gICAgICBsZXQgZXhwcmVzc2lvbiA9IGRhdGVUaW1lRm9ybWF0dGVyXG5cbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgIGlmICghKGV4cHJlc3Npb24uaW5kZXhPZigncmV0dXJuJykgPj0gMCkpIHtcbiAgICAgICAgICAgIGV4cHJlc3Npb24gPSAncmV0dXJuICcgKyBleHByZXNzaW9uICsgJzsnXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5ldyBGdW5jdGlvbihcbiAgICAgICAgICAgICdkYXRlJyxcbiAgICAgICAgICAgICdmb3JtYXQnLFxuICAgICAgICAgICAgJ2xvY2FsZScsXG4gICAgICAgICAgICAnRGF0ZU1hc2snLFxuICAgICAgICAgICAgZXhwcmVzc2lvblxuICAgICAgICAgICkoZGF0ZSwgZm9ybWF0LCBsb2NhbGUsIEJCai5NYXNrcy5EYXRlTWFzaylcblxuICAgICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgICAgcmV0dXJuIGRhdGVUaW1lRm9ybWF0dGVyKGRhdGUsIGZvcm1hdCwgbG9jYWxlLCBCQmouTWFza3MuRGF0ZU1hc2spXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEludmFsaWQgZGF0ZVRpbWVGb3JtYXR0ZXIgZGVmaW5lZCBmb3IgY29sdW1uIFwiJHt0aGlzLl9wYXJhbXMuY29sRGVmLmZpZWxkfVwiLiBUaGUgZm9ybWF0dGVyIHNob3VsZCBiZSBhbiBleHByZXNzaW9uIG9yIHBsYWluIGZ1bmN0aW9uYFxuICAgICAgICAgIClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFmb3JtYXQgfHwgKGZvcm1hdCAmJiBmb3JtYXQuaW5kZXhPZignJScpIDwgMCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBCQmouTWFza3MuRGF0ZU1hc2subWFzayhkYXRlLCBmb3JtYXQsIGxvY2FsZSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIGRhdGUgcGlja2VyIGNoYW5nZXMgYW5kIHVwZGF0ZSB0aGUgc2VsZWN0ZWQgZGF0ZVxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5fSBzZWxlY3RlZERhdGVzICBhcnJheSBvZiBzZWxlY3RlZCBkYXRlc1xuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9vbkRhdGVDaGFuZ2VkKHNlbGVjdGVkRGF0ZXMpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHNlbGVjdGVkRGF0ZXNbMF0gfHwgbnVsbFxuICAgIHRoaXMubm90aWZ5KERhdGVUaW1lSW5wdXQuT05fREFURV9DSEFOR0VELCB0aGlzLnNlbGVjdGVkRGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcGlja2VyIGdsb2JhbCBsb2NhbGl6YXRpb24gd2hpY2ggd2lsbCB3b3JrIHdpdGggYW55IGxvY2FsZVxuICAgKlxuICAgKiBAcmV0dXJuIHtPYmplY3R9XG4gICAqXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mbGF0cGlja3IvZmxhdHBpY2tyL2Jsb2IvbWFzdGVyL3NyYy9sMTBuL2RlZmF1bHQudHNcbiAgICovXG4gIF9nZXRQaWNrZXJMb2NhbGUoKSB7XG4gICAgY29uc3QgbG9jYWxlID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZSB8fCAnZW4tVVMnXG5cbiAgICBjb25zdCB3ZWVrRGF5c1Nob3J0ID0gW11cbiAgICBjb25zdCB3ZWVrRGF5c0xvbmcgPSBbXVxuXG4gICAgZm9yIChsZXQgZGF5ID0gNDsgZGF5IDwgMTE7IGRheSsrKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMTk3MCwgMSAtIDEsIGRheSlcblxuICAgICAgd2Vla0RheXNTaG9ydC5wdXNoKFxuICAgICAgICBkYXRlXG4gICAgICAgICAgLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwge1xuICAgICAgICAgICAgd2Vla2RheTogJ3Nob3J0JyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5zcGxpdCgnLCcpWzBdIC8vIHRoZSBkYXRlLXRpbWUtZm9ybWF0LXRpbWV6b25lIHBvbHlmaWxsIGF0dGFjaCB0aGUgZGF0ZSBhbHNvXG4gICAgICApXG5cbiAgICAgIHdlZWtEYXlzTG9uZy5wdXNoKFxuICAgICAgICBkYXRlXG4gICAgICAgICAgLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwge1xuICAgICAgICAgICAgd2Vla2RheTogJ2xvbmcnLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnNwbGl0KCcsJylbMF0gLy8gdGhlIGRhdGUtdGltZS1mb3JtYXQtdGltZXpvbmUgcG9seWZpbGwgYXR0YWNoIHRoZSBkYXRlIGFsc29cbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBtb250aHNTaG9ydCA9IFtdXG4gICAgY29uc3QgbW9udGhzTG9uZyA9IFtdXG5cbiAgICBmb3IgKGxldCBtb250aCA9IDA7IG1vbnRoIDwgMTI7IG1vbnRoKyspIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgxOTcwLCBtb250aCwgNClcblxuICAgICAgbW9udGhzU2hvcnQucHVzaChcbiAgICAgICAgZGF0ZS50b0xvY2FsZVN0cmluZyhsb2NhbGUsIHtcbiAgICAgICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgICAgfSlcbiAgICAgIClcblxuICAgICAgbW9udGhzTG9uZy5wdXNoKFxuICAgICAgICBkYXRlLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwge1xuICAgICAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHdlZWtkYXlzOiB7XG4gICAgICAgIHNob3J0aGFuZDogd2Vla0RheXNTaG9ydCxcbiAgICAgICAgbG9uZ2hhbmQ6IHdlZWtEYXlzTG9uZyxcbiAgICAgIH0sXG4gICAgICBtb250aHM6IHtcbiAgICAgICAgc2hvcnRoYW5kOiBtb250aHNTaG9ydCxcbiAgICAgICAgbG9uZ2hhbmQ6IG1vbnRoc0xvbmcsXG4gICAgICB9LFxuICAgICAgZGF5c0luTW9udGg6IFszMSwgMjgsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXSxcbiAgICAgIGZpcnN0RGF5T2ZXZWVrOiBCQmouTWFza3MuVXRpbHMuRGF0ZXMuZ2V0V2Vla1N0YXJ0QnlMb2NhbGUobG9jYWxlKSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICAgICAgb3JkaW5hbDogbnVtYmVyID0+ICcnLFxuICAgICAgcmFuZ2VTZXBhcmF0b3I6ICcgICcsXG4gICAgICB3ZWVrQWJicmV2aWF0aW9uOiAnJyxcbiAgICAgIHNjcm9sbFRpdGxlOiAnJyxcbiAgICAgIHRvZ2dsZVRpdGxlOiAnJyxcbiAgICAgIGFtUE06IFsnQU0nLCAnUE0nXSxcbiAgICAgIHllYXJBcmlhTGFiZWw6ICcnLFxuICAgICAgaG91ckFyaWFMYWJlbDogJycsXG4gICAgICBtaW51dGVBcmlhTGFiZWw6ICcnLFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZUlucHV0XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvRGF0ZVRpbWVJbnB1dC9EYXRlVGltZUlucHV0LmpzIiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LnBhcmVudC5kb2N1bWVudC5oZWFkXG4gICAgICAgICAgICAgIH07XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcblxuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG5cbmlmKG1vZHVsZS5ob3QpIHtcblx0bW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zdHlsZS5zY3NzXCIpO1xuXG5cdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cblx0XHR2YXIgbG9jYWxzID0gKGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdHZhciBrZXksIGlkeCA9IDA7XG5cblx0XHRcdGZvcihrZXkgaW4gYSkge1xuXHRcdFx0XHRpZighYiB8fCBhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRpZHgrKztcblx0XHRcdH1cblxuXHRcdFx0Zm9yKGtleSBpbiBiKSBpZHgtLTtcblxuXHRcdFx0cmV0dXJuIGlkeCA9PT0gMDtcblx0XHR9KGNvbnRlbnQubG9jYWxzLCBuZXdDb250ZW50LmxvY2FscykpO1xuXG5cdFx0aWYoIWxvY2FscykgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGluZyBDU1MgSE1SIGR1ZSB0byBjaGFuZ2VkIGNzcy1tb2R1bGVzIGxvY2Fscy4nKTtcblxuXHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0fSk7XG5cblx0bW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0RhdGVUaW1lSW5wdXQvc3R5bGUuc2NzcyIsImV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanNcIikoZmFsc2UpO1xuLy8gaW1wb3J0c1xuXG5cbi8vIG1vZHVsZVxuZXhwb3J0cy5wdXNoKFttb2R1bGUuaWQsIFwiLmRhdGV0aW1lX19pbnB1dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7bWFyZ2luOmF1dG8gNHB4O2JvcmRlcjp0aGluIHNvbGlkICMwMDB9LmRhdGV0aW1lX19pbnB1dF9faW5wdXR7ZmxleDoxO291dGxpbmU6bm9uZSAhaW1wb3J0YW50O2JvcmRlcjpub25lICFpbXBvcnRhbnR9LmRhdGV0aW1lX19pbnB1dF9fY2xlYXJ7bWFyZ2luLWxlZnQ6MXB4O21hcmdpbi10b3A6MXB4O3RleHQtYWxpZ246Y2VudGVyO291dGxpbmU6bm9uZX0uYWctdGhlbWUtYmFsaGFtIC5kYXRldGltZV9faW5wdXR7Ym9yZGVyLWNvbG9yOiM5NUE1QTZ9LmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5kYXRldGltZV9faW5wdXR7Ym9yZGVyLWNvbG9yOiNlY2YwZjF9LmFnLXRoZW1lLW1hdGVyaWFsIC5kYXRldGltZV9faW5wdXR7bWFyZ2luOmF1dG8gOHB4fVxcblwiLCBcIlwiXSk7XG5cbi8vIGV4cG9ydHNcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIhLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvRGF0ZVRpbWVJbnB1dC9zdHlsZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSAxMjZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiAzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IERhdGVUaW1lRWRpdG9yIGZyb20gJy4vRGF0ZVRpbWVFZGl0b3InXG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lRWRpdG9yXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvRGF0ZVRpbWVFZGl0b3IvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgeyBhdXRvYmluZCwgb3ZlcnJpZGUgfSBmcm9tICdjb3JlLWRlY29yYXRvcnMnXG5pbXBvcnQgdXRjVG9ab25lZFRpbWUgZnJvbSAnZGF0ZS1mbnMtdHovdXRjVG9ab25lZFRpbWUnXG5pbXBvcnQgRGF0ZVRpbWVJbnB1dCBmcm9tICcuLi9EYXRlVGltZUlucHV0J1xuaW1wb3J0IENvbXBvbmVudCBmcm9tICcuLi9Db21wb25lbnQnXG5cbi8qKlxuICogRGF0ZVRpbWVJbnB1dFxuICpcbiAqIFNpbXBsZSBEYXRlVGltZUlucHV0IGNvbXBvbmVudCB3aGljaCBpbnRlZ3JhdGVzIHRoZSBmbGF0cGlja3JcbiAqXG4gKiAjIyBPcHRpb25zXG4gKlxuICogfCBOYW1lICAgICAgICAgICAgICAgICAgXHR8IERlZmF1bHQgICAgIFx0fCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVx0fDotLS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipkYXRlVGltZUVuYWJsZVRpbWUqKiAgIHwgZmFsc2UgICAgfCBlbmFibGUgLyBkaXNhYmxlIHRpbWVcbiAqIHwgKipkYXRlVGltZUVuYWJsZTI0SFIqKiAgIHwgZmFsc2UgICAgfCBlbmFibGUgLyBkaXNhYmxlIHRpbWUgMjQgZm9ybWF0XG4gKiB8ICoqZGF0ZVRpbWVFbmFibGVTZWNvbmRzKiogICB8IGZhbHNlICAgIHwgZW5hYmxlIC8gZGlzYWJsZSBzZWNvbmRzIG1hbmFnZW1lbnRcbiAqIHwgKipkYXRlVGltZUVuYWJsZUNhbGVuZGFyKiogICB8IGZhbHNlICAgIHwgZW5hYmxlIC8gZGlzYWJsZSBDYWxlbmRhci5cbiAqIHwgKipkYXRlVGltZU1hc2sqKiAgIHwgZmFsc2UgICAgfCBUaGUgbWFzayB1c2VkIHRvIGZvcm1hdCB0aGUgc2VsZWN0ZWQgZGF0ZVxuICogfCAqKmRhdGVUaW1lTWF4KiogICB8IHVuZGVmaW5lZCAgICB8ICBNYXggYWxsb3dlZCBkYXRlXG4gKiB8ICoqZGF0ZVRpbWVNaW4qKiAgIHwgdW5kZWZpbmVkICAgIHwgIE1pbiBhbGxvd2VkIGRhdGVcbiAqIHwgKipkYXRlVGltZUZvcm1hdHRlcioqICAgfCBmYWxzZSAgICB8ICBBIGZ1bmN0aW9uIG9yIGV4cHJlc3Npb24gdG8gZm9ybWF0IHRoZSBkYXRlIChAc2VlIHN1cHBvcnRlZCBwYXJhbSlcbiAqIHwgKipkYXRlVGltZUxvY2FsZSoqICAgfCBTeXN0ZW0gZGVmYXVsdCAgICB8ICBBIGxvY2FsZSB0byB1c2UgZm9yIGRhdGUgZm9ybWF0dGluZ1xuICogfCAqKmRhdGVUaW1lRGVmYXVsdEhvdXIqKiAgIHwgMTIgICAgfCAgSW5pdGlhbCB2YWx1ZSBvZiB0aGUgaG91ciBlbGVtZW50LlxuICogfCAqKmRhdGVUaW1lRGVmYXVsdE1pbnV0ZSoqICAgfCAwICAgIHwgIEluaXRpYWwgdmFsdWUgb2YgdGhlIG1pbnV0ZSBlbGVtZW50LlxuICogfCAqKmRhdGVUaW1lRGlzYWJsZU1vYmlsZSoqICAgfCBmYWxzZSAgICB8ICBTZXQgZGlzYWJsZU1vYmlsZSB0byB0cnVlIHRvIGFsd2F5cyB1c2UgdGhlIG5vbi1uYXRpdmUgcGlja2VyLlxuICogfCAqKmRhdGVUaW1lRW5hYmxlV2Vla051bWJlcioqICAgfCB0cnVlICAgIHwgIEVuYWJsZXMgZGlzcGxheSBvZiB3ZWVrIG51bWJlcnMgaW4gY2FsZW5kYXIuXG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgRGF0ZVRpbWVFZGl0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogQHR5cGUge0RhdGVUaW1lSW5wdXR9XG4gICAqL1xuICBfaW5wdXQgPSBuZXcgRGF0ZVRpbWVJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEB0eXBlIHtTdHJpbmd9XG4gICAqL1xuICBfdmFsdWUgPSBudWxsXG5cbiAgLyoqXG4gICAqIFBhcmFtcyByZWNlaXZlZCBpbiBpbml0XG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBfcGFyYW1zID0gbnVsbFxuXG4gIC8qKlxuICAgKiBUYWtlcyBpbmNvbXBsZXRlIGlzbyBzdHJpbmcgYW5kIHJldHVybiBhIGNvbXBsZXRlIG9uZVxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0ZSBpbmNvbXBsZXRlIGlzbyBzdHJpbmdcbiAgICpcbiAgICogQHJldHVybiB7U3RyaW5nfSBjb21wbGV0ZSBpc28gc3RyaW5nXG4gICAqL1xuICBzdGF0aWMgZml4U2hvcnRJU08odmFsdWUpIHtcbiAgICByZXR1cm4gQkJqLk1hc2tzLlV0aWxzLkRhdGVzLmZpeFNob3J0SVNPKHZhbHVlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgaW5pdChwYXJhbXMpIHtcbiAgICB0aGlzLl9wYXJhbXMgPSBwYXJhbXNcbiAgICB0aGlzLmZvY3VzQWZ0ZXJBdHRhY2hlZCA9IHBhcmFtcy5jZWxsU3RhcnRlZEVkaXRcbiAgICBpZiAodGhpcy5mb2N1c0FmdGVyQXR0YWNoZWQpIHtcbiAgICAgIGxldCBrZXlQcmVzc0JhY2tzcGFjZU9yRGVsZXRlID1cbiAgICAgICAgcGFyYW1zLmtleVByZXNzID09IDMyIHx8IHBhcmFtcy5rZXlQcmVzcyA9PSA0NiAvLyBzcGFjZSAvLyBkZWxldGVcblxuICAgICAgaWYgKGtleVByZXNzQmFja3NwYWNlT3JEZWxldGUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSAnJ1xuICAgICAgfSBlbHNlIGlmIChwYXJhbXMuY2hhclByZXNzICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gcGFyYW1zLmNoYXJQcmVzc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBwYXJhbXMudmFsdWVcbiAgICAgICAgaWYgKHBhcmFtcy5rZXlQcmVzcyAhPSAxMTMpIHtcbiAgICAgICAgICAvL0YyXG4gICAgICAgICAgdGhpcy5oaWdobGlnaHRBbGxPbkZvY3VzID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gcGFyYW1zLnZhbHVlXG4gICAgfVxuXG4gICAgdGhpcy5fdmFsdWUgPSBEYXRlVGltZUVkaXRvci5maXhTaG9ydElTTyh0aGlzLl92YWx1ZSlcbiAgICB0aGlzLl9pbnB1dC5pbml0KHBhcmFtcylcbiAgICB0aGlzLl9pbnB1dC5vbihEYXRlVGltZUlucHV0Lk9OX0RBVEVfQ0hBTkdFRCwgdGhpcy5fb25EYXRlQ2hhbmdlKVxuXG4gICAgaWYgKHRoaXMuX3ZhbHVlKSB7XG4gICAgICB0aGlzLl9pbnB1dC5zZXREYXRlKFxuICAgICAgICB1dGNUb1pvbmVkVGltZSh0aGlzLl92YWx1ZSwgQkJqLk1hc2tzLlV0aWxzLkRhdGVzLmdldFRpbWV6b25lT3JPZmZzZXQoKSlcbiAgICAgIClcbiAgICB9XG5cbiAgICB0aGlzLl9ndWkgPSB0aGlzLl9pbnB1dC5nZXRHdWkoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9pbnB1dC5kZXN0cm95KClcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNhbGxlZCBvbmNlIGFmdGVyIEdVSSBpcyBhdHRhY2hlZCB0byBET00uXG4gICAqIE1ha2Ugc3VyZSB0aGUgY29udGFpbmVyIGlzIGFsd2F5cyBmb2N1c2VkIGFuZCBsaXN0ZW5pbmcgdG8ga2V5IGNoYW5nZXNcbiAgICovXG4gIGFmdGVyR3VpQXR0YWNoZWQoKSB7XG4gICAgaWYgKHRoaXMuZm9jdXNBZnRlckF0dGFjaGVkKSB7XG4gICAgICB0aGlzLmZvY3VzSW4oKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZpbmFsIHZhbHVlIHRvIHRoZSBncmlkLCB0aGUgcmVzdWx0IG9mIHRoZSBlZGl0aW5nXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59XG4gICAqL1xuICBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNhbGxlZCBvbmNlIGFmdGVyIGluaXRpYWxpemVkIGFuZCByZXR1cm5zIGZhbHNlIHNvIHRoZSBlZGl0b3IgYXBwZWFycyBpbiB0aGUgY2VsbFxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSBhbHdheXMgZmFsc2VcbiAgICoqL1xuICBpc1BvcHVwKCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIElmIGRvaW5nIGZ1bGwgcm93IGVkaXQsIHRoZW4gZ2V0cyBjYWxsZWQgd2hlbiB0YWJiaW5nIGludG8gdGhlIGNlbGwuXG4gICAqL1xuICBmb2N1c0luKCkge1xuICAgIHRoaXMuX2lucHV0Lm9wZW4oKVxuICB9XG5cbiAgLyoqXG4gICAqIElmIGRvaW5nIGZ1bGwgcm93IGVkaXQsIHRoZW4gZ2V0cyBjYWxsZWQgd2hlbiB0YWJiaW5nIG91dCBvZiB0aGUgY2VsbC5cbiAgICovXG4gIGZvY3VzT3V0KCkge1xuICAgIHRoaXMuX2lucHV0LmNsb3NlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGVkaXRvciB2YWx1ZSB3aXRoIHNlbGVjdGVkIGRhdGUgZnJvbSB0aGUgaW5wdXRcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IGRhdGVcbiAgICovXG4gIEBhdXRvYmluZFxuICBfb25EYXRlQ2hhbmdlKGRhdGUpIHtcbiAgICB0aGlzLl92YWx1ZSA9IGRhdGUgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZS50b0lTT1N0cmluZygpIDogJydcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZUVkaXRvclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0RhdGVUaW1lRWRpdG9yL0RhdGVUaW1lRWRpdG9yLmpzIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMSk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgMGU0MWRhMWU4ODMwMDNmYjhmMjkiLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMF9fO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIGV4dGVybmFsIHtcImNvbW1vbmpzXCI6XCJiYmotbWFza3Mvc3JjL1N0cmluZ01hc2tcIixcImNvbW1vbmpzMlwiOlwiYmJqLW1hc2tzL3NyYy9TdHJpbmdNYXNrXCIsXCJhbWRcIjpcImJiai1tYXNrcy9zcmMvU3RyaW5nTWFza1wiLFwicm9vdFwiOltcIkJCalwiLFwiTWFza3NcIixcIlN0cmluZ01hc2tcIl19XG4vLyBtb2R1bGUgaWQgPSAwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIiwiLypcclxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtaW5wdXQtbWFza2luZyBsaWIuXHJcbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cclxuICpcclxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcclxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IFRleHRJbnB1dCBmcm9tICcuL1RleHRJbnB1dCdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRleHRJbnB1dFxyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvVGV4dElucHV0L2luZGV4LmpzIiwiLypcclxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtaW5wdXQtbWFza2luZyBsaWIuXHJcbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cclxuICpcclxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcclxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IFN0cmluZ01hc2sgZnJvbSAnYmJqLW1hc2tzL3NyYy9TdHJpbmdNYXNrJ1xyXG5pbXBvcnQge1xyXG4gIG1hc2tJZk5vdE1hc2tlZCxcclxuICB1bm1hc2ssXHJcbiAgZmluZENhcmV0UG9zaXRpb24sXHJcbiAgZ2VuZXJhdGVQYXR0ZXJuRnJvbU1hc2ssXHJcbn0gZnJvbSAnLi90b29scy5qcydcclxuXHJcbi8qKlxyXG4gKiBUaGUgYFRleHRJbnB1dGAgd2lsbCB3cmFwIHRleHQgaW5wdXRzIGFuZCBhcHBseSB0aGUgZ2l2ZW4gW2JiaiBzdHJpbmcgbWFza10oaHR0cHM6Ly9naXRodWIuY29tL0Jhc2lzSHViL2Jiai1tYXNrcyNzdHJpbmctbWFza3MpXHJcbiAqXHJcbiAqICoqT3B0aW9ucyoqXHJcbiAqXHJcbiAqIF9PcHRpb25zIGNhbiBiZSBwYXNzZWQgdmlhIGRhdGEgYXR0cmlidXRlcyAuIEZvciBkYXRhIGF0dHJpYnV0ZXMsIGFwcGVuZCB0aGUgb3B0aW9uIG5hbWUgdG8gZGF0YS0sIGFzIGluIGRhdGEtbWFza19cclxuICpcclxuICogfCBPcHRpb24gICAgfCBEZWZhdWx0IHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XHJcbiAqIHwtLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxyXG4gKiB8IG1hc2sgfCAgICAgICAgIHwgVGhlIGJiaiBzdHJpbmcgbWFzayBAc2VlIFtCQmogU3RyaW5nIE1hc2tzXShodHRwczovL2dpdGh1Yi5jb20vQmFzaXNIdWIvYmJqLW1hc2tzI3N0cmluZy1tYXNrcykgfFxyXG4gKlxyXG4gKiAgPGJyPlxyXG4gKlxyXG4gKiAqKkV4YW1wbGUgOioqXHJcbiAqIGBgYGh0bWxcclxuICogIDxpbnB1dCBjbGFzcz1cImJiai10ZXh0LW1hc2tlZFwiIG5hbWU9XCJ0ZXN0XCIgaWQ9XCJ0ZXN0XCIgdmFsdWU9XCJlZDIzXCIgZGF0YS1tYXNrPVwiQUEtMDBcIj5cclxuICpcclxuICogIDxzY3JpcHQ+XHJcbiAqICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoZSkge1xyXG4gKiAgICAgIG5ldyBCYXNpcy5JbnB1dE1hc2tpbmcuVGV4dElucHV0KHtcclxuICogICAgICAgICBvblVwZGF0ZTogKG1hc2tlZFZhbHVlICwgcmF3VmFsdWUgLCBpbnB1dCkgPT4ge1xyXG4gKiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xyXG4gKiAgICAgICAgIH0sXHJcbiAqICAgICAgICAgb25JbnZhbGlkOiAoZXJyICwgaW5wdXQpID0+IHtcclxuICogICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcclxuICogICAgICAgICB9XHJcbiAqICAgICAgfSlcclxuICogICAgfSlcclxuICogIDwvc2NyaXB0PlxyXG4gKiBgYGBcclxuICpcclxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cclxuICovXHJcbmNsYXNzIFRleHRJbnB1dCB7XHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0IG5ldyBUZXh0SW5wdXRcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7P09iamVjdH0gb3B0aW9ucyAtIFRoZSBpbnB1dCBvcHRpb25zLlxyXG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8U3RyaW5nfSBbb3B0aW9ucy5lbGVtZW50cz1cIi5iYmotdGV4dC1tYXNrZWRcIl0gLSBUaGUgY2xhc3MgbmFtZSBvciB0aGUgbm9kZSB0byB1c2VcclxuICAgKiBAcGFyYW0ge0hUTUxEb2N1bWVudH0gW29wdGlvbnMuZG9jdW1lbnQ9ZG9jdW1lbnRdIC0gRG9jdW1lbnQgaW5zdGFuY2UgdG8gdXNlXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLmNzc0NsYXNzRXJyb3I9XCJiYmotbWFzay1lcnJvclwiXSAtIEEgY3NzIGNsYXNzIHRvIGF0dGFjaCB0byB0aGUgaW5wdXQgd2hlbiBpdCBpcyBpbnZhbGlkXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLmNzc0NsYXNzU3VjY2Vzcz1cImJiai1tYXNrLXN1Y2Nlc3NcIl0gLSBBIGNzcyBjbGFzcyB0byBhdHRhY2ggdG8gdGhlIGlucHV0IHdoZW4gaXQgaXMgdmFsaWQgYWZ0ZXIgdGhlIHVzZXIgaW50ZXJhY3Rpb25cclxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0aW9ucy5vblVwZGF0ZT1udWxsXSAtIEEgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIG9uIHRoZSBuZXcgbWFza2VkIHZhbHVlIGlzIHNldFxyXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLm9uSW52YWxpZD1udWxsXSAtIEEgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIG9uIHRoZSBpbnB1dCBvciB0aGUgbWFzayBpcyBpbnZhbGlkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB7XHJcbiAgICAgIC4uLntcclxuICAgICAgICBlbGVtZW50czogJy5iYmotdGV4dC1tYXNrZWQnLFxyXG4gICAgICAgIGRvYzogZG9jdW1lbnQsXHJcbiAgICAgICAgY3NzQ2xhc3NFcnJvcjogJ2Jiai1tYXNrLWVycm9yJyxcclxuICAgICAgICBjc3NDbGFzc1N1Y2Nlc3M6ICdiYmotbWFzay1zdWNjZXNzJyxcclxuICAgICAgICBvblVwZGF0ZTogbnVsbCxcclxuICAgICAgICBvbkludmFsaWQ6IG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICB9XHJcbiAgICB0aGlzLl9vbktleXN0cm9rZSA9IHRoaXMuX29uS2V5c3Ryb2tlLmJpbmQodGhpcylcclxuICAgIHRoaXMuX29uRm9jdXMgPSB0aGlzLl9vbkZvY3VzLmJpbmQodGhpcylcclxuICAgIHRoaXMucmVmcmVzaCgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBjb21wb25lbnQgYW5kIHdyYXAgdGhlIGlucHV0IGVsZW1lbnRzIGZvciBtYXNraW5nIGluIGNhc2VcclxuICAgKiB0aGV5IGFyZSBub3Qgd3JhcHBlZCB5ZXRcclxuICAgKi9cclxuICByZWZyZXNoKCkge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPVxyXG4gICAgICB0eXBlb2YgdGhpcy5vcHRpb25zLmVsZW1lbnRzID09PSAnc3RyaW5nJ1xyXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmRvYy5xdWVyeVNlbGVjdG9yQWxsKHRoaXMub3B0aW9ucy5lbGVtZW50cylcclxuICAgICAgICA6IHRoaXMub3B0aW9ucy5lbGVtZW50c1xyXG4gICAgbGV0IGlucHV0LCBwYXJlbnRDbGFzc1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaW5wdXQgPSBlbGVtZW50c1tpXVxyXG4gICAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbiAgICAgICAgcGFyZW50Q2xhc3MgPSBpbnB1dC5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgnY2xhc3MnKVxyXG5cclxuICAgICAgICBpZiAoIWlucHV0LmdldEF0dHJpYnV0ZSgnaWQnKSkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgICBgQkJqTWFza2luZzogSW5wdXQgaGFzIG5vIElELiBXaXRob3V0IGFuIElEIHRoZSBpbnB1dCBjYW5ub3QgYmUgbWFza2VkYCxcclxuICAgICAgICAgICAgaW5wdXRcclxuICAgICAgICAgIClcclxuICAgICAgICAgIGNvbnRpbnVlXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3ZSBkb24ndCBpbml0aWFsaXplIHRoZSBpbnB1dCdzIHdyYXAgdHdpY2VcclxuICAgICAgICBjb25zdCBpc1dyYXBwZWQgPVxyXG4gICAgICAgICAgcGFyZW50Q2xhc3MgJiYgcGFyZW50Q2xhc3MuaW5kZXhPZigndGV4dElucHV0TWFza19fd3JhcCcpID4gLTFcclxuICAgICAgICB0aGlzLl93cmFwKGlucHV0LCBpc1dyYXBwZWQpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgYEJCak1hc2tpbmc6IEludmFsaWQgaW5wdXQgZWxlbWVudC4gVGhlIGVsZW1lbnQgd2lsbCBiZSBpZ25vcmVkYCxcclxuICAgICAgICAgIGlucHV0XHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbndyYXAgdGhlIGlucHV0IGVsZW1lbnRzIGFuZCByZW1vdmUgYXR0YWNoZWQgbGlzdGVuZXJzXHJcbiAgICovXHJcbiAgZGVzdHJveSgpIHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID1cclxuICAgICAgdHlwZW9mIHRoaXMub3B0aW9ucy5lbGVtZW50cyA9PT0gJ3N0cmluZydcclxuICAgICAgICA/IHRoaXMub3B0aW9ucy5kb2MucXVlcnlTZWxlY3RvckFsbCh0aGlzLm9wdGlvbnMuZWxlbWVudHMpXHJcbiAgICAgICAgOiB0aGlzLm9wdGlvbnMuZWxlbWVudHNcclxuXHJcbiAgICBsZXQgaW5wdXQsIHBhcmVudCwgcGFyZW50Q2xhc3NcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlucHV0ID0gZWxlbWVudHNbaV1cclxuICAgICAgcGFyZW50ID0gaW5wdXQucGFyZW50Tm9kZVxyXG4gICAgICBwYXJlbnRDbGFzcyA9IHBhcmVudC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJylcclxuXHJcbiAgICAgIGlmIChwYXJlbnRDbGFzcyAmJiBwYXJlbnRDbGFzcy5pbmRleE9mKCd0ZXh0SW5wdXRNYXNrX193cmFwJykgPiAtMSkge1xyXG4gICAgICAgIHRoaXMuX3Vud3JhcChwYXJlbnQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgdGV4dCBtYXNraW5nIGlucHV0IHdyYXBwZXJcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gaW5wdXQgdGhlIGlucHV0IGVsZW1lbnRcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzV3JhcHBlZCB3aGVuIHRydWUgdGhlIGlucHV0IGlzIGFscmVhZHkgd3JhcHBlZCBhbmQgd2UgbmVlZCB0byBhZGQgd2hhdCBpc1xyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3Npbmcgb25seVxyXG4gICAqXHJcbiAgICogQHJldHVybnMge0hUTUxTcGFuRWxlbWVudH0gdGhlIHdyYXAgZWxlbWVudFxyXG4gICAqXHJcbiAgICogQHByb3RlY3RlZFxyXG4gICAqL1xyXG4gIF93cmFwKGlucHV0LCBpc1dyYXBwZWQpIHtcclxuICAgIGNvbnN0IGlucHV0SWQgPSBpbnB1dC5nZXRBdHRyaWJ1dGUoJ2lkJyksXHJcbiAgICAgIGlucHV0TmFtZSA9IGlucHV0LmdldEF0dHJpYnV0ZSgnbmFtZScpLFxyXG4gICAgICBtYXNrID0gaW5wdXQuZGF0YXNldC5tYXNrIHx8ICcnLFxyXG4gICAgICBvcmlnaW5hbFBhdHRlcm4gPSBpbnB1dC5wYXR0ZXJuLFxyXG4gICAgICBkZWZhdWx0UGF0dGVybiA9IGdlbmVyYXRlUGF0dGVybkZyb21NYXNrKG1hc2spLFxyXG4gICAgICBwYXR0ZXJuID0gb3JpZ2luYWxQYXR0ZXJuIHx8IGRlZmF1bHRQYXR0ZXJuXHJcblxyXG4gICAgbGV0IHdyYXAgPSBudWxsLFxyXG4gICAgICB1bm1hc2tJbnB1dCA9IG51bGxcclxuXHJcbiAgICBpZiAoIWlzV3JhcHBlZCkge1xyXG4gICAgICB3cmFwID0gdGhpcy5vcHRpb25zLmRvYy5jcmVhdGVFbGVtZW50KCdzcGFuJylcclxuICAgICAgdW5tYXNrSW5wdXQgPSB0aGlzLm9wdGlvbnMuZG9jLmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykgLy8gaGlkZGVuIGlucHV0IHdpdGggdGhlIHVubWFza2VkIHZhbHVlcyBmb3IgZm9ybXNcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdyYXAgPSBpbnB1dC5wYXJlbnROb2RlXHJcbiAgICAgIHVubWFza0lucHV0ID0gd3JhcC5xdWVyeVNlbGVjdG9yKCcudGV4dElucHV0TWFza19fdW5tYXNrZWRJbnB1dCcpXHJcbiAgICB9XHJcblxyXG4gICAgLy8gY29uZmlndXJlIHRoZSBhY3R1YWwgaW5wdXRcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBpbnB1dC52YWx1ZSA9IG1hc2tJZk5vdE1hc2tlZChpbnB1dC52YWx1ZSwgbWFzaylcclxuICAgIGlucHV0LnBhdHRlcm4gPSBwYXR0ZXJuXHJcbiAgICBpbnB1dC5jbGFzc0xpc3QuYWRkKCd0ZXh0SW5wdXRNYXNrX190ZXh0SW5wdXQnKVxyXG4gICAgaW5wdXQuZGF0YXNldC5tYXNrID0gbWFza1xyXG4gICAgaW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkID0gdW5tYXNrKGlucHV0LnZhbHVlLCBtYXNrKVxyXG4gICAgaWYgKG9yaWdpbmFsUGF0dGVybiAmJiBvcmlnaW5hbFBhdHRlcm4gIT09IGRlZmF1bHRQYXR0ZXJuKSB7XHJcbiAgICAgIGlucHV0LmRhdGFzZXQuaXNDdXN0b21QYXR0ZXJuID0gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghaXNXcmFwcGVkKSB7XHJcbiAgICAgIGlmICghKGlucHV0Lmhhc0F0dHJpYnV0ZSgncmVhZG9ubHknKSB8fCBpbnB1dC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGUnKSkpIHtcclxuICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX29uS2V5c3Ryb2tlKVxyXG4gICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgdGhpcy5fb25LZXlzdHJva2UpXHJcbiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigncGFzdGUnLCB0aGlzLl9vbktleXN0cm9rZSlcclxuICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgdGhpcy5fb25Gb2N1cylcclxuICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX29uRm9jdXMpXHJcbiAgICAgIH1cclxuICAgICAgaW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod3JhcCwgaW5wdXQpIC8vIG1vdmUgdGhlIGlucHV0IG91dHNpZGUgdGhlIHdyYXBwZXJcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fdmFsaWRhdGVJbnB1dChpbnB1dCkpIHtcclxuICAgICAgdGhpcy5fX2ZpcmVPblVwZGF0ZShpbnB1dC52YWx1ZSwgaW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkLCBpbnB1dClcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb25maWd1cmUgdGhlIHVubWFza2VkIGlucHV0XHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB1bm1hc2tJbnB1dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKVxyXG4gICAgdW5tYXNrSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpXHJcbiAgICB1bm1hc2tJbnB1dC5jbGFzc0xpc3QuYWRkKCd0ZXh0SW5wdXRNYXNrX191bm1hc2tlZElucHV0JylcclxuICAgIHVubWFza0lucHV0LnZhbHVlID0gaW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkXHJcbiAgICBpZiAoaW5wdXRJZCkgdW5tYXNrSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsIGAke2lucHV0SWR9LXVubWFza2VkYClcclxuICAgIGlmIChpbnB1dE5hbWUpIHVubWFza0lucHV0LnNldEF0dHJpYnV0ZSgnbmFtZScsIGAke2lucHV0TmFtZX0tdW5tYXNrZWRgKVxyXG5cclxuICAgIGlmICghaXNXcmFwcGVkKSB7XHJcbiAgICAgIC8vIGNvbmZpZ3VyZSB0aGUgd3JhcHBlclxyXG4gICAgICB3cmFwLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAndGV4dElucHV0TWFza19fd3JhcCcpXHJcbiAgICAgIHdyYXAuYXBwZW5kQ2hpbGQodW5tYXNrSW5wdXQpXHJcbiAgICAgIHdyYXAuYXBwZW5kQ2hpbGQoaW5wdXQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHdyYXBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVud3JhcCB0aGUgbWFza2VkIGlucHV0IGFuZCByZW1vdmUgdGhlIHZhbHVlIGNoYW5nZWQgbGlzdGVuZXJcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SFRNTFNwYW5FbGVtZW50fSB0ZXh0SW5wdXQgdGhlIHdyYXBwZXIgc3BhbiBpbnN0YW5jZVxyXG4gICAqXHJcbiAgICogQHByb3RlY3RlZFxyXG4gICAqL1xyXG4gIF91bndyYXAodGV4dElucHV0KSB7XHJcbiAgICB0ZXh0SW5wdXQucmVtb3ZlQ2hpbGQoXHJcbiAgICAgIHRleHRJbnB1dC5xdWVyeVNlbGVjdG9yKCcudGV4dElucHV0TWFza19fdW5tYXNrZWRJbnB1dCcpXHJcbiAgICApXHJcblxyXG4gICAgY29uc3QgaW5wdXQgPSB0ZXh0SW5wdXQucXVlcnlTZWxlY3RvcignLnRleHRJbnB1dE1hc2tfX3RleHRJbnB1dCcpXHJcbiAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX29uS2V5c3Ryb2tlKVxyXG4gICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLl9vbktleXN0cm9rZSlcclxuICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgdGhpcy5fb25LZXlzdHJva2UpXHJcbiAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgdGhpcy5fb25Gb2N1cylcclxuICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb25Gb2N1cylcclxuICAgIGRlbGV0ZSBpbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWRcclxuICAgIGlmICghaW5wdXQuZGF0YXNldC5pc0N1c3RvbVBhdHRlcm4pIHtcclxuICAgICAgaW5wdXQucmVtb3ZlQXR0cmlidXRlKCdwYXR0ZXJuJylcclxuICAgICAgZGVsZXRlIGlucHV0LmRhdGFzZXQuaXNDdXN0b21QYXR0ZXJuXHJcbiAgICB9XHJcblxyXG4gICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuXHJcbiAgICB0ZXh0SW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaW5wdXQsIHRleHRJbnB1dClcclxuICAgIHRleHRJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRleHRJbnB1dClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RlbiB0byBldmVyeSBrZXlzdHJva2Ugb24gdGhlIGlucHV0IGFuZCB1cGRhdGUgdGhlIG1hc2tlZCBhbmQgdGhlIHVubWFza2VkIHZhbHVlXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBlXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX29uS2V5c3Ryb2tlKGUpIHtcclxuICAgIGlmIChlLmN0cmxLZXkgfHwgZS5zaGlmdEtleSB8fCBlLmFsdEtleSB8fCBlLm1ldGFLZXkpIHJldHVyblxyXG4gICAgaWYoZS5rZXlDb2RlICE9PSAxMykgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICBcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQsXHJcbiAgICAgIG1hc2sgPSBpbnB1dC5kYXRhc2V0Lm1hc2sgfHwgdGhpcy5vcHRpb25zLm1hc2ssXHJcbiAgICAgIGV2ZW50VHlwZSA9IGUudHlwZVxyXG5cclxuICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcbiAgICBpbnB1dC5zZXRDdXN0b21WYWxpZGl0eSgnJyk7XHJcblxyXG4gICAgbGV0IHZhbHVlID0gaW5wdXQudmFsdWUsXHJcbiAgICAgIGtleUNvZGUgPSBlLmtleUNvZGUsXHJcbiAgICAgIGtleUNvbnRlbnQgPSBlLmtleSB8fCBlLmNvZGUucmVwbGFjZSgvW14wLTldL2csICcnKSxcclxuICAgICAga2V5ID0ga2V5Q29udGVudCA/IChrZXlDb250ZW50Lmxlbmd0aCA+IDEgPyAnJyA6IGtleUNvbnRlbnQpIDogJycsXHJcbiAgICAgIGluc2VydFBvc2l0aW9uID0gZmluZENhcmV0UG9zaXRpb24odmFsdWUsIG1hc2spLFxyXG4gICAgICBuZXdWYWx1ZSxcclxuICAgICAgdW5tYXNrZWRWYWx1ZSxcclxuICAgICAgbWFza0Vycm9yID0gZmFsc2VcclxuXHJcbiAgICBzd2l0Y2ggKGV2ZW50VHlwZSkge1xyXG4gICAgICBjYXNlICdwYXN0ZSc6XHJcbiAgICAgICAgbmV3VmFsdWUgPSBtYXNrSWZOb3RNYXNrZWQoXHJcbiAgICAgICAgICAoZS5jbGlwYm9hcmREYXRhIHx8IHdpbmRvdy5jbGlwYm9hcmREYXRhKS5nZXREYXRhKCdUZXh0JyksXHJcbiAgICAgICAgICBtYXNrXHJcbiAgICAgICAgKVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIGNhc2UgJ2tleXVwJzpcclxuICAgICAgICBuZXdWYWx1ZSA9IHZhbHVlXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAna2V5cHJlc3MnOlxyXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gaW5wdXQuc2VsZWN0aW9uU3RhcnRcclxuICAgICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgIT09IGluc2VydFBvc2l0aW9uKSBpbnNlcnRQb3NpdGlvbiA9IHNlbGVjdGlvblN0YXJ0XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID1cclxuICAgICAgICAgIHZhbHVlLnN1YnN0cigwLCBpbnNlcnRQb3NpdGlvbikgKyBrZXkgKyB2YWx1ZS5zdWJzdHIoaW5zZXJ0UG9zaXRpb24pXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVha1xyXG4gICAgfVxyXG5cclxuICAgIHVubWFza2VkVmFsdWUgPSB1bm1hc2sobmV3VmFsdWUsIG1hc2spXHJcblxyXG4gICAgaWYgKFszNSwgMzYsIDM3LCAzOCwgMzksIDQwXS5pbmRleE9mKGtleUNvZGUpID09PSAtMSkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGlucHV0LnZhbHVlID0gU3RyaW5nTWFzay5tYXNrKHVubWFza2VkVmFsdWUsIG1hc2ssIGZhbHNlKVxyXG4gICAgICAgIGlmKHRoaXMuX3ZhbGlkYXRlSW5wdXQoaW5wdXQpKSB7XHJcbiAgICAgICAgICBpbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWQgPSB1bm1hc2tlZFZhbHVlXHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuZG9jLnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgICAgIGAjJHtpbnB1dC5nZXRBdHRyaWJ1dGUoJ2lkJyl9LXVubWFza2VkYFxyXG4gICAgICAgICAgKS52YWx1ZSA9IHVubWFza2VkVmFsdWVcclxuICAgICAgICAgIHRoaXMuX19hcHBseUNzc0NsYXNzU3RhdGUoaW5wdXQsICdzdWNjZXNzJylcclxuICAgICAgICAgIHRoaXMuX19maXJlT25VcGRhdGUoaW5wdXQudmFsdWUsIGlucHV0LmRhdGFzZXQudmFsdWVVbm1hc2tlZCwgaW5wdXQpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1hc2tFcnJvciA9IGZhbHNlXHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgdGhpcy5fX2FwcGx5Q3NzQ2xhc3NTdGF0ZShpbnB1dCwgJ2Vycm9yJylcclxuICAgICAgICB0aGlzLl9fZmlyZU9uSW52YWxpZChlcnJvciwgaW5wdXQpXHJcbiAgICAgICAgbWFza0Vycm9yID0gdHJ1ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl91cGRhdGVDYXJldFBvc2l0aW9uKGlucHV0LCBtYXNrKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghbWFza0Vycm9yKSB0aGlzLl92YWxpZGF0ZUlucHV0KGlucHV0KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGVuIHRvIGZvY3VzIGV2ZW50cyBvbiB0aGUgaW5wdXQgYW5kIHVwZGF0ZSB0aGUgY2FyZXQgcG9zaXRpb25cclxuICAgKiB3aGVyZSB0aGUgbmV4dCBjaGFyIHNob3VsZCBiZSBpbnNlcnRlZCBhY2NvcmRpbmcgdG8gdGhlIG1hc2tcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Rm9jdXNFdmVudH0gZVxyXG4gICAqXHJcbiAgICogQHByb3RlY3RlZFxyXG4gICAqL1xyXG4gIF9vbkZvY3VzKGUpIHtcclxuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXRcclxuICAgIGNvbnN0IG1hc2sgPSBpbnB1dC5kYXRhc2V0Lm1hc2sgfHwgdGhpcy5vcHRpb25zLm1hc2tcclxuICAgIHRoaXMuX3VwZGF0ZUNhcmV0UG9zaXRpb24oaW5wdXQsIG1hc2spXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdGhlIGNhcmV0IHBvc2l0aW9uIG9uIHRoZSBpbnB1dCBiYXNlZCBvbiB0aGUgZ2l2ZW4gbWFza1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBpbnB1dCBpbnN0YW5jZVxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrICBiYmogc3RyaW5nXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX3VwZGF0ZUNhcmV0UG9zaXRpb24oaW5wdXQsIG1hc2spIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBwb3NpdGlvbiA9IGZpbmRDYXJldFBvc2l0aW9uKGlucHV0LnZhbHVlLCBtYXNrKVxyXG4gICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShwb3NpdGlvbiwgcG9zaXRpb24pXHJcbiAgICB9LCAwKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlciBgY2hlY2tWYWxpZGl0eWAgb24gdGhlIGlucHV0XHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGlucHV0XHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gdHJ1ZSB3aGVuIHZhbGlkICwgZmFsc2Ugb3RoZXJ3aXNlXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX3ZhbGlkYXRlSW5wdXQoaW5wdXQpIHtcclxuICAgIGNvbnN0IGlzVmFsaWQgPSBpbnB1dC5jaGVja1ZhbGlkaXR5KClcclxuXHJcbiAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICB0aGlzLl9fYXBwbHlDc3NDbGFzc1N0YXRlKGlucHV0LCAnc3VjY2VzcycpXHJcbiAgICAgIGlucHV0LnNldEN1c3RvbVZhbGlkaXR5KCcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fX2FwcGx5Q3NzQ2xhc3NTdGF0ZShpbnB1dCwgJ2Vycm9yJylcclxuICAgICAgdGhpcy5fX2ZpcmVPbkludmFsaWQoaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UsIGlucHV0KVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpc1ZhbGlkXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIF9fZmlyZU9uVXBkYXRlKHZhbHVlTWFza2VkLCB2YWx1ZVVubWFza2VkLCBpbnB1dCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5vblVwZGF0ZSkge1xyXG4gICAgICB0aGlzLm9wdGlvbnMub25VcGRhdGUodmFsdWVNYXNrZWQsIHZhbHVlVW5tYXNrZWQsIGlucHV0KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBfX2ZpcmVPbkludmFsaWQoZXJyb3IsIGlucHV0KSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLm9uSW52YWxpZCkge1xyXG4gICAgICB0aGlzLm9wdGlvbnMub25JbnZhbGlkKGVycm9yLCBpbnB1dClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgX19hcHBseUNzc0NsYXNzU3RhdGUoaW5wdXQsIHN0YXRlKSB7XHJcbiAgICBpZiAoaW5wdXQuaGFzQXR0cmlidXRlKCdyZWFkb25seScpIHx8IGlucHV0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xyXG4gICAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc0Vycm9yKVxyXG4gICAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc3RhdGUgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgICAgaW5wdXQuY2xhc3NMaXN0LmFkZCh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzKVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoc3RhdGUgPT09ICdlcnJvcicpIHtcclxuICAgICAgICBpbnB1dC5jbGFzc0xpc3QuYWRkKHRoaXMub3B0aW9ucy5jc3NDbGFzc0Vycm9yKVxyXG4gICAgICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGV4dElucHV0XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UZXh0SW5wdXQvVGV4dElucHV0LmpzIiwiLypcclxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtaW5wdXQtbWFza2luZyBsaWIuXHJcbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cclxuICpcclxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcclxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IFN0cmluZ01hc2sgZnJvbSAnYmJqLW1hc2tzL3NyYy9TdHJpbmdNYXNrJ1xyXG5cclxuY29uc3QgU1VQUE9SVEVEX01BU0tTID0gWydYJywgJ2EnLCAnQScsICcwJywgJ3onLCAnWicsICdVJ11cclxuLyoqXHJcbiAqIFdoZW4gdHJ1ZSAsIHRoZW4gdGhlIGJyb3dzZXIgc3VwcG9ydHMgVW5pY29kZSBQcm9wZXJ0eSBFc2NhcGVzXHJcbiAqIG90aGVyd2lzZSBpdCBpcyBmYWxzZSBcclxuICogXHJcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1yZWdleHAtdW5pY29kZS1wcm9wZXJ0eS1lc2NhcGVzfVxyXG4gKi9cclxubGV0IElTX1VOSUNPREVfUFJPUEVSVFlfU1VQUE9SVEVEID0gZmFsc2VcclxudHJ5IHtcclxuICBldmFsKCcvXFxcXHB7TH0vdScpXHJcbiAgSVNfVU5JQ09ERV9QUk9QRVJUWV9TVVBQT1JURUQgPSB0cnVlXHJcbn0gY2F0Y2ggKGVycikge1xyXG4gIElTX1VOSUNPREVfUFJPUEVSVFlfU1VQUE9SVEVEID0gZmFsc2VcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBtYXNrZWQgd2l0aCB0aGUgZ2l2ZW4gbWFzayBvciBub3RcclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlIG1hc2tlZCBvciB1bm1hc2tlZCB2YWx1ZVxyXG4gKiBAcGFyYW0ge1N0cmluZ30gbWFzayAgYSBiYmogbWFza1xyXG4gKlxyXG4gKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIHdoZW4gdGhlIHZhbHVlIGlzIG1hc2tlZCB3aXRoIGdpdmVuIG1hc2sgLCBmYWxzZSBvdGhlcndpc2VcclxuICovXHJcbmNvbnN0IGlzTWFza2VkVmFsdWUgPSAodmFsdWUsIG1hc2spID0+IHtcclxuICBpZiAodHlwZW9mIGlzTWFza2VkVmFsdWUuX19DQUNIRV9fID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgaXNNYXNrZWRWYWx1ZS5fX0NBQ0hFX18gPSB7fVxyXG4gIH1cclxuXHJcbiAgY29uc3QgY2FjaGVLZXkgPSBgJHt2YWx1ZX0tJHttYXNrfWBcclxuXHJcbiAgaWYgKCFpc01hc2tlZFZhbHVlLl9fQ0FDSEVfX1tjYWNoZUtleV0pIHtcclxuICAgIGNvbnN0IHVubWFza2VkVmFsdWUgPSB1bm1hc2sodmFsdWUsIG1hc2spXHJcbiAgICBpc01hc2tlZFZhbHVlLl9fQ0FDSEVfX1tjYWNoZUtleV0gPVxyXG4gICAgICB2YWx1ZSA9PT0gU3RyaW5nTWFzay5tYXNrKHVubWFza2VkVmFsdWUsIG1hc2spXHJcbiAgfVxyXG5cclxuICByZXR1cm4gaXNNYXNrZWRWYWx1ZS5fX0NBQ0hFX19bY2FjaGVLZXldXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNYXNrIHRoZSBnaXZlbiB2YWx1ZSB3aXRoIHRoZSBnaXZlbiBtYXNrIGluIGNhc2UgdGhlIHZhbHVlIGlzIG5vdCBhbHJlYWR5IG1hc2tlZCB3aXRoIHRoZVxyXG4gKiBnaXZlbiBtYXNrXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZSBtYXNrZWQgb3IgdW5tYXNrZWQgdmFsdWVcclxuICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgIGEgYmJqIG1hc2tcclxuICpcclxuICogQHJldHVybiB7U3RyaW5nfSBhIG1hc2tlZCB2YWx1ZVxyXG4gKi9cclxuY29uc3QgbWFza0lmTm90TWFza2VkID0gKHZhbHVlLCBtYXNrKSA9PiB7XHJcbiAgaWYgKHR5cGVvZiBtYXNrSWZOb3RNYXNrZWQuX19DQUNIRV9fID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgbWFza0lmTm90TWFza2VkLl9fQ0FDSEVfXyA9IHt9XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYWNoZUtleSA9IGAke3ZhbHVlfS0ke21hc2t9YFxyXG5cclxuICBpZiAoIW1hc2tJZk5vdE1hc2tlZC5fX0NBQ0hFX19bY2FjaGVLZXldKSB7XHJcbiAgICBpZiAoaXNNYXNrZWRWYWx1ZSh2YWx1ZSwgbWFzaykpIHtcclxuICAgICAgbWFza0lmTm90TWFza2VkLl9fQ0FDSEVfX1tjYWNoZUtleV0gPSB2YWx1ZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBtYXNrSWZOb3RNYXNrZWQuX19DQUNIRV9fW2NhY2hlS2V5XSA9IFN0cmluZ01hc2subWFzayhcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgbWFzayxcclxuICAgICAgICAgIGZhbHNlXHJcbiAgICAgICAgKVxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgbWFza0lmTm90TWFza2VkLl9fQ0FDSEVfX1tjYWNoZUtleV0gPSBTdHJpbmdNYXNrLm1hc2soJycsIG1hc2spXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBtYXNrSWZOb3RNYXNrZWQuX19DQUNIRV9fW2NhY2hlS2V5XVxyXG59XHJcblxyXG4vKipcclxuICogR2VuZXJhdGUgYSByZWdleCBwYXR0ZXIgYmFzZWQgb24gdGhlIGdpdmUgdGFza1xyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gbWFzayAgYmJqIHN0cmluZyBtYXNrXHJcbiAqXHJcbiAqIEByZXR1cm4ge1N0cmluZ30gcmVnZXggZm9yIHRoZSBnaXZlIG1hc2tcclxuICovXHJcbmNvbnN0IGdlbmVyYXRlUGF0dGVybkZyb21NYXNrID0gbWFzayA9PiB7XHJcbiAgaWYgKHR5cGVvZiBnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzay5fX0NBQ0hFX18gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICBnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzay5fX0NBQ0hFX18gPSB7fVxyXG4gIH1cclxuXHJcbiAgY29uc3QgY2FjaGVLZXkgPSBtYXNrXHJcblxyXG4gIGlmICghZ2VuZXJhdGVQYXR0ZXJuRnJvbU1hc2suX19DQUNIRV9fW2NhY2hlS2V5XSkge1xyXG4gICAgY29uc3QgbWFza0FzQXJyeSA9IG1hc2suc3BsaXQoJycpXHJcbiAgICBsZXQgcmVnZXggPSAnJ1xyXG4gICAgbWFza0FzQXJyeS5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGMpIHtcclxuICAgICAgICBjYXNlICdYJzpcclxuICAgICAgICAgIHJlZ2V4ICs9ICcoW14gLX5dKSdcclxuICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgY2FzZSAnYSc6XHJcbiAgICAgICAgY2FzZSAnQSc6XHJcbiAgICAgICAgICAvLyBodHRwczovL21vdGhlcmVmZi5pbi9yZWdleHB1I2lucHV0PXZhcityZWdleCslM0QrLyU1Q3AlN0JMJTdEL3UlM0ImdW5pY29kZVByb3BlcnR5RXNjYXBlPTFcclxuICAgICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE1MDAzMy9yZWd1bGFyLWV4cHJlc3Npb24tdG8tbWF0Y2gtbm9uLWFzY2lpLWNoYXJhY3RlcnMjYW5zd2VyLTQ4OTAyNzY1XHJcbiAgICAgICAgICByZWdleCArPSBJU19VTklDT0RFX1BST1BFUlRZX1NVUFBPUlRFRFxyXG4gICAgICAgICAgICA/ICdcXFxccHtMfSdcclxuICAgICAgICAgICAgOiAnKCg/OltBLVphLXpcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MC1cXHUwNTg4XFx1MDVEMC1cXHUwNUVBXFx1MDVFRi1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODYtXFx1MEU4QVxcdTBFOEMtXFx1MEVBM1xcdTBFQTVcXHUwRUE3LVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RjEtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMVxcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTgzXFx1MjE4NFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNFRVxcdTJDRjJcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDVcXHUzMDA2XFx1MzAzMS1cXHUzMDM1XFx1MzAzQlxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkZcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUZcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFNVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdCRlxcdUE3QzItXFx1QTdDNlxcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QThGRVxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjdcXHVBQjcwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNDBcXHVERjQyLVxcdURGNDlcXHVERjUwLVxcdURGNzVcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMFxcdURFMTAtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzNVxcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNFxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJcXHVERDAwLVxcdUREMjNcXHVERjAwLVxcdURGMUNcXHVERjI3XFx1REYzMC1cXHVERjQ1XFx1REZFMC1cXHVERkY2XXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdUREMDMtXFx1REQyNlxcdURENDRcXHVERDUwLVxcdURENzJcXHVERDc2XFx1REQ4My1cXHVEREIyXFx1RERDMS1cXHVEREM0XFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERURFXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0RcXHVERjUwXFx1REY1RC1cXHVERjYxXXxcXHVEODA1W1xcdURDMDAtXFx1REMzNFxcdURDNDctXFx1REM0QVxcdURDNUZcXHVEQzgwLVxcdURDQUZcXHVEQ0M0XFx1RENDNVxcdURDQzdcXHVERDgwLVxcdUREQUVcXHVEREQ4LVxcdUREREJcXHVERTAwLVxcdURFMkZcXHVERTQ0XFx1REU4MC1cXHVERUFBXFx1REVCOFxcdURGMDAtXFx1REYxQV18XFx1RDgwNltcXHVEQzAwLVxcdURDMkJcXHVEQ0EwLVxcdURDREZcXHVEQ0ZGXFx1RERBMC1cXHVEREE3XFx1RERBQS1cXHVEREQwXFx1RERFMVxcdURERTNcXHVERTAwXFx1REUwQi1cXHVERTMyXFx1REUzQVxcdURFNTBcXHVERTVDLVxcdURFODlcXHVERTlEXFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMyRVxcdURDNDBcXHVEQzcyLVxcdURDOEZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzMFxcdURENDZcXHVERDYwLVxcdURENjVcXHVERDY3XFx1REQ2OFxcdURENkEtXFx1REQ4OVxcdUREOThcXHVERUUwLVxcdURFRjJdfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzldW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNDAtXFx1REY0M1xcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERTQwLVxcdURFN0ZcXHVERjAwLVxcdURGNEFcXHVERjUwXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFcXHVERkUzXXxcXHVEODIxW1xcdURDMDAtXFx1REZGN118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ1MC1cXHVERDUyXFx1REQ2NC1cXHVERDY3XFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OV18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXXxcXHVEODM4W1xcdUREMDAtXFx1REQyQ1xcdUREMzctXFx1REQzRFxcdURENEVcXHVERUMwLVxcdURFRUJdfFxcdUQ4M0FbXFx1REMwMC1cXHVEQ0M0XFx1REQwMC1cXHVERDQzXFx1REQ0Ql18XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXSkpJ1xyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBjYXNlICcwJzpcclxuICAgICAgICAgIHJlZ2V4ICs9ICcoWzAtOV0pJ1xyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBjYXNlICd6JzpcclxuICAgICAgICBjYXNlICdaJzpcclxuICAgICAgICAgIHJlZ2V4ICs9IElTX1VOSUNPREVfUFJPUEVSVFlfU1VQUE9SVEVEXHJcbiAgICAgICAgICAgID8gJyhbMC05XXxcXFxccHtMfSknXHJcbiAgICAgICAgICAgIDogJyhbMC05XXwoPzpbQS1aYS16XFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjAtXFx1MDU4OFxcdTA1RDAtXFx1MDVFQVxcdTA1RUYtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwOEEwLVxcdTA4QjRcXHUwOEI2LVxcdTA4QkRcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM2MFxcdTBDNjFcXHUwQzgwXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCRFxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBDRjFcXHUwQ0YyXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDU0LVxcdTBENTZcXHUwRDVGLVxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg2LVxcdTBFOEFcXHUwRThDLVxcdTBFQTNcXHUwRUE1XFx1MEVBNy1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkYxLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0Q3XFx1MTdEQ1xcdTE4MjAtXFx1MTg3OFxcdTE4ODAtXFx1MTg4NFxcdTE4ODctXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQUE3XFx1MUIwNS1cXHUxQjMzXFx1MUI0NS1cXHUxQjRCXFx1MUI4My1cXHUxQkEwXFx1MUJBRVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQzkwLVxcdTFDQkFcXHUxQ0JELVxcdTFDQkZcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjNcXHUxQ0Y1XFx1MUNGNlxcdTFDRkFcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE4M1xcdTIxODRcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJFMkZcXHUzMDA1XFx1MzAwNlxcdTMwMzEtXFx1MzAzNVxcdTMwM0JcXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJGXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkVGXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjFGXFx1QTYyQVxcdUE2MkJcXHVBNjQwLVxcdUE2NkVcXHVBNjdGLVxcdUE2OURcXHVBNkEwLVxcdUE2RTVcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3QkZcXHVBN0MyLVxcdUE3QzZcXHVBN0Y3LVxcdUE4MDFcXHVBODAzLVxcdUE4MDVcXHVBODA3LVxcdUE4MEFcXHVBODBDLVxcdUE4MjJcXHVBODQwLVxcdUE4NzNcXHVBODgyLVxcdUE4QjNcXHVBOEYyLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE4RkVcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUNGXFx1QTlFMC1cXHVBOUU0XFx1QTlFNi1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVBXFx1QUFGMi1cXHVBQUY0XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjY3XFx1QUI3MC1cXHVBQkUyXFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRFxcdUZCMUYtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYyMS1cXHVGRjNBXFx1RkY0MS1cXHVGRjVBXFx1RkY2Ni1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXXxcXHVEODAwW1xcdURDMDAtXFx1REMwQlxcdURDMEQtXFx1REMyNlxcdURDMjgtXFx1REMzQVxcdURDM0NcXHVEQzNEXFx1REMzRi1cXHVEQzREXFx1REM1MC1cXHVEQzVEXFx1REM4MC1cXHVEQ0ZBXFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REYwMC1cXHVERjFGXFx1REYyRC1cXHVERjQwXFx1REY0Mi1cXHVERjQ5XFx1REY1MC1cXHVERjc1XFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXXxcXHVEODAxW1xcdURDMDAtXFx1REM5RFxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQlxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N118XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDBcXHVERTEwLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzVcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTRcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXFx1REQwMC1cXHVERDIzXFx1REYwMC1cXHVERjFDXFx1REYyN1xcdURGMzAtXFx1REY0NVxcdURGRTAtXFx1REZGNl18XFx1RDgwNFtcXHVEQzAzLVxcdURDMzdcXHVEQzgzLVxcdURDQUZcXHVEQ0QwLVxcdURDRThcXHVERDAzLVxcdUREMjZcXHVERDQ0XFx1REQ1MC1cXHVERDcyXFx1REQ3NlxcdUREODMtXFx1RERCMlxcdUREQzEtXFx1RERDNFxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTJCXFx1REU4MC1cXHVERTg2XFx1REU4OFxcdURFOEEtXFx1REU4RFxcdURFOEYtXFx1REU5RFxcdURFOUYtXFx1REVBOFxcdURFQjAtXFx1REVERVxcdURGMDUtXFx1REYwQ1xcdURGMEZcXHVERjEwXFx1REYxMy1cXHVERjI4XFx1REYyQS1cXHVERjMwXFx1REYzMlxcdURGMzNcXHVERjM1LVxcdURGMzlcXHVERjNEXFx1REY1MFxcdURGNUQtXFx1REY2MV18XFx1RDgwNVtcXHVEQzAwLVxcdURDMzRcXHVEQzQ3LVxcdURDNEFcXHVEQzVGXFx1REM4MC1cXHVEQ0FGXFx1RENDNFxcdURDQzVcXHVEQ0M3XFx1REQ4MC1cXHVEREFFXFx1REREOC1cXHVERERCXFx1REUwMC1cXHVERTJGXFx1REU0NFxcdURFODAtXFx1REVBQVxcdURFQjhcXHVERjAwLVxcdURGMUFdfFxcdUQ4MDZbXFx1REMwMC1cXHVEQzJCXFx1RENBMC1cXHVEQ0RGXFx1RENGRlxcdUREQTAtXFx1RERBN1xcdUREQUEtXFx1REREMFxcdURERTFcXHVEREUzXFx1REUwMFxcdURFMEItXFx1REUzMlxcdURFM0FcXHVERTUwXFx1REU1Qy1cXHVERTg5XFx1REU5RFxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMkVcXHVEQzQwXFx1REM3Mi1cXHVEQzhGXFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzBcXHVERDQ2XFx1REQ2MC1cXHVERDY1XFx1REQ2N1xcdURENjhcXHVERDZBLVxcdUREODlcXHVERDk4XFx1REVFMC1cXHVERUYyXXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzgwLVxcdURENDNdfFtcXHVEODBDXFx1RDgxQy1cXHVEODIwXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERUQwLVxcdURFRURcXHVERjAwLVxcdURGMkZcXHVERjQwLVxcdURGNDNcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REU0MC1cXHVERTdGXFx1REYwMC1cXHVERjRBXFx1REY1MFxcdURGOTMtXFx1REY5RlxcdURGRTBcXHVERkUxXFx1REZFM118XFx1RDgyMVtcXHVEQzAwLVxcdURGRjddfFxcdUQ4MjJbXFx1REMwMC1cXHVERUYyXXxcXHVEODJDW1xcdURDMDAtXFx1REQxRVxcdURENTAtXFx1REQ1MlxcdURENjQtXFx1REQ2N1xcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTldfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQl18XFx1RDgzOFtcXHVERDAwLVxcdUREMkNcXHVERDM3LVxcdUREM0RcXHVERDRFXFx1REVDMC1cXHVERUVCXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdUREMDAtXFx1REQ0M1xcdURENEJdfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFRDZcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF0pKSdcclxuICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgY2FzZSAnVSc6XHJcbiAgICAgICAgICByZWdleCArPSBJU19VTklDT0RFX1BST1BFUlRZX1NVUFBPUlRFRFxyXG4gICAgICAgICAgICA/ICcoKFswLTldKXwoXFxcXHMpfChbLiwvIyEkJV4mKjs6e309LV9gfigpXSl8KFxcXFxwe0x9KSknXHJcbiAgICAgICAgICAgIDogJygoWzAtOV0pfChcXFxccyl8KFsuLC8jISQlXiYqOzp7fT0tX2B+KCldKXwoPzpbQS1aYS16XFx4QUFcXHhCNVxceEJBXFx4QzAtXFx4RDZcXHhEOC1cXHhGNlxceEY4LVxcdTAyQzFcXHUwMkM2LVxcdTAyRDFcXHUwMkUwLVxcdTAyRTRcXHUwMkVDXFx1MDJFRVxcdTAzNzAtXFx1MDM3NFxcdTAzNzZcXHUwMzc3XFx1MDM3QS1cXHUwMzdEXFx1MDM3RlxcdTAzODZcXHUwMzg4LVxcdTAzOEFcXHUwMzhDXFx1MDM4RS1cXHUwM0ExXFx1MDNBMy1cXHUwM0Y1XFx1MDNGNy1cXHUwNDgxXFx1MDQ4QS1cXHUwNTJGXFx1MDUzMS1cXHUwNTU2XFx1MDU1OVxcdTA1NjAtXFx1MDU4OFxcdTA1RDAtXFx1MDVFQVxcdTA1RUYtXFx1MDVGMlxcdTA2MjAtXFx1MDY0QVxcdTA2NkVcXHUwNjZGXFx1MDY3MS1cXHUwNkQzXFx1MDZENVxcdTA2RTVcXHUwNkU2XFx1MDZFRVxcdTA2RUZcXHUwNkZBLVxcdTA2RkNcXHUwNkZGXFx1MDcxMFxcdTA3MTItXFx1MDcyRlxcdTA3NEQtXFx1MDdBNVxcdTA3QjFcXHUwN0NBLVxcdTA3RUFcXHUwN0Y0XFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MTVcXHUwODFBXFx1MDgyNFxcdTA4MjhcXHUwODQwLVxcdTA4NThcXHUwODYwLVxcdTA4NkFcXHUwOEEwLVxcdTA4QjRcXHUwOEI2LVxcdTA4QkRcXHUwOTA0LVxcdTA5MzlcXHUwOTNEXFx1MDk1MFxcdTA5NTgtXFx1MDk2MVxcdTA5NzEtXFx1MDk4MFxcdTA5ODUtXFx1MDk4Q1xcdTA5OEZcXHUwOTkwXFx1MDk5My1cXHUwOUE4XFx1MDlBQS1cXHUwOUIwXFx1MDlCMlxcdTA5QjYtXFx1MDlCOVxcdTA5QkRcXHUwOUNFXFx1MDlEQ1xcdTA5RERcXHUwOURGLVxcdTA5RTFcXHUwOUYwXFx1MDlGMVxcdTA5RkNcXHUwQTA1LVxcdTBBMEFcXHUwQTBGXFx1MEExMFxcdTBBMTMtXFx1MEEyOFxcdTBBMkEtXFx1MEEzMFxcdTBBMzJcXHUwQTMzXFx1MEEzNVxcdTBBMzZcXHUwQTM4XFx1MEEzOVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTcyLVxcdTBBNzRcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkRcXHUwQUQwXFx1MEFFMFxcdTBBRTFcXHUwQUY5XFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OC1cXHUwQzVBXFx1MEM2MFxcdTBDNjFcXHUwQzgwXFx1MEM4NS1cXHUwQzhDXFx1MEM4RS1cXHUwQzkwXFx1MEM5Mi1cXHUwQ0E4XFx1MENBQS1cXHUwQ0IzXFx1MENCNS1cXHUwQ0I5XFx1MENCRFxcdTBDREVcXHUwQ0UwXFx1MENFMVxcdTBDRjFcXHUwQ0YyXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRFxcdTBENEVcXHUwRDU0LVxcdTBENTZcXHUwRDVGLVxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg2LVxcdTBFOEFcXHUwRThDLVxcdTBFQTNcXHUwRUE1XFx1MEVBNy1cXHUwRUIwXFx1MEVCMlxcdTBFQjNcXHUwRUJEXFx1MEVDMC1cXHUwRUM0XFx1MEVDNlxcdTBFREMtXFx1MEVERlxcdTBGMDBcXHUwRjQwLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjg4LVxcdTBGOENcXHUxMDAwLVxcdTEwMkFcXHUxMDNGXFx1MTA1MC1cXHUxMDU1XFx1MTA1QS1cXHUxMDVEXFx1MTA2MVxcdTEwNjVcXHUxMDY2XFx1MTA2RS1cXHUxMDcwXFx1MTA3NS1cXHUxMDgxXFx1MTA4RVxcdTEwQTAtXFx1MTBDNVxcdTEwQzdcXHUxMENEXFx1MTBEMC1cXHUxMEZBXFx1MTBGQy1cXHUxMjQ4XFx1MTI0QS1cXHUxMjREXFx1MTI1MC1cXHUxMjU2XFx1MTI1OFxcdTEyNUEtXFx1MTI1RFxcdTEyNjAtXFx1MTI4OFxcdTEyOEEtXFx1MTI4RFxcdTEyOTAtXFx1MTJCMFxcdTEyQjItXFx1MTJCNVxcdTEyQjgtXFx1MTJCRVxcdTEyQzBcXHUxMkMyLVxcdTEyQzVcXHUxMkM4LVxcdTEyRDZcXHUxMkQ4LVxcdTEzMTBcXHUxMzEyLVxcdTEzMTVcXHUxMzE4LVxcdTEzNUFcXHUxMzgwLVxcdTEzOEZcXHUxM0EwLVxcdTEzRjVcXHUxM0Y4LVxcdTEzRkRcXHUxNDAxLVxcdTE2NkNcXHUxNjZGLVxcdTE2N0ZcXHUxNjgxLVxcdTE2OUFcXHUxNkEwLVxcdTE2RUFcXHUxNkYxLVxcdTE2RjhcXHUxNzAwLVxcdTE3MENcXHUxNzBFLVxcdTE3MTFcXHUxNzIwLVxcdTE3MzFcXHUxNzQwLVxcdTE3NTFcXHUxNzYwLVxcdTE3NkNcXHUxNzZFLVxcdTE3NzBcXHUxNzgwLVxcdTE3QjNcXHUxN0Q3XFx1MTdEQ1xcdTE4MjAtXFx1MTg3OFxcdTE4ODAtXFx1MTg4NFxcdTE4ODctXFx1MThBOFxcdTE4QUFcXHUxOEIwLVxcdTE4RjVcXHUxOTAwLVxcdTE5MUVcXHUxOTUwLVxcdTE5NkRcXHUxOTcwLVxcdTE5NzRcXHUxOTgwLVxcdTE5QUJcXHUxOUIwLVxcdTE5QzlcXHUxQTAwLVxcdTFBMTZcXHUxQTIwLVxcdTFBNTRcXHUxQUE3XFx1MUIwNS1cXHUxQjMzXFx1MUI0NS1cXHUxQjRCXFx1MUI4My1cXHUxQkEwXFx1MUJBRVxcdTFCQUZcXHUxQkJBLVxcdTFCRTVcXHUxQzAwLVxcdTFDMjNcXHUxQzRELVxcdTFDNEZcXHUxQzVBLVxcdTFDN0RcXHUxQzgwLVxcdTFDODhcXHUxQzkwLVxcdTFDQkFcXHUxQ0JELVxcdTFDQkZcXHUxQ0U5LVxcdTFDRUNcXHUxQ0VFLVxcdTFDRjNcXHUxQ0Y1XFx1MUNGNlxcdTFDRkFcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE4M1xcdTIxODRcXHUyQzAwLVxcdTJDMkVcXHUyQzMwLVxcdTJDNUVcXHUyQzYwLVxcdTJDRTRcXHUyQ0VCLVxcdTJDRUVcXHUyQ0YyXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEODAtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJFMkZcXHUzMDA1XFx1MzAwNlxcdTMwMzEtXFx1MzAzNVxcdTMwM0JcXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJGXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkVGXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjFGXFx1QTYyQVxcdUE2MkJcXHVBNjQwLVxcdUE2NkVcXHVBNjdGLVxcdUE2OURcXHVBNkEwLVxcdUE2RTVcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3QkZcXHVBN0MyLVxcdUE3QzZcXHVBN0Y3LVxcdUE4MDFcXHVBODAzLVxcdUE4MDVcXHVBODA3LVxcdUE4MEFcXHVBODBDLVxcdUE4MjJcXHVBODQwLVxcdUE4NzNcXHVBODgyLVxcdUE4QjNcXHVBOEYyLVxcdUE4RjdcXHVBOEZCXFx1QThGRFxcdUE4RkVcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUNGXFx1QTlFMC1cXHVBOUU0XFx1QTlFNi1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVBXFx1QUFGMi1cXHVBQUY0XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjY3XFx1QUI3MC1cXHVBQkUyXFx1QUMwMC1cXHVEN0EzXFx1RDdCMC1cXHVEN0M2XFx1RDdDQi1cXHVEN0ZCXFx1RjkwMC1cXHVGQTZEXFx1RkE3MC1cXHVGQUQ5XFx1RkIwMC1cXHVGQjA2XFx1RkIxMy1cXHVGQjE3XFx1RkIxRFxcdUZCMUYtXFx1RkIyOFxcdUZCMkEtXFx1RkIzNlxcdUZCMzgtXFx1RkIzQ1xcdUZCM0VcXHVGQjQwXFx1RkI0MVxcdUZCNDNcXHVGQjQ0XFx1RkI0Ni1cXHVGQkIxXFx1RkJEMy1cXHVGRDNEXFx1RkQ1MC1cXHVGRDhGXFx1RkQ5Mi1cXHVGREM3XFx1RkRGMC1cXHVGREZCXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYyMS1cXHVGRjNBXFx1RkY0MS1cXHVGRjVBXFx1RkY2Ni1cXHVGRkJFXFx1RkZDMi1cXHVGRkM3XFx1RkZDQS1cXHVGRkNGXFx1RkZEMi1cXHVGRkQ3XFx1RkZEQS1cXHVGRkRDXXxcXHVEODAwW1xcdURDMDAtXFx1REMwQlxcdURDMEQtXFx1REMyNlxcdURDMjgtXFx1REMzQVxcdURDM0NcXHVEQzNEXFx1REMzRi1cXHVEQzREXFx1REM1MC1cXHVEQzVEXFx1REM4MC1cXHVEQ0ZBXFx1REU4MC1cXHVERTlDXFx1REVBMC1cXHVERUQwXFx1REYwMC1cXHVERjFGXFx1REYyRC1cXHVERjQwXFx1REY0Mi1cXHVERjQ5XFx1REY1MC1cXHVERjc1XFx1REY4MC1cXHVERjlEXFx1REZBMC1cXHVERkMzXFx1REZDOC1cXHVERkNGXXxcXHVEODAxW1xcdURDMDAtXFx1REM5RFxcdURDQjAtXFx1RENEM1xcdURDRDgtXFx1RENGQlxcdUREMDAtXFx1REQyN1xcdUREMzAtXFx1REQ2M1xcdURFMDAtXFx1REYzNlxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY2N118XFx1RDgwMltcXHVEQzAwLVxcdURDMDVcXHVEQzA4XFx1REMwQS1cXHVEQzM1XFx1REMzN1xcdURDMzhcXHVEQzNDXFx1REMzRi1cXHVEQzU1XFx1REM2MC1cXHVEQzc2XFx1REM4MC1cXHVEQzlFXFx1RENFMC1cXHVEQ0YyXFx1RENGNFxcdURDRjVcXHVERDAwLVxcdUREMTVcXHVERDIwLVxcdUREMzlcXHVERDgwLVxcdUREQjdcXHVEREJFXFx1RERCRlxcdURFMDBcXHVERTEwLVxcdURFMTNcXHVERTE1LVxcdURFMTdcXHVERTE5LVxcdURFMzVcXHVERTYwLVxcdURFN0NcXHVERTgwLVxcdURFOUNcXHVERUMwLVxcdURFQzdcXHVERUM5LVxcdURFRTRcXHVERjAwLVxcdURGMzVcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNzJcXHVERjgwLVxcdURGOTFdfFxcdUQ4MDNbXFx1REMwMC1cXHVEQzQ4XFx1REM4MC1cXHVEQ0IyXFx1RENDMC1cXHVEQ0YyXFx1REQwMC1cXHVERDIzXFx1REYwMC1cXHVERjFDXFx1REYyN1xcdURGMzAtXFx1REY0NVxcdURGRTAtXFx1REZGNl18XFx1RDgwNFtcXHVEQzAzLVxcdURDMzdcXHVEQzgzLVxcdURDQUZcXHVEQ0QwLVxcdURDRThcXHVERDAzLVxcdUREMjZcXHVERDQ0XFx1REQ1MC1cXHVERDcyXFx1REQ3NlxcdUREODMtXFx1RERCMlxcdUREQzEtXFx1RERDNFxcdUREREFcXHVERERDXFx1REUwMC1cXHVERTExXFx1REUxMy1cXHVERTJCXFx1REU4MC1cXHVERTg2XFx1REU4OFxcdURFOEEtXFx1REU4RFxcdURFOEYtXFx1REU5RFxcdURFOUYtXFx1REVBOFxcdURFQjAtXFx1REVERVxcdURGMDUtXFx1REYwQ1xcdURGMEZcXHVERjEwXFx1REYxMy1cXHVERjI4XFx1REYyQS1cXHVERjMwXFx1REYzMlxcdURGMzNcXHVERjM1LVxcdURGMzlcXHVERjNEXFx1REY1MFxcdURGNUQtXFx1REY2MV18XFx1RDgwNVtcXHVEQzAwLVxcdURDMzRcXHVEQzQ3LVxcdURDNEFcXHVEQzVGXFx1REM4MC1cXHVEQ0FGXFx1RENDNFxcdURDQzVcXHVEQ0M3XFx1REQ4MC1cXHVEREFFXFx1REREOC1cXHVERERCXFx1REUwMC1cXHVERTJGXFx1REU0NFxcdURFODAtXFx1REVBQVxcdURFQjhcXHVERjAwLVxcdURGMUFdfFxcdUQ4MDZbXFx1REMwMC1cXHVEQzJCXFx1RENBMC1cXHVEQ0RGXFx1RENGRlxcdUREQTAtXFx1RERBN1xcdUREQUEtXFx1REREMFxcdURERTFcXHVEREUzXFx1REUwMFxcdURFMEItXFx1REUzMlxcdURFM0FcXHVERTUwXFx1REU1Qy1cXHVERTg5XFx1REU5RFxcdURFQzAtXFx1REVGOF18XFx1RDgwN1tcXHVEQzAwLVxcdURDMDhcXHVEQzBBLVxcdURDMkVcXHVEQzQwXFx1REM3Mi1cXHVEQzhGXFx1REQwMC1cXHVERDA2XFx1REQwOFxcdUREMDlcXHVERDBCLVxcdUREMzBcXHVERDQ2XFx1REQ2MC1cXHVERDY1XFx1REQ2N1xcdURENjhcXHVERDZBLVxcdUREODlcXHVERDk4XFx1REVFMC1cXHVERUYyXXxcXHVEODA4W1xcdURDMDAtXFx1REY5OV18XFx1RDgwOVtcXHVEQzgwLVxcdURENDNdfFtcXHVEODBDXFx1RDgxQy1cXHVEODIwXFx1RDg0MC1cXHVEODY4XFx1RDg2QS1cXHVEODZDXFx1RDg2Ri1cXHVEODcyXFx1RDg3NC1cXHVEODc5XVtcXHVEQzAwLVxcdURGRkZdfFxcdUQ4MERbXFx1REMwMC1cXHVEQzJFXXxcXHVEODExW1xcdURDMDAtXFx1REU0Nl18XFx1RDgxQVtcXHVEQzAwLVxcdURFMzhcXHVERTQwLVxcdURFNUVcXHVERUQwLVxcdURFRURcXHVERjAwLVxcdURGMkZcXHVERjQwLVxcdURGNDNcXHVERjYzLVxcdURGNzdcXHVERjdELVxcdURGOEZdfFxcdUQ4MUJbXFx1REU0MC1cXHVERTdGXFx1REYwMC1cXHVERjRBXFx1REY1MFxcdURGOTMtXFx1REY5RlxcdURGRTBcXHVERkUxXFx1REZFM118XFx1RDgyMVtcXHVEQzAwLVxcdURGRjddfFxcdUQ4MjJbXFx1REMwMC1cXHVERUYyXXxcXHVEODJDW1xcdURDMDAtXFx1REQxRVxcdURENTAtXFx1REQ1MlxcdURENjQtXFx1REQ2N1xcdURENzAtXFx1REVGQl18XFx1RDgyRltcXHVEQzAwLVxcdURDNkFcXHVEQzcwLVxcdURDN0NcXHVEQzgwLVxcdURDODhcXHVEQzkwLVxcdURDOTldfFxcdUQ4MzVbXFx1REMwMC1cXHVEQzU0XFx1REM1Ni1cXHVEQzlDXFx1REM5RVxcdURDOUZcXHVEQ0EyXFx1RENBNVxcdURDQTZcXHVEQ0E5LVxcdURDQUNcXHVEQ0FFLVxcdURDQjlcXHVEQ0JCXFx1RENCRC1cXHVEQ0MzXFx1RENDNS1cXHVERDA1XFx1REQwNy1cXHVERDBBXFx1REQwRC1cXHVERDE0XFx1REQxNi1cXHVERDFDXFx1REQxRS1cXHVERDM5XFx1REQzQi1cXHVERDNFXFx1REQ0MC1cXHVERDQ0XFx1REQ0NlxcdURENEEtXFx1REQ1MFxcdURENTItXFx1REVBNVxcdURFQTgtXFx1REVDMFxcdURFQzItXFx1REVEQVxcdURFREMtXFx1REVGQVxcdURFRkMtXFx1REYxNFxcdURGMTYtXFx1REYzNFxcdURGMzYtXFx1REY0RVxcdURGNTAtXFx1REY2RVxcdURGNzAtXFx1REY4OFxcdURGOEEtXFx1REZBOFxcdURGQUEtXFx1REZDMlxcdURGQzQtXFx1REZDQl18XFx1RDgzOFtcXHVERDAwLVxcdUREMkNcXHVERDM3LVxcdUREM0RcXHVERDRFXFx1REVDMC1cXHVERUVCXXxcXHVEODNBW1xcdURDMDAtXFx1RENDNFxcdUREMDAtXFx1REQ0M1xcdURENEJdfFxcdUQ4M0JbXFx1REUwMC1cXHVERTAzXFx1REUwNS1cXHVERTFGXFx1REUyMVxcdURFMjJcXHVERTI0XFx1REUyN1xcdURFMjktXFx1REUzMlxcdURFMzQtXFx1REUzN1xcdURFMzlcXHVERTNCXFx1REU0MlxcdURFNDdcXHVERTQ5XFx1REU0QlxcdURFNEQtXFx1REU0RlxcdURFNTFcXHVERTUyXFx1REU1NFxcdURFNTdcXHVERTU5XFx1REU1QlxcdURFNURcXHVERTVGXFx1REU2MVxcdURFNjJcXHVERTY0XFx1REU2Ny1cXHVERTZBXFx1REU2Qy1cXHVERTcyXFx1REU3NC1cXHVERTc3XFx1REU3OS1cXHVERTdDXFx1REU3RVxcdURFODAtXFx1REU4OVxcdURFOEItXFx1REU5QlxcdURFQTEtXFx1REVBM1xcdURFQTUtXFx1REVBOVxcdURFQUItXFx1REVCQl18XFx1RDg2OVtcXHVEQzAwLVxcdURFRDZcXHVERjAwLVxcdURGRkZdfFxcdUQ4NkRbXFx1REMwMC1cXHVERjM0XFx1REY0MC1cXHVERkZGXXxcXHVEODZFW1xcdURDMDAtXFx1REMxRFxcdURDMjAtXFx1REZGRl18XFx1RDg3M1tcXHVEQzAwLVxcdURFQTFcXHVERUIwLVxcdURGRkZdfFxcdUQ4N0FbXFx1REMwMC1cXHVERkUwXXxcXHVEODdFW1xcdURDMDAtXFx1REUxRF0pKSdcclxuICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJlZ2V4ICs9IGMucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICBnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzay5fX0NBQ0hFX19bY2FjaGVLZXldID0gcmVnZXhcclxuICB9XHJcblxyXG4gIHJldHVybiBnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzay5fX0NBQ0hFX19bY2FjaGVLZXldXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVbm1hc2sgdGhlIGdpdmVuIHZhbHVlXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrZWRWYWx1ZSBtYXNrZWQgc3RyaW5nXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrICB0aGUgdXNlZCBtYXNrIHRvIHByb2R1Y2UgdGhlIG1hc2tlZCBzdHJpbmdcclxuICovXHJcbmNvbnN0IHVubWFzayA9IChtYXNrZWRWYWx1ZSwgbWFzaykgPT4ge1xyXG4gIGlmICh0eXBlb2YgdW5tYXNrLl9fQ0FDSEVfXyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgIHVubWFzay5fX0NBQ0hFX18gPSB7fVxyXG4gIH1cclxuXHJcbiAgY29uc3QgY2FjaGVLZXkgPSBgJHttYXNrZWRWYWx1ZX0tJHttYXNrfWBcclxuXHJcbiAgaWYgKCF1bm1hc2suX19DQUNIRV9fW2NhY2hlS2V5XSkge1xyXG4gICAgY29uc3QgbWFza0FzQXJyYXkgPSBtYXNrLnNwbGl0KCcnKVxyXG4gICAgY29uc3QgbWFza2VkVmFsdWVBc0FycmF5ID0gbWFza2VkVmFsdWUuc3BsaXQoJycpXHJcblxyXG4gICAgbGV0IHVubWFza2VkID0gJydcclxuXHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWFza2VkVmFsdWVBc0FycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBlbCA9IG1hc2tlZFZhbHVlQXNBcnJheVtpbmRleF1cclxuICAgICAgY29uc3QgbWFzayA9IG1hc2tBc0FycmF5W2luZGV4XVxyXG4gICAgICBjb25zdCBlbEhhc01hc2sgPSBTVVBQT1JURURfTUFTS1MuaW5kZXhPZihtYXNrKSA+IC0xXHJcbiAgICAgIGlmIChlbEhhc01hc2spIHtcclxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChcclxuICAgICAgICAgIGdlbmVyYXRlUGF0dGVybkZyb21NYXNrKG1hc2spLFxyXG4gICAgICAgICAgSVNfVU5JQ09ERV9QUk9QRVJUWV9TVVBQT1JURUQgPyAndScgOiAnJ1xyXG4gICAgICAgIClcclxuICAgICAgICBpZiAocGF0dGVybi50ZXN0KGVsKSkgdW5tYXNrZWQgKz0gZWxcclxuICAgICAgICBlbHNlIGJyZWFrXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bm1hc2suX19DQUNIRV9fW2NhY2hlS2V5XSA9IHVubWFza2VkLnRvTG9jYWxlTG93ZXJDYXNlKClcclxuICB9XHJcblxyXG4gIHJldHVybiB1bm1hc2suX19DQUNIRV9fW2NhY2hlS2V5XVxyXG59XHJcblxyXG4vKipcclxuICogR2l2ZW4gdGhlIG1hc2tlZCBzdHJpbmcgLCBmaW5kIHRoZSBuZXh0IGNhcmV0IHBvc2l0aW9uIGRlcGVuZGluZyBvblxyXG4gKiB3aGF0IGlzIG1pc3NpbmcgdG8gY29tcGxldGUgdGhlIG1hc2tcclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IG1hc2tlZFZhbHVlIG1hc2tlZCBzdHJpbmdcclxuICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgIHRoZSB1c2VkIG1hc2sgdG8gcHJvZHVjZSB0aGUgbWFza2VkIHN0cmluZ1xyXG4gKi9cclxuY29uc3QgZmluZENhcmV0UG9zaXRpb24gPSAobWFza2VkVmFsdWUsIG1hc2spID0+IHtcclxuICBpZiAodHlwZW9mIGZpbmRDYXJldFBvc2l0aW9uLl9fQ0FDSEVfXyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgIGZpbmRDYXJldFBvc2l0aW9uLl9fQ0FDSEVfXyA9IHt9XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYWNoZUtleSA9IGAke21hc2tlZFZhbHVlfS0ke21hc2t9YFxyXG4gIGlmICghZmluZENhcmV0UG9zaXRpb24uX19DQUNIRV9fW2NhY2hlS2V5XSkge1xyXG4gICAgY29uc3QgbWFza0FzQXJyYXkgPSBtYXNrLnNwbGl0KCcnKVxyXG4gICAgbGV0IG1hc2tlZFZhbHVlQXNBcnJheSA9IG1hc2tlZFZhbHVlLnNwbGl0KCcnKVxyXG4gICAgaWYgKG1hc2tlZFZhbHVlQXNBcnJheS5sZW5ndGggPCBtYXNrQXNBcnJheS5sZW5ndGgpIHtcclxuICAgICAgbWFza2VkVmFsdWVBc0FycmF5ID0gbWFza2VkVmFsdWVBc0FycmF5LmNvbmNhdChcclxuICAgICAgICBuZXcgQXJyYXkobWFza0FzQXJyYXkubGVuZ3RoIC0gbWFza2VkVmFsdWVBc0FycmF5Lmxlbmd0aCkuam9pbignICcpLnNwbGl0KCcnKVxyXG4gICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBvc2l0aW9uID0gLTFcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXNrQXNBcnJheS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgZWwgPSBtYXNrQXNBcnJheVtpbmRleF1cclxuICAgICAgaWYgKGVsICE9PSBtYXNrZWRWYWx1ZUFzQXJyYXlbaW5kZXhdKSB7XHJcbiAgICAgICAgLy8gaWYgKG1hc2tlZFZhbHVlQXNBcnJheVtpbmRleF0gPT09ICcgJykgcmV0dXJuIGluZGV4XHJcbiAgICAgICAgaWYgKFNVUFBPUlRFRF9NQVNLUy5pbmRleE9mKGVsKSA+IC0xKSB7XHJcbiAgICAgICAgICBjb25zdCBwYXR0ZXJuID0gbmV3IFJlZ0V4cChcclxuICAgICAgICAgICAgZ2VuZXJhdGVQYXR0ZXJuRnJvbU1hc2soZWwpLFxyXG4gICAgICAgICAgICBJU19VTklDT0RFX1BST1BFUlRZX1NVUFBPUlRFRCA/ICd1JyA6ICcnXHJcbiAgICAgICAgICApXHJcblxyXG4gICAgICAgICAgaWYgKCFwYXR0ZXJuLnRlc3QobWFza2VkVmFsdWVBc0FycmF5W2luZGV4XSkpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24gPSBpbmRleFxyXG4gICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpbmRDYXJldFBvc2l0aW9uLl9fQ0FDSEVfX1tjYWNoZUtleV0gPVxyXG4gICAgICBwb3NpdGlvbiA8IDAgPyBtYXNrZWRWYWx1ZUFzQXJyYXkubGVuZ3RoIDogcG9zaXRpb25cclxuICB9XHJcblxyXG4gIHJldHVybiBmaW5kQ2FyZXRQb3NpdGlvbi5fX0NBQ0hFX19bY2FjaGVLZXldXHJcbn1cclxuXHJcbmV4cG9ydCB7XHJcbiAgaXNNYXNrZWRWYWx1ZSxcclxuICBtYXNrSWZOb3RNYXNrZWQsXHJcbiAgdW5tYXNrLFxyXG4gIGZpbmRDYXJldFBvc2l0aW9uLFxyXG4gIGdlbmVyYXRlUGF0dGVybkZyb21NYXNrLFxyXG4gIElTX1VOSUNPREVfUFJPUEVSVFlfU1VQUE9SVEVELFxyXG59XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UZXh0SW5wdXQvdG9vbHMuanMiLCIvKlxyXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1pbnB1dC1tYXNraW5nIGxpYi5cclxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxyXG4gKlxyXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxyXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cclxuICovXHJcblxyXG5pbXBvcnQgTnVtYmVySW5wdXQgZnJvbSAnLi9OdW1iZXJJbnB1dCdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE51bWJlcklucHV0XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9OdW1iZXJJbnB1dC9pbmRleC5qcyIsIi8qXHJcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWlucHV0LW1hc2tpbmcgbGliLlxyXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XHJcbiAqXHJcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXHJcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBOdW1iZXJNYXNrIGZyb20gJ2Jiai1tYXNrcy9zcmMvTnVtYmVyTWFzaydcclxuXHJcbmNvbnN0IGNvdW50RGVjaW1hbHMgPSB2YWx1ZSA9PiB7XHJcbiAgaWYgKHZhbHVlICUgMSAhPSAwKSB7XHJcbiAgICBjb25zdCBzcGxpdCA9IHZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKVxyXG4gICAgaWYgKHNwbGl0Lmxlbmd0aCA9PT0gMikgcmV0dXJuIHNwbGl0WzFdLmxlbmd0aFxyXG4gIH1cclxuICByZXR1cm4gMFxyXG59XHJcblxyXG4vKipcclxuICogVGhlIGBOdW1iZXJJbnB1dGAgd2lsbCB3cmFwIHRleHQgaW5wdXRzIGFuZCBhcHBseSB0aGUgZ2l2ZW4gW2JiaiBOdW1iZXIgbWFza10oaHR0cHM6Ly9naXRodWIuY29tL0Jhc2lzSHViL2Jiai1tYXNrcyNudW1iZXItbWFza3MpXHJcbiAqXHJcbiAqICoqT3B0aW9ucyoqXHJcbiAqXHJcbiAqIF9PcHRpb25zIGNhbiBiZSBwYXNzZWQgdmlhIGRhdGEgYXR0cmlidXRlcyAuIEZvciBkYXRhIGF0dHJpYnV0ZXMsIGFwcGVuZCB0aGUgb3B0aW9uIG5hbWUgdG8gZGF0YS0sIGFzIGluIGRhdGEtbWFza19cclxuICpcclxuICogfCBPcHRpb24gICAgfCBEZWZhdWx0IHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XHJcbiAqIHwtLS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxyXG4gKiB8IG1hc2sgfCAgICAgICAgIHwgVGhlIGJiaiBudW1iZXIgbWFzayBAc2VlIFtCQmogTnVtYmVyIE1hc2tzXShodHRwczovL2dpdGh1Yi5jb20vQmFzaXNIdWIvYmJqLW1hc2tzI251bWJlci1tYXNrcykgfFxyXG4gKiB8IG1pbiB8ICAgICAgICAgfCBUaGUgbWF4aW11bSB2YWx1ZSB0byBhY2NlcHQgZm9yIHRoaXMgaW5wdXR8XHJcbiAqIHwgbWF4IHwgICAgICAgICB8IFRoZSBtaW5pbXVtIHZhbHVlIHRvIGFjY2VwdCBmb3IgdGhpcyBpbnB1dHxcclxuICogfCBzdGVwIHwgICAgICAgICB8IEEgc3RlcHBpbmcgaW50ZXJ2YWwgdG8gdXNlIHdoZW4gdXNpbmcgdXAgYW5kIGRvd24gYXJyb3dzIHRvIGFkanVzdCB0aGUgdmFsdWUsIGFzIHdlbGwgYXMgZm9yIHZhbGlkYXRpb258XHJcbiAqIHxncm91cGluZy1zZXBhcmF0b3IgfCAsIHwgYSBjaGFyIHdoaWNoIHdpbGwgYmUgdXNlZCBhcyBhIGdyb3VwaW5nIHNlcGFyYXRvciB8XHJcbiAqIHxkZWNpbWFsLXNlcGFyYXRvciB8IC4gfCBhIGNoYXIgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIGEgZGVjaW1hbCBzZXBhcmF0b3IgfFxyXG4gKiB8Zm9yY2UtdHJhaWxpbmctemVyb3MgfCBmYWxzZSB8IEFmZmVjdHMgdGhlIG91dHB1dCBieSBzd2l0Y2hpbmcgdGhlIHdheSBhIG1hc2sgd2l0aCBcIiNcIiBjaGFyYWN0ZXJzIGluIHRoZSB0cmFpbGluZyBwb3NpdGlvbnMgaXMgZmlsbGVkLiBmb3IgZXhhbXBsZSwgdGhlIGZ1bmN0aW9uIE51bWJlck1hc2subWFzayguMTA6XCIjLiMjXCIpIHJldHVybnMgLjEwIGluc3RlYWQgb2YgLjF8XHJcbiAqXHJcbiAqICA8YnI+XHJcbiAqXHJcbiAqICoqRXhhbXBsZSA6KipcclxuICogYGBgaHRtbFxyXG4gKiAgPGlucHV0IGNsYXNzPVwiYmJqLW51bWJlci1tYXNrZWRcIiBuYW1lPVwidGVzdFwiIGlkPVwidGVzdFwiIHZhbHVlPVwiMTIzNFwiIGRhdGEtbWFzaz1cIiMjLCMjMFwiPlxyXG4gKlxyXG4gKiAgPHNjcmlwdD5cclxuICogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uIChlKSB7XHJcbiAqICAgICAgbmV3IEJhc2lzLklucHV0TWFza2luZy5OdW1iZXJJbnB1dCh7XHJcbiAqXHJcbiAqICAgICAgICAgLy8gQHBhcmFtIHtTdHJpbmd9IHZhbHVlTWFza2VkICBtYXNrZWQgdmFsdWVcclxuICogICAgICAgICAvLyBAcGFyYW0ge051bWJlcn0gdmFsdWVVbm1hc2tlZCAgb3JpZ2luYWwgdmFsdWVcclxuICogICAgICAgICAvLyBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGlucHV0IHRoZSBhY3R1YWwgaW5wdXQgaW5zdGFuY2VcclxuICogICAgICAgICBvblVwZGF0ZTogKHZhbHVlTWFza2VkLCB2YWx1ZVVubWFza2VkLCBpbnB1dCwgaXNBcHBsaWVkLCBpc0luaXRpYWwpID0+IHtcclxuICogICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcclxuICogICAgICAgICB9LFxyXG4gKlxyXG4gKiAgICAgICAgIC8vIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZXJyb3IgbGFzdCBvY2N1cnJlZCBlcnJvci4gY291bGQgYmUgbWFzayBlcnJvciBvciB2YWxpZGF0aW9uIGVycm9yXHJcbiAqICAgICAgICAgLy8gQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBpbnB1dCB0aGUgYWN0dWFsIGlucHV0IGluc3RhbmNlXHJcbiAqICAgICAgICAgb25JbnZhbGlkOiAoZXJyICwgaW5wdXQpID0+IHtcclxuICogICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcclxuICogICAgICAgICB9XHJcbiAqICAgICAgfSlcclxuICogICAgfSlcclxuICogIDwvc2NyaXB0PlxyXG4gKiBgYGBcclxuICpcclxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cclxuICovXHJcbmNsYXNzIE51bWJlcklucHV0IHtcclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3QgbmV3IE51bWJlcklucHV0XHJcbiAgICpcclxuICAgKiBAcGFyYW0gez9PYmplY3R9IG9wdGlvbnMgLSBUaGUgaW5wdXQgb3B0aW9ucy5cclxuICAgKiBAcGFyYW0ge0hUTUxFbGVtZW50fFN0cmluZ30gW29wdGlvbnMuZWxlbWVudHM9XCIuYmJqLW51bWJlci1tYXNrZWRcIl0gLSBUaGUgY2xhc3MgbmFtZSBvciB0aGUgbm9kZSB0byB1c2VcclxuICAgKiBAcGFyYW0ge0hUTUxEb2N1bWVudH0gW29wdGlvbnMuZG9jdW1lbnQ9ZG9jdW1lbnRdIC0gRG9jdW1lbnQgaW5zdGFuY2UgdG8gdXNlXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLmNzc0NsYXNzRXJyb3I9XCJiYmotbWFzay1lcnJvclwiXSAtIEEgY3NzIGNsYXNzIHRvIGF0dGFjaCB0byB0aGUgaW5wdXQgd2hlbiBpdCBpcyBpbnZhbGlkXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLmNzc0NsYXNzU3VjY2Vzcz1cImJiai1tYXNrLXN1Y2Nlc3NcIl0gLSBBIGNzcyBjbGFzcyB0byBhdHRhY2ggdG8gdGhlIGlucHV0IHdoZW4gaXQgaXMgdmFsaWQgYWZ0ZXIgdGhlIHVzZXIgaW50ZXJhY3Rpb25cclxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0aW9ucy5vblVwZGF0ZT1udWxsXSAtIEEgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIG9uIHRoZSBuZXcgbWFza2VkIHZhbHVlIGlzIHNldFxyXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLm9uSW52YWxpZD1udWxsXSAtIEEgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIG9uIHRoZSBpbnB1dCBvciB0aGUgbWFzayBpcyBpbnZhbGlkXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB7XHJcbiAgICAgIC4uLntcclxuICAgICAgICBlbGVtZW50czogJy5iYmotbnVtYmVyLW1hc2tlZCcsXHJcbiAgICAgICAgZG9jOiBkb2N1bWVudCxcclxuICAgICAgICBjc3NDbGFzc0Vycm9yOiAnYmJqLW1hc2stZXJyb3InLFxyXG4gICAgICAgIGNzc0NsYXNzU3VjY2VzczogJ2Jiai1tYXNrLXN1Y2Nlc3MnLFxyXG4gICAgICAgIG9uVXBkYXRlOiBudWxsLFxyXG4gICAgICAgIG9uSW52YWxpZDogbnVsbCxcclxuICAgICAgfSxcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9hY3R1YWxJbnB1dEhhbmRsZXIgPSB0aGlzLl9hY3R1YWxJbnB1dEhhbmRsZXIuYmluZCh0aGlzKVxyXG4gICAgdGhpcy5fdW5tYXNrZWRJbnB1dEhhbmRsZXIgPSB0aGlzLl91bm1hc2tlZElucHV0SGFuZGxlci5iaW5kKHRoaXMpXHJcbiAgICB0aGlzLnJlZnJlc2goKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50IGFuZCB3cmFwIHRoZSBpbnB1dCBlbGVtZW50cyBmb3IgbWFza2luZyBpbiBjYXNlXHJcbiAgICogdGhleSBhcmUgbm90IHdyYXBwZWQgeWV0XHJcbiAgICovXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID1cclxuICAgICAgdHlwZW9mIHRoaXMub3B0aW9ucy5lbGVtZW50cyA9PT0gJ3N0cmluZydcclxuICAgICAgICA/IHRoaXMub3B0aW9ucy5kb2MucXVlcnlTZWxlY3RvckFsbCh0aGlzLm9wdGlvbnMuZWxlbWVudHMpXHJcbiAgICAgICAgOiB0aGlzLm9wdGlvbnMuZWxlbWVudHNcclxuICAgIGxldCBpbnB1dCwgcGFyZW50Q2xhc3NcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlucHV0ID0gZWxlbWVudHNbaV1cclxuICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkge1xyXG4gICAgICAgIHBhcmVudENsYXNzID0gaW5wdXQucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoJ2NsYXNzJylcclxuXHJcbiAgICAgICAgaWYgKCFpbnB1dC5nZXRBdHRyaWJ1dGUoJ2lkJykpIHtcclxuICAgICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgICAgYEJCak1hc2tpbmc6IElucHV0IGhhcyBubyBJRC4gV2l0aG91dCBhbiBJRCB0aGUgaW5wdXQgY2Fubm90IGJlIG1hc2tlZGAsXHJcbiAgICAgICAgICAgIGlucHV0XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICBjb250aW51ZVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gd2UgZG9uJ3QgaW5pdGlhbGl6ZSB0aGUgaW5wdXQncyB3cmFwIHR3aWNlXHJcbiAgICAgICAgY29uc3QgaXNXcmFwcGVkID1cclxuICAgICAgICAgIHBhcmVudENsYXNzICYmIHBhcmVudENsYXNzLmluZGV4T2YoJ251bWJlcklucHV0TWFza19fd3JhcCcpID4gLTFcclxuICAgICAgICB0aGlzLl93cmFwKGlucHV0LCBpc1dyYXBwZWQpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgYEJCak1hc2tpbmc6IEludmFsaWQgaW5wdXQgZWxlbWVudC4gVGhlIGVsZW1lbnQgd2lsbCBiZSBpZ25vcmVkYCxcclxuICAgICAgICAgIGlucHV0XHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbndyYXAgdGhlIGlucHV0IGVsZW1lbnRzIGFuZCByZW1vdmUgYXR0YWNoZWQgbGlzdGVuZXJzXHJcbiAgICovXHJcbiAgZGVzdHJveSgpIHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID1cclxuICAgICAgdHlwZW9mIHRoaXMub3B0aW9ucy5lbGVtZW50cyA9PT0gJ3N0cmluZydcclxuICAgICAgICA/IHRoaXMub3B0aW9ucy5kb2MucXVlcnlTZWxlY3RvckFsbCh0aGlzLm9wdGlvbnMuZWxlbWVudHMpXHJcbiAgICAgICAgOiB0aGlzLm9wdGlvbnMuZWxlbWVudHNcclxuXHJcbiAgICBsZXQgaW5wdXQsIHBhcmVudCwgcGFyZW50Q2xhc3NcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlucHV0ID0gZWxlbWVudHNbaV1cclxuICAgICAgcGFyZW50ID0gaW5wdXQucGFyZW50Tm9kZVxyXG4gICAgICBwYXJlbnRDbGFzcyA9IHBhcmVudC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJylcclxuXHJcbiAgICAgIGlmIChwYXJlbnRDbGFzcyAmJiBwYXJlbnRDbGFzcy5pbmRleE9mKCdudW1iZXJJbnB1dE1hc2tfX3dyYXAnKSA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5fdW53cmFwKHBhcmVudClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSBudW1iZXIgbWFza2luZyBpbnB1dCB3cmFwcGVyXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGFjdHVhbElucHV0IHRoZSBpbnB1dCBlbGVtZW50XHJcbiAgICogQHBhcmFtIHtCb29sZWFufSBpc1dyYXBwZWQgd2hlbiB0cnVlIHRoZSBpbnB1dCBpcyBhbHJlYWR5IHdyYXBwZWQgYW5kIHdlIG5lZWQgdG8gYWRkIHdoYXQgaXNcclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNzaW5nIG9ubHlcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtIVE1MU3BhbkVsZW1lbnR9IHdyYXBwZXIgaW5zdGFuY2VcclxuICAgKlxyXG4gICAqIEBwcm90ZWN0ZWRcclxuICAgKi9cclxuICBfd3JhcChhY3R1YWxJbnB1dCwgaXNXcmFwcGVkKSB7XHJcbiAgICBjb25zdCBhY3R1YWxJbnB1dElkID0gYWN0dWFsSW5wdXQuZ2V0QXR0cmlidXRlKCdpZCcpLFxyXG4gICAgICBhY3R1YWxJbnB1dE5hbWUgPSBhY3R1YWxJbnB1dC5nZXRBdHRyaWJ1dGUoJ25hbWUnKSxcclxuICAgICAgYWN0dWFsSW5wdXRTdGVwID0gYWN0dWFsSW5wdXQuZGF0YXNldC5zdGVwIHx8IG51bGwsXHJcbiAgICAgIGFjdHVhbElucHV0TWF4ID0gYWN0dWFsSW5wdXQuZGF0YXNldC5tYXggfHwgbnVsbCxcclxuICAgICAgYWN0dWFsSW5wdXRNaW4gPSBhY3R1YWxJbnB1dC5kYXRhc2V0Lm1pbiB8fCBudWxsLFxyXG4gICAgICBhY3R1YWxJbnB1dEdyb3VwaW5nU2VwYXJhdG9yID1cclxuICAgICAgICBhY3R1YWxJbnB1dC5kYXRhc2V0Lmdyb3VwaW5nU2VwYXJhdG9yIHx8ICcsJyxcclxuICAgICAgYWN0dWFsSW5wdXREZWNpbWFsU2VwYXJhdG9yID0gYWN0dWFsSW5wdXQuZGF0YXNldC5kZWNpbWFsU2VwYXJhdG9yIHx8ICcuJyxcclxuICAgICAgYWN0dWFsSW5wdXRGb3JjZVRyYWlsaW5nWmVyb3MgPVxyXG4gICAgICAgIGFjdHVhbElucHV0LmRhdGFzZXQuZm9yY2VUcmFpbGluZ1plcm9zIHx8IG51bGwsXHJcbiAgICAgIGFjdHVhbElucHV0TWFzayA9IGFjdHVhbElucHV0LmRhdGFzZXQubWFzayB8fCAnJyxcclxuICAgICAgYWN0dWFsSW5wdXRDbGFzc2VzID0gYWN0dWFsSW5wdXQuZ2V0QXR0cmlidXRlKCdjbGFzcycpLFxyXG4gICAgICBhY3R1YWxJbnB1dFJlcXVpcmVkID0gYWN0dWFsSW5wdXQuZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpIHx8IG51bGxcclxuXHJcbiAgICBsZXQgd3JhcCA9IG51bGwsXHJcbiAgICAgIHVubWFza2VkSW5wdXQgPSBudWxsXHJcblxyXG4gICAgaWYgKCFpc1dyYXBwZWQpIHtcclxuICAgICAgd3JhcCA9IHRoaXMub3B0aW9ucy5kb2MuY3JlYXRlRWxlbWVudCgnc3BhbicpXHJcbiAgICAgIHVubWFza2VkSW5wdXQgPSB0aGlzLm9wdGlvbnMuZG9jLmNyZWF0ZUVsZW1lbnQoJ2lucHV0JykgLy8gaGlkZGVuIGlucHV0IHdpdGggdGhlIHVubWFza2VkIHZhbHVlcyBmb3IgZm9ybXNcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHdyYXAgPSBhY3R1YWxJbnB1dC5wYXJlbnROb2RlXHJcbiAgICAgIHVubWFza2VkSW5wdXQgPSB3cmFwLnF1ZXJ5U2VsZWN0b3IoJy5udW1iZXJJbnB1dE1hc2tfX3VubWFza2VkSW5wdXQnKVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvbmZpZ3VyZSB0aGUgYWN0dWFsIGlucHV0XHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgaWYgKCFpc1dyYXBwZWQpIHtcclxuICAgICAgYWN0dWFsSW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod3JhcCwgYWN0dWFsSW5wdXQpIC8vIG1vdmUgdGhlIGlucHV0IG91dHNpZGUgdGhlIHdyYXBwZXJcclxuICAgICAgaWYgKFxyXG4gICAgICAgICEoXHJcbiAgICAgICAgICBhY3R1YWxJbnB1dC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgfHxcclxuICAgICAgICAgIGFjdHVhbElucHV0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgYWN0dWFsSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9hY3R1YWxJbnB1dEhhbmRsZXIpXHJcbiAgICAgICAgYWN0dWFsSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIHRoaXMuX2FjdHVhbElucHV0SGFuZGxlcilcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFjdHVhbElucHV0LmRhdGFzZXQudmFsdWVVbm1hc2tlZCA9IGFjdHVhbElucHV0LnZhbHVlIHx8IDBcclxuICAgIGFjdHVhbElucHV0LmRhdGFzZXQuZ3JvdXBpbmdTZXBhcmF0b3IgPSBhY3R1YWxJbnB1dEdyb3VwaW5nU2VwYXJhdG9yXHJcbiAgICBhY3R1YWxJbnB1dC5kYXRhc2V0LmRlY2ltYWxTZXBhcmF0b3IgPSBhY3R1YWxJbnB1dERlY2ltYWxTZXBhcmF0b3JcclxuICAgIGFjdHVhbElucHV0LmRhdGFzZXQuZm9yY2VUcmFpbGluZ1plcm9zID0gYWN0dWFsSW5wdXRGb3JjZVRyYWlsaW5nWmVyb3NcclxuICAgIGFjdHVhbElucHV0LnZhbHVlID0gTnVtYmVyTWFzay5tYXNrKFxyXG4gICAgICBhY3R1YWxJbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWQsXHJcbiAgICAgIGFjdHVhbElucHV0TWFzayxcclxuICAgICAgYWN0dWFsSW5wdXRHcm91cGluZ1NlcGFyYXRvcixcclxuICAgICAgYWN0dWFsSW5wdXREZWNpbWFsU2VwYXJhdG9yLFxyXG4gICAgICBhY3R1YWxJbnB1dEZvcmNlVHJhaWxpbmdaZXJvc1xyXG4gICAgKS50cmltKClcclxuICAgIGFjdHVhbElucHV0LmNsYXNzTGlzdC5hZGQoXHJcbiAgICAgICdudW1iZXJJbnB1dE1hc2tfX3RleHRJbnB1dCcsXHJcbiAgICAgIHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3NcclxuICAgIClcclxuXHJcbiAgICAvLyBjb25maWd1cmUgdGhlIHVubWFza2VkIGlucHV0XHJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB1bm1hc2tlZElucHV0LnZhbHVlID0gYWN0dWFsSW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkXHJcbiAgICB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpXHJcbiAgICB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKVxyXG4gICAgdW5tYXNrZWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgYWN0dWFsSW5wdXRDbGFzc2VzKVxyXG4gICAgaWYgKGFjdHVhbElucHV0SWQpXHJcbiAgICAgIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCdpZCcsIGAke2FjdHVhbElucHV0SWR9LXVubWFza2VkYClcclxuICAgIGlmIChhY3R1YWxJbnB1dE5hbWUpXHJcbiAgICAgIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgYCR7YWN0dWFsSW5wdXROYW1lfS11bm1hc2tlZGApXHJcbiAgICBpZiAoYWN0dWFsSW5wdXRSZXF1aXJlZCkgdW5tYXNrZWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJywgJ3JlcXVpcmVkJylcclxuXHJcbiAgICBpZiAoYWN0dWFsSW5wdXRTdGVwKSB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgnc3RlcCcsIGFjdHVhbElucHV0U3RlcClcclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBkZWNpbWFscyA9IGNvdW50RGVjaW1hbHModW5tYXNrZWRJbnB1dC52YWx1ZSlcclxuICAgICAgbGV0IHN0ZXAgPSAnMSdcclxuICAgICAgaWYgKGRlY2ltYWxzID4gMCkge1xyXG4gICAgICAgIHN0ZXAgPSBgLiR7QXJyYXkoZGVjaW1hbHMpLmpvaW4oJzAnKX0xYFxyXG4gICAgICB9XHJcblxyXG4gICAgICB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgnc3RlcCcsIHN0ZXApXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFjdHVhbElucHV0TWluKSB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgnbWluJywgYWN0dWFsSW5wdXRNaW4pXHJcbiAgICBpZiAoYWN0dWFsSW5wdXRNYXgpIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCdtYXgnLCBhY3R1YWxJbnB1dE1heClcclxuICAgIHVubWFza2VkSW5wdXQuZGF0YXNldC5pbnB1dElkID0gYWN0dWFsSW5wdXRJZFxyXG4gICAgdW5tYXNrZWRJbnB1dC5kYXRhc2V0Lm1hc2sgPSBhY3R1YWxJbnB1dE1hc2tcclxuICAgIHVubWFza2VkSW5wdXQuZGF0YXNldC5ncm91cGluZ1NlcGFyYXRvciA9IGFjdHVhbElucHV0R3JvdXBpbmdTZXBhcmF0b3JcclxuICAgIHVubWFza2VkSW5wdXQuZGF0YXNldC5kZWNpbWFsU2VwYXJhdG9yID0gYWN0dWFsSW5wdXREZWNpbWFsU2VwYXJhdG9yXHJcbiAgICBpZiAoYWN0dWFsSW5wdXRGb3JjZVRyYWlsaW5nWmVyb3MpXHJcbiAgICAgIHVubWFza2VkSW5wdXQuZGF0YXNldC5mb3JjZVRyYWlsaW5nWmVyb3MgPSBhY3R1YWxJbnB1dEZvcmNlVHJhaWxpbmdaZXJvc1xyXG5cclxuICAgIGlmICghaXNXcmFwcGVkKSB7XHJcbiAgICAgIHVubWFza2VkSW5wdXQuY2xhc3NMaXN0LmFkZCgnbnVtYmVySW5wdXRNYXNrX191bm1hc2tlZElucHV0JylcclxuICAgICAgdW5tYXNrZWRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fdW5tYXNrZWRJbnB1dEhhbmRsZXIpXHJcbiAgICAgIHVubWFza2VkSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl91bm1hc2tlZElucHV0SGFuZGxlcilcclxuICAgICAgdW5tYXNrZWRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIHRoaXMuX3VubWFza2VkSW5wdXRIYW5kbGVyKVxyXG5cclxuICAgICAgLy8gY29uZmlndXJlIHRoZSB3cmFwcGVyXHJcbiAgICAgIHdyYXAuc2V0QXR0cmlidXRlKCdjbGFzcycsICdudW1iZXJJbnB1dE1hc2tfX3dyYXAnKVxyXG4gICAgICB3cmFwLmFwcGVuZENoaWxkKHVubWFza2VkSW5wdXQpXHJcbiAgICAgIHdyYXAuYXBwZW5kQ2hpbGQoYWN0dWFsSW5wdXQpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFpc05hTihOdW1iZXIoYWN0dWFsSW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkKSkpIHtcclxuICAgICAgaWYgKHRoaXMuX3ZhbGlkYXRlSW5wdXQodW5tYXNrZWRJbnB1dCwgYWN0dWFsSW5wdXQpKSB7XHJcbiAgICAgICAgdGhpcy5fX2ZpcmVPblVwZGF0ZShcclxuICAgICAgICAgIGFjdHVhbElucHV0LnZhbHVlLFxyXG4gICAgICAgICAgYWN0dWFsSW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkLFxyXG4gICAgICAgICAgYWN0dWFsSW5wdXRcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFjdHVhbElucHV0LmNsYXNzTGlzdC5hZGQodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHdyYXBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVud3JhcCB0aGUgbWFza2VkIGlucHV0IGFuZCByZW1vdmUgdGhlIHZhbHVlIGNoYW5nZWQgbGlzdGVuZXJcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SFRNTFNwYW5FbGVtZW50fSB0ZXh0SW5wdXQgdGhlIHdyYXBwZXIgc3BhbiBpbnN0YW5jZVxyXG4gICAqXHJcbiAgICogQHByb3RlY3RlZFxyXG4gICAqL1xyXG4gIF91bndyYXAodGV4dElucHV0KSB7XHJcbiAgICB0ZXh0SW5wdXQucmVtb3ZlQ2hpbGQoXHJcbiAgICAgIHRleHRJbnB1dC5xdWVyeVNlbGVjdG9yKCcubnVtYmVySW5wdXRNYXNrX191bm1hc2tlZElucHV0JylcclxuICAgIClcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IHRleHRJbnB1dC5xdWVyeVNlbGVjdG9yKCcubnVtYmVySW5wdXRNYXNrX190ZXh0SW5wdXQnKVxyXG4gICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9hY3R1YWxJbnB1dEhhbmRsZXIpXHJcbiAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgdGhpcy5fYWN0dWFsSW5wdXRIYW5kbGVyKVxyXG4gICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgnbnVtYmVySW5wdXRNYXNrX190ZXh0SW5wdXQnKVxyXG4gICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuICAgIGRlbGV0ZSBpbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWRcclxuXHJcbiAgICB0ZXh0SW5wdXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaW5wdXQsIHRleHRJbnB1dClcclxuICAgIHRleHRJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRleHRJbnB1dClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RlbiB0byBjbGljayBhbmQgZm9jdXNpbiBldmVudCBvbiB0aGUgYWN0dWFsIGlucHV0IGFuZCB0b2dnbGUgdGhlIG51bWJlciBpbnB1dFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtFdmVudH0gZVxyXG4gICAqXHJcbiAgICogQHByb3RlY3RlZFxyXG4gICAqL1xyXG4gIF9hY3R1YWxJbnB1dEhhbmRsZXIoZSkge1xyXG4gICAgY29uc3QgYWN0dWFsSW5wdXQgPSBlLnRhcmdldCxcclxuICAgICAgYWN0dWFsSW5wdXRJZCA9IGFjdHVhbElucHV0LmlkLFxyXG4gICAgICB1bm1hc2tlZElucHV0ID0gdGhpcy5vcHRpb25zLmRvYy5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgIGAjJHthY3R1YWxJbnB1dElkfS11bm1hc2tlZGBcclxuICAgICAgKVxyXG5cclxuICAgIGFjdHVhbElucHV0LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpXHJcbiAgICBhY3R1YWxJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJylcclxuXHJcbiAgICB1bm1hc2tlZElucHV0LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKVxyXG4gICAgdW5tYXNrZWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnbnVtYmVyJylcclxuICAgIHRoaXMuX3ZhbGlkYXRlSW5wdXQodW5tYXNrZWRJbnB1dCwgYWN0dWFsSW5wdXQpXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdW5tYXNrZWRJbnB1dC5mb2N1cygpXHJcbiAgICAgIGNvbnN0IGxlbmd0aCA9IFN0cmluZyh1bm1hc2tlZElucHV0LnZhbHVlKS5sZW5ndGhcclxuICAgICAgdW5tYXNrZWRJbnB1dC50eXBlID0gJ3RleHQnXHJcbiAgICAgIHVubWFza2VkSW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UobGVuZ3RoLCBsZW5ndGgpXHJcbiAgICAgIHVubWFza2VkSW5wdXQudHlwZSA9ICdudW1iZXInXHJcbiAgICB9LCAwKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGVuIHRvIHRoZSB1bm1hc2tlZCBpbnB1dCBrZXlkb3duIGFuZCBmb2N1c291dCBldmVudHMgYW5kIGNoZWNrXHJcbiAgICogaWYgdGhlIGlucHV0IHZhbHVlIGNhbiBiZSBtYXNrZWQgb3Igbm90XHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBlXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX3VubWFza2VkSW5wdXRIYW5kbGVyKGUpIHtcclxuICAgIGNvbnN0IHVubWFza2VkSW5wdXQgPSBlLnRhcmdldCxcclxuICAgICAga2V5Q29kZSA9IGUua2V5Q29kZSxcclxuICAgICAgbWFzayA9IHVubWFza2VkSW5wdXQuZGF0YXNldC5tYXNrLFxyXG4gICAgICBncm91cGluZ1NlcGFyYXRvciA9IHVubWFza2VkSW5wdXQuZGF0YXNldC5ncm91cGluZ1NlcGFyYXRvcixcclxuICAgICAgZGVjaW1hbFNlcGFyYXRvciA9IHVubWFza2VkSW5wdXQuZGF0YXNldC5kZWNpbWFsU2VwYXJhdG9yLFxyXG4gICAgICBmb3JjZVRyYWlsaW5nWmVyb3MgPSB1bm1hc2tlZElucHV0LmRhdGFzZXQuZm9yY2VUcmFpbGluZ1plcm9zLFxyXG4gICAgICBhY3R1YWxJbnB1dElkID0gdW5tYXNrZWRJbnB1dC5kYXRhc2V0LmlucHV0SWQsXHJcbiAgICAgIGFjdHVhbElucHV0ID0gdGhpcy5vcHRpb25zLmRvYy5xdWVyeVNlbGVjdG9yKGAjJHthY3R1YWxJbnB1dElkfWApXHJcblxyXG4gICAgbGV0IHJlc3RvcmUgPSBmYWxzZSxcclxuICAgICAgYXBwbHkgPSBmYWxzZSxcclxuICAgICAgbWFza2VkVmFsdWUgPSBmYWxzZSxcclxuICAgICAgaXNWYWxpZCA9IHRoaXMuX3ZhbGlkYXRlSW5wdXQodW5tYXNrZWRJbnB1dCwgYWN0dWFsSW5wdXQpXHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgbWFza2VkVmFsdWUgPSBOdW1iZXJNYXNrLm1hc2soXHJcbiAgICAgICAgdW5tYXNrZWRJbnB1dC52YWx1ZSB8fCAwLFxyXG4gICAgICAgIG1hc2ssXHJcbiAgICAgICAgZ3JvdXBpbmdTZXBhcmF0b3IsXHJcbiAgICAgICAgZGVjaW1hbFNlcGFyYXRvcixcclxuICAgICAgICBmb3JjZVRyYWlsaW5nWmVyb3MsXHJcbiAgICAgICAgZmFsc2VcclxuICAgICAgKS50cmltKClcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgbWFza2VkVmFsdWUgPSBmYWxzZVxyXG4gICAgICB0aGlzLl9fYXBwbHlDc3NDbGFzc1N0YXRlKHVubWFza2VkSW5wdXQsIGFjdHVhbElucHV0LCAnZXJyb3InKVxyXG4gICAgICB0aGlzLl9fZmlyZU9uSW52YWxpZChlLCBhY3R1YWxJbnB1dClcclxuICAgIH1cclxuXHJcbiAgICByZXN0b3JlID0gWzEzLCAyN10uaW5kZXhPZihrZXlDb2RlKSA+IC0xIHx8IGUudHlwZSA9PT0gJ2ZvY3Vzb3V0J1xyXG4gICAgYXBwbHkgPSBtYXNrZWRWYWx1ZSAmJiBpc1ZhbGlkXHJcblxyXG4gICAgaWYgKHJlc3RvcmUpIHtcclxuICAgICAgdW5tYXNrZWRJbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc0Vycm9yKVxyXG4gICAgICB1bm1hc2tlZElucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuXHJcbiAgICAgIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJylcclxuICAgICAgdW5tYXNrZWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJylcclxuXHJcbiAgICAgIGFjdHVhbElucHV0LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKVxyXG4gICAgICBhY3R1YWxJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpXHJcblxyXG4gICAgICBhY3R1YWxJbnB1dC5jbGFzc0xpc3QuYWRkKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcblxyXG4gICAgICBpZiAoYXBwbHkpIHtcclxuICAgICAgICBhY3R1YWxJbnB1dC52YWx1ZSA9IG1hc2tlZFZhbHVlXHJcbiAgICAgICAgYWN0dWFsSW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkID0gdW5tYXNrZWRJbnB1dC52YWx1ZVxyXG4gICAgICAgIHRoaXMuX19maXJlT25VcGRhdGUobWFza2VkVmFsdWUsIHVubWFza2VkSW5wdXQudmFsdWUsIGFjdHVhbElucHV0KVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVubWFza2VkSW5wdXQudmFsdWUgPSBhY3R1YWxJbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWRcclxuICAgICAgICB0aGlzLl9fYXBwbHlDc3NDbGFzc1N0YXRlKHVubWFza2VkSW5wdXQsIGFjdHVhbElucHV0LCAnc3VjY2VzcycpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyaWdnZXIgYGNoZWNrVmFsaWRpdHlgIG9uIHRoZSBpbnB1dFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSB1bm1hc2tlZElucHV0XHJcbiAgICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBhY3R1YWxJbnB1dFxyXG4gICAqXHJcbiAgICogQHJldHVybnMge0Jvb2xlYW59IHRydWUgd2hlbiB2YWxpZCAsIGZhbHNlIG90aGVyd2lzZVxyXG4gICAqXHJcbiAgICogQHByb3RlY3RlZFxyXG4gICAqL1xyXG4gIF92YWxpZGF0ZUlucHV0KHVubWFza2VkSW5wdXQsIGFjdHVhbElucHV0KSB7XHJcbiAgICBsZXQgaXNWYWxpZCA9IHRydWVcclxuICAgIGNvbnN0IHZhbHVlID0gTnVtYmVyKHVubWFza2VkSW5wdXQudmFsdWUpXHJcbiAgICBpZiAodW5tYXNrZWRJbnB1dC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PT0gJ2hpZGRlbicgJiYgIWlzTmFOKHZhbHVlKSkge1xyXG4gICAgICBjb25zdCBtYXggPSB1bm1hc2tlZElucHV0LmdldEF0dHJpYnV0ZSgnbWF4JylcclxuICAgICAgY29uc3QgbWluID0gdW5tYXNrZWRJbnB1dC5nZXRBdHRyaWJ1dGUoJ21pbicpXHJcbiAgICAgIGNvbnN0IHN0ZXAgPSB1bm1hc2tlZElucHV0LmdldEF0dHJpYnV0ZSgnc3RlcCcpXHJcblxyXG4gICAgICBpZiAobWluKSBpc1ZhbGlkID0gaXNWYWxpZCAmJiB2YWx1ZSA+PSBOdW1iZXIobWluKVxyXG4gICAgICBpZiAobWF4KSBpc1ZhbGlkID0gaXNWYWxpZCAmJiB2YWx1ZSA8PSBOdW1iZXIobWF4KVxyXG5cclxuICAgICAgaWYgKHN0ZXApXHJcbiAgICAgICAgaXNWYWxpZCA9XHJcbiAgICAgICAgICBpc1ZhbGlkICYmIGNvdW50RGVjaW1hbHMoc3RlcCkgPT09IGNvdW50RGVjaW1hbHModW5tYXNrZWRJbnB1dC52YWx1ZSlcclxuICAgIH0gZWxzZSBpc1ZhbGlkID0gdW5tYXNrZWRJbnB1dC5jaGVja1ZhbGlkaXR5KClcclxuXHJcbiAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICB0aGlzLl9fYXBwbHlDc3NDbGFzc1N0YXRlKHVubWFza2VkSW5wdXQsIGFjdHVhbElucHV0LCAnc3VjY2VzcycpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9fYXBwbHlDc3NDbGFzc1N0YXRlKHVubWFza2VkSW5wdXQsIGFjdHVhbElucHV0LCAnZXJyb3InKVxyXG4gICAgICB0aGlzLl9fZmlyZU9uSW52YWxpZChcclxuICAgICAgICB1bm1hc2tlZElucHV0LnZhbGlkYXRpb25NZXNzYWdlIHx8ICdWYWxpZGl0eSBjaGVjayBmYWlscycsXHJcbiAgICAgICAgYWN0dWFsSW5wdXRcclxuICAgICAgKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpc1ZhbGlkXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVNYXNrZWQgIG1hc2tlZCB2YWx1ZVxyXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB2YWx1ZVVubWFza2VkICBvcmlnaW5hbCB2YWx1ZVxyXG4gICAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gaW5wdXQgdGhlIGFjdHVhbCBpbnB1dCBpbnN0YW5jZVxyXG4gICAqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBfX2ZpcmVPblVwZGF0ZSh2YWx1ZU1hc2tlZCwgdmFsdWVVbm1hc2tlZCwgaW5wdXQpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMub25VcGRhdGUpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLm9uVXBkYXRlKHZhbHVlTWFza2VkLCB2YWx1ZVVubWFza2VkLCBpbnB1dClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZXJyb3IgbGFzdCBvY2N1cnJlZCBlcnJvci4gY291bGQgYmUgbWFzayBlcnJvciBvciB2YWxpZGF0aW9uIGVycm9yXHJcbiAgICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBpbnB1dCB0aGUgYWN0dWFsIGlucHV0IGluc3RhbmNlXHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIF9fZmlyZU9uSW52YWxpZChlcnJvciwgaW5wdXQpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMub25JbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5vbkludmFsaWQoZXJyb3IsIGlucHV0KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBfX2FwcGx5Q3NzQ2xhc3NTdGF0ZSh1bm1hc2tlZElucHV0LCBhY3R1YWxJbnB1dCwgc3RhdGUpIHtcclxuICAgIGlmIChcclxuICAgICAgYWN0dWFsSW5wdXQuaGFzQXR0cmlidXRlKCdyZWFkb25seScpIHx8XHJcbiAgICAgIGFjdHVhbElucHV0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKVxyXG4gICAgKSB7XHJcbiAgICAgIGFjdHVhbElucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgIGFjdHVhbElucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuXHJcbiAgICAgIHVubWFza2VkSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgICAgdW5tYXNrZWRJbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc3RhdGUgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIGFjdHVhbElucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgICAgYWN0dWFsSW5wdXQuY2xhc3NMaXN0LmFkZCh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzKVxyXG5cclxuICAgICAgICB1bm1hc2tlZElucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgICAgdW5tYXNrZWRJbnB1dC5jbGFzc0xpc3QuYWRkKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzdGF0ZSA9PT0gJ2Vycm9yJykge1xyXG4gICAgICAgIGFjdHVhbElucHV0LmNsYXNzTGlzdC5hZGQodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgICAgYWN0dWFsSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzKVxyXG5cclxuICAgICAgICB1bm1hc2tlZElucHV0LmNsYXNzTGlzdC5hZGQodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgICAgdW5tYXNrZWRJbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE51bWJlcklucHV0XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9OdW1iZXJJbnB1dC9OdW1iZXJJbnB1dC5qcyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV83X187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiY29tbW9uanNcIjpcImJiai1tYXNrcy9zcmMvTnVtYmVyTWFza1wiLFwiY29tbW9uanMyXCI6XCJiYmotbWFza3Mvc3JjL051bWJlck1hc2tcIixcImFtZFwiOlwiYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrXCIsXCJyb290XCI6W1wiQkJqXCIsXCJNYXNrc1wiLFwiTnVtYmVyTWFza1wiXX1cbi8vIG1vZHVsZSBpZCA9IDdcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSA1KTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCBlZmVmODdhMDFjM2VkMjJjYTM1OCIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgTnVtYmVyTWFzayBmcm9tICcuL051bWJlck1hc2snXG5cbmV4cG9ydCBkZWZhdWx0IE51bWJlck1hc2tcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9OdW1iZXJNYXNrL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJiai1tYXNrcyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBEYXRlTWFzaywge1xuICBnZXREYXlPZlllYXIsXG4gIGdldFdlZWtOdW1iZXIsXG4gIGdldFdlZWtTdGFydEJ5TG9jYWxlLFxuICBJU19USU1FX1JFR0VYLFxuICBJU19EQVRFX1JFR0VYLFxuICBmaXhTaG9ydElTTyxcbiAgZ2V0VGltZXpvbmVPck9mZnNldFxufSBmcm9tICcuL0RhdGVNYXNrJ1xuXG5leHBvcnQge1xuICBnZXREYXlPZlllYXIsXG4gIGdldFdlZWtOdW1iZXIsXG4gIGdldFdlZWtTdGFydEJ5TG9jYWxlLFxuICBJU19EQVRFX1JFR0VYLFxuICBJU19USU1FX1JFR0VYLFxuICBmaXhTaG9ydElTTyxcbiAgZ2V0VGltZXpvbmVPck9mZnNldFxufVxuZXhwb3J0IGRlZmF1bHQgRGF0ZU1hc2tcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9EYXRlTWFzay9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgU3RyaW5nTWFzayBmcm9tICcuL1N0cmluZ01hc2snXG5cbmV4cG9ydCBkZWZhdWx0IFN0cmluZ01hc2tcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9TdHJpbmdNYXNrL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJiai1tYXNrcyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbi8qKlxuICogTnVtYmVyTWFza1xuICpcbiAqIEEgamF2YXNjcmlwdCBpbXBsZW1lbnRhdGlvbiBmb3IgQkJqIG51bWJlcnMgbWFza2luZ1xuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIE51bWJlck1hc2sge1xuICAvKipcbiAgICogTWFzayB0aGUgZ2l2ZW4gbnVtYmVyIHdpdGggdGhlIGdpdmVuIG1hc2sgYWNjb3JkaW5nIHRvIEJCaiBydWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge051bWJlcn0gbnVtYmVyIHRoZSBudW1iZXIgdG8gZm9ybWF0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrIHRoZSBtYXNrIHRvIHVzZSBmb3IgZm9ybWF0dGluZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gW2dyb3VwaW5nU2VwYXJhdG9yPSxdIC0gYSBjaGFyIHdoaWNoIHdpbGwgYmUgdXNlZCBhcyBhIGdyb3VwaW5nIHNlcGFyYXRvclxuICAgKiBAcGFyYW0ge1N0cmluZ30gW2RlY2ltYWxTZXBhcmF0b3I9Ll0gIC0gYSBjaGFyIHdoaWNoIHdpbGwgYmUgdXNlZCBhcyBhIGRlY2ltYWwgc2VwYXJhdG9yXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2ZvcmNlVHJhaWxpbmdaZXJvcz1mYWxzZV0gLSBBZmZlY3RzIHRoZSBvdXRwdXQgYnkgc3dpdGNoaW5nIHRoZSB3YXkgYSBtYXNrIHdpdGggXCIjXCIgY2hhcmFjdGVycyBpbiB0aGUgdHJhaWxpbmcgcG9zaXRpb25zIGlzIGZpbGxlZC5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUsIHRoZSBmdW5jdGlvbiBgTnVtYmVyTWFzay5tYXNrKC4xMDpcIiMuIyNcIilgIHJldHVybnMgYCAuMTBgIGluc3RlYWQgb2YgYCAuMSBgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2xvb3NlPXRydWVdIHdoZW4gdHJ1ZSAsIGVycm9ycyB3aWxsIGJlIGlnbm9yZWQgYW5kIHRoZSBtZXRob2Qgd2lsbCB0cnkgYXQgYXBwbHkgdGhlIG1hc2tcbiAgICogICAgICAgICAgICAgICAgYW55d2F5ICwgb3RoZXJ3aXNlIGl0IHdpbGwgc3RvcCBhdCBmaXJzdCBlcnJvciBhbmQgdGhyb3cgaXQuXG4gICAqIFxuICAgKiBAdGhyb3dzIHtNYXNrRXJyb3J9IG9ubHkgaWYgbG9vc2UgaXMgZGlzYWJsZWRcbiAgICogXG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IHRoZSBtYXNrZWQgbnVtYmVyXG4gICAqL1xuICBzdGF0aWMgbWFzayhcbiAgICBudW1iZXIsXG4gICAgbWFzayxcbiAgICBncm91cGluZ1NlcGFyYXRvciA9ICcsJyxcbiAgICBkZWNpbWFsU2VwYXJhdG9yID0gJy4nLFxuICAgIGZvcmNlVHJhaWxpbmdaZXJvcyA9IGZhbHNlLFxuICAgIGxvb3NlID0gdHJ1ZVxuICApIHtcbiAgICBjb25zdCBtYXNrTGVuID0gbWFzay5sZW5ndGhcbiAgICBpZiAoMCA9PT0gbWFza0xlbikge1xuICAgICAgaWYgKGxvb3NlKSByZXR1cm4gc3RyXG4gICAgICAvLyBmcmllbmRseSBzaWxlbnQgZmFpbFxuICAgICAgZWxzZVxuICAgICAgICB0aHJvdyB7XG4gICAgICAgICAgbmFtZTogJ01hc2tFcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogYE1hc2tFcnJvcjogTWFzayBpcyBlbXB0eWBcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdldCBtYWduaXR1ZGUgYW5kIHByZWNpc2lvbiBvZiBNQVNLXG4gICAgbGV0IG1hc2tCZWZvcmVEZWNpbWFsID0gMFxuICAgIGxldCBtYXNrQWZ0ZXJEZWNpbWFsID0gMFxuICAgIGxldCBmb3VuZERlY2ltYWwgPSBmYWxzZVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFza0xlbjsgKytpKSB7XG4gICAgICBjb25zdCBtID0gbWFzay5jaGFyQXQoaSlcbiAgICAgIGlmIChtID09ICcwJyB8fCBtID09ICcjJykge1xuICAgICAgICBpZiAoZm91bmREZWNpbWFsKSArK21hc2tBZnRlckRlY2ltYWxcbiAgICAgICAgZWxzZSArK21hc2tCZWZvcmVEZWNpbWFsXG4gICAgICB9IGVsc2UgaWYgKG0gPT0gJy4nKSBmb3VuZERlY2ltYWwgPSB0cnVlXG4gICAgfVxuXG4gICAgbGV0IG51bSA9IE51bWJlck1hc2suX3JvdW5kKG51bWJlciwgbWFza0FmdGVyRGVjaW1hbClcbiAgICBsZXQgYnl0ZXMgPSBOdW1iZXJNYXNrLl90b0NoYXJBcnJheShudW0pXG5cbiAgICAvLyBHZXQgbWFnbml0dWRlIGFuZCBwcmVjaXNpb24gb2YgTlVNQkVSXG4gICAgbGV0IGluTGVuID0gYnl0ZXMubGVuZ3RoXG4gICAgbGV0IG51bUJlZm9yZURlY2ltYWwgPSAwXG4gICAgbGV0IG51bUFmdGVyRGVjaW1hbCA9IDBcbiAgICBmb3VuZERlY2ltYWwgPSBmYWxzZVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5MZW47ICsraSkge1xuICAgICAgaWYgKGJ5dGVzW2ldID09ICcuJykgZm91bmREZWNpbWFsID0gdHJ1ZVxuICAgICAgZWxzZSB7XG4gICAgICAgIGlmIChmb3VuZERlY2ltYWwpICsrbnVtQWZ0ZXJEZWNpbWFsXG4gICAgICAgIGVsc2UgKytudW1CZWZvcmVEZWNpbWFsXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYWx3YXlzIGlnbm9yZSBtYXNrIG92ZXJmbG93XG4gICAgaWYgKG51bUJlZm9yZURlY2ltYWwgPiBtYXNrQmVmb3JlRGVjaW1hbCkge1xuICAgICAgaWYgKGxvb3NlKSByZXR1cm4gbnVtYmVyLnRvU3RyaW5nKClcbiAgICAgIC8vIGZyaWVuZGx5IHNpbGVudCBmYWlsXG4gICAgICBlbHNlXG4gICAgICAgIHRocm93IHtcbiAgICAgICAgICBuYW1lOiAnTWFza0Vycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiBgTWFza0Vycm9yOiBOdW1iZXIgaXMgdG9vIGxhcmdlIGZvciBtYXNrYFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gcm91bmQgaWYgbWFzayBpcyBmb3IgYSBsb3dlciBwcmVjaXNpb24gbnVtYmVyXG4gICAgaWYgKG51bUFmdGVyRGVjaW1hbCA+IG1hc2tBZnRlckRlY2ltYWwpIHtcbiAgICAgIG51bSA9IE51bWJlck1hc2suX3JvdW5kKG51bSwgbWFza0FmdGVyRGVjaW1hbClcbiAgICAgIGJ5dGVzID0gTnVtYmVyTWFzay5fdG9DaGFyQXJyYXkobnVtKVxuICAgICAgaW5MZW4gPSBieXRlcy5sZW5ndGhcblxuICAgICAgLy8gR2V0IG5ldyBtYWduaXR1ZGUgYW5kIHByZWNpc2lvbiBvZiBOVU1CRVJcbiAgICAgIG51bUJlZm9yZURlY2ltYWwgPSAwXG4gICAgICBudW1BZnRlckRlY2ltYWwgPSAwXG4gICAgICBmb3VuZERlY2ltYWwgPSBmYWxzZVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbkxlbjsgKytpKSB7XG4gICAgICAgIGlmIChieXRlc1tpXSA9PSAnLicpIGZvdW5kRGVjaW1hbCA9IHRydWVcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYgKGZvdW5kRGVjaW1hbCkgKytudW1BZnRlckRlY2ltYWxcbiAgICAgICAgICBlbHNlICsrbnVtQmVmb3JlRGVjaW1hbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGFsd2F5cyBpZ25vcmUgbWFzayBvdmVyZmxvd1xuICAgICAgaWYgKG51bUJlZm9yZURlY2ltYWwgPiBtYXNrQmVmb3JlRGVjaW1hbCkge1xuICAgICAgICBpZiAobG9vc2UpIHJldHVybiBudW1iZXIudG9TdHJpbmcoKVxuICAgICAgICAvLyBmcmllbmRseSBzaWxlbnQgZmFpbFxuICAgICAgICBlbHNlXG4gICAgICAgICAgdGhyb3cge1xuICAgICAgICAgICAgbmFtZTogJ01hc2tFcnJvcicsXG4gICAgICAgICAgICBtZXNzYWdlOiBgTWFza0Vycm9yOiBOdW1iZXIgaXMgdG9vIGxhcmdlIGZvciBtYXNrYFxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgZmlsbEJ5dGUgPSAnICcsXG4gICAgICBmbG9hdEJ5dGUgPSAnICdcbiAgICBsZXQgaW5Qb3MgPSAwLFxuICAgICAgb3V0UG9zID0gMCxcbiAgICAgIGZsb2F0UG9zID0gMFxuICAgIGlmIChtYXNrLmNoYXJBdCgwKSA9PSAnKicpIGZpbGxCeXRlID0gJyonXG5cbiAgICBjb25zdCBmaWxsSW5pdCA9IGZpbGxCeXRlXG4gICAgY29uc3QgaXNOZWdhdGl2ZSA9IE51bWJlck1hc2suX2dldFNpZ24obnVtKSA8IDBcbiAgICBsZXQgZW1pdERlY2ltYWwgPSBpbkxlbiA+IDAgfHwgbWFzay5pbmRleE9mKCcwJykgPj0gMFxuICAgIGxldCBmb3VuZFplcm8gPSBmYWxzZVxuICAgIGxldCBmb3VuZERpZ2l0ID0gZmFsc2VcbiAgICBsZXQgY3VycmVuY3kgPSBmYWxzZVxuICAgIGZvdW5kRGVjaW1hbCA9IGZhbHNlXG5cbiAgICBsZXQgcmV0ID0gbmV3IEFycmF5KG1hc2tMZW4pXG5cbiAgICBmb3IgKGxldCBtYXNrUG9zID0gMDsgbWFza1BvcyA8IG1hc2tMZW47ICsrbWFza1Bvcykge1xuICAgICAgbGV0IG0gPSBtYXNrLmNoYXJBdChtYXNrUG9zKVxuICAgICAgc3dpdGNoIChtKSB7XG4gICAgICAgIGNhc2UgJzAnOlxuICAgICAgICAgIC0tbWFza0JlZm9yZURlY2ltYWxcbiAgICAgICAgICBpZiAobWFza0JlZm9yZURlY2ltYWwgPCBudW1CZWZvcmVEZWNpbWFsICYmIGluUG9zIDwgaW5MZW4pIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gYnl0ZXNbaW5Qb3NdXG4gICAgICAgICAgICArK2luUG9zXG4gICAgICAgICAgICBmb3VuZERpZ2l0ID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9ICcwJ1xuICAgICAgICAgICAgZm91bmRaZXJvID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnIyc6XG4gICAgICAgICAgLS1tYXNrQmVmb3JlRGVjaW1hbFxuICAgICAgICAgIGlmIChtYXNrQmVmb3JlRGVjaW1hbCA8IG51bUJlZm9yZURlY2ltYWwgJiYgaW5Qb3MgPCBpbkxlbikge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBieXRlc1tpblBvc11cbiAgICAgICAgICAgICsraW5Qb3NcbiAgICAgICAgICAgIGZvdW5kRGlnaXQgPSB0cnVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID1cbiAgICAgICAgICAgICAgZm91bmREZWNpbWFsICYmXG4gICAgICAgICAgICAgIGZvcmNlVHJhaWxpbmdaZXJvcyAmJlxuICAgICAgICAgICAgICBOdW1iZXJNYXNrLl9nZXRTaWduKG51bSkgIT0gMFxuICAgICAgICAgICAgICAgID8gJzAnXG4gICAgICAgICAgICAgICAgOiBmaWxsQnl0ZVxuICAgICAgICAgICAgaWYgKCFmb3VuZERlY2ltYWwpIGZsb2F0UG9zID0gbWFza1Bvc1xuICAgICAgICAgIH1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnLCc6XG4gICAgICAgICAgaWYgKGZvdW5kWmVybyB8fCBpblBvcyA+IDApIHJldFtvdXRQb3NdID0gZ3JvdXBpbmdTZXBhcmF0b3JcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgICAgIGlmICghZm91bmREZWNpbWFsKSBmbG9hdFBvcyA9IG1hc2tQb3NcbiAgICAgICAgICB9XG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgIGlmICghZm91bmREaWdpdCAmJiBmbG9hdEJ5dGUgPT0gJyAnKSB7XG4gICAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkgZmxvYXRCeXRlID0gJy0nXG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgICAgICBmbG9hdFBvcyA9IGZvdW5kRGVjaW1hbCA/IC0xIDogbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSByZXRbb3V0UG9zXSA9IGlzTmVnYXRpdmUgPyAnLScgOiBmaWxsQnl0ZVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICBpZiAoIWZvdW5kRGlnaXQgJiYgZmxvYXRCeXRlID09ICcgJykge1xuICAgICAgICAgICAgZmxvYXRCeXRlID0gaXNOZWdhdGl2ZSA/ICctJyA6ICcrJ1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAgICAgZmxvYXRQb3MgPSBmb3VuZERlY2ltYWwgPyAtMSA6IG1hc2tQb3NcbiAgICAgICAgICB9IGVsc2UgcmV0W291dFBvc10gPSBpc05lZ2F0aXZlID8gJy0nIDogJysnXG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJyQnOlxuICAgICAgICAgIGlmICghZm91bmREaWdpdCAmJiBmbG9hdEJ5dGUgPT0gJyAnKSB7XG4gICAgICAgICAgICBmbG9hdEJ5dGUgPSAnJCdcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJyQnXG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICAvLyBjYXNlICcmJzpcbiAgICAgICAgLy8gICBjdXJyZW5jeSA9IHRydWVcbiAgICAgICAgLy8gICBpZiAoIWZvdW5kRGlnaXQgJiYgZmxvYXRCeXRlID09ICcgJykge1xuICAgICAgICAvLyAgICAgZmxvYXRCeXRlID0gJyYnXG4gICAgICAgIC8vICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgIC8vICAgICBmbG9hdFBvcyA9IGZvdW5kRGVjaW1hbCA/IC0xIDogbWFza1Bvc1xuICAgICAgICAvLyAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXRbb3V0UG9zXSA9ICcmJ1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gICArK291dFBvc1xuICAgICAgICAvLyAgIGJyZWFrXG5cbiAgICAgICAgLy8gY2FzZSAnQCc6XG4gICAgICAgIC8vICAgY3VycmVuY3kgPSB0cnVlXG4gICAgICAgIC8vICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgLy8gICAgIGZsb2F0Qnl0ZSA9ICdAJ1xuICAgICAgICAvLyAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAvLyAgICAgZmxvYXRQb3MgPSBmb3VuZERlY2ltYWwgPyAtMSA6IG1hc2tQb3NcbiAgICAgICAgLy8gICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgcmV0W291dFBvc10gPSAnQCdcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vICAgKytvdXRQb3NcbiAgICAgICAgLy8gICBicmVha1xuXG4gICAgICAgIGNhc2UgJygnOlxuICAgICAgICAgIGlmICghZm91bmREaWdpdCAmJiBmbG9hdEJ5dGUgPT0gJyAnKSB7XG4gICAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkgZmxvYXRCeXRlID0gJygnXG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgICAgICBmbG9hdFBvcyA9IGZvdW5kRGVjaW1hbCA/IC0xIDogbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9ICcoJ1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0W291dFBvc10gPSBmb3VuZERlY2ltYWwgPyAnICcgOiBmaWxsQnl0ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnKSc6XG4gICAgICAgICAgaWYgKGlzTmVnYXRpdmUpIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJyknXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZm91bmREZWNpbWFsID8gJyAnIDogZmlsbEJ5dGVcbiAgICAgICAgICB9XG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ0MnOlxuICAgICAgICAgIGlmIChtYXNrUG9zIDwgbWFza0xlbiAtIDEgJiYgbWFzay5jaGFyQXQobWFza1BvcyArIDEpID09ICdSJykge1xuICAgICAgICAgICAgaWYgKGlzTmVnYXRpdmUpIHtcbiAgICAgICAgICAgICAgcmV0W291dFBvc10gPSAnQydcbiAgICAgICAgICAgICAgcmV0W291dFBvcyArIDFdID0gJ1InXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9ICcgJ1xuICAgICAgICAgICAgICByZXRbb3V0UG9zICsgMV0gPSAnICdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dFBvcyArPSAyXG4gICAgICAgICAgICArK21hc2tQb3NcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSAnQydcbiAgICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgIGlmIChtYXNrUG9zIDwgbWFza0xlbiAtIDEgJiYgbWFzay5jaGFyQXQobWFza1BvcyArIDEpID09ICdSJykge1xuICAgICAgICAgICAgaWYgKGlzTmVnYXRpdmUpIHtcbiAgICAgICAgICAgICAgcmV0W291dFBvc10gPSAnQydcbiAgICAgICAgICAgICAgcmV0W291dFBvcyArIDFdID0gJ1InXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdEJ1xuICAgICAgICAgICAgICByZXRbb3V0UG9zICsgMV0gPSAnUidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dFBvcyArPSAyXG4gICAgICAgICAgICArK21hc2tQb3NcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSAnRCdcbiAgICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnKic6XG4gICAgICAgICAgcmV0W291dFBvc10gPSAnKidcbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnLic6XG4gICAgICAgICAgcmV0W291dFBvc10gPSBlbWl0RGVjaW1hbCA/IGRlY2ltYWxTZXBhcmF0b3IgOiBmaWxsQnl0ZVxuICAgICAgICAgIGZpbGxCeXRlID0gJyAnXG4gICAgICAgICAgZm91bmREZWNpbWFsID0gdHJ1ZVxuICAgICAgICAgICsraW5Qb3NcbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnQic6XG4gICAgICAgICAgcmV0W291dFBvc10gPSAnICdcbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXRbb3V0UG9zXSA9IG1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZsb2F0Qnl0ZSAhPSAnICcpIHtcbiAgICAgIGlmIChmbG9hdFBvcyA8IDApIGZsb2F0UG9zID0gb3V0UG9zXG4gICAgICB3aGlsZSAoZmxvYXRQb3MgPj0gbWFza0xlbikgLS1mbG9hdFBvc1xuICAgICAgaWYgKHJldFtmbG9hdFBvc10gPT0gZmlsbEluaXQpIHJldFtmbG9hdFBvc10gPSBmbG9hdEJ5dGVcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0LmpvaW4oJycpXG4gIH1cblxuICBzdGF0aWMgX3NoaWZ0KG51bWJlciwgcHJlY2lzaW9uLCByZXZlcnNlU2hpZnQpIHtcbiAgICBpZiAocmV2ZXJzZVNoaWZ0KSBwcmVjaXNpb24gPSAtcHJlY2lzaW9uXG4gICAgdmFyIG51bUFycmF5ID0gKCcnICsgbnVtYmVyKS5zcGxpdCgnZScpXG4gICAgcmV0dXJuICsoXG4gICAgICBudW1BcnJheVswXSArXG4gICAgICAnZScgK1xuICAgICAgKG51bUFycmF5WzFdID8gK251bUFycmF5WzFdICsgcHJlY2lzaW9uIDogcHJlY2lzaW9uKVxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBfcm91bmQobnVtYmVyLCBwcmVjaXNpb24pIHtcbiAgICByZXR1cm4gTnVtYmVyTWFzay5fc2hpZnQoXG4gICAgICBNYXRoLnJvdW5kKE51bWJlck1hc2suX3NoaWZ0KG51bWJlciwgcHJlY2lzaW9uLCBmYWxzZSkpLFxuICAgICAgcHJlY2lzaW9uLFxuICAgICAgdHJ1ZVxuICAgIClcbiAgfVxuXG4gIHN0YXRpYyBfdG9DaGFyQXJyYXkobnVtYmVyKSB7XG4gICAgY29uc3Qgc2lnbnVtID0gTnVtYmVyTWFzay5fZ2V0U2lnbihudW1iZXIpXG4gICAgbGV0IGNoYXJzID0gW11cblxuICAgIGlmIChzaWdudW0gIT09IDApIHtcbiAgICAgIGxldCBzdHJpbmcgPSBzaWdudW0gPCAwID8gYCR7LTEgKiBudW1iZXIudG9TdHJpbmcoKX1gIDogbnVtYmVyLnRvU3RyaW5nKClcblxuICAgICAgaWYgKHN0cmluZy5sZW5ndGggPiAxICYmIHN0cmluZy5jaGFyQXQoMCkgPT0gJzAnKVxuICAgICAgICBzdHJpbmcgPSBzdHJpbmcuc3Vic3RyaW5nKDEpXG5cbiAgICAgIC8vIFRoZSBzdHJpbmcgY29udGFpbnMgb25seSBbMC05XSBhbmQgJy4nXG4gICAgICBjaGFycyA9IHN0cmluZy5zcGxpdCgnJylcbiAgICB9XG5cbiAgICByZXR1cm4gY2hhcnNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzaWduIG9mIGEgbnVtYmVyXG4gICAqXG4gICAqIEBwYXJhbSB7TnVtYmVyfSB4IG51bWJlclxuICAgKiBAcmV0dXJucyB7TnVtYmVyfSBBIG51bWJlciByZXByZXNlbnRpbmcgdGhlIHNpZ24gb2YgdGhlIGdpdmVuIGFyZ3VtZW50LlxuICAgKiAgICAgICAgICAgICAgICAgICBJZiB0aGUgYXJndW1lbnQgaXMgYSBwb3NpdGl2ZSBudW1iZXIsIG5lZ2F0aXZlIG51bWJlciwgcG9zaXRpdmUgemVyb1xuICAgKiAgICAgICAgICAgICAgICAgICBvciBuZWdhdGl2ZSB6ZXJvLCB0aGUgZnVuY3Rpb24gd2lsbCByZXR1cm4gMSwgLTEsIDAgb3IgLTAgcmVzcGVjdGl2ZWx5LlxuICAgKiAgICAgICAgICAgICAgICAgICBPdGhlcndpc2UsIE5hTiBpcyByZXR1cm5lZC5cbiAgICovXG4gIHN0YXRpYyBfZ2V0U2lnbih4KSB7XG4gICAgcmV0dXJuICh4ID4gMCkgLSAoeCA8IDApIHx8ICt4XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTnVtYmVyTWFza1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL051bWJlck1hc2svTnVtYmVyTWFzay5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgdXRjVG9ab25lZFRpbWUgZnJvbSAnZGF0ZS1mbnMtdHovdXRjVG9ab25lZFRpbWUnXG5pbXBvcnQgeyBnZXRXZWVrU3RhcnRCeUxvY2FsZSBhcyBvcmlnaW5hbEdldFdlZWtTdGFydEJ5TG9jYWxlIH0gZnJvbSAnd2Vla3N0YXJ0J1xuXG5leHBvcnQgY29uc3QgSVNfVElNRV9SRUdFWCA9IC9eKDJbMC0zXXxbMDFdWzAtOV0pOj8oWzAtNV1bMC05XSk6PyhbMC01XVswLTldKShafFsrLV0oPzoyWzAtM118WzAxXVswLTldKSg/Ojo/KD86WzAtNV1bMC05XSkpPykkL1xuZXhwb3J0IGNvbnN0IElTX0RBVEVfUkVHRVggPSAvXigoWzEyXVxcZHszfSktKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVxcZHwzWzAxXSkoWnxbKy1dKD86MlswLTNdfFswMV1bMC05XSkoPzo6Pyg/OlswLTVdWzAtOV0pKT8pKSQvXG5cbi8qKlxuICogRmluZCBvdXQgd2hlbiB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGJhc2VkIG9uIHRoZSBwYXNzZWQgbG9jYWxlXG4gKlxuICogQHBhcmFtIHtsb2NhbGV9IGxvY2FsZVxuICpcbiAqIEByZXR1cm4ge051bWJlcn0gYSBudW1iZXIgMCA9IHN1bmRheSAsIDEgPSBtb25kYXkgLCAuLi4uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRXZWVrU3RhcnRCeUxvY2FsZSA9IGxvY2FsZSA9PiB7XG4gIHJldHVybiBvcmlnaW5hbEdldFdlZWtTdGFydEJ5TG9jYWxlKGxvY2FsZSlcbn1cblxuLyoqXG4gKiAgR2V0IGRheSBudW1iZXIgaW4gdGhlIHllYXIgb2YgdGhlIHBhc3NlZCBkYXRlXG4gKlxuICogQHBhcmFtIHtEYXRlfSBkYXRlXG4gKlxuICogQHJldHVybiB7TnVtYmVyfSBkYXkgbnVtYmVyXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREYXlPZlllYXIgPSBkYXRlID0+IHtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIDAsIDApXG5cbiAgY29uc3QgZGlmZiA9XG4gICAgZGF0ZSAtXG4gICAgc3RhcnQgK1xuICAgIChzdGFydC5nZXRUaW1lem9uZU9mZnNldCgpIC0gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpKSAqIDYwICogMTAwMFxuICBjb25zdCBvbmVEYXkgPSAxMDAwICogNjAgKiA2MCAqIDI0XG4gIGNvbnN0IGRheSA9IE1hdGguZmxvb3IoZGlmZiAvIG9uZURheSlcblxuICByZXR1cm4gZGF5XG59XG5cbi8qKlxuICogVGFrZXMgaW5jb21wbGV0ZSBpc28gc3RyaW5nIGFuZCByZXR1cm4gYSBjb21wbGV0ZSBvbmVcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZGF0ZSBpbmNvbXBsZXRlIGlzbyBzdHJpbmdcbiAqXG4gKiBAcmV0dXJuIHtTdHJpbmd9IGNvbXBsZXRlIGlzbyBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGZpeFNob3J0SVNPID0gZGF0ZSA9PiB7XG4gIGxldCB2YWx1ZSA9IGRhdGVcbiAgbGV0IG9mZnNldCA9ICh2YWx1ZS5tYXRjaCgveiR8WytcXC1dXFxkXFxkOlxcZFxcZCQvaSkgfHwgW10pWzBdXG4gIGlmICghb2Zmc2V0KSB7XG4gICAgb2Zmc2V0ID0gJ1onXG4gICAgdmFsdWUgKz0gb2Zmc2V0XG4gIH1cblxuICBpZiAoSVNfVElNRV9SRUdFWC50ZXN0KHZhbHVlKSkge1xuICAgIHZhbHVlID0gYDE5NzAtMDEtMDFUJHt2YWx1ZX1gXG4gIH0gZWxzZSBpZiAoSVNfREFURV9SRUdFWC50ZXN0KHZhbHVlKSkge1xuICAgIHZhbHVlID0gYCR7dmFsdWUuc3BsaXQob2Zmc2V0KVswXX1UMDA6MDA6MDAke29mZnNldH1gXG4gIH1cblxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGJyb3dzZXIgdGltZXpvbmUgbmFtZSAsIGlmIG5vdCBzdXBwb3J0ZWQgdGhlbiB0aGUgYnJvd3NlclxuICogdGltZXpvbmUgb2Zmc2V0IGZvcm1hdHRlZFxuICpcbiAqIEByZXR1cm4ge1N0cmluZ30gdGltZXpvbmUgb2Ygb2Zmc2V0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaW1lem9uZU9yT2Zmc2V0ID0gKCkgPT4ge1xuICBjb25zdCB0aW1lem9uZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZVxuICBpZiAoIXRpbWV6b25lKSB7XG4gICAgY29uc3QgcGFkID0gKG51bWJlciwgbGVuZ3RoKSA9PiB7XG4gICAgICB2YXIgc3RyID0gJycgKyBudW1iZXJcbiAgICAgIHdoaWxlIChzdHIubGVuZ3RoIDwgbGVuZ3RoKSB7XG4gICAgICAgIHN0ciA9ICcwJyArIHN0clxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0clxuICAgIH1cblxuICAgIGxldCBvZmZzZXQgPSBuZXcgRGF0ZSgpLmdldFRpbWV6b25lT2Zmc2V0KClcbiAgICBvZmZzZXQgPVxuICAgICAgKG9mZnNldCA8IDAgPyAnKycgOiAnLScpICsgLy8gTm90ZSB0aGUgcmV2ZXJzZWQgc2lnbiFcbiAgICAgIHBhZChwYXJzZUludChNYXRoLmFicyhvZmZzZXQgLyA2MCkpLCAyKSArXG4gICAgICBwYWQoTWF0aC5hYnMob2Zmc2V0ICUgNjApLCAyKVxuXG4gICAgcmV0dXJuIG9mZnNldFxuICB9XG5cbiAgcmV0dXJuIHRpbWV6b25lXG59XG5cbi8qKlxuICogR2V0IHRoZSBXZWVrIE51bWJlciBpbiB0aGUgcGFzc2VkIGRhdGVcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IGRhdGUgLSBEYXRlIG9iamVjdFxuICogQHBhcmFtIHtOdW1iZXJ9IHdlZWtTdGFydCBBIG51bWJlciB3aGljaCBkZWZpbmVzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgKDAgID0gc3VuZGF5ICwgMSA9IG1vbmRheSAsIC4uLilcbiAqXG4gKiBAcmV0dXJucyB7TnVtYmVyfSB0aGUgd2VlayBudW1iZXJcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFdlZWtOdW1iZXIgPSBmdW5jdGlvbihkYXRlLCB3ZWVrU3RhcnQpIHtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKFxuICAgIERhdGUuVVRDKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSlcbiAgKVxuICBjb25zdCBkYXlOdW0gPSBkLmdldFVUQ0RheSgpIC0gKHdlZWtTdGFydCAtIDEpIHx8IDdcbiAgZC5zZXRVVENEYXRlKGQuZ2V0VVRDRGF0ZSgpICsgNCAtIGRheU51bSlcbiAgY29uc3QgeWVhclN0YXJ0ID0gbmV3IERhdGUoRGF0ZS5VVEMoZC5nZXRVVENGdWxsWWVhcigpLCAwLCAxKSlcbiAgcmV0dXJuIE1hdGguY2VpbCgoKGQgLSB5ZWFyU3RhcnQpIC8gODY0MDAwMDAgKyAxKSAvIDcpXG59XG5cbi8qKlxuICogRGF0ZU1hc2tcbiAqXG4gKiBBIGphdmFzY3JpcHQgaW1wbGVtZW50YXRpb24gZm9yIEJCaiBkYXRlcyBtYXNraW5nXG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgRGF0ZU1hc2sge1xuICAvKipcbiAgICogTWFzayBkYXRlXG4gICAqXG4gICAqIE1hc2sgdGhlIHBhc3NlZCBkYXRlIHdpdGggdGhlIHBhc3NlZCBtYXNrXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBkYXRlIGRhdGUgYXMgYSBzdHJpbmdcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgbWFzayBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gW2xvY2FsZT1Ccm93c2VyJ3MgbG9jYWxlXSB0aGUgbGFuZ3VhZ2UgdG8gdXNlIGV4KGVuLVVTKS4gZGVmYXVsdCBpcyB0byB0aGUgc3lzdGVtIGxhbmd1YWdlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBbdGltZXpvbmU9U3lzdGVtIHRpbWV6b25lXSB0aGUgdGltZSB6b25lIGRlc2NyaXB0b3IgKGUuZy4gQW1lcmljYS9Mb3NfQW5nZWxlcykuIGRlZmF1bHQgdG8gdGhlIHN5c3RlbVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXpvbmVcbiAgICpcbiAgICogQHJldHVybiB7U3RyaW5nfSBhIGRhdGUgbWFza2VkIHdpdGggdGhlIGdpdmVuIG1hc2tcbiAgICovXG4gIHN0YXRpYyBtYXNrKGRhdGUsIG1hc2ssIGxvY2FsZSwgdGltZXpvbmUpIHtcbiAgICBpZiAoIWRhdGUpIHJldHVybiAnJ1xuICAgIGlmICghbWFzaykgcmV0dXJuIGRhdGVcblxuICAgIHRpbWV6b25lID0gdGltZXpvbmUgfHwgZ2V0VGltZXpvbmVPck9mZnNldCgpXG4gICAgbG9jYWxlID0gbG9jYWxlIHx8IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGUgfHwgJ2VuLVVTJ1xuXG4gICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgYSBjb21wbGV0ZSBpc28gc3RyaW5nXG4gICAgZGF0ZSA9IGRhdGUgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZSA6IGZpeFNob3J0SVNPKGRhdGUpXG5cbiAgICBjb25zdCBkYXRlT2JqZWN0ID0gdXRjVG9ab25lZFRpbWUoZGF0ZSwgdGltZXpvbmUpXG4gICAgY29uc3QgdHJhbnNsYXRpb24gPSBEYXRlTWFzay5fYnVpbGRUcmFuc2xhdGlvbih7XG4gICAgICB5ZWFyOiBkYXRlT2JqZWN0LmdldEZ1bGxZZWFyKCksXG4gICAgICBtb250aDogZGF0ZU9iamVjdC5nZXRNb250aCgpICsgMSxcbiAgICAgIG1vbnRoU2hvcnQ6IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFtsb2NhbGVdLCB7IG1vbnRoOiAnc2hvcnQnIH0pLmZvcm1hdChcbiAgICAgICAgZGF0ZU9iamVjdFxuICAgICAgKSxcbiAgICAgIG1vbnRoTG9uZzogbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoW2xvY2FsZV0sIHsgbW9udGg6ICdsb25nJyB9KS5mb3JtYXQoXG4gICAgICAgIGRhdGVPYmplY3RcbiAgICAgICksXG4gICAgICBkYXk6IGRhdGVPYmplY3QuZ2V0RGF0ZSgpLFxuICAgICAgZGF5U2hvcnQ6IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KFtsb2NhbGVdLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSkuZm9ybWF0KFxuICAgICAgICBkYXRlT2JqZWN0XG4gICAgICApLFxuICAgICAgZGF5TG9uZzogbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoW2xvY2FsZV0sIHsgd2Vla2RheTogJ2xvbmcnIH0pLmZvcm1hdChcbiAgICAgICAgZGF0ZU9iamVjdFxuICAgICAgKSxcbiAgICAgIG1pbnV0ZXM6IGRhdGVPYmplY3QuZ2V0TWludXRlcygpLFxuICAgICAgc2Vjb25kczogZGF0ZU9iamVjdC5nZXRTZWNvbmRzKCksXG4gICAgICBnZXQgaG91cnMyNCgpIHtcbiAgICAgICAgcmV0dXJuIGRhdGVPYmplY3QuZ2V0SG91cnMoKVxuICAgICAgfSxcbiAgICAgIGdldCBob3VyczEyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3VyczI0ICUgMTIgfHwgMTJcbiAgICAgIH0sXG4gICAgICBkYXlPZlllYXI6IGdldERheU9mWWVhcihkYXRlT2JqZWN0KSxcbiAgICAgIGRheU9mV2VlazogZGF0ZU9iamVjdC5nZXREYXkoKSArIDEsIC8vIFN1bmRheSA9IDEgaW4gQkJqIGJ1dCBTdW5kYXkgPSAwIGluIEpTXG4gICAgICB3ZWVrTnVtYmVyOiBnZXRXZWVrTnVtYmVyKGRhdGVPYmplY3QsIGdldFdlZWtTdGFydEJ5TG9jYWxlKGxvY2FsZSkpLFxuICAgICAgbG9jYWxlLFxuICAgICAgdGltZXpvbmVcbiAgICB9KVxuXG4gICAgbGV0IHJlc3VsdCA9IG1hc2tcbiAgICBmb3IgKHZhciBrIGluIHRyYW5zbGF0aW9uKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShuZXcgUmVnRXhwKCcoJScgKyBrICsgJyknLCAnZycpLCB0cmFuc2xhdGlvbltrXSlcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgbWFwIG9iamVjdCB3aGljaCBjb250YWlucyBhbGwgcG9zc2libGUgZm9ybXMgb2YgbWFza3NcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGVEZXRhaWxzIGRhdGVcbiAgICpcbiAgICogQHJldHVybiB7T2JqZWN0fSBmb3JtcyBtYXNrc1xuICAgKi9cbiAgc3RhdGljIF9idWlsZFRyYW5zbGF0aW9uKGRhdGVEZXRhaWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8vIHllYXJcbiAgICAgIFl6OiBkYXRlRGV0YWlscy55ZWFyLnRvU3RyaW5nKCkuc3Vic3RyKC0yKSxcbiAgICAgIFlzOiBkYXRlRGV0YWlscy55ZWFyLFxuICAgICAgWWw6IGRhdGVEZXRhaWxzLnllYXIsXG4gICAgICBZcDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy55ZWFyKSxcbiAgICAgIFlkOiBkYXRlRGV0YWlscy55ZWFyLFxuICAgICAgWTogZGF0ZURldGFpbHMueWVhcixcblxuICAgICAgLy8gbW9udGhcbiAgICAgIE16OlxuICAgICAgICBTdHJpbmcoZGF0ZURldGFpbHMubW9udGgpLmxlbmd0aCA9PSAxXG4gICAgICAgICAgPyAnMCcgKyBkYXRlRGV0YWlscy5tb250aFxuICAgICAgICAgIDogZGF0ZURldGFpbHMubW9udGgsXG4gICAgICBNczogZGF0ZURldGFpbHMubW9udGhTaG9ydCxcbiAgICAgIE1sOiBkYXRlRGV0YWlscy5tb250aExvbmcsXG4gICAgICBNcDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy5tb250aCksXG4gICAgICBNZDogZGF0ZURldGFpbHMubW9udGgsXG4gICAgICBNOiBkYXRlRGV0YWlscy5tb250aCxcblxuICAgICAgLy8gZGF5XG4gICAgICBEejpcbiAgICAgICAgU3RyaW5nKGRhdGVEZXRhaWxzLmRheSkubGVuZ3RoID09IDFcbiAgICAgICAgICA/ICcwJyArIGRhdGVEZXRhaWxzLmRheVxuICAgICAgICAgIDogZGF0ZURldGFpbHMuZGF5LFxuICAgICAgRHM6IGRhdGVEZXRhaWxzLmRheVNob3J0LFxuICAgICAgRGw6IGRhdGVEZXRhaWxzLmRheUxvbmcsXG4gICAgICBEcDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy5kYXkpLFxuICAgICAgRGQ6IGRhdGVEZXRhaWxzLmRheSxcbiAgICAgIEQ6IGRhdGVEZXRhaWxzLmRheSxcblxuICAgICAgLy8gaG91ciAyNFxuICAgICAgSHo6XG4gICAgICAgIFN0cmluZyhkYXRlRGV0YWlscy5ob3VyczI0KS5sZW5ndGggPT0gMVxuICAgICAgICAgID8gJzAnICsgZGF0ZURldGFpbHMuaG91cnMyNFxuICAgICAgICAgIDogZGF0ZURldGFpbHMuaG91cnMyNCxcbiAgICAgIEhzOiBkYXRlRGV0YWlscy5ob3VyczI0LFxuICAgICAgSGw6IGRhdGVEZXRhaWxzLmhvdXJzMjQsXG4gICAgICBIcDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy5ob3VyczI0KSxcbiAgICAgIEhkOiBkYXRlRGV0YWlscy5ob3VyczI0LFxuICAgICAgSDogZGF0ZURldGFpbHMuaG91cnMyNCxcblxuICAgICAgLy8gaG91ciAxMlxuICAgICAgaHo6XG4gICAgICAgIFN0cmluZyhkYXRlRGV0YWlscy5ob3VyczEyKS5sZW5ndGggPT0gMVxuICAgICAgICAgID8gJzAnICsgZGF0ZURldGFpbHMuaG91cnMxMlxuICAgICAgICAgIDogZGF0ZURldGFpbHMuaG91cnMxMixcbiAgICAgIGhzOiBkYXRlRGV0YWlscy5ob3VyczEyLFxuICAgICAgaGw6IGRhdGVEZXRhaWxzLmhvdXJzMTIsXG4gICAgICBocDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy5ob3VyczEyKSxcbiAgICAgIGhkOiBkYXRlRGV0YWlscy5ob3VyczEyLFxuICAgICAgaDogZGF0ZURldGFpbHMuaG91cnMxMixcblxuICAgICAgLy8gbWludXRlc1xuICAgICAgbXo6XG4gICAgICAgIFN0cmluZyhkYXRlRGV0YWlscy5taW51dGVzKS5sZW5ndGggPT0gMVxuICAgICAgICAgID8gJzAnICsgZGF0ZURldGFpbHMubWludXRlc1xuICAgICAgICAgIDogZGF0ZURldGFpbHMubWludXRlcyxcbiAgICAgIG1zOiBkYXRlRGV0YWlscy5taW51dGVzLFxuICAgICAgbWw6IGRhdGVEZXRhaWxzLm1pbnV0ZXMsXG4gICAgICBtcDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy5taW51dGVzKSxcbiAgICAgIG1kOiBkYXRlRGV0YWlscy5taW51dGVzLFxuICAgICAgbTogZGF0ZURldGFpbHMubWludXRlcyxcblxuICAgICAgLy8gc2Vjb25kc1xuICAgICAgc3o6XG4gICAgICAgIFN0cmluZyhkYXRlRGV0YWlscy5zZWNvbmRzKS5sZW5ndGggPT0gMVxuICAgICAgICAgID8gJzAnICsgZGF0ZURldGFpbHMuc2Vjb25kc1xuICAgICAgICAgIDogZGF0ZURldGFpbHMuc2Vjb25kcyxcbiAgICAgIHNzOiBkYXRlRGV0YWlscy5zZWNvbmRzLFxuICAgICAgc2w6IGRhdGVEZXRhaWxzLnNlY29uZHMsXG4gICAgICBzcDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy5zZWNvbmRzKSxcbiAgICAgIHNkOiBkYXRlRGV0YWlscy5zZWNvbmRzLFxuICAgICAgczogZGF0ZURldGFpbHMuc2Vjb25kcyxcblxuICAgICAgLy8gQU0gLCBQTVxuICAgICAgUFA6IGRhdGVEZXRhaWxzLmhvdXJzMjQgPiAxMiA/ICdQTScgOiAnUE0nLFxuICAgICAgUDogZGF0ZURldGFpbHMuaG91cnMyNCA+IDEyID8gJ1BNJyA6ICdBTScsXG4gICAgICBwcDogZGF0ZURldGFpbHMuaG91cnMyNCA+IDEyID8gJ3BtJyA6ICdhbScsXG4gICAgICBwOiBkYXRlRGV0YWlscy5ob3VyczI0ID4gMTIgPyAncG0nIDogJ2FtJyxcblxuICAgICAgLy8gRGF5IG9mIFllYXJcbiAgICAgIEp6OlxuICAgICAgICBTdHJpbmcoZGF0ZURldGFpbHMuZGF5T2ZZZWFyKS5sZW5ndGggPT0gMVxuICAgICAgICAgID8gJzAnICsgZGF0ZURldGFpbHMuZGF5T2ZZZWFyXG4gICAgICAgICAgOiBkYXRlRGV0YWlscy5kYXlPZlllYXIsXG4gICAgICBKczogZGF0ZURldGFpbHMuZGF5T2ZZZWFyLFxuICAgICAgSmw6IGRhdGVEZXRhaWxzLmRheU9mWWVhcixcbiAgICAgIEpkOiBkYXRlRGV0YWlscy5kYXlPZlllYXIsXG4gICAgICBKOiBkYXRlRGV0YWlscy5kYXlPZlllYXIsXG5cbiAgICAgIC8vIERheSBPZiBXZWVrXG4gICAgICBXejpcbiAgICAgICAgU3RyaW5nKGRhdGVEZXRhaWxzLmRheU9mV2VlaykubGVuZ3RoID09IDFcbiAgICAgICAgICA/ICcwJyArIGRhdGVEZXRhaWxzLmRheU9mV2Vla1xuICAgICAgICAgIDogZGF0ZURldGFpbHMuZGF5T2ZXZWVrLFxuICAgICAgV3M6IGRhdGVEZXRhaWxzLmRheU9mV2VlayxcbiAgICAgIFdsOiBkYXRlRGV0YWlscy5kYXlPZldlZWssXG4gICAgICBXcDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy5kYXlPZldlZWspLFxuICAgICAgV2Q6IGRhdGVEZXRhaWxzLmRheU9mV2VlayxcbiAgICAgIFc6IGRhdGVEZXRhaWxzLmRheU9mV2VlayxcblxuICAgICAgLy8gd2VlayBudW1iZXJcbiAgICAgIHd6OlxuICAgICAgICBTdHJpbmcoZGF0ZURldGFpbHMud2Vla051bWJlcikubGVuZ3RoID09IDFcbiAgICAgICAgICA/ICcwJyArIGRhdGVEZXRhaWxzLndlZWtOdW1iZXJcbiAgICAgICAgICA6IGRhdGVEZXRhaWxzLndlZWtOdW1iZXIsXG4gICAgICB3czogZGF0ZURldGFpbHMud2Vla051bWJlcixcbiAgICAgIHdsOiBkYXRlRGV0YWlscy53ZWVrTnVtYmVyLFxuICAgICAgd3A6IFN0cmluZy5mcm9tQ2hhckNvZGUoZGF0ZURldGFpbHMud2Vla051bWJlciksXG4gICAgICB3ZDogZGF0ZURldGFpbHMud2Vla051bWJlcixcbiAgICAgIHc6IGRhdGVEZXRhaWxzLndlZWtOdW1iZXJcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRGF0ZU1hc2tcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9EYXRlTWFzay9EYXRlTWFzay5qcyIsImltcG9ydCB7IGdldFdlZWtTdGFydEJ5UmVnaW9uLCBnZXRXZWVrU3RhcnRCeUxvY2FsZSB9IGZyb20gJy4vYXBpLmpzJztcbmltcG9ydCBsYW5nUmVnaW9uTWFwIGZyb20gJy4vbGFuZ1JlZ2lvbk1hcC5qcyc7XG5pbXBvcnQgcmVnaW9uRGF5TWFwIGZyb20gJy4vcmVnaW9uRGF5TWFwLmpzJztcblxuZnVuY3Rpb24gZ2V0V2Vla1N0YXJ0QnlSZWdpb24kMShyZWdpb25Db2RlKSB7XG4gICAgcmV0dXJuIGdldFdlZWtTdGFydEJ5UmVnaW9uKHJlZ2lvbkNvZGUsIHJlZ2lvbkRheU1hcCk7XG59XG5cbmZ1bmN0aW9uIGdldFdlZWtTdGFydEJ5TG9jYWxlJDEobG9jYWxlKSB7XG4gICAgcmV0dXJuIGdldFdlZWtTdGFydEJ5TG9jYWxlKGxvY2FsZSwgbGFuZ1JlZ2lvbk1hcCwgcmVnaW9uRGF5TWFwKTtcbn1cblxuZXhwb3J0IHsgZ2V0V2Vla1N0YXJ0QnlSZWdpb24kMSBhcyBnZXRXZWVrU3RhcnRCeVJlZ2lvbiwgZ2V0V2Vla1N0YXJ0QnlMb2NhbGUkMSBhcyBnZXRXZWVrU3RhcnRCeUxvY2FsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFpbi5qcy5tYXBcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3dlZWtzdGFydC9kaXN0L2VzLW1vZHVsZS9tYWluLmpzXG4vLyBtb2R1bGUgaWQgPSAxNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsImZ1bmN0aW9uIGdldFdlZWtTdGFydEJ5UmVnaW9uKHJlZ2lvbkNvZGUsIHJlZ2lvbkRheU1hcCkge1xuICAgIHZhciBjb2RlID0gcmVnaW9uRGF5TWFwW3R5cGVvZiByZWdpb25Db2RlID09PSAnc3RyaW5nJyA/IHJlZ2lvbkNvZGUudG9VcHBlckNhc2UoKSA6IHJlZ2lvbkNvZGVdO1xuICAgIHJldHVybiB0eXBlb2YgY29kZSA9PT0gJ251bWJlcicgPyBjb2RlIDogMTtcbn1cblxuZnVuY3Rpb24gZ2V0V2Vla1N0YXJ0QnlMb2NhbGUobG9jYWxlLCBsYW5nUmVnaW9uTWFwLCByZWdpb25EYXlNYXApIHtcbiAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgIHZhciBkYXRhID0gbG9jYWxlLnRvTG93ZXJDYXNlKCkuc3BsaXQoL1stX10vKTtcbiAgICAgICAgdmFyIGxhbmd1YWdlID0gZGF0YVswXTtcbiAgICAgICAgdmFyIGNvdW50cnk7XG4gICAgICAgIGlmIChkYXRhWzFdICYmIGRhdGFbMV0ubGVuZ3RoID09PSA0KSB7XG4gICAgICAgICAgICBsYW5ndWFnZSArPSBcIl9cIiArIChkYXRhWzFdKTtcbiAgICAgICAgICAgIGNvdW50cnkgPSBkYXRhWzJdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY291bnRyeSA9IGRhdGFbMV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjb3VudHJ5KSB7XG4gICAgICAgICAgICBjb3VudHJ5ID0gbGFuZ1JlZ2lvbk1hcFtsYW5ndWFnZV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvdW50cnkpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRXZWVrU3RhcnRCeVJlZ2lvbihjb3VudHJ5Lm1hdGNoKC9eXFxkKyQvKSA/IE51bWJlcihjb3VudHJ5KSA6IGNvdW50cnksIHJlZ2lvbkRheU1hcCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIDE7XG59XG5cbmV4cG9ydCB7IGdldFdlZWtTdGFydEJ5UmVnaW9uLCBnZXRXZWVrU3RhcnRCeUxvY2FsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBpLmpzLm1hcFxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvd2Vla3N0YXJ0L2Rpc3QvZXMtbW9kdWxlL2FwaS5qc1xuLy8gbW9kdWxlIGlkID0gMTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCJ2YXIgbGFuZ1JlZ2lvbk1hcCA9IHtcbiAgICBlbjogJ1VTJyxcbiAgICB6aDogJ0NOJyxcbiAgICB6aF9oYW5zOiAnQ04nLFxuICAgIGhhbnM6ICdDTicsXG4gICAgd3V1OiAnQ04nLFxuICAgIGhzbjogJ0NOJyxcbiAgICBoYWs6ICdDTicsXG4gICAgbmFuOiAnQ04nLFxuICAgIGdhbjogJ0NOJyxcbiAgICBoaTogJ0lOJyxcbiAgICB0ZTogJ0lOJyxcbiAgICBtcjogJ0lOJyxcbiAgICB0YTogJ0lOJyxcbiAgICBndTogJ0lOJyxcbiAgICBrbjogJ0lOJyxcbiAgICBvcjogJ0lOJyxcbiAgICBtbDogJ0lOJyxcbiAgICBwYV9ndXJ1OiAnSU4nLFxuICAgIGJobzogJ0lOJyxcbiAgICBhd2E6ICdJTicsXG4gICAgYXM6ICdJTicsXG4gICAgbXdyOiAnSU4nLFxuICAgIG1haTogJ0lOJyxcbiAgICBtYWc6ICdJTicsXG4gICAgYmdjOiAnSU4nLFxuICAgIGhuZTogJ0lOJyxcbiAgICBkY2M6ICdJTicsXG4gICAgZHo6ICdCVCcsXG4gICAgdG46ICdCVycsXG4gICAgYW06ICdFVCcsXG4gICAgb206ICdFVCcsXG4gICAgcXVjOiAnR1QnLFxuICAgIGlkOiAnSUQnLFxuICAgIGp2OiAnSUQnLFxuICAgIHN1OiAnSUQnLFxuICAgIG1hZDogJ0lEJyxcbiAgICBtc19hcmFiOiAnSUQnLFxuICAgIGdhOiAnSUUnLFxuICAgIGhlOiAnSUwnLFxuICAgIGphbTogJ0pNJyxcbiAgICBqYTogJ0pQJyxcbiAgICBrbTogJ0tIJyxcbiAgICBrbzogJ0tSJyxcbiAgICBsbzogJ0xBJyxcbiAgICBtaDogJ01IJyxcbiAgICBteTogJ01NJyxcbiAgICBtdDogJ01UJyxcbiAgICBuZTogJ05QJyxcbiAgICBmaWw6ICdQSCcsXG4gICAgY2ViOiAnUEgnLFxuICAgIGlsbzogJ1BIJyxcbiAgICB1cjogJ1BLJyxcbiAgICBwYTogJ1BLJyxcbiAgICBwYV9hcmFiOiAnUEsnLFxuICAgIGFyYWI6ICdQSycsXG4gICAgbGFoOiAnUEsnLFxuICAgIHBzOiAnUEsnLFxuICAgIHNkOiAnUEsnLFxuICAgIHNkX2FyYWI6ICdQSycsXG4gICAgc2tyOiAnUEsnLFxuICAgIGduOiAnUFknLFxuICAgIHRoOiAnVEgnLFxuICAgIHR0czogJ1RIJyxcbiAgICBhZWI6ICdUTicsXG4gICAgemhfaGFudDogJ1RXJyxcbiAgICBoYW50OiAnVFcnLFxuICAgIHNtOiAnV1MnLFxuICAgIHp1OiAnWkEnLFxuICAgIHNuOiAnWlcnLFxuICAgIGFycTogJ0RaJyxcbiAgICBhcjogJ0VHJyxcbiAgICBhcno6ICdFRycsXG4gICAgZmE6ICdJUicsXG4gICAgYXpfYXJhYjogJ0lSJyxcbiAgICBhcnk6ICdNQScsXG4gICAgYm46ICdCRCcsXG4gICAgcmt0OiAnQkQnLFxuICAgIGR2OiAnTVYnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsYW5nUmVnaW9uTWFwO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGFuZ1JlZ2lvbk1hcC5qcy5tYXBcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL3dlZWtzdGFydC9kaXN0L2VzLW1vZHVsZS9sYW5nUmVnaW9uTWFwLmpzXG4vLyBtb2R1bGUgaWQgPSAxN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsInZhciByZWdpb25EYXlNYXAgPSB7XG4gICAgQUc6IDAsXG4gICAgQVRHOiAwLFxuICAgIDI4OiAwLFxuICAgIEFSOiAwLFxuICAgIEFSRzogMCxcbiAgICAzMjogMCxcbiAgICBBUzogMCxcbiAgICBBU006IDAsXG4gICAgMTY6IDAsXG4gICAgQVU6IDAsXG4gICAgQVVTOiAwLFxuICAgIDM2OiAwLFxuICAgIEJSOiAwLFxuICAgIEJSQTogMCxcbiAgICA3NjogMCxcbiAgICBCUzogMCxcbiAgICBCSFM6IDAsXG4gICAgNDQ6IDAsXG4gICAgQlQ6IDAsXG4gICAgQlROOiAwLFxuICAgIDY0OiAwLFxuICAgIEJXOiAwLFxuICAgIEJXQTogMCxcbiAgICA3MjogMCxcbiAgICBCWjogMCxcbiAgICBCTFo6IDAsXG4gICAgODQ6IDAsXG4gICAgQ0E6IDAsXG4gICAgQ0FOOiAwLFxuICAgIDEyNDogMCxcbiAgICBDTjogMCxcbiAgICBDSE46IDAsXG4gICAgMTU2OiAwLFxuICAgIENPOiAwLFxuICAgIENPTDogMCxcbiAgICAxNzA6IDAsXG4gICAgRE06IDAsXG4gICAgRE1BOiAwLFxuICAgIDIxMjogMCxcbiAgICBETzogMCxcbiAgICBET006IDAsXG4gICAgMjE0OiAwLFxuICAgIEVUOiAwLFxuICAgIEVUSDogMCxcbiAgICAyMzE6IDAsXG4gICAgR1Q6IDAsXG4gICAgR1RNOiAwLFxuICAgIDMyMDogMCxcbiAgICBHVTogMCxcbiAgICBHVU06IDAsXG4gICAgMzE2OiAwLFxuICAgIEhLOiAwLFxuICAgIEhLRzogMCxcbiAgICAzNDQ6IDAsXG4gICAgSE46IDAsXG4gICAgSE5EOiAwLFxuICAgIDM0MDogMCxcbiAgICBJRDogMCxcbiAgICBJRE46IDAsXG4gICAgMzYwOiAwLFxuICAgIElFOiAwLFxuICAgIElSTDogMCxcbiAgICAzNzI6IDAsXG4gICAgSUw6IDAsXG4gICAgSVNSOiAwLFxuICAgIDM3NjogMCxcbiAgICBJTjogMCxcbiAgICBJTkQ6IDAsXG4gICAgMzU2OiAwLFxuICAgIEpNOiAwLFxuICAgIEpBTTogMCxcbiAgICAzODg6IDAsXG4gICAgSlA6IDAsXG4gICAgSlBOOiAwLFxuICAgIDM5MjogMCxcbiAgICBLRTogMCxcbiAgICBLRU46IDAsXG4gICAgNDA0OiAwLFxuICAgIEtIOiAwLFxuICAgIEtITTogMCxcbiAgICAxMTY6IDAsXG4gICAgS1I6IDAsXG4gICAgS09SOiAwLFxuICAgIDQxMDogMCxcbiAgICBMQTogMCxcbiAgICBMQTA6IDAsXG4gICAgNDE4OiAwLFxuICAgIE1IOiAwLFxuICAgIE1ITDogMCxcbiAgICA1ODQ6IDAsXG4gICAgTU06IDAsXG4gICAgTU1SOiAwLFxuICAgIDEwNDogMCxcbiAgICBNTzogMCxcbiAgICBNQUM6IDAsXG4gICAgNDQ2OiAwLFxuICAgIE1UOiAwLFxuICAgIE1MVDogMCxcbiAgICA0NzA6IDAsXG4gICAgTVg6IDAsXG4gICAgTUVYOiAwLFxuICAgIDQ4NDogMCxcbiAgICBNWjogMCxcbiAgICBNT1o6IDAsXG4gICAgNTA4OiAwLFxuICAgIE5JOiAwLFxuICAgIE5JQzogMCxcbiAgICA1NTg6IDAsXG4gICAgTlA6IDAsXG4gICAgTlBMOiAwLFxuICAgIDUyNDogMCxcbiAgICBOWjogMCxcbiAgICBOWkw6IDAsXG4gICAgNTU0OiAwLFxuICAgIFBBOiAwLFxuICAgIFBBTjogMCxcbiAgICA1OTE6IDAsXG4gICAgUEU6IDAsXG4gICAgUEVSOiAwLFxuICAgIDYwNDogMCxcbiAgICBQSDogMCxcbiAgICBQSEw6IDAsXG4gICAgNjA4OiAwLFxuICAgIFBLOiAwLFxuICAgIFBBSzogMCxcbiAgICA1ODY6IDAsXG4gICAgUFI6IDAsXG4gICAgUFJJOiAwLFxuICAgIDYzMDogMCxcbiAgICBQWTogMCxcbiAgICBQUlk6IDAsXG4gICAgNjAwOiAwLFxuICAgIFNBOiAwLFxuICAgIFNBVTogMCxcbiAgICA2ODI6IDAsXG4gICAgU0c6IDAsXG4gICAgU0dQOiAwLFxuICAgIDcwMjogMCxcbiAgICBTVjogMCxcbiAgICBTTFY6IDAsXG4gICAgMjIyOiAwLFxuICAgIFRIOiAwLFxuICAgIFRIQTogMCxcbiAgICA3NjQ6IDAsXG4gICAgVE46IDAsXG4gICAgVFVOOiAwLFxuICAgIDc4ODogMCxcbiAgICBUVDogMCxcbiAgICBUVE86IDAsXG4gICAgNzgwOiAwLFxuICAgIFRXOiAwLFxuICAgIFRXTjogMCxcbiAgICAxNTg6IDAsXG4gICAgVU06IDAsXG4gICAgVU1JOiAwLFxuICAgIDU4MTogMCxcbiAgICBVUzogMCxcbiAgICBVU0E6IDAsXG4gICAgODQwOiAwLFxuICAgIFZFOiAwLFxuICAgIFZFTjogMCxcbiAgICA4NjI6IDAsXG4gICAgVkk6IDAsXG4gICAgVklSOiAwLFxuICAgIDg1MDogMCxcbiAgICBXUzogMCxcbiAgICBXU006IDAsXG4gICAgODgyOiAwLFxuICAgIFlFOiAwLFxuICAgIFlFTTogMCxcbiAgICA4ODc6IDAsXG4gICAgWkE6IDAsXG4gICAgWkFGOiAwLFxuICAgIDcxMDogMCxcbiAgICBaVzogMCxcbiAgICBaV0U6IDAsXG4gICAgNzE2OiAwLFxuICAgIEFFOiA2LFxuICAgIEFSRTogNixcbiAgICA3ODQ6IDYsXG4gICAgQUY6IDYsXG4gICAgQUZHOiA2LFxuICAgIDQ6IDYsXG4gICAgQkg6IDYsXG4gICAgQkhSOiA2LFxuICAgIDQ4OiA2LFxuICAgIERKOiA2LFxuICAgIERKSTogNixcbiAgICAyNjI6IDYsXG4gICAgRFo6IDYsXG4gICAgRFpBOiA2LFxuICAgIDEyOiA2LFxuICAgIEVHOiA2LFxuICAgIEVHWTogNixcbiAgICA4MTg6IDYsXG4gICAgSVE6IDYsXG4gICAgSVJROiA2LFxuICAgIDM2ODogNixcbiAgICBJUjogNixcbiAgICBJUk46IDYsXG4gICAgMzY0OiA2LFxuICAgIEpPOiA2LFxuICAgIEpPUjogNixcbiAgICA0MDA6IDYsXG4gICAgS1c6IDYsXG4gICAgS1dUOiA2LFxuICAgIDQxNDogNixcbiAgICBMWTogNixcbiAgICBMQlk6IDYsXG4gICAgNDM0OiA2LFxuICAgIE1BOiA2LFxuICAgIE1BUjogNixcbiAgICA1MDQ6IDYsXG4gICAgT006IDYsXG4gICAgT01OOiA2LFxuICAgIDUxMjogNixcbiAgICBRQTogNixcbiAgICBRQVQ6IDYsXG4gICAgNjM0OiA2LFxuICAgIFNEOiA2LFxuICAgIFNETjogNixcbiAgICA3Mjk6IDYsXG4gICAgU1k6IDYsXG4gICAgU1lSOiA2LFxuICAgIDc2MDogNixcbiAgICBCRDogNSxcbiAgICBCR0Q6IDUsXG4gICAgNTA6IDUsXG4gICAgTVY6IDUsXG4gICAgTURWOiA1LFxuICAgIDQ2MjogNVxufTtcblxuZXhwb3J0IGRlZmF1bHQgcmVnaW9uRGF5TWFwO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVnaW9uRGF5TWFwLmpzLm1hcFxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvd2Vla3N0YXJ0L2Rpc3QvZXMtbW9kdWxlL3JlZ2lvbkRheU1hcC5qc1xuLy8gbW9kdWxlIGlkID0gMThcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuY29uc3QgaXNOdW1iZXJSZWdleCA9IC9eXFxkKyQvXG5jb25zdCBpc1doaXRlc3BhY2VSZWdleCA9IC9cXHMvXG5jb25zdCBwdW5jdHVhdGlvbkxpc3QgPSAnIVwiIyQlJlxcJygpKissLS4vOjs8PT4/QFtdXl9ge3x9fidcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGlzIGluIGxvd2VyIGNhc2VcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKi9cbmNvbnN0IGlzTG93ZXJDYXNlID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ciA9PSBzdHIudG9Mb3dlckNhc2UoKSAmJiBzdHIgIT0gc3RyLnRvVXBwZXJDYXNlKClcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGlzIGluIHVwcGVyIGNhc2VcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKi9cbmNvbnN0IGlzVXBwZXJDYXNlID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ciA9PSBzdHIudG9VcHBlckNhc2UoKSAmJiBzdHIgIT0gc3RyLnRvTG93ZXJDYXNlKClcbn1cblxuY29uc3QgcGFzc09yVGhyb3dFcnJvciA9IChsb29zZSwgcmV0LCBpLCBzdHIpID0+IHtcbiAgaWYgKCFsb29zZSkge1xuICAgIGNvbnN0IGNoYXIgPSBzdHIuY2hhckF0KGkpXG4gICAgY29uc3QgcG9zID0gaSArIDFcbiAgICB0aHJvdyB7XG4gICAgICBuYW1lOiAnU3RyaW5nTWFza0Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6IGBTdHJpbmdNYXNrRXJyb3I6IGVycm9yIGFwcGx5aW5nIG1hc2sgYXQgcG9zaXRpb24gXCIke3Bvc31cIiAsIGNoYXIgXCIke2NoYXJ9XCJgLFxuICAgICAgcG9zLFxuICAgICAgY2hhclxuICAgIH1cbiAgfSBlbHNlIHJldFtpXSA9ICcgJ1xufVxuXG4vKipcbiAqIE51bWJlck1hc2tcbiAqXG4gKiBBIGphdmFzY3JpcHQgaW1wbGVtZW50YXRpb24gZm9yIEJCaiBudW1iZXJzIG1hc2tpbmdcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBTdHJpbmdNYXNrIHtcbiAgLyoqXG4gICAqIE1hc2sgdGhlIGdpdmVuIHN0cmluZyB3aXRoIHRoZSBnaXZlbiBtYXNrIGFjY29yZGluZyB0byBCQmogcnVsZXNcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0ciB0aGUgc3RyaW5nIHRvIG1hc2tcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgdGhlIG1hc2sgdG8gdXNlIGZvciBmb3JtYXR0aW5nXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2xvb3NlPXRydWVdIHdoZW4gdHJ1ZSAsIGVycm9ycyB3aWxsIGJlIGlnbm9yZWQgYW5kIHRoZSBtZXRob2Qgd2lsbCB0cnkgYXQgYXBwbHkgdGhlIG1hc2tcbiAgICogICAgICAgICAgICAgICAgYW55d2F5ICwgb3RoZXJ3aXNlIGl0IHdpbGwgc3RvcCBhdCBmaXJzdCBlcnJvciBhbmQgdGhyb3cgaXQuXG4gICAqIFxuICAgKiBAdGhyb3dzIHtNYXNrSXNUb29TaG9ydEVycm9yfVxuICAgKiBAdGhyb3dzIHtTdHJpbmdNYXNrRXJyb3J9XG4gICAqIEB0aHJvd3Mge01hc2tFcnJvcn1cbiAgICogXG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IHRoZSBtYXNrZWQgc3RyaW5nXG4gICAqL1xuICBzdGF0aWMgbWFzayhzdHIsIG1hc2ssIGxvb3NlID0gdHJ1ZSkge1xuICAgIHN0ciA9IFN0cmluZyhzdHIpXG4gICAgbWFzayA9IFN0cmluZyhtYXNrKVxuICAgIGNvbnN0IG1hc2tMZW4gPSBtYXNrLmxlbmd0aFxuICAgIGNvbnN0IHN0ckxlbiA9IHN0ci5sZW5ndGhcblxuICAgIGlmIChzdHJMZW4gPiBtYXNrTGVuKSB7XG4gICAgICBpZiAobG9vc2UpIHJldHVybiBzdHJcbiAgICAgIC8vIGZyaWVuZGx5IHNpbGVudCBmYWlsXG4gICAgICBlbHNlXG4gICAgICAgIHRocm93IHtcbiAgICAgICAgICBuYW1lOiAnTWFza0lzVG9vU2hvcnRFcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogYE1hc2tJc1Rvb1Nob3J0RXJyb3I6IE1hc2sgaXMgc2hvcnRlciB0aGFuIHRoZSBwYXNzZWQgc3RyaW5nYFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmV0ID0gbmV3IEFycmF5KG1hc2tMZW4pXG4gICAgbGV0IHBvcyA9IDAgLy8gdG8ga2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgc3RyXG4gICAgbGV0IG1hc2tCeXRlID0gJydcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFza0xlbjsgaSsrKSB7XG4gICAgICBtYXNrQnl0ZSA9IG1hc2suY2hhckF0KGkpXG4gICAgICBzd2l0Y2ggKG1hc2tCeXRlKSB7XG4gICAgICAgIGNhc2UgJ1gnOiAvLyBtYXRjaCBhbnkgY2hhcmFjdGVyXG4gICAgICAgICAgcmV0W2ldID0gcG9zIDwgc3RyTGVuID8gc3RyLmNoYXJBdChwb3MpIDogJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ0EnOiAvLyBtYXRjaCBsZXR0ZXI7IGZvcmNlIHVwcGVyIGNhc2VcbiAgICAgICAgICBpZiAocG9zIDwgc3RyTGVuKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlID0gc3RyLmNoYXJBdChwb3MpXG4gICAgICAgICAgICBpZiAoaXNVcHBlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzTG93ZXJDYXNlKGJ5dGUpKSByZXRbaV0gPSBieXRlLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICdhJzogLy8gbWF0Y2ggbGV0dGVyXG4gICAgICAgICAgaWYgKHBvcyA8IHN0ckxlbikge1xuICAgICAgICAgICAgY29uc3QgYnl0ZSA9IHN0ci5jaGFyQXQocG9zKVxuICAgICAgICAgICAgaWYgKGlzVXBwZXJDYXNlKGJ5dGUpIHx8IGlzTG93ZXJDYXNlKGJ5dGUpKSByZXRbaV0gPSBieXRlXG4gICAgICAgICAgICBlbHNlIHBhc3NPclRocm93RXJyb3IobG9vc2UsIHJldCwgaSwgc3RyKVxuICAgICAgICAgIH0gZWxzZSByZXRbaV0gPSAnICdcbiAgICAgICAgICArK3Bvc1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJzAnOiAvLyBtYXRjaCBkaWdpdFxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChpc051bWJlclJlZ2V4LnRlc3QoYnl0ZSkpIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnWic6IC8vIG1hdGNoIGxldHRlciBvciBkaWdpdDsgZm9yY2UgdXBwZXIgY2FzZVxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChpc1VwcGVyQ2FzZShieXRlKSB8fCBpc051bWJlclJlZ2V4LnRlc3QoYnl0ZSkpIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzTG93ZXJDYXNlKGJ5dGUpKSByZXRbaV0gPSBieXRlLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAneic6IC8vIG1hdGNoIGxldHRlciBvciBkaWdpdFxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgaXNVcHBlckNhc2UoYnl0ZSkgfHxcbiAgICAgICAgICAgICAgaXNMb3dlckNhc2UoYnl0ZSkgfHxcbiAgICAgICAgICAgICAgaXNOdW1iZXJSZWdleC50ZXN0KGJ5dGUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ1UnOiAvLyBtYXRjaCBsZXR0ZXIgKGZvcmNlIHVwcGVyIGNhc2UpLCBkaWdpdCwgd2hpdGVzcGFjZSBvciBwdW5jdHVhdGlvbi5cbiAgICAgICAgICBpZiAocG9zIDwgc3RyTGVuKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlID0gc3RyLmNoYXJBdChwb3MpXG4gICAgICAgICAgICBpZiAoaXNMb3dlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGUudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAgIGlzVXBwZXJDYXNlKGJ5dGUpIHx8XG4gICAgICAgICAgICAgIGlzTnVtYmVyUmVnZXgudGVzdChieXRlKSB8fFxuICAgICAgICAgICAgICBpc1doaXRlc3BhY2VSZWdleC50ZXN0KGJ5dGUpIHx8XG4gICAgICAgICAgICAgIHB1bmN0dWF0aW9uTGlzdC5pbmRleE9mKGJ5dGUpID4gLTFcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldFtpXSA9IG1hc2tCeXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocG9zIDwgc3RyTGVuKSB7XG4gICAgICBpZiAoIWxvb3NlKSB7XG4gICAgICAgIHRocm93IHsgbmFtZTogJ01hc2tFcnJvcicsIG1lc3NhZ2U6ICdNYXNrIGNhbm5vdCBiZSBhcHBsaWVkJyB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldC5qb2luKCcnKVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFN0cmluZ01hc2tcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9TdHJpbmdNYXNrL1N0cmluZ01hc2suanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IFR5cGVzIGZyb20gJy4vVHlwZXMnXG5cbmV4cG9ydCBkZWZhdWx0IFR5cGVzXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvVHlwZXMvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IE51bWJlck1hc2sgZnJvbSAnLi4vTnVtYmVyTWFzaydcbmltcG9ydCBEYXRlTWFzayBmcm9tICcuLi9EYXRlTWFzaydcbmltcG9ydCBTdHJpbmdNYXNrIGZyb20gJy4uL1N0cmluZ01hc2snXG5cbi8qKlxuICogVHlwZXNcbiAqXG4gKiBCQmogbWFza3MgZmFjdG9yeVxuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIFR5cGVzIHtcbiAgLyoqXG4gICAqIE1hc2sgdGhlIGdpdmVuIG51bWJlciB3aXRoIHRoZSBnaXZlbiBtYXNrIGFjY29yZGluZyB0byBCQmogcnVsZXNcbiAgICpcbiAgICogQHBhcmFtIHtOdW1iZXJ9IG51bWJlciB0aGUgbnVtYmVyIHRvIGZvcm1hdFxuICAgKiBAcGFyYW0ge1N0cmluZ30gbWFzayB0aGUgbWFzayB0byB1c2UgZm9yIGZvcm1hdHRpbmdcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtncm91cGluZ1NlcGFyYXRvcj0sXSAtIGEgY2hhciB3aGljaCB3aWxsIGJlIHVzZWQgYXMgYSBncm91cGluZyBzZXBhcmF0b3JcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtkZWNpbWFsU2VwYXJhdG9yPS5dICAtIGEgY2hhciB3aGljaCB3aWxsIGJlIHVzZWQgYXMgYSBkZWNpbWFsIHNlcGFyYXRvclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtmb3JjZVRyYWlsaW5nWmVyb3M9ZmFsc2VdIC0gQWZmZWN0cyB0aGUgb3V0cHV0IGJ5IHN3aXRjaGluZyB0aGUgd2F5IGEgbWFzayB3aXRoIFwiI1wiIGNoYXJhY3RlcnMgaW4gdGhlIHRyYWlsaW5nIHBvc2l0aW9ucyBpcyBmaWxsZWQuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlLCB0aGUgZnVuY3Rpb24gYE51bWJlck1hc2subWFzayguMTA6XCIjLiMjXCIpYCByZXR1cm5zIGAgLjEwYCBpbnN0ZWFkIG9mIGAgLjEgYFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtsb29zZT10cnVlXSB3aGVuIHRydWUgLCBlcnJvcnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB0aGUgbWV0aG9kIHdpbGwgdHJ5IGF0IGFwcGx5IHRoZSBtYXNrXG4gICAqICAgICAgICAgICAgICAgIGFueXdheSAsIG90aGVyd2lzZSBpdCB3aWxsIHN0b3AgYXQgZmlyc3QgZXJyb3IgYW5kIHRocm93IGl0LlxuICAgKlxuICAgKiBAcmV0dXJucyB7U3RyaW5nfSB0aGUgbWFza2VkIG51bWJlclxuICAgKi9cbiAgc3RhdGljIG51bWJlcihcbiAgICBudW1iZXIsXG4gICAgbWFzayxcbiAgICBncm91cGluZ1NlcGFyYXRvciA9ICcsJyxcbiAgICBkZWNpbWFsU2VwYXJhdG9yID0gJy4nLFxuICAgIGZvcmNlVHJhaWxpbmdaZXJvcyA9IGZhbHNlLFxuICAgIGxvb3NlID0gdHJ1ZVxuICApIHtcbiAgICByZXR1cm4gTnVtYmVyTWFzay5tYXNrKFxuICAgICAgbnVtYmVyLFxuICAgICAgbWFzayxcbiAgICAgIGdyb3VwaW5nU2VwYXJhdG9yLFxuICAgICAgZGVjaW1hbFNlcGFyYXRvcixcbiAgICAgIGZvcmNlVHJhaWxpbmdaZXJvcyxcbiAgICAgIGxvb3NlXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIE1hc2sgYSBkYXRlIGFjY29yZGluZyB0byBiYmogbWFza2luZyBydWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0ZSBkYXRlIGFzIGEgc3RyaW5nXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrIG1hc2sgYXMgYSBzdHJpbmdcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtsb2NhbGU9QnJvd3NlcidzIGxvY2FsZV0gdGhlIGxhbmd1YWdlIHRvIHVzZSBleChlbi1VUykuIGRlZmF1bHQgaXMgdG8gdGhlIHN5c3RlbSBsYW5ndWFnZVxuICAgKiBAcGFyYW0ge1N0cmluZ30gW3RpbWV6b25lPVN5c3RlbSB0aW1lem9uZV0gdGhlIHRpbWUgem9uZSBkZXNjcmlwdG9yIChlLmcuIEFtZXJpY2EvTG9zX0FuZ2VsZXMpLiBkZWZhdWx0IHRvIHRoZSBzeXN0ZW1cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWV6b25lXG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmluZ30gbnVtYmVyIG1hc2tlZCB3aXRoIHRoZSBnaXZlbiBtYXNrXG4gICAqL1xuICBzdGF0aWMgZGF0ZShkYXRlLCBtYXNrLCBsb2NhbGUsIHRpbWV6b25lKSB7XG4gICAgcmV0dXJuIERhdGVNYXNrLm1hc2soZGF0ZSwgbWFzaywgbG9jYWxlLCB0aW1lem9uZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXNrIHRoZSBnaXZlbiBzdHJpbmcgd2l0aCB0aGUgZ2l2ZW4gbWFzayBhY2NvcmRpbmcgdG8gQkJqIHJ1bGVzXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzdHIgdGhlIHN0cmluZyB0byBtYXNrXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrIHRoZSBtYXNrIHRvIHVzZSBmb3IgZm9ybWF0dGluZ1xuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtsb29zZT10cnVlXSB3aGVuIHRydWUgLCBlcnJvcnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB0aGUgbWV0aG9kIHdpbGwgdHJ5IGF0IGFwcGx5IHRoZSBtYXNrXG4gICAqICAgICAgICAgICAgICAgIGFueXdheSAsIG90aGVyd2lzZSBpdCB3aWxsIHN0b3AgYXQgZmlyc3QgZXJyb3IgYW5kIHRocm93IGl0LlxuICAgKlxuICAgKiBAdGhyb3dzIHtNYXNrSXNUb29TaG9ydEVycm9yfVxuICAgKiBAdGhyb3dzIHtTdHJpbmdNYXNrRXJyb3J9XG4gICAqIEB0aHJvd3Mge01hc2tFcnJvcn1cbiAgICpcbiAgICogQHJldHVybnMge1N0cmluZ30gdGhlIG1hc2tlZCBzdHJpbmdcbiAgICovXG4gIHN0YXRpYyBzdHJpbmcoc3RyLCBtYXNrLCBsb29zZSA9IHRydWUpIHtcbiAgICByZXR1cm4gU3RyaW5nTWFzay5tYXNrKHN0ciwgbWFzaywgbG9vc2UpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVHlwZXNcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UeXBlcy9UeXBlcy5qcyIsIi8qXG4gKiBKU1MgdjAuNiAtIEphdmFTY3JpcHQgU3R5bGVzaGVldHNcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Cb3g5L2pzc1xuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMSwgRGF2aWQgVGFuZ1xuICogTUlUIExpY2Vuc2VkIChodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocClcbiAqL1xudmFyIGpzcyA9IChmdW5jdGlvbigpIHtcbiAgICB2YXIgYWRqU2VsQXR0clJlZ2V4ID0gLygoPzpcXC58IylbXlxcLlxccyNdKykoKD86XFwufCMpW15cXC5cXHMjXSspL2c7XG4gICAgdmFyIGRvdWJsZUNvbG9uUHNldWRvRWxSZWdleCA9IC8oOjopKGJlZm9yZXxhZnRlcnxmaXJzdC1saW5lfGZpcnN0LWxldHRlcnxzZWxlY3Rpb24pLztcbiAgICB2YXIgc2luZ2xlQ29sb25Qc2V1ZG9FbFJlZ2V4ID0gLyhbXjpdKSg6KShiZWZvcmV8YWZ0ZXJ8Zmlyc3QtbGluZXxmaXJzdC1sZXR0ZXJ8c2VsZWN0aW9uKS87XG4gICAgdmFyIHNpbmdsZUNvbG9uRm9yUHNldWRvRWxlbWVudHM7IC8vIGZsYWcgZm9yIG9sZGVyIGJyb3dzZXJzXG5cbiAgICBmdW5jdGlvbiBnZXRTZWxlY3RvcnNBbmRSdWxlcyhzaGVldCkge1xuICAgICAgICB2YXIgcnVsZXMgPSBzaGVldC5jc3NSdWxlcyB8fCBzaGVldC5ydWxlcyB8fCBbXTtcbiAgICAgICAgdmFyIHJlc3VsdHMgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgLy8gT2xkZXIgYnJvd3NlcnMgYW5kIEZGIHJlcG9ydCBwc2V1ZG8gZWxlbWVudCBzZWxlY3RvcnMgaW4gYW4gb3V0ZGF0ZWQgZm9ybWF0XG4gICAgICAgICAgICB2YXIgc2VsZWN0b3JUZXh0ID0gdG9Eb3VibGVDb2xvblBzZXVkb0VsZW1lbnRzKHJ1bGVzW2ldLnNlbGVjdG9yVGV4dCk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdHNbc2VsZWN0b3JUZXh0XSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdHNbc2VsZWN0b3JUZXh0XSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0c1tzZWxlY3RvclRleHRdLnB1c2goe1xuICAgICAgICAgICAgICAgIHNoZWV0OiBzaGVldCxcbiAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICBzdHlsZTogcnVsZXNbaV0uc3R5bGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFJ1bGVzKHNoZWV0LCBzZWxlY3Rvcikge1xuICAgICAgICB2YXIgcnVsZXMgPSBzaGVldC5jc3NSdWxlcyB8fCBzaGVldC5ydWxlcyB8fCBbXTtcbiAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICAgICAgLy8gQnJvd3NlcnMgcmVwb3J0IHNlbGVjdG9ycyBpbiBsb3dlcmNhc2VcbiAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3Rvci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgc2VsZWN0b3JUZXh0ID0gcnVsZXNbaV0uc2VsZWN0b3JUZXh0O1xuICAgICAgICAgICAgLy8gTm90ZSAtIGNlcnRhaW4gcnVsZXMgKGUuZy4gQHJ1bGVzKSBkb24ndCBoYXZlIHNlbGVjdG9yVGV4dFxuICAgICAgICAgICAgaWYgKHNlbGVjdG9yVGV4dCAmJiAoc2VsZWN0b3JUZXh0ID09IHNlbGVjdG9yIHx8IHNlbGVjdG9yVGV4dCA9PSBzd2FwQWRqU2VsQXR0cihzZWxlY3RvcikgfHwgc2VsZWN0b3JUZXh0ID09IHN3YXBQc2V1ZG9FbFN5bnRheChzZWxlY3RvcikpKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgc2hlZXQ6IHNoZWV0LFxuICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHJ1bGVzW2ldLnN0eWxlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkUnVsZShzaGVldCwgc2VsZWN0b3IpIHtcbiAgICAgICAgdmFyIHJ1bGVzID0gc2hlZXQuY3NzUnVsZXMgfHwgc2hlZXQucnVsZXMgfHwgW107XG4gICAgICAgIHZhciBpbmRleCA9IHJ1bGVzLmxlbmd0aDtcbiAgICAgICAgdmFyIHBzZXVkb0VsZW1lbnRSdWxlID0gYWRkUHNldWRvRWxlbWVudFJ1bGUoc2hlZXQsIHNlbGVjdG9yLCBydWxlcywgaW5kZXgpO1xuXG4gICAgICAgIGlmICghcHNldWRvRWxlbWVudFJ1bGUpIHtcbiAgICAgICAgICAgIGFkZFJ1bGVUb1NoZWV0KHNoZWV0LCBzZWxlY3RvciwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hlZXQ6IHNoZWV0LFxuICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgc3R5bGU6IHJ1bGVzW2luZGV4XS5zdHlsZVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBhZGRSdWxlVG9TaGVldChzaGVldCwgc2VsZWN0b3IsIGluZGV4KSB7XG4gICAgICAgIGlmIChzaGVldC5pbnNlcnRSdWxlKSB7XG4gICAgICAgICAgICBzaGVldC5pbnNlcnRSdWxlKHNlbGVjdG9yICsgJyB7IH0nLCBpbmRleCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaGVldC5hZGRSdWxlKHNlbGVjdG9yLCBudWxsLCBpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBIYW5kbGVzIHNpbmdsZSBjb2xvbiBzeW50YXggZm9yIG9sZGVyIGJyb3dzZXJzIGFuZCBidWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ5NjUxXG4gICAgZnVuY3Rpb24gYWRkUHNldWRvRWxlbWVudFJ1bGUoc2hlZXQsIHNlbGVjdG9yLCBydWxlcywgaW5kZXgpIHtcbiAgICAgICAgdmFyIGRvdWJsZUNvbG9uU2VsZWN0b3I7XG4gICAgICAgIHZhciBzaW5nbGVDb2xvblNlbGVjdG9yO1xuXG4gICAgICAgIGlmIChkb3VibGVDb2xvblBzZXVkb0VsUmVnZXguZXhlYyhzZWxlY3RvcikpIHtcbiAgICAgICAgICAgIGRvdWJsZUNvbG9uU2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICAgICAgICAgIHNpbmdsZUNvbG9uU2VsZWN0b3IgPSB0b1NpbmdsZUNvbG9uUHNldWRvRWxlbWVudHMoc2VsZWN0b3IpO1xuICAgICAgICB9IGVsc2UgaWYgKHNpbmdsZUNvbG9uUHNldWRvRWxSZWdleC5leGVjKHNlbGVjdG9yKSkge1xuICAgICAgICAgICAgZG91YmxlQ29sb25TZWxlY3RvciA9IHRvRG91YmxlQ29sb25Qc2V1ZG9FbGVtZW50cyhzZWxlY3Rvcik7XG4gICAgICAgICAgICBzaW5nbGVDb2xvblNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIE5vdCBkZWFsaW5nIHdpdGggYSBwc2V1ZG8gZWxlbWVudFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzaW5nbGVDb2xvbkZvclBzZXVkb0VsZW1lbnRzKSB7XG4gICAgICAgICAgICAvLyBBc3N1bWUgbW9kZXJuIGJyb3dzZXIgYW5kIHRoZW4gY2hlY2sgaWYgc3VjY2Vzc2Z1bFxuICAgICAgICAgICAgYWRkUnVsZVRvU2hlZXQoc2hlZXQsIGRvdWJsZUNvbG9uU2VsZWN0b3IsIGluZGV4KTtcbiAgICAgICAgICAgIGlmIChydWxlcy5sZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBzaW5nbGVDb2xvbkZvclBzZXVkb0VsZW1lbnRzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2luZ2xlQ29sb25Gb3JQc2V1ZG9FbGVtZW50cykge1xuICAgICAgICAgICAgYWRkUnVsZVRvU2hlZXQoc2hlZXQsIHNpbmdsZUNvbG9uU2VsZWN0b3IsIGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvRG91YmxlQ29sb25Qc2V1ZG9FbGVtZW50cyhzZWxlY3Rvcikge1xuICAgICAgICByZXR1cm4gc2VsZWN0b3IucmVwbGFjZShzaW5nbGVDb2xvblBzZXVkb0VsUmVnZXgsIGZ1bmN0aW9uIChtYXRjaCwgc3VibWF0Y2gxLCBzdWJtYXRjaDIsIHN1Ym1hdGNoMykge1xuICAgICAgICAgICAgcmV0dXJuIHN1Ym1hdGNoMSArICc6OicgKyBzdWJtYXRjaDM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvU2luZ2xlQ29sb25Qc2V1ZG9FbGVtZW50cyhzZWxlY3Rvcikge1xuICAgICAgICByZXR1cm4gc2VsZWN0b3IucmVwbGFjZShkb3VibGVDb2xvblBzZXVkb0VsUmVnZXgsIGZ1bmN0aW9uKG1hdGNoLCBzdWJtYXRjaDEsIHN1Ym1hdGNoMikge1xuICAgICAgICAgICAgcmV0dXJuICc6JyArIHN1Ym1hdGNoMjtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmVSdWxlKHJ1bGUpIHtcbiAgICAgICAgdmFyIHNoZWV0ID0gcnVsZS5zaGVldDtcbiAgICAgICAgaWYgKHNoZWV0LmRlbGV0ZVJ1bGUpIHtcbiAgICAgICAgICAgIHNoZWV0LmRlbGV0ZVJ1bGUocnVsZS5pbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2hlZXQucmVtb3ZlUnVsZSkge1xuICAgICAgICAgICAgc2hlZXQucmVtb3ZlUnVsZShydWxlLmluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4dGVuZChkZXN0LCBzcmMpIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNyYykge1xuICAgICAgICAgICAgaWYgKCFzcmMuaGFzT3duUHJvcGVydHkoa2V5KSlcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGRlc3Rba2V5XSA9IHNyY1trZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFnZ3JlZ2F0ZVN0eWxlcyhydWxlcykge1xuICAgICAgICB2YXIgYWdncmVnYXRlID0ge307XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGV4dGVuZChhZ2dyZWdhdGUsIGRlY2xhcmVkUHJvcGVydGllcyhydWxlc1tpXS5zdHlsZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhZ2dyZWdhdGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVjbGFyZWRQcm9wZXJ0aWVzKHN0eWxlKSB7XG4gICAgICAgIHZhciBkZWNsYXJlZCA9IHt9O1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBkZWNsYXJlZFtzdHlsZVtpXV0gPSBzdHlsZVt0b0NhbWVsQ2FzZShzdHlsZVtpXSldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWNsYXJlZDtcbiAgICB9XG5cbiAgICAvLyBJRTkgc3RvcmVzIHJ1bGVzIHdpdGggYXR0cmlidXRlcyAoY2xhc3NlcyBvciBJRCdzKSBhZGphY2VudCBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIgYXMgZGVmaW5lZFxuICAgIC8vIGNhdXNpbmcgdGhlbSB0byBub3QgYmUgZm91bmQsIHNvIHRoaXMgbWV0aG9kIHN3YXBzIFsjfC5dc2VsMVsjfC5dc2VsMiB0byBiZWNvbWUgWyN8Ll1zZWwyWyN8Ll1zZWwxXG4gICAgZnVuY3Rpb24gc3dhcEFkalNlbEF0dHIoc2VsZWN0b3IpIHtcbiAgICAgICAgdmFyIHN3YXAgPSAnJztcbiAgICAgICAgdmFyIGxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICBcbiAgICAgICAgd2hpbGUgKChtYXRjaCA9IGFkalNlbEF0dHJSZWdleC5leGVjKHNlbGVjdG9yKSkgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKG1hdGNoWzBdID09PSAnJylcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIHN3YXAgKz0gc2VsZWN0b3Iuc3Vic3RyaW5nKGxhc3RJbmRleCwgbWF0Y2guaW5kZXgpO1xuICAgICAgICAgICAgc3dhcCArPSBzZWxlY3Rvci5zdWJzdHIobWF0Y2guaW5kZXggKyBtYXRjaFsxXS5sZW5ndGgsIG1hdGNoWzJdLmxlbmd0aCk7XG4gICAgICAgICAgICBzd2FwICs9IHNlbGVjdG9yLnN1YnN0cihtYXRjaC5pbmRleCwgbWF0Y2hbMV0ubGVuZ3RoKTtcbiAgICAgICAgICAgIGxhc3RJbmRleCA9IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHN3YXAgKz0gc2VsZWN0b3Iuc3Vic3RyKGxhc3RJbmRleCk7XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gc3dhcDtcbiAgICB9O1xuXG4gICAgLy8gRkYgYW5kIG9sZGVyIGJyb3dzZXJzIHN0b3JlIHJ1bGVzIHdpdGggcHNldWRvIGVsZW1lbnRzIHVzaW5nIHNpbmdsZS1jb2xvbiBzeW50YXhcbiAgICBmdW5jdGlvbiBzd2FwUHNldWRvRWxTeW50YXgoc2VsZWN0b3IpIHtcbiAgICAgICAgaWYgKGRvdWJsZUNvbG9uUHNldWRvRWxSZWdleC5leGVjKHNlbGVjdG9yKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRvU2luZ2xlQ29sb25Qc2V1ZG9FbGVtZW50cyhzZWxlY3Rvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlbGVjdG9yO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFN0eWxlUHJvcGVydGllcyhydWxlLCBwcm9wZXJ0aWVzKSB7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBwcm9wZXJ0aWVzW2tleV07XG4gICAgICAgICAgICB2YXIgaW1wb3J0YW50SW5kZXggPSB2YWx1ZS5pbmRleE9mKCcgIWltcG9ydGFudCcpO1xuXG4gICAgICAgICAgICAvLyBNb2Rlcm4gYnJvd3NlcnMgc2VlbSB0byBoYW5kbGUgb3ZlcnJpZGVzIGZpbmUsIGJ1dCBJRTkgZG9lc24ndFxuICAgICAgICAgICAgcnVsZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShrZXkpOyBcbiAgICAgICAgICAgIGlmIChpbXBvcnRhbnRJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICBydWxlLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUuc3Vic3RyKDAsIGltcG9ydGFudEluZGV4KSwgJ2ltcG9ydGFudCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBydWxlLnN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9DYW1lbENhc2Uoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvLShbYS16XSkvZywgZnVuY3Rpb24gKG1hdGNoLCBzdWJtYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIHN1Ym1hdGNoLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybUNhbWVsQ2FzZWRQcm9wZXJ0eU5hbWVzKG9sZFByb3BzKSB7XG4gICAgICAgIHZhciBuZXdQcm9wcyA9IHt9O1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gb2xkUHJvcHMpIHtcbiAgICAgICAgICAgIG5ld1Byb3BzW3VuQ2FtZWxDYXNlKGtleSldID0gb2xkUHJvcHNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3UHJvcHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdW5DYW1lbENhc2Uoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFtBLVpdKS9nLCBmdW5jdGlvbihtYXRjaCwgc3VibWF0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiAnLScgKyBzdWJtYXRjaC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB2YXIgSnNzID0gZnVuY3Rpb24oZG9jKSB7XG4gICAgICAgIHRoaXMuZG9jID0gZG9jO1xuICAgICAgICB0aGlzLmhlYWQgPSB0aGlzLmRvYy5oZWFkIHx8IHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgICAgIHRoaXMuc2hlZXRzID0gdGhpcy5kb2Muc3R5bGVTaGVldHMgfHwgW107XG4gICAgfTtcblxuICAgIEpzcy5wcm90b3R5cGUgPSB7XG4gICAgICAgIC8vIFJldHVybnMgSlNTIHJ1bGVzIChzZWxlY3RvciBpcyBvcHRpb25hbClcbiAgICAgICAgZ2V0OiBmdW5jdGlvbihzZWxlY3Rvcikge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRTaGVldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBhZ2dyZWdhdGVTdHlsZXMoZ2V0UnVsZXModGhpcy5kZWZhdWx0U2hlZXQsIHNlbGVjdG9yKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcnVsZXMgPSBnZXRTZWxlY3RvcnNBbmRSdWxlcyh0aGlzLmRlZmF1bHRTaGVldCk7XG4gICAgICAgICAgICBmb3IgKHNlbGVjdG9yIGluIHJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgcnVsZXNbc2VsZWN0b3JdID0gYWdncmVnYXRlU3R5bGVzKHJ1bGVzW3NlbGVjdG9yXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcnVsZXM7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIFJldHVybnMgYWxsIHJ1bGVzIChzZWxlY3RvciBpcyByZXF1aXJlZClcbiAgICAgICAgZ2V0QWxsOiBmdW5jdGlvbihzZWxlY3Rvcikge1xuICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSB7fTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zaGVldHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBleHRlbmQocHJvcGVydGllcywgYWdncmVnYXRlU3R5bGVzKGdldFJ1bGVzKHRoaXMuc2hlZXRzW2ldLCBzZWxlY3RvcikpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzO1xuICAgICAgICB9LFxuICAgICAgICAvLyBBZGRzIEpTUyBydWxlcyBmb3IgdGhlIHNlbGVjdG9yIGJhc2VkIG9uIHRoZSBnaXZlbiBwcm9wZXJ0aWVzXG4gICAgICAgIHNldDogZnVuY3Rpb24oc2VsZWN0b3IsIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5kZWZhdWx0U2hlZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRTaGVldCA9IHRoaXMuX2NyZWF0ZVNoZWV0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcm9wZXJ0aWVzID0gdHJhbnNmb3JtQ2FtZWxDYXNlZFByb3BlcnR5TmFtZXMocHJvcGVydGllcyk7XG4gICAgICAgICAgICB2YXIgcnVsZXMgPSBnZXRSdWxlcyh0aGlzLmRlZmF1bHRTaGVldCwgc2VsZWN0b3IpO1xuICAgICAgICAgICAgaWYgKCFydWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBydWxlcyA9IFthZGRSdWxlKHRoaXMuZGVmYXVsdFNoZWV0LCBzZWxlY3RvcildO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHNldFN0eWxlUHJvcGVydGllcyhydWxlc1tpXSwgcHJvcGVydGllcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIC8vIFJlbW92ZXMgSlNTIHJ1bGVzIChzZWxlY3RvciBpcyBvcHRpb25hbClcbiAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbihzZWxlY3Rvcikge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRTaGVldClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlU2hlZXQodGhpcy5kZWZhdWx0U2hlZXQpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmRlZmF1bHRTaGVldDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgcnVsZXMgPSBnZXRSdWxlcyh0aGlzLmRlZmF1bHRTaGVldCwgc2VsZWN0b3IpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHJlbW92ZVJ1bGUocnVsZXNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJ1bGVzLmxlbmd0aDtcbiAgICAgICAgfSxcbiAgICAgICAgX2NyZWF0ZVNoZWV0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBzdHlsZU5vZGUgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICAgICAgc3R5bGVOb2RlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgICAgIHRoaXMuaGVhZC5hcHBlbmRDaGlsZChzdHlsZU5vZGUpO1xuICAgICAgICAgICAgcmV0dXJuIHN0eWxlTm9kZS5zaGVldDtcbiAgICAgICAgfSxcbiAgICAgICAgX3JlbW92ZVNoZWV0OiBmdW5jdGlvbihzaGVldCkge1xuICAgICAgICAgICAgdmFyIG5vZGUgPSBzaGVldC5vd25lck5vZGU7XG4gICAgICAgICAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIGV4cG9ydHMgPSBuZXcgSnNzKGRvY3VtZW50KTtcbiAgICBleHBvcnRzLmZvckRvY3VtZW50ID0gZnVuY3Rpb24oZG9jKSB7XG4gICAgICAgIHJldHVybiBuZXcgSnNzKGRvYyk7XG4gICAgfTtcbiAgICByZXR1cm4gZXhwb3J0cztcbn0pKCk7XG5cbnR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzICYmIChtb2R1bGUuZXhwb3J0cyA9IGpzcyk7IC8vIENvbW1vbkpTIHN1cHBvcnQiLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5hcnJheS5mb3ItZWFjaCcpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuQXJyYXkuZm9yRWFjaDtcbiIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM3LmFycmF5LmluY2x1ZGVzJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5BcnJheS5pbmNsdWRlcztcbiIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm51bWJlci5pcy1pbnRlZ2VyJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5OdW1iZXIuaXNJbnRlZ2VyO1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuc3RyaW5nLnN0YXJ0cy13aXRoJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5TdHJpbmcuc3RhcnRzV2l0aDtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICh0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJykgdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYSBmdW5jdGlvbiEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIDIyLjEuMy4zMSBBcnJheS5wcm90b3R5cGVbQEB1bnNjb3BhYmxlc11cbnZhciBVTlNDT1BBQkxFUyA9IHJlcXVpcmUoJy4vX3drcycpKCd1bnNjb3BhYmxlcycpO1xudmFyIEFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG5pZiAoQXJyYXlQcm90b1tVTlNDT1BBQkxFU10gPT0gdW5kZWZpbmVkKSByZXF1aXJlKCcuL19oaWRlJykoQXJyYXlQcm90bywgVU5TQ09QQUJMRVMsIHt9KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICBBcnJheVByb3RvW1VOU0NPUEFCTEVTXVtrZXldID0gdHJ1ZTtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhbiBvYmplY3QhJyk7XG4gIHJldHVybiBpdDtcbn07XG4iLCIvLyBmYWxzZSAtPiBBcnJheSNpbmRleE9mXG4vLyB0cnVlICAtPiBBcnJheSNpbmNsdWRlc1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4vX3RvLWFic29sdXRlLWluZGV4Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0lPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGZyb21JbmRleCwgbGVuZ3RoKTtcbiAgICB2YXIgdmFsdWU7XG4gICAgLy8gQXJyYXkjaW5jbHVkZXMgdXNlcyBTYW1lVmFsdWVaZXJvIGVxdWFsaXR5IGFsZ29yaXRobVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgICAgaWYgKHZhbHVlICE9IHZhbHVlKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBBcnJheSNpbmRleE9mIGlnbm9yZXMgaG9sZXMsIEFycmF5I2luY2x1ZGVzIC0gbm90XG4gICAgfSBlbHNlIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoSVNfSU5DTFVERVMgfHwgaW5kZXggaW4gTykge1xuICAgICAgaWYgKE9baW5kZXhdID09PSBlbCkgcmV0dXJuIElTX0lOQ0xVREVTIHx8IGluZGV4IHx8IDA7XG4gICAgfSByZXR1cm4gIUlTX0lOQ0xVREVTICYmIC0xO1xuICB9O1xufTtcbiIsIi8vIDAgLT4gQXJyYXkjZm9yRWFjaFxuLy8gMSAtPiBBcnJheSNtYXBcbi8vIDIgLT4gQXJyYXkjZmlsdGVyXG4vLyAzIC0+IEFycmF5I3NvbWVcbi8vIDQgLT4gQXJyYXkjZXZlcnlcbi8vIDUgLT4gQXJyYXkjZmluZFxuLy8gNiAtPiBBcnJheSNmaW5kSW5kZXhcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciBhc2MgPSByZXF1aXJlKCcuL19hcnJheS1zcGVjaWVzLWNyZWF0ZScpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoVFlQRSwgJGNyZWF0ZSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9IFRZUEUgPT0gNjtcbiAgdmFyIE5PX0hPTEVTID0gVFlQRSA9PSA1IHx8IElTX0ZJTkRfSU5ERVg7XG4gIHZhciBjcmVhdGUgPSAkY3JlYXRlIHx8IGFzYztcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgY2FsbGJhY2tmbiwgdGhhdCkge1xuICAgIHZhciBPID0gdG9PYmplY3QoJHRoaXMpO1xuICAgIHZhciBzZWxmID0gSU9iamVjdChPKTtcbiAgICB2YXIgZiA9IGN0eChjYWxsYmFja2ZuLCB0aGF0LCAzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoc2VsZi5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIHJlc3VsdCA9IElTX01BUCA/IGNyZWF0ZSgkdGhpcywgbGVuZ3RoKSA6IElTX0ZJTFRFUiA/IGNyZWF0ZSgkdGhpcywgMCkgOiB1bmRlZmluZWQ7XG4gICAgdmFyIHZhbCwgcmVzO1xuICAgIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoTk9fSE9MRVMgfHwgaW5kZXggaW4gc2VsZikge1xuICAgICAgdmFsID0gc2VsZltpbmRleF07XG4gICAgICByZXMgPSBmKHZhbCwgaW5kZXgsIE8pO1xuICAgICAgaWYgKFRZUEUpIHtcbiAgICAgICAgaWYgKElTX01BUCkgcmVzdWx0W2luZGV4XSA9IHJlczsgICAvLyBtYXBcbiAgICAgICAgZWxzZSBpZiAocmVzKSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiB0cnVlOyAgICAgICAgICAgICAvLyBzb21lXG4gICAgICAgICAgY2FzZSA1OiByZXR1cm4gdmFsOyAgICAgICAgICAgICAgLy8gZmluZFxuICAgICAgICAgIGNhc2UgNjogcmV0dXJuIGluZGV4OyAgICAgICAgICAgIC8vIGZpbmRJbmRleFxuICAgICAgICAgIGNhc2UgMjogcmVzdWx0LnB1c2godmFsKTsgICAgICAgIC8vIGZpbHRlclxuICAgICAgICB9IGVsc2UgaWYgKElTX0VWRVJZKSByZXR1cm4gZmFsc2U7IC8vIGV2ZXJ5XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBJU19GSU5EX0lOREVYID8gLTEgOiBJU19TT01FIHx8IElTX0VWRVJZID8gSVNfRVZFUlkgOiByZXN1bHQ7XG4gIH07XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4vX2lzLWFycmF5Jyk7XG52YXIgU1BFQ0lFUyA9IHJlcXVpcmUoJy4vX3drcycpKCdzcGVjaWVzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsKSB7XG4gIHZhciBDO1xuICBpZiAoaXNBcnJheShvcmlnaW5hbCkpIHtcbiAgICBDID0gb3JpZ2luYWwuY29uc3RydWN0b3I7XG4gICAgLy8gY3Jvc3MtcmVhbG0gZmFsbGJhY2tcbiAgICBpZiAodHlwZW9mIEMgPT0gJ2Z1bmN0aW9uJyAmJiAoQyA9PT0gQXJyYXkgfHwgaXNBcnJheShDLnByb3RvdHlwZSkpKSBDID0gdW5kZWZpbmVkO1xuICAgIGlmIChpc09iamVjdChDKSkge1xuICAgICAgQyA9IENbU1BFQ0lFU107XG4gICAgICBpZiAoQyA9PT0gbnVsbCkgQyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0gcmV0dXJuIEMgPT09IHVuZGVmaW5lZCA/IEFycmF5IDogQztcbn07XG4iLCIvLyA5LjQuMi4zIEFycmF5U3BlY2llc0NyZWF0ZShvcmlnaW5hbEFycmF5LCBsZW5ndGgpXG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi9fYXJyYXktc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbCwgbGVuZ3RoKSB7XG4gIHJldHVybiBuZXcgKHNwZWNpZXNDb25zdHJ1Y3RvcihvcmlnaW5hbCkpKGxlbmd0aCk7XG59O1xuIiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwidmFyIGNvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IHsgdmVyc2lvbjogJzIuNi45JyB9O1xuaWYgKHR5cGVvZiBfX2UgPT0gJ251bWJlcicpIF9fZSA9IGNvcmU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcbiIsIi8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZ1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4vX2EtZnVuY3Rpb24nKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhKTtcbiAgICB9O1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiLCBjKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsIi8vIDcuMi4xIFJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPT0gdW5kZWZpbmVkKSB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgXCIgKyBpdCk7XG4gIHJldHVybiBpdDtcbn07XG4iLCIvLyBUaGFuaydzIElFOCBmb3IgaGlzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGRvY3VtZW50ID0gcmVxdWlyZSgnLi9fZ2xvYmFsJykuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBpcyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpcyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4vX3JlZGVmaW5lJyk7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbnZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkge1xuICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcbiAgdmFyIElTX0dMT0JBTCA9IHR5cGUgJiAkZXhwb3J0Lkc7XG4gIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TO1xuICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuICB2YXIgSVNfQklORCA9IHR5cGUgJiAkZXhwb3J0LkI7XG4gIHZhciB0YXJnZXQgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gfHwgKGdsb2JhbFtuYW1lXSA9IHt9KSA6IChnbG9iYWxbbmFtZV0gfHwge30pW1BST1RPVFlQRV07XG4gIHZhciBleHBvcnRzID0gSVNfR0xPQkFMID8gY29yZSA6IGNvcmVbbmFtZV0gfHwgKGNvcmVbbmFtZV0gPSB7fSk7XG4gIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXSB8fCAoZXhwb3J0c1tQUk9UT1RZUEVdID0ge30pO1xuICB2YXIga2V5LCBvd24sIG91dCwgZXhwO1xuICBpZiAoSVNfR0xPQkFMKSBzb3VyY2UgPSBuYW1lO1xuICBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcbiAgICBvd24gPSAhSVNfRk9SQ0VEICYmIHRhcmdldCAmJiB0YXJnZXRba2V5XSAhPT0gdW5kZWZpbmVkO1xuICAgIC8vIGV4cG9ydCBuYXRpdmUgb3IgcGFzc2VkXG4gICAgb3V0ID0gKG93biA/IHRhcmdldCA6IHNvdXJjZSlba2V5XTtcbiAgICAvLyBiaW5kIHRpbWVycyB0byBnbG9iYWwgZm9yIGNhbGwgZnJvbSBleHBvcnQgY29udGV4dFxuICAgIGV4cCA9IElTX0JJTkQgJiYgb3duID8gY3R4KG91dCwgZ2xvYmFsKSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IGN0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuICAgIC8vIGV4dGVuZCBnbG9iYWxcbiAgICBpZiAodGFyZ2V0KSByZWRlZmluZSh0YXJnZXQsIGtleSwgb3V0LCB0eXBlICYgJGV4cG9ydC5VKTtcbiAgICAvLyBleHBvcnRcbiAgICBpZiAoZXhwb3J0c1trZXldICE9IG91dCkgaGlkZShleHBvcnRzLCBrZXksIGV4cCk7XG4gICAgaWYgKElTX1BST1RPICYmIGV4cFByb3RvW2tleV0gIT0gb3V0KSBleHBQcm90b1trZXldID0gb3V0O1xuICB9XG59O1xuZ2xvYmFsLmNvcmUgPSBjb3JlO1xuLy8gdHlwZSBiaXRtYXBcbiRleHBvcnQuRiA9IDE7ICAgLy8gZm9yY2VkXG4kZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuJGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWNcbiRleHBvcnQuUCA9IDg7ICAgLy8gcHJvdG9cbiRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuJGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwXG4kZXhwb3J0LlUgPSA2NDsgIC8vIHNhZmVcbiRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxubW9kdWxlLmV4cG9ydHMgPSAkZXhwb3J0O1xuIiwidmFyIE1BVENIID0gcmVxdWlyZSgnLi9fd2tzJykoJ21hdGNoJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChLRVkpIHtcbiAgdmFyIHJlID0gLy4vO1xuICB0cnkge1xuICAgICcvLi8nW0tFWV0ocmUpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlW01BVENIXSA9IGZhbHNlO1xuICAgICAgcmV0dXJuICEnLy4vJ1tLRVldKHJlKTtcbiAgICB9IGNhdGNoIChmKSB7IC8qIGVtcHR5ICovIH1cbiAgfSByZXR1cm4gdHJ1ZTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCduYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nJywgRnVuY3Rpb24udG9TdHJpbmcpO1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcbiIsInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgJiYgIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcXVpcmUoJy4vX2RvbS1jcmVhdGUnKSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3O1xufSk7XG4iLCIvLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY29mKGl0KSA9PSAnU3RyaW5nJyA/IGl0LnNwbGl0KCcnKSA6IE9iamVjdChpdCk7XG59O1xuIiwiLy8gNy4yLjIgSXNBcnJheShhcmd1bWVudClcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykge1xuICByZXR1cm4gY29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG4iLCIvLyAyMC4xLjIuMyBOdW1iZXIuaXNJbnRlZ2VyKG51bWJlcilcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNJbnRlZ2VyKGl0KSB7XG4gIHJldHVybiAhaXNPYmplY3QoaXQpICYmIGlzRmluaXRlKGl0KSAmJiBmbG9vcihpdCkgPT09IGl0O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59O1xuIiwiLy8gNy4yLjggSXNSZWdFeHAoYXJndW1lbnQpXG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbnZhciBNQVRDSCA9IHJlcXVpcmUoJy4vX3drcycpKCdtYXRjaCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGlzUmVnRXhwO1xuICByZXR1cm4gaXNPYmplY3QoaXQpICYmICgoaXNSZWdFeHAgPSBpdFtNQVRDSF0pICE9PSB1bmRlZmluZWQgPyAhIWlzUmVnRXhwIDogY29mKGl0KSA9PSAnUmVnRXhwJyk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmYWxzZTtcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4vX2FuLW9iamVjdCcpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi9faWU4LWRvbS1kZWZpbmUnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4vX3RvLXByaW1pdGl2ZScpO1xudmFyIGRQID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5leHBvcnRzLmYgPSByZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBkUChPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IFR5cGVFcnJvcignQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgU1JDID0gcmVxdWlyZSgnLi9fdWlkJykoJ3NyYycpO1xudmFyICR0b1N0cmluZyA9IHJlcXVpcmUoJy4vX2Z1bmN0aW9uLXRvLXN0cmluZycpO1xudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgVFBMID0gKCcnICsgJHRvU3RyaW5nKS5zcGxpdChUT19TVFJJTkcpO1xuXG5yZXF1aXJlKCcuL19jb3JlJykuaW5zcGVjdFNvdXJjZSA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gJHRvU3RyaW5nLmNhbGwoaXQpO1xufTtcblxuKG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGtleSwgdmFsLCBzYWZlKSB7XG4gIHZhciBpc0Z1bmN0aW9uID0gdHlwZW9mIHZhbCA9PSAnZnVuY3Rpb24nO1xuICBpZiAoaXNGdW5jdGlvbikgaGFzKHZhbCwgJ25hbWUnKSB8fCBoaWRlKHZhbCwgJ25hbWUnLCBrZXkpO1xuICBpZiAoT1trZXldID09PSB2YWwpIHJldHVybjtcbiAgaWYgKGlzRnVuY3Rpb24pIGhhcyh2YWwsIFNSQykgfHwgaGlkZSh2YWwsIFNSQywgT1trZXldID8gJycgKyBPW2tleV0gOiBUUEwuam9pbihTdHJpbmcoa2V5KSkpO1xuICBpZiAoTyA9PT0gZ2xvYmFsKSB7XG4gICAgT1trZXldID0gdmFsO1xuICB9IGVsc2UgaWYgKCFzYWZlKSB7XG4gICAgZGVsZXRlIE9ba2V5XTtcbiAgICBoaWRlKE8sIGtleSwgdmFsKTtcbiAgfSBlbHNlIGlmIChPW2tleV0pIHtcbiAgICBPW2tleV0gPSB2YWw7XG4gIH0gZWxzZSB7XG4gICAgaGlkZShPLCBrZXksIHZhbCk7XG4gIH1cbi8vIGFkZCBmYWtlIEZ1bmN0aW9uI3RvU3RyaW5nIGZvciBjb3JyZWN0IHdvcmsgd3JhcHBlZCBtZXRob2RzIC8gY29uc3RydWN0b3JzIHdpdGggbWV0aG9kcyBsaWtlIExvRGFzaCBpc05hdGl2ZVxufSkoRnVuY3Rpb24ucHJvdG90eXBlLCBUT19TVFJJTkcsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICByZXR1cm4gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyAmJiB0aGlzW1NSQ10gfHwgJHRvU3RyaW5nLmNhbGwodGhpcyk7XG59KTtcbiIsInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxOSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9fZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobWV0aG9kLCBhcmcpIHtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsXG4gICAgYXJnID8gbWV0aG9kLmNhbGwobnVsbCwgZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAxKSA6IG1ldGhvZC5jYWxsKG51bGwpO1xuICB9KTtcbn07XG4iLCIvLyBoZWxwZXIgZm9yIFN0cmluZyN7c3RhcnRzV2l0aCwgZW5kc1dpdGgsIGluY2x1ZGVzfVxudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi9faXMtcmVnZXhwJyk7XG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGhhdCwgc2VhcmNoU3RyaW5nLCBOQU1FKSB7XG4gIGlmIChpc1JlZ0V4cChzZWFyY2hTdHJpbmcpKSB0aHJvdyBUeXBlRXJyb3IoJ1N0cmluZyMnICsgTkFNRSArIFwiIGRvZXNuJ3QgYWNjZXB0IHJlZ2V4IVwiKTtcbiAgcmV0dXJuIFN0cmluZyhkZWZpbmVkKHRoYXQpKTtcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkge1xuICBpbmRleCA9IHRvSW50ZWdlcihpbmRleCk7XG4gIHJldHVybiBpbmRleCA8IDAgPyBtYXgoaW5kZXggKyBsZW5ndGgsIDApIDogbWluKGluZGV4LCBsZW5ndGgpO1xufTtcbiIsIi8vIDcuMS40IFRvSW50ZWdlclxudmFyIGNlaWwgPSBNYXRoLmNlaWw7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGlzTmFOKGl0ID0gK2l0KSA/IDAgOiAoaXQgPiAwID8gZmxvb3IgOiBjZWlsKShpdCk7XG59O1xuIiwiLy8gdG8gaW5kZXhlZCBvYmplY3QsIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSU9iamVjdCA9IHJlcXVpcmUoJy4vX2lvYmplY3QnKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIElPYmplY3QoZGVmaW5lZChpdCkpO1xufTtcbiIsIi8vIDcuMS4xNSBUb0xlbmd0aFxudmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA+IDAgPyBtaW4odG9JbnRlZ2VyKGl0KSwgMHgxZmZmZmZmZmZmZmZmZikgOiAwOyAvLyBwb3coMiwgNTMpIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuIiwiLy8gNy4xLjEzIFRvT2JqZWN0KGFyZ3VtZW50KVxudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG4iLCIvLyA3LjEuMSBUb1ByaW1pdGl2ZShpbnB1dCBbLCBQcmVmZXJyZWRUeXBlXSlcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xuLy8gaW5zdGVhZCBvZiB0aGUgRVM2IHNwZWMgdmVyc2lvbiwgd2UgZGlkbid0IGltcGxlbWVudCBAQHRvUHJpbWl0aXZlIGNhc2Vcbi8vIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IC0gZmxhZyAtIHByZWZlcnJlZCB0eXBlIGlzIGEgc3RyaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgUykge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIGl0O1xuICB2YXIgZm4sIHZhbDtcbiAgaWYgKFMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICh0eXBlb2YgKGZuID0gaXQudmFsdWVPZikgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpdCkpKSByZXR1cm4gdmFsO1xuICBpZiAoIVMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcbn07XG4iLCJ2YXIgaWQgPSAwO1xudmFyIHB4ID0gTWF0aC5yYW5kb20oKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnLmNvbmNhdChrZXkgPT09IHVuZGVmaW5lZCA/ICcnIDoga2V5LCAnKV8nLCAoKytpZCArIHB4KS50b1N0cmluZygzNikpO1xufTtcbiIsInZhciBzdG9yZSA9IHJlcXVpcmUoJy4vX3NoYXJlZCcpKCd3a3MnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbnZhciBTeW1ib2wgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5TeW1ib2w7XG52YXIgVVNFX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT0gJ2Z1bmN0aW9uJztcblxudmFyICRleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gc3RvcmVbbmFtZV0gfHwgKHN0b3JlW25hbWVdID1cbiAgICBVU0VfU1lNQk9MICYmIFN5bWJvbFtuYW1lXSB8fCAoVVNFX1NZTUJPTCA/IFN5bWJvbCA6IHVpZCkoJ1N5bWJvbC4nICsgbmFtZSkpO1xufTtcblxuJGV4cG9ydHMuc3RvcmUgPSBzdG9yZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgJGZvckVhY2ggPSByZXF1aXJlKCcuL19hcnJheS1tZXRob2RzJykoMCk7XG52YXIgU1RSSUNUID0gcmVxdWlyZSgnLi9fc3RyaWN0LW1ldGhvZCcpKFtdLmZvckVhY2gsIHRydWUpO1xuXG4kZXhwb3J0KCRleHBvcnQuUCArICRleHBvcnQuRiAqICFTVFJJQ1QsICdBcnJheScsIHtcbiAgLy8gMjIuMS4zLjEwIC8gMTUuNC40LjE4IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKGNhbGxiYWNrZm4gWywgdGhpc0FyZ10pXG4gIGZvckVhY2g6IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICByZXR1cm4gJGZvckVhY2godGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzWzFdKTtcbiAgfVxufSk7XG4iLCIvLyAyMC4xLjIuMyBOdW1iZXIuaXNJbnRlZ2VyKG51bWJlcilcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG5cbiRleHBvcnQoJGV4cG9ydC5TLCAnTnVtYmVyJywgeyBpc0ludGVnZXI6IHJlcXVpcmUoJy4vX2lzLWludGVnZXInKSB9KTtcbiIsIi8vIDIxLjEuMy4xOCBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGgoc2VhcmNoU3RyaW5nIFssIHBvc2l0aW9uIF0pXG4ndXNlIHN0cmljdCc7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgY29udGV4dCA9IHJlcXVpcmUoJy4vX3N0cmluZy1jb250ZXh0Jyk7XG52YXIgU1RBUlRTX1dJVEggPSAnc3RhcnRzV2l0aCc7XG52YXIgJHN0YXJ0c1dpdGggPSAnJ1tTVEFSVFNfV0lUSF07XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogcmVxdWlyZSgnLi9fZmFpbHMtaXMtcmVnZXhwJykoU1RBUlRTX1dJVEgpLCAnU3RyaW5nJywge1xuICBzdGFydHNXaXRoOiBmdW5jdGlvbiBzdGFydHNXaXRoKHNlYXJjaFN0cmluZyAvKiAsIHBvc2l0aW9uID0gMCAqLykge1xuICAgIHZhciB0aGF0ID0gY29udGV4dCh0aGlzLCBzZWFyY2hTdHJpbmcsIFNUQVJUU19XSVRIKTtcbiAgICB2YXIgaW5kZXggPSB0b0xlbmd0aChNYXRoLm1pbihhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgdGhhdC5sZW5ndGgpKTtcbiAgICB2YXIgc2VhcmNoID0gU3RyaW5nKHNlYXJjaFN0cmluZyk7XG4gICAgcmV0dXJuICRzdGFydHNXaXRoXG4gICAgICA/ICRzdGFydHNXaXRoLmNhbGwodGhhdCwgc2VhcmNoLCBpbmRleClcbiAgICAgIDogdGhhdC5zbGljZShpbmRleCwgaW5kZXggKyBzZWFyY2gubGVuZ3RoKSA9PT0gc2VhcmNoO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L0FycmF5LnByb3RvdHlwZS5pbmNsdWRlc1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkaW5jbHVkZXMgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKHRydWUpO1xuXG4kZXhwb3J0KCRleHBvcnQuUCwgJ0FycmF5Jywge1xuICBpbmNsdWRlczogZnVuY3Rpb24gaW5jbHVkZXMoZWwgLyogLCBmcm9tSW5kZXggPSAwICovKSB7XG4gICAgcmV0dXJuICRpbmNsdWRlcyh0aGlzLCBlbCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcblxucmVxdWlyZSgnLi9fYWRkLXRvLXVuc2NvcGFibGVzJykoJ2luY2x1ZGVzJyk7XG4iLCIndXNlIHN0cmljdCc7XG4vKipcbiAqIFtSZWN1cnNpdmVseSBwYXJzZXMgYSBzdHJpbmdpZmllZCBKU09OXVxuICogQHBhcmFtICB7W3R5cGVdfSBqc29uU3RyaW5nIFtzdHJpbmdpZmllZCBqc29uIHRvIHBhcnNlXVxuICogQHJldHVybiB7W3R5cGVdfSAgICAgICAgICAgIFtub3JtYWxpemVkIEphdmFzY3JpcHQgb2JqZWN0XVxuICovXG5mdW5jdGlvbiBkZWVwUGFyc2VKc29uKGpzb25TdHJpbmcpIHtcbiAgLy8gaWYgbm90IHN0cmluZ2lmaWVkIGpzb24gcmF0aGVyIGEgc2ltcGxlIHN0cmluZyB2YWx1ZSB0aGVuIEpTT04ucGFyc2Ugd2lsbCB0aHJvdyBlcnJvclxuICAvLyBvdGhlcndpc2UgY29udGludWUgcmVjdXJzaW9uXG4gIGlmICh0eXBlb2YganNvblN0cmluZyA9PT0gJ3N0cmluZycpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGRlZXBQYXJzZUpzb24oSlNPTi5wYXJzZShqc29uU3RyaW5nKSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4ganNvblN0cmluZztcbiAgICB9XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShqc29uU3RyaW5nKSkge1xuICAgIC8vIGlmIGFuIGFycmF5IGlzIHJlY2VpdmVkLCBtYXAgb3ZlciB0aGUgYXJyYXkgYW5kIGRlZXBQYXJzZSBlYWNoIHZhbHVlXG4gICAgcmV0dXJuIGpzb25TdHJpbmcubWFwKHZhbCA9PiBkZWVwUGFyc2VKc29uKHZhbCkpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBqc29uU3RyaW5nID09PSAnb2JqZWN0JyAmJiBqc29uU3RyaW5nICE9PSBudWxsKSB7XG4gICAgLy8gaWYgYW4gb2JqZWN0IGlzIHJlY2VpdmVkIHRoZW4gZGVlcFBhcnNlIGVhY2ggZWxlbWVudCBpbiB0aGUgb2JqZWN0XG4gICAgLy8gdHlwZW9mIG51bGwgcmV0dXJucyAnb2JqZWN0JyB0b28sIHNvIHdlIGhhdmUgdG8gZWxpbWluYXRlIHRoYXRcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoanNvblN0cmluZykucmVkdWNlKChvYmosIGtleSkgPT4ge1xuICAgICAgb2JqW2tleV0gPSBkZWVwUGFyc2VKc29uKGpzb25TdHJpbmdba2V5XSk7XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sIHt9KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UgcmV0dXJuIHdoYXRldmVyIHdhcyByZWNlaXZlZFxuICAgIHJldHVybiBqc29uU3RyaW5nO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0geyBkZWVwUGFyc2VKc29uIH07XG4iLCJpZighZ2xvYmFsW1wiQkJqXCJdKSBnbG9iYWxbXCJCQmpcIl0gPSB7fTtcbm1vZHVsZS5leHBvcnRzID0gZ2xvYmFsW1wiQkJqXCJdW1wiTWFza3NcIl0gPSByZXF1aXJlKFwiLSFEOlxcXFxHaXRodWJcXFxcQkJqR3JpZEV4V2lkZ2V0XFxcXGNsaWVudFxcXFxub2RlX21vZHVsZXNcXFxcYmFiZWwtbG9hZGVyXFxcXGxpYlxcXFxpbmRleC5qcz8/cmVmLS00IS5cXFxcYmJqLW1hc2tzLmpzXCIpOyIsImlmKCFnbG9iYWxbXCJCYXNpc1wiXSkgZ2xvYmFsW1wiQmFzaXNcIl0gPSB7fTtcbm1vZHVsZS5leHBvcnRzID0gZ2xvYmFsW1wiQmFzaXNcIl1bXCJBZ0dyaWRDb21wb25lbnRzXCJdID0gcmVxdWlyZShcIi0hRDpcXFxcR2l0aHViXFxcXEJCakdyaWRFeFdpZGdldFxcXFxjbGllbnRcXFxcbm9kZV9tb2R1bGVzXFxcXGJhYmVsLWxvYWRlclxcXFxsaWJcXFxcaW5kZXguanM/P3JlZi0tNCEuXFxcXGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzLmpzXCIpOyIsImlmKCFnbG9iYWxbXCJCYXNpc1wiXSkgZ2xvYmFsW1wiQmFzaXNcIl0gPSB7fTtcbm1vZHVsZS5leHBvcnRzID0gZ2xvYmFsW1wiQmFzaXNcIl1bXCJJbnB1dE1hc2tpbmdcIl0gPSByZXF1aXJlKFwiLSFEOlxcXFxHaXRodWJcXFxcQkJqR3JpZEV4V2lkZ2V0XFxcXGNsaWVudFxcXFxub2RlX21vZHVsZXNcXFxcYmFiZWwtbG9hZGVyXFxcXGxpYlxcXFxpbmRleC5qcz8/cmVmLS00IS5cXFxcYmFzaXMtaW5wdXQtbWFza2luZy5qc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbFtcImpzc1wiXSA9IHJlcXVpcmUoXCItIUQ6XFxcXEdpdGh1YlxcXFxCQmpHcmlkRXhXaWRnZXRcXFxcY2xpZW50XFxcXG5vZGVfbW9kdWxlc1xcXFxiYWJlbC1sb2FkZXJcXFxcbGliXFxcXGluZGV4LmpzPz9yZWYtLTQhLlxcXFxqc3MuanNcIik7IiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9mbGF0cGlja3IuY3NzXCIpO1xuXG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcblxudmFyIHRyYW5zZm9ybTtcbnZhciBpbnNlcnRJbnRvO1xuXG5cblxudmFyIG9wdGlvbnMgPSB7XCJobXJcIjp0cnVlfVxuXG5vcHRpb25zLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxub3B0aW9ucy5pbnNlcnRJbnRvID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LnBhcmVudC5kb2N1bWVudC5oZWFkIH07XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuL2ZsYXRwaWNrci5jc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vZmxhdHBpY2tyLmNzc1wiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxuZXhwb3J0IGRlZmF1bHQgU3ltYm9sO1xuIiwiLyoqXG4gKiBBIGZhc3RlciBhbHRlcm5hdGl2ZSB0byBgRnVuY3Rpb24jYXBwbHlgLCB0aGlzIGZ1bmN0aW9uIGludm9rZXMgYGZ1bmNgXG4gKiB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiBgdGhpc0FyZ2AgYW5kIHRoZSBhcmd1bWVudHMgb2YgYGFyZ3NgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnZva2UuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IGFyZ3MgVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcmVzdWx0IG9mIGBmdW5jYC5cbiAqL1xuZnVuY3Rpb24gYXBwbHkoZnVuYywgdGhpc0FyZywgYXJncykge1xuICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgY2FzZSAwOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcpO1xuICAgIGNhc2UgMTogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdKTtcbiAgICBjYXNlIDI6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0pO1xuICB9XG4gIHJldHVybiBmdW5jLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcHBseTtcbiIsImltcG9ydCBiYXNlVGltZXMgZnJvbSAnLi9fYmFzZVRpbWVzLmpzJztcbmltcG9ydCBpc0FyZ3VtZW50cyBmcm9tICcuL2lzQXJndW1lbnRzLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5pbXBvcnQgaXNCdWZmZXIgZnJvbSAnLi9pc0J1ZmZlci5qcyc7XG5pbXBvcnQgaXNJbmRleCBmcm9tICcuL19pc0luZGV4LmpzJztcbmltcG9ydCBpc1R5cGVkQXJyYXkgZnJvbSAnLi9pc1R5cGVkQXJyYXkuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgdGhlIGFycmF5LWxpa2UgYHZhbHVlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGluaGVyaXRlZCBTcGVjaWZ5IHJldHVybmluZyBpbmhlcml0ZWQgcHJvcGVydHkgbmFtZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBhcnJheUxpa2VLZXlzKHZhbHVlLCBpbmhlcml0ZWQpIHtcbiAgdmFyIGlzQXJyID0gaXNBcnJheSh2YWx1ZSksXG4gICAgICBpc0FyZyA9ICFpc0FyciAmJiBpc0FyZ3VtZW50cyh2YWx1ZSksXG4gICAgICBpc0J1ZmYgPSAhaXNBcnIgJiYgIWlzQXJnICYmIGlzQnVmZmVyKHZhbHVlKSxcbiAgICAgIGlzVHlwZSA9ICFpc0FyciAmJiAhaXNBcmcgJiYgIWlzQnVmZiAmJiBpc1R5cGVkQXJyYXkodmFsdWUpLFxuICAgICAgc2tpcEluZGV4ZXMgPSBpc0FyciB8fCBpc0FyZyB8fCBpc0J1ZmYgfHwgaXNUeXBlLFxuICAgICAgcmVzdWx0ID0gc2tpcEluZGV4ZXMgPyBiYXNlVGltZXModmFsdWUubGVuZ3RoLCBTdHJpbmcpIDogW10sXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmICgoaW5oZXJpdGVkIHx8IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIGtleSkpICYmXG4gICAgICAgICEoc2tpcEluZGV4ZXMgJiYgKFxuICAgICAgICAgICAvLyBTYWZhcmkgOSBoYXMgZW51bWVyYWJsZSBgYXJndW1lbnRzLmxlbmd0aGAgaW4gc3RyaWN0IG1vZGUuXG4gICAgICAgICAgIGtleSA9PSAnbGVuZ3RoJyB8fFxuICAgICAgICAgICAvLyBOb2RlLmpzIDAuMTAgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gYnVmZmVycy5cbiAgICAgICAgICAgKGlzQnVmZiAmJiAoa2V5ID09ICdvZmZzZXQnIHx8IGtleSA9PSAncGFyZW50JykpIHx8XG4gICAgICAgICAgIC8vIFBoYW50b21KUyAyIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIHR5cGVkIGFycmF5cy5cbiAgICAgICAgICAgKGlzVHlwZSAmJiAoa2V5ID09ICdidWZmZXInIHx8IGtleSA9PSAnYnl0ZUxlbmd0aCcgfHwga2V5ID09ICdieXRlT2Zmc2V0JykpIHx8XG4gICAgICAgICAgIC8vIFNraXAgaW5kZXggcHJvcGVydGllcy5cbiAgICAgICAgICAgaXNJbmRleChrZXksIGxlbmd0aClcbiAgICAgICAgKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFycmF5TGlrZUtleXM7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxuICogc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheU1hcDtcbiIsImltcG9ydCBiYXNlQXNzaWduVmFsdWUgZnJvbSAnLi9fYmFzZUFzc2lnblZhbHVlLmpzJztcbmltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBc3NpZ25zIGB2YWx1ZWAgdG8gYGtleWAgb2YgYG9iamVjdGAgaWYgdGhlIGV4aXN0aW5nIHZhbHVlIGlzIG5vdCBlcXVpdmFsZW50XG4gKiB1c2luZyBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICB2YXIgb2JqVmFsdWUgPSBvYmplY3Rba2V5XTtcbiAgaWYgKCEoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYgZXEob2JqVmFsdWUsIHZhbHVlKSkgfHxcbiAgICAgICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpKSB7XG4gICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgYXNzaWduVmFsdWU7XG4iLCJpbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSAnLi9fZGVmaW5lUHJvcGVydHkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBhc3NpZ25WYWx1ZWAgYW5kIGBhc3NpZ25NZXJnZVZhbHVlYCB3aXRob3V0XG4gKiB2YWx1ZSBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5ID09ICdfX3Byb3RvX18nICYmIGRlZmluZVByb3BlcnR5KSB7XG4gICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICAgJ2VudW1lcmFibGUnOiB0cnVlLFxuICAgICAgJ3ZhbHVlJzogdmFsdWUsXG4gICAgICAnd3JpdGFibGUnOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlQXNzaWduVmFsdWU7XG4iLCJpbXBvcnQgU3ltYm9sIGZyb20gJy4vX1N5bWJvbC5qcyc7XG5pbXBvcnQgZ2V0UmF3VGFnIGZyb20gJy4vX2dldFJhd1RhZy5qcyc7XG5pbXBvcnQgb2JqZWN0VG9TdHJpbmcgZnJvbSAnLi9fb2JqZWN0VG9TdHJpbmcuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbnVsbFRhZyA9ICdbb2JqZWN0IE51bGxdJyxcbiAgICB1bmRlZmluZWRUYWcgPSAnW29iamVjdCBVbmRlZmluZWRdJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldFRhZ2Agd2l0aG91dCBmYWxsYmFja3MgZm9yIGJ1Z2d5IGVudmlyb25tZW50cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWRUYWcgOiBudWxsVGFnO1xuICB9XG4gIHJldHVybiAoc3ltVG9TdHJpbmdUYWcgJiYgc3ltVG9TdHJpbmdUYWcgaW4gT2JqZWN0KHZhbHVlKSlcbiAgICA/IGdldFJhd1RhZyh2YWx1ZSlcbiAgICA6IG9iamVjdFRvU3RyaW5nKHZhbHVlKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUdldFRhZztcbiIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXSc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNBcmd1bWVudHNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdCxcbiAqL1xuZnVuY3Rpb24gYmFzZUlzQXJndW1lbnRzKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IGFyZ3NUYWc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJc0FyZ3VtZW50cztcbiIsImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNNYXNrZWQgZnJvbSAnLi9faXNNYXNrZWQuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IHRvU291cmNlIGZyb20gJy4vX3RvU291cmNlLmpzJztcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgXG4gKiBbc3ludGF4IGNoYXJhY3RlcnNdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXBhdHRlcm5zKS5cbiAqL1xudmFyIHJlUmVnRXhwQ2hhciA9IC9bXFxcXF4kLiorPygpW1xcXXt9fF0vZztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGhvc3QgY29uc3RydWN0b3JzIChTYWZhcmkpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaWYgYSBtZXRob2QgaXMgbmF0aXZlLiAqL1xudmFyIHJlSXNOYXRpdmUgPSBSZWdFeHAoJ14nICtcbiAgZnVuY1RvU3RyaW5nLmNhbGwoaGFzT3duUHJvcGVydHkpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCAnXFxcXCQmJylcbiAgLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFxcXFwoKXwgZm9yIC4rPyg/PVxcXFxcXF0pL2csICckMS4qPycpICsgJyQnXG4pO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzTmF0aXZlYCB3aXRob3V0IGJhZCBzaGltIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIG5hdGl2ZSBmdW5jdGlvbixcbiAqICBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHBhdHRlcm4gPSBpc0Z1bmN0aW9uKHZhbHVlKSA/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodG9Tb3VyY2UodmFsdWUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzTmF0aXZlO1xuIiwiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNMZW5ndGggZnJvbSAnLi9pc0xlbmd0aC5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJyxcbiAgICBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBtYXBUYWcgPSAnW29iamVjdCBNYXBdJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzZXRUYWcgPSAnW29iamVjdCBTZXRdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJyxcbiAgICB3ZWFrTWFwVGFnID0gJ1tvYmplY3QgV2Vha01hcF0nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGRhdGFWaWV3VGFnID0gJ1tvYmplY3QgRGF0YVZpZXddJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgb2YgdHlwZWQgYXJyYXlzLiAqL1xudmFyIHR5cGVkQXJyYXlUYWdzID0ge307XG50eXBlZEFycmF5VGFnc1tmbG9hdDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Zsb2F0NjRUYWddID1cbnR5cGVkQXJyYXlUYWdzW2ludDhUYWddID0gdHlwZWRBcnJheVRhZ3NbaW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW2ludDMyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQ4VGFnXSA9XG50eXBlZEFycmF5VGFnc1t1aW50OENsYW1wZWRUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1t1aW50MzJUYWddID0gdHJ1ZTtcbnR5cGVkQXJyYXlUYWdzW2FyZ3NUYWddID0gdHlwZWRBcnJheVRhZ3NbYXJyYXlUYWddID1cbnR5cGVkQXJyYXlUYWdzW2FycmF5QnVmZmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Jvb2xUYWddID1cbnR5cGVkQXJyYXlUYWdzW2RhdGFWaWV3VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2RhdGVUYWddID1cbnR5cGVkQXJyYXlUYWdzW2Vycm9yVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Z1bmNUYWddID1cbnR5cGVkQXJyYXlUYWdzW21hcFRhZ10gPSB0eXBlZEFycmF5VGFnc1tudW1iZXJUYWddID1cbnR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPSB0eXBlZEFycmF5VGFnc1tyZWdleHBUYWddID1cbnR5cGVkQXJyYXlUYWdzW3NldFRhZ10gPSB0eXBlZEFycmF5VGFnc1tzdHJpbmdUYWddID1cbnR5cGVkQXJyYXlUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNUeXBlZEFycmF5YCB3aXRob3V0IE5vZGUuanMgb3B0aW1pemF0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHR5cGVkIGFycmF5LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc1R5cGVkQXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiZcbiAgICBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3NbYmFzZUdldFRhZyh2YWx1ZSldO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNUeXBlZEFycmF5O1xuIiwiaW1wb3J0IGlzUHJvdG90eXBlIGZyb20gJy4vX2lzUHJvdG90eXBlLmpzJztcbmltcG9ydCBuYXRpdmVLZXlzIGZyb20gJy4vX25hdGl2ZUtleXMuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNgIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUtleXMob2JqZWN0KSB7XG4gIGlmICghaXNQcm90b3R5cGUob2JqZWN0KSkge1xuICAgIHJldHVybiBuYXRpdmVLZXlzKG9iamVjdCk7XG4gIH1cbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiYga2V5ICE9ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VLZXlzO1xuIiwiaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IGlzUHJvdG90eXBlIGZyb20gJy4vX2lzUHJvdG90eXBlLmpzJztcbmltcG9ydCBuYXRpdmVLZXlzSW4gZnJvbSAnLi9fbmF0aXZlS2V5c0luLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5rZXlzSW5gIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUtleXNJbihvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXNJbihvYmplY3QpO1xuICB9XG4gIHZhciBpc1Byb3RvID0gaXNQcm90b3R5cGUob2JqZWN0KSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICBpZiAoIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUtleXNJbjtcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlPZmAgd2l0aG91dCBzdXBwb3J0IGZvciBkZWVwIHBhdGhzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhY2Nlc3NvciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5T2Yob2JqZWN0KSB7XG4gIHJldHVybiBmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVByb3BlcnR5T2Y7XG4iLCJpbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5pbXBvcnQgb3ZlclJlc3QgZnJvbSAnLi9fb3ZlclJlc3QuanMnO1xuaW1wb3J0IHNldFRvU3RyaW5nIGZyb20gJy4vX3NldFRvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5yZXN0YCB3aGljaCBkb2Vzbid0IHZhbGlkYXRlIG9yIGNvZXJjZSBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVJlc3QoZnVuYywgc3RhcnQpIHtcbiAgcmV0dXJuIHNldFRvU3RyaW5nKG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCBpZGVudGl0eSksIGZ1bmMgKyAnJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VSZXN0O1xuIiwiaW1wb3J0IGNvbnN0YW50IGZyb20gJy4vY29uc3RhbnQuanMnO1xuaW1wb3J0IGRlZmluZVByb3BlcnR5IGZyb20gJy4vX2RlZmluZVByb3BlcnR5LmpzJztcbmltcG9ydCBpZGVudGl0eSBmcm9tICcuL2lkZW50aXR5LmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgc2V0VG9TdHJpbmdgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3Agc2hvcnRpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHN0cmluZyBUaGUgYHRvU3RyaW5nYCByZXN1bHQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICovXG52YXIgYmFzZVNldFRvU3RyaW5nID0gIWRlZmluZVByb3BlcnR5ID8gaWRlbnRpdHkgOiBmdW5jdGlvbihmdW5jLCBzdHJpbmcpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmMsICd0b1N0cmluZycsIHtcbiAgICAnY29uZmlndXJhYmxlJzogdHJ1ZSxcbiAgICAnZW51bWVyYWJsZSc6IGZhbHNlLFxuICAgICd2YWx1ZSc6IGNvbnN0YW50KHN0cmluZyksXG4gICAgJ3dyaXRhYmxlJzogdHJ1ZVxuICB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VTZXRUb1N0cmluZztcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udGltZXNgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaXRlcmF0ZWUgc2hvcnRoYW5kc1xuICogb3IgbWF4IGFycmF5IGxlbmd0aCBjaGVja3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7bnVtYmVyfSBuIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gaW52b2tlIGBpdGVyYXRlZWAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBiYXNlVGltZXMobiwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICByZXN1bHQgPSBBcnJheShuKTtcblxuICB3aGlsZSAoKytpbmRleCA8IG4pIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoaW5kZXgpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VUaW1lcztcbiIsImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcbmltcG9ydCBhcnJheU1hcCBmcm9tICcuL19hcnJheU1hcC5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzU3ltYm9sIGZyb20gJy4vaXNTeW1ib2wuanMnO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBJTkZJTklUWSA9IDEgLyAwO1xuXG4vKiogVXNlZCB0byBjb252ZXJ0IHN5bWJvbHMgdG8gcHJpbWl0aXZlcyBhbmQgc3RyaW5ncy4gKi9cbnZhciBzeW1ib2xQcm90byA9IFN5bWJvbCA/IFN5bWJvbC5wcm90b3R5cGUgOiB1bmRlZmluZWQsXG4gICAgc3ltYm9sVG9TdHJpbmcgPSBzeW1ib2xQcm90byA/IHN5bWJvbFByb3RvLnRvU3RyaW5nIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnRvU3RyaW5nYCB3aGljaCBkb2Vzbid0IGNvbnZlcnQgbnVsbGlzaFxuICogdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUb1N0cmluZyh2YWx1ZSkge1xuICAvLyBFeGl0IGVhcmx5IGZvciBzdHJpbmdzIHRvIGF2b2lkIGEgcGVyZm9ybWFuY2UgaGl0IGluIHNvbWUgZW52aXJvbm1lbnRzLlxuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIC8vIFJlY3Vyc2l2ZWx5IGNvbnZlcnQgdmFsdWVzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgcmV0dXJuIGFycmF5TWFwKHZhbHVlLCBiYXNlVG9TdHJpbmcpICsgJyc7XG4gIH1cbiAgaWYgKGlzU3ltYm9sKHZhbHVlKSkge1xuICAgIHJldHVybiBzeW1ib2xUb1N0cmluZyA/IHN5bWJvbFRvU3RyaW5nLmNhbGwodmFsdWUpIDogJyc7XG4gIH1cbiAgdmFyIHJlc3VsdCA9ICh2YWx1ZSArICcnKTtcbiAgcmV0dXJuIChyZXN1bHQgPT0gJzAnICYmICgxIC8gdmFsdWUpID09IC1JTkZJTklUWSkgPyAnLTAnIDogcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVG9TdHJpbmc7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gZnVuYyh2YWx1ZSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VVbmFyeTtcbiIsImltcG9ydCBhcnJheU1hcCBmcm9tICcuL19hcnJheU1hcC5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udmFsdWVzYCBhbmQgYF8udmFsdWVzSW5gIHdoaWNoIGNyZWF0ZXMgYW5cbiAqIGFycmF5IG9mIGBvYmplY3RgIHByb3BlcnR5IHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwcm9wZXJ0eSBuYW1lc1xuICogb2YgYHByb3BzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGdldCB2YWx1ZXMgZm9yLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBiYXNlVmFsdWVzKG9iamVjdCwgcHJvcHMpIHtcbiAgcmV0dXJuIGFycmF5TWFwKHByb3BzLCBmdW5jdGlvbihrZXkpIHtcbiAgICByZXR1cm4gb2JqZWN0W2tleV07XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlVmFsdWVzO1xuIiwiaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduVmFsdWUgZnJvbSAnLi9fYmFzZUFzc2lnblZhbHVlLmpzJztcblxuLyoqXG4gKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzIHRvIGNvcHkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb3BpZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weU9iamVjdChzb3VyY2UsIHByb3BzLCBvYmplY3QsIGN1c3RvbWl6ZXIpIHtcbiAgdmFyIGlzTmV3ID0gIW9iamVjdDtcbiAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuXG4gICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIGlmIChpc05ldykge1xuICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvcHlPYmplY3Q7XG4iLCJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG92ZXJyZWFjaGluZyBjb3JlLWpzIHNoaW1zLiAqL1xudmFyIGNvcmVKc0RhdGEgPSByb290WydfX2NvcmUtanNfc2hhcmVkX18nXTtcblxuZXhwb3J0IGRlZmF1bHQgY29yZUpzRGF0YTtcbiIsImltcG9ydCBiYXNlUmVzdCBmcm9tICcuL19iYXNlUmVzdC5qcyc7XG5pbXBvcnQgaXNJdGVyYXRlZUNhbGwgZnJvbSAnLi9faXNJdGVyYXRlZUNhbGwuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBsaWtlIGBfLmFzc2lnbmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGFzc2lnbmVyIFRoZSBmdW5jdGlvbiB0byBhc3NpZ24gdmFsdWVzLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYXNzaWduZXIgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUFzc2lnbmVyKGFzc2lnbmVyKSB7XG4gIHJldHVybiBiYXNlUmVzdChmdW5jdGlvbihvYmplY3QsIHNvdXJjZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gc291cmNlcy5sZW5ndGgsXG4gICAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPiAxID8gc291cmNlc1tsZW5ndGggLSAxXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZ3VhcmQgPSBsZW5ndGggPiAyID8gc291cmNlc1syXSA6IHVuZGVmaW5lZDtcblxuICAgIGN1c3RvbWl6ZXIgPSAoYXNzaWduZXIubGVuZ3RoID4gMyAmJiB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nKVxuICAgICAgPyAobGVuZ3RoLS0sIGN1c3RvbWl6ZXIpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChndWFyZCAmJiBpc0l0ZXJhdGVlQ2FsbChzb3VyY2VzWzBdLCBzb3VyY2VzWzFdLCBndWFyZCkpIHtcbiAgICAgIGN1c3RvbWl6ZXIgPSBsZW5ndGggPCAzID8gdW5kZWZpbmVkIDogY3VzdG9taXplcjtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfVxuICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICB2YXIgc291cmNlID0gc291cmNlc1tpbmRleF07XG4gICAgICBpZiAoc291cmNlKSB7XG4gICAgICAgIGFzc2lnbmVyKG9iamVjdCwgc291cmNlLCBpbmRleCwgY3VzdG9taXplcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVBc3NpZ25lcjtcbiIsImltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIGJ5IGBfLmRlZmF1bHRzYCB0byBjdXN0b21pemUgaXRzIGBfLmFzc2lnbkluYCB1c2UgdG8gYXNzaWduIHByb3BlcnRpZXNcbiAqIG9mIHNvdXJjZSBvYmplY3RzIHRvIHRoZSBkZXN0aW5hdGlvbiBvYmplY3QgZm9yIGFsbCBkZXN0aW5hdGlvbiBwcm9wZXJ0aWVzXG4gKiB0aGF0IHJlc29sdmUgdG8gYHVuZGVmaW5lZGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gb2JqVmFsdWUgVGhlIGRlc3RpbmF0aW9uIHZhbHVlLlxuICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgc291cmNlIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBhc3NpZ24uXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBwYXJlbnQgb2JqZWN0IG9mIGBvYmpWYWx1ZWAuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBjdXN0b21EZWZhdWx0c0Fzc2lnbkluKG9ialZhbHVlLCBzcmNWYWx1ZSwga2V5LCBvYmplY3QpIHtcbiAgaWYgKG9ialZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICAgIChlcShvYmpWYWx1ZSwgb2JqZWN0UHJvdG9ba2V5XSkgJiYgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkge1xuICAgIHJldHVybiBzcmNWYWx1ZTtcbiAgfVxuICByZXR1cm4gb2JqVmFsdWU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGN1c3RvbURlZmF1bHRzQXNzaWduSW47XG4iLCJpbXBvcnQgZ2V0TmF0aXZlIGZyb20gJy4vX2dldE5hdGl2ZS5qcyc7XG5cbnZhciBkZWZpbmVQcm9wZXJ0eSA9IChmdW5jdGlvbigpIHtcbiAgdHJ5IHtcbiAgICB2YXIgZnVuYyA9IGdldE5hdGl2ZShPYmplY3QsICdkZWZpbmVQcm9wZXJ0eScpO1xuICAgIGZ1bmMoe30sICcnLCB7fSk7XG4gICAgcmV0dXJuIGZ1bmM7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVQcm9wZXJ0eTtcbiIsImltcG9ydCBiYXNlUHJvcGVydHlPZiBmcm9tICcuL19iYXNlUHJvcGVydHlPZi5qcyc7XG5cbi8qKiBVc2VkIHRvIG1hcCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXRpZXMuICovXG52YXIgaHRtbEVzY2FwZXMgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmIzM5Oydcbn07XG5cbi8qKlxuICogVXNlZCBieSBgXy5lc2NhcGVgIHRvIGNvbnZlcnQgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIGNoYXJhY3Rlci5cbiAqL1xudmFyIGVzY2FwZUh0bWxDaGFyID0gYmFzZVByb3BlcnR5T2YoaHRtbEVzY2FwZXMpO1xuXG5leHBvcnQgZGVmYXVsdCBlc2NhcGVIdG1sQ2hhcjtcbiIsIi8qKiBVc2VkIHRvIGVzY2FwZSBjaGFyYWN0ZXJzIGZvciBpbmNsdXNpb24gaW4gY29tcGlsZWQgc3RyaW5nIGxpdGVyYWxzLiAqL1xudmFyIHN0cmluZ0VzY2FwZXMgPSB7XG4gICdcXFxcJzogJ1xcXFwnLFxuICBcIidcIjogXCInXCIsXG4gICdcXG4nOiAnbicsXG4gICdcXHInOiAncicsXG4gICdcXHUyMDI4JzogJ3UyMDI4JyxcbiAgJ1xcdTIwMjknOiAndTIwMjknXG59O1xuXG4vKipcbiAqIFVzZWQgYnkgYF8udGVtcGxhdGVgIHRvIGVzY2FwZSBjaGFyYWN0ZXJzIGZvciBpbmNsdXNpb24gaW4gY29tcGlsZWQgc3RyaW5nIGxpdGVyYWxzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIGNoYXJhY3Rlci5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlU3RyaW5nQ2hhcihjaHIpIHtcbiAgcmV0dXJuICdcXFxcJyArIHN0cmluZ0VzY2FwZXNbY2hyXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXNjYXBlU3RyaW5nQ2hhcjtcbiIsIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbmV4cG9ydCBkZWZhdWx0IGZyZWVHbG9iYWw7XG4iLCJpbXBvcnQgYmFzZUlzTmF0aXZlIGZyb20gJy4vX2Jhc2VJc05hdGl2ZS5qcyc7XG5pbXBvcnQgZ2V0VmFsdWUgZnJvbSAnLi9fZ2V0VmFsdWUuanMnO1xuXG4vKipcbiAqIEdldHMgdGhlIG5hdGl2ZSBmdW5jdGlvbiBhdCBga2V5YCBvZiBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBtZXRob2QgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZ1bmN0aW9uIGlmIGl0J3MgbmF0aXZlLCBlbHNlIGB1bmRlZmluZWRgLlxuICovXG5mdW5jdGlvbiBnZXROYXRpdmUob2JqZWN0LCBrZXkpIHtcbiAgdmFyIHZhbHVlID0gZ2V0VmFsdWUob2JqZWN0LCBrZXkpO1xuICByZXR1cm4gYmFzZUlzTmF0aXZlKHZhbHVlKSA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXROYXRpdmU7XG4iLCJpbXBvcnQgb3ZlckFyZyBmcm9tICcuL19vdmVyQXJnLmpzJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgZ2V0UHJvdG90eXBlID0gb3ZlckFyZyhPYmplY3QuZ2V0UHJvdG90eXBlT2YsIE9iamVjdCk7XG5cbmV4cG9ydCBkZWZhdWx0IGdldFByb3RvdHlwZTtcbiIsImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHN5bVRvU3RyaW5nVGFnID0gU3ltYm9sID8gU3ltYm9sLnRvU3RyaW5nVGFnIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZUdldFRhZ2Agd2hpY2ggaWdub3JlcyBgU3ltYm9sLnRvU3RyaW5nVGFnYCB2YWx1ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgcmF3IGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICB2YXIgaXNPd24gPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBzeW1Ub1N0cmluZ1RhZyksXG4gICAgICB0YWcgPSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgdmFyIHVubWFza2VkID0gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge31cblxuICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gIGlmICh1bm1hc2tlZCkge1xuICAgIGlmIChpc093bikge1xuICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRSYXdUYWc7XG4iLCIvKipcbiAqIEdldHMgdGhlIHZhbHVlIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdF0gVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlLlxuICovXG5mdW5jdGlvbiBnZXRWYWx1ZShvYmplY3QsIGtleSkge1xuICByZXR1cm4gb2JqZWN0ID09IG51bGwgPyB1bmRlZmluZWQgOiBvYmplY3Rba2V5XTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0VmFsdWU7XG4iLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzLiAqL1xudmFyIHJlSXNVaW50ID0gL14oPzowfFsxLTldXFxkKikkLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgaW5kZXguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9TUFYX1NBRkVfSU5URUdFUl0gVGhlIHVwcGVyIGJvdW5kcyBvZiBhIHZhbGlkIGluZGV4LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBpbmRleCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0luZGV4KHZhbHVlLCBsZW5ndGgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGxlbmd0aCA9IGxlbmd0aCA9PSBudWxsID8gTUFYX1NBRkVfSU5URUdFUiA6IGxlbmd0aDtcblxuICByZXR1cm4gISFsZW5ndGggJiZcbiAgICAodHlwZSA9PSAnbnVtYmVyJyB8fFxuICAgICAgKHR5cGUgIT0gJ3N5bWJvbCcgJiYgcmVJc1VpbnQudGVzdCh2YWx1ZSkpKSAmJlxuICAgICAgICAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzSW5kZXg7XG4iLCJpbXBvcnQgZXEgZnJvbSAnLi9lcS5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5pbXBvcnQgaXNJbmRleCBmcm9tICcuL19pc0luZGV4LmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGdpdmVuIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJdGVyYXRlZUNhbGwodmFsdWUsIGluZGV4LCBvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0eXBlID0gdHlwZW9mIGluZGV4O1xuICBpZiAodHlwZSA9PSAnbnVtYmVyJ1xuICAgICAgICA/IChpc0FycmF5TGlrZShvYmplY3QpICYmIGlzSW5kZXgoaW5kZXgsIG9iamVjdC5sZW5ndGgpKVxuICAgICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdClcbiAgICAgICkge1xuICAgIHJldHVybiBlcShvYmplY3RbaW5kZXhdLCB2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0l0ZXJhdGVlQ2FsbDtcbiIsImltcG9ydCBjb3JlSnNEYXRhIGZyb20gJy4vX2NvcmVKc0RhdGEuanMnO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgbWV0aG9kcyBtYXNxdWVyYWRpbmcgYXMgbmF0aXZlLiAqL1xudmFyIG1hc2tTcmNLZXkgPSAoZnVuY3Rpb24oKSB7XG4gIHZhciB1aWQgPSAvW14uXSskLy5leGVjKGNvcmVKc0RhdGEgJiYgY29yZUpzRGF0YS5rZXlzICYmIGNvcmVKc0RhdGEua2V5cy5JRV9QUk9UTyB8fCAnJyk7XG4gIHJldHVybiB1aWQgPyAoJ1N5bWJvbChzcmMpXzEuJyArIHVpZCkgOiAnJztcbn0oKSk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGBmdW5jYCBoYXMgaXRzIHNvdXJjZSBtYXNrZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGBmdW5jYCBpcyBtYXNrZWQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNNYXNrZWQoZnVuYykge1xuICByZXR1cm4gISFtYXNrU3JjS2V5ICYmIChtYXNrU3JjS2V5IGluIGZ1bmMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc01hc2tlZDtcbiIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGEgcHJvdG90eXBlIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHByb3RvdHlwZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1Byb3RvdHlwZSh2YWx1ZSkge1xuICB2YXIgQ3RvciA9IHZhbHVlICYmIHZhbHVlLmNvbnN0cnVjdG9yLFxuICAgICAgcHJvdG8gPSAodHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yLnByb3RvdHlwZSkgfHwgb2JqZWN0UHJvdG87XG5cbiAgcmV0dXJuIHZhbHVlID09PSBwcm90bztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQcm90b3R5cGU7XG4iLCJpbXBvcnQgb3ZlckFyZyBmcm9tICcuL19vdmVyQXJnLmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUtleXMgPSBvdmVyQXJnKE9iamVjdC5rZXlzLCBPYmplY3QpO1xuXG5leHBvcnQgZGVmYXVsdCBuYXRpdmVLZXlzO1xuIiwiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2VcbiAqIFtgT2JqZWN0LmtleXNgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3Qua2V5cylcbiAqIGV4Y2VwdCB0aGF0IGl0IGluY2x1ZGVzIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIG5hdGl2ZUtleXNJbihvYmplY3QpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBpZiAob2JqZWN0ICE9IG51bGwpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gT2JqZWN0KG9iamVjdCkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5hdGl2ZUtleXNJbjtcbiIsImltcG9ydCBmcmVlR2xvYmFsIGZyb20gJy4vX2ZyZWVHbG9iYWwuanMnO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgcHJvY2Vzc2AgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVQcm9jZXNzID0gbW9kdWxlRXhwb3J0cyAmJiBmcmVlR2xvYmFsLnByb2Nlc3M7XG5cbi8qKiBVc2VkIHRvIGFjY2VzcyBmYXN0ZXIgTm9kZS5qcyBoZWxwZXJzLiAqL1xudmFyIG5vZGVVdGlsID0gKGZ1bmN0aW9uKCkge1xuICB0cnkge1xuICAgIC8vIFVzZSBgdXRpbC50eXBlc2AgZm9yIE5vZGUuanMgMTArLlxuICAgIHZhciB0eXBlcyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlICYmIGZyZWVNb2R1bGUucmVxdWlyZSgndXRpbCcpLnR5cGVzO1xuXG4gICAgaWYgKHR5cGVzKSB7XG4gICAgICByZXR1cm4gdHlwZXM7XG4gICAgfVxuXG4gICAgLy8gTGVnYWN5IGBwcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKWAgZm9yIE5vZGUuanMgPCAxMC5cbiAgICByZXR1cm4gZnJlZVByb2Nlc3MgJiYgZnJlZVByb2Nlc3MuYmluZGluZyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nKCd1dGlsJyk7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5leHBvcnQgZGVmYXVsdCBub2RlVXRpbDtcbiIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcgdXNpbmcgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgY29udmVydGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gb2JqZWN0VG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBvYmplY3RUb1N0cmluZztcbiIsIi8qKlxuICogQ3JlYXRlcyBhIHVuYXJ5IGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCBpdHMgYXJndW1lbnQgdHJhbnNmb3JtZWQuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHdyYXAuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIGFyZ3VtZW50IHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBvdmVyQXJnKGZ1bmMsIHRyYW5zZm9ybSkge1xuICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGZ1bmModHJhbnNmb3JtKGFyZykpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBvdmVyQXJnO1xuIiwiaW1wb3J0IGFwcGx5IGZyb20gJy4vX2FwcGx5LmpzJztcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4O1xuXG4vKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgYmFzZVJlc3RgIHdoaWNoIHRyYW5zZm9ybXMgdGhlIHJlc3QgYXJyYXkuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGFwcGx5IGEgcmVzdCBwYXJhbWV0ZXIgdG8uXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PWZ1bmMubGVuZ3RoLTFdIFRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgcmVzdCBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSB0cmFuc2Zvcm0gVGhlIHJlc3QgYXJyYXkgdHJhbnNmb3JtLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG92ZXJSZXN0KGZ1bmMsIHN0YXJ0LCB0cmFuc2Zvcm0pIHtcbiAgc3RhcnQgPSBuYXRpdmVNYXgoc3RhcnQgPT09IHVuZGVmaW5lZCA/IChmdW5jLmxlbmd0aCAtIDEpIDogc3RhcnQsIDApO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChhcmdzLmxlbmd0aCAtIHN0YXJ0LCAwKSxcbiAgICAgICAgYXJyYXkgPSBBcnJheShsZW5ndGgpO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGFycmF5W2luZGV4XSA9IGFyZ3Nbc3RhcnQgKyBpbmRleF07XG4gICAgfVxuICAgIGluZGV4ID0gLTE7XG4gICAgdmFyIG90aGVyQXJncyA9IEFycmF5KHN0YXJ0ICsgMSk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBzdGFydCkge1xuICAgICAgb3RoZXJBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdO1xuICAgIH1cbiAgICBvdGhlckFyZ3Nbc3RhcnRdID0gdHJhbnNmb3JtKGFycmF5KTtcbiAgICByZXR1cm4gYXBwbHkoZnVuYywgdGhpcywgb3RoZXJBcmdzKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb3ZlclJlc3Q7XG4iLCIvKiogVXNlZCB0byBtYXRjaCB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLiAqL1xudmFyIHJlRXNjYXBlID0gLzwlLShbXFxzXFxTXSs/KSU+L2c7XG5cbmV4cG9ydCBkZWZhdWx0IHJlRXNjYXBlO1xuIiwiLyoqIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbnZhciByZUV2YWx1YXRlID0gLzwlKFtcXHNcXFNdKz8pJT4vZztcblxuZXhwb3J0IGRlZmF1bHQgcmVFdmFsdWF0ZTtcbiIsIi8qKiBVc2VkIHRvIG1hdGNoIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXG52YXIgcmVJbnRlcnBvbGF0ZSA9IC88JT0oW1xcc1xcU10rPyklPi9nO1xuXG5leHBvcnQgZGVmYXVsdCByZUludGVycG9sYXRlO1xuIiwiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG52YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcblxuLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG52YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxuZXhwb3J0IGRlZmF1bHQgcm9vdDtcbiIsImltcG9ydCBiYXNlU2V0VG9TdHJpbmcgZnJvbSAnLi9fYmFzZVNldFRvU3RyaW5nLmpzJztcbmltcG9ydCBzaG9ydE91dCBmcm9tICcuL19zaG9ydE91dC5qcyc7XG5cbi8qKlxuICogU2V0cyB0aGUgYHRvU3RyaW5nYCBtZXRob2Qgb2YgYGZ1bmNgIHRvIHJldHVybiBgc3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBzZXRUb1N0cmluZyA9IHNob3J0T3V0KGJhc2VTZXRUb1N0cmluZyk7XG5cbmV4cG9ydCBkZWZhdWx0IHNldFRvU3RyaW5nO1xuIiwiLyoqIFVzZWQgdG8gZGV0ZWN0IGhvdCBmdW5jdGlvbnMgYnkgbnVtYmVyIG9mIGNhbGxzIHdpdGhpbiBhIHNwYW4gb2YgbWlsbGlzZWNvbmRzLiAqL1xudmFyIEhPVF9DT1VOVCA9IDgwMCxcbiAgICBIT1RfU1BBTiA9IDE2O1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTm93ID0gRGF0ZS5ub3c7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQnbGwgc2hvcnQgb3V0IGFuZCBpbnZva2UgYGlkZW50aXR5YCBpbnN0ZWFkXG4gKiBvZiBgZnVuY2Agd2hlbiBpdCdzIGNhbGxlZCBgSE9UX0NPVU5UYCBvciBtb3JlIHRpbWVzIGluIGBIT1RfU1BBTmBcbiAqIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzaG9ydGFibGUgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIHNob3J0T3V0KGZ1bmMpIHtcbiAgdmFyIGNvdW50ID0gMCxcbiAgICAgIGxhc3RDYWxsZWQgPSAwO1xuXG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhbXAgPSBuYXRpdmVOb3coKSxcbiAgICAgICAgcmVtYWluaW5nID0gSE9UX1NQQU4gLSAoc3RhbXAgLSBsYXN0Q2FsbGVkKTtcblxuICAgIGxhc3RDYWxsZWQgPSBzdGFtcDtcbiAgICBpZiAocmVtYWluaW5nID4gMCkge1xuICAgICAgaWYgKCsrY291bnQgPj0gSE9UX0NPVU5UKSB7XG4gICAgICAgIHJldHVybiBhcmd1bWVudHNbMF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvdW50ID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmMuYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzaG9ydE91dDtcbiIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoZnVuYyArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9Tb3VyY2U7XG4iLCJpbXBvcnQgY29weU9iamVjdCBmcm9tICcuL19jb3B5T2JqZWN0LmpzJztcbmltcG9ydCBjcmVhdGVBc3NpZ25lciBmcm9tICcuL19jcmVhdGVBc3NpZ25lci5qcyc7XG5pbXBvcnQga2V5c0luIGZyb20gJy4va2V5c0luLmpzJztcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmFzc2lnbkluYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYFxuICogd2hpY2ggaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBhc3NpZ25lZCB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zXG4gKiBgdW5kZWZpbmVkYCwgYXNzaWdubWVudCBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYFxuICogaXMgaW52b2tlZCB3aXRoIGZpdmUgYXJndW1lbnRzOiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlKS5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAYWxpYXMgZXh0ZW5kV2l0aFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHsuLi5PYmplY3R9IHNvdXJjZXMgVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBzZWUgXy5hc3NpZ25XaXRoXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gKiAgIHJldHVybiBfLmlzVW5kZWZpbmVkKG9ialZhbHVlKSA/IHNyY1ZhbHVlIDogb2JqVmFsdWU7XG4gKiB9XG4gKlxuICogdmFyIGRlZmF1bHRzID0gXy5wYXJ0aWFsUmlnaHQoXy5hc3NpZ25JbldpdGgsIGN1c3RvbWl6ZXIpO1xuICpcbiAqIGRlZmF1bHRzKHsgJ2EnOiAxIH0sIHsgJ2InOiAyIH0sIHsgJ2EnOiAzIH0pO1xuICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gKi9cbnZhciBhc3NpZ25JbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QsIGN1c3RvbWl6ZXIpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFzc2lnbkluV2l0aDtcbiIsImltcG9ydCBhcHBseSBmcm9tICcuL19hcHBseS5qcyc7XG5pbXBvcnQgYmFzZVJlc3QgZnJvbSAnLi9fYmFzZVJlc3QuanMnO1xuaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi9pc0Vycm9yLmpzJztcblxuLyoqXG4gKiBBdHRlbXB0cyB0byBpbnZva2UgYGZ1bmNgLCByZXR1cm5pbmcgZWl0aGVyIHRoZSByZXN1bHQgb3IgdGhlIGNhdWdodCBlcnJvclxuICogb2JqZWN0LiBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHByb3ZpZGVkIHRvIGBmdW5jYCB3aGVuIGl0J3MgaW52b2tlZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXR0ZW1wdC5cbiAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGBmdW5jYCByZXN1bHQgb3IgZXJyb3Igb2JqZWN0LlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBBdm9pZCB0aHJvd2luZyBlcnJvcnMgZm9yIGludmFsaWQgc2VsZWN0b3JzLlxuICogdmFyIGVsZW1lbnRzID0gXy5hdHRlbXB0KGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gKiAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAqIH0sICc+Xz4nKTtcbiAqXG4gKiBpZiAoXy5pc0Vycm9yKGVsZW1lbnRzKSkge1xuICogICBlbGVtZW50cyA9IFtdO1xuICogfVxuICovXG52YXIgYXR0ZW1wdCA9IGJhc2VSZXN0KGZ1bmN0aW9uKGZ1bmMsIGFyZ3MpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXBwbHkoZnVuYywgdW5kZWZpbmVkLCBhcmdzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBpc0Vycm9yKGUpID8gZSA6IG5ldyBFcnJvcihlKTtcbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGF0dGVtcHQ7XG4iLCIvKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHZhbHVlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmV0dXJuIGZyb20gdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbnN0YW50IGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IF8udGltZXMoMiwgXy5jb25zdGFudCh7ICdhJzogMSB9KSk7XG4gKlxuICogY29uc29sZS5sb2cob2JqZWN0cyk7XG4gKiAvLyA9PiBbeyAnYSc6IDEgfSwgeyAnYSc6IDEgfV1cbiAqXG4gKiBjb25zb2xlLmxvZyhvYmplY3RzWzBdID09PSBvYmplY3RzWzFdKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uc3RhbnQ7XG4iLCIvKipcbiAqIFBlcmZvcm1zIGFcbiAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgZXF1aXZhbGVudC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2EnOiAxIH07XG4gKlxuICogXy5lcShvYmplY3QsIG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcShvYmplY3QsIG90aGVyKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcSgnYScsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcShOYU4sIE5hTik7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICByZXR1cm4gdmFsdWUgPT09IG90aGVyIHx8ICh2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXE7XG4iLCJpbXBvcnQgZXNjYXBlSHRtbENoYXIgZnJvbSAnLi9fZXNjYXBlSHRtbENoYXIuanMnO1xuaW1wb3J0IHRvU3RyaW5nIGZyb20gJy4vdG9TdHJpbmcuanMnO1xuXG4vKiogVXNlZCB0byBtYXRjaCBIVE1MIGVudGl0aWVzIGFuZCBIVE1MIGNoYXJhY3RlcnMuICovXG52YXIgcmVVbmVzY2FwZWRIdG1sID0gL1smPD5cIiddL2csXG4gICAgcmVIYXNVbmVzY2FwZWRIdG1sID0gUmVnRXhwKHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UpO1xuXG4vKipcbiAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXJzIFwiJlwiLCBcIjxcIiwgXCI+XCIsICdcIicsIGFuZCBcIidcIiBpbiBgc3RyaW5nYCB0byB0aGVpclxuICogY29ycmVzcG9uZGluZyBIVE1MIGVudGl0aWVzLlxuICpcbiAqICoqTm90ZToqKiBObyBvdGhlciBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkLiBUbyBlc2NhcGUgYWRkaXRpb25hbFxuICogY2hhcmFjdGVycyB1c2UgYSB0aGlyZC1wYXJ0eSBsaWJyYXJ5IGxpa2UgW19oZV9dKGh0dHBzOi8vbXRocy5iZS9oZSkuXG4gKlxuICogVGhvdWdoIHRoZSBcIj5cIiBjaGFyYWN0ZXIgaXMgZXNjYXBlZCBmb3Igc3ltbWV0cnksIGNoYXJhY3RlcnMgbGlrZVxuICogXCI+XCIgYW5kIFwiL1wiIGRvbid0IG5lZWQgZXNjYXBpbmcgaW4gSFRNTCBhbmQgaGF2ZSBubyBzcGVjaWFsIG1lYW5pbmdcbiAqIHVubGVzcyB0aGV5J3JlIHBhcnQgb2YgYSB0YWcgb3IgdW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlLiBTZWVcbiAqIFtNYXRoaWFzIEJ5bmVucydzIGFydGljbGVdKGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9hbWJpZ3VvdXMtYW1wZXJzYW5kcylcbiAqICh1bmRlciBcInNlbWktcmVsYXRlZCBmdW4gZmFjdFwiKSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFdoZW4gd29ya2luZyB3aXRoIEhUTUwgeW91IHNob3VsZCBhbHdheXNcbiAqIFtxdW90ZSBhdHRyaWJ1dGUgdmFsdWVzXShodHRwOi8vd29ua28uY29tL3Bvc3QvaHRtbC1lc2NhcGluZykgdG8gcmVkdWNlXG4gKiBYU1MgdmVjdG9ycy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgU3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gKiAvLyA9PiAnZnJlZCwgYmFybmV5LCAmYW1wOyBwZWJibGVzJ1xuICovXG5mdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gIHJldHVybiAoc3RyaW5nICYmIHJlSGFzVW5lc2NhcGVkSHRtbC50ZXN0KHN0cmluZykpXG4gICAgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKVxuICAgIDogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBlc2NhcGU7XG4iLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGZpcnN0IGFyZ3VtZW50IGl0IHJlY2VpdmVzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcGFyYW0geyp9IHZhbHVlIEFueSB2YWx1ZS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIGB2YWx1ZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICpcbiAqIGNvbnNvbGUubG9nKF8uaWRlbnRpdHkob2JqZWN0KSA9PT0gb2JqZWN0KTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpZGVudGl0eTtcbiIsImltcG9ydCBiYXNlSXNBcmd1bWVudHMgZnJvbSAnLi9fYmFzZUlzQXJndW1lbnRzLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGxpa2VseSBhbiBgYXJndW1lbnRzYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICogIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNBcmd1bWVudHMgPSBiYXNlSXNBcmd1bWVudHMoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPyBiYXNlSXNBcmd1bWVudHMgOiBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY2FsbGVlJykgJiZcbiAgICAhcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh2YWx1ZSwgJ2NhbGxlZScpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaXNBcmd1bWVudHM7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYW4gYEFycmF5YCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzQXJyYXkoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgaXNBcnJheTtcbiIsImltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJy4vaXNGdW5jdGlvbi5qcyc7XG5pbXBvcnQgaXNMZW5ndGggZnJvbSAnLi9pc0xlbmd0aC5qcyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS4gQSB2YWx1ZSBpcyBjb25zaWRlcmVkIGFycmF5LWxpa2UgaWYgaXQnc1xuICogbm90IGEgZnVuY3Rpb24gYW5kIGhhcyBhIGB2YWx1ZS5sZW5ndGhgIHRoYXQncyBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvclxuICogZXF1YWwgdG8gYDBgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXlMaWtlKGRvY3VtZW50LmJvZHkuY2hpbGRyZW4pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgIWlzRnVuY3Rpb24odmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0FycmF5TGlrZTtcbiIsImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuaW1wb3J0IHN0dWJGYWxzZSBmcm9tICcuL3N0dWJGYWxzZS5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxuZXhwb3J0IGRlZmF1bHQgaXNCdWZmZXI7XG4iLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuaW1wb3J0IGlzUGxhaW5PYmplY3QgZnJvbSAnLi9pc1BsYWluT2JqZWN0LmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGRvbUV4Y1RhZyA9ICdbb2JqZWN0IERPTUV4Y2VwdGlvbl0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhbiBgRXJyb3JgLCBgRXZhbEVycm9yYCwgYFJhbmdlRXJyb3JgLCBgUmVmZXJlbmNlRXJyb3JgLFxuICogYFN5bnRheEVycm9yYCwgYFR5cGVFcnJvcmAsIG9yIGBVUklFcnJvcmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFuIGVycm9yIG9iamVjdCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzRXJyb3IobmV3IEVycm9yKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRXJyb3IoRXJyb3IpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNFcnJvcih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICByZXR1cm4gdGFnID09IGVycm9yVGFnIHx8IHRhZyA9PSBkb21FeGNUYWcgfHxcbiAgICAodHlwZW9mIHZhbHVlLm1lc3NhZ2UgPT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlLm5hbWUgPT0gJ3N0cmluZycgJiYgIWlzUGxhaW5PYmplY3QodmFsdWUpKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNFcnJvcjtcbiIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXN5bmNUYWcgPSAnW29iamVjdCBBc3luY0Z1bmN0aW9uXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgZ2VuVGFnID0gJ1tvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dJyxcbiAgICBwcm94eVRhZyA9ICdbb2JqZWN0IFByb3h5XSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgZnVuY3Rpb24sIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Z1bmN0aW9uKF8pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNGdW5jdGlvbigvYWJjLyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFRoZSB1c2Ugb2YgYE9iamVjdCN0b1N0cmluZ2AgYXZvaWRzIGlzc3VlcyB3aXRoIHRoZSBgdHlwZW9mYCBvcGVyYXRvclxuICAvLyBpbiBTYWZhcmkgOSB3aGljaCByZXR1cm5zICdvYmplY3QnIGZvciB0eXBlZCBhcnJheXMgYW5kIG90aGVyIGNvbnN0cnVjdG9ycy5cbiAgdmFyIHRhZyA9IGJhc2VHZXRUYWcodmFsdWUpO1xuICByZXR1cm4gdGFnID09IGZ1bmNUYWcgfHwgdGFnID09IGdlblRhZyB8fCB0YWcgPT0gYXN5bmNUYWcgfHwgdGFnID09IHByb3h5VGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0Z1bmN0aW9uO1xuIiwiLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdmFyaW91cyBgTnVtYmVyYCBjb25zdGFudHMuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGxlbmd0aC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvblxuICogW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXRvbGVuZ3RoKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGxlbmd0aCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzTGVuZ3RoKDMpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNMZW5ndGgoTnVtYmVyLk1JTl9WQUxVRSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoSW5maW5pdHkpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzTGVuZ3RoKCczJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0xlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmXG4gICAgdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8PSBNQVhfU0FGRV9JTlRFR0VSO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0xlbmd0aDtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgdGhlXG4gKiBbbGFuZ3VhZ2UgdHlwZV0oaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLWVjbWFzY3JpcHQtbGFuZ3VhZ2UtdHlwZXMpXG4gKiBvZiBgT2JqZWN0YC4gKGUuZy4gYXJyYXlzLCBmdW5jdGlvbnMsIG9iamVjdHMsIHJlZ2V4ZXMsIGBuZXcgTnVtYmVyKDApYCwgYW5kIGBuZXcgU3RyaW5nKCcnKWApXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KF8ubm9vcCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc09iamVjdDtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuIEEgdmFsdWUgaXMgb2JqZWN0LWxpa2UgaWYgaXQncyBub3QgYG51bGxgXG4gKiBhbmQgaGFzIGEgYHR5cGVvZmAgcmVzdWx0IG9mIFwib2JqZWN0XCIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdExpa2Uoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoXy5ub29wKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc09iamVjdExpa2UobnVsbCk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc09iamVjdExpa2U7XG4iLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBnZXRQcm90b3R5cGUgZnJvbSAnLi9fZ2V0UHJvdG90eXBlLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XSc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZnVuY1RvU3RyaW5nID0gZnVuY1Byb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKiogVXNlZCB0byBpbmZlciB0aGUgYE9iamVjdGAgY29uc3RydWN0b3IuICovXG52YXIgb2JqZWN0Q3RvclN0cmluZyA9IGZ1bmNUb1N0cmluZy5jYWxsKE9iamVjdCk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMC44LjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcGxhaW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqIH1cbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QobmV3IEZvbyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoeyAneCc6IDAsICd5JzogMCB9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzUGxhaW5PYmplY3QoT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpIHx8IGJhc2VHZXRUYWcodmFsdWUpICE9IG9iamVjdFRhZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcHJvdG8gPSBnZXRQcm90b3R5cGUodmFsdWUpO1xuICBpZiAocHJvdG8gPT09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICB2YXIgQ3RvciA9IGhhc093blByb3BlcnR5LmNhbGwocHJvdG8sICdjb25zdHJ1Y3RvcicpICYmIHByb3RvLmNvbnN0cnVjdG9yO1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBDdG9yIGluc3RhbmNlb2YgQ3RvciAmJlxuICAgIGZ1bmNUb1N0cmluZy5jYWxsKEN0b3IpID09IG9iamVjdEN0b3JTdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzUGxhaW5PYmplY3Q7XG4iLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgc3ltYm9sVGFnID0gJ1tvYmplY3QgU3ltYm9sXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTeW1ib2xgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBzeW1ib2wsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1N5bWJvbChTeW1ib2wuaXRlcmF0b3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTeW1ib2woJ2FiYycpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNTeW1ib2wodmFsdWUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3ltYm9sJyB8fFxuICAgIChpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09IHN5bWJvbFRhZyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzU3ltYm9sO1xuIiwiaW1wb3J0IGJhc2VJc1R5cGVkQXJyYXkgZnJvbSAnLi9fYmFzZUlzVHlwZWRBcnJheS5qcyc7XG5pbXBvcnQgYmFzZVVuYXJ5IGZyb20gJy4vX2Jhc2VVbmFyeS5qcyc7XG5pbXBvcnQgbm9kZVV0aWwgZnJvbSAnLi9fbm9kZVV0aWwuanMnO1xuXG4vKiBOb2RlLmpzIGhlbHBlciByZWZlcmVuY2VzLiAqL1xudmFyIG5vZGVJc1R5cGVkQXJyYXkgPSBub2RlVXRpbCAmJiBub2RlVXRpbC5pc1R5cGVkQXJyYXk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIHR5cGVkIGFycmF5LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc1R5cGVkQXJyYXkgPSBub2RlSXNUeXBlZEFycmF5ID8gYmFzZVVuYXJ5KG5vZGVJc1R5cGVkQXJyYXkpIDogYmFzZUlzVHlwZWRBcnJheTtcblxuZXhwb3J0IGRlZmF1bHQgaXNUeXBlZEFycmF5O1xuIiwiaW1wb3J0IGFycmF5TGlrZUtleXMgZnJvbSAnLi9fYXJyYXlMaWtlS2V5cy5qcyc7XG5pbXBvcnQgYmFzZUtleXMgZnJvbSAnLi9fYmFzZUtleXMuanMnO1xuaW1wb3J0IGlzQXJyYXlMaWtlIGZyb20gJy4vaXNBcnJheUxpa2UuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLiBTZWUgdGhlXG4gKiBbRVMgc3BlY10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5cyhuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJ10gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqXG4gKiBfLmtleXMoJ2hpJyk7XG4gKiAvLyA9PiBbJzAnLCAnMSddXG4gKi9cbmZ1bmN0aW9uIGtleXMob2JqZWN0KSB7XG4gIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QpIDogYmFzZUtleXMob2JqZWN0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQga2V5cztcbiIsImltcG9ydCBhcnJheUxpa2VLZXlzIGZyb20gJy4vX2FycmF5TGlrZUtleXMuanMnO1xuaW1wb3J0IGJhc2VLZXlzSW4gZnJvbSAnLi9fYmFzZUtleXNJbi5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGFuZCBpbmhlcml0ZWQgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogTm9uLW9iamVjdCB2YWx1ZXMgYXJlIGNvZXJjZWQgdG8gb2JqZWN0cy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXNJbihuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG5mdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QsIHRydWUpIDogYmFzZUtleXNJbihvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBrZXlzSW47XG4iLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICogLy8gPT4gW2ZhbHNlLCBmYWxzZV1cbiAqL1xuZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0dWJGYWxzZTtcbiIsImltcG9ydCBhc3NpZ25JbldpdGggZnJvbSAnLi9hc3NpZ25JbldpdGguanMnO1xuaW1wb3J0IGF0dGVtcHQgZnJvbSAnLi9hdHRlbXB0LmpzJztcbmltcG9ydCBiYXNlVmFsdWVzIGZyb20gJy4vX2Jhc2VWYWx1ZXMuanMnO1xuaW1wb3J0IGN1c3RvbURlZmF1bHRzQXNzaWduSW4gZnJvbSAnLi9fY3VzdG9tRGVmYXVsdHNBc3NpZ25Jbi5qcyc7XG5pbXBvcnQgZXNjYXBlU3RyaW5nQ2hhciBmcm9tICcuL19lc2NhcGVTdHJpbmdDaGFyLmpzJztcbmltcG9ydCBpc0Vycm9yIGZyb20gJy4vaXNFcnJvci5qcyc7XG5pbXBvcnQgaXNJdGVyYXRlZUNhbGwgZnJvbSAnLi9faXNJdGVyYXRlZUNhbGwuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcbmltcG9ydCByZUludGVycG9sYXRlIGZyb20gJy4vX3JlSW50ZXJwb2xhdGUuanMnO1xuaW1wb3J0IHRlbXBsYXRlU2V0dGluZ3MgZnJvbSAnLi90ZW1wbGF0ZVNldHRpbmdzLmpzJztcbmltcG9ydCB0b1N0cmluZyBmcm9tICcuL3RvU3RyaW5nLmpzJztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggZW1wdHkgc3RyaW5nIGxpdGVyYWxzIGluIGNvbXBpbGVkIHRlbXBsYXRlIHNvdXJjZS4gKi9cbnZhciByZUVtcHR5U3RyaW5nTGVhZGluZyA9IC9cXGJfX3AgXFwrPSAnJzsvZyxcbiAgICByZUVtcHR5U3RyaW5nTWlkZGxlID0gL1xcYihfX3AgXFwrPSkgJycgXFwrL2csXG4gICAgcmVFbXB0eVN0cmluZ1RyYWlsaW5nID0gLyhfX2VcXCguKj9cXCl8XFxiX190XFwpKSBcXCtcXG4nJzsvZztcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoXG4gKiBbRVMgdGVtcGxhdGUgZGVsaW1pdGVyc10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdGVtcGxhdGUtbGl0ZXJhbC1sZXhpY2FsLWNvbXBvbmVudHMpLlxuICovXG52YXIgcmVFc1RlbXBsYXRlID0gL1xcJFxceyhbXlxcXFx9XSooPzpcXFxcLlteXFxcXH1dKikqKVxcfS9nO1xuXG4vKiogVXNlZCB0byBlbnN1cmUgY2FwdHVyaW5nIG9yZGVyIG9mIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXG52YXIgcmVOb01hdGNoID0gLygkXikvO1xuXG4vKiogVXNlZCB0byBtYXRjaCB1bmVzY2FwZWQgY2hhcmFjdGVycyBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG52YXIgcmVVbmVzY2FwZWRTdHJpbmcgPSAvWydcXG5cXHJcXHUyMDI4XFx1MjAyOVxcXFxdL2c7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBpbGVkIHRlbXBsYXRlIGZ1bmN0aW9uIHRoYXQgY2FuIGludGVycG9sYXRlIGRhdGEgcHJvcGVydGllc1xuICogaW4gXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlcnMsIEhUTUwtZXNjYXBlIGludGVycG9sYXRlZCBkYXRhIHByb3BlcnRpZXMgaW5cbiAqIFwiZXNjYXBlXCIgZGVsaW1pdGVycywgYW5kIGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy4gRGF0YVxuICogcHJvcGVydGllcyBtYXkgYmUgYWNjZXNzZWQgYXMgZnJlZSB2YXJpYWJsZXMgaW4gdGhlIHRlbXBsYXRlLiBJZiBhIHNldHRpbmdcbiAqIG9iamVjdCBpcyBnaXZlbiwgaXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBfLnRlbXBsYXRlU2V0dGluZ3NgIHZhbHVlcy5cbiAqXG4gKiAqKk5vdGU6KiogSW4gdGhlIGRldmVsb3BtZW50IGJ1aWxkIGBfLnRlbXBsYXRlYCB1dGlsaXplc1xuICogW3NvdXJjZVVSTHNdKGh0dHA6Ly93d3cuaHRtbDVyb2Nrcy5jb20vZW4vdHV0b3JpYWxzL2RldmVsb3BlcnRvb2xzL3NvdXJjZW1hcHMvI3RvYy1zb3VyY2V1cmwpXG4gKiBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbiAqXG4gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBwcmVjb21waWxpbmcgdGVtcGxhdGVzIHNlZVxuICogW2xvZGFzaCdzIGN1c3RvbSBidWlsZHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9sb2Rhc2guY29tL2N1c3RvbS1idWlsZHMpLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIENocm9tZSBleHRlbnNpb24gc2FuZGJveGVzIHNlZVxuICogW0Nocm9tZSdzIGV4dGVuc2lvbnMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9leHRlbnNpb25zL3NhbmRib3hpbmdFdmFsKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgU3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHRlbXBsYXRlIHN0cmluZy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmVzY2FwZT1fLnRlbXBsYXRlU2V0dGluZ3MuZXNjYXBlXVxuICogIFRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyLlxuICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmV2YWx1YXRlPV8udGVtcGxhdGVTZXR0aW5ncy5ldmFsdWF0ZV1cbiAqICBUaGUgXCJldmFsdWF0ZVwiIGRlbGltaXRlci5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5pbXBvcnRzPV8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXVxuICogIEFuIG9iamVjdCB0byBpbXBvcnQgaW50byB0aGUgdGVtcGxhdGUgYXMgZnJlZSB2YXJpYWJsZXMuXG4gKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuaW50ZXJwb2xhdGU9Xy50ZW1wbGF0ZVNldHRpbmdzLmludGVycG9sYXRlXVxuICogIFRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnNvdXJjZVVSTD0ndGVtcGxhdGVTb3VyY2VzW25dJ11cbiAqICBUaGUgc291cmNlVVJMIG9mIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy52YXJpYWJsZT0nb2JqJ11cbiAqICBUaGUgZGF0YSBvYmplY3QgdmFyaWFibGUgbmFtZS5cbiAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNvbXBpbGVkIHRlbXBsYXRlIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBVc2UgdGhlIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIgdG8gY3JlYXRlIGEgY29tcGlsZWQgdGVtcGxhdGUuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyA8JT0gdXNlciAlPiEnKTtcbiAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gKiAvLyA9PiAnaGVsbG8gZnJlZCEnXG4gKlxuICogLy8gVXNlIHRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyIHRvIGVzY2FwZSBkYXRhIHByb3BlcnR5IHZhbHVlcy5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzxiPjwlLSB2YWx1ZSAlPjwvYj4nKTtcbiAqIGNvbXBpbGVkKHsgJ3ZhbHVlJzogJzxzY3JpcHQ+JyB9KTtcbiAqIC8vID0+ICc8Yj4mbHQ7c2NyaXB0Jmd0OzwvYj4nXG4gKlxuICogLy8gVXNlIHRoZSBcImV2YWx1YXRlXCIgZGVsaW1pdGVyIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdCBhbmQgZ2VuZXJhdGUgSFRNTC5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIF8uZm9yRWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+Jyk7XG4gKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAqIC8vID0+ICc8bGk+ZnJlZDwvbGk+PGxpPmJhcm5leTwvbGk+J1xuICpcbiAqIC8vIFVzZSB0aGUgaW50ZXJuYWwgYHByaW50YCBmdW5jdGlvbiBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIHByaW50KFwiaGVsbG8gXCIgKyB1c2VyKTsgJT4hJyk7XG4gKiBjb21waWxlZCh7ICd1c2VyJzogJ2Jhcm5leScgfSk7XG4gKiAvLyA9PiAnaGVsbG8gYmFybmV5ISdcbiAqXG4gKiAvLyBVc2UgdGhlIEVTIHRlbXBsYXRlIGxpdGVyYWwgZGVsaW1pdGVyIGFzIGFuIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIuXG4gKiAvLyBEaXNhYmxlIHN1cHBvcnQgYnkgcmVwbGFjaW5nIHRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gJHsgdXNlciB9IScpO1xuICogY29tcGlsZWQoeyAndXNlcic6ICdwZWJibGVzJyB9KTtcbiAqIC8vID0+ICdoZWxsbyBwZWJibGVzISdcbiAqXG4gKiAvLyBVc2UgYmFja3NsYXNoZXMgdG8gdHJlYXQgZGVsaW1pdGVycyBhcyBwbGFpbiB0ZXh0LlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCU9IFwiXFxcXDwlLSB2YWx1ZSAlXFxcXD5cIiAlPicpO1xuICogY29tcGlsZWQoeyAndmFsdWUnOiAnaWdub3JlZCcgfSk7XG4gKiAvLyA9PiAnPCUtIHZhbHVlICU+J1xuICpcbiAqIC8vIFVzZSB0aGUgYGltcG9ydHNgIG9wdGlvbiB0byBpbXBvcnQgYGpRdWVyeWAgYXMgYGpxYC5cbiAqIHZhciB0ZXh0ID0gJzwlIGpxLmVhY2godXNlcnMsIGZ1bmN0aW9uKHVzZXIpIHsgJT48bGk+PCUtIHVzZXIgJT48L2xpPjwlIH0pOyAlPic7XG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKHRleHQsIHsgJ2ltcG9ydHMnOiB7ICdqcSc6IGpRdWVyeSB9IH0pO1xuICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAqXG4gKiAvLyBVc2UgdGhlIGBzb3VyY2VVUkxgIG9wdGlvbiB0byBzcGVjaWZ5IGEgY3VzdG9tIHNvdXJjZVVSTCBmb3IgdGhlIHRlbXBsYXRlLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gPCU9IHVzZXIgJT4hJywgeyAnc291cmNlVVJMJzogJy9iYXNpYy9ncmVldGluZy5qc3QnIH0pO1xuICogY29tcGlsZWQoZGF0YSk7XG4gKiAvLyA9PiBGaW5kIHRoZSBzb3VyY2Ugb2YgXCJncmVldGluZy5qc3RcIiB1bmRlciB0aGUgU291cmNlcyB0YWIgb3IgUmVzb3VyY2VzIHBhbmVsIG9mIHRoZSB3ZWIgaW5zcGVjdG9yLlxuICpcbiAqIC8vIFVzZSB0aGUgYHZhcmlhYmxlYCBvcHRpb24gdG8gZW5zdXJlIGEgd2l0aC1zdGF0ZW1lbnQgaXNuJ3QgdXNlZCBpbiB0aGUgY29tcGlsZWQgdGVtcGxhdGUuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoaSA8JT0gZGF0YS51c2VyICU+IScsIHsgJ3ZhcmlhYmxlJzogJ2RhdGEnIH0pO1xuICogY29tcGlsZWQuc291cmNlO1xuICogLy8gPT4gZnVuY3Rpb24oZGF0YSkge1xuICogLy8gICB2YXIgX190LCBfX3AgPSAnJztcbiAqIC8vICAgX19wICs9ICdoaSAnICsgKChfX3QgPSAoIGRhdGEudXNlciApKSA9PSBudWxsID8gJycgOiBfX3QpICsgJyEnO1xuICogLy8gICByZXR1cm4gX19wO1xuICogLy8gfVxuICpcbiAqIC8vIFVzZSBjdXN0b20gdGVtcGxhdGUgZGVsaW1pdGVycy5cbiAqIF8udGVtcGxhdGVTZXR0aW5ncy5pbnRlcnBvbGF0ZSA9IC97eyhbXFxzXFxTXSs/KX19L2c7XG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyB7eyB1c2VyIH19IScpO1xuICogY29tcGlsZWQoeyAndXNlcic6ICdtdXN0YWNoZScgfSk7XG4gKiAvLyA9PiAnaGVsbG8gbXVzdGFjaGUhJ1xuICpcbiAqIC8vIFVzZSB0aGUgYHNvdXJjZWAgcHJvcGVydHkgdG8gaW5saW5lIGNvbXBpbGVkIHRlbXBsYXRlcyBmb3IgbWVhbmluZ2Z1bFxuICogLy8gbGluZSBudW1iZXJzIGluIGVycm9yIG1lc3NhZ2VzIGFuZCBzdGFjayB0cmFjZXMuXG4gKiBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnanN0LmpzJyksICdcXFxuICogICB2YXIgSlNUID0ge1xcXG4gKiAgICAgXCJtYWluXCI6ICcgKyBfLnRlbXBsYXRlKG1haW5UZXh0KS5zb3VyY2UgKyAnXFxcbiAqICAgfTtcXFxuICogJyk7XG4gKi9cbmZ1bmN0aW9uIHRlbXBsYXRlKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpIHtcbiAgLy8gQmFzZWQgb24gSm9obiBSZXNpZydzIGB0bXBsYCBpbXBsZW1lbnRhdGlvblxuICAvLyAoaHR0cDovL2Vqb2huLm9yZy9ibG9nL2phdmFzY3JpcHQtbWljcm8tdGVtcGxhdGluZy8pXG4gIC8vIGFuZCBMYXVyYSBEb2t0b3JvdmEncyBkb1QuanMgKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxuICB2YXIgc2V0dGluZ3MgPSB0ZW1wbGF0ZVNldHRpbmdzLmltcG9ydHMuXy50ZW1wbGF0ZVNldHRpbmdzIHx8IHRlbXBsYXRlU2V0dGluZ3M7XG5cbiAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpKSB7XG4gICAgb3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgfVxuICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICBvcHRpb25zID0gYXNzaWduSW5XaXRoKHt9LCBvcHRpb25zLCBzZXR0aW5ncywgY3VzdG9tRGVmYXVsdHNBc3NpZ25Jbik7XG5cbiAgdmFyIGltcG9ydHMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMuaW1wb3J0cywgc2V0dGluZ3MuaW1wb3J0cywgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiksXG4gICAgICBpbXBvcnRzS2V5cyA9IGtleXMoaW1wb3J0cyksXG4gICAgICBpbXBvcnRzVmFsdWVzID0gYmFzZVZhbHVlcyhpbXBvcnRzLCBpbXBvcnRzS2V5cyk7XG5cbiAgdmFyIGlzRXNjYXBpbmcsXG4gICAgICBpc0V2YWx1YXRpbmcsXG4gICAgICBpbmRleCA9IDAsXG4gICAgICBpbnRlcnBvbGF0ZSA9IG9wdGlvbnMuaW50ZXJwb2xhdGUgfHwgcmVOb01hdGNoLFxuICAgICAgc291cmNlID0gXCJfX3AgKz0gJ1wiO1xuXG4gIC8vIENvbXBpbGUgdGhlIHJlZ2V4cCB0byBtYXRjaCBlYWNoIGRlbGltaXRlci5cbiAgdmFyIHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcbiAgICAob3B0aW9ucy5lc2NhcGUgfHwgcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgIGludGVycG9sYXRlLnNvdXJjZSArICd8JyArXG4gICAgKGludGVycG9sYXRlID09PSByZUludGVycG9sYXRlID8gcmVFc1RlbXBsYXRlIDogcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgIChvcHRpb25zLmV2YWx1YXRlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wkJ1xuICAsICdnJyk7XG5cbiAgLy8gVXNlIGEgc291cmNlVVJMIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICAvLyBUaGUgc291cmNlVVJMIGdldHMgaW5qZWN0ZWQgaW50byB0aGUgc291cmNlIHRoYXQncyBldmFsLWVkLCBzbyBiZSBjYXJlZnVsXG4gIC8vIHdpdGggbG9va3VwIChpbiBjYXNlIG9mIGUuZy4gcHJvdG90eXBlIHBvbGx1dGlvbiksIGFuZCBzdHJpcCBuZXdsaW5lcyBpZiBhbnkuXG4gIC8vIEEgbmV3bGluZSB3b3VsZG4ndCBiZSBhIHZhbGlkIHNvdXJjZVVSTCBhbnl3YXksIGFuZCBpdCdkIGVuYWJsZSBjb2RlIGluamVjdGlvbi5cbiAgdmFyIHNvdXJjZVVSTCA9IGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3NvdXJjZVVSTCcpXG4gICAgPyAoJy8vIyBzb3VyY2VVUkw9JyArXG4gICAgICAgKG9wdGlvbnMuc291cmNlVVJMICsgJycpLnJlcGxhY2UoL1tcXHJcXG5dL2csICcgJykgK1xuICAgICAgICdcXG4nKVxuICAgIDogJyc7XG5cbiAgc3RyaW5nLnJlcGxhY2UocmVEZWxpbWl0ZXJzLCBmdW5jdGlvbihtYXRjaCwgZXNjYXBlVmFsdWUsIGludGVycG9sYXRlVmFsdWUsIGVzVGVtcGxhdGVWYWx1ZSwgZXZhbHVhdGVWYWx1ZSwgb2Zmc2V0KSB7XG4gICAgaW50ZXJwb2xhdGVWYWx1ZSB8fCAoaW50ZXJwb2xhdGVWYWx1ZSA9IGVzVGVtcGxhdGVWYWx1ZSk7XG5cbiAgICAvLyBFc2NhcGUgY2hhcmFjdGVycyB0aGF0IGNhbid0IGJlIGluY2x1ZGVkIGluIHN0cmluZyBsaXRlcmFscy5cbiAgICBzb3VyY2UgKz0gc3RyaW5nLnNsaWNlKGluZGV4LCBvZmZzZXQpLnJlcGxhY2UocmVVbmVzY2FwZWRTdHJpbmcsIGVzY2FwZVN0cmluZ0NoYXIpO1xuXG4gICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXG4gICAgaWYgKGVzY2FwZVZhbHVlKSB7XG4gICAgICBpc0VzY2FwaW5nID0gdHJ1ZTtcbiAgICAgIHNvdXJjZSArPSBcIicgK1xcbl9fZShcIiArIGVzY2FwZVZhbHVlICsgXCIpICtcXG4nXCI7XG4gICAgfVxuICAgIGlmIChldmFsdWF0ZVZhbHVlKSB7XG4gICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xuICAgICAgc291cmNlICs9IFwiJztcXG5cIiArIGV2YWx1YXRlVmFsdWUgKyBcIjtcXG5fX3AgKz0gJ1wiO1xuICAgIH1cbiAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xuICAgICAgc291cmNlICs9IFwiJyArXFxuKChfX3QgPSAoXCIgKyBpbnRlcnBvbGF0ZVZhbHVlICsgXCIpKSA9PSBudWxsID8gJycgOiBfX3QpICtcXG4nXCI7XG4gICAgfVxuICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xuXG4gICAgLy8gVGhlIEpTIGVuZ2luZSBlbWJlZGRlZCBpbiBBZG9iZSBwcm9kdWN0cyBuZWVkcyBgbWF0Y2hgIHJldHVybmVkIGluXG4gICAgLy8gb3JkZXIgdG8gcHJvZHVjZSB0aGUgY29ycmVjdCBgb2Zmc2V0YCB2YWx1ZS5cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH0pO1xuXG4gIHNvdXJjZSArPSBcIic7XFxuXCI7XG5cbiAgLy8gSWYgYHZhcmlhYmxlYCBpcyBub3Qgc3BlY2lmaWVkIHdyYXAgYSB3aXRoLXN0YXRlbWVudCBhcm91bmQgdGhlIGdlbmVyYXRlZFxuICAvLyBjb2RlIHRvIGFkZCB0aGUgZGF0YSBvYmplY3QgdG8gdGhlIHRvcCBvZiB0aGUgc2NvcGUgY2hhaW4uXG4gIC8vIExpa2Ugd2l0aCBzb3VyY2VVUkwsIHdlIHRha2UgY2FyZSB0byBub3QgY2hlY2sgdGhlIG9wdGlvbidzIHByb3RvdHlwZSxcbiAgLy8gYXMgdGhpcyBjb25maWd1cmF0aW9uIGlzIGEgY29kZSBpbmplY3Rpb24gdmVjdG9yLlxuICB2YXIgdmFyaWFibGUgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsICd2YXJpYWJsZScpICYmIG9wdGlvbnMudmFyaWFibGU7XG4gIGlmICghdmFyaWFibGUpIHtcbiAgICBzb3VyY2UgPSAnd2l0aCAob2JqKSB7XFxuJyArIHNvdXJjZSArICdcXG59XFxuJztcbiAgfVxuICAvLyBDbGVhbnVwIGNvZGUgYnkgc3RyaXBwaW5nIGVtcHR5IHN0cmluZ3MuXG4gIHNvdXJjZSA9IChpc0V2YWx1YXRpbmcgPyBzb3VyY2UucmVwbGFjZShyZUVtcHR5U3RyaW5nTGVhZGluZywgJycpIDogc291cmNlKVxuICAgIC5yZXBsYWNlKHJlRW1wdHlTdHJpbmdNaWRkbGUsICckMScpXG4gICAgLnJlcGxhY2UocmVFbXB0eVN0cmluZ1RyYWlsaW5nLCAnJDE7Jyk7XG5cbiAgLy8gRnJhbWUgY29kZSBhcyB0aGUgZnVuY3Rpb24gYm9keS5cbiAgc291cmNlID0gJ2Z1bmN0aW9uKCcgKyAodmFyaWFibGUgfHwgJ29iaicpICsgJykge1xcbicgK1xuICAgICh2YXJpYWJsZVxuICAgICAgPyAnJ1xuICAgICAgOiAnb2JqIHx8IChvYmogPSB7fSk7XFxuJ1xuICAgICkgK1xuICAgIFwidmFyIF9fdCwgX19wID0gJydcIiArXG4gICAgKGlzRXNjYXBpbmdcbiAgICAgICA/ICcsIF9fZSA9IF8uZXNjYXBlJ1xuICAgICAgIDogJydcbiAgICApICtcbiAgICAoaXNFdmFsdWF0aW5nXG4gICAgICA/ICcsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luO1xcbicgK1xuICAgICAgICBcImZ1bmN0aW9uIHByaW50KCkgeyBfX3AgKz0gX19qLmNhbGwoYXJndW1lbnRzLCAnJykgfVxcblwiXG4gICAgICA6ICc7XFxuJ1xuICAgICkgK1xuICAgIHNvdXJjZSArXG4gICAgJ3JldHVybiBfX3BcXG59JztcblxuICB2YXIgcmVzdWx0ID0gYXR0ZW1wdChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24oaW1wb3J0c0tleXMsIHNvdXJjZVVSTCArICdyZXR1cm4gJyArIHNvdXJjZSlcbiAgICAgIC5hcHBseSh1bmRlZmluZWQsIGltcG9ydHNWYWx1ZXMpO1xuICB9KTtcblxuICAvLyBQcm92aWRlIHRoZSBjb21waWxlZCBmdW5jdGlvbidzIHNvdXJjZSBieSBpdHMgYHRvU3RyaW5nYCBtZXRob2Qgb3JcbiAgLy8gdGhlIGBzb3VyY2VgIHByb3BlcnR5IGFzIGEgY29udmVuaWVuY2UgZm9yIGlubGluaW5nIGNvbXBpbGVkIHRlbXBsYXRlcy5cbiAgcmVzdWx0LnNvdXJjZSA9IHNvdXJjZTtcbiAgaWYgKGlzRXJyb3IocmVzdWx0KSkge1xuICAgIHRocm93IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCB0ZW1wbGF0ZTtcbiIsImltcG9ydCBlc2NhcGUgZnJvbSAnLi9lc2NhcGUuanMnO1xuaW1wb3J0IHJlRXNjYXBlIGZyb20gJy4vX3JlRXNjYXBlLmpzJztcbmltcG9ydCByZUV2YWx1YXRlIGZyb20gJy4vX3JlRXZhbHVhdGUuanMnO1xuaW1wb3J0IHJlSW50ZXJwb2xhdGUgZnJvbSAnLi9fcmVJbnRlcnBvbGF0ZS5qcyc7XG5cbi8qKlxuICogQnkgZGVmYXVsdCwgdGhlIHRlbXBsYXRlIGRlbGltaXRlcnMgdXNlZCBieSBsb2Rhc2ggYXJlIGxpa2UgdGhvc2UgaW5cbiAqIGVtYmVkZGVkIFJ1YnkgKEVSQikgYXMgd2VsbCBhcyBFUzIwMTUgdGVtcGxhdGUgc3RyaW5ncy4gQ2hhbmdlIHRoZVxuICogZm9sbG93aW5nIHRlbXBsYXRlIHNldHRpbmdzIHRvIHVzZSBhbHRlcm5hdGl2ZSBkZWxpbWl0ZXJzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG52YXIgdGVtcGxhdGVTZXR0aW5ncyA9IHtcblxuICAvKipcbiAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBiZSBIVE1MLWVzY2FwZWQuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICogQHR5cGUge1JlZ0V4cH1cbiAgICovXG4gICdlc2NhcGUnOiByZUVzY2FwZSxcblxuICAvKipcbiAgICogVXNlZCB0byBkZXRlY3QgY29kZSB0byBiZSBldmFsdWF0ZWQuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICogQHR5cGUge1JlZ0V4cH1cbiAgICovXG4gICdldmFsdWF0ZSc6IHJlRXZhbHVhdGUsXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gaW5qZWN0LlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAqIEB0eXBlIHtSZWdFeHB9XG4gICAqL1xuICAnaW50ZXJwb2xhdGUnOiByZUludGVycG9sYXRlLFxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHJlZmVyZW5jZSB0aGUgZGF0YSBvYmplY3QgaW4gdGhlIHRlbXBsYXRlIHRleHQuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICovXG4gICd2YXJpYWJsZSc6ICcnLFxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGltcG9ydCB2YXJpYWJsZXMgaW50byB0aGUgY29tcGlsZWQgdGVtcGxhdGUuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gICdpbXBvcnRzJzoge1xuXG4gICAgLyoqXG4gICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGBsb2Rhc2hgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXG4gICAgICogQHR5cGUge0Z1bmN0aW9ufVxuICAgICAqL1xuICAgICdfJzogeyAnZXNjYXBlJzogZXNjYXBlIH1cbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgdGVtcGxhdGVTZXR0aW5ncztcbiIsImltcG9ydCBiYXNlVG9TdHJpbmcgZnJvbSAnLi9fYmFzZVRvU3RyaW5nLmpzJztcblxuLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nLiBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgZm9yIGBudWxsYFxuICogYW5kIGB1bmRlZmluZWRgIHZhbHVlcy4gVGhlIHNpZ24gb2YgYC0wYCBpcyBwcmVzZXJ2ZWQuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnRvU3RyaW5nKG51bGwpO1xuICogLy8gPT4gJydcbiAqXG4gKiBfLnRvU3RyaW5nKC0wKTtcbiAqIC8vID0+ICctMCdcbiAqXG4gKiBfLnRvU3RyaW5nKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAnMSwyLDMnXG4gKi9cbmZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiBiYXNlVG9TdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b1N0cmluZztcbiIsIm1vZHVsZS5leHBvcnRzID0gXCIvKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIEdlbmVyaWMgU3R5bGVzXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbmFnLWdyaWQsIGFnLWdyaWQtYW5ndWxhciwgYWctZ3JpZC1uZzIsIGFnLWdyaWQtcG9seW1lciwgYWctZ3JpZC1hdXJlbGlhIHtcXG4gIGRpc3BsYXk6IGJsb2NrOyB9XFxuXFxuLmFnLWhpZGRlbiB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cXG5cXG4uYWctaW52aXNpYmxlIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XFxuXFxuLmFnLWZhZGVkIHtcXG4gIG9wYWNpdHk6IDAuMzsgfVxcblxcbi5hZy13aWR0aC1oYWxmIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxcblxcbi5hZy11bnNlbGVjdGFibGUge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICB1c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50OyB9XFxuXFxuLmFnLXNlbGVjdGFibGUge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dCAhaW1wb3J0YW50O1xcbiAgLW1vei11c2VyLXNlbGVjdDogdGV4dCAhaW1wb3J0YW50O1xcbiAgLW1zLXVzZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7XFxuICB1c2VyLXNlbGVjdDogdGV4dCAhaW1wb3J0YW50OyB9XFxuXFxuLmFnLXNlbGVjdC1hZ2ctZnVuYy1wb3B1cCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cXG5cXG4uYWctaW5wdXQtd3JhcHBlciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtbXMtZmxleDogMSAxIGF1dG87XFxuICBmbGV4OiAxIDEgYXV0bztcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuXFxuLmFnLXNoYWtlLWxlZnQtdG8tcmlnaHQge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7XFxuICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC4ycztcXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4ycztcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGFnLXNoYWtlLWxlZnQtdG8tcmlnaHQ7XFxuICBhbmltYXRpb24tbmFtZTogYWctc2hha2UtbGVmdC10by1yaWdodDsgfVxcblxcbkAtd2Via2l0LWtleWZyYW1lcyBhZy1zaGFrZS1sZWZ0LXRvLXJpZ2h0IHtcXG4gIGZyb20ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcXG4gICAgcGFkZGluZy1yaWdodDogMnB4OyB9XFxuICB0byB7XFxuICAgIHBhZGRpbmctbGVmdDogMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7IH0gfVxcblxcbkBrZXlmcmFtZXMgYWctc2hha2UtbGVmdC10by1yaWdodCB7XFxuICBmcm9tIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDJweDsgfVxcbiAgdG8ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDJweDtcXG4gICAgcGFkZGluZy1yaWdodDogNnB4OyB9IH1cXG5cXG4uYWctcm9vdC13cmFwcGVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgLmFnLXJvb3Qtd3JhcHBlci5hZy1sYXlvdXQtbm9ybWFsIHtcXG4gICAgaGVpZ2h0OiAxMDAlOyB9XFxuICAuYWctcm9vdC13cmFwcGVyIC5hZy13YXRlcm1hcmsge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGJvdHRvbTogMTBweDtcXG4gICAgcmlnaHQ6IDI1cHg7XFxuICAgIG9wYWNpdHk6IDAuNTtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2Utb3V0IDNzO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2Utb3V0IDNzOyB9XFxuICAgIC5hZy1yb290LXdyYXBwZXIgLmFnLXdhdGVybWFyazpiZWZvcmUge1xcbiAgICAgIGNvbnRlbnQ6ICcnO1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NEtQSE4yWnlCM2FXUjBhRDBpTkRrMGNIZ2lJR2hsYVdkb2REMGlNak01Y0hnaUlIWnBaWGRDYjNnOUlqQWdNQ0EwT1RRZ01qTTVJaUIyWlhKemFXOXVQU0l4TGpFaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJZ2VHMXNibk02ZUd4cGJtczlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1RrdmVHeHBibXNpUGdvZ0lDQWdQQ0V0TFNCSFpXNWxjbUYwYjNJNklGTnJaWFJqYUNBME55NHhJQ2cwTlRReU1pa2dMU0JvZEhSd09pOHZkM2QzTG1KdmFHVnRhV0Z1WTI5a2FXNW5MbU52YlM5emEyVjBZMmdnTFMwK0NpQWdJQ0E4ZEdsMGJHVStURzluYnp3dmRHbDBiR1UrQ2lBZ0lDQThaR1Z6WXo1RGNtVmhkR1ZrSUhkcGRHZ2dVMnRsZEdOb0xqd3ZaR1Z6WXo0S0lDQWdJRHhrWldaelBnb2dJQ0FnSUNBZ0lEeHdZWFJvSUdROUlrMHdMall4TWpnME9Ua3pNU3d4TURnZ1REQXVOakV5T0RRNU9UTXhMRFkzTGpRMU9UWXpOelFnVERBdU5qRXlPRFE1T1RNeExEWTNMalExT1RZek56UWdRekF1TmpFeU9EUTVPVE14TERZeUxqRXdNRFkxTXpZZ015NDBOekU0TXpNM09DdzFOeTR4TkRnM05EZ3pJRGd1TVRFeU9EUTVPVE1zTlRRdU5EWTVNalUyTkNCTU9UZ3VNekEyTkRJMUxESXVNemsxT1RjeE5UY2dURGs0TGpNd05qUXlOU3d5TGpNNU5UazNNVFUzSUVNeE1ESXVPVFEzTkRReExDMHdMakk0TXpVeU1ETTFPQ0F4TURndU5qWTFOREE1TEMwd0xqSTRNelV5TURNMU9DQXhNVE11TXpBMk5ESTFMREl1TXprMU9UY3hOVGNnVERFeE15NHpNRFkwTWpVc01pNHpPVFU1TnpFMU55Qk1NakF6TGpVc05UUXVORFk1TWpVMk5DQk1NakF6TGpVc05UUXVORFk1TWpVMk5DQkRNakE0TGpFME1UQXhOaXcxTnk0eE5EZzNORGd6SURJeE1TdzJNaTR4TURBMk5UTTJJREl4TVN3Mk55NDBOVGsyTXpjMElFd3lNVEVzTVRNNElFd3hPREVzTVRNNElFd3hPREF1T1RrM01EUXhMRGt6TGprNU9UazVPVGdnVERFNE1DNDVPVFl3TXpJc09UTXVPVGs1T1RrNU9TQkRNVGd3TGprNU5UUTNOU3c0TlM0M01UWXhNakkySURFM05DNHlOems1TURrc056a3VNREF4TURBNE55QXhOalV1T1RrMk1ETXlMRGM1TGpBd01UQXdPRGNnVERFeU1pdzNPQzQ1T1RrNU9UazVJRU14TVRNdU56RTFOekk1TERjNExqazVPVGs1T1RrZ01UQTNMRGcxTGpjeE5UY3lPRFlnTVRBM0xEa3pMams1T1RrNU9Ua2dUREV3Tnl3eE16WXVNREUxTmpJeklFd3hNRGNzTVRNMkxqQXhOVFl5TXlCRE1UQTNMREUwTkM0eU9UazRPVFVnTVRFekxqY3hOVGN5T1N3eE5URXVNREUxTmpJeklERXlNaXd4TlRFdU1ERTFOakl6SUV3eE5qZ3NNVFV4TGpBeE5UWXlNeUJNTVRZNExERTJNeUJETVRZNExERTJOQzQyTlRZNE5UUWdNVFkyTGpZMU5qZzFOQ3d4TmpZZ01UWTFMREUyTmlCTU1USXdMREUyTmlCTU1USXdMREUzT1NCTU1UWTFMams1TmpBek1pd3hOemtnVERFMk5TNDVPVFl3TXpJc01UYzRMams1TnpnM055QkRNVGMwTGpJM09UUTNOQ3d4TnpndU9UazNPRGMzSURFNE1DNDVPVFE0Tml3eE56SXVNamd6TkRReUlERTRNQzQ1T1RZd016SXNNVFkwSUV3eE9ERXNNVFV3TGprMk1EVTFOQ0JNTWpFeExERTFNQzQ1TmpBMU5UUWdUREl4TVN3eE56RXVOakEyTWpBM0lFd3lNVEVzTVRjeExqWXdOakl3TnlCRE1qRXhMREUzTmk0NU5qVXhPVEVnTWpBNExqRTBNVEF4Tml3eE9ERXVPVEUzTURrMklESXdNeTQxTERFNE5DNDFPVFkxT0RnZ1RERXhNeTR6TURZME1qVXNNak0yTGpZMk9UZzNNeUJNTVRFekxqTXdOalF5TlN3eU16WXVOalk1T0RjeklFTXhNRGd1TmpZMU5EQTVMREl6T1M0ek5Ea3pOalVnTVRBeUxqazBOelEwTVN3eU16a3VNelE1TXpZMUlEazRMak13TmpReU5Td3lNell1TmpZNU9EY3pJRXc0TGpFeE1qZzBPVGt6TERFNE5DNDFPVFkxT0RnZ1REZ3VNVEV5T0RRNU9UTXNNVGcwTGpVNU5qVTRPQ0JETXk0ME56RTRNek0zT0N3eE9ERXVPVEUzTURrMklEQXVOakV5T0RRNU9UTXhMREUzTmk0NU5qVXhPVEVnTUM0Mk1USTRORGs1TXpFc01UY3hMall3TmpJd055Qk1NQzQyTVRJNE5EazVNekVzTVRJeElFd3lOeXd4TWpFZ1RESTNMREV6TmlCRE1qY3NNVFEwTGpJNE5ESTNNU0F6TXk0M01UVTNNamczTERFMU1TQTBNaXd4TlRFZ1REUXlMREUxTVNCTU1UQXdMREUxTVNCTU1UQXdMRGswSUVNeE1EQXNPRFV1TnpFMU56STRPQ0E1TXk0eU9EUXlOekV5TERjNUlEZzFMRGM1SUV3eU55dzNPU0JNTWpjc09USWdURGcwTERreUlFTTROUzQyTlRZNE5UUXlMRGt5SURnM0xEa3pMak0wTXpFME5UZ2dPRGNzT1RVZ1REZzNMRGsxSUV3NE55d3hNRGdnVERBdU5qRXlPRFE1T1RNeExERXdPQ0JhSWlCcFpEMGljR0YwYUMweElqNDhMM0JoZEdnK0NpQWdJQ0E4TDJSbFpuTStDaUFnSUNBOFp5QnBaRDBpVTNsdFltOXNjeUlnYzNSeWIydGxQU0p1YjI1bElpQnpkSEp2YTJVdGQybGtkR2c5SWpFaUlHWnBiR3c5SW01dmJtVWlJR1pwYkd3dGNuVnNaVDBpWlhabGJtOWtaQ0krQ2lBZ0lDQWdJQ0FnUEdjZ2FXUTlJa3h2WjI4aVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTkRjM0xEVTFJRXcwT1RRc05UVWdURFE1TkN3eE5URWdURFF6TlN3eE5URWdRelF5Tmk0M01UVTNNamtzTVRVeElEUXlNQ3d4TkRRdU1qZzBNamN4SURReU1Dd3hNellnVERReU1DdzVOaUJETkRJd0xEZzNMamN4TlRjeU9EZ2dOREkyTGpjeE5UY3lPU3c0TVNBME16VXNPREVnVERRek5TdzRNU0JNTkRjM0xEZ3hJRXcwTnpjc05UVWdXaUJOTkRRd0xEazRJRU0wTXpndU16UXpNVFEyTERrNElEUXpOeXc1T1M0ek5ETXhORFU0SURRek55d3hNREVnVERRek55d3hNekVnUXpRek55d3hNekl1TmpVMk9EVTBJRFF6T0M0ek5ETXhORFlzTVRNMElEUTBNQ3d4TXpRZ1REUTNOeXd4TXpRZ1REUTNOeXc1T0NCTU5EUXdMRGs0SUZvaUlHbGtQU0prSWlCbWFXeHNQU0lqUmtaR1JrWkdJajQ4TDNCaGRHZytDaUFnSUNBZ0lDQWdJQ0FnSUR4bklHbGtQU0pwSWlCMGNtRnVjMlp2Y20wOUluUnlZVzV6YkdGMFpTZ3pPVFl1TURBd01EQXdMQ0ExTlM0d01EQXdNREFwSWo0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4d2IyeDVaMjl1SUdsa1BTSlFZWFJvTFRZaUlHWnBiR3c5SWlOR1JrWkdSa1lpSUhCdmFXNTBjejBpTUNBeU5pQXhOeUF5TmlBeE55QTVOaUF3SURrMklqNDhMM0J2YkhsbmIyNCtDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjRzlzZVdkdmJpQnBaRDBpVUdGMGFDMDNJaUJtYVd4c1BTSWpSVEV4UmpJeUlpQndiMmx1ZEhNOUlqQWdNUzR4TXpZNE5qZ3pPR1V0TVRNZ01UY2dNUzR4TXpZNE5qZ3pPR1V0TVRNZ01UY2dNVGNnTUNBeE55SStQQzl3YjJ4NVoyOXVQZ29nSUNBZ0lDQWdJQ0FnSUNBOEwyYytDaUFnSUNBZ0lDQWdJQ0FnSUR4d1lYUm9JR1E5SWswek16RXNNVFV4SUV3ek5EZ3NNVFV4SUV3ek5EZ3NNVEF4SUV3ek5EZ3NNVEF4SUVNek5EZ3NPVGt1TXpRek1UUTFPQ0F6TkRrdU16UXpNVFEyTERrNElETTFNU3c1T0NCTU16ZzVMRGs0SUV3ek9Ea3NPREVnVERNME5pdzRNU0JNTXpRMkxEZ3hJRU16TXpjdU56RTFOekk1TERneElETXpNU3c0Tnk0M01UVTNNamc0SURNek1TdzVOaUJNTXpNeExERTFNU0JhSWlCcFpEMGljaUlnWm1sc2JEMGlJMFpHUmtaR1JpSStQQzl3WVhSb1Bnb2dJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTXpJMExEZzJJRXd6TWpRc056WWdURE15TkN3M05pQkRNekkwTERZM0xqY3hOVGN5T0RnZ016RTNMakk0TkRJM01TdzJNU0F6TURrc05qRWdUREkwT1N3Mk1TQk1NalE1TERZeElFTXlOREF1TnpFMU56STVMRFl4SURJek5DdzJOeTQzTVRVM01qZzRJREl6TkN3M05pQk1Nak0wTERFek5pQk1Nak0wTERFek5pQkRNak0wTERFME5DNHlPRFF5TnpFZ01qUXdMamN4TlRjeU9Td3hOVEVnTWpRNUxERTFNU0JNTXpBNUxERTFNU0JNTXpBNUxERTFNU0JETXpFM0xqSTROREkzTVN3eE5URWdNekkwTERFME5DNHlPRFF5TnpFZ016STBMREV6TmlCTU16STBMREV3TUNCTU1qZzNMREV3TUNCTU1qZzNMREV4TnlCTU16QTNMREV4TnlCTU16QTNMREV6TVNCTU16QTNMREV6TVNCRE16QTNMREV6TWk0Mk5UWTROVFFnTXpBMUxqWTFOamcxTkN3eE16UWdNekEwTERFek5DQk1NalUwTERFek5DQk1NalUwTERFek5DQkRNalV5TGpNME16RTBOaXd4TXpRZ01qVXhMREV6TWk0Mk5UWTROVFFnTWpVeExERXpNU0JNTWpVeExEZ3hJRXd5TlRFc09ERWdRekkxTVN3M09TNHpORE14TkRVNElESTFNaTR6TkRNeE5EWXNOemdnTWpVMExEYzRJRXd6TURRc056Z2dURE13TkN3M09DQkRNekExTGpZMU5qZzFOQ3czT0NBek1EY3NOemt1TXpRek1UUTFPQ0F6TURjc09ERWdURE13Tnl3NE5pQk1NekkwTERnMklGb2lJR2xrUFNKSElpQm1hV3hzUFNJalJrWkdSa1pHSWo0OEwzQmhkR2crQ2lBZ0lDQWdJQ0FnSUNBZ0lEeG5JR2xrUFNKaFp5SStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThaeUJwWkQwaVEyOXRZbWx1WldRdFUyaGhjR1VpUGdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeHRZWE5ySUdsa1BTSnRZWE5yTFRJaUlHWnBiR3c5SW5kb2FYUmxJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSFZ6WlNCNGJHbHVhenBvY21WbVBTSWpjR0YwYUMweElqNDhMM1Z6WlQ0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThMMjFoYzJzK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQSFZ6WlNCbWFXeHNQU0lqUlRFeFJqSXlJaUI0YkdsdWF6cG9jbVZtUFNJamNHRjBhQzB4SWo0OEwzVnpaVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHd2Wno0S0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4eVpXTjBJR2xrUFNKbklpQm1hV3hzUFNJalJURXhSakl5SWlCNFBTSXhNakFpSUhrOUlqa3lJaUIzYVdSMGFEMGlORGdpSUdobGFXZG9kRDBpTkRZaUlISjRQU0l6SWo0OEwzSmxZM1ErQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTkRBc01USXhJRXc0Tnl3eE1qRWdURGczTERFek9DQk1ORE1zTVRNNElFdzBNeXd4TXpnZ1F6UXhMak0wTXpFME5UZ3NNVE00SURRd0xERXpOaTQyTlRZNE5UUWdOREFzTVRNMUlFdzBNQ3d4TWpFZ1dpSWdhV1E5SWtOdmJXSnBibVZrTFZOb1lYQmxJaUJtYVd4c1BTSWpSVEV4UmpJeUlqNDhMM0JoZEdnK0NpQWdJQ0FnSUNBZ0lDQWdJRHd2Wno0S0lDQWdJQ0FnSUNBOEwyYytDaUFnSUNBOEwyYytDand2YzNablBnPT0pO1xcbiAgICAgIC13ZWJraXQtZmlsdGVyOiBpbnZlcnQoNTAlKTtcXG4gICAgICBmaWx0ZXI6IGludmVydCg1MCUpO1xcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICAgICAgYmFja2dyb3VuZC1zaXplOiAxMTBweCA2MHB4O1xcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICAgIGhlaWdodDogNjBweDtcXG4gICAgICB3aWR0aDogMTEwcHg7IH1cXG4gICAgLmFnLXJvb3Qtd3JhcHBlciAuYWctd2F0ZXJtYXJrIC5hZy13YXRlcm1hcmstdGV4dCB7XFxuICAgICAgb3BhY2l0eTogMC41O1xcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgICAgIGZvbnQtZmFtaWx5OiBJbXBhY3Q7XFxuICAgICAgZm9udC1zaXplOiAxOXB4OyB9XFxuXFxuLmFnLXJvb3Qtd3JhcHBlci1ib2R5IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cXG4gIC5hZy1yb290LXdyYXBwZXItYm9keS5hZy1sYXlvdXQtbm9ybWFsIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgaGVpZ2h0OiAwO1xcbiAgICBtaW4taGVpZ2h0OiAwOyB9XFxuXFxuLmFnLXJvb3Qge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cXG4gIC5hZy1yb290LmFnLWxheW91dC1ub3JtYWwsIC5hZy1yb290LmFnLWxheW91dC1hdXRvLWhlaWdodCB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgZmxleDogMSAxIGF1dG87XFxuICAgIHdpZHRoOiAwOyB9XFxuICAuYWctcm9vdC5hZy1sYXlvdXQtbm9ybWFsIHtcXG4gICAgaGVpZ2h0OiAxMDAlOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBWaWV3cG9ydHNcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLWhlYWRlci12aWV3cG9ydCxcXG4uYWctZmxvYXRpbmctdG9wLXZpZXdwb3J0LFxcbi5hZy1ib2R5LXZpZXdwb3J0LFxcbi5hZy1waW5uZWQtbGVmdC1jb2xzLXZpZXdwb3J0LFxcbi5hZy1jZW50ZXItY29scy12aWV3cG9ydCxcXG4uYWctcGlubmVkLXJpZ2h0LWNvbHMtdmlld3BvcnQsXFxuLmFnLWZsb2F0aW5nLWJvdHRvbS12aWV3cG9ydCxcXG4uYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC12aWV3cG9ydCxcXG4uYWctdmlydHVhbC1saXN0LXZpZXdwb3J0IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG1pbi13aWR0aDogMHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtbXMtZmxleDogMSAxIGF1dG87XFxuICBmbGV4OiAxIDEgYXV0bzsgfVxcblxcbi5hZy1ib2R5LXZpZXdwb3J0IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4OyB9XFxuICAuYWctYm9keS12aWV3cG9ydC5hZy1sYXlvdXQtbm9ybWFsIHtcXG4gICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XFxuICAuYWctYm9keS12aWV3cG9ydDpub3QoLmFnLWxheW91dC1wcmludCkuYWctZm9yY2UtdmVydGljYWwtc2Nyb2xsIHtcXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XFxuXFxuLmFnLXBpbm5lZC1sZWZ0LWNvbHMtdmlld3BvcnQsIC5hZy1waW5uZWQtcmlnaHQtY29scy12aWV3cG9ydCB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxMDAwO1xcbiAgLW1zLWZsZXgtcG9zaXRpdmU6IDEwMDA7XFxuICBmbGV4LWdyb3c6IDEwMDA7IH1cXG5cXG4uYWctY2VudGVyLWNvbHMtdmlld3BvcnQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdy14OiBhdXRvOyB9XFxuXFxuLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtdmlld3BvcnQge1xcbiAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9XFxuXFxuLmFnLXZpcnR1YWwtbGlzdC12aWV3cG9ydCB7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBDb250YWluZXJzXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1oZWFkZXItY29udGFpbmVyLFxcbi5hZy1mbG9hdGluZy10b3AtY29udGFpbmVyLFxcbi5hZy1ib2R5LWNvbnRhaW5lcixcXG4uYWctcGlubmVkLXJpZ2h0LWNvbHMtY29udGFpbmVyLFxcbi5hZy1jZW50ZXItY29scy1jb250YWluZXIsXFxuLmFnLXBpbm5lZC1sZWZ0LWNvbHMtY29udGFpbmVyLFxcbi5hZy1mbG9hdGluZy1ib3R0b20tY29udGFpbmVyLFxcbi5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLWNvbnRhaW5lcixcXG4uYWctZnVsbC13aWR0aC1jb250YWluZXIsXFxuLmFnLWZsb2F0aW5nLWJvdHRvbS1mdWxsLXdpZHRoLWNvbnRhaW5lcixcXG4uYWctdmlydHVhbC1saXN0LWNvbnRhaW5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG5cXG4uYWctaGVhZGVyLWNvbnRhaW5lciwgLmFnLWZsb2F0aW5nLXRvcC1jb250YWluZXIsIC5hZy1mbG9hdGluZy1ib3R0b20tY29udGFpbmVyIHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG5cXG4uYWctYm9keS12aWV3cG9ydCAuYWctY2VudGVyLWNvbHMtY2xpcHBlciB7XFxuICBtaW4taGVpZ2h0OiAxMDAlOyB9XFxuXFxuLmFnLWJvZHktdmlld3BvcnQuYWctbGF5b3V0LWF1dG8taGVpZ2h0IC5hZy1jZW50ZXItY29scy1jbGlwcGVyLCAuYWctYm9keS12aWV3cG9ydC5hZy1sYXlvdXQtYXV0by1oZWlnaHQgLmFnLWNlbnRlci1jb2xzLWNvbnRhaW5lciB7XFxuICBtaW4taGVpZ2h0OiA1MHB4OyB9XFxuXFxuLmFnLWJvZHktdmlld3BvcnQgLmFnLWNlbnRlci1jb2xzLWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBibG9jazsgfVxcblxcbi5hZy1ib2R5LXZpZXdwb3J0LmFnLWxheW91dC1wcmludCB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgLW1zLWZsZXg6IG5vbmU7XFxuICBmbGV4OiBub25lOyB9XFxuICAuYWctYm9keS12aWV3cG9ydC5hZy1sYXlvdXQtcHJpbnQgLmFnLWNlbnRlci1jb2xzLWNsaXBwZXIge1xcbiAgICBtaW4td2lkdGg6IDEwMCU7IH1cXG5cXG4uYWctcGlubmVkLXJpZ2h0LWNvbHMtY29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGJsb2NrOyB9XFxuXFxuLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtY29udGFpbmVyIHtcXG4gIGhlaWdodDogMTAwJTsgfVxcblxcbi5hZy1mdWxsLXdpZHRoLWNvbnRhaW5lcixcXG4uYWctZmxvYXRpbmctdG9wLWZ1bGwtd2lkdGgtY29udGFpbmVyLFxcbi5hZy1mbG9hdGluZy1ib3R0b20tZnVsbC13aWR0aC1jb250YWluZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwcHg7XFxuICBsZWZ0OiAwcHg7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcblxcbi5hZy1mdWxsLXdpZHRoLWNvbnRhaW5lciB7XFxuICB3aWR0aDogMTAwJTsgfVxcblxcbi5hZy1mbG9hdGluZy1ib3R0b20tZnVsbC13aWR0aC1jb250YWluZXIsIC5hZy1mbG9hdGluZy10b3AtZnVsbC13aWR0aC1jb250YWluZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLXZpcnR1YWwtbGlzdC1jb250YWluZXIge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogU2Nyb2xsZXJzXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1jZW50ZXItY29scy1jbGlwcGVyIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtbXMtZmxleDogMTtcXG4gIGZsZXg6IDE7XFxuICBtaW4td2lkdGg6IDA7XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuXFxuLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwge1xcbiAgbWluLWhlaWdodDogMDtcXG4gIG1pbi13aWR0aDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG5cXG4uYWctbGF5b3V0LXByaW50IC5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsIHtcXG4gIGRpc3BsYXk6IG5vbmU7IH1cXG5cXG4uYWctaG9yaXpvbnRhbC1sZWZ0LXNwYWNlciwgLmFnLWhvcml6b250YWwtcmlnaHQtc3BhY2VyIHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG1pbi13aWR0aDogMDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDEwMDA7XFxuICAtbXMtZmxleC1wb3NpdGl2ZTogMTAwMDtcXG4gIGZsZXgtZ3JvdzogMTAwMDtcXG4gIG92ZXJmbG93LXg6IHNjcm9sbDsgfVxcbiAgLmFnLWhvcml6b250YWwtbGVmdC1zcGFjZXIuYWctc2Nyb2xsZXItY29ybmVyLCAuYWctaG9yaXpvbnRhbC1yaWdodC1zcGFjZXIuYWctc2Nyb2xsZXItY29ybmVyIHtcXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBIZWFkZXJzXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1oZWFkZXIsIC5hZy1waW5uZWQtbGVmdC1oZWFkZXIsIC5hZy1waW5uZWQtcmlnaHQtaGVhZGVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG4gIC5hZy1oZWFkZXIgLmFnLWhlYWRlci1jZWxsLXNvcnRhYmxlLCAuYWctcGlubmVkLWxlZnQtaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1zb3J0YWJsZSwgLmFnLXBpbm5lZC1yaWdodC1oZWFkZXIgLmFnLWhlYWRlci1jZWxsLXNvcnRhYmxlIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuXFxuLmFnLWhlYWRlciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcblxcbi5hZy1oZWFkZXItaWNvbiB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDsgfVxcblxcbi5hZy1waW5uZWQtbGVmdC1oZWFkZXIge1xcbiAgaGVpZ2h0OiAxMDAlOyB9XFxuXFxuLmFnLXBpbm5lZC1yaWdodC1oZWFkZXIge1xcbiAgaGVpZ2h0OiAxMDAlOyB9XFxuXFxuLmFnLWhlYWRlci1yb3cge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcblxcbi5hZy1oZWFkZXItb3ZlcmxheSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxcblxcbi5hZy1oZWFkZXItY2VsbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBsaW5lLWhlaWdodDogMS41OyB9XFxuXFxuLmFnLWhlYWRlci1ncm91cC1jZWxsLWxhYmVsLCAuYWctaGVhZGVyLWNlbGwtbGFiZWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgZmxleDogMSAxIGF1dG87XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4uYWctaGVhZGVyLWNlbGwtbGFiZWwgLmFnLWhlYWRlci1jZWxsLXRleHQge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcblxcbi5hZy1udW1lcmljLWhlYWRlciAuYWctaGVhZGVyLWNlbGwtbGFiZWwge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxcblxcbi5hZy1oZWFkZXItZ3JvdXAtdGV4dCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuXFxuLmFnLWhlYWRlci1jZWxsLXJlc2l6ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiAxO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDRweDsgfVxcblxcbi5hZy1oZWFkZXItZXhwYW5kLWljb24ge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7IH1cXG5cXG4uYWctaGVhZGVyLXNlbGVjdC1hbGwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBsaW5lLWhlaWdodDogMTsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogQ29sdW1uc1xcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctY29sdW1uLW1vdmluZyAuYWctY2VsbCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgMC4ycztcXG4gIHRyYW5zaXRpb246IGxlZnQgMC4yczsgfVxcblxcbi5hZy1jb2x1bW4tbW92aW5nIC5hZy1oZWFkZXItY2VsbCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgMC4ycztcXG4gIHRyYW5zaXRpb246IGxlZnQgMC4yczsgfVxcblxcbi5hZy1jb2x1bW4tbW92aW5nIC5hZy1oZWFkZXItZ3JvdXAtY2VsbCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgMC4ycywgd2lkdGggMC4ycztcXG4gIHRyYW5zaXRpb246IGxlZnQgMC4ycywgd2lkdGggMC4yczsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogQ29sdW1uIFBhbmVsXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1jb2x1bW4tcGFuZWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gIGZsZXg6IDEgMSBhdXRvOyB9XFxuXFxuLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogNDtcXG4gIC1tcy1mbGV4LXBvc2l0aXZlOiA0O1xcbiAgZmxleC1ncm93OiA0O1xcbiAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7XFxuICBmbGV4LXNocmluazogMTtcXG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwO1xcbiAgZmxleC1iYXNpczogMDsgfVxcbiAgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICBmbGV4OiBub25lOyB9XFxuICAgIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1wcmltYXJ5LWNvbHMtaGVhZGVyLXBhbmVsIC5hZy1jb2x1bW4tbmFtZS1maWx0ZXIge1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgIGZsZXg6IDEgMSBhdXRvOyB9XFxuICAgIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1wcmltYXJ5LWNvbHMtaGVhZGVyLXBhbmVsIC5hZy1wcmltYXJ5LWNvbHMtZmlsdGVyLXdyYXBwZXIge1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgIGZsZXg6IDEgMSBhdXRvOyB9XFxuICAgICAgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwgLmFnLXByaW1hcnktY29scy1maWx0ZXItd3JhcHBlciBpbnB1dCB7XFxuICAgICAgICB3aWR0aDogMTAwJTsgfVxcbiAgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLXByaW1hcnktY29scy1saXN0LXBhbmVsIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgb3ZlcmZsb3c6IGF1dG87IH1cXG5cXG4uYWctY29sdW1uLWRyb3Age1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIHdpZHRoOiAxMDAlOyB9XFxuICAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWxpc3Qge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1saXN0IC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgICAgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1saXN0IC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLXRleHQge1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcblxcbi5hZy1jb2x1bW4tZHJvcC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgLW1zLWZsZXg6IDEgMSAwcHg7XFxuICBmbGV4OiAxIDEgMDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoO1xcbiAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XFxuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxcbiAgLmFnLWNvbHVtbi1kcm9wLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsID4gZGl2IHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAuYWctY29sdW1uLWRyb3AuYWctY29sdW1uLWRyb3AtdmVydGljYWwgLmFnLWNvbHVtbi1kcm9wLWxpc3Qge1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDtcXG4gICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XFxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTtcXG4gICAgZmxleC1ncm93OiAxO1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIG92ZXJmbG93LXg6IGF1dG87IH1cXG4gIC5hZy1jb2x1bW4tZHJvcC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCAuYWctY29sdW1uLWRyb3AtZW1wdHktbWVzc2FnZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrOyB9XFxuXFxuLmFnLWNvbHVtbi1kcm9wLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFJvd3NcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLXJvdy1hbmltYXRpb24gLmFnLXJvdyB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHRvcCAwLjRzLCBoZWlnaHQgMC40cywgYmFja2dyb3VuZC1jb2xvciAwLjFzLCBvcGFjaXR5IDAuMnMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiB0b3AgMC40cywgaGVpZ2h0IDAuNHMsIGJhY2tncm91bmQtY29sb3IgMC4xcywgb3BhY2l0eSAwLjJzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMsIHRvcCAwLjRzLCBoZWlnaHQgMC40cywgYmFja2dyb3VuZC1jb2xvciAwLjFzLCBvcGFjaXR5IDAuMnM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cywgdG9wIDAuNHMsIGhlaWdodCAwLjRzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMsIG9wYWNpdHkgMC4ycywgLXdlYmtpdC10cmFuc2Zvcm0gMC40czsgfVxcblxcbi5hZy1yb3ctbm8tYW5pbWF0aW9uIC5hZy1yb3cge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7IH1cXG5cXG4uYWctcm93IHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB3aWR0aDogMTAwJTsgfVxcblxcbi5hZy1yb3ctcG9zaXRpb24tYWJzb2x1dGUge1xcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XFxuXFxuLmFnLXJvdy1wb3NpdGlvbi1yZWxhdGl2ZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG5cXG4uYWctZnVsbC13aWR0aC1yb3cge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cXG5cXG4uYWctcm93LWlubGluZS1lZGl0aW5nIHtcXG4gIHotaW5kZXg6IDE7IH1cXG5cXG4uYWctcm93LWRyYWdnaW5nIHtcXG4gIHotaW5kZXg6IDI7IH1cXG5cXG4uYWctc3R1Yi1jZWxsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBDZWxsc1xcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctY2VsbCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuXFxuLmFnLWNlbGwtd3JhcHBlciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlOyB9XFxuICAuYWctY2VsbC13cmFwcGVyLmFnLXJvdy1ncm91cCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcXG4gICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxcbiAgLmFnLWNlbGwtd3JhcHBlciAuYWctY2VsbC12YWx1ZSwgLmFnLWNlbGwtd3JhcHBlciAuYWctZ3JvdXAtdmFsdWUge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxcblxcbi5hZy1mdWxsLXdpZHRoLXJvdy5hZy1yb3ctZ3JvdXAgLmFnLWNlbGwtd3JhcHBlciB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG5cXG4uYWctY2VsbC13aXRoLWhlaWdodCB7XFxuICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4uYWctZ3JvdXAtY2VsbC1lbnRpcmUtcm93IHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB3aWR0aDogMTAwJTsgfVxcblxcbi5hZy1mb290ZXItY2VsbC1lbnRpcmUtcm93IHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB3aWR0aDogMTAwJTsgfVxcblxcbi5hZy1jZWxsLWlubGluZS1lZGl0aW5nIHtcXG4gIHotaW5kZXg6IDE7IH1cXG4gIC5hZy1jZWxsLWlubGluZS1lZGl0aW5nIC5hZy1jZWxsLWVkaXQtaW5wdXQsIC5hZy1jZWxsLWlubGluZS1lZGl0aW5nIC5hZy1pbnB1dC13cmFwcGVyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogRmlsdGVyc1xcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctc2V0LWZpbHRlci1pdGVtIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG5cXG4uYWctZmlsdGVyIC5hZy1maWx0ZXItY2hlY2tib3gge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cXG5cXG4uYWctZmlsdGVyIC5hZy1maWx0ZXItYm9keS13cmFwcGVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XFxuXFxuLmFnLWZpbHRlciAuYWctZmlsdGVyLWZpbHRlciB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgZmxleDogMSAxIGF1dG87IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIEZsb2F0aW5nIEZpbHRlclxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctZmxvYXRpbmctZmlsdGVyLWZ1bGwtYm9keSAuYWctcmVhY3QtY29udGFpbmVyLCAuYWctZmxvYXRpbmctZmlsdGVyLWJvZHkgLmFnLXJlYWN0LWNvbnRhaW5lciB7XFxuICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4uYWctZmxvYXRpbmctZmlsdGVyLWJvZHkge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgZmxleDogMSAxIGF1dG87XFxuICBoZWlnaHQ6IDEwMCU7IH1cXG4gIC5hZy1mbG9hdGluZy1maWx0ZXItYm9keSBpbnB1dCB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMXB4KTsgfVxcblxcbi5hZy1mbG9hdGluZy1maWx0ZXItZnVsbC1ib2R5IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG4gIC5hZy1mbG9hdGluZy1maWx0ZXItZnVsbC1ib2R5ID4gZGl2IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxcbiAgLmFnLWZsb2F0aW5nLWZpbHRlci1mdWxsLWJvZHkgaW5wdXQge1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHdpZHRoOiAxMDAlOyB9XFxuICAuYWctZmxvYXRpbmctZmlsdGVyLWZ1bGwtYm9keSBpbnB1dFt0eXBlPVxcXCJyYW5nZVxcXCJdIHtcXG4gICAgaGVpZ2h0OiAxMDAlOyB9XFxuXFxuLmFnLWZsb2F0aW5nLWZpbHRlciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cXG5cXG4uYWctZmxvYXRpbmctZmlsdGVyLWlucHV0IHtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLWZsb2F0aW5nLWZpbHRlci1pbnB1dDotbW96LXJlYWQtb25seSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyB9XFxuXFxuLmFnLWZsb2F0aW5nLWZpbHRlci1pbnB1dDpyZWFkLW9ubHkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsgfVxcblxcbi5hZy1mbG9hdGluZy1maWx0ZXItbWVudSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gIHVzZXItc2VsZWN0OiBub25lOyB9XFxuXFxuLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24ge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgLW1zLWZsZXg6IG5vbmU7XFxuICBmbGV4OiBub25lOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBEcmFnICYgRHJvcFxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctZG5kLWdob3N0IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgYmFja2dyb3VuZDogI2U1ZTVlNTtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xcbiAgY3Vyc29yOiBtb3ZlO1xcbiAgZm9udC1mYW1pbHk6IFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBsaW5lLWhlaWdodDogMS40O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBhZGRpbmc6IDNweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHotaW5kZXg6IDEwOyB9XFxuXFxuLmFnLWRuZC1naG9zdC1pY29uIHtcXG4gIHBhZGRpbmc6IDJweDsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogT3ZlcmxheVxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctb3ZlcmxheSB7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBsZWZ0OiAwO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMTAwJTsgfVxcblxcbi5hZy1vdmVybGF5LXBhbmVsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB3aWR0aDogMTAwJTsgfVxcblxcbi5hZy1vdmVybGF5LXdyYXBwZXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgLW1zLWZsZXg6IG5vbmU7XFxuICBmbGV4OiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbiAgLmFnLW92ZXJsYXktd3JhcHBlci5hZy1vdmVybGF5LWxvYWRpbmctd3JhcHBlciB7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cXG5cXG4uYWctb3ZlcmxheS1uby1yb3dzLXdyYXBwZXIuYWctbGF5b3V0LWF1dG8taGVpZ2h0IHtcXG4gIHBhZGRpbmctdG9wOiAzMHB4OyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBQb3B1cFxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctcG9wdXAgPiBkaXYge1xcbiAgei1pbmRleDogNTsgfVxcblxcbi5hZy1wb3B1cC1iYWNrZHJvcCB7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBsZWZ0OiAwO1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgdG9wOiAwO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG5cXG4uYWctcG9wdXAtZWRpdG9yIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB6LWluZGV4OiAxOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBWaXJ0dWFsIExpc3RzXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy12aXJ0dWFsLWxpc3QtaXRlbSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMTAwJTsgfVxcbiAgLmFnLXZpcnR1YWwtbGlzdC1pdGVtIHNwYW46ZW1wdHk6bm90KC5hZy1pY29uKSB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIEZsb2F0aW5nIFRvcCBhbmQgQm90dG9tXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1mbG9hdGluZy10b3Age1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4OyB9XFxuXFxuLmFnLXBpbm5lZC1sZWZ0LWZsb2F0aW5nLXRvcCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbWluLXdpZHRoOiAwcHg7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxMDAwO1xcbiAgLW1zLWZsZXgtcG9zaXRpdmU6IDEwMDA7XFxuICBmbGV4LWdyb3c6IDEwMDA7IH1cXG5cXG4uYWctcGlubmVkLXJpZ2h0LWZsb2F0aW5nLXRvcCB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbWluLXdpZHRoOiAwcHg7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxMDAwO1xcbiAgLW1zLWZsZXgtcG9zaXRpdmU6IDEwMDA7XFxuICBmbGV4LWdyb3c6IDEwMDA7IH1cXG5cXG4uYWctZmxvYXRpbmctYm90dG9tIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDsgfVxcblxcbi5hZy1waW5uZWQtbGVmdC1mbG9hdGluZy1ib3R0b20ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG1pbi13aWR0aDogMHB4O1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDtcXG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAxMDAwO1xcbiAgZmxleC1ncm93OiAxMDAwOyB9XFxuXFxuLmFnLXBpbm5lZC1yaWdodC1mbG9hdGluZy1ib3R0b20ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG1pbi13aWR0aDogMHB4O1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDtcXG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAxMDAwO1xcbiAgZmxleC1ncm93OiAxMDAwOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBEaWFsb2dcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLWRpYWxvZywgLmFnLXBhbmVsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgLmFnLWRpYWxvZyAuYWctdGl0bGUtYmFyLCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgLW1zLWZsZXg6IG5vbmU7XFxuICAgIGZsZXg6IG5vbmU7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci10aXRsZSwgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci10aXRsZSB7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgZmxleDogMSAxIGF1dG87IH1cXG4gICAgLmFnLWRpYWxvZyAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucywgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XFxuICAgICAgLmFnLWRpYWxvZyAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uLCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbiB7XFxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4gIC5hZy1kaWFsb2cgLmFnLXBhbmVsLWNvbnRlbnQtd3JhcHBlciwgLmFnLXBhbmVsIC5hZy1wYW5lbC1jb250ZW50LXdyYXBwZXIge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgZmxleDogMSAxIGF1dG87XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy1wYW5lbC1jb250ZW50LXdyYXBwZXIgPiBkaXYsIC5hZy1wYW5lbCAuYWctcGFuZWwtY29udGVudC13cmFwcGVyID4gZGl2IHtcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4uYWctZGlhbG9nIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxcbiAgLmFnLWRpYWxvZyAuYWctcmVzaXplciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHotaW5kZXg6IDE7IH1cXG4gICAgLmFnLWRpYWxvZyAuYWctcmVzaXplci5hZy1yZXNpemVyLXRvcExlZnQge1xcbiAgICAgIHRvcDogMDtcXG4gICAgICBsZWZ0OiAwO1xcbiAgICAgIGhlaWdodDogNXB4O1xcbiAgICAgIHdpZHRoOiA1cHg7XFxuICAgICAgY3Vyc29yOiBud3NlLXJlc2l6ZTsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy1yZXNpemVyLmFnLXJlc2l6ZXItdG9wIHtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgbGVmdDogNXB4O1xcbiAgICAgIHJpZ2h0OiA1cHg7XFxuICAgICAgaGVpZ2h0OiA1cHg7XFxuICAgICAgY3Vyc29yOiBucy1yZXNpemU7IH1cXG4gICAgLmFnLWRpYWxvZyAuYWctcmVzaXplci5hZy1yZXNpemVyLXRvcFJpZ2h0IHtcXG4gICAgICB0b3A6IDA7XFxuICAgICAgcmlnaHQ6IDA7XFxuICAgICAgaGVpZ2h0OiA1cHg7XFxuICAgICAgd2lkdGg6IDVweDtcXG4gICAgICBjdXJzb3I6IG5lc3ctcmVzaXplOyB9XFxuICAgIC5hZy1kaWFsb2cgLmFnLXJlc2l6ZXIuYWctcmVzaXplci1yaWdodCB7XFxuICAgICAgdG9wOiA1cHg7XFxuICAgICAgcmlnaHQ6IDA7XFxuICAgICAgYm90dG9tOiA1cHg7XFxuICAgICAgd2lkdGg6IDVweDtcXG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy1yZXNpemVyLmFnLXJlc2l6ZXItYm90dG9tUmlnaHQge1xcbiAgICAgIGJvdHRvbTogMDtcXG4gICAgICByaWdodDogMDtcXG4gICAgICBoZWlnaHQ6IDVweDtcXG4gICAgICB3aWR0aDogNXB4O1xcbiAgICAgIGN1cnNvcjogbndzZS1yZXNpemU7IH1cXG4gICAgLmFnLWRpYWxvZyAuYWctcmVzaXplci5hZy1yZXNpemVyLWJvdHRvbSB7XFxuICAgICAgYm90dG9tOiAwO1xcbiAgICAgIGxlZnQ6IDVweDtcXG4gICAgICByaWdodDogNXB4O1xcbiAgICAgIGhlaWdodDogNXB4O1xcbiAgICAgIGN1cnNvcjogbnMtcmVzaXplOyB9XFxuICAgIC5hZy1kaWFsb2cgLmFnLXJlc2l6ZXIuYWctcmVzaXplci1ib3R0b21MZWZ0IHtcXG4gICAgICBib3R0b206IDA7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICBoZWlnaHQ6IDVweDtcXG4gICAgICB3aWR0aDogNXB4O1xcbiAgICAgIGN1cnNvcjogbmVzdy1yZXNpemU7IH1cXG4gICAgLmFnLWRpYWxvZyAuYWctcmVzaXplci5hZy1yZXNpemVyLWxlZnQge1xcbiAgICAgIGxlZnQ6IDA7XFxuICAgICAgdG9wOiA1cHg7XFxuICAgICAgYm90dG9tOiA1cHg7XFxuICAgICAgd2lkdGg6IDVweDtcXG4gICAgICBjdXJzb3I6IGV3LXJlc2l6ZTsgfVxcbiAgLmFnLWRpYWxvZyAuYWctbWVzc2FnZS1ib3gge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy1tZXNzYWdlLWJveCAuYWctbWVzc2FnZS1ib3gtY29udGVudCB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5hZy1kaWFsb2cgLmFnLW1lc3NhZ2UtYm94IC5hZy1tZXNzYWdlLWJveC1idXR0b24tYmFyIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFRvb2x0aXBcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLXRvb2x0aXAge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB6LWluZGV4OiA5OTk5OTsgfVxcblxcbi5hZy1jaGFydC10b29sdGlwIHtcXG4gIGRpc3BsYXk6IHRhYmxlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHotaW5kZXg6IDk5OTk5O1xcbiAgZm9udDogMTJweCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xcbiAgY29sb3I6IGJsYWNrO1xcbiAgYmFja2dyb3VuZDogI2Y0ZjRmNDtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKDMsIDMsIDMsIDAuNyksIDAuNXZoIDAuNXZoIDF2aCByZ2JhKDMsIDMsIDMsIDAuMjUpO1xcbiAgYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKDMsIDMsIDMsIDAuNyksIDAuNXZoIDAuNXZoIDF2aCByZ2JhKDMsIDMsIDMsIDAuMjUpO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjE5LCAxLCAwLjIyLCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtLCAtd2Via2l0LXRyYW5zZm9ybTsgfVxcbiAgLmFnLWNoYXJ0LXRvb2x0aXAudmlzaWJsZSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxcbiAgLmFnLWNoYXJ0LXRvb2x0aXAgLnRpdGxlIHtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgIHBhZGRpbmc6IDdweDtcXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xcbiAgICBjb2xvcjogd2hpdGU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg4ODg7IH1cXG4gIC5hZy1jaGFydC10b29sdGlwIC5jb250ZW50IHtcXG4gICAgcGFkZGluZzogN3B4OyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBBbmltYXRpb25zXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy12YWx1ZS1zbGlkZS1vdXQge1xcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDNzLCBtYXJnaW4tcmlnaHQgM3M7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDNzLCBtYXJnaW4tcmlnaHQgM3M7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XFxuXFxuLmFnLXZhbHVlLXNsaWRlLW91dC1lbmQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xcbiAgb3BhY2l0eTogMDsgfVxcblxcbi5hZy1vcGFjaXR5LXplcm8ge1xcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50OyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBNZW51XFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1tZW51IHtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxcblxcbi5hZy1tZW51LWNvbHVtbi1zZWxlY3Qtd3JhcHBlciB7XFxuICBoZWlnaHQ6IDI2NXB4O1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICB3aWR0aDogMjAwcHg7IH1cXG5cXG4uYWctbWVudS1saXN0IHtcXG4gIGRpc3BsYXk6IHRhYmxlOyB9XFxuXFxuLmFnLW1lbnUtb3B0aW9uLCAuYWctbWVudS1zZXBhcmF0b3Ige1xcbiAgZGlzcGxheTogdGFibGUtcm93OyB9XFxuICAuYWctbWVudS1vcHRpb24gPiBzcGFuLCAuYWctbWVudS1zZXBhcmF0b3IgPiBzcGFuIHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcblxcbi5hZy1tZW51LW9wdGlvbi10ZXh0IHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG5cXG4uYWctbWVudS1jb2x1bW4tc2VsZWN0LXdyYXBwZXIgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwge1xcbiAgaGVpZ2h0OiAxMDAlOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBSaWNoIFNlbGVjdFxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctcmljaC1zZWxlY3Qge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgb3V0bGluZTogbm9uZTsgfVxcbiAgLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC12YWx1ZSB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LXZhbHVlID4gc3BhbiB7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgZmxleDogMSAxIGF1dG87IH1cXG4gICAgICAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LXZhbHVlID4gc3Bhbi5hZy1pY29uIHtcXG4gICAgICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7XFxuICAgICAgICAtbXMtZmxleC1vcmRlcjogMTtcXG4gICAgICAgIG9yZGVyOiAxO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgZmxleDogbm9uZTsgfVxcbiAgLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC1saXN0IC5hZy12aXJ0dWFsLWxpc3QtaXRlbSB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDsgfVxcbiAgICAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LWxpc3QgLmFnLXZpcnR1YWwtbGlzdC1pdGVtIC5hZy1yaWNoLXNlbGVjdC1yb3cge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgZmxleDogMSAxIGF1dG87XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogUGFnaW5hdGlvblxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctcGFnaW5nLXBhbmVsIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxcblxcbi5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctZGlzYWJsZWQge1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcbiAgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gICAgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24gYnV0dG9uIHtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFRvb2wgUGFuZWxcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLXRvb2wtcGFuZWwtd3JhcHBlciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgd2lkdGg6IDIwMHB4OyB9XFxuICAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciB7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcblxcbi5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4sXFxuLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgZmxleC13cmFwOiBub3dyYXA7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG4gIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbixcXG4gIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCxcXG4gIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbixcXG4gIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgZmxleDogMSAxIGF1dG87XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XFxuXFxuLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7IH1cXG5cXG4uYWctdG9vbC1wYW5lbC1ob3Jpem9udGFsLXJlc2l6ZSB7XFxuICBjdXJzb3I6IGNvbC1yZXNpemU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICB3aWR0aDogNXB4O1xcbiAgei1pbmRleDogMTsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2wtcGFuZWwtaG9yaXpvbnRhbC1yZXNpemUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoM3B4KTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzcHgpOyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbC1wYW5lbC1ob3Jpem9udGFsLXJlc2l6ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KTsgfVxcblxcbi5sb2FkaW5nLWZpbHRlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcGFkZGluZzogNXB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAzNHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICB6LWluZGV4OiAxOyB9XFxuXFxuLmFnLWRldGFpbHMtcm93IHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLWRldGFpbHMtZ3JpZCB7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJTsgfVxcblxcbi5hZy1oZWFkZXItZ3JvdXAtY2VsbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxcblxcbi5hZy1jZWxsLWxhYmVsLWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLW51bWVyaWMtaGVhZGVyIC5hZy1jZWxsLWxhYmVsLWNvbnRhaW5lciB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogU2lkZSBCYXJcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLXNpZGUtYmFyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxcbiAgLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgZGl2IGJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4gICAgLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgZGl2IGJ1dHRvbiBzcGFuOm5vdCguYWctaWNvbikge1xcbiAgICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB0YjtcXG4gICAgICAtbXMtd3JpdGluZy1tb2RlOiB0YjtcXG4gICAgICB3cml0aW5nLW1vZGU6IHRiO1xcbiAgICAgIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjtcXG4gICAgICAtbXMtd3JpdGluZy1tb2RlOiB0Yi1scjtcXG4gICAgICB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyB9XFxuICAuYWctc2lkZS1iYXIgLnBhbmVsLWNvbnRhaW5lciB7XFxuICAgIHdpZHRoOiAxODBweDsgfVxcbiAgLmFnLXNpZGUtYmFyLmZ1bGwtd2lkdGggLnBhbmVsLWNvbnRhaW5lciB7XFxuICAgIHdpZHRoOiAyMDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgYnV0dG9uIHNwYW46bm90KC5hZy1pY29uKSB7XFxuICAtd2Via2l0LXdyaXRpbmctbW9kZTogdGItcmw7XFxuICAtbXMtd3JpdGluZy1tb2RlOiB0Yi1ybDtcXG4gIHdyaXRpbmctbW9kZTogdGItcmw7XFxuICAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7XFxuICAtbXMtd3JpdGluZy1tb2RlOiB0Yi1ybDtcXG4gIHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFN0YXR1cyBCYXJcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLXN0YXR1cy1iYXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xcbiAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG4gIC5hZy1zdGF0dXMtYmFyIC5hZy1zdGF0dXMtcGFuZWwge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cXG5cXG4uYWctc3RhdHVzLWJhci1sZWZ0IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyB9XFxuXFxuLmFnLXN0YXR1cy1iYXItY2VudGVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4OyB9XFxuXFxuLmFnLXN0YXR1cy1iYXItcmlnaHQge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFdpZGdldHNcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLWdyb3VwLWNvbXBvbmVudCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgLW1zLWZsZXg6IDEgMSAxMDAlO1xcbiAgZmxleDogMSAxIDEwMCU7IH1cXG4gIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZS1iYXIge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWNvbXBvbmVudC10b29sYmFyIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cXG4gICAgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciAuYWctZ3JvdXAtc3ViZ3JvdXAge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDtcXG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XFxuICAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1pdGVtIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAuYWctZ3JvdXAtY29tcG9uZW50LmFnLWRpc2FibGVkIC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cXG4gIC5hZy1ncm91cC1jb21wb25lbnQuYWctY29sbGFwc2VkIC5hZy1ncm91cC1jb21wb25lbnQtdG9vbGJhciwgLmFnLWdyb3VwLWNvbXBvbmVudC5hZy1jb2xsYXBzZWQgLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIge1xcbiAgICBkaXNwbGF5OiBub25lOyB9XFxuXFxuLmFnLXRvZ2dsZS1idXR0b24gLmFnLWlucHV0LXdyYXBwZXIgLmFnLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiByaWdodCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC4zcztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTFweDsgfVxcblxcbi5hZy1pbnB1dC1maWVsZCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAuYWctaW5wdXQtZmllbGQgaW5wdXQsIC5hZy1pbnB1dC1maWVsZCBzZWxlY3QsIC5hZy1pbnB1dC1maWVsZCB0ZXh0YXJlYSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgZmxleDogMSAxIGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBtaW4td2lkdGg6IDA7IH1cXG5cXG4uYWctcmFuZ2UtZmllbGQge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG5cXG4uYWctcGlja2VyLWZpZWxkID4gLmFnLXdyYXBwZXIsIC5hZy1zbGlkZXIgPiAuYWctd3JhcHBlciwgLmFnLWFuZ2xlLXNlbGVjdCA+IC5hZy13cmFwcGVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4OyB9XFxuICAuYWctcGlja2VyLWZpZWxkID4gLmFnLXdyYXBwZXIgPiBkaXYsIC5hZy1zbGlkZXIgPiAuYWctd3JhcHBlciA+IGRpdiwgLmFnLWFuZ2xlLXNlbGVjdCA+IC5hZy13cmFwcGVyID4gZGl2IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxcblxcbi5hZy1hbmdsZS1zZWxlY3Qge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gIC5hZy1hbmdsZS1zZWxlY3QgLmFnLWFuZ2xlLXNlbGVjdC1maWVsZCAuYWctcGFyZW50LWNpcmNsZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gIC5hZy1hbmdsZS1zZWxlY3QgLmFnLWFuZ2xlLXNlbGVjdC1maWVsZCAuYWctY2hpbGQtY2lyY2xlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XFxuXFxuLmFnLXBpY2tlci1maWVsZCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgLmFnLXBpY2tlci1maWVsZCA+IC5hZy13cmFwcGVyID4gYnV0dG9uIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIG1hcmdpbjogMDsgfVxcblxcbi5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDtcXG4gIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoO1xcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuXFxuLmFnLWNvbG9yLXBpY2tlciBidXR0b24ge1xcbiAgY3Vyc29yOiBwb2ludGVyOyB9XFxuXFxuLmFnLWxhYmVsZWQuYWctbGFiZWwtYWxpZ24tcmlnaHQgbGFiZWwge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcXG4gIC1tcy1mbGV4LW9yZGVyOiAxO1xcbiAgb3JkZXI6IDE7IH1cXG5cXG4uYWctbGFiZWxlZC5hZy1sYWJlbC1hbGlnbi1yaWdodCA+IGRpdiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgLW1zLWZsZXg6IG5vbmU7XFxuICBmbGV4OiBub25lOyB9XFxuXFxuLmFnLWxhYmVsZWQuYWctbGFiZWwtYWxpZ24tdG9wIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcXG4gIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XFxuICAuYWctbGFiZWxlZC5hZy1sYWJlbC1hbGlnbi10b3AgPiBkaXYge1xcbiAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoO1xcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XFxuXFxuLmFnLWNvbG9yLXBhbmVsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWNvbG9yIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctZmlsbCB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXZhbCB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcbiAgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1kcmFnZ2VyIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWh1ZSB7XFxuICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIHJpZ2h0IHRvcCwgbGVmdCB0b3AsIGNvbG9yLXN0b3AoMyUsICNmZjAwMDApLCBjb2xvci1zdG9wKDE3JSwgI2ZmZmYwMCksIGNvbG9yLXN0b3AoMzMlLCAjMDBmZjAwKSwgY29sb3Itc3RvcCg1MCUsICMwMGZmZmYpLCBjb2xvci1zdG9wKDY3JSwgIzAwMDBmZiksIGNvbG9yLXN0b3AoODMlLCAjZmYwMGZmKSwgdG8oI2ZmMDAwMCkpO1xcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgI2ZmMDAwMCAzJSwgI2ZmZmYwMCAxNyUsICMwMGZmMDAgMzMlLCAjMDBmZmZmIDUwJSwgIzAwMDBmZiA2NyUsICNmZjAwZmYgODMlLCAjZmYwMDAwIDEwMCUpOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWFscGhhIHtcXG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWh1ZS1iYWNrZ3JvdW5kIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTsgfVxcbiAgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1hbHBoYS1iYWNrZ3JvdW5kIHtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwKSksIHRvKGJsYWNrKSk7XFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwKSwgYmxhY2spO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLWh1ZS1hbHBoYSB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcbiAgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1zbGlkZXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRleHQtdmFsdWUge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcbiAgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS10ZXh0LXZhbHVlOmZvY3VzIHtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgb3V0bGluZS1vZmZzZXQ6IDA7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctcmVjZW50LWNvbG9ycyB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDsgfVxcbiAgICAuYWctY29sb3ItcGFuZWwgLmFnLXJlY2VudC1jb2xvcnMgPiBkaXYge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMSB7XFxuICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTEge1xcbiAgcGFkZGluZy1yaWdodDogMTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMSB7XFxuICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEge1xcbiAgcGFkZGluZy1yaWdodDogMTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMiB7XFxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIge1xcbiAgcGFkZGluZy1yaWdodDogMjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMiB7XFxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIge1xcbiAgcGFkZGluZy1yaWdodDogMjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMge1xcbiAgcGFkZGluZy1yaWdodDogMzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDMwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMge1xcbiAgcGFkZGluZy1yaWdodDogMzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQge1xcbiAgcGFkZGluZy1yaWdodDogNDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQge1xcbiAgcGFkZGluZy1yaWdodDogNDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNSB7XFxuICBwYWRkaW5nLWxlZnQ6IDUwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTUge1xcbiAgcGFkZGluZy1yaWdodDogNTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNSB7XFxuICBwYWRkaW5nLWxlZnQ6IDUwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTUge1xcbiAgcGFkZGluZy1yaWdodDogNTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNiB7XFxuICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTYge1xcbiAgcGFkZGluZy1yaWdodDogNjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNiB7XFxuICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTYge1xcbiAgcGFkZGluZy1yaWdodDogNjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNyB7XFxuICBwYWRkaW5nLWxlZnQ6IDcwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTcge1xcbiAgcGFkZGluZy1yaWdodDogNzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNyB7XFxuICBwYWRkaW5nLWxlZnQ6IDcwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTcge1xcbiAgcGFkZGluZy1yaWdodDogNzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOCB7XFxuICBwYWRkaW5nLWxlZnQ6IDgwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTgge1xcbiAgcGFkZGluZy1yaWdodDogODBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtOCB7XFxuICBwYWRkaW5nLWxlZnQ6IDgwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTgge1xcbiAgcGFkZGluZy1yaWdodDogODBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOSB7XFxuICBwYWRkaW5nLWxlZnQ6IDkwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTkge1xcbiAgcGFkZGluZy1yaWdodDogOTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtOSB7XFxuICBwYWRkaW5nLWxlZnQ6IDkwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTkge1xcbiAgcGFkZGluZy1yaWdodDogOTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTAge1xcbiAgcGFkZGluZy1sZWZ0OiAxMDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTAge1xcbiAgcGFkZGluZy1yaWdodDogMTAwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEwIHtcXG4gIHBhZGRpbmctbGVmdDogMTAwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEwIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDEwMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMSB7XFxuICBwYWRkaW5nLWxlZnQ6IDExMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTEge1xcbiAgcGFkZGluZy1sZWZ0OiAxMTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTEge1xcbiAgcGFkZGluZy1yaWdodDogMTEwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTEyIHtcXG4gIHBhZGRpbmctbGVmdDogMTIwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTEyIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDEyMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMiB7XFxuICBwYWRkaW5nLWxlZnQ6IDEyMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTMge1xcbiAgcGFkZGluZy1sZWZ0OiAxMzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTMge1xcbiAgcGFkZGluZy1yaWdodDogMTMwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEzIHtcXG4gIHBhZGRpbmctbGVmdDogMTMwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDEzMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE0MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTQge1xcbiAgcGFkZGluZy1sZWZ0OiAxNDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTQge1xcbiAgcGFkZGluZy1yaWdodDogMTQwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE1IHtcXG4gIHBhZGRpbmctbGVmdDogMTUwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE1IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNSB7XFxuICBwYWRkaW5nLWxlZnQ6IDE1MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTYge1xcbiAgcGFkZGluZy1sZWZ0OiAxNjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTYge1xcbiAgcGFkZGluZy1yaWdodDogMTYwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE2IHtcXG4gIHBhZGRpbmctbGVmdDogMTYwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE2IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE2MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNyB7XFxuICBwYWRkaW5nLWxlZnQ6IDE3MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTcge1xcbiAgcGFkZGluZy1sZWZ0OiAxNzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTcge1xcbiAgcGFkZGluZy1yaWdodDogMTcwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE4IHtcXG4gIHBhZGRpbmctbGVmdDogMTgwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE4IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE4MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xOCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE4MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xOCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxODBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTkge1xcbiAgcGFkZGluZy1sZWZ0OiAxOTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTkge1xcbiAgcGFkZGluZy1yaWdodDogMTkwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE5IHtcXG4gIHBhZGRpbmctbGVmdDogMTkwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE5IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE5MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMCB7XFxuICBwYWRkaW5nLWxlZnQ6IDIwMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyMDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjAge1xcbiAgcGFkZGluZy1sZWZ0OiAyMDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjAge1xcbiAgcGFkZGluZy1yaWdodDogMjAwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIxIHtcXG4gIHBhZGRpbmctbGVmdDogMjEwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIxIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIxMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMSB7XFxuICBwYWRkaW5nLWxlZnQ6IDIxMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyMTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjIge1xcbiAgcGFkZGluZy1sZWZ0OiAyMjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjIge1xcbiAgcGFkZGluZy1yaWdodDogMjIwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIyIHtcXG4gIHBhZGRpbmctbGVmdDogMjIwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIyIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIyMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDIzMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyMzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjMge1xcbiAgcGFkZGluZy1sZWZ0OiAyMzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjMge1xcbiAgcGFkZGluZy1yaWdodDogMjMwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI0IHtcXG4gIHBhZGRpbmctbGVmdDogMjQwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI0MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDI0MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyNDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjUge1xcbiAgcGFkZGluZy1sZWZ0OiAyNTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjUge1xcbiAgcGFkZGluZy1yaWdodDogMjUwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI1IHtcXG4gIHBhZGRpbmctbGVmdDogMjUwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI1IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI1MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNiB7XFxuICBwYWRkaW5nLWxlZnQ6IDI2MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyNjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjYge1xcbiAgcGFkZGluZy1sZWZ0OiAyNjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjYge1xcbiAgcGFkZGluZy1yaWdodDogMjYwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI3IHtcXG4gIHBhZGRpbmctbGVmdDogMjcwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI3IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI3MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI3MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyNzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjgge1xcbiAgcGFkZGluZy1sZWZ0OiAyODBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjgge1xcbiAgcGFkZGluZy1yaWdodDogMjgwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI4IHtcXG4gIHBhZGRpbmctbGVmdDogMjgwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI4IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI4MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yOSB7XFxuICBwYWRkaW5nLWxlZnQ6IDI5MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yOSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyOTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjkge1xcbiAgcGFkZGluZy1sZWZ0OiAyOTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjkge1xcbiAgcGFkZGluZy1yaWdodDogMjkwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMwIHtcXG4gIHBhZGRpbmctbGVmdDogMzAwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMwIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDMwMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMCB7XFxuICBwYWRkaW5nLWxlZnQ6IDMwMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzMDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzEge1xcbiAgcGFkZGluZy1sZWZ0OiAzMTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzEge1xcbiAgcGFkZGluZy1yaWdodDogMzEwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMxIHtcXG4gIHBhZGRpbmctbGVmdDogMzEwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMxIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDMxMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMiB7XFxuICBwYWRkaW5nLWxlZnQ6IDMyMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzMjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzIge1xcbiAgcGFkZGluZy1sZWZ0OiAzMjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzIge1xcbiAgcGFkZGluZy1yaWdodDogMzIwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMzIHtcXG4gIHBhZGRpbmctbGVmdDogMzMwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDMzMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDMzMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzMzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzQge1xcbiAgcGFkZGluZy1sZWZ0OiAzNDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzQge1xcbiAgcGFkZGluZy1yaWdodDogMzQwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM0IHtcXG4gIHBhZGRpbmctbGVmdDogMzQwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDM0MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNSB7XFxuICBwYWRkaW5nLWxlZnQ6IDM1MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzNTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzUge1xcbiAgcGFkZGluZy1sZWZ0OiAzNTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzUge1xcbiAgcGFkZGluZy1yaWdodDogMzUwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM2IHtcXG4gIHBhZGRpbmctbGVmdDogMzYwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM2IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDM2MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNiB7XFxuICBwYWRkaW5nLWxlZnQ6IDM2MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzNjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzcge1xcbiAgcGFkZGluZy1sZWZ0OiAzNzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzcge1xcbiAgcGFkZGluZy1yaWdodDogMzcwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM3IHtcXG4gIHBhZGRpbmctbGVmdDogMzcwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM3IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDM3MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zOCB7XFxuICBwYWRkaW5nLWxlZnQ6IDM4MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zOCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzODBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzgge1xcbiAgcGFkZGluZy1sZWZ0OiAzODBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzgge1xcbiAgcGFkZGluZy1yaWdodDogMzgwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM5IHtcXG4gIHBhZGRpbmctbGVmdDogMzkwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM5IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDM5MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zOSB7XFxuICBwYWRkaW5nLWxlZnQ6IDM5MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zOSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzOTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDAge1xcbiAgcGFkZGluZy1sZWZ0OiA0MDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDAge1xcbiAgcGFkZGluZy1yaWdodDogNDAwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQwIHtcXG4gIHBhZGRpbmctbGVmdDogNDAwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQwIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQwMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MSB7XFxuICBwYWRkaW5nLWxlZnQ6IDQxMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0MTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDEge1xcbiAgcGFkZGluZy1sZWZ0OiA0MTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDEge1xcbiAgcGFkZGluZy1yaWdodDogNDEwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQyIHtcXG4gIHBhZGRpbmctbGVmdDogNDIwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQyIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQyMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MiB7XFxuICBwYWRkaW5nLWxlZnQ6IDQyMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MiB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0MjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDMge1xcbiAgcGFkZGluZy1sZWZ0OiA0MzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDMge1xcbiAgcGFkZGluZy1yaWdodDogNDMwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQzIHtcXG4gIHBhZGRpbmctbGVmdDogNDMwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQzMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ0MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0NDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDQge1xcbiAgcGFkZGluZy1sZWZ0OiA0NDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDQge1xcbiAgcGFkZGluZy1yaWdodDogNDQwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ1IHtcXG4gIHBhZGRpbmctbGVmdDogNDUwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ1IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ1MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NSB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ1MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0NTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDYge1xcbiAgcGFkZGluZy1sZWZ0OiA0NjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDYge1xcbiAgcGFkZGluZy1yaWdodDogNDYwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ2IHtcXG4gIHBhZGRpbmctbGVmdDogNDYwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ2IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ2MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NyB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ3MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0NzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDcge1xcbiAgcGFkZGluZy1sZWZ0OiA0NzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDcge1xcbiAgcGFkZGluZy1yaWdodDogNDcwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ4IHtcXG4gIHBhZGRpbmctbGVmdDogNDgwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ4IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ4MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00OCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00OCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0ODBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDkge1xcbiAgcGFkZGluZy1sZWZ0OiA0OTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDkge1xcbiAgcGFkZGluZy1yaWdodDogNDkwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ5IHtcXG4gIHBhZGRpbmctbGVmdDogNDkwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ5IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ5MHB4OyB9XFxuXFxuLmFnLWx0ciB7XFxuICBkaXJlY3Rpb246IGx0cjsgfVxcbiAgLmFnLWx0ciAuYWctYm9keSwgLmFnLWx0ciAuYWctZmxvYXRpbmctdG9wLCAuYWctbHRyIC5hZy1mbG9hdGluZy1ib3R0b20sIC5hZy1sdHIgLmFnLWhlYWRlciwgLmFnLWx0ciAuYWctYm9keS12aWV3cG9ydCwgLmFnLWx0ciAuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XFxuICAuYWctbHRyIC5hZy1oZWFkZXItY2VsbC1yZXNpemUge1xcbiAgICByaWdodDogLTRweDsgfVxcbiAgLmFnLWx0ciAuYWctcGlubmVkLXJpZ2h0LWhlYWRlciAuYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcXG4gICAgbGVmdDogLTRweDsgfVxcblxcbi5hZy1ydGwge1xcbiAgZGlyZWN0aW9uOiBydGw7IH1cXG4gIC5hZy1ydGwgLmFnLWJvZHksIC5hZy1ydGwgLmFnLWZsb2F0aW5nLXRvcCwgLmFnLXJ0bCAuYWctZmxvYXRpbmctYm90dG9tLCAuYWctcnRsIC5hZy1oZWFkZXIsIC5hZy1ydGwgLmFnLWJvZHktdmlld3BvcnQsIC5hZy1ydGwgLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XFxuICAuYWctcnRsIC5hZy1oZWFkZXItY2VsbC1yZXNpemUge1xcbiAgICBsZWZ0OiAtNHB4OyB9XFxuICAuYWctcnRsIC5hZy1waW5uZWQtbGVmdC1oZWFkZXIgLmFnLWhlYWRlci1jZWxsLXJlc2l6ZSB7XFxuICAgIHJpZ2h0OiAtNHB4OyB9XFxuXFxuQG1lZGlhIHByaW50IHtcXG4gIC5hZy1ib2R5LXZpZXdwb3J0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7IH1cXG4gIC5hZy1yb3cge1xcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH0gfVxcblxcbi5hZy1ib2R5IC5hZy1waW5uZWQtbGVmdC1jb2xzLXZpZXdwb3J0LCAuYWctYm9keSAuYWctYm9keS12aWV3cG9ydCwgLmFnLWJvZHkgLmFnLXBpbm5lZC1yaWdodC1jb2xzLXZpZXdwb3J0IHtcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxcblxcbi5hZy1jaGFydCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTsgfVxcbiAgLmFnLWNoYXJ0IC5hZy1jaGFydC1jb21wb25lbnRzLXdyYXBwZXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgICAuYWctY2hhcnQgLmFnLWNoYXJ0LWNvbXBvbmVudHMtd3JhcHBlciAuYWctY2hhcnQtY2FudmFzLXdyYXBwZXIge1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuICAgICAgLmFnLWNoYXJ0IC5hZy1jaGFydC1jb21wb25lbnRzLXdyYXBwZXIgLmFnLWNoYXJ0LWNhbnZhcy13cmFwcGVyIGNhbnZhcyB7XFxuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxcbiAgICAuYWctY2hhcnQgLmFnLWNoYXJ0LWNvbXBvbmVudHMtd3JhcHBlciAuYWctY2hhcnQtbWVudSB7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgIHRvcDogMTBweDtcXG4gICAgICByaWdodDogMjBweDtcXG4gICAgICB3aWR0aDogMjRweDtcXG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XFxuICAuYWctY2hhcnQ6bm90KC5hZy1oYXMtbWVudSk6aG92ZXIgLmFnLWNoYXJ0LW1lbnUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICBwb2ludGVyLWV2ZW50czogYWxsOyB9XFxuICAuYWctY2hhcnQgLmFnLWNoYXJ0LWRvY2tlZC1jb250YWluZXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHdpZHRoOiAwO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbWluLXdpZHRoIDAuNHM7XFxuICAgIHRyYW5zaXRpb246IG1pbi13aWR0aCAwLjRzOyB9XFxuICAgIC5hZy1jaGFydCAuYWctY2hhcnQtZG9ja2VkLWNvbnRhaW5lciAuYWctcGFuZWwge1xcbiAgICAgIGJvcmRlci13aWR0aDogMCAwIDAgMXB4OyB9XFxuXFxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51ID4gZGl2IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuXFxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy10YWItaGVhZGVyIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IG5vbmU7XFxuICAgICAgICAgIGZsZXg6IG5vbmU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuXFxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy10YWItYm9keSB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG4gIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctdGFiLWJvZHkgPiBkaXYge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgb3ZlcmZsb3cteTogYXV0bzsgfVxcblxcbi5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3Mge1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XFxuICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIHtcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGhlaWdodDogMzBweDtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLW5hdi1jYXJkLXNlbGVjdG9yIHtcXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgICAgIGhlaWdodDogMTAwJTsgfVxcbiAgICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctbmF2LWNhcmQtc2VsZWN0b3IgLmFnLW5hdi1jYXJkLWl0ZW0ge1xcbiAgICAgICAgICBvcGFjaXR5OiAwLjI7IH1cXG4gICAgICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctbmF2LWNhcmQtc2VsZWN0b3IgLmFnLW5hdi1jYXJkLWl0ZW0uYWctc2VsZWN0ZWQge1xcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7IH1cXG4gICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1jaGFydC1zZXR0aW5ncy1wcmV2LWJ0biwgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctY2hhcnQtc2V0dGluZ3MtbmV4dC1idG4ge1xcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgICAgICAgZmxleDogbm9uZTsgfVxcbiAgICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctY2hhcnQtc2V0dGluZ3MtcHJldi1idG4gYnV0dG9uLCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1jaGFydC1zZXR0aW5ncy1uZXh0LWJ0biBidXR0b24ge1xcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICAgIHRvcDogMDtcXG4gICAgICAgICAgbGVmdDogMDtcXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgICBvcGFjaXR5OiAwOyB9XFxuICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktY2hhcnRzLWNvbnRhaW5lciB7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcXG4gICAgICBvdmVyZmxvdy15OiBhdXRvOyB9XFxuICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS1jaGFydHMtY29udGFpbmVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiAwO1xcbiAgICAgICAgbGVmdDogMDtcXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICBtaW4taGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS1jaGFydHMtY29udGFpbmVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWdyb3VwLWNvbXBvbmVudCB7XFxuICAgICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAgICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgICAgICAgICBmbGV4OiBub25lOyB9XFxuICAgICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLWNoYXJ0cy1jb250YWluZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciB7XFxuICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwOyB9XFxuICAgICAgICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktY2hhcnRzLWNvbnRhaW5lciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbCB7XFxuICAgICAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgICAgICAgICAgLW1zLWZsZXg6IG5vbmU7XFxuICAgICAgICAgICAgICAgICAgICBmbGV4OiBub25lOyB9XFxuICAgICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLWNoYXJ0cy1jb250YWluZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlci5hZy1hbmltYXRpbmcsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktY2hhcnRzLWNvbnRhaW5lciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyLmFnLWFuaW1hdGluZyB7XFxuICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbGVmdCAwLjNzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuM3M7XFxuICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsgfVxcbiAgICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS1jaGFydHMtY29udGFpbmVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsIHtcXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuICAgICAgICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktY2hhcnRzLWNvbnRhaW5lciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbCBjYW52YXMge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XFxuXFxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1kYXRhLXdyYXBwZXIsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtZm9ybWF0LXdyYXBwZXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOyB9XFxuICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LWRhdGEtd3JhcHBlciA+IGRpdiwgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1mb3JtYXQtd3JhcHBlciA+IGRpdiB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMnB4OyB9XFxuICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtZGF0YS13cmFwcGVyID4gZGl2Om5vdCg6Zmlyc3QtY2hpbGQpLCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LWZvcm1hdC13cmFwcGVyID4gZGl2Om5vdCg6Zmlyc3QtY2hpbGQpIHtcXG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XFxuXFxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1mb3JtYXQtd3JhcHBlciB7XFxuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cXG4gIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtZm9ybWF0LXdyYXBwZXIgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtc3ViZ3JvdXAge1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cXG5cXG4uYWctY2hhcnQgLmFnLWNoYXJ0LW1lbnUge1xcbiAgb3BhY2l0eTogMDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XFxuICAuYWctY2hhcnQgLmFnLWNoYXJ0LW1lbnUgPiBzcGFuIHtcXG4gICAgb3BhY2l0eTogMC41O1xcbiAgICBsaW5lLWhlaWdodDogMjRweDtcXG4gICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICB3aWR0aDogMjRweDtcXG4gICAgaGVpZ2h0OiAyNHB4O1xcbiAgICBtYXJnaW46IDJweCAwO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4gICAgLmFnLWNoYXJ0IC5hZy1jaGFydC1tZW51ID4gc3Bhbjpob3ZlciB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuXFxuLmFnLWNoYXJ0IC5hZy1jaGFydC1kb2NrZWQtY29udGFpbmVyIHtcXG4gIG1pbi13aWR0aDogMDtcXG4gIHdpZHRoOiAwOyB9XFxuXFxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy10YWItYm9keSB7XFxuICBwYWRkaW5nOiAwOyB9XFxuXFxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciB7XFxuICBwYWRkaW5nOiAwIDEwcHg7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lOyB9XFxuICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1uYXYtY2FyZC1zZWxlY3RvciB7XFxuICAgIHBhZGRpbmc6IDAgMTBweDsgfVxcbiAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1uYXYtY2FyZC1zZWxlY3RvciAuYWctbmF2LWNhcmQtaXRlbSB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuXFxuXCIiLCJtb2R1bGUuZXhwb3J0cyA9IFwiQGNoYXJzZXQgXFxcIlVURi04XFxcIjtcXG5AZm9udC1mYWNlIHtcXG4gIGZvbnQtZmFtaWx5OiBcXFwiYWdHcmlkQmFsaGFtXFxcIjtcXG4gIHNyYzogdXJsKFxcXCJkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZzhTQmxNQUFBQzhBQUFBWUdOdFlYQVhWdEs2QUFBQkhBQUFBRlJuWVhOd0FBQUFFQUFBQVhBQUFBQUlaMng1WnFNdXkzZ0FBQUY0QUFBYkRHaGxZV1FWb21PWEFBQWNoQUFBQURab2FHVmhCOElEK1FBQUhMd0FBQUFrYUcxMGVOWUFJbllBQUJ6Z0FBQUE0R3h2WTJIRW1MNGFBQUFkd0FBQUFISnRZWGh3QUVVQWxRQUFIalFBQUFBZ2JtRnRaWlFYeEtRQUFCNVVBQUFCa25CdmMzUUFBd0FBQUFBZjZBQUFBQ0FBQXdQMkFaQUFCUUFBQXBrQ3pBQUFBSThDbVFMTUFBQUI2d0F6QVFrQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEcE13UEEvOEFBUUFQQUFFQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFEQUFBQUF3QUFBQndBQVFBREFBQUFIQUFEQUFFQUFBQWNBQVFBT0FBQUFBb0FDQUFDQUFJQUFRQWc2VFAvL2YvL0FBQUFBQUFnNlFELy9mLy9BQUgvNHhjRUFBTUFBUUFBQUFBQUFBQUFBQUFBQVFBQi8vOEFEd0FCQUFBQUFBQUFBQUFBQWdBQU56a0JBQUFBQUFFQUFBQUFBQUFBQUFBQ0FBQTNPUUVBQUFBQUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFBQURBRC8vL3dQQkE0RUFKd0JRQUc0QUFBRWVBUmNXRlJZVUJ4UUhEZ0VIQmlNR0lpY2lKeTRCSnlZMUpqUTNORGMrQVRjMk16WXlGeklGSWdZSEJnY09BUmNVRng0QkZ4WVhGakkzTmpjK0FUYzJOelkwSnlZbkxnRW5KaU1pQmdjR0l3RWpOU0VWSGdFWEZnWUhEZ0VWSVRVekZTRTBOamMrQVNjdUFTYzFJUU1rUGx3Q0FRRUJBUUpjUGtsSlNaSkpTVWs5WFFJQkFRRUJBbHcrU1VsSmtrbEovZ1VsT2dFQkFRRUJBUU1DTlNSSlNVcVNTa2xKSkRVQ0F3RUJBUUVEQWpVa1NVaEprVWxJU1FIZ1FQOEFBWFVaRUFvWUoxWUJBRUQrZ0FZYkxXUWdMbUlDQVlBRGdBSmNQa2xKU1pKSlNVaytYQUlCQVFFQkFsdytTVWxKa2tsSlNUNWNBZ0VCQVVFNEpraEpTWkpKU1Vra05RSURBUUVCQVFNQ05TUkpTVXFTU2tsSkpEVUNBd0VCQWY4QVFBTWdRaXNjUkJjaVBScEFnQ1pNR0NkSEh5bEhORVVBQVFCVEFCTURyUU50QUNjQUFCTVhCeWMzSGdFWEJ5RVJCeWMzSGdFWEJ5Y1JJU2MzSGdFWEJ5YzNJUkUzSGdFWEJ5YzNGeEhOU2k2V2xnd1dERW9CRTBrdWx5WkxKaTVKQVJOS0xpVk1KWll1U3Y3dFNRd1dESmVYTGtrQm9Fa3VsNWNNRmd4SkFSTktMcFlsVENVdVN2N3RTUzRtU3lhWExrbis3VW9NRmd5V2xpNUtBUk1BQUFFQktRQ1pBdGNDNXdBS0FBQUJCeWMzSGdFWEJ5Y1JJd0hnaVM3WE5tczJMb2xBQW15SkxkYzJhell0aWY0dEFBTUFnQUJBQTRBRFFBQWJBRGNBUmdBQUFTSUhEZ0VIQmhVVUZ4NEJGeFl6TWpjK0FUYzJOVFFuTGdFbkpnY3lGeDRCRnhZVkZBY09BUWNHSXlJbkxnRW5KalUwTno0Qk56WVROeDRCRndjWEJ5Y0hKemNuTnhjQ0FFOUdSbWtlSGg0ZWFVWkdUMDlHUm1rZUhoNGVhVVpHVDBJN09sY1pHUmtaVnpvN1FrSTdPbGNaR1JrWlZ6bzdRcWtNRmd5cXFpNnBxUzZxcWk2cEEwQWVIbWxHUms5UFJrWnBIaDRlSG1sR1JrOVBSa1pwSGg1QUdSbFhPanRDUWpzNlZ4a1pHUmxYT2p0Q1FqczZWeGtaL3UycURCWU1xYWt1cXFvdXFha3VxZ0FEQU5VQWxRTXJBdXNBQkFBSkFBMEFBQk16RVNNUk56TVJJeEVUTXhFajFZQ0E3M2g0NzNoNEFqZitYZ0dpdFAycUFsYitxdjhBQUFNQUFQL0FCQUFEd0FBUEFDQUFLQUFBQlNFaUpqVVJORFl6SVRJV0ZSRVVCZ01oSWdZVkVSUVdNeUV5TmpVUk5DWWpCd0VuTnhjQkhnRURTUDF3VEd4c1RBS1FUR3hzU3YxdExVRkJMUUtUTFVGQUxneitWTkF6blFGNURScEFiRXdDa0V4c2JFejljRXhzQTdsQkxmMXRMa0JBTGdLVExVSDMvbFBSTkowQmVBMGFBQU1BQVAvQUJBQUR3QUFQQUNBQUpBQUFCU0VpSmpVUk5EWXpJVElXRlJFVUJnTWhJZ1lWRVJRV015RXlOalVSTkNZakF5RTFJUU5JL1hCTWJHeE1BcEJNYkd4Sy9XMHRRVUV0QXBNdFFVQXVKZjIyQWtwQWJFd0NrRXhzYkV6OWNFeHNBN2xCTGYxdExrQkFMZ0tUTFVIK0lrb0FBZ0FBLzhBRUFBUEFBQThBSUFBQUFUSVdGUkVVQmlNaElpWTFFVFEyTXdVaElnWVZFUlFXTXlFeU5qVVJOQ1lqQTBoTWJHeE0vWEJNYkd4TUFwTDliUzFCUVMwQ2t5MUJRQzREd0d4TS9YQk1iR3hNQXBCTWJFZEJMZjF0TGtCQUxnS1RMVUVBQUFBREFITUFTQU9OQXpnQUJnQUtBQllBQUFrQkJ4Y0pBaUUzRnlFRk1BWVZGQll6TWpZMU5DWUMvZjVWUEdiKzl3RkZBVVg5Nzh6TS9tZ0NURlV5SXlNeVZRR05BYXM4WnY3My9yc0JSYzNOUUdzcUl6SXlJeXByQUFBQUFBSUF3QUNnQWNBQzRBQURBQWNBQUNVaEVTRUhFVE1SQWNEL0FBRUF3SUNnQWtCQS9rQUJ3QUFFQU1BQW9BTkFBdUFBQXdBSEFBc0FEd0FBSlNNUk14TWpFVE1USXhFekFTTVJNd0hBUUVEQVFFREFRRUQ5d0VCQW9BSkEvY0FDUVAzQUFrRDl3QUpBQUFBQUFBRUJYZ0NwQXFJQzF3QUhBQUFCQnhjSENRRWVBUUtpNmVrdC91a0JGd3NYQXFucDZTNEJGd0VYREJZQUF3Q2dBRUFEWUFOQUFCQUFJQUF6QUFBbEl5SW1OUkUwTmpzQk1oWVZFUlFHSXhNaElnWVZFUlFXTXlFeU5qVVJOQ1lCSXp3Qk5SRTBOak1oT2dFekZTRWlCaFVSQXI3N1EyQmdRL3REWDE5REJmNzlKemMzSndFREp6YzMvZmRCWDBNQm1nRUNBZjVkSmpaQVgwUUJPa05nWUVQK3hrUmZBa0E0SnY2N0p6YzNKd0ZGSmpqK0FBRUVBZ0lYUTE5QU5pYjkzQUFBQUFBQkFTa0E2UUxYQXBjQURnQUFBVGNlQVJjSEZ3Y25CeWMzSnpjWEFnQ3BEQllNcXFvdXFha3VxcW91cVFIdHFnd1dES21wTHFxcUxxbXBMcW9BQUFBQUJRQkFBQUFEd0FPQUFDVUFNZ0EvQUVzQVVRQUFBVDRCTlRRbUl5SUdGUlFXTXpJMk54Y0hMZ0VqSWdZVkZCWXpNalkxTkNZbk53RXpOUUVISWlZMU5EWXpNaFlWRkFZakVTSW1OVFEyTXpJV0ZSUUdJd0VpSmpVME5qTXlGaFVVQmdrQkZ3RTFJd0dXQ0FocFNrcHBhVW9VSlJGcGFSRWxGRXBwYVVwS2FRZ0lhZ0U2aHYzV295VTBOQ1VsTlRVbEpUUTBKU1UxTlNVQkRRa05EUWtKRFEwQk1mN3pXUUU2aGdLREVTVVVTbWxwU2twcENBaHFhZ2dJYVVwS2FXbEtGQ1VSYWY3SExRSXBFRFVsSlRRMEpTVTEvZWMwSlNVMU5TVWxOQUZRRFFrSkRRMEpDUTBCcWY3eldRRTVMUUFBQndDR0FGWURlZ01xQUFzQUR3QWJBQ2dBTEFBNEFEd0FBRGNpQmhVVUZqTXlOalUwSmdVMUlSVURJZ1lWRkJZek1qWTFOQ1lITWhZVkZBWWpJaVkxTkRZekJTRTFJUUV5RmhVVUJpTWlKalUwTmdVaE5TSEdHaVltR2hzbEpRS1ovZWFhR2lZbUdoc2xKUnNTR1JrU0VSa1pFUUlKL3BFQmIvMzNHeVVsR3hvbUpnTE8vZVlDR3RZbUdoc2xKUnNhSm10VlZRR1ZKaG9hSmlZYUdpWVZHUklTR1JrU0VobFdWZ0UvSlJzYUppWWFHeVZxVlFBQUFBRUJLUUNaQXRjQzV3QUtBQUFCTng0QkZ3Y25OeGNSTXdJZ2lRd1dETmZYTG9sQUFSU0pDeGNMMTljdGlRSFRBQUVCWGdDcEFxSUMxd0FNQUFBSkFTYzNKemNXRng0QkZ4WVhBcUwrNlMzcDZTMGpJeU5GSXlNakFjRCs2UzdwNlM0akl5TkdJaU1qQUFBQUFBVUFRd0J6QTcwRERRQXNBRW9BYUFCekFIMEFBQUUrQVRjNkFUTVdGeDRCRnhZWE1BWUhEZ0VIRndjbkJnY0dKaWNtSnk0Qkp5NEJKekEyTno0Qk55YzNGd2NPQVE4QkZoY2VBUmNXTno0Qk55Y09BU01pSnk0Qkp5WTFORFkzSndFK0FUOEJKaWN1QVNjbUJ3NEJCeGMrQVRNeUZ4NEJGeFlWRkFZSEZ3RU9BUlVVRmpNeU5qY25CVDRCTlRRbUl5SUdCd0VxTDJnMkJ3UUhTRU5DY2kwdEd6a3VFQ1FUUGkxTE9VQkFnRDQ5TlNsRUdRb1BDaVViRnpjZ1BpMUtDakZPR0FFZE56ZUpURXhJQ3hZS0hSeEVKaThvS1QwU0VSY1ZNQUhCTVUwWUFSZ25LR1U3T3o0cFVDVWtIRVFtTGlrcFBSRVNHQlVxL3AwTURsNUNHQzBUM2dFTERRNWVRaGtzRXdMRUZ4c0NBaGdYVWprNFJIWXdFUjROUGkxTEhBME1DQlVWSmg1S0xCRWlHRk1rSHpZV1BpMUpVU0ZaTndKRk5UVS9Cd2NYQkFnRkhSVVlFaEk4S1NrdUprUWNNZjZaSVZvM0FqZ3VMa0VTRWdFQkV4RWpGUmNSRWowcEtDOGxSUndxQVFnVExCbENYZzROM2JBVExSaERYUTRNQUFRQVF3Q1pBNzBDOWdBa0FFTUFZQUJ2QUFBQkZoY2VBUmNXRnpBR0J3WUhEZ0VuSmljdUFTY3VBU2N3TmpjMk56NEJOelkzT2dFekJ3WUhEZ0VIQmc4QkZoY2VBUmNXTnpZM1BnRTNOajhCSmljdUFTY21JeGN5Rng0QkZ4WVZGQWNPQVFjR0l5SW5MZ0VuSmpVME56NEJOell6RnpVMEppTWlCaDBCRkJZek1qWTFBZ2xJUTBKeUxTMGJPUzQ2VGs2b1UxUkZLVVFaQ2c4S0pSc2dLU3BnTlRVM0J3UUhFVHM0TjJBbkpoZ0JIVGMzaVV4TVNDb2xKa0FhR2hJQkdDY29aVHM3UGdndEtDYzdFUklTRVRzbktDMHRLQ2M3RVJJU0VUc25LQzJnWGtKQ1hsNUNRbDRDOWdJWUYxSTVPRVIyTUQwakpCQVZGREllU2l3UkloaFRKQ3NqSXpJT0RnSkFBaElUUUMwc05nSkZOVFUvQndjWERSWVdPeU1qS0FNNExpMUNFaEVmRVJFN0p5Z3RMU2duT3hJUkVSSTdKeWd0TFNnbk94RVIyQUZDWGw1Q0FrSmVYa0lBQWdEQUFLQURRQU1BQUJzQU13QUFBUVlIRGdFSEJnY09BUjBCQnpRMkp6UW1KeVluTGdFbkppYzFJUVVVRmhjV0Z4NEJGeFlYRlRjMU5qYytBVGMyTno0Qk5RTkFBUllWUVNVbUlBUUV3QUlDQlFNaEpTWkFGaFVCQW9EOXdBUUVJU1VtUUJZVkFVQUJGaFZCSlNZZ0JBUUN1aUFmSHo4Z0lDSUZDd1oxa0VLRFFnWUtCQ0loSWtBZUh4MUdRQWNPQmlJaElrQWVIeDJHTUZZZ0h4OC9JQ0FpQmc0SEFBQUFBZ0QxQUtrREN3TFhBQWNBQ3dBQUFRY1hCd2tCSGdFbEVTTVJBd3ZwNlMzKzZRRVhDeGYrTlVBQ3FlbnBMZ0VYQVJjTUZnditBQUlBQUFBQURBREFBTUFEUUFMQUFBTUFCd0FMQUE4QUV3QVhBQnNBSHdBakFDY0FLd0F2QUFBbEl6VXpGeU0xTXhjak5UTVhJelV6SlNNMU14Y2pOVE1YSXpVekZ5TTFNeVVqTlRNWEl6VXpGeU0xTXhjak5UTUJBRUJBd0VCQXdFQkF3RUJBL2NCQVFNQkFRTUJBUU1CQVFQM0FRRURBUUVEQVFFREFRRURBZ0lDQWdJQ0FnRUNBZ0lDQWdJQ0FRSUNBZ0lDQWdJQUFBQWdBUC8vL0E4RURnUUFuQUZBQVZBQllBRndBWUFCa0FHZ0FBQUVlQVJjV0ZSWVVCeFFIRGdFSEJpTUdJaWNpSnk0Qkp5WTFKalEzTkRjK0FUYzJNell5RnpJRklnWUhCZ2NPQVJjVUZ4NEJGeFlYRmpJM05qYytBVGMyTnpZMEp5WW5MZ0VuSmlNaUJnY0dJeE1qTlRNRklUVWhKU00xTXdVaE5TRWxJelV6QlNFMUlRTWtQbHdDQVFFQkFRSmNQa2xKU1pKSlNVazlYUUlCQVFFQkFsdytTVWxKa2tsSi9nVWxPZ0VCQVFFQkFRTUNOU1JKU1VxU1NrbEpKRFVDQXdFQkFRRURBalVrU1VoSmtVbElTZUNBZ0FHQS9zQUJRUDZBZ0lBQmdQN0FBVUQrQUlDQUFnRCtRQUhBQTRBQ1hENUpTVW1TU1VsSlBsd0NBUUVCQVFKY1BrbEpTWkpKU1VrK1hBSUJBUUZCT0NaSVNVbVNTVWxKSkRVQ0F3RUJBUUVEQWpVa1NVbEtra3BKU1NRMUFnTUJBUUg5NEVCQVFFQkFRRUJBUUVCQUFBQUFBQVFBUXdESUE3MEN1QUFrQUUwQVlBQndBQUFCRmhjZUFSY1dGekFHQndZSERnRUhCaWNtSnk0Qkp5WW5NRFkzTmpjK0FUYzJNem9CQnlJR0J3WUhEZ0VIQmdjd0ZoY1dGeDRCTnpZM05qYytBVGMyTnpBbUp5WW5MZ0VuSmlNcUFTTVhIZ0VWRkFZSERnRW5MZ0VuTkRZM1BnRXpCdzRCQndZV0Z4WTJOelltSnk0Qkl3SUpRRUpCZFM4d0hVSTdLUzh2WXpJeU1EczVPbVlwS1JsRlB5RWxKVTRvS0NjSEJBb05HUXd1TUM5Vkl5TVZIeDhxTkRSdk9EZ3hLaWdvU0IwZEVoOGZIaVVrVHlvcEtBWUVCaEpHaXhnWk1IdzBQR2NDR1J3a1Vqb1RJMGdXR3hvdlBZd2VHeUF3RnlBb0FyZ0JEQXc1THk5SWZTa2RFaEVSQVFFREJCQVBPeTB0UG9FcUZ3NFBFUVFFUUFFQkF3c0xLeUVoTGo4Y0tCVVZFUUlDQndZTkRTd2VIaWMvSFJ3VEVoUUZCQjBDUlZRZ1BSUW1CZ1VGVFVFaVFoWWFERUFCQ1JrZ1hBMFJCeVVpWEFzR0FnQUNBUFVBcVFNTEF0Y0FEQUFRQUFBSkFTYzNKemNXRng0QkZ4WVhFeU1STXdJNS91a3Q2ZWt0SXlNaVJpTWpJOUpBUUFIQS91a3U2ZWt1SXlNalJpSWpJLzhBQWdBQUFBQUNBSGtBa3dPSEF1MEFDd0FXQUFBQkJ5RVZJUmNIQ1FFZUFSY0ZGemNuSVRVaE55Y09BUUkwUUFHVC9tMUFqZjdTQVM0alJ5UCtvTk15Z0FIdS9oS0FNalZwQW1CQXdFQ05BUzBCTFNOSEk2RFRNNEJBZ0RNMWFRQUFBQWdBWUFBZ0E2QURZQUFEQUFrQUR3QVRBQmNBSFFBakFDY0FBQ1VqRVRNbkJ5YzNIZ0VGQnljM0hnRTNJVFVoQlNFMUlUY0hKemNlQVNVSEp6Y2VBUVVqRVRNQ0lFQkFjODB0elFzWEFhc3R6UzB6WjRiL0FBRUEvY0QvQUFFQVRTM05MVE5uQWRQTkxjMExGLzdlUUVBZ0FRQWd6UzNOQ3hlckxjMHRNMmZOUUVCQVlDM05MVE5uYmMwdHpRc1hpd0VBQUFBQ0FQRUFzUU1QQXM4QUJ3QU9BQUFUSHdFbk55Y0hKeVV2QVJjSEZ6ZnhBOTlIZEZOMVJ3SWVBOTlIZEZOMUFaUGZBMGQxVTNSSFd0OERSM1ZUZEFBQUF3REFBT0FEUUFLZ0FBTUFCd0FMQUFBbElUVWhOU0UxSVRVaE5TRURRUDJBQW9EOWdBS0EvWUFDZ09CQWdFQ0FRQUFBQUFJQXl3Q0tBelVDOWdBSEFBOEFBQ1V2QVJjSEZ6Y1hFeDhCSnpjbkJ5Y0IyZ1RlUjNSVGRVZE1CTjVIZEZOMVI3amVCRWgxVTNWSEFoRGVCRWgxVTNWSEFBQUFBZ0NBQVdBRGdBSWdBQU1BQndBQUFTRTFJUVVWSVRVRGdQMEFBd0Q5UUFLQUFXREFRRUJBQUFFQlhnQ3BBcUlDMXdBTUFBQUpBU2MzSnpjV0Z4NEJGeFlYQXFMKzZTM3A2UzBqSXlORkl5TWpBY0QrNlM3cDZTNGpJeU5HSWlNakFBQUFBQUlBUUFDZ0E4QUM0QUFLQUJZQUFBRTNIZ0VYQnljM0Z4RXpBU01SQnljM0hnRVhCeWNSQVVHUURCY000T0F2a0VJQndFS1FMK0E0Y0RndmtBRVloZ3NXQzlMU0xJWUJ5UDNBQWNpR0xOSTBhVFVzaHY0NEFBQUdBSFlBUUFPTEEwc0FIQUF5QUVFQVV3QmlBRzRBQUFFV0Z4NEJGeFlIQmdjT0FTY21KeVluTGdFM05qYzJOejRCTnpZWEJ3WUhEZ0VIQmhjV0Z4NEJOelkzTmljdUFTY21CeGNXQnc0QkJ3WW5MZ0V2QVFFZUFRRVdOejRCTnpZM05pWW5CZ2NPQVFjR0J4TXlGaDhCQVNZbkpqWTNOamM2QVFjR0J3NEJCd1lYQVM0QkJ3SUdZbFZWYXc0TkxTZE9UYmRkWGtjdkhoNFhDQWdjR1NjbVh6YzNPUXBUUjBoYUNnc25LRk5UdVZWVkxTVUtDVmhKU1Z6ekl3Z0lUVUJCVGh3MEdDZ0Jnd1lML3Rnb0tTcEpIQnNNQ0FFSklTQWhRU0VnSVVNaFFCMHAvbjBsQlFZeU9EaFlCQW9HTUNvcU53b0tEZ0VHRVNJU0Ewc0NOVFdrWldSZ1ZEYzNKUlVVUXlzNU9uNUFRRG95S2lrNkVCQUJRQUV0TFl4VlZGRlRMUzBFS2l0Y1RGVlZqeTh1QWMxQVNrbDdKU1lJQWhFTkZnR0RDaFQrclF3RkJTY2dIeWtlUFIwZ0lTRkJJU0FoQWRZUkVCYitmRUZMVElJdUxRWkFBaGtaVFRBdkxnRUZCUVVCQUFBQUFBTUFnQUF3QTRBRFVBQVdBQ0lBTmdBQUFUUW1JeUlHRlNNaUJoVVJGQll6SVRJMk5SRTBKaU1GTWhZVkZBWWpJaVkxTkRZQklTSW1OUkUwTmpzQkZTRTFNeklXRlJFVUJnS0FPRWhJT0lBMVMwczFBZ0ExUzBzMS93QVNHUmtTRWhrWkFSTCtBQm9tSmhwQUFZQkFHaVltQXZBWVNFZ1lTelgrUURWTFN6VUJ3RFZMRVJnUkVSZ1lFUkVZL1pFbUdnSEFHaWFBZ0NZYS9rQWFKZ0FBQUFBQ0FIQUFNQU9RQTFBQUtBQkFBQUFCSnpBMk56NEJGemNtTno0Qk56WXhGaGNlQVJjV0Z3NEJCdzRCSndjZUFSY1dCZzhCSndjbk53RU9BUjhCQnlZR0J3RStBVGMySmljM01CWTNKekFHTVFGWmxRWVBJWEV3WlFrUUVDd1VGQ1VrSlVrbEpTUUZDd1VhUlNwcUFRRUNBeWd2R0pycExla0JDQkVhQ2hDZ01HSVRBU0VDQkFJZUJ3ZWFPaVRhQVFGSGxTY1ZMUThKWXh3ZEhTNFBEeVVsSkVvbEpDVUhEZ2NqTHdkbkNRRWJNMkFZREpycUx1a0J0ZzRtRHhlZkRBSWUvdDhDQXdJYVZpeWFFU3JaQVFBQUNnQS8vLzhEd1FPQkFDY0FPd0JIQUdFQVp3QnVBSHNBaGdDTUFKSUFBQUVlQVJjV0ZSWVVCeFFIRGdFSEJpTUdJaWNpSnk0Qkp5WTFKalEzTkRjK0FUYzJNell5RnpJVElSRVdNeFkyTnpZM1BnRTNOamMrQVNjMEp3RVVGaFVlQVJjeUZqTTFJd0VISnpjZUFSY0hKeFVPQVFjakZ3Y25OeDRCRndjV05qYzFCUlFXRlRNMUp3WVVCek0xSXpjcUFTTWlCZ2NVQmhVek5UTWxGVE0wSmpVdUFTY2lKaVVHSWdjVk16Y21JaU1WTXdNa1Bsd0NBUUVCQVFKY1BrbEpTWkpKU1VrOVhRSUJBUUVCQWx3K1NVbEpra2xKcVAyNlBUMDllajA5UFNRMUFnSUNBUUVCQXZ6OEFRSTFKQWdRQ0h3Q1FRa3VWeFlyRmk0SkFWdy9kd291VmxZTUZnd0xVWUlCL2J3QmZuMEJBWDk5dnhndUZ5VTZBUUY4UWdISGZRRUNOU1FJRVA3eklVRWdnc01nUVNHQ0E0QUNYRDVKU1VtU1NVbEpQbHdDQVFFQkFRSmNQa2xKU1pKSlNVaytYQUlCQVFIL0FQMjhBZ0VCQVFJQ0FqVWtQVDA4ZWowOVBQNDhDUkVJSkRVQ0FYNEJGZ291VmhVc0ZTNEtjejlmQWdrdVYxY01GZ3dLQVIxRmMxUWhRQ0NCd2lGQUlZTC9PQ1lZTUJsQmYzOEpFUWtrTlFJQkFnRUJmNEFCZ1FBQUFnQ2dBR0FEWUFNZ0FBc0FGd0FBQVNFVklSRWpFU0UxSVJFekJ4RWhGU0VSTXhFaE5TRVJBbUFCQVA4QXdQOEFBUURBZ1A4QUFRQkFBUUQvQUFJZ3dQOEFBUURBQVFCQS93QkEvd0FCQUVBQkFBQUFBUUZlQUtrQ29nTFhBQWNBQUFFSEZ3Y0pBUjRCQXFMcDZTMys2UUVYQ3hjQ3FlbnBMZ0VYQVJjTUZnQUNBQUQvd0FRQUE4QUFHd0EzQUFBQklnY09BUWNHRlJRWEhnRVhGak15Tno0Qk56WTFOQ2N1QVNjbUJ6SVhIZ0VYRmhVVUJ3NEJCd1lqSWljdUFTY21OVFEzUGdFM05nSUFhbDFkaXlrb0tDbUxYVjFxYWwxZGl5a29LQ21MWFYxcVhWRlNlaU1qSXlONlVsRmRYVkZTZWlNakl5TjZVbEVEd0NncGkxMWRhbXBkWFlzcEtDZ3BpMTFkYW1wZFhZc3BLRUFqSTNwU1VWMWRVVko2SXlNakkzcFNVVjFkVVZKNkl5TUFBd0FBLzhBRUFBUEFBQnNBTndCVEFBQUJJZ2NPQVFjR0ZSUVhIZ0VYRmpNeU56NEJOelkxTkNjdUFTY21CeklYSGdFWEZoVVVCdzRCQndZaklpY3VBU2NtTlRRM1BnRTNOZ0VVQnc0QkJ3WWpJaWN1QVNjbU5UUTNQZ0UzTmpNeUZ4NEJGeFlDQUdwZFhZc3BLQ2dwaTExZGFtcGRYWXNwS0NncGkxMWRhbDFSVW5vakl5TWplbEpSWFYxUlVub2pJeU1qZWxKUkFaMFpHVmM2TzBKQ096cFhHUmtaR1ZjNk8wSkNPenBYR1JrRHdDZ3BpMTFkYW1wZFhZc3BLQ2dwaTExZGFtcGRYWXNwS0VBakkzcFNVVjFkVVZKNkl5TWpJM3BTVVYxZFVWSjZJeVArUUVJN09sY1pHUmtaVnpvN1FrSTdPbGNaR1JrWlZ6bzdBQUFBQUFJQWVRQ1RBNGNDN1FBT0FCa0FBQWtCSnpjaE5TRW5OeFlYSGdFWEZpVVhJUlVoQnhjM0p3NEJBNGYrMG8xQS9tMEJrMENOSmlZbFRDVW0vc2FBL2hJQjdvQXkwOU1NR2dIQS90T05RTUJBalNVbUprc21KWHFBUUlBejA5TU5HUUFBQUFBQ0FJQUFRQU9BQTBBQURnQVpBQUFCRVNFUkl4RVVGak1oTWpZMUVTTUZOeGNISnpjWEVUTVJNUU1yL2FwVk1pTUNWaU15VmY4QWJqelYxVHh1VmdIQS90VUJLLzdWSXpJeUl3RXJIVzQ4MWRVOGJnR2QvbU1BQVFEcEFSNERGd0ppQUFjQUFBa0NOeGMzSGdFREYvN3AvdWt1NmVrTUZnSTEvdWtCRnkzcDZRc1hBQUFCQVY0QXFRS2lBdGNBQndBQUFRY1hCd2tCSGdFQ291bnBMZjdwQVJjTEZ3S3A2ZWt1QVJjQkZ3d1dBQUVCWGdDcEFxSUMxd0FNQUFBSkFTYzNKemNXRng0QkZ4WVhBcUwrNlMzcDZTMGpJeU5GSXlNakFjRCs2UzdwNlM0akl5TkdJaU1qQUFBQUFBRUE2UUVlQXhjQ1lnQUxBQUFCQnljSEp3RVdGeDRCRnhZREZ5N3A2UzRCRnlNaklrWWpJd0ZMTGVucExRRVhJeU1qUlNNakFBQUFBUURwQU80REZ3S1NBQWNBQUFrQkp6Y1hBUjRCQXhmK2liY3VpUUZKREJZQ1pmNkp0eTJKQVVrTEZ3QUJBVjRBcVFLaUF0Y0FEQUFBQ1FFbk55YzNGaGNlQVJjV0Z3S2kvdWt0NmVrdEl5TWpSU01qSXdIQS91a3U2ZWt1SXlNalJpSWpJd0FBQUFBQkFNQUJvQU5BQWVBQUF3QUFFeUVWSWNBQ2dQMkFBZUJBQUFBQUFRRHBBUjRERndKaUFBY0FBQWtDTnhjM0hnRURGLzdwL3VrdTZla01GZ0kxL3VrQkZ5M3A2UXNYQUFBQkFBQUFBUUFBRWt2aGVWOFBQUFVBQ3dRQUFBQUFBTmxCajQwQUFBQUEyVUdQalFBQS84QUVBQVBBQUFBQUNBQUNBQUFBQUFBQUFBRUFBQVBBLzhBQUFBUUFBQUFBQUFRQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBNEJBQUFBQUFBQUFBQUFBQUFBZ0FBQUFRQUFEOEVBQUJUQkFBQktRUUFBSUFFQUFEVkJBQUFBQVFBQUFBRUFBQUFCQUFBY3dRQUFNQUVBQURBQkFBQlhnUUFBS0FFQUFFcEJBQUFRQVFBQUlZRUFBRXBCQUFCWGdRQUFFTUVBQUJEQkFBQXdBUUFBUFVFQUFEQUJBQUFQd1FBQUVNRUFBRDFCQUFBZVFRQUFHQUVBQUR4QkFBQXdBUUFBTXNFQUFDQUJBQUJYZ1FBQUVBRUFBQjJCQUFBZ0FRQUFIQUVBQUEvQkFBQW9BUUFBVjRFQUFBQUJBQUFBQVFBQUhrRUFBQ0FCQUFBNlFRQUFWNEVBQUZlQkFBQTZRUUFBT2tFQUFGZUJBQUF3QVFBQU9rQUFBQUFBQW9BRkFBZUFNSUJCZ0VlQVl3QnFBSHFBaVFDV0FLR0Fwb0N2QUxTQXg0RFBnTzJCQklFS2dSSUJRZ0ZyZ1lDQmlBR2FnY01CN1lIMmdnSUNGSUljZ2lNQ0s0SXdnamdDUXdKeEFvVUNud0xWQXQrQzVRTDZneHFESndNeUF6ZURQUU5FZzB1RFVRTllnMXdEWVlBQUFBQkFBQUFPQUNUQUF3QUFBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdDdUFBRUFBQUFBQUFFQUNBQUFBQUVBQUFBQUFBSUFCd0JwQUFFQUFBQUFBQU1BQ0FBNUFBRUFBQUFBQUFRQUNBQitBQUVBQUFBQUFBVUFDd0FZQUFFQUFBQUFBQVlBQ0FCUkFBRUFBQUFBQUFvQUdnQ1dBQU1BQVFRSkFBRUFFQUFJQUFNQUFRUUpBQUlBRGdCd0FBTUFBUVFKQUFNQUVBQkJBQU1BQVFRSkFBUUFFQUNHQUFNQUFRUUpBQVVBRmdBakFBTUFBUVFKQUFZQUVBQlpBQU1BQVFRSkFBb0FOQUN3UVdkQ1lXeG9ZVzBBUVFCbkFFSUFZUUJzQUdnQVlRQnRWbVZ5YzJsdmJpQXhMakFBVmdCbEFISUFjd0JwQUc4QWJnQWdBREVBTGdBd1FXZENZV3hvWVcwQVFRQm5BRUlBWVFCc0FHZ0FZUUJ0UVdkQ1lXeG9ZVzBBUVFCbkFFSUFZUUJzQUdnQVlRQnRVbVZuZFd4aGNnQlNBR1VBWndCMUFHd0FZUUJ5UVdkQ1lXeG9ZVzBBUVFCbkFFSUFZUUJzQUdnQVlRQnRSbTl1ZENCblpXNWxjbUYwWldRZ1lua2dTV052VFc5dmJpNEFSZ0J2QUc0QWRBQWdBR2NBWlFCdUFHVUFjZ0JoQUhRQVpRQmtBQ0FBWWdCNUFDQUFTUUJqQUc4QVRRQnZBRzhBYmdBdUFBQUFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PVxcXCIpIGZvcm1hdChcXFwidHJ1ZXR5cGVcXFwiKTtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICBmb250LXN0eWxlOiBub3JtYWw7IH1cXG5cXG4uYWctdGhlbWUtYmFsaGFtLWRhcmsge1xcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2O1xcbiAgY29sb3I6ICNGNUY1RjU7XFxuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBsaW5lLWhlaWdodDogMTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRoZW1lLWJhbGhhbS1kYXJrLmFnLWRuZC1naG9zdCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC5hZy1wb3B1cC1lZGl0b3IsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2VsZWN0LWFnZy1mdW5jLXBvcHVwLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXIge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1oZWFkZXIgLmFnLXRhYiB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xcbiAgICBtYXJnaW46IDRweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgcGFkZGluZzogNHB4IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItaGVhZGVyIC5hZy10YWIuYWctdGFiLXNlbGVjdGVkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMzQzNjtcXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMEIwRkY7XFxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMmQzNDM2O1xcbiAgICBib3JkZXItY29sb3I6ICM0MjQyNDI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayBsYWJlbCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAqIHtcXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrICo6Zm9jdXMsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAqICo6YmVmb3JlLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgKiAqOmFmdGVyIHtcXG4gICAgICBvdXRsaW5lOiBub25lO1xcbiAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdGFiIHtcXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMiB7XFxuICAgIHBhZGRpbmctbGVmdDogNTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogODRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNCB7XFxuICAgIHBhZGRpbmctbGVmdDogODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDExMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTEycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC01IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC01IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC02IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC02IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTY4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC03IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE5NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC03IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTk2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC04IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIyNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC04IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC05IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI1MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC05IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjUycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTEwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTExIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTExIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMiB7XFxuICAgIHBhZGRpbmctbGVmdDogMzM2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMzM2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTEzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM2NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDM2NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMjgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzOTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzOTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNSB7XFxuICAgIHBhZGRpbmctbGVmdDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ0OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ0OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMzQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDM2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNTA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDUzMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDUzMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMCB7XFxuICAgIHBhZGRpbmctbGVmdDogNDAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIwIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMSB7XFxuICAgIHBhZGRpbmctbGVmdDogNTg4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTg4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDYxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMyB7XFxuICAgIHBhZGRpbmctbGVmdDogNDYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIzIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2NDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2NDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctbGVmdDogNjcycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1yaWdodDogNjcycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDcwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctbGVmdDogNTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI2IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3MjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctbGVmdDogNzU2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzU2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc4NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc4NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctbGVmdDogNTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI5IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4MTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDYwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctbGVmdDogODQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1yaWdodDogODQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg2OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg2OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctbGVmdDogNjQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMyIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4OTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4OTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctbGVmdDogOTI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1yaWdodDogOTI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk1MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk1MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctbGVmdDogNzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM1IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDcyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTAwOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwMDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTAzNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwMzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTA2NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwNjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTA5MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwOTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDgwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTEyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDgyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTE0OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExNDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTE3NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExNzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTIwNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyMDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTIzMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyMzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDkwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDkwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTI2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDkyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDkyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTI4OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyODhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTMxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEzMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00OCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00OCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTM0NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00OCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEzNDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTM3MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEzNzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsIC5hZy1pY29uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoZWNrYm94LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJhZGlvLWJ1dHRvbiwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b2dnbGUtYnV0dG9uIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGVja2JveCBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yYWRpby1idXR0b24gbGFiZWwsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9nZ2xlLWJ1dHRvbiBsYWJlbCB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGVja2JveCBsYWJlbDplbXB0eSwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yYWRpby1idXR0b24gbGFiZWw6ZW1wdHksIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9nZ2xlLWJ1dHRvbiBsYWJlbDplbXB0eSB7XFxuICAgICAgICBtYXJnaW46IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGVja2JveDpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJhZGlvLWJ1dHRvbjpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvZ2dsZS1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtbGVhZi1pbmRlbnQge1xcbiAgICBtYXJnaW4tbGVmdDogMjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNlbGwge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNlbGw6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy5hZy1jZWxsLWxhc3QtbGVmdC1waW5uZWQsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1sYXN0LWxlZnQtcGlubmVkIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1sZWFmLWluZGVudCB7XFxuICAgIG1hcmdpbi1yaWdodDogMjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNlbGwge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LmFnLWNlbGwtZmlyc3QtcmlnaHQtcGlubmVkLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2VsbDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtZmlyc3QtcmlnaHQtcGlubmVkIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNlbGw6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLWxhc3QtbGVmdC1waW5uZWQge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXZhbHVlLWNoYW5nZS1kZWx0YSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEtdXAge1xcbiAgICBjb2xvcjogIzQzYTA0NzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEtZG93biB7XFxuICAgIGNvbG9yOiAjZTUzOTM1OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXZhbHVlLWNoYW5nZS12YWx1ZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XFxuICAgIHBhZGRpbmctbGVmdDogMXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcHg7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxcztcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxczsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy12YWx1ZS1jaGFuZ2UtdmFsdWUtaGlnaGxpZ2h0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMTYwLCAxMzMsIDAuNSk7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl0ge1xcbiAgICBib3JkZXItd2lkdGg6IDFweDtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZWNmMGYxOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdOmRpc2FibGVkIHtcXG4gICAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjM4KTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ4LCA0NiwgNDYsIDAuMyk7XFxuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzNiwgMjQwLCAyNDEsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0ge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwicmFuZ2VcXFwiXSB7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSB7XFxuICAgIGJvcmRlci13aWR0aDogMXB4O1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6ICNlY2YwZjE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhOmRpc2FibGVkIHtcXG4gICAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjM4KTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ4LCA0NiwgNDYsIDAuMyk7XFxuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzNiwgMjQwLCAyNDEsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaGVhZGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWYyMDtcXG4gICAgY29sb3I6IHJnYmEoMjQ1LCAyNDUsIDI0NSwgMC42NCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBpbm5lZC1yaWdodC1oZWFkZXIge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGlubmVkLWxlZnQtaGVhZGVyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItcm93IHtcXG4gICAgYm9yZGVyOiBub25lOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJvdyB7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogIzQyNDI0MjtcXG4gICAgYm9yZGVyLXdpZHRoOiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93Om5vdCguYWctcm93LWZpcnN0KSB7XFxuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMCAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LmFnLXJvdy1sYXN0IHtcXG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LW9kZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNjJjMmU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LWV2ZW4ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhvcml6b250YWwtbGVmdC1zcGFjZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaG9yaXpvbnRhbC1sZWZ0LXNwYWNlci5hZy1zY3JvbGxlci1jb3JuZXIge1xcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ob3Jpem9udGFsLXJpZ2h0LXNwYWNlciB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhvcml6b250YWwtcmlnaHQtc3BhY2VyLmFnLXNjcm9sbGVyLWNvcm5lciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LWhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNkNDc0OTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1udW1lcmljLWNlbGwge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItY2VsbC1sYWJlbCAuYWctaGVhZGVyLWljb24ge1xcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICBvcGFjaXR5OiAwLjg3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1jZWxsLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItZ3JvdXAtY2VsbCB7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogIzQyNDI0MjtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbiAgICBib3JkZXItd2lkdGg6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItY2VsbC5hZy1oZWFkZXItY2VsbC1tb3ZpbmcsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaGVhZGVyLWdyb3VwLWNlbGwuYWctaGVhZGVyLWNlbGwtbW92aW5nIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaGVhZGVyLWNlbGw6bm90KC5hZy1oZWFkZXItZ3JvdXAtY2VsbC1uby1ncm91cCksXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaGVhZGVyLWdyb3VwLWNlbGw6bm90KC5hZy1oZWFkZXItZ3JvdXAtY2VsbC1uby1ncm91cCkge1xcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItcm93OmZpcnN0LWNoaWxkIC5hZy1oZWFkZXItY2VsbCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItcm93OmZpcnN0LWNoaWxkIC5hZy1oZWFkZXItZ3JvdXAtY2VsbCB7XFxuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcXG4gICAgY3Vyc29yOiBjb2wtcmVzaXplOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1zZWxlY3QtYWxsIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwge1xcbiAgICBsaW5lLWhlaWdodDogMjZweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMXB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJvdy1kcmFnIHtcXG4gICAgY3Vyc29yOiBtb3ZlO1xcbiAgICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcXG4gICAgY3Vyc29yOiBncmFiO1xcbiAgICBtaW4td2lkdGg6IDI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LWRyYWdnaW5nLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJvdy1kcmFnZ2luZyAuYWctcm93LWRyYWcge1xcbiAgICBjdXJzb3I6IG1vdmU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyYWcge1xcbiAgICBjdXJzb3I6IG1vdmU7XFxuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xcbiAgICBjdXJzb3I6IGdyYWI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LWRyYWdnaW5nIHtcXG4gICAgb3BhY2l0eTogMC41OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzOm5vdCguYWctY2VsbC1yYW5nZS1zZWxlY3RlZCksXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctY2VsbC1mb2N1cy5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsLmFnLWNlbGwtcmFuZ2UtaGFuZGxlLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzOm5vdCguYWctY2VsbC1yYW5nZS1zZWxlY3RlZCksXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2VsbC1mb2N1cy5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsLmFnLWNlbGwtcmFuZ2UtaGFuZGxlIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwQjBGRjtcXG4gICAgb3V0bGluZTogaW5pdGlhbDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItY2VsbC1yZXNpemUge1xcbiAgICB3aWR0aDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUge1xcbiAgICBiYWNrZ3JvdW5kOiAjMmQzNDM2O1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51IC5hZy1tZW51LWxpc3Qge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XFxuICAgICAgbWFyZ2luLXRvcDogNHB4O1xcbiAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudSAuYWctbWVudS1vcHRpb24tYWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q0NzQ5OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudSAuYWctbWVudS1vcHRpb24tZGlzYWJsZWQge1xcbiAgICAgIG9wYWNpdHk6IDAuNTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLXRleHQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1pY29uIHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICAgICAgbWluLXdpZHRoOiAyNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudSAuYWctbWVudS1vcHRpb24tc2hvcnRjdXQge1xcbiAgICAgIHBhZGRpbmctbGVmdDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudSAuYWctbWVudS1zZXBhcmF0b3Ige1xcbiAgICAgIGhlaWdodDogOHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51IC5hZy1tZW51LXNlcGFyYXRvciA+IHNwYW4ge1xcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QnMSclMjBoZWlnaHQlM0QnOHB4JyUyMHZpZXdCb3glM0QnMCUyMDAlMjAxJTIwOHB4JyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclM0UlM0NsaW5lJTIweDElM0QnMCclMjB5MSUzRCc0cHgnJTIweDIlM0QnMSclMjB5MiUzRCc0cHgnJTIwc3Ryb2tlLXdpZHRoJTNEJzEnJTIwc3Ryb2tlJTNEJyUyMzQyNDI0MiclMkYlM0UlM0MlMkZzdmclM0VcXFwiKTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLXBvcHVwLXBvaW50ZXIge1xcbiAgICAgIHdpZHRoOiAyNHB4O1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrLmFnLWRuZC1naG9zdCB7XFxuICAgIGJhY2tncm91bmQ6ICMyZDM0MzY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgY29sb3I6IHJnYmEoMjQ1LCAyNDUsIDI0NSwgMC42NCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgIGhlaWdodDogMzJweCAhaW1wb3J0YW50O1xcbiAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwIDhweDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsuYWctZG5kLWdob3N0IHNwYW4sXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyay5hZy1kbmQtZ2hvc3QgZGl2IHtcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgbWFyZ2luOiAwO1xcbiAgICAgIHBhZGRpbmc6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrLmFnLWRuZC1naG9zdCAuYWctZG5kLWdob3N0LWljb24ge1xcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xcbiAgICAgIG9wYWNpdHk6IDAuODc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdGFiLWhlYWRlciB7XFxuICAgIGJhY2tncm91bmQ6ICMxYzFmMjA7XFxuICAgIG1pbi13aWR0aDogMjIwcHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItaGVhZGVyIC5hZy10YWIge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICAgIGhlaWdodDogMTZweDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgICAgIGZsZXg6IG5vbmU7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItYm9keSB7XFxuICAgIHBhZGRpbmc6IDJweCAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0ID4gZGl2OmZpcnN0LWNoaWxkID4gc3BhbiB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCA+IGRpdjpsYXN0LWNoaWxkID4gc3BhbiB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCA+IGRpdjpsYXN0LWNoaWxkID4gLmFnLW1lbnUtb3B0aW9uLXBvcHVwLXBvaW50ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctZmlsdGVyLXNlbGVjdCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1ib2R5IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctZmlsdGVyLWJvZHkge1xcbiAgICBtYXJnaW4tdG9wOiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctZmlsdGVyLWZpbHRlciB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctZmlsdGVyLXNlbGVjdCB7XFxuICAgIG1hcmdpbjogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdIHtcXG4gICAgbWFyZ2luOiAwIDNweCAwIDZweDtcXG4gICAgd2lkdGg6IDEycHg7XFxuICAgIGhlaWdodDogMTdweDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1zZXQtZmlsdGVyLWxpc3Qge1xcbiAgICBoZWlnaHQ6IDE2OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctc2V0LWZpbHRlci1pdGVtIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItaXRlbSA+IGRpdiwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItaXRlbSA+IHNwYW4ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1oZWFkZXItY29udGFpbmVyOm50aC1jaGlsZCgyKSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctZmlsdGVyLWFwcGx5LXBhbmVsIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBwYWRkaW5nLXRvcDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1maWx0ZXItYXBwbHktcGFuZWwgYnV0dG9uIHtcXG4gICAgICBsaW5lLWhlaWdodDogMS41OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1maWx0ZXItYXBwbHktcGFuZWwgYnV0dG9uICsgYnV0dG9uIHtcXG4gICAgICBtYXJnaW4tbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIHtcXG4gICAgaGVpZ2h0OiAxNnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWxhYmVsLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLWdyb3VwLWljb25zLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXNlbGVjdC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1sYWJlbCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi1ncm91cC1pY29ucyB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1wcmltYXJ5LWNvbHMtbGlzdC1wYW5lbCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICBwYWRkaW5nLXRvcDogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctcHJpbWFyeS1jb2xzLWxpc3QtcGFuZWwgPiBkaXYge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4uYWctdG9vbHBhbmVsLWFkZC1ncm91cC1pbmRlbnQge1xcbiAgICBtYXJnaW4tbGVmdDogMjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wcmltYXJ5LWNvbHMtaGVhZGVyLXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgIGhlaWdodDogMzJweDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwgPiBkaXYge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICBtYXJnaW46IDAgNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCAuYWctZmlsdGVyLWJvZHkge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwge1xcbiAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCAuYWctZmlsdGVyLXRvb2xwYW5lbC1pbnN0YW5jZSB7XFxuICAgICAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjY0KTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgICAgIC1tcy1mbGV4OiBhdXRvO1xcbiAgICAgICAgICAgICAgICBmbGV4OiBhdXRvO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAtbXMtZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xcbiAgICAgICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCAuYWctZmlsdGVyLXRvb2xwYW5lbC1pbnN0YW5jZSAuYWctZmlsdGVyLXRvb2xwYW5lbC1oZWFkZXIge1xcbiAgICAgICAgICBwYWRkaW5nOiAwIDVweDsgfVxcbiAgICAgICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciA+IGRpdiB7XFxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItYm9keS13cmFwcGVyIHtcXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItYWlyIHtcXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgICAgICBib3JkZXItbGVmdDogMDtcXG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcXG4gICAgICAgIHBhZGRpbmc6IDRweCAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1waXZvdC1tb2RlLXBhbmVsIHtcXG4gICAgICBoZWlnaHQ6IDMycHg7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgICAgIGZsZXg6IG5vbmU7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctcGl2b3QtbW9kZS1wYW5lbCAuYWctcGl2b3QtbW9kZS1zZWxlY3Qge1xcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICBtYXJnaW4tbGVmdDogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgICAgcGFkZGluZzogNHB4IDA7XFxuICAgICAgcGFkZGluZy1ib3R0b206IDhweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCAuYWctY29sdW1uLWRyb3AtZW1wdHktbWVzc2FnZSB7XFxuICAgICAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjM4KTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgICAgICBmb250LXNpemU6IDEycHg7XFxuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcXG4gICAgICAgIG1hcmdpbi10b3A6IDRweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCAuYWctY29sdW1uLWRyb3AtbGlzdCB7XFxuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3AgPiBkaXYgPiA6Zmlyc3QtY2hpbGQge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1udW1lcmljLWhlYWRlciAuYWctaGVhZGVyLWNlbGwtbGFiZWwgLmFnLWhlYWRlci1pY29uIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhZ2luZy1wYW5lbCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjY0KTtcXG4gICAgaGVpZ2h0OiAzMnB4O1xcbiAgICBwYWRkaW5nOiAwIDEycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYWdpbmctcGFuZWwgPiBzcGFuIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIC5hZy1pY29uIHtcXG4gICAgd2lkdGg6IDE2cHg7XFxuICAgIGhlaWdodDogMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIC5hZy1wYWdpbmctYnV0dG9uIGJ1dHRvbiB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24uYWctZGlzYWJsZWQgLmFnLWljb24ge1xcbiAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjM4KTtcXG4gICAgb3BhY2l0eTogMC4zODsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIC5hZy1wYWdpbmctYnV0dG9uLmFnLWRpc2FibGVkIGJ1dHRvbiB7XFxuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIHNwYW4ge1xcbiAgICBtYXJnaW46IDAgNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJvdy1zZWxlY3RlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDU4ODA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKSwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtdG9wLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS10b3Age1xcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICMwMEIwRkY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtcmlnaHQsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLXJpZ2h0IHtcXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICMwMEIwRkY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtYm90dG9tLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1ib3R0b20ge1xcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMEIwRkY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtbGVmdCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtbGVmdCB7XFxuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMEIwRkY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNzYsIDI1NSwgMC4yKTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLXJhbmdlLWNoYXJ0IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ1LCAxNjYsIDI1NSwgMC41KTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLXJhbmdlLWNoYXJ0LmFnLWNlbGwtcmFuZ2UtY2hhcnQtY2F0ZWdvcnkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjYsIDE3NywgNzQsIDAuNSk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0xOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE3NiwgMjU1LCAwLjMpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMjpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNzYsIDI1NSwgMC40KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTM6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTc2LCAyNTUsIDAuNSk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC00Om5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE3NiwgMjU1LCAwLjYpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtdG9wLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtdG9wIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAjMDBCMEZGOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC10b3AuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtdG9wLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAjMGYwZjBmOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtcmlnaHQsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodCB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCAjMDBCMEZGOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCAjMGYwZjBmOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjMDBCMEZGOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1ib3R0b20uYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjMGYwZjBmOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtbGVmdCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWxlZnQge1xcbiAgICBib3JkZXItbGVmdDogMXB4IGRhc2hlZCAjMDBCMEZGOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWxlZnQuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkIHtcXG4gICAgICBib3JkZXItbGVmdDogMXB4IGRhc2hlZCAjMGYwZjBmOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbGwtaGFuZGxlLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJhbmdlLWhhbmRsZSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDZweDtcXG4gICAgaGVpZ2h0OiA2cHg7XFxuICAgIGJvdHRvbTogLTFweDtcXG4gICAgcmlnaHQ6IC0xcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMEIwRkY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsbC1oYW5kbGUge1xcbiAgICBjdXJzb3I6IGNlbGw7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmFuZ2UtaGFuZGxlIHtcXG4gICAgY3Vyc29yOiBud3NlLXJlc2l6ZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcge1xcbiAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICBoZWlnaHQ6IDQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC5hZy1jZWxsLWlubGluZS1lZGl0aW5nLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwuYWctcG9wdXAtZWRpdG9yIHtcXG4gICAgYmFja2dyb3VuZDogIzJkMzQzNjtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZjIwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBvcHVwLWVkaXRvciB7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wb3B1cC1lZGl0b3IgLmFnLWxhcmdlLXRleHRhcmVhIHRleHRhcmVhIHtcXG4gICAgICBoZWlnaHQ6IGF1dG87XFxuICAgICAgcGFkZGluZzogMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yaWNoLXNlbGVjdCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFmMjA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3QtbGlzdCB7XFxuICAgICAgd2lkdGg6IDIwMHB4O1xcbiAgICAgIGhlaWdodDogMTgycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3QtdmFsdWUge1xcbiAgICAgIHBhZGRpbmc6IDAgNHB4IDAgMTJweDtcXG4gICAgICBoZWlnaHQ6IDI4cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yaWNoLXNlbGVjdCAuYWctdmlydHVhbC1saXN0LWl0ZW0ge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICBoZWlnaHQ6IDI4cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJpY2gtc2VsZWN0IC5hZy12aXJ0dWFsLWxpc3QtaXRlbTpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q0NzQ5OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LXJvdyB7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LXJvdy1zZWxlY3RlZCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTg4MDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24ge1xcbiAgICBtYXJnaW4tbGVmdDogMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1mbG9hdGluZy1maWx0ZXItYnV0dG9uIGJ1dHRvbiB7XFxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGhlaWdodDogMTZweDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgd2lkdGg6IDE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2VsZWN0aW9uLWNoZWNrYm94Om5vdCguYWctaGlkZGVuKSB+IC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXNlbGVjdGlvbi1jaGVja2JveDpub3QoLmFnLWhpZGRlbikgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWV4cGFuZGVkOm5vdCguYWctaGlkZGVuKSB+IC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1leHBhbmRlZDpub3QoLmFnLWhpZGRlbikgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbnRyYWN0ZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbnRyYWN0ZWQ6bm90KC5hZy1oaWRkZW4pICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jaGVja2JveDpub3QoLmFnLWludmlzaWJsZSkgfiAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY2hlY2tib3g6bm90KC5hZy1pbnZpc2libGUpICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2VsZWN0aW9uLWNoZWNrYm94Om5vdCguYWctaGlkZGVuKSB+IC5hZy1ncm91cC1jaGVja2JveCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtZXhwYW5kZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jb250cmFjdGVkOm5vdCguYWctaGlkZGVuKSB+IC5hZy1ncm91cC1jaGVja2JveCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY2hlY2tib3g6bm90KC5hZy1pbnZpc2libGUpIH4gLmFnLWdyb3VwLWNoZWNrYm94IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY2hpbGQtY291bnQge1xcbiAgICBtYXJnaW4tbGVmdDogMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXNlbGVjdGlvbi1jaGVja2JveCBzcGFuIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZjIwO1xcbiAgICBoZWlnaHQ6IDI4cHg7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tZ3JvdXAsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1waXZvdCB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1zbWFsbC1sZWZ0LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tc21hbGwtcmlnaHQge1xcbiAgICAgIG1hcmdpbjogMCA0cHg7XFxuICAgICAgb3BhY2l0eTogMC42NDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWNvbHVtbi1kcm9wLWVtcHR5LW1lc3NhZ2Uge1xcbiAgICAgIG9wYWNpdHk6IDAuMzg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIGJhY2tncm91bmQ6ICMzMjM5M2M7XFxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxuICAgIG1pbi1oZWlnaHQ6IDE2cHg7XFxuICAgIHBhZGRpbmc6IDAgMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC10ZXh0IHtcXG4gICAgICBtYXJnaW46IDAgNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC1idXR0b24ge1xcbiAgICAgIG1pbi13aWR0aDogMTZweDtcXG4gICAgICBtYXJnaW46IDAgMnB4O1xcbiAgICAgIG9wYWNpdHk6IDAuNjQ7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtYnV0dG9uOmhvdmVyIHtcXG4gICAgICAgIG9wYWNpdHk6IDAuODc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJhZyB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIG1hcmdpbi10b3A6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zZWxlY3QtYWdnLWZ1bmMtcG9wdXAge1xcbiAgICBiYWNrZ3JvdW5kOiAjMmQzNDM2O1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIGJhY2tncm91bmQ6ICMyZDM0MzY7XFxuICAgIGhlaWdodDogNzBweDtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXNlbGVjdC1hZ2ctZnVuYy1wb3B1cCAuYWctdmlydHVhbC1saXN0LWl0ZW0ge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zZXQtZmlsdGVyLWxpc3QsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUtY29sdW1uLXNlbGVjdC13cmFwcGVyIHtcXG4gICAgd2lkdGg6IGF1dG87IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtdmVydGljYWwgPiAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIG1hcmdpbi10b3A6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1kYXRhLWNoYW5nZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAxNjAsIDEzMywgMC41KSAhaW1wb3J0YW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtZGF0YS1jaGFuZ2VkLWFuaW1hdGlvbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMXM7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMXM7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LXN0dWIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXN0dWItY2VsbCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcXG4gICAgcGFkZGluZy10b3A6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXN0dWItY2VsbCAuYWctbG9hZGluZy1pY29uIHtcXG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzcGluO1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW47XFxuICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsgfVxcblxcbkAtd2Via2l0LWtleWZyYW1lcyBzcGluIHtcXG4gIGZyb20ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XFxuICB0byB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cXG5cXG5Aa2V5ZnJhbWVzIHNwaW4ge1xcbiAgZnJvbSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cXG4gIHRvIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXN0dWItY2VsbCAuYWctbG9hZGluZy10ZXh0IHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICAgIG1hcmdpbi10b3A6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1mbG9hdGluZy10b3Age1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1mbG9hdGluZy1ib3R0b20ge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1mbG9hdGluZy10b3AsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmxvYXRpbmctYm90dG9tIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZsb2F0aW5nLXRvcCAuYWctcm93LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZsb2F0aW5nLWJvdHRvbSAuYWctcm93IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXN0YXR1cy1iYXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjMmQzNDM2O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwO1xcbiAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjM4KTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xcbiAgICBsaW5lLWhlaWdodDogMS41OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW5hbWUtdmFsdWUtdmFsdWUge1xcbiAgICBjb2xvcjogI0Y1RjVGNTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zdGF0dXMtYmFyLWNlbnRlciB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1uYW1lLXZhbHVlIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZGV0YWlscy1yb3cge1xcbiAgICBwYWRkaW5nOiAyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW92ZXJsYXktbG9hZGluZy13cmFwcGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjMmQzNDM2O1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBwYWRkaW5nOiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2lkZS1iYXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZjIwO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyB7XFxuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XFxuICAgICAgYmFja2dyb3VuZDogIzJkMzQzNjtcXG4gICAgICB3aWR0aDogMjBweDtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgLmFnLXNpZGUtYnV0dG9uIGJ1dHRvbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNvbG9yOiAjRjVGNUY1O1xcbiAgICAgICAgcGFkZGluZzogOHB4IDAgOHB4IDA7XFxuICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIG1pbi1oZWlnaHQ6IDcycHg7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwIDFweCAwO1xcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVyO1xcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyAuYWctc2VsZWN0ZWQgYnV0dG9uIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFmMjA7XFxuICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMXB4O1xcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjNDI0MjQyOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2lkZS1iYXIgLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXNpZGUtYmFyLmZ1bGwtd2lkdGggLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2lkZS1iYXIgLmFnLWNvbHVtbi1kcm9wIHtcXG4gICAgICBtaW4taGVpZ2h0OiA1MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXByaW1hcnktY29scy1maWx0ZXItd3JhcHBlciB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbXBvbmVudCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7XFxuICAgIHBhZGRpbmc6IDBweDtcXG4gICAgYm9yZGVyOiAwIHNvbGlkICM0ZjRmNGY7XFxuICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbXBvbmVudC5hZy1kaXNhYmxlZCA+IC5hZy1ncm91cC1jb21wb25lbnQtbGFiZWwgLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZSwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jb21wb25lbnQuYWctZGlzYWJsZWQgPiAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciB7XFxuICAgICAgb3BhY2l0eTogMC41OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZjIwO1xcbiAgICAgIGhlaWdodDogMTZweDtcXG4gICAgICBmb250LXNpemU6IDEycHg7XFxuICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgICAgaGVpZ2h0OiAyNnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50Om5vdCguYWctY29sbGFwc2libGUpID4gZGl2IHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbXBvbmVudDpub3QoLmFnLWNvbGxhcHNpYmxlKSA+IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBwYWRkaW5nOiA0cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbXBvbmVudDpub3QoLmFnLWNvbGxhcHNpYmxlKSA+IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtY29tcG9uZW50LXRvb2xiYXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyODJmMzA7XFxuICAgICAgcGFkZGluZzogNHB4O1xcbiAgICAgIGJvcmRlcjogMCBzb2xpZCAjNDI0MjQyOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50ID4gLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgICAgcGFkZGluZzogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1pdGVtIHtcXG4gICAgICBtYXJnaW46IDJweCAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWl0ZW0gLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZS1iYXIge1xcbiAgICAgICAgaGVpZ2h0OiAxOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWxhYmVsZWQgbGFiZWwge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sYWJlbGVkLmFnLWxhYmVsLWFsaWduLXRvcCBsYWJlbCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zbGlkZXIgPiAuYWctd3JhcHBlciA+IGRpdjpub3QoOmZpcnN0LW9mLXR5cGUpLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWFuZ2xlLXNlbGVjdCA+IC5hZy13cmFwcGVyID4gZGl2Om5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xcbiAgICBtYXJnaW4tbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1wYXJlbnQtY2lyY2xlIHtcXG4gICAgd2lkdGg6IDI0cHg7XFxuICAgIGhlaWdodDogMjRweDtcXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC45KTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC45KTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1hbmdsZS1zZWxlY3QgLmFnLWFuZ2xlLXNlbGVjdC1maWVsZCAuYWctY2hpbGQtY2lyY2xlIHtcXG4gICAgdG9wOiA0cHg7XFxuICAgIGxlZnQ6IDEycHg7XFxuICAgIHdpZHRoOiA2cHg7XFxuICAgIGhlaWdodDogNnB4O1xcbiAgICBtYXJnaW4tbGVmdDogLTNweDtcXG4gICAgbWFyZ2luLXRvcDogLTRweDtcXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGM0YzRjOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvZ2dsZS1idXR0b24gLmFnLWlucHV0LXdyYXBwZXIge1xcbiAgICBoZWlnaHQ6IDE2cHg7XFxuICAgIHdpZHRoOiA0MHB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWNmMGYxO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MDByZW07IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b2dnbGUtYnV0dG9uIC5hZy1pbnB1dC13cmFwcGVyIC5hZy1pY29uIHtcXG4gICAgICB3aWR0aDogMTZweDtcXG4gICAgICBoZWlnaHQ6IDE2cHg7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VjZjBmMTtcXG4gICAgICBib3JkZXItcmFkaXVzOiA1MDByZW07XFxuICAgICAgcmlnaHQ6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvZ2dsZS1idXR0b24uYWctc2VsZWN0ZWQgLmFnLWlucHV0LXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCMEZGOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9nZ2xlLWJ1dHRvbi5hZy1zZWxlY3RlZCAuYWctaW5wdXQtd3JhcHBlciAuYWctaWNvbiB7XFxuICAgICAgYmFja2dyb3VuZDogIzJkMzQzNjtcXG4gICAgICByaWdodDogLTFweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyID4gZGl2IHtcXG4gICAgICB3aWR0aDogMTZweDtcXG4gICAgICBoZWlnaHQ6IDE2cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciBidXR0b24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciBidXR0b246aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzZDQ3NDk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZGlhbG9nLmFnLWNvbG9yLWRpYWxvZyB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1wYW5lbCB7XFxuICAgIHBhZGRpbmc6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1jb2xvciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS10b29scyB7XFxuICAgICAgcGFkZGluZzogMTBweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1zYXQge1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKHdoaXRlKSwgdG8ocmdiYSgyMDQsIDE1NCwgMTI5LCAwKSkpO1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgd2hpdGUsIHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXZhbCB7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShibGFjayksIHRvKHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpKTtcXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBibGFjaywgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tZHJhZ2dlciB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcXG4gICAgICBoZWlnaHQ6IDEycHg7XFxuICAgICAgd2lkdGg6IDEycHg7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XFxuICAgICAgYmFja2dyb3VuZDogYmxhY2s7XFxuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1odWUtYmFja2dyb3VuZCB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWFscGhhLWJhY2tncm91bmQge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1odWUtYWxwaGEge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgICAgaGVpZ2h0OiAxMXB4O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1zbGlkZXIge1xcbiAgICAgIG1hcmdpbi10b3A6IC0xMnB4O1xcbiAgICAgIHdpZHRoOiAxM3B4O1xcbiAgICAgIGhlaWdodDogMTNweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAxM3B4O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XFxuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMzcpO1xcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjM3KTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS10ZXh0LXZhbHVlIHtcXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICBjb2xvcjogIzMzMzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS10ZXh0LXZhbHVlOmZvY3VzIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGQ3N2U0O1xcbiAgICAgIHBhZGRpbmc6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1yZWNlbnQtY29sb3JzID4gZGl2IHtcXG4gICAgICBtYXJnaW46IDAgM3B4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1wYW5lbCAuYWctcmVjZW50LWNvbG9ycyA+IGRpdjpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXJlY2VudC1jb2xvcnMgPiBkaXY6bGFzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyay5hZy1wb3B1cCA+IGRpdjpub3QoLmFnLXRvb2x0aXAtY3VzdG9tKSB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMzQzNjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgICAuYWctZHJhZ2dpbmctcmFuZ2UtaGFuZGxlIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGFuZWwuYWctZGlhbG9nLCAuYWctZHJhZ2dpbmctZmlsbC1oYW5kbGUgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYW5lbC5hZy1kaWFsb2cge1xcbiAgICAgIG9wYWNpdHk6IDAuNztcXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFmMjA7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM1YzVjNWM7XFxuICAgICAgY29sb3I6IHJnYmEoMjQ1LCAyNDUsIDI0NSwgMC42NCk7XFxuICAgICAgaGVpZ2h0OiAzMnB4O1xcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBzYW5zLXNlcmlmO1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTJweDtcXG4gICAgICBwYWRkaW5nOiA1cHggMTBweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbiB7XFxuICAgICAgICBoZWlnaHQ6IDIwcHg7XFxuICAgICAgICB3aWR0aDogMjBweDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uIC5hZy1pY29uIHtcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uOmhvdmVyLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b24uYWctaGFzLXBvcHVwIHtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzA0MDUwNTsgfVxcbiAgICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsIC5hZy1tZXNzYWdlLWJveCAuYWctbWVzc2FnZS1ib3gtYnV0dG9uLWJhciB7XFxuICAgICAgaGVpZ2h0OiAzMHB4O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFmMjA7XFxuICAgICAgcGFkZGluZzogMnB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYW5lbCAuYWctbWVzc2FnZS1ib3ggLmFnLW1lc3NhZ2UtYm94LWJ1dHRvbi1iYXIgYnV0dG9uIHtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sdGlwIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWYyMDtcXG4gICAgY29sb3I6ICNGNUY1RjU7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgcGFkZGluZzogNXB4O1xcbiAgICBib3JkZXItd2lkdGg6IDFweDtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMzQzOTNiO1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXM7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sdGlwLmFnLXRvb2x0aXAtaGlkaW5nIHtcXG4gICAgICBvcGFjaXR5OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0IC5hZy1jaGFydC1tZW51IHtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgICBiYWNrZ3JvdW5kOiAjMmQzNDM2OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2hhcnQgLmFnLWNoYXJ0LW1lbnUgPiBzcGFuOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTYxOTFhOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgICBtYXJnaW46IDVweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbDpudGgtY2hpbGQoMm4gKyAyKTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWw6bnRoLWNoaWxkKDNuICsgMSkge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWw6bnRoLWNoaWxkKDNuKSB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWwuYWctc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1jb2xvcjogIzAwQjBGRjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLW5hdi1jYXJkLXNlbGVjdG9yIC5hZy1uYXYtY2FyZC1pdGVtIHtcXG4gICAgY29sb3I6ICNGNUY1RjU7XFxuICAgIGZvbnQtc2l6ZTogMTBweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctbmF2LWNhcmQtc2VsZWN0b3IgLmFnLW5hdi1jYXJkLWl0ZW0uYWctc2VsZWN0ZWQge1xcbiAgICAgIGNvbG9yOiAjMDBCMEZGOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1mb3JtYXQgLmFnLWNoYXJ0LWZvcm1hdC13cmFwcGVyIC5hZy1ncm91cC1pdGVtIHtcXG4gICAgbWFyZ2luOiA0LjhweCAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24ge1xcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xcbiAgICBmb250LWZhbWlseTogXFxcImFnR3JpZEJhbGhhbVxcXCI7XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICBmb250LXNpemU6IDE2cHg7XFxuICAgIGNvbG9yOiAjZWNmMGYxO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tYWdncmVnYXRpb246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWFycm93czpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDFcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tYXNjOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jYW5jZWw6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoYXJ0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNvbG9yLXBpY2tlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDhcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY29sdW1uOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwOVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jb2x1bW5zOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jb250cmFjdGVkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwQlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jb3B5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jcm9zczpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MERcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY3V0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1kYXRhOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1kZXNjOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxMFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1leHBhbmRlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTFcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tZXllLXNsYXNoOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1leWU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTEzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWZpbHRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTRcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tZmlyc3Q6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWdyaXA6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWdyb3VwOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxN1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxOFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1sYXN0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxOVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1sZWZ0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1sb2FkaW5nOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1tYXhpbWl6ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MUNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tbWVudTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MURcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tbWluaW1pemU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFFXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLW1pbnVzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxRlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1uZXh0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1ub25lOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1ub3QtYWxsb3dlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjJcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tcGFzdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXBpbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjRcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tcGl2b3Q6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXBsdXM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXByZXZpb3VzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyN1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1yYWRpby1idXR0b24tb2ZmOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyOFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1yYWRpby1idXR0b24tb246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI5XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXJpZ2h0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1zYXZlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1zbWFsbC1kb3duOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1zbWFsbC1sZWZ0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1zbWFsbC1yaWdodDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkVcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tc21hbGwtdXA6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJGXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXRpY2s6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXRyZWUtY2xvc2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkzMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi10cmVlLWluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXRyZWUtb3BlbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7XFxuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQtcmVhZG9ubHksXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLXJlYWRvbmx5LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY2hlY2tib3gtdW5jaGVja2VkLXJlYWRvbmx5IHtcXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgICAgb3BhY2l0eTogMC4zODsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQge1xcbiAgICBjb2xvcjogIzAwQjBGRjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZC1yZWFkb25seTpiZWZvcmUge1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLXJlYWRvbmx5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQtcmVhZG9ubHk6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1leHBhbmRlZCAuYWctaWNvbi1jb250cmFjdGVkOmVtcHR5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkzM1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1yb3ctZHJhZzpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJpZ2h0LWFycm93OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1yYWRpby1idXR0b24tb24ge1xcbiAgICBjb2xvcjogIzAwQjBGRjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yaWdodC1hcnJvdzpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkFcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1udW1lcmljLWNlbGwge1xcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNoZWNrYm94Om5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yYWRpby1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvZ2dsZS1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctcGl2b3QtbW9kZS1wYW5lbCAuYWctcGl2b3QtbW9kZS1zZWxlY3Qge1xcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1lbXB0eS1tZXNzYWdlIHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1ncm91cC1pY29ucyxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXNlbGVjdC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLWdyb3VwLWljb25zIHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4uYWctdG9vbHBhbmVsLWFkZC1ncm91cC1pbmRlbnQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICAgIG1hcmdpbi1yaWdodDogMjRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctaGVhZGVyLXNlbGVjdC1hbGwge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWNoZWNrYm94ICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94ICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94ICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctZ3JvdXAtY29udHJhY3RlZCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCArIC5hZy1ncm91cC1jaGVja2JveCxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctZ3JvdXAtY2hlY2tib3ggKyAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWV4cGFuZGVkICsgLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkICsgLmFnLWdyb3VwLWNoZWNrYm94IHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1jaGlsZC1jb3VudCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tZ3JvdXAsXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tcGl2b3Qge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24ge1xcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2V0LWZpbHRlci1pdGVtID4gZGl2LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2V0LWZpbHRlci1pdGVtID4gc3BhbiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWhlYWRlciAuYWctaGVhZGVyLWNlbGwtcmVzaXplOjphZnRlciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2lkZS1iYXIgLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2lkZS1iYXIuZnVsbC13aWR0aCAuYWctcGFuZWwtY29udGFpbmVyIHtcXG4gICAgICBib3JkZXItbGVmdDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5zYXNzLXZhcmlhYmxlczo6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAneyBcXFwiYXV0b1NpemVQYWRkaW5nXFxcIjogXFxcIjEycHhcXFwiLCBcXFwiaGVhZGVySGVpZ2h0XFxcIjogXFxcIjMycHhcXFwiLCBcXFwiZ3JvdXBQYWRkaW5nU2l6ZVxcXCI6IFxcXCIyOHB4XFxcIiwgXFxcImZvb3RlclBhZGRpbmdBZGRpdGlvblxcXCI6IFxcXCIxNnB4XFxcIiwgXFxcInZpcnR1YWxJdGVtSGVpZ2h0XFxcIjogXFxcIjI4cHhcXFwiLCBcXFwiYWdnRnVuY1BvcHVwSGVpZ2h0XFxcIjogXFxcIjk4cHhcXFwiLCBcXFwiY2hlY2tib3hJbmRlbnRXaWR0aFxcXCI6IFxcXCIyMHB4XFxcIiwgXFxcImxlYWZOb2RlUGFkZGluZ1xcXCI6IFxcXCIxMnB4XFxcIiwgXFxcInJvd0hlaWdodFxcXCI6IFxcXCIyOHB4XFxcIiwgXFxcImdyaWRTaXplXFxcIjogXFxcIjRweFxcXCIsIFxcXCJpY29uU2l6ZVxcXCI6IFxcXCIxNnB4XFxcIiB9JztcXG4gICAgZGlzcGxheTogbm9uZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLWhpZ2hsaWdodCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMEIwRkYgIWltcG9ydGFudDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItY2VsbC1yZXNpemU6OmFmdGVyIHtcXG4gICAgaGVpZ2h0OiA4MCU7XFxuICAgIG1hcmdpbi10b3A6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItY2VsbDo6YWZ0ZXIsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1ncm91cC1jZWxsOjphZnRlciB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoNjYsIDY2LCA2NiwgMC41KTtcXG4gICAgY29udGVudDogXFxcIiBcXFwiO1xcbiAgICBoZWlnaHQ6IDE2cHg7XFxuICAgIG1hcmdpbi10b3A6IDhweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWluZGVudDogLTIwMDBweDtcXG4gICAgdG9wOiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctaGVhZGVyLWNlbGw6OmFmdGVyLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWhlYWRlci1ncm91cC1jZWxsOjphZnRlciB7XFxuICAgIHJpZ2h0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctaGVhZGVyLWNlbGw6OmFmdGVyLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWhlYWRlci1ncm91cC1jZWxsOjphZnRlciB7XFxuICAgIGxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbC5hZy1jb2x1bW4tZHJvcCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgIGJvcmRlci1ib3R0b206IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsLmFnLWNvbHVtbi1kcm9wLmFnLXdpZHRoLWhhbGY6Zmlyc3QtY2hpbGQge1xcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsLmFnLWNvbHVtbi1kcm9wLmFnLXdpZHRoLWhhbGY6Zmlyc3QtY2hpbGQge1xcbiAgICBib3JkZXItbGVmdDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3cge1xcbiAgICBib3JkZXItY29sb3I6ICM1YzVjNWM7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LXNlbGVjdGVkIHtcXG4gICAgYm9yZGVyLWNvbG9yOiAjMDA1ODgwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWNlbGwge1xcbiAgICBtaW4taGVpZ2h0OiAyNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC1idXR0b24ge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcXG4gICAgICBtYXJnaW4tdG9wOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbjpob3ZlciB7XFxuICAgICAgb3BhY2l0eTogMTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtdmVydGljYWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtdGV4dCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWYyMDtcXG4gICAgaGVpZ2h0OiAzMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctY29sdW1uLWRyb3AtY2VsbC10ZXh0IHtcXG4gICAgICBtYXJnaW4tbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJvb3Qge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiB7XFxuICAgICAgbWluLWhlaWdodDogMjBweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3Age1xcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XFxuICAgICAgcGFkZGluZy10b3A6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXNpZGUtYmFyLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctaWNvbi1leHBhbmRlZCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1pY29uLWNvbnRyYWN0ZWQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51LW9wdGlvbiB7XFxuICAgIGhlaWdodDogMjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiB7XFxuICAgIGhlaWdodDogMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItaGVhZGVyIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItaGVhZGVyIC5hZy10YWIge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IC0ycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItaGVhZGVyIC5hZy10YWIuYWctdGFiLXNlbGVjdGVkIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2O1xcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1ib2R5LFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wb3B1cC1lZGl0b3IsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2O1xcbiAgICBjb2xvcjogI0Y1RjVGNTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcge1xcbiAgICBoZWlnaHQ6IDI4cHg7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZGV0YWlscy1yb3cge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW92ZXJsYXktbG9hZGluZy13cmFwcGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICBjb2xvcjogI0Y1RjVGNTtcXG4gICAgcGFkZGluZzogMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTE6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTc2LCAyNTUsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0yOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE3NiwgMjU1LCAwLjQpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMzpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNzYsIDI1NSwgMC41KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTQ6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTc2LCAyNTUsIDAuNik7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmljaC1zZWxlY3QtdmFsdWUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXItYXBwbHktcGFuZWwge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIGlucHV0LFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIHNlbGVjdCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyNjJjMmU7XFxuICAgIGNvbG9yOiAjRjVGNUY1OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlci10b29scGFuZWwtYm9keSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctYW5nbGUtc2VsZWN0IC5hZy1hbmdsZS1zZWxlY3QtZmllbGQgLmFnLXBhcmVudC1jaXJjbGUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1jaGlsZC1jaXJjbGUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGM0YzRjOyB9XFxuXFxuXCIiLCJtb2R1bGUuZXhwb3J0cyA9IFwiQGNoYXJzZXQgXFxcIlVURi04XFxcIjtcXG5AZm9udC1mYWNlIHtcXG4gIGZvbnQtZmFtaWx5OiBcXFwiYWdHcmlkQmFsaGFtXFxcIjtcXG4gIHNyYzogdXJsKFxcXCJkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZzhTQmxNQUFBQzhBQUFBWUdOdFlYQVhWdEs2QUFBQkhBQUFBRlJuWVhOd0FBQUFFQUFBQVhBQUFBQUlaMng1WnFNdXkzZ0FBQUY0QUFBYkRHaGxZV1FWb21PWEFBQWNoQUFBQURab2FHVmhCOElEK1FBQUhMd0FBQUFrYUcxMGVOWUFJbllBQUJ6Z0FBQUE0R3h2WTJIRW1MNGFBQUFkd0FBQUFISnRZWGh3QUVVQWxRQUFIalFBQUFBZ2JtRnRaWlFYeEtRQUFCNVVBQUFCa25CdmMzUUFBd0FBQUFBZjZBQUFBQ0FBQXdQMkFaQUFCUUFBQXBrQ3pBQUFBSThDbVFMTUFBQUI2d0F6QVFrQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEcE13UEEvOEFBUUFQQUFFQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFEQUFBQUF3QUFBQndBQVFBREFBQUFIQUFEQUFFQUFBQWNBQVFBT0FBQUFBb0FDQUFDQUFJQUFRQWc2VFAvL2YvL0FBQUFBQUFnNlFELy9mLy9BQUgvNHhjRUFBTUFBUUFBQUFBQUFBQUFBQUFBQVFBQi8vOEFEd0FCQUFBQUFBQUFBQUFBQWdBQU56a0JBQUFBQUFFQUFBQUFBQUFBQUFBQ0FBQTNPUUVBQUFBQUFRQUFBQUFBQUFBQUFBSUFBRGM1QVFBQUFBQURBRC8vL3dQQkE0RUFKd0JRQUc0QUFBRWVBUmNXRlJZVUJ4UUhEZ0VIQmlNR0lpY2lKeTRCSnlZMUpqUTNORGMrQVRjMk16WXlGeklGSWdZSEJnY09BUmNVRng0QkZ4WVhGakkzTmpjK0FUYzJOelkwSnlZbkxnRW5KaU1pQmdjR0l3RWpOU0VWSGdFWEZnWUhEZ0VWSVRVekZTRTBOamMrQVNjdUFTYzFJUU1rUGx3Q0FRRUJBUUpjUGtsSlNaSkpTVWs5WFFJQkFRRUJBbHcrU1VsSmtrbEovZ1VsT2dFQkFRRUJBUU1DTlNSSlNVcVNTa2xKSkRVQ0F3RUJBUUVEQWpVa1NVaEprVWxJU1FIZ1FQOEFBWFVaRUFvWUoxWUJBRUQrZ0FZYkxXUWdMbUlDQVlBRGdBSmNQa2xKU1pKSlNVaytYQUlCQVFFQkFsdytTVWxKa2tsSlNUNWNBZ0VCQVVFNEpraEpTWkpKU1Vra05RSURBUUVCQVFNQ05TUkpTVXFTU2tsSkpEVUNBd0VCQWY4QVFBTWdRaXNjUkJjaVBScEFnQ1pNR0NkSEh5bEhORVVBQVFCVEFCTURyUU50QUNjQUFCTVhCeWMzSGdFWEJ5RVJCeWMzSGdFWEJ5Y1JJU2MzSGdFWEJ5YzNJUkUzSGdFWEJ5YzNGeEhOU2k2V2xnd1dERW9CRTBrdWx5WkxKaTVKQVJOS0xpVk1KWll1U3Y3dFNRd1dESmVYTGtrQm9Fa3VsNWNNRmd4SkFSTktMcFlsVENVdVN2N3RTUzRtU3lhWExrbis3VW9NRmd5V2xpNUtBUk1BQUFFQktRQ1pBdGNDNXdBS0FBQUJCeWMzSGdFWEJ5Y1JJd0hnaVM3WE5tczJMb2xBQW15SkxkYzJhell0aWY0dEFBTUFnQUJBQTRBRFFBQWJBRGNBUmdBQUFTSUhEZ0VIQmhVVUZ4NEJGeFl6TWpjK0FUYzJOVFFuTGdFbkpnY3lGeDRCRnhZVkZBY09BUWNHSXlJbkxnRW5KalUwTno0Qk56WVROeDRCRndjWEJ5Y0hKemNuTnhjQ0FFOUdSbWtlSGg0ZWFVWkdUMDlHUm1rZUhoNGVhVVpHVDBJN09sY1pHUmtaVnpvN1FrSTdPbGNaR1JrWlZ6bzdRcWtNRmd5cXFpNnBxUzZxcWk2cEEwQWVIbWxHUms5UFJrWnBIaDRlSG1sR1JrOVBSa1pwSGg1QUdSbFhPanRDUWpzNlZ4a1pHUmxYT2p0Q1FqczZWeGtaL3UycURCWU1xYWt1cXFvdXFha3VxZ0FEQU5VQWxRTXJBdXNBQkFBSkFBMEFBQk16RVNNUk56TVJJeEVUTXhFajFZQ0E3M2g0NzNoNEFqZitYZ0dpdFAycUFsYitxdjhBQUFNQUFQL0FCQUFEd0FBUEFDQUFLQUFBQlNFaUpqVVJORFl6SVRJV0ZSRVVCZ01oSWdZVkVSUVdNeUV5TmpVUk5DWWpCd0VuTnhjQkhnRURTUDF3VEd4c1RBS1FUR3hzU3YxdExVRkJMUUtUTFVGQUxneitWTkF6blFGNURScEFiRXdDa0V4c2JFejljRXhzQTdsQkxmMXRMa0JBTGdLVExVSDMvbFBSTkowQmVBMGFBQU1BQVAvQUJBQUR3QUFQQUNBQUpBQUFCU0VpSmpVUk5EWXpJVElXRlJFVUJnTWhJZ1lWRVJRV015RXlOalVSTkNZakF5RTFJUU5JL1hCTWJHeE1BcEJNYkd4Sy9XMHRRVUV0QXBNdFFVQXVKZjIyQWtwQWJFd0NrRXhzYkV6OWNFeHNBN2xCTGYxdExrQkFMZ0tUTFVIK0lrb0FBZ0FBLzhBRUFBUEFBQThBSUFBQUFUSVdGUkVVQmlNaElpWTFFVFEyTXdVaElnWVZFUlFXTXlFeU5qVVJOQ1lqQTBoTWJHeE0vWEJNYkd4TUFwTDliUzFCUVMwQ2t5MUJRQzREd0d4TS9YQk1iR3hNQXBCTWJFZEJMZjF0TGtCQUxnS1RMVUVBQUFBREFITUFTQU9OQXpnQUJnQUtBQllBQUFrQkJ4Y0pBaUUzRnlFRk1BWVZGQll6TWpZMU5DWUMvZjVWUEdiKzl3RkZBVVg5Nzh6TS9tZ0NURlV5SXlNeVZRR05BYXM4WnY3My9yc0JSYzNOUUdzcUl6SXlJeXByQUFBQUFBSUF3QUNnQWNBQzRBQURBQWNBQUNVaEVTRUhFVE1SQWNEL0FBRUF3SUNnQWtCQS9rQUJ3QUFFQU1BQW9BTkFBdUFBQXdBSEFBc0FEd0FBSlNNUk14TWpFVE1USXhFekFTTVJNd0hBUUVEQVFFREFRRUQ5d0VCQW9BSkEvY0FDUVAzQUFrRDl3QUpBQUFBQUFBRUJYZ0NwQXFJQzF3QUhBQUFCQnhjSENRRWVBUUtpNmVrdC91a0JGd3NYQXFucDZTNEJGd0VYREJZQUF3Q2dBRUFEWUFOQUFCQUFJQUF6QUFBbEl5SW1OUkUwTmpzQk1oWVZFUlFHSXhNaElnWVZFUlFXTXlFeU5qVVJOQ1lCSXp3Qk5SRTBOak1oT2dFekZTRWlCaFVSQXI3N1EyQmdRL3REWDE5REJmNzlKemMzSndFREp6YzMvZmRCWDBNQm1nRUNBZjVkSmpaQVgwUUJPa05nWUVQK3hrUmZBa0E0SnY2N0p6YzNKd0ZGSmpqK0FBRUVBZ0lYUTE5QU5pYjkzQUFBQUFBQkFTa0E2UUxYQXBjQURnQUFBVGNlQVJjSEZ3Y25CeWMzSnpjWEFnQ3BEQllNcXFvdXFha3VxcW91cVFIdHFnd1dES21wTHFxcUxxbXBMcW9BQUFBQUJRQkFBQUFEd0FPQUFDVUFNZ0EvQUVzQVVRQUFBVDRCTlRRbUl5SUdGUlFXTXpJMk54Y0hMZ0VqSWdZVkZCWXpNalkxTkNZbk53RXpOUUVISWlZMU5EWXpNaFlWRkFZakVTSW1OVFEyTXpJV0ZSUUdJd0VpSmpVME5qTXlGaFVVQmdrQkZ3RTFJd0dXQ0FocFNrcHBhVW9VSlJGcGFSRWxGRXBwYVVwS2FRZ0lhZ0U2aHYzV295VTBOQ1VsTlRVbEpUUTBKU1UxTlNVQkRRa05EUWtKRFEwQk1mN3pXUUU2aGdLREVTVVVTbWxwU2twcENBaHFhZ2dJYVVwS2FXbEtGQ1VSYWY3SExRSXBFRFVsSlRRMEpTVTEvZWMwSlNVMU5TVWxOQUZRRFFrSkRRMEpDUTBCcWY3eldRRTVMUUFBQndDR0FGWURlZ01xQUFzQUR3QWJBQ2dBTEFBNEFEd0FBRGNpQmhVVUZqTXlOalUwSmdVMUlSVURJZ1lWRkJZek1qWTFOQ1lITWhZVkZBWWpJaVkxTkRZekJTRTFJUUV5RmhVVUJpTWlKalUwTmdVaE5TSEdHaVltR2hzbEpRS1ovZWFhR2lZbUdoc2xKUnNTR1JrU0VSa1pFUUlKL3BFQmIvMzNHeVVsR3hvbUpnTE8vZVlDR3RZbUdoc2xKUnNhSm10VlZRR1ZKaG9hSmlZYUdpWVZHUklTR1JrU0VobFdWZ0UvSlJzYUppWWFHeVZxVlFBQUFBRUJLUUNaQXRjQzV3QUtBQUFCTng0QkZ3Y25OeGNSTXdJZ2lRd1dETmZYTG9sQUFSU0pDeGNMMTljdGlRSFRBQUVCWGdDcEFxSUMxd0FNQUFBSkFTYzNKemNXRng0QkZ4WVhBcUwrNlMzcDZTMGpJeU5GSXlNakFjRCs2UzdwNlM0akl5TkdJaU1qQUFBQUFBVUFRd0J6QTcwRERRQXNBRW9BYUFCekFIMEFBQUUrQVRjNkFUTVdGeDRCRnhZWE1BWUhEZ0VIRndjbkJnY0dKaWNtSnk0Qkp5NEJKekEyTno0Qk55YzNGd2NPQVE4QkZoY2VBUmNXTno0Qk55Y09BU01pSnk0Qkp5WTFORFkzSndFK0FUOEJKaWN1QVNjbUJ3NEJCeGMrQVRNeUZ4NEJGeFlWRkFZSEZ3RU9BUlVVRmpNeU5qY25CVDRCTlRRbUl5SUdCd0VxTDJnMkJ3UUhTRU5DY2kwdEd6a3VFQ1FUUGkxTE9VQkFnRDQ5TlNsRUdRb1BDaVViRnpjZ1BpMUtDakZPR0FFZE56ZUpURXhJQ3hZS0hSeEVKaThvS1QwU0VSY1ZNQUhCTVUwWUFSZ25LR1U3T3o0cFVDVWtIRVFtTGlrcFBSRVNHQlVxL3AwTURsNUNHQzBUM2dFTERRNWVRaGtzRXdMRUZ4c0NBaGdYVWprNFJIWXdFUjROUGkxTEhBME1DQlVWSmg1S0xCRWlHRk1rSHpZV1BpMUpVU0ZaTndKRk5UVS9Cd2NYQkFnRkhSVVlFaEk4S1NrdUprUWNNZjZaSVZvM0FqZ3VMa0VTRWdFQkV4RWpGUmNSRWowcEtDOGxSUndxQVFnVExCbENYZzROM2JBVExSaERYUTRNQUFRQVF3Q1pBNzBDOWdBa0FFTUFZQUJ2QUFBQkZoY2VBUmNXRnpBR0J3WUhEZ0VuSmljdUFTY3VBU2N3TmpjMk56NEJOelkzT2dFekJ3WUhEZ0VIQmc4QkZoY2VBUmNXTnpZM1BnRTNOajhCSmljdUFTY21JeGN5Rng0QkZ4WVZGQWNPQVFjR0l5SW5MZ0VuSmpVME56NEJOell6RnpVMEppTWlCaDBCRkJZek1qWTFBZ2xJUTBKeUxTMGJPUzQ2VGs2b1UxUkZLVVFaQ2c4S0pSc2dLU3BnTlRVM0J3UUhFVHM0TjJBbkpoZ0JIVGMzaVV4TVNDb2xKa0FhR2hJQkdDY29aVHM3UGdndEtDYzdFUklTRVRzbktDMHRLQ2M3RVJJU0VUc25LQzJnWGtKQ1hsNUNRbDRDOWdJWUYxSTVPRVIyTUQwakpCQVZGREllU2l3UkloaFRKQ3NqSXpJT0RnSkFBaElUUUMwc05nSkZOVFUvQndjWERSWVdPeU1qS0FNNExpMUNFaEVmRVJFN0p5Z3RMU2duT3hJUkVSSTdKeWd0TFNnbk94RVIyQUZDWGw1Q0FrSmVYa0lBQWdEQUFLQURRQU1BQUJzQU13QUFBUVlIRGdFSEJnY09BUjBCQnpRMkp6UW1KeVluTGdFbkppYzFJUVVVRmhjV0Z4NEJGeFlYRlRjMU5qYytBVGMyTno0Qk5RTkFBUllWUVNVbUlBUUV3QUlDQlFNaEpTWkFGaFVCQW9EOXdBUUVJU1VtUUJZVkFVQUJGaFZCSlNZZ0JBUUN1aUFmSHo4Z0lDSUZDd1oxa0VLRFFnWUtCQ0loSWtBZUh4MUdRQWNPQmlJaElrQWVIeDJHTUZZZ0h4OC9JQ0FpQmc0SEFBQUFBZ0QxQUtrREN3TFhBQWNBQ3dBQUFRY1hCd2tCSGdFbEVTTVJBd3ZwNlMzKzZRRVhDeGYrTlVBQ3FlbnBMZ0VYQVJjTUZnditBQUlBQUFBQURBREFBTUFEUUFMQUFBTUFCd0FMQUE4QUV3QVhBQnNBSHdBakFDY0FLd0F2QUFBbEl6VXpGeU0xTXhjak5UTVhJelV6SlNNMU14Y2pOVE1YSXpVekZ5TTFNeVVqTlRNWEl6VXpGeU0xTXhjak5UTUJBRUJBd0VCQXdFQkF3RUJBL2NCQVFNQkFRTUJBUU1CQVFQM0FRRURBUUVEQVFFREFRRURBZ0lDQWdJQ0FnRUNBZ0lDQWdJQ0FRSUNBZ0lDQWdJQUFBQWdBUC8vL0E4RURnUUFuQUZBQVZBQllBRndBWUFCa0FHZ0FBQUVlQVJjV0ZSWVVCeFFIRGdFSEJpTUdJaWNpSnk0Qkp5WTFKalEzTkRjK0FUYzJNell5RnpJRklnWUhCZ2NPQVJjVUZ4NEJGeFlYRmpJM05qYytBVGMyTnpZMEp5WW5MZ0VuSmlNaUJnY0dJeE1qTlRNRklUVWhKU00xTXdVaE5TRWxJelV6QlNFMUlRTWtQbHdDQVFFQkFRSmNQa2xKU1pKSlNVazlYUUlCQVFFQkFsdytTVWxKa2tsSi9nVWxPZ0VCQVFFQkFRTUNOU1JKU1VxU1NrbEpKRFVDQXdFQkFRRURBalVrU1VoSmtVbElTZUNBZ0FHQS9zQUJRUDZBZ0lBQmdQN0FBVUQrQUlDQUFnRCtRQUhBQTRBQ1hENUpTVW1TU1VsSlBsd0NBUUVCQVFKY1BrbEpTWkpKU1VrK1hBSUJBUUZCT0NaSVNVbVNTVWxKSkRVQ0F3RUJBUUVEQWpVa1NVbEtra3BKU1NRMUFnTUJBUUg5NEVCQVFFQkFRRUJBUUVCQUFBQUFBQVFBUXdESUE3MEN1QUFrQUUwQVlBQndBQUFCRmhjZUFSY1dGekFHQndZSERnRUhCaWNtSnk0Qkp5WW5NRFkzTmpjK0FUYzJNem9CQnlJR0J3WUhEZ0VIQmdjd0ZoY1dGeDRCTnpZM05qYytBVGMyTnpBbUp5WW5MZ0VuSmlNcUFTTVhIZ0VWRkFZSERnRW5MZ0VuTkRZM1BnRXpCdzRCQndZV0Z4WTJOelltSnk0Qkl3SUpRRUpCZFM4d0hVSTdLUzh2WXpJeU1EczVPbVlwS1JsRlB5RWxKVTRvS0NjSEJBb05HUXd1TUM5Vkl5TVZIeDhxTkRSdk9EZ3hLaWdvU0IwZEVoOGZIaVVrVHlvcEtBWUVCaEpHaXhnWk1IdzBQR2NDR1J3a1Vqb1RJMGdXR3hvdlBZd2VHeUF3RnlBb0FyZ0JEQXc1THk5SWZTa2RFaEVSQVFFREJCQVBPeTB0UG9FcUZ3NFBFUVFFUUFFQkF3c0xLeUVoTGo4Y0tCVVZFUUlDQndZTkRTd2VIaWMvSFJ3VEVoUUZCQjBDUlZRZ1BSUW1CZ1VGVFVFaVFoWWFERUFCQ1JrZ1hBMFJCeVVpWEFzR0FnQUNBUFVBcVFNTEF0Y0FEQUFRQUFBSkFTYzNKemNXRng0QkZ4WVhFeU1STXdJNS91a3Q2ZWt0SXlNaVJpTWpJOUpBUUFIQS91a3U2ZWt1SXlNalJpSWpJLzhBQWdBQUFBQUNBSGtBa3dPSEF1MEFDd0FXQUFBQkJ5RVZJUmNIQ1FFZUFSY0ZGemNuSVRVaE55Y09BUUkwUUFHVC9tMUFqZjdTQVM0alJ5UCtvTk15Z0FIdS9oS0FNalZwQW1CQXdFQ05BUzBCTFNOSEk2RFRNNEJBZ0RNMWFRQUFBQWdBWUFBZ0E2QURZQUFEQUFrQUR3QVRBQmNBSFFBakFDY0FBQ1VqRVRNbkJ5YzNIZ0VGQnljM0hnRTNJVFVoQlNFMUlUY0hKemNlQVNVSEp6Y2VBUVVqRVRNQ0lFQkFjODB0elFzWEFhc3R6UzB6WjRiL0FBRUEvY0QvQUFFQVRTM05MVE5uQWRQTkxjMExGLzdlUUVBZ0FRQWd6UzNOQ3hlckxjMHRNMmZOUUVCQVlDM05MVE5uYmMwdHpRc1hpd0VBQUFBQ0FQRUFzUU1QQXM4QUJ3QU9BQUFUSHdFbk55Y0hKeVV2QVJjSEZ6ZnhBOTlIZEZOMVJ3SWVBOTlIZEZOMUFaUGZBMGQxVTNSSFd0OERSM1ZUZEFBQUF3REFBT0FEUUFLZ0FBTUFCd0FMQUFBbElUVWhOU0UxSVRVaE5TRURRUDJBQW9EOWdBS0EvWUFDZ09CQWdFQ0FRQUFBQUFJQXl3Q0tBelVDOWdBSEFBOEFBQ1V2QVJjSEZ6Y1hFeDhCSnpjbkJ5Y0IyZ1RlUjNSVGRVZE1CTjVIZEZOMVI3amVCRWgxVTNWSEFoRGVCRWgxVTNWSEFBQUFBZ0NBQVdBRGdBSWdBQU1BQndBQUFTRTFJUVVWSVRVRGdQMEFBd0Q5UUFLQUFXREFRRUJBQUFFQlhnQ3BBcUlDMXdBTUFBQUpBU2MzSnpjV0Z4NEJGeFlYQXFMKzZTM3A2UzBqSXlORkl5TWpBY0QrNlM3cDZTNGpJeU5HSWlNakFBQUFBQUlBUUFDZ0E4QUM0QUFLQUJZQUFBRTNIZ0VYQnljM0Z4RXpBU01SQnljM0hnRVhCeWNSQVVHUURCY000T0F2a0VJQndFS1FMK0E0Y0RndmtBRVloZ3NXQzlMU0xJWUJ5UDNBQWNpR0xOSTBhVFVzaHY0NEFBQUdBSFlBUUFPTEEwc0FIQUF5QUVFQVV3QmlBRzRBQUFFV0Z4NEJGeFlIQmdjT0FTY21KeVluTGdFM05qYzJOejRCTnpZWEJ3WUhEZ0VIQmhjV0Z4NEJOelkzTmljdUFTY21CeGNXQnc0QkJ3WW5MZ0V2QVFFZUFRRVdOejRCTnpZM05pWW5CZ2NPQVFjR0J4TXlGaDhCQVNZbkpqWTNOamM2QVFjR0J3NEJCd1lYQVM0QkJ3SUdZbFZWYXc0TkxTZE9UYmRkWGtjdkhoNFhDQWdjR1NjbVh6YzNPUXBUUjBoYUNnc25LRk5UdVZWVkxTVUtDVmhKU1Z6ekl3Z0lUVUJCVGh3MEdDZ0Jnd1lML3Rnb0tTcEpIQnNNQ0FFSklTQWhRU0VnSVVNaFFCMHAvbjBsQlFZeU9EaFlCQW9HTUNvcU53b0tEZ0VHRVNJU0Ewc0NOVFdrWldSZ1ZEYzNKUlVVUXlzNU9uNUFRRG95S2lrNkVCQUJRQUV0TFl4VlZGRlRMUzBFS2l0Y1RGVlZqeTh1QWMxQVNrbDdKU1lJQWhFTkZnR0RDaFQrclF3RkJTY2dIeWtlUFIwZ0lTRkJJU0FoQWRZUkVCYitmRUZMVElJdUxRWkFBaGtaVFRBdkxnRUZCUVVCQUFBQUFBTUFnQUF3QTRBRFVBQVdBQ0lBTmdBQUFUUW1JeUlHRlNNaUJoVVJGQll6SVRJMk5SRTBKaU1GTWhZVkZBWWpJaVkxTkRZQklTSW1OUkUwTmpzQkZTRTFNeklXRlJFVUJnS0FPRWhJT0lBMVMwczFBZ0ExUzBzMS93QVNHUmtTRWhrWkFSTCtBQm9tSmhwQUFZQkFHaVltQXZBWVNFZ1lTelgrUURWTFN6VUJ3RFZMRVJnUkVSZ1lFUkVZL1pFbUdnSEFHaWFBZ0NZYS9rQWFKZ0FBQUFBQ0FIQUFNQU9RQTFBQUtBQkFBQUFCSnpBMk56NEJGemNtTno0Qk56WXhGaGNlQVJjV0Z3NEJCdzRCSndjZUFSY1dCZzhCSndjbk53RU9BUjhCQnlZR0J3RStBVGMySmljM01CWTNKekFHTVFGWmxRWVBJWEV3WlFrUUVDd1VGQ1VrSlVrbEpTUUZDd1VhUlNwcUFRRUNBeWd2R0pycExla0JDQkVhQ2hDZ01HSVRBU0VDQkFJZUJ3ZWFPaVRhQVFGSGxTY1ZMUThKWXh3ZEhTNFBEeVVsSkVvbEpDVUhEZ2NqTHdkbkNRRWJNMkFZREpycUx1a0J0ZzRtRHhlZkRBSWUvdDhDQXdJYVZpeWFFU3JaQVFBQUNnQS8vLzhEd1FPQkFDY0FPd0JIQUdFQVp3QnVBSHNBaGdDTUFKSUFBQUVlQVJjV0ZSWVVCeFFIRGdFSEJpTUdJaWNpSnk0Qkp5WTFKalEzTkRjK0FUYzJNell5RnpJVElSRVdNeFkyTnpZM1BnRTNOamMrQVNjMEp3RVVGaFVlQVJjeUZqTTFJd0VISnpjZUFSY0hKeFVPQVFjakZ3Y25OeDRCRndjV05qYzFCUlFXRlRNMUp3WVVCek0xSXpjcUFTTWlCZ2NVQmhVek5UTWxGVE0wSmpVdUFTY2lKaVVHSWdjVk16Y21JaU1WTXdNa1Bsd0NBUUVCQVFKY1BrbEpTWkpKU1VrOVhRSUJBUUVCQWx3K1NVbEpra2xKcVAyNlBUMDllajA5UFNRMUFnSUNBUUVCQXZ6OEFRSTFKQWdRQ0h3Q1FRa3VWeFlyRmk0SkFWdy9kd291VmxZTUZnd0xVWUlCL2J3QmZuMEJBWDk5dnhndUZ5VTZBUUY4UWdISGZRRUNOU1FJRVA3eklVRWdnc01nUVNHQ0E0QUNYRDVKU1VtU1NVbEpQbHdDQVFFQkFRSmNQa2xKU1pKSlNVaytYQUlCQVFIL0FQMjhBZ0VCQVFJQ0FqVWtQVDA4ZWowOVBQNDhDUkVJSkRVQ0FYNEJGZ291VmhVc0ZTNEtjejlmQWdrdVYxY01GZ3dLQVIxRmMxUWhRQ0NCd2lGQUlZTC9PQ1lZTUJsQmYzOEpFUWtrTlFJQkFnRUJmNEFCZ1FBQUFnQ2dBR0FEWUFNZ0FBc0FGd0FBQVNFVklSRWpFU0UxSVJFekJ4RWhGU0VSTXhFaE5TRVJBbUFCQVA4QXdQOEFBUURBZ1A4QUFRQkFBUUQvQUFJZ3dQOEFBUURBQVFCQS93QkEvd0FCQUVBQkFBQUFBUUZlQUtrQ29nTFhBQWNBQUFFSEZ3Y0pBUjRCQXFMcDZTMys2UUVYQ3hjQ3FlbnBMZ0VYQVJjTUZnQUNBQUQvd0FRQUE4QUFHd0EzQUFBQklnY09BUWNHRlJRWEhnRVhGak15Tno0Qk56WTFOQ2N1QVNjbUJ6SVhIZ0VYRmhVVUJ3NEJCd1lqSWljdUFTY21OVFEzUGdFM05nSUFhbDFkaXlrb0tDbUxYVjFxYWwxZGl5a29LQ21MWFYxcVhWRlNlaU1qSXlONlVsRmRYVkZTZWlNakl5TjZVbEVEd0NncGkxMWRhbXBkWFlzcEtDZ3BpMTFkYW1wZFhZc3BLRUFqSTNwU1VWMWRVVko2SXlNakkzcFNVVjFkVVZKNkl5TUFBd0FBLzhBRUFBUEFBQnNBTndCVEFBQUJJZ2NPQVFjR0ZSUVhIZ0VYRmpNeU56NEJOelkxTkNjdUFTY21CeklYSGdFWEZoVVVCdzRCQndZaklpY3VBU2NtTlRRM1BnRTNOZ0VVQnc0QkJ3WWpJaWN1QVNjbU5UUTNQZ0UzTmpNeUZ4NEJGeFlDQUdwZFhZc3BLQ2dwaTExZGFtcGRYWXNwS0NncGkxMWRhbDFSVW5vakl5TWplbEpSWFYxUlVub2pJeU1qZWxKUkFaMFpHVmM2TzBKQ096cFhHUmtaR1ZjNk8wSkNPenBYR1JrRHdDZ3BpMTFkYW1wZFhZc3BLQ2dwaTExZGFtcGRYWXNwS0VBakkzcFNVVjFkVVZKNkl5TWpJM3BTVVYxZFVWSjZJeVArUUVJN09sY1pHUmtaVnpvN1FrSTdPbGNaR1JrWlZ6bzdBQUFBQUFJQWVRQ1RBNGNDN1FBT0FCa0FBQWtCSnpjaE5TRW5OeFlYSGdFWEZpVVhJUlVoQnhjM0p3NEJBNGYrMG8xQS9tMEJrMENOSmlZbFRDVW0vc2FBL2hJQjdvQXkwOU1NR2dIQS90T05RTUJBalNVbUprc21KWHFBUUlBejA5TU5HUUFBQUFBQ0FJQUFRQU9BQTBBQURnQVpBQUFCRVNFUkl4RVVGak1oTWpZMUVTTUZOeGNISnpjWEVUTVJNUU1yL2FwVk1pTUNWaU15VmY4QWJqelYxVHh1VmdIQS90VUJLLzdWSXpJeUl3RXJIVzQ4MWRVOGJnR2QvbU1BQVFEcEFSNERGd0ppQUFjQUFBa0NOeGMzSGdFREYvN3AvdWt1NmVrTUZnSTEvdWtCRnkzcDZRc1hBQUFCQVY0QXFRS2lBdGNBQndBQUFRY1hCd2tCSGdFQ291bnBMZjdwQVJjTEZ3S3A2ZWt1QVJjQkZ3d1dBQUVCWGdDcEFxSUMxd0FNQUFBSkFTYzNKemNXRng0QkZ4WVhBcUwrNlMzcDZTMGpJeU5GSXlNakFjRCs2UzdwNlM0akl5TkdJaU1qQUFBQUFBRUE2UUVlQXhjQ1lnQUxBQUFCQnljSEp3RVdGeDRCRnhZREZ5N3A2UzRCRnlNaklrWWpJd0ZMTGVucExRRVhJeU1qUlNNakFBQUFBUURwQU80REZ3S1NBQWNBQUFrQkp6Y1hBUjRCQXhmK2liY3VpUUZKREJZQ1pmNkp0eTJKQVVrTEZ3QUJBVjRBcVFLaUF0Y0FEQUFBQ1FFbk55YzNGaGNlQVJjV0Z3S2kvdWt0NmVrdEl5TWpSU01qSXdIQS91a3U2ZWt1SXlNalJpSWpJd0FBQUFBQkFNQUJvQU5BQWVBQUF3QUFFeUVWSWNBQ2dQMkFBZUJBQUFBQUFRRHBBUjRERndKaUFBY0FBQWtDTnhjM0hnRURGLzdwL3VrdTZla01GZ0kxL3VrQkZ5M3A2UXNYQUFBQkFBQUFBUUFBRWt2aGVWOFBQUFVBQ3dRQUFBQUFBTmxCajQwQUFBQUEyVUdQalFBQS84QUVBQVBBQUFBQUNBQUNBQUFBQUFBQUFBRUFBQVBBLzhBQUFBUUFBQUFBQUFRQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBNEJBQUFBQUFBQUFBQUFBQUFBZ0FBQUFRQUFEOEVBQUJUQkFBQktRUUFBSUFFQUFEVkJBQUFBQVFBQUFBRUFBQUFCQUFBY3dRQUFNQUVBQURBQkFBQlhnUUFBS0FFQUFFcEJBQUFRQVFBQUlZRUFBRXBCQUFCWGdRQUFFTUVBQUJEQkFBQXdBUUFBUFVFQUFEQUJBQUFQd1FBQUVNRUFBRDFCQUFBZVFRQUFHQUVBQUR4QkFBQXdBUUFBTXNFQUFDQUJBQUJYZ1FBQUVBRUFBQjJCQUFBZ0FRQUFIQUVBQUEvQkFBQW9BUUFBVjRFQUFBQUJBQUFBQVFBQUhrRUFBQ0FCQUFBNlFRQUFWNEVBQUZlQkFBQTZRUUFBT2tFQUFGZUJBQUF3QVFBQU9rQUFBQUFBQW9BRkFBZUFNSUJCZ0VlQVl3QnFBSHFBaVFDV0FLR0Fwb0N2QUxTQXg0RFBnTzJCQklFS2dSSUJRZ0ZyZ1lDQmlBR2FnY01CN1lIMmdnSUNGSUljZ2lNQ0s0SXdnamdDUXdKeEFvVUNud0xWQXQrQzVRTDZneHFESndNeUF6ZURQUU5FZzB1RFVRTllnMXdEWVlBQUFBQkFBQUFPQUNUQUF3QUFBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdDdUFBRUFBQUFBQUFFQUNBQUFBQUVBQUFBQUFBSUFCd0JwQUFFQUFBQUFBQU1BQ0FBNUFBRUFBQUFBQUFRQUNBQitBQUVBQUFBQUFBVUFDd0FZQUFFQUFBQUFBQVlBQ0FCUkFBRUFBQUFBQUFvQUdnQ1dBQU1BQVFRSkFBRUFFQUFJQUFNQUFRUUpBQUlBRGdCd0FBTUFBUVFKQUFNQUVBQkJBQU1BQVFRSkFBUUFFQUNHQUFNQUFRUUpBQVVBRmdBakFBTUFBUVFKQUFZQUVBQlpBQU1BQVFRSkFBb0FOQUN3UVdkQ1lXeG9ZVzBBUVFCbkFFSUFZUUJzQUdnQVlRQnRWbVZ5YzJsdmJpQXhMakFBVmdCbEFISUFjd0JwQUc4QWJnQWdBREVBTGdBd1FXZENZV3hvWVcwQVFRQm5BRUlBWVFCc0FHZ0FZUUJ0UVdkQ1lXeG9ZVzBBUVFCbkFFSUFZUUJzQUdnQVlRQnRVbVZuZFd4aGNnQlNBR1VBWndCMUFHd0FZUUJ5UVdkQ1lXeG9ZVzBBUVFCbkFFSUFZUUJzQUdnQVlRQnRSbTl1ZENCblpXNWxjbUYwWldRZ1lua2dTV052VFc5dmJpNEFSZ0J2QUc0QWRBQWdBR2NBWlFCdUFHVUFjZ0JoQUhRQVpRQmtBQ0FBWWdCNUFDQUFTUUJqQUc4QVRRQnZBRzhBYmdBdUFBQUFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PVxcXCIpIGZvcm1hdChcXFwidHJ1ZXR5cGVcXFwiKTtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICBmb250LXN0eWxlOiBub3JtYWw7IH1cXG5cXG4uYWctdGhlbWUtYmFsaGFtIHtcXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxuICBjb2xvcjogIzAwMDtcXG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBzYW5zLXNlcmlmO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGxpbmUtaGVpZ2h0OiAxOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51LCAuYWctdGhlbWUtYmFsaGFtIC5hZy10aGVtZS1iYWxoYW0uYWctZG5kLWdob3N0LCAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwuYWctcG9wdXAtZWRpdG9yLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1zZWxlY3QtYWdnLWZ1bmMtcG9wdXAsIC5hZy10aGVtZS1iYWxoYW0gLmFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXIge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy10YWItaGVhZGVyIC5hZy10YWIge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcXG4gICAgbWFyZ2luOiA0cHg7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgIHBhZGRpbmc6IDRweCA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1oZWFkZXIgLmFnLXRhYi5hZy10YWItc2VsZWN0ZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMDkxRUE7XFxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB3aGl0ZTtcXG4gICAgYm9yZGVyLWNvbG9yOiAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIGxhYmVsIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAqIHtcXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAqOmZvY3VzLCAuYWctdGhlbWUtYmFsaGFtICogKjpiZWZvcmUsIC5hZy10aGVtZS1iYWxoYW0gKiAqOmFmdGVyIHtcXG4gICAgICBvdXRsaW5lOiBub25lO1xcbiAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYiB7XFxuICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC01IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC02IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE2OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC03IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC03IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxOTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxOTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMjI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC04IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC05IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI1MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI1MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEwIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDIyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMiB7XFxuICAgIHBhZGRpbmctbGVmdDogMzM2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMzNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzNjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEzIHtcXG4gICAgcGFkZGluZy1yaWdodDogMzY0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMjgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM5MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzOTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNSB7XFxuICAgIHBhZGRpbmctbGVmdDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE2IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDQ4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMzQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDM0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ3NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNTA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDUwNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1MzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE5IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTMycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMCB7XFxuICAgIHBhZGRpbmctbGVmdDogNDAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMSB7XFxuICAgIHBhZGRpbmctbGVmdDogNTg4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU4OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2MTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIyIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMyB7XFxuICAgIHBhZGRpbmctbGVmdDogNDYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY0NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2NDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctbGVmdDogNjcycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY3MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDUwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI1IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctbGVmdDogNTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDUyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctbGVmdDogNzU2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc1NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3ODRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI4IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzg0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctbGVmdDogNTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDgxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctbGVmdDogODQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMxIHtcXG4gICAgcGFkZGluZy1yaWdodDogODY4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctbGVmdDogNjQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg5NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4OTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctbGVmdDogOTI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDkyNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5NTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM0IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTUycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctbGVmdDogNzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDcwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTAwOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMDA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctbGVmdDogNzQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwMzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTAzNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDY0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwNjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM5IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTA5MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMDkycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctbGVmdDogODAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDExMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQwIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTEyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDgyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTQ4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExNDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQyIHtcXG4gICAgcGFkZGluZy1yaWdodDogODQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTE3NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMTc2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctbGVmdDogODYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEyMDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQzIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTIwNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjMycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyMzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ1IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTI2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMjYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctbGVmdDogOTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDkyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEyODhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ2IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTI4OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMzE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEzMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ4IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00OCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTM0NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMzQ0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctbGVmdDogOTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEzNzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ5IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTM3MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsIC5hZy1pY29uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGVja2JveCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmFkaW8tYnV0dG9uLCAuYWctdGhlbWUtYmFsaGFtIC5hZy10b2dnbGUtYnV0dG9uIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hlY2tib3ggbGFiZWwsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJhZGlvLWJ1dHRvbiBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9nZ2xlLWJ1dHRvbiBsYWJlbCB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hlY2tib3ggbGFiZWw6ZW1wdHksIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJhZGlvLWJ1dHRvbiBsYWJlbDplbXB0eSwgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9nZ2xlLWJ1dHRvbiBsYWJlbDplbXB0eSB7XFxuICAgICAgICBtYXJnaW46IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hlY2tib3g6bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmFkaW8tYnV0dG9uOm5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvZ2dsZS1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbCB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1sZWFmLWluZGVudCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWNlbGwge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3cuYWctY2VsbC1maXJzdC1yaWdodC1waW5uZWQsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctY2VsbDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtZmlyc3QtcmlnaHQtcGlubmVkIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy5hZy1jZWxsLWxhc3QtbGVmdC1waW5uZWQsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctY2VsbDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZCB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWxlYWYtaW5kZW50IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNlbGwge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1maXJzdC1yaWdodC1waW5uZWQge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1sYXN0LWxlZnQtcGlubmVkIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdmFsdWUtY2hhbmdlLWRlbHRhIHtcXG4gICAgcGFkZGluZy1yaWdodDogMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEtdXAge1xcbiAgICBjb2xvcjogIzQzYTA0NzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdmFsdWUtY2hhbmdlLWRlbHRhLWRvd24ge1xcbiAgICBjb2xvcjogI2U1MzkzNTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdmFsdWUtY2hhbmdlLXZhbHVlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxcHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy12YWx1ZS1jaGFuZ2UtdmFsdWUtaGlnaGxpZ2h0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMTYwLCAxMzMsIDAuNSk7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXQ6bm90KFt0eXBlXSksXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRlbFxcXCJdLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl0ge1xcbiAgICBib3JkZXItd2lkdGg6IDFweDtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjOTVBNUE2OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXQ6bm90KFt0eXBlXSk6ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRlbFxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdOmRpc2FibGVkIHtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDksIDE2NSwgMTY2LCAwLjMpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwicmFuZ2VcXFwiXSB7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgdGV4dGFyZWEge1xcbiAgICBib3JkZXItd2lkdGg6IDFweDtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjOTVBNUE2OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgdGV4dGFyZWE6ZGlzYWJsZWQge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XFxuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OSwgMTY1LCAxNjYsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3Zjc7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBzYW5zLXNlcmlmO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGlubmVkLXJpZ2h0LWhlYWRlciB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGlubmVkLWxlZnQtaGVhZGVyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLXJvdyB7XFxuICAgIGJvcmRlcjogbm9uZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93IHtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjQkRDM0M3O1xcbiAgICBib3JkZXItd2lkdGg6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93Om5vdCguYWctcm93LWZpcnN0KSB7XFxuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMCAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvdy5hZy1yb3ctbGFzdCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3ctb2RkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZmRmZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LWV2ZW4ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaG9yaXpvbnRhbC1sZWZ0LXNwYWNlciB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaG9yaXpvbnRhbC1sZWZ0LXNwYWNlci5hZy1zY3JvbGxlci1jb3JuZXIge1xcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaG9yaXpvbnRhbC1yaWdodC1zcGFjZXIge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaG9yaXpvbnRhbC1yaWdodC1zcGFjZXIuYWctc2Nyb2xsZXItY29ybmVyIHtcXG4gICAgICBib3JkZXItbGVmdDogbm9uZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LWhvdmVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VDRjBGMTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbnVtZXJpYy1jZWxsIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1jZWxsLWxhYmVsIC5hZy1oZWFkZXItaWNvbiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIG9wYWNpdHk6IDAuODc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1jZWxsLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWdyb3VwLWNlbGwge1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6ICNCREMzQzc7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcXG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcXG4gICAgYm9yZGVyLXdpZHRoOiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1jZWxsLmFnLWhlYWRlci1jZWxsLW1vdmluZyxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWdyb3VwLWNlbGwuYWctaGVhZGVyLWNlbGwtbW92aW5nIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItY2VsbDpub3QoLmFnLWhlYWRlci1ncm91cC1jZWxsLW5vLWdyb3VwKSxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWdyb3VwLWNlbGw6bm90KC5hZy1oZWFkZXItZ3JvdXAtY2VsbC1uby1ncm91cCkge1xcbiAgICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLXJvdzpmaXJzdC1jaGlsZCAuYWctaGVhZGVyLWNlbGwsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1yb3c6Zmlyc3QtY2hpbGQgLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcXG4gICAgY3Vyc29yOiBjb2wtcmVzaXplOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItc2VsZWN0LWFsbCB7XFxuICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbCB7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDExcHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvdy1kcmFnIHtcXG4gICAgY3Vyc29yOiBtb3ZlO1xcbiAgICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcXG4gICAgY3Vyc29yOiBncmFiO1xcbiAgICBtaW4td2lkdGg6IDI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvdy1kcmFnZ2luZywgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LWRyYWdnaW5nIC5hZy1yb3ctZHJhZyB7XFxuICAgIGN1cnNvcjogbW92ZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyYWcge1xcbiAgICBjdXJzb3I6IG1vdmU7XFxuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xcbiAgICBjdXJzb3I6IGdyYWI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvdy1kcmFnZ2luZyB7XFxuICAgIG9wYWNpdHk6IDAuNTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1oYXMtZm9jdXMgLmFnLWNlbGwtZm9jdXM6bm90KC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkKSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWNlbGwtZm9jdXMuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbC5hZy1jZWxsLXJhbmdlLWhhbmRsZSwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1oYXMtZm9jdXMgLmFnLWNlbGwtZm9jdXM6bm90KC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkKSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNlbGwtZm9jdXMuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbC5hZy1jZWxsLXJhbmdlLWhhbmRsZSB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDkxRUE7XFxuICAgIG91dGxpbmU6IGluaXRpYWw7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1jZWxsLXJlc2l6ZSB7XFxuICAgIHdpZHRoOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUge1xcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBwYWRkaW5nOiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUgLmFnLW1lbnUtbGlzdCB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcXG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XFxuICAgICAgd2lkdGg6IDEwMCU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbWVudSAuYWctbWVudS1vcHRpb24tYWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNGMEYxOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLWRpc2FibGVkIHtcXG4gICAgICBvcGFjaXR5OiAwLjU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbWVudSAuYWctbWVudS1vcHRpb24tdGV4dCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1pY29uIHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICAgICAgbWluLXdpZHRoOiAyNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLXNob3J0Y3V0IHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51IC5hZy1tZW51LXNlcGFyYXRvciB7XFxuICAgICAgaGVpZ2h0OiA4cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51IC5hZy1tZW51LXNlcGFyYXRvciA+IHNwYW4ge1xcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFxcXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIwd2lkdGglM0QnMSclMjBoZWlnaHQlM0QnOHB4JyUyMHZpZXdCb3glM0QnMCUyMDAlMjAxJTIwOHB4JyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclM0UlM0NsaW5lJTIweDElM0QnMCclMjB5MSUzRCc0cHgnJTIweDIlM0QnMSclMjB5MiUzRCc0cHgnJTIwc3Ryb2tlLXdpZHRoJTNEJzEnJTIwc3Ryb2tlJTNEJyUyM0JEQzNDNyclMkYlM0UlM0MlMkZzdmclM0VcXFwiKTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1wb3B1cC1wb2ludGVyIHtcXG4gICAgICB3aWR0aDogMjRweDtcXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0uYWctZG5kLWdob3N0IHtcXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgIGhlaWdodDogMzJweCAhaW1wb3J0YW50O1xcbiAgICBsaW5lLWhlaWdodDogMzJweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwIDhweDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLmFnLWRuZC1naG9zdCBzcGFuLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLmFnLWRuZC1naG9zdCBkaXYge1xcbiAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICBtYXJnaW46IDA7XFxuICAgICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLmFnLWRuZC1naG9zdCAuYWctZG5kLWdob3N0LWljb24ge1xcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xcbiAgICAgIG9wYWNpdHk6IDAuODc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1oZWFkZXIge1xcbiAgICBiYWNrZ3JvdW5kOiAjZjVmN2Y3O1xcbiAgICBtaW4td2lkdGg6IDIyMHB4O1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1oZWFkZXIgLmFnLXRhYiB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgICAgaGVpZ2h0OiAxNnB4O1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgICAgICAgZmxleDogbm9uZTtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy10YWItYm9keSB7XFxuICAgIHBhZGRpbmc6IDJweCAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1ib2R5IC5hZy1tZW51LWxpc3Qge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgICAgbWFyZ2luLXRvcDogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1ib2R5IC5hZy1tZW51LWxpc3QgPiBkaXY6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcXG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCA+IGRpdjpsYXN0LWNoaWxkID4gc3BhbiB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1ib2R5IC5hZy1tZW51LWxpc3QgPiBkaXY6bGFzdC1jaGlsZCA+IC5hZy1tZW51LW9wdGlvbi1wb3B1cC1wb2ludGVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1maWx0ZXItc2VsZWN0LCAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1ib2R5IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1ib2R5IHtcXG4gICAgbWFyZ2luLXRvcDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1maWx0ZXItZmlsdGVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctZmlsdGVyLXNlbGVjdCB7XFxuICAgIG1hcmdpbjogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgaW5wdXRbdHlwZT1cXFwicmFkaW9cXFwiXSB7XFxuICAgIG1hcmdpbjogMCAzcHggMCA2cHg7XFxuICAgIHdpZHRoOiAxMnB4O1xcbiAgICBoZWlnaHQ6IDE3cHg7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctc2V0LWZpbHRlci1saXN0IHtcXG4gICAgaGVpZ2h0OiAxNjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1zZXQtZmlsdGVyLWl0ZW0ge1xcbiAgICBoZWlnaHQ6IDI4cHg7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItaXRlbSA+IGRpdiwgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1zZXQtZmlsdGVyLWl0ZW0gPiBzcGFuIHtcXG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctZmlsdGVyLWhlYWRlci1jb250YWluZXI6bnRoLWNoaWxkKDIpIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctZmlsdGVyLWFwcGx5LXBhbmVsIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBwYWRkaW5nLXRvcDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctZmlsdGVyLWFwcGx5LXBhbmVsIGJ1dHRvbiB7XFxuICAgICAgbGluZS1oZWlnaHQ6IDEuNTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1hcHBseS1wYW5lbCBidXR0b24gKyBidXR0b24ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiB7XFxuICAgIGhlaWdodDogMTZweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWxhYmVsLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1ncm91cC1pY29ucyxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1sYWJlbCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLXByaW1hcnktY29scy1saXN0LXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgIHBhZGRpbmctdG9wOiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctcHJpbWFyeS1jb2xzLWxpc3QtcGFuZWwgPiBkaXYge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLmFnLXRvb2xwYW5lbC1hZGQtZ3JvdXAtaW5kZW50IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgaGVpZ2h0OiAzMnB4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwgPiBkaXYge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICBtYXJnaW46IDAgNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwgLmFnLWZpbHRlci1ib2R5IHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwge1xcbiAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci10b29scGFuZWwtaW5zdGFuY2Uge1xcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XFxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgICAgICAtbXMtZmxleDogYXV0bztcXG4gICAgICAgICAgICAgICAgZmxleDogYXV0bztcXG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgLW1zLWZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcXG4gICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cXG4gICAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciB7XFxuICAgICAgICAgIHBhZGRpbmc6IDAgNXB4OyB9XFxuICAgICAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciA+IGRpdiB7XFxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCAuYWctZmlsdGVyLWJvZHktd3JhcHBlciB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogNXB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci1haXIge1xcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xcbiAgICAgICAgcGFkZGluZzogNHB4IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1waXZvdC1tb2RlLXBhbmVsIHtcXG4gICAgICBoZWlnaHQ6IDMycHg7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgICAgIGZsZXg6IG5vbmU7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLXBpdm90LW1vZGUtcGFuZWwgLmFnLXBpdm90LW1vZGUtc2VsZWN0IHtcXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwge1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XFxuICAgICAgcGFkZGluZy10b3A6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgICAgcGFkZGluZzogNHB4IDA7XFxuICAgICAgcGFkZGluZy1ib3R0b206IDhweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWVtcHR5LW1lc3NhZ2Uge1xcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XFxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1saXN0IHtcXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICAgIG1hcmdpbi10b3A6IDRweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3AgPiBkaXYgPiA6Zmlyc3QtY2hpbGQge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW51bWVyaWMtaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1sYWJlbCAuYWctaGVhZGVyLWljb24ge1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhZ2luZy1wYW5lbCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgaGVpZ2h0OiAzMnB4O1xcbiAgICBwYWRkaW5nOiAwIDEycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFnaW5nLXBhbmVsID4gc3BhbiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLWljb24ge1xcbiAgICB3aWR0aDogMTZweDtcXG4gICAgaGVpZ2h0OiAxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIC5hZy1wYWdpbmctYnV0dG9uIGJ1dHRvbiB7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIC5hZy1wYWdpbmctYnV0dG9uLmFnLWRpc2FibGVkIC5hZy1pY29uIHtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XFxuICAgIG9wYWNpdHk6IDAuMzg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24uYWctZGlzYWJsZWQgYnV0dG9uIHtcXG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIHNwYW4ge1xcbiAgICBtYXJnaW46IDAgNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3ctc2VsZWN0ZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjdlNGZmOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLXRvcCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLXRvcCB7XFxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzAwOTFFQTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtcmlnaHQsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1yaWdodCB7XFxuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMDA5MUVBOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1ib3R0b20sIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1ib3R0b20ge1xcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICMwMDkxRUE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWxlZnQsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1sZWZ0IHtcXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogIzAwOTFFQTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNDUsIDIzNCwgMC4yKTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1yYW5nZS1jaGFydCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA4OCwgMjU1LCAwLjEpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLXJhbmdlLWNoYXJ0LmFnLWNlbGwtcmFuZ2UtY2hhcnQtY2F0ZWdvcnkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjU1LCAxMzIsIDAuMSk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMTpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNDUsIDIzNCwgMC4zKTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0yOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE0NSwgMjM0LCAwLjQpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTM6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTQ1LCAyMzQsIDAuNSk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtNDpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNDUsIDIzNCwgMC42KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC10b3AsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtdG9wIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAjMDA5MUVBOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtdG9wLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC10b3AuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkIHtcXG4gICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICM4NjkxOTg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtcmlnaHQsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtcmlnaHQge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgIzAwOTFFQTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLXJpZ2h0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCAjODY5MTk4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbSwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1ib3R0b20ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICMwMDkxRUE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1ib3R0b20uYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbS5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzg2OTE5ODsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0LCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWxlZnQge1xcbiAgICBib3JkZXItbGVmdDogMXB4IGRhc2hlZCAjMDA5MUVBOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtbGVmdC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtbGVmdC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggZGFzaGVkICM4NjkxOTg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbGwtaGFuZGxlLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1yYW5nZS1oYW5kbGUge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiA2cHg7XFxuICAgIGhlaWdodDogNnB4O1xcbiAgICBib3R0b206IC0xcHg7XFxuICAgIHJpZ2h0OiAtMXB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5MUVBOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWxsLWhhbmRsZSB7XFxuICAgIGN1cnNvcjogY2VsbDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmFuZ2UtaGFuZGxlIHtcXG4gICAgY3Vyc29yOiBud3NlLXJlc2l6ZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC5hZy1jZWxsLWlubGluZS1lZGl0aW5nIHtcXG4gICAgcGFkZGluZzogMTJweDtcXG4gICAgaGVpZ2h0OiA0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwuYWctcG9wdXAtZWRpdG9yIHtcXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcG9wdXAtZWRpdG9yIHtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wb3B1cC1lZGl0b3IgLmFnLWxhcmdlLXRleHRhcmVhIHRleHRhcmVhIHtcXG4gICAgICBoZWlnaHQ6IGF1dG87XFxuICAgICAgcGFkZGluZzogMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmljaC1zZWxlY3Qge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2Y3OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC1saXN0IHtcXG4gICAgICB3aWR0aDogMjAwcHg7XFxuICAgICAgaGVpZ2h0OiAxODJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3QtdmFsdWUge1xcbiAgICAgIHBhZGRpbmc6IDAgNHB4IDAgMTJweDtcXG4gICAgICBoZWlnaHQ6IDI4cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmljaC1zZWxlY3QgLmFnLXZpcnR1YWwtbGlzdC1pdGVtIHtcXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgICAgaGVpZ2h0OiAyOHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmljaC1zZWxlY3QgLmFnLXZpcnR1YWwtbGlzdC1pdGVtOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFQ0YwRjE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LXJvdyB7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC1yb3ctc2VsZWN0ZWQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiN2U0ZmY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1mbG9hdGluZy1maWx0ZXItYnV0dG9uIGJ1dHRvbiB7XFxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IDA7XFxuICAgIGhlaWdodDogMTZweDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgd2lkdGg6IDE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNlbGVjdGlvbi1jaGVja2JveDpub3QoLmFnLWhpZGRlbikgfiAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSwgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2VsZWN0aW9uLWNoZWNrYm94Om5vdCguYWctaGlkZGVuKSArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWV4cGFuZGVkOm5vdCguYWctaGlkZGVuKSB+IC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtZXhwYW5kZWQ6bm90KC5hZy1oaWRkZW4pICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29udHJhY3RlZDpub3QoLmFnLWhpZGRlbikgfiAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbnRyYWN0ZWQ6bm90KC5hZy1oaWRkZW4pICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY2hlY2tib3g6bm90KC5hZy1pbnZpc2libGUpIH4gLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jaGVja2JveDpub3QoLmFnLWludmlzaWJsZSkgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSkge1xcbiAgICBtYXJnaW4tbGVmdDogMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2VsZWN0aW9uLWNoZWNrYm94Om5vdCguYWctaGlkZGVuKSB+IC5hZy1ncm91cC1jaGVja2JveCxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWV4cGFuZGVkOm5vdCguYWctaGlkZGVuKSB+IC5hZy1ncm91cC1jaGVja2JveCxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbnRyYWN0ZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY2hlY2tib3g6bm90KC5hZy1pbnZpc2libGUpIH4gLmFnLWdyb3VwLWNoZWNrYm94IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNoaWxkLWNvdW50IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2VsZWN0aW9uLWNoZWNrYm94IHNwYW4ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2Y3O1xcbiAgICBoZWlnaHQ6IDI4cHg7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLWdyb3VwLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXBpdm90IHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1zbWFsbC1sZWZ0LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXNtYWxsLXJpZ2h0IHtcXG4gICAgICBtYXJnaW46IDAgNHB4O1xcbiAgICAgIG9wYWNpdHk6IDAuNTQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctY29sdW1uLWRyb3AtZW1wdHktbWVzc2FnZSB7XFxuICAgICAgb3BhY2l0eTogMC4zODsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIGJhY2tncm91bmQ6ICNkZGU0ZTY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxuICAgIG1pbi1oZWlnaHQ6IDE2cHg7XFxuICAgIHBhZGRpbmc6IDAgMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtdGV4dCB7XFxuICAgICAgbWFyZ2luOiAwIDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbiB7XFxuICAgICAgbWluLXdpZHRoOiAxNnB4O1xcbiAgICAgIG1hcmdpbjogMCAycHg7XFxuICAgICAgb3BhY2l0eTogMC41NDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtYnV0dG9uOmhvdmVyIHtcXG4gICAgICAgIG9wYWNpdHk6IDAuODc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyYWcge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWFyZ2luLXRvcDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zZWxlY3QtYWdnLWZ1bmMtcG9wdXAge1xcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gICAgaGVpZ2h0OiA3MHB4O1xcbiAgICBwYWRkaW5nOiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNlbGVjdC1hZ2ctZnVuYy1wb3B1cCAuYWctdmlydHVhbC1saXN0LWl0ZW0ge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2V0LWZpbHRlci1saXN0LFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbWVudS1jb2x1bW4tc2VsZWN0LXdyYXBwZXIge1xcbiAgICB3aWR0aDogYXV0bzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtdmVydGljYWwgPiAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIG1hcmdpbi10b3A6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtZGF0YS1jaGFuZ2VkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMiwgMTYwLCAxMzMsIDAuNSkgIWltcG9ydGFudDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1kYXRhLWNoYW5nZWQtYW5pbWF0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxcztcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxczsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LXN0dWIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zdHViLWNlbGwge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XFxuICAgIHBhZGRpbmctdG9wOiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc3R1Yi1jZWxsIC5hZy1sb2FkaW5nLWljb24ge1xcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNwaW47XFxuICAgICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3BpbjtcXG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XFxuICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xcbiAgZnJvbSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cXG4gIHRvIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxcblxcbkBrZXlmcmFtZXMgc3BpbiB7XFxuICBmcm9tIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxcbiAgdG8ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXN0dWItY2VsbCAuYWctbG9hZGluZy10ZXh0IHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICAgIG1hcmdpbi10b3A6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmxvYXRpbmctdG9wIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZsb2F0aW5nLWJvdHRvbSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1mbG9hdGluZy10b3AsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZsb2F0aW5nLWJvdHRvbSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmxvYXRpbmctdG9wIC5hZy1yb3csIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZsb2F0aW5nLWJvdHRvbSAuYWctcm93IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zdGF0dXMtYmFyIHtcXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBzYW5zLXNlcmlmO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW5hbWUtdmFsdWUtdmFsdWUge1xcbiAgICBjb2xvcjogIzAwMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc3RhdHVzLWJhci1jZW50ZXIge1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW5hbWUtdmFsdWUge1xcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gICAgcGFkZGluZy1ib3R0b206IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZGV0YWlscy1yb3cge1xcbiAgICBwYWRkaW5nOiAyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1vdmVybGF5LWxvYWRpbmctd3JhcHBlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciB7XFxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBwYWRkaW5nOiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNpZGUtYmFyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmNztcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIHtcXG4gICAgICBwYWRkaW5nLXRvcDogMTZweDtcXG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gICAgICB3aWR0aDogMjBweDtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIC5hZy1zaWRlLWJ1dHRvbiBidXR0b24ge1xcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICBjb2xvcjogIzAwMDtcXG4gICAgICAgIHBhZGRpbmc6IDhweCAwIDhweCAwO1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICBtaW4taGVpZ2h0OiA3MnB4O1xcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMCAxcHggMDtcXG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiBjZW50ZXI7XFxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNlbnRlcjtcXG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIC5hZy1zZWxlY3RlZCBidXR0b24ge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmNztcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcHg7XFxuICAgICAgICBib3JkZXItY29sb3I6ICNCREMzQzc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2lkZS1iYXIgLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zaWRlLWJhci5mdWxsLXdpZHRoIC5hZy1wYW5lbC1jb250YWluZXIge1xcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zaWRlLWJhciAuYWctY29sdW1uLWRyb3Age1xcbiAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXByaW1hcnktY29scy1maWx0ZXItd3JhcHBlciB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jb21wb25lbnQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xcbiAgICBwYWRkaW5nOiAwcHg7XFxuICAgIGJvcmRlcjogMCBzb2xpZCAjY2JkMGQzO1xcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29tcG9uZW50LmFnLWRpc2FibGVkID4gLmFnLWdyb3VwLWNvbXBvbmVudC1sYWJlbCAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jb21wb25lbnQuYWctZGlzYWJsZWQgPiAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciB7XFxuICAgICAgb3BhY2l0eTogMC41OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWVlZjtcXG4gICAgICBoZWlnaHQ6IDE2cHg7XFxuICAgICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBzYW5zLXNlcmlmO1xcbiAgICAgIGhlaWdodDogMjZweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jb21wb25lbnQ6bm90KC5hZy1jb2xsYXBzaWJsZSkgPiBkaXYge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbXBvbmVudDpub3QoLmFnLWNvbGxhcHNpYmxlKSA+IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBwYWRkaW5nOiA0cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jb21wb25lbnQ6bm90KC5hZy1jb2xsYXBzaWJsZSkgPiAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhciAuYWctY29sdW1uLWdyb3VwLWljb25zIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1jb21wb25lbnQtdG9vbGJhciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjVmNTtcXG4gICAgICBwYWRkaW5nOiA0cHg7XFxuICAgICAgYm9yZGVyOiAwIHNvbGlkICNCREMzQzc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29tcG9uZW50ID4gLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgICAgcGFkZGluZzogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtaXRlbSB7XFxuICAgICAgbWFyZ2luOiAycHggMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtaXRlbSAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhciB7XFxuICAgICAgICBoZWlnaHQ6IDE4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWxhYmVsZWQgbGFiZWwge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbGFiZWxlZC5hZy1sYWJlbC1hbGlnbi10b3AgbGFiZWwge1xcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNsaWRlciA+IC5hZy13cmFwcGVyID4gZGl2Om5vdCg6Zmlyc3Qtb2YtdHlwZSksIC5hZy10aGVtZS1iYWxoYW0gLmFnLWFuZ2xlLXNlbGVjdCA+IC5hZy13cmFwcGVyID4gZGl2Om5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xcbiAgICBtYXJnaW4tbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1hbmdsZS1zZWxlY3QgLmFnLWFuZ2xlLXNlbGVjdC1maWVsZCAuYWctcGFyZW50LWNpcmNsZSB7XFxuICAgIHdpZHRoOiAyNHB4O1xcbiAgICBoZWlnaHQ6IDI0cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuOSk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuOSk7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1jaGlsZC1jaXJjbGUge1xcbiAgICB0b3A6IDRweDtcXG4gICAgbGVmdDogMTJweDtcXG4gICAgd2lkdGg6IDZweDtcXG4gICAgaGVpZ2h0OiA2cHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YzRjNGM7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvZ2dsZS1idXR0b24gLmFnLWlucHV0LXdyYXBwZXIge1xcbiAgICBoZWlnaHQ6IDE2cHg7XFxuICAgIHdpZHRoOiA0MHB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzdGOEM4RDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAwcmVtOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvZ2dsZS1idXR0b24gLmFnLWlucHV0LXdyYXBwZXIgLmFnLWljb24ge1xcbiAgICAgIHdpZHRoOiAxNnB4O1xcbiAgICAgIGhlaWdodDogMTZweDtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjN0Y4QzhEO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcXG4gICAgICByaWdodDogY2FsYygxMDAlIC0gMTZweCk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvZ2dsZS1idXR0b24uYWctc2VsZWN0ZWQgLmFnLWlucHV0LXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5MUVBOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvZ2dsZS1idXR0b24uYWctc2VsZWN0ZWQgLmFnLWlucHV0LXdyYXBwZXIgLmFnLWljb24ge1xcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgICAgIHJpZ2h0OiAtMXB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciA+IGRpdiB7XFxuICAgICAgd2lkdGg6IDE2cHg7XFxuICAgICAgaGVpZ2h0OiAxNnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIGJ1dHRvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGlja2VyID4gLmFnLXdyYXBwZXIgYnV0dG9uOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNGMEYxOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1kaWFsb2cuYWctY29sb3ItZGlhbG9nIHtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1wYW5lbCB7XFxuICAgIHBhZGRpbmc6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tY29sb3Ige1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRvb2xzIHtcXG4gICAgICBwYWRkaW5nOiAxMHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1zYXQge1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKHdoaXRlKSwgdG8ocmdiYSgyMDQsIDE1NCwgMTI5LCAwKSkpO1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgd2hpdGUsIHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS12YWwge1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGZyb20oYmxhY2spLCB0byhyZ2JhKDIwNCwgMTU0LCAxMjksIDApKSk7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgYmxhY2ssIHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1kcmFnZ2VyIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgICAgIGhlaWdodDogMTJweDtcXG4gICAgICB3aWR0aDogMTJweDtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcXG4gICAgICBiYWNrZ3JvdW5kOiBibGFjaztcXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XFxuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1odWUtYmFja2dyb3VuZCB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1hbHBoYS1iYWNrZ3JvdW5kIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLWh1ZS1hbHBoYSB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gICAgICBoZWlnaHQ6IDExcHg7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1zbGlkZXIge1xcbiAgICAgIG1hcmdpbi10b3A6IC0xMnB4O1xcbiAgICAgIHdpZHRoOiAxM3B4O1xcbiAgICAgIGhlaWdodDogMTNweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAxM3B4O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XFxuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMzcpO1xcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjM3KTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tdGV4dC12YWx1ZSB7XFxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgICAgY29sb3I6ICMzMzM7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRleHQtdmFsdWU6Zm9jdXMge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZDc3ZTQ7XFxuICAgICAgcGFkZGluZzogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1yZWNlbnQtY29sb3JzID4gZGl2IHtcXG4gICAgICBtYXJnaW46IDAgM3B4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXJlY2VudC1jb2xvcnMgPiBkaXY6Zmlyc3QtY2hpbGQge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1wYW5lbCAuYWctcmVjZW50LWNvbG9ycyA+IGRpdjpsYXN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS5hZy1wb3B1cCA+IGRpdjpub3QoLmFnLXRvb2x0aXAtY3VzdG9tKSB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAgIC5hZy1kcmFnZ2luZy1yYW5nZS1oYW5kbGUgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwuYWctZGlhbG9nLCAuYWctZHJhZ2dpbmctZmlsbC1oYW5kbGUgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwuYWctZGlhbG9nIHtcXG4gICAgICBvcGFjaXR5OiAwLjc7XFxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmNztcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZGNkZTtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgICBoZWlnaHQ6IDMycHg7XFxuICAgICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbiB7XFxuICAgICAgICBoZWlnaHQ6IDIwcHg7XFxuICAgICAgICB3aWR0aDogMjBweDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbiAuYWctaWNvbiB7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7IH1cXG4gICAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b246aG92ZXIsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b24uYWctaGFzLXBvcHVwIHtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q3ZTBlMjsgfVxcbiAgICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbjpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwgLmFnLW1lc3NhZ2UtYm94IC5hZy1tZXNzYWdlLWJveC1idXR0b24tYmFyIHtcXG4gICAgICBoZWlnaHQ6IDMwcHg7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmNztcXG4gICAgICBwYWRkaW5nOiAycHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbCAuYWctbWVzc2FnZS1ib3ggLmFnLW1lc3NhZ2UtYm94LWJ1dHRvbi1iYXIgYnV0dG9uIHtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbHRpcCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYmQwZDM7XFxuICAgIGNvbG9yOiAjMDAwO1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIHBhZGRpbmc6IDVweDtcXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogI2NiZDBkMztcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDFzO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2x0aXAuYWctdG9vbHRpcC1oaWRpbmcge1xcbiAgICAgIG9wYWNpdHk6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoYXJ0IC5hZy1jaGFydC1tZW51IHtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGFydCAuYWctY2hhcnQtbWVudSA+IHNwYW46aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gICAgbWFyZ2luOiA1cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsOm50aC1jaGlsZCgybiArIDIpOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWw6bnRoLWNoaWxkKDNuICsgMSkge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsOm50aC1jaGlsZCgzbikge1xcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbC5hZy1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLWNvbG9yOiAjMDA5MUVBOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLW5hdi1jYXJkLXNlbGVjdG9yIC5hZy1uYXYtY2FyZC1pdGVtIHtcXG4gICAgY29sb3I6ICMwMDA7XFxuICAgIGZvbnQtc2l6ZTogMTBweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLW5hdi1jYXJkLXNlbGVjdG9yIC5hZy1uYXYtY2FyZC1pdGVtLmFnLXNlbGVjdGVkIHtcXG4gICAgICBjb2xvcjogIzAwOTFFQTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LWZvcm1hdCAuYWctY2hhcnQtZm9ybWF0LXdyYXBwZXIgLmFnLWdyb3VwLWl0ZW0ge1xcbiAgICBtYXJnaW46IDQuOHB4IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24ge1xcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xcbiAgICBmb250LWZhbWlseTogXFxcImFnR3JpZEJhbGhhbVxcXCI7XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICBmb250LXNpemU6IDE2cHg7XFxuICAgIGNvbG9yOiAjN0Y4QzhEO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWFnZ3JlZ2F0aW9uOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwMFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tYXJyb3dzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tYXNjOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2FuY2VsOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwM1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2hhcnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA0XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDdcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNvbG9yLXBpY2tlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDhcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNvbHVtbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDlcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNvbHVtbnM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jb250cmFjdGVkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwQlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY29weTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MENcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNyb3NzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY3V0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tZGF0YTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MEZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWRlc2M6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTEwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1leHBhbmRlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTFcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWV5ZS1zbGFzaDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTJcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWV5ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWZpbHRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTRcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWZpcnN0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxNVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tZ3JpcDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWdyb3VwOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxN1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24taW5kZXRlcm1pbmF0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MThcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWxhc3Q6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE5XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1sZWZ0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tbG9hZGluZzpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MUJcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLW1heGltaXplOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tbWVudTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MURcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLW1pbmltaXplOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxRVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tbWludXM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFGXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1uZXh0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tbm9uZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjFcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLW5vdC1hbGxvd2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tcGFzdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1waW46YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI0XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1waXZvdDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjVcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXBsdXM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1wcmV2aW91czpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjdcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vZmY6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI4XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1yYWRpby1idXR0b24tb246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI5XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1yaWdodDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkFcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXNhdmU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJCXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1zbWFsbC1kb3duOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tc21hbGwtbGVmdDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkRcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXNtYWxsLXJpZ2h0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyRVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tc21hbGwtdXA6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJGXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi10aWNrOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkzMFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tdHJlZS1jbG9zZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMxXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi10cmVlLWluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi10cmVlLW9wZW46YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQtcmVhZG9ubHksXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1yZWFkb25seSxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQtcmVhZG9ubHkge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICBvcGFjaXR5OiAwLjM4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQge1xcbiAgICBjb2xvcjogIzAwOTFFQTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQtcmVhZG9ubHk6YmVmb3JlIHtcXG4gICAgICBjb250ZW50OiBcXFwiXFxcXEU5MDVcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtcmVhZG9ubHk6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQtcmVhZG9ubHk6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtZXhwYW5kZWQgLmFnLWljb24tY29udHJhY3RlZDplbXB0eTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXJvdy1kcmFnOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxNlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJpZ2h0LWFycm93OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tcmFkaW8tYnV0dG9uLW9uIHtcXG4gICAgY29sb3I6ICMwMDkxRUE7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJpZ2h0LWFycm93OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctbnVtZXJpYy1jZWxsIHtcXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY2hlY2tib3g6bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yYWRpby1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b2dnbGUtYnV0dG9uOm5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwge1xcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1waXZvdC1tb2RlLXBhbmVsIC5hZy1waXZvdC1tb2RlLXNlbGVjdCB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1lbXB0eS1tZXNzYWdlIHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLWdyb3VwLWljb25zLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXNlbGVjdC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi1ncm91cC1pY29ucyB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi5hZy10b29scGFuZWwtYWRkLWdyb3VwLWluZGVudCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctaGVhZGVyLXNlbGVjdC1hbGwge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggKyAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1jaGVja2JveCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctZ3JvdXAtY2hlY2tib3ggKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctZ3JvdXAtZXhwYW5kZWQgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggKyAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1jaGVja2JveCArIC5hZy1ncm91cC1jaGVja2JveCxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWV4cGFuZGVkICsgLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctZ3JvdXAtY29udHJhY3RlZCArIC5hZy1ncm91cC1jaGVja2JveCB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XFxuICAgICAgICBtYXJnaW4tbGVmdDogaW5pdGlhbDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWNoaWxkLWNvdW50IHtcXG4gICAgICBtYXJnaW4tbGVmdDogdW5zZXQ7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLWdyb3VwLFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1waXZvdCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24ge1xcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNldC1maWx0ZXItaXRlbSA+IGRpdiwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZXQtZmlsdGVyLWl0ZW0gPiBzcGFuIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWhlYWRlciAuYWctaGVhZGVyLWNlbGwtcmVzaXplOjphZnRlciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNpZGUtYmFyIC5hZy1wYW5lbC1jb250YWluZXIge1xcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zaWRlLWJhci5mdWxsLXdpZHRoIC5hZy1wYW5lbC1jb250YWluZXIge1xcbiAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5zYXNzLXZhcmlhYmxlczo6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAneyBcXFwiYXV0b1NpemVQYWRkaW5nXFxcIjogXFxcIjEycHhcXFwiLCBcXFwiaGVhZGVySGVpZ2h0XFxcIjogXFxcIjMycHhcXFwiLCBcXFwiZ3JvdXBQYWRkaW5nU2l6ZVxcXCI6IFxcXCIyOHB4XFxcIiwgXFxcImZvb3RlclBhZGRpbmdBZGRpdGlvblxcXCI6IFxcXCIxNnB4XFxcIiwgXFxcInZpcnR1YWxJdGVtSGVpZ2h0XFxcIjogXFxcIjI4cHhcXFwiLCBcXFwiYWdnRnVuY1BvcHVwSGVpZ2h0XFxcIjogXFxcIjk4cHhcXFwiLCBcXFwiY2hlY2tib3hJbmRlbnRXaWR0aFxcXCI6IFxcXCIyMHB4XFxcIiwgXFxcImxlYWZOb2RlUGFkZGluZ1xcXCI6IFxcXCIxMnB4XFxcIiwgXFxcInJvd0hlaWdodFxcXCI6IFxcXCIyOHB4XFxcIiwgXFxcImdyaWRTaXplXFxcIjogXFxcIjRweFxcXCIsIFxcXCJpY29uU2l6ZVxcXCI6IFxcXCIxNnB4XFxcIiB9JztcXG4gICAgZGlzcGxheTogbm9uZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1oaWdobGlnaHQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5MUVBICFpbXBvcnRhbnQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1jZWxsLXJlc2l6ZTo6YWZ0ZXIge1xcbiAgICBoZWlnaHQ6IDgwJTtcXG4gICAgbWFyZ2luLXRvcDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItY2VsbDo6YWZ0ZXIsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDo6YWZ0ZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDE4OSwgMTk1LCAxOTksIDAuNSk7XFxuICAgIGNvbnRlbnQ6IFxcXCIgXFxcIjtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICBtYXJnaW4tdG9wOiA4cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdGV4dC1pbmRlbnQ6IC0yMDAwcHg7XFxuICAgIHRvcDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1oZWFkZXItY2VsbDo6YWZ0ZXIsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWhlYWRlci1ncm91cC1jZWxsOjphZnRlciB7XFxuICAgIHJpZ2h0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWhlYWRlci1jZWxsOjphZnRlcixcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctaGVhZGVyLWdyb3VwLWNlbGw6OmFmdGVyIHtcXG4gICAgbGVmdDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbC5hZy1jb2x1bW4tZHJvcCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgIGJvcmRlci1ib3R0b206IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbC5hZy1jb2x1bW4tZHJvcC5hZy13aWR0aC1oYWxmOmZpcnN0LWNoaWxkIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwuYWctY29sdW1uLWRyb3AuYWctd2lkdGgtaGFsZjpmaXJzdC1jaGlsZCB7XFxuICAgIGJvcmRlci1sZWZ0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3cge1xcbiAgICBib3JkZXItY29sb3I6ICNkOWRjZGU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvdy1zZWxlY3RlZCB7XFxuICAgIGJvcmRlci1jb2xvcjogI2I3ZTRmZjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIG1pbi1oZWlnaHQ6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC1idXR0b24ge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcXG4gICAgICBtYXJnaW4tdG9wOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC1idXR0b246aG92ZXIge1xcbiAgICAgIG9wYWNpdHk6IDE7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtdmVydGljYWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtdGV4dCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3Zjc7XFxuICAgIGhlaWdodDogMzJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLXRleHQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvb3Qge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiB7XFxuICAgICAgbWluLWhlaWdodDogMjBweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIHtcXG4gICAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xcbiAgICAgIHBhZGRpbmctdG9wOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2lkZS1iYXIsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWljb24tZXhwYW5kZWQsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWljb24tY29udHJhY3RlZCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51LW9wdGlvbiB7XFxuICAgIGhlaWdodDogMjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIHtcXG4gICAgaGVpZ2h0OiAyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy10YWItaGVhZGVyIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWhlYWRlciAuYWctdGFiIHtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAtMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1oZWFkZXIgLmFnLXRhYi5hZy10YWItc2VsZWN0ZWQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy10YWItYm9keSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBvcHVwLWVkaXRvcixcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gICAgY29sb3I6ICMwMDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwuYWctY2VsbC1pbmxpbmUtZWRpdGluZyB7XFxuICAgIGhlaWdodDogMjhweDtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZGV0YWlscy1yb3cge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctb3ZlcmxheS1sb2FkaW5nLXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW92ZXJsYXktbG9hZGluZy1jZW50ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgY29sb3I6ICMwMDA7XFxuICAgIHBhZGRpbmc6IDE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMTpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNDUsIDIzNCwgMC4zKTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0yOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE0NSwgMjM0LCAwLjQpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTM6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTQ1LCAyMzQsIDAuNSk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtNDpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNDUsIDIzNCwgMC42KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmljaC1zZWxlY3QtdmFsdWUge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyLWFwcGx5LXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlci10b29scGFuZWwtYm9keSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XFxuXFxuXCIiLCJtb2R1bGUuZXhwb3J0cyA9IFwiQGNoYXJzZXQgXFxcIlVURi04XFxcIjtcXG5AZm9udC1mYWNlIHtcXG4gIGZvbnQtZmFtaWx5OiBcXFwiYWdHcmlkTWF0ZXJpYWxcXFwiO1xcbiAgc3JjOiB1cmwoXFxcImRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3VDFNdk1nOFNCbE1BQUFDOEFBQUFZR050WVhBWFZ0SzZBQUFCSEFBQUFGUm5ZWE53QUFBQUVBQUFBWEFBQUFBSVoyeDVadlpOQkJnQUFBRjRBQUFSV0dobFlXUVZhV04zQUFBUzBBQUFBRFpvYUdWaEI0a0QrUUFBRXdnQUFBQWthRzEwZU5ZQUpwOEFBQk1zQUFBQTRHeHZZMkY5U0hqTUFBQVVEQUFBQUhKdFlYaHdBRUlBV1FBQUZJQUFBQUFnYm1GdFpWbThxM0VBQUJTZ0FBQUJxbkJ2YzNRQUF3QUFBQUFXVEFBQUFDQUFBd1AyQVpBQUJRQUFBcGtDekFBQUFJOENtUUxNQUFBQjZ3QXpBUWtBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQURwTXdQQS84QUFRQVBBQUVBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQURBQUFBQXdBQUFCd0FBUUFEQUFBQUhBQURBQUVBQUFBY0FBUUFPQUFBQUFvQUNBQUNBQUlBQVFBZzZUUC8vZi8vQUFBQUFBQWc2UUQvL2YvL0FBSC80eGNFQUFNQUFRQUFBQUFBQUFBQUFBQUFBUUFCLy84QUR3QUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBQkFRQUFhd01BQXhVQUN3QUFBU0VWQ1FFVklUVWhOeWNoQXdEK0FBRVYvdXNDQVA3VjF0WUJLd01WVmY4QS93QlZnTlhWQUFBQUFBUUFPZi81QThjRGh3QUlBQThBRndBZkFBQUJNelV6SndjekZURUhJelVIRnpVekpTY1ZJeFV6RlRjRkl4VWpGemNqTlFHcnFuTEh4M0k1Y3NmSGNnSlZ4M0p5eC82T3FuTEh4M0lDVG5MSHgzSTVjc2ZIY2xYSGNxcHl4NDV5eDhkeUFBQUJBS3NBYXdOVkF4VUFDUUFBRXhjM0VUTVJGemNKQWFzODdsYnVQUDZyL3FzQndEenUvZmtDQis4OUFWWCtxd0FDQUZVQUZRT3JBMnNBSEFBb0FBQUJJZ2NPQVFjR0ZSUVhIZ0VYRmpNeU56NEJOelkxTkNjdUFTY21JeE1ISndjbk55YzNGemNYQndJQVdFNU9kQ0VpSWlGMFRrNVlXRTVPZENFaUlpRjBUazVZMVR5Wm1UeVptVHlabVR5WkEyc2lJWFJPVGxoWVRrNTBJU0lpSVhST1RsaFlUazUwSVNMOXZEeVptVHlabVR5Wm1UeVpBQUFBQXdEVkFKVURLd0xyQUFRQUNRQU5BQUFUTXhFakVUY3pFU01SRXpNUkk5V0FnTzk0ZU85NGVBSTMvbDRCb3JUOXFnSlcvcXIvQUFBQ0FJQUFRQU9BQTBBQUR3QVdBQUFCSVNJR0ZSRVVGak1oTWpZMUVUUW1BU2MzRndFWEFRTXIvYW9qTWpJakFsWWpNakwrWGRZOG1nRkVQUDZBQTBBeUkvMnFJekl5SXdKV0l6TDlxOVU4bVFGRVBQNkFBQUFBQWdDQUFFQURnQU5BQUE4QUV3QUFBU0VpQmhVUkZCWXpJVEkyTlJFMEpnTWhOU0VESy8ycUl6SXlJd0pXSXpJeWVmNVdBYW9EUURJai9hb2pNaklqQWxZak12NVZWZ0FBQWdDQUFFQURnQU5BQUFNQUV3QUFBUkVoRVNVaElnWVZFUlFXTXlFeU5qVVJOQ1lESy8ycUFsYjlxaU15TWlNQ1ZpTXlNZ0xyL2FvQ1ZsVXlJLzJxSXpJeUl3SldJeklBQXdCekFFZ0RqUU00QUFZQUNnQVdBQUFKQVFjWENRSWhOeGNoQlRBR0ZSUVdNekkyTlRRbUF2MytWVHhtL3ZjQlJRRkYvZS9NelA1b0FreFZNaU1qTWxVQmpRR3JQR2IrOS82N0FVWE56VUJyS2lNeU1pTXFhd0FBQUFBQ0FLc0Fhd0ZWQXhVQUF3QUhBQUFsSXhFek5SVWpOUUZWcXFxcWF3SC9xMWRYQUFBSkFLc0Fhd05WQXhVQUF3QUlBQXdBRUFBVkFCa0FIZ0FpQUNZQUFCTXpOU01CTXpVakZTRXpOU00xTXpVakJUTTFJeFVCRlRNMUJUTTFJeFVCTXpVakVUTTFJNnVxcWdFQXFxci9BS3FxcXFvQkFLcXFBUUNxL2xhcXFnRUFxcXFxcWdKcnF2MVdxcXFxVnFxcXFxb0JxcXFxcXFxcS93Q3EvbGFxQUFBQUFBRUJZZ0RBQXA0Q3dBQUdBQUFCSndrQk55YzNBcDQ4L3dBQkFEekR3d0tFUFA4QS93QTh4TVFBQUFBQUF3QnIvK3NEbFFPVkFBZ0FHUUFkQUFBQklTSUdGUkV6RVNFWElTSUdGUkVVRmpNaE1qWTFFVFFtSXhFaEVTRUN3UDRBSXpKVkFnQ0EvaXNrTWpJa0FkVWpNaklqL2lzQjFRT1ZNaVA5cXdKVlZUSWsvYXNqTWpJakFsVWtNdjFWQWxVQUFBRUExUUNWQXlzQzZ3QU1BQUFCSndjbkJ4Y0hGemNYTnljM0F5czg3Kzg4Nys4ODcrODg3KzhDcnp6djd6enY3enp2N3p6djd3QUFCUUJWQUJVRHF3TnJBQ1VBTWdBL0FFc0FVUUFBQVQ0Qk5UUW1JeUlHRlJRV016STJOeGNITGdFaklnWVZGQll6TWpZMU5DWW5Od0V6TlFFSElpWTFORFl6TWhZVkZBWWpFU0ltTlRRMk16SVdGUlFHSXdFaUpqVTBOak15RmhVVUJna0JGd0UxSXdHYkNBaGtSMGRrWkVjVEl4QmxaUkFqRTBka1pFZEhaQWdJWlFFcmdQM3dteU15TWlNak1qSWpJekl5SXlNeU1pTUJBQWtNREFrSkRBd0JJdjhBVlFFcmdBSjZFQ01UUjJSa1IwZGtDQWhsWlFnSVpFZEhaR1JIRXlNUVpmN1ZLd0lQRHpFa0pERXhKQ1F4L2dBeEpDUXhNU1FrTVFGQURBa0pEQXdKQ1F3QmxmOEFWUUVxS3dBQUJ3Q1hBTDhEYVFMQkFBd0FFQUFkQUNFQUxRQTZBRDRBQUJNaUJoVVVGak15TmpVMEppTUZOU0VWQXlJR0ZSUVdNekkyTlRRbUl3VWhOU0VGTWhZVkZBWWpJaVkxTkRZM01oWVZGQVlqSWlZMU5EWXpCU0UxSWNJU0dSa1NFaGtaRWdLbi9kZCtFaGtaRWhJWkdSSUIwdjZzQVZUK0xnMFRFdzBORXhNTkVoa1pFaElaR1JJQ3AvM1hBaWtCRlJrU0VSb2FFUklaVlZaV0FTc1pFaElaR1JJU0dWVlZDeE1ORFJNVERRMFQ0Um9SRWhrWkVoRWFWbFVBQUFBQkFLc0Fhd05WQXhVQUNRQUFBU2NIRVNNUkp3Y0pBUU5WUE81Vzdqd0JWUUZWQWNBODdnSUgvZm52UGY2ckFWVUFBQUFBQVFGaUFNQUNuZ0xBQUFZQUFBRUhGd2NYQ1FFQm5qekR3endCQVA4QUFzQTh4TVE4QVFBQkFBQUFBQUFCQUpNQXh3TnRBcmtBUndBQUFTNEJJeUlHQnljK0FUTXlGeDRCRnhZWERnRUhKejRCTnlNT0FRY25JeGNPQVNNaUppY2pIZ0V6TWpZM0Z3NEJJeUluTGdFbkppYytBVGNYRGdFSE15YytBVE15RmhjekFxTUtYRDBpUFJaUEsyTTJQams1WHlRbEZSaFlPVThTR0FWRUJBMElLMUJHQkFrRklqVUpSQXBjUGhNakVFZ2hSeVkrT1RsZkpDVVZFejRvWGdVR0FvWXBEU1FWSWpRSlJBSGRPazhhRjA4WkhCTVNRaTR0Tno1bElVOFNMUm9NRlFrcVJnRUJLUjg2VUFnSVNBME9FeEpDTGkwM01GUWdYZ29VQ3lvTkVDZ2ZBQUFEQUpNQXh3TnRBcmtBSEFBcEFEVUFBQUVpQnc0QkJ3WUhGaGNlQVJjV016STNQZ0UzTmpjbUp5NEJKeVlqRVNJbU5UUTJNeklXRlJRR0l4RWlCaFVVRmpNeU5qVTBKZ0lBUGprNVh5UWxGUlVsSkY4NU9UNCtPVGxmSkNVVkZTVWtYems1UGtWaFlVVkZZV0ZGS1RzN0tTazdPd0s1RXhKQ0xpMDNOeTB1UWhJVEV4SkNMaTAzTnkwdVFoSVQvbUZoUlVWaFlVVkZZUUVLT3lrcE96c3BLVHNBQUFNQWdBREFBNEFDd0FBRUFBZ0FEQUFBSlRNMUl4VUJGU0UxQVNFMUlRR3JxcXIrMVFNQS9ZQUNBUDRBd0ZWVkFnQlZWZjdWVmdBQUFnRDNBTUFEQ1FMQUFBVUFDZ0FBSlNjM0p3a0JBVE1SSXhFRENjVEVQUDhBQVFEK0tsWlcvTVRFUFA4QS93QUNBUDRBQWdBQUFBQUNBS3NCUUFOVkFrQUFBd0FJQUFBQklSVWhCU0UxSVJVRFZmMVdBcXI5VmdLcS9WWUNRRldyVlZVQUFBWUFqZ0NrQTNJQzNBQUhBQXdBRXdBWEFCc0FJUUFBQVNFVUJpc0JOVEVsRlNFMUlTY3lGaFVoTlNFQkl6VXpOU00xTXljak5EWXpGUUpWQVIxREw2c0JIZjdqQVIxeUwwUCtBQUdPL3VSeWNuSnk1SEpETHdFVkwwSng1SEp5NDBJdmNmM0ljWEp5Y2k5Q2NRQUFBQUFDQUpNQXh3TnRBcmtBSEFBcEFBQUJJZ2NPQVFjR0J4WVhIZ0VYRmpNeU56NEJOelkzSmljdUFTY21JeEVpSmpVME5qTXlGaFVVQmlNQ0FENDVPVjhrSlJVVkpTUmZPVGsrUGprNVh5UWxGUlVsSkY4NU9UNUZZV0ZGUldGaFJRSzVFeEpDTGkwM055MHVRaElURXhKQ0xpMDNOeTB1UWhJVC9tRmhSVVZoWVVWRllRQUNBUGNBd0FNSkFzQUFCZ0FLQUFBVEZ3Y1hDUUVISlRNUkkvZkV4RHdCQVA4QVBBRzhWbFlDaE1URVBBRUFBUUE4UFA0QUFBQUFBQUVBcXdCckExVURGUUFKQUFBQklUY25DUUUzSnlFMUExWDkrZTg5L3FzQlZUenVBZ2NCNis0OC9xditxenp1VmdBQUFBQUNBT1FBcEFNY0F0d0FIQUFtQUFBQk54Y0hNeFVqSGdFWEJ5Y1ZJelVISnpjak5UTW5OeDRCRnpVekZRY3pOelVuSXdjVkhnRUNPV2hRYUpPVEdqUWFVR2h5YUZCb2s1Tm9VQm8wR25Kb1hrTkRYa01SSVFKSmFGQm9jaG8wR2xCb2s1Tm9VR2h5YUZBYU5CcVRrL3REWGtORFhoRWhBQUFCQUlBQzZ3T0FBMEFBQXdBQUV5RVZJWUFEQVAwQUEwQlZBQUFBQXdDQUFNQURnQUxBQUFNQUJ3QUxBQUEzSVRVaE5TRTFJVFVWSVRXQUF3RDlBQU1BL1FBREFNQlZnRmJWVlZVQUFRRUFBRUFEQUFDVkFBTUFBQ1VoRlNFQkFBSUEvZ0NWVlFBQUFBRUExUUdWQXlzQjZ3QUVBQUFUSVJVaE5kVUNWdjJxQWV0V1ZnQUJBV0lBd0FLZUFzQUFCZ0FBQVFjWEJ4Y0pBUUdlUE1QRFBBRUEvd0FDd0R6RXhEd0JBQUVBQUFBQUFBTUFnQURBQTRBQ3dBQURBQWNBQ3dBQU55RTFJUkVWSVRVQklUVWhnQUlBL2dBREFQMEFBd0Q5QU1CVkFhdFZWZjdWVmdBREFGVUFGUU9yQTJzQUhBQXJBRG9BQUFFaUJ3NEJCd1lWRkJjZUFSY1dNekkzUGdFM05qVTBKeTRCSnlZakFUUTNQZ0UzTmpNeUZoY0JMZ0UxQVNJbUp3RWVBUlVVQnc0QkJ3WWpBZ0JZVGs1MElTSWlJWFJPVGxoWVRrNTBJU0lpSVhST1RsaitxeG9iWFQ0K1J6dHJLLzRpSWlZQlZUdHJLd0hlSWlZYUcxMCtQa2NEYXlJaGRFNU9XRmhPVG5RaElpSWhkRTVPV0ZoT1RuUWhJdjVWUno0K1hSc2FKaUwrSWl0ck8vNnJKaUlCM2l0ck8wYytQbDBiR2dBQUFBQURBSUQvNndPQUE1VUFHQUFrQUN3QUFBRWpMZ0VqSWdZSEl5SUdGUkVVRmpNaE1qWTFFVFFtSXpFaE1oWVZGQVlqSWlZMU5EWUJJUkV6RlNFMU13TXJzdzFCS2lwQkRiTWpNaklqQWxZak1qSWovdFVTR1JrU0Voa1pBVDM5cWxZQnFsWURRQ1V3TUNVeUkvMVZJekl5SXdLckl6SVpFaEVaR1JFU0dmMEFBcXVBZ0FBQ0FLMEFid05UQXhFQUJRQVNBQUFsQnljM0hnRVRBUWNuQnhjSEp6Y1hOeWMzQVdPT0tJNEtGTVlCTkI4ZTl6NVk5bGc5ZXg0ZS9ZNG9qZ29VQWdyK3pCNGVlejFZOWxnKzl4NGZBQUFBQUFrQU9mLzVBOGNEaHdBUEFCTUFGd0FnQUNRQUxnQXlBRFlBT2dBQUJTRWlKalVSTkRZeklUSVdGUkVVQmdFakZUTUJJUkVoSlFjWEJ5YzNIZ0VYSnlNVk15VUhKd2NuTng0QkZ6RUJJeFV6SlNNVk16Y2pGVE1EVmYxV0wwTkRMd0txTDBORC9kR3FxZ0lBL2prQngvN2NRa0lwYVdrS0ZRcmNxcW9CK0NoQlFpaHFHalVhL2dpcXFnRWQ1T1RqcXFvSFF5OENxaTlEUXkvOVZpOURBUnlxQVk3K2NyTkNRU2hwYWdvVUN0dXJNU2hCUVNocEdqVWFBWmFxcXFxcXFnQUFBQUFCQU5VQWxRTXJBdXNBQ3dBQUFTRVJJeEVoTlNFUk14RWhBeXYvQUZiL0FBRUFWZ0VBQVpYL0FBRUFWZ0VBL3dBQUFBQUFBUUZpQU1BQ25nTEFBQVlBQUFFbkNRRTNKemNDbmp6L0FBRUFQTVBEQW9ROC93RC9BRHpFeEFBQUFBQUNBRlVBRlFPckEyc0FIQUE1QUFBQklnY09BUWNHRlJRWEhnRVhGak15Tno0Qk56WTFOQ2N1QVNjbUl4RWlKeTRCSnlZMU5EYytBVGMyTXpJWEhnRVhGaFVVQnc0QkJ3WWpBZ0JZVGs1MElTSWlJWFJPVGxoWVRrNTBJU0lpSVhST1RsaEhQajVkR3hvYUcxMCtQa2RIUGo1ZEd4b2FHMTArUGtjRGF5SWhkRTVPV0ZoT1RuUWhJaUloZEU1T1dGaE9UblFoSXYwQUdodGRQajVIUno0K1hSc2FHaHRkUGo1SFJ6NCtYUnNhQUFNQVZRQVZBNnNEYXdBY0FEa0FWZ0FBQVNJSERnRUhCaFVVRng0QkZ4WXpNamMrQVRjMk5UUW5MZ0VuSmlNMUlnY09BUWNHRlJRWEhnRVhGak15Tno0Qk56WTFOQ2N1QVNjbUl4RWlKeTRCSnlZMU5EYytBVGMyTXpJWEhnRVhGaFVVQnc0QkJ3WWpBZ0FzSnljNkVSQVFFVG9uSnl3c0p5YzZFUkFRRVRvbkp5eFlUazUwSVNJaUlYUk9UbGhZVGs1MElTSWlJWFJPVGxoSFBqNWRHeG9hRzEwK1BrZEhQajVkR3hvYUcxMCtQa2NDbFJBUk9pY25MQ3duSnpvUkVCQVJPaWNuTEN3bkp6b1JFTllpSVhST1RsaFlUazUwSVNJaUlYUk9UbGhZVGs1MElTTDlBQm9iWFQ0K1IwYytQbDBiR2hvYlhUNCtSMGMrUGwwYkdnQUJBS3NBYXdOVkF4VUFDUUFBQVFjWElSVWhCeGNKQVFJQVBPNzkrUUlIN2p3QlZmNnJBeFU4N2xidVBBRlZBVlVBQUFBQUFnQ0FBRUFEZ0FOQUFBNEFHUUFBQVJFaEVTTVJGQll6SVRJMk5SRWpCVGNYQnljM0Z4RXpFVEVESy8ycVZUSWpBbFlqTWxYL0FHNDgxZFU4YmxZQndQN1ZBU3YrMVNNeU1pTUJLeDF1UE5YVlBHNEJuZjVqQUFFQkt3RlZBdFVDS3dBREFBQUJGemNoQVN2VjFmNVdBaXZXMWdBQkFaVUE2d0pyQXBVQUF3QUFBUWNYRVFKcjF0WUNsZFhWQWFvQUFRR1ZBT3NDYXdLVkFBTUFBQ1UzSnhFQmxkYlc2OVhWL2xZQUFBRUJLd0ZWQXRVQ0t3QURBQUFCTnhjaEFTdlYxZjVXQVZYVzFnQUJBSWtBb2dOM0F0NEFCZ0FBQVNjSEZ3RW5BUUYzc2p6dUFnQTgvandCRzdJOTdnSUFQUDQ5QUFBQUFBRUJZZ0RBQXA0Q3dBQUdBQUFCQnhjSEZ3a0JBWjQ4dzhNOEFRRC9BQUxBUE1URVBBRUFBUUFBQUFBQUFRRFZBWlVES3dIckFBUUFBQk1oRlNFMTFRSlcvYW9CNjFaV0FBRUJBQUVpQXdBQ1hnQUZBQUFCQnljSENRRUN4TVRFUEFFQUFRQUNYc1BEUFA4QUFRQUFBQUFCQUFBQUFRQUFjRkJ6RVY4UFBQVUFDd1FBQUFBQUFObEJqMzBBQUFBQTJVR1BmUUFBLytzRHh3T1ZBQUFBQ0FBQ0FBQUFBQUFBQUFFQUFBUEEvOEFBQUFRQUFBQUFBQVBIQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUE0QkFBQUFBQUFBQUFBQUFBQUFnQUFBQVFBQVFBRUFBQTVCQUFBcXdRQUFGVUVBQURWQkFBQWdBUUFBSUFFQUFDQUJBQUFjd1FBQUtzRUFBQ3JCQUFCWWdRQUFHc0VBQURWQkFBQVZRUUFBSmNFQUFDckJBQUJZZ1FBQUpNRUFBQ1RCQUFBZ0FRQUFQY0VBQUNyQkFBQWpnUUFBSk1FQUFEM0JBQUFxd1FBQU9RRUFBQ0FCQUFBZ0FRQUFRQUVBQURWQkFBQllnUUFBSUFFQUFCVkJBQUFnQVFBQUswRUFBQTVCQUFBMVFRQUFXSUVBQUJWQkFBQVZRUUFBS3NFQUFDQUJBQUJLd1FBQVpVRUFBR1ZCQUFCS3dRQUFJa0VBQUZpQkFBQTFRUUFBUUFBQUFBQUFBb0FGQUFlQURvQWJBQ0VBTWdBNUFFUUFUUUJXQUdHQVpnQjJBSHVBaUFDUEFLMEF4SURMQU5DQTY0RUFBUWNCRGdFVGdTR0JNZ0U1QVQrQlRvRlNBVmdCVzRGZkFXU0Jhd0dEQVpPQm5ZRzJBYnlCd2dIWUFmZ0Ivb0lKZ2cwQ0VJSVVBaGVDSFFJaWdpWUNLd0FBQUFCQUFBQU9BQlhBQWtBQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0N1QUFFQUFBQUFBQUVBQ2dBQUFBRUFBQUFBQUFJQUJ3QjdBQUVBQUFBQUFBTUFDZ0EvQUFFQUFBQUFBQVFBQ2dDUUFBRUFBQUFBQUFVQUN3QWVBQUVBQUFBQUFBWUFDZ0JkQUFFQUFBQUFBQW9BR2dDdUFBTUFBUVFKQUFFQUZBQUtBQU1BQVFRSkFBSUFEZ0NDQUFNQUFRUUpBQU1BRkFCSkFBTUFBUVFKQUFRQUZBQ2FBQU1BQVFRSkFBVUFGZ0FwQUFNQUFRUUpBQVlBRkFCbkFBTUFBUVFKQUFvQU5BRElRV2ROWVhSbGNtbGhiQUJCQUdjQVRRQmhBSFFBWlFCeUFHa0FZUUJzVm1WeWMybHZiaUF4TGpBQVZnQmxBSElBY3dCcEFHOEFiZ0FnQURFQUxnQXdRV2ROWVhSbGNtbGhiQUJCQUdjQVRRQmhBSFFBWlFCeUFHa0FZUUJzUVdkTllYUmxjbWxoYkFCQkFHY0FUUUJoQUhRQVpRQnlBR2tBWVFCc1VtVm5kV3hoY2dCU0FHVUFad0IxQUd3QVlRQnlRV2ROWVhSbGNtbGhiQUJCQUdjQVRRQmhBSFFBWlFCeUFHa0FZUUJzUm05dWRDQm5aVzVsY21GMFpXUWdZbmtnU1dOdlRXOXZiaTRBUmdCdkFHNEFkQUFnQUdjQVpRQnVBR1VBY2dCaEFIUUFaUUJrQUNBQVlnQjVBQ0FBU1FCakFHOEFUUUJ2QUc4QWJnQXVBQUFBQXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBPT1cXFwiKSBmb3JtYXQoXFxcInRydWV0eXBlXFxcIik7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XFxuXFxuLmFnLXRoZW1lLW1hdGVyaWFsIHtcXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xcbiAgZm9udC1mYW1pbHk6IFxcXCJSb2JvdG9cXFwiLCBzYW5zLXNlcmlmO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGZvbnQtc2l6ZTogMTNweDtcXG4gIGxpbmUtaGVpZ2h0OiAxOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRhYi1oZWFkZXIgLmFnLXRhYi5hZy10YWItc2VsZWN0ZWQge1xcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzNmNTFiNTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIGxhYmVsIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsICoge1xcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgKjpmb2N1cywgLmFnLXRoZW1lLW1hdGVyaWFsICogKjpiZWZvcmUsIC5hZy10aGVtZS1tYXRlcmlhbCAqICo6YWZ0ZXIge1xcbiAgICAgIG91dGxpbmU6IG5vbmU7XFxuICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10YWIge1xcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMSB7XFxuICAgIHBhZGRpbmctbGVmdDogNDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDUycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogODRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMyB7XFxuICAgIHBhZGRpbmctbGVmdDogNzhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEyNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTI2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTA0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTY4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEzMHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC01IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTMwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIxMHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC01IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjEwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE1NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC02IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTU2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI1MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC02IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjUycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE4MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC03IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTgycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI5NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC03IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjk0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIwOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC04IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMzNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC04IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzM2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIzNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC05IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjM0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM3OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC05IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzc4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTEwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNjBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNjBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQyMHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQyMHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjg2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTExIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjg2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTExIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NjJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NjJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMxMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMxMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMiB7XFxuICAgIHBhZGRpbmctbGVmdDogNTA0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTA0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTEzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMzhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMzhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU0NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU0NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMzY0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzY0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1ODhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1ODhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM5MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDM5MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNSB7XFxuICAgIHBhZGRpbmctbGVmdDogNjMwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1yaWdodDogNjMwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY3MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY3MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNyB7XFxuICAgIHBhZGRpbmctbGVmdDogNDQycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE3IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDQycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3MTRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MTRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ2OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ2OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNzU2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzU2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0OTRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0OTRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc5OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc5OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMCB7XFxuICAgIHBhZGRpbmctbGVmdDogNTIwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIwIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTIwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NDBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4NDBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU0NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU0NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMSB7XFxuICAgIHBhZGRpbmctbGVmdDogODgycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1yaWdodDogODgycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1NzJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1NzJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDkyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDkyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMyB7XFxuICAgIHBhZGRpbmctbGVmdDogNTk4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIzIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTk4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5NjZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NjZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDYyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTAwOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwMDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY1MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY1MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTA1MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwNTBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY3NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY3NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTA5MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwOTJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcwMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDcwMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTEzNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExMzRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcyOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDcyOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTE3NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExNzZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc1NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc1NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTIxOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyMThweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc4MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc4MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTI2MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyNjBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDgwNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgwNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTMwMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEzMDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDgzMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgzMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTM0NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEzNDRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg1OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg1OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTM4NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEzODZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg4NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg4NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTQyOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE0MjhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDkxMHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDkxMHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTQ3MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE0NzBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDkzNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDkzNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTUxMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE1MTJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk2MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk2MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTU1NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE1NTRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk4OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk4OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTU5NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE1OTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwMTRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMDE0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNjM4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM5IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTYzOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTA0MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwNDBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2ODBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNjgwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDY2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTA2NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTcyMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE3MjJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwOTJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMDkycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNzY0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTc2NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTExOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExMThweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE4MDZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxODA2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTQ0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTE0NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTg0OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE4NDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDExNzBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMTcwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxODkwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ1IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTg5MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTE5NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExOTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE5MzJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxOTMycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjIycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTIyMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTk3NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE5NzRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEyNDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMjQ4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMDE2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ4IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjAxNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTI3NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyNzRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIwNThweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMDU4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbCAuYWctaWNvbiB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGVja2JveCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yYWRpby1idXR0b24sIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9nZ2xlLWJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hlY2tib3ggbGFiZWwsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmFkaW8tYnV0dG9uIGxhYmVsLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvZ2dsZS1idXR0b24gbGFiZWwge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hlY2tib3ggbGFiZWw6ZW1wdHksIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmFkaW8tYnV0dG9uIGxhYmVsOmVtcHR5LCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvZ2dsZS1idXR0b24gbGFiZWw6ZW1wdHkge1xcbiAgICAgICAgbWFyZ2luOiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hlY2tib3g6bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yYWRpby1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b2dnbGUtYnV0dG9uOm5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbCB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IHN1YnBpeGVsLWFudGlhbGlhc2VkOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWxlYWYtaW5kZW50IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1jZWxsIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3cuYWctY2VsbC1maXJzdC1yaWdodC1waW5uZWQsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1maXJzdC1yaWdodC1waW5uZWQge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3cuYWctY2VsbC1sYXN0LWxlZnQtcGlubmVkLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctY2VsbDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZCB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtbGVhZi1pbmRlbnQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDQycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jZWxsIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNlbGw6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy5hZy1jZWxsLWxhc3QtbGVmdC1waW5uZWQsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1sYXN0LWxlZnQtcGlubmVkIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdmFsdWUtY2hhbmdlLWRlbHRhLXVwIHtcXG4gICAgY29sb3I6ICM0M2EwNDc7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdmFsdWUtY2hhbmdlLWRlbHRhLWRvd24ge1xcbiAgICBjb2xvcjogI2U1MzkzNTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy12YWx1ZS1jaGFuZ2UtdmFsdWUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDFweDtcXG4gICAgcGFkZGluZy1yaWdodDogMXB4O1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMXM7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMXM7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdmFsdWUtY2hhbmdlLXZhbHVlLWhpZ2hsaWdodCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGFjYzE7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl0sXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl0sXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl0sXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl0ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XFxuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuICAgIGhlaWdodDogNDBweDtcXG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcXG4gICAgYm9yZGVyLXdpZHRoOiAwO1xcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2UyZTJlMjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl06Zm9jdXMsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTpmb2N1cyxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRlbFxcXCJdOmZvY3VzLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdOmZvY3VzLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXTpmb2N1cyB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzZjUxYjU7XFxuICAgICAgb3V0bGluZTogbm9uZTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXQ6bm90KFt0eXBlXSk6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRlbFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0Om5vdChbdHlwZV0pOjotbW96LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06Oi1tb3otcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZWxcXFwiXTo6LW1vei1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXTo6LW1vei1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl06Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXQ6bm90KFt0eXBlXSk6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXTo6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRlbFxcXCJdOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl06Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0Om5vdChbdHlwZV0pOjpwbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXTo6cGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6cGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZWxcXFwiXTo6cGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06OnBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXTo6cGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdOmRpc2FibGVkIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXQ6bm90KFt0eXBlXSk6ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRlbFxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXTpkaXNhYmxlZCB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0ge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwicmFuZ2VcXFwiXSB7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xcbiAgICBib3JkZXItd2lkdGg6IDA7XFxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYTpmb2N1cyB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzZjUxYjU7XFxuICAgICAgb3V0bGluZTogbm9uZTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgdGV4dGFyZWE6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYTo6LW1vei1wbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYTpkaXNhYmxlZCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhOmRpc2FibGVkIHtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBmb250LWZhbWlseTogXFxcIlJvYm90b1xcXCIsIHNhbnMtc2VyaWY7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBpbm5lZC1yaWdodC1oZWFkZXIge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGlubmVkLWxlZnQtaGVhZGVyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItcm93IHtcXG4gICAgYm9yZGVyOiBub25lOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJvdyB7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogI2UyZTJlMjtcXG4gICAgYm9yZGVyLXdpZHRoOiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcm93Om5vdCguYWctcm93LWZpcnN0KSB7XFxuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMCAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcm93LmFnLXJvdy1sYXN0IHtcXG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaG9yaXpvbnRhbC1sZWZ0LXNwYWNlciB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ob3Jpem9udGFsLWxlZnQtc3BhY2VyLmFnLXNjcm9sbGVyLWNvcm5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhvcml6b250YWwtcmlnaHQtc3BhY2VyIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaG9yaXpvbnRhbC1yaWdodC1zcGFjZXIuYWctc2Nyb2xsZXItY29ybmVyIHtcXG4gICAgICBib3JkZXItbGVmdDogbm9uZTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yb3ctaG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW51bWVyaWMtY2VsbCB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1jZWxsLWxhYmVsIC5hZy1oZWFkZXItaWNvbiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgIG9wYWNpdHk6IDAuODc7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWNlbGwsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZTJlMmUyO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XFxuICAgIGJvcmRlci13aWR0aDogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1jZWxsLmFnLWhlYWRlci1jZWxsLW1vdmluZyxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItZ3JvdXAtY2VsbC5hZy1oZWFkZXItY2VsbC1tb3Zpbmcge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItY2VsbDpub3QoLmFnLWhlYWRlci1ncm91cC1jZWxsLW5vLWdyb3VwKSxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpub3QoLmFnLWhlYWRlci1ncm91cC1jZWxsLW5vLWdyb3VwKSB7XFxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1yb3c6Zmlyc3QtY2hpbGQgLmFnLWhlYWRlci1jZWxsLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1yb3c6Zmlyc3QtY2hpbGQgLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpub3QoLmFnLWNvbHVtbi1yZXNpemluZykgKyAuYWctaGVhZGVyLWdyb3VwLWNlbGw6aG92ZXIsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWdyb3VwLWNlbGw6bm90KC5hZy1jb2x1bW4tcmVzaXppbmcpICsgLmFnLWhlYWRlci1ncm91cC1jZWxsLmFnLWNvbHVtbi1yZXNpemluZyxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWNlbGw6bm90KC5hZy1jb2x1bW4tcmVzaXppbmcpICsgLmFnLWhlYWRlci1jZWxsOmhvdmVyLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItY2VsbDpub3QoLmFnLWNvbHVtbi1yZXNpemluZykgKyAuYWctaGVhZGVyLWNlbGwuYWctY29sdW1uLXJlc2l6aW5nLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpmaXJzdC1vZi10eXBlOmhvdmVyLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpmaXJzdC1vZi10eXBlLmFnLWNvbHVtbi1yZXNpemluZyxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZTpob3ZlcixcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWNlbGw6Zmlyc3Qtb2YtdHlwZS5hZy1jb2x1bW4tcmVzaXppbmcge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1jZWxsLXJlc2l6ZSB7XFxuICAgIGN1cnNvcjogY29sLXJlc2l6ZTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItc2VsZWN0LWFsbCB7XFxuICAgIG1hcmdpbi1yaWdodDogMjRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsIHtcXG4gICAgbGluZS1oZWlnaHQ6IDQ2cHg7XFxuICAgIHBhZGRpbmctbGVmdDogMjRweDtcXG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMjNweDtcXG4gICAgcGFkZGluZy1yaWdodDogMjNweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yb3ctZHJhZyB7XFxuICAgIGN1cnNvcjogbW92ZTtcXG4gICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XFxuICAgIGN1cnNvcjogZ3JhYjtcXG4gICAgbWluLXdpZHRoOiA0MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJvdy1kcmFnZ2luZywgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yb3ctZHJhZ2dpbmcgLmFnLXJvdy1kcmFnIHtcXG4gICAgY3Vyc29yOiBtb3ZlOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1kcmFnIHtcXG4gICAgY3Vyc29yOiBtb3ZlO1xcbiAgICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcXG4gICAgY3Vyc29yOiBncmFiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJvdy1kcmFnZ2luZyB7XFxuICAgIG9wYWNpdHk6IDAuNTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLWhhcy1mb2N1cyAuYWctY2VsbC1mb2N1czpub3QoLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQpLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLWhhcy1mb2N1cyAuYWctY2VsbC1mb2N1cy5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLWNlbGwtZm9jdXMuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbC5hZy1jZWxsLXJhbmdlLWhhbmRsZSwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWhhcy1mb2N1cyAuYWctY2VsbC1mb2N1czpub3QoLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQpLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWhhcy1mb2N1cyAuYWctY2VsbC1mb2N1cy5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNlbGwtZm9jdXMuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbC5hZy1jZWxsLXJhbmdlLWhhbmRsZSB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMzZjUxYjU7XFxuICAgIG91dGxpbmU6IGluaXRpYWw7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcXG4gICAgd2lkdGg6IDE2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbWVudSB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1tZW51IC5hZy1tZW51LWxpc3Qge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgbWFyZ2luLXRvcDogOHB4O1xcbiAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbWVudSAuYWctbWVudS1vcHRpb24tYWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbWVudSAuYWctbWVudS1vcHRpb24tZGlzYWJsZWQge1xcbiAgICAgIG9wYWNpdHk6IDAuNTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLXRleHQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1pY29uIHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxuICAgICAgbWluLXdpZHRoOiAzNHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbWVudSAuYWctbWVudS1vcHRpb24tc2hvcnRjdXQge1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTZweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW1lbnUgLmFnLW1lbnUtc2VwYXJhdG9yIHtcXG4gICAgICBoZWlnaHQ6IDE2cHg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW1lbnUgLmFnLW1lbnUtc2VwYXJhdG9yID4gc3BhbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB3aWR0aCUzRCcxJyUyMGhlaWdodCUzRCcxNnB4JyUyMHZpZXdCb3glM0QnMCUyMDAlMjAxJTIwMTZweCclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTNFJTNDbGluZSUyMHgxJTNEJzAnJTIweTElM0QnOHB4JyUyMHgyJTNEJzEnJTIweTIlM0QnOHB4JyUyMHN0cm9rZS13aWR0aCUzRCcxJyUyMHN0cm9rZSUzRCclMjNFMkUyRTInJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIik7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1wb3B1cC1wb2ludGVyIHtcXG4gICAgICB3aWR0aDogMzRweDtcXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbC5hZy1kbmQtZ2hvc3Qge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcXG4gICAgcGFkZGluZzogOHB4O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmUyO1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBmb250LWZhbWlseTogXFxcIlJvYm90b1xcXCIsIHNhbnMtc2VyaWY7XFxuICAgIGhlaWdodDogNTZweCAhaW1wb3J0YW50O1xcbiAgICBsaW5lLWhlaWdodDogNTZweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwIDE2cHg7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwuYWctZG5kLWdob3N0IHNwYW4sXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbC5hZy1kbmQtZ2hvc3QgZGl2IHtcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgbWFyZ2luOiAwO1xcbiAgICAgIHBhZGRpbmc6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsLmFnLWRuZC1naG9zdCAuYWctZG5kLWdob3N0LWljb24ge1xcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgICAgIG9wYWNpdHk6IDAuODc7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdGFiLWhlYWRlciB7XFxuICAgIGJhY2tncm91bmQ6ICNlZWU7XFxuICAgIG1pbi13aWR0aDogMjIwcHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10YWItaGVhZGVyIC5hZy10YWIge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICAgIGhlaWdodDogMzJweDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgICAgIGZsZXg6IG5vbmU7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10YWItYm9keSB7XFxuICAgIHBhZGRpbmc6IDRweCAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0ID4gZGl2OmZpcnN0LWNoaWxkID4gc3BhbiB7XFxuICAgICAgICBwYWRkaW5nLXRvcDogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCA+IGRpdjpsYXN0LWNoaWxkID4gc3BhbiB7XFxuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCA+IGRpdjpsYXN0LWNoaWxkID4gLmFnLW1lbnUtb3B0aW9uLXBvcHVwLXBvaW50ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLXNlbGVjdCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1ib2R5IHtcXG4gICAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLWJvZHkge1xcbiAgICBtYXJnaW4tdG9wOiAwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLWZpbHRlciB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLXNlbGVjdCB7XFxuICAgIG1hcmdpbjogOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdIHtcXG4gICAgbWFyZ2luOiAwIDNweCAwIDZweDtcXG4gICAgd2lkdGg6IDEycHg7XFxuICAgIGhlaWdodDogMTdweDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWx0ZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWx0ZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIC5hZy1zZXQtZmlsdGVyLWxpc3Qge1xcbiAgICBoZWlnaHQ6IDI0MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctc2V0LWZpbHRlci1pdGVtIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItaXRlbSA+IGRpdiwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItaXRlbSA+IHNwYW4ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1oZWFkZXItY29udGFpbmVyOm50aC1jaGlsZCgyKSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLWFwcGx5LXBhbmVsIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG4gICAgcGFkZGluZzogOHB4O1xcbiAgICBwYWRkaW5nLXRvcDogMTZweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLWFwcGx5LXBhbmVsIGJ1dHRvbiB7XFxuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAgICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICBib3JkZXI6IDA7XFxuICAgICAgY29sb3I6ICMzZjUxYjU7XFxuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICAgIG1hcmdpbjogMDtcXG4gICAgICBwYWRkaW5nOiAwO1xcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1hcHBseS1wYW5lbCBidXR0b24gKyBidXR0b24ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIHtcXG4gICAgaGVpZ2h0OiAzMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWxhYmVsLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLWdyb3VwLWljb25zLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXNlbGVjdC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1sYWJlbCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi1ncm91cC1pY29ucyB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1wcmltYXJ5LWNvbHMtbGlzdC1wYW5lbCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlMmUyO1xcbiAgICBwYWRkaW5nLXRvcDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctcHJpbWFyeS1jb2xzLWxpc3QtcGFuZWwgPiBkaXYge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4uYWctdG9vbHBhbmVsLWFkZC1ncm91cC1pbmRlbnQge1xcbiAgICBtYXJnaW4tbGVmdDogMzRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wcmltYXJ5LWNvbHMtaGVhZGVyLXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgIGhlaWdodDogNTZweDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwgPiBkaXYge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICBtYXJnaW46IDAgOHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCAuYWctZmlsdGVyLWJvZHkge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwge1xcbiAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCAuYWctZmlsdGVyLXRvb2xwYW5lbC1pbnN0YW5jZSB7XFxuICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgICAgIC1tcy1mbGV4OiBhdXRvO1xcbiAgICAgICAgICAgICAgICBmbGV4OiBhdXRvO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAtbXMtZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xcbiAgICAgICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCAuYWctZmlsdGVyLXRvb2xwYW5lbC1pbnN0YW5jZSAuYWctZmlsdGVyLXRvb2xwYW5lbC1oZWFkZXIge1xcbiAgICAgICAgICBwYWRkaW5nOiAwIDVweDsgfVxcbiAgICAgICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciA+IGRpdiB7XFxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItYm9keS13cmFwcGVyIHtcXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItYWlyIHtcXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgICAgICBib3JkZXItbGVmdDogMDtcXG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcXG4gICAgICAgIHBhZGRpbmc6IDhweCAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1waXZvdC1tb2RlLXBhbmVsIHtcXG4gICAgICBoZWlnaHQ6IDU2cHg7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgICAgIGZsZXg6IG5vbmU7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctcGl2b3QtbW9kZS1wYW5lbCAuYWctcGl2b3QtbW9kZS1zZWxlY3Qge1xcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICBtYXJnaW4tbGVmdDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgICBwYWRkaW5nLWJvdHRvbTogN3B4O1xcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgICAgcGFkZGluZzogOHB4IDA7XFxuICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWVtcHR5LW1lc3NhZ2Uge1xcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XFxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICAgICAgZm9udC1mYW1pbHk6IFxcXCJSb2JvdG9cXFwiLCBzYW5zLXNlcmlmO1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzNHB4O1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1saXN0IHtcXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICAgIG1hcmdpbi10b3A6IDhweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCA+IGRpdiA+IDpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3A6bGFzdC1jaGlsZCB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW51bWVyaWMtaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1sYWJlbCAuYWctaGVhZGVyLWljb24ge1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFnaW5nLXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgICBoZWlnaHQ6IDU2cHg7XFxuICAgIHBhZGRpbmc6IDAgMjRweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhZ2luZy1wYW5lbCA+IHNwYW4ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAzMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLWljb24ge1xcbiAgICB3aWR0aDogMThweDtcXG4gICAgaGVpZ2h0OiAxOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24gYnV0dG9uIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctcGFnaW5nLWJ1dHRvbi5hZy1kaXNhYmxlZCAuYWctaWNvbiB7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xcbiAgICBvcGFjaXR5OiAwLjM4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24uYWctZGlzYWJsZWQgYnV0dG9uIHtcXG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgc3BhbiB7XFxuICAgIG1hcmdpbjogMCA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcm93LXNlbGVjdGVkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS10b3AsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLXRvcCB7XFxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzNmNTFiNTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1yaWdodCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtcmlnaHQge1xcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzNmNTFiNTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1ib3R0b20sIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWJvdHRvbSB7XFxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzNmNTFiNTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1sZWZ0LCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1sZWZ0IHtcXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogIzNmNTFiNTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyMiwgMTM0LCAyMDMsIDAuMSk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1yYW5nZS1jaGFydCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA4OCwgMjU1LCAwLjEpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtcmFuZ2UtY2hhcnQuYWctY2VsbC1yYW5nZS1jaGFydC1jYXRlZ29yeSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNTUsIDEzMiwgMC4xKTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTE6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIyLCAxMzQsIDIwMywgMC4yKTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTI6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIyLCAxMzQsIDIwMywgMC4zKTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTM6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIyLCAxMzQsIDIwMywgMC40KTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTQ6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIyLCAxMzQsIDIwMywgMC41KTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLXRvcCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLXRvcCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgIzNmNTFiNTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtdG9wLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLXRvcC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgI2FmYWZhZjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLXJpZ2h0LCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtcmlnaHQge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgIzNmNTFiNTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtcmlnaHQuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtcmlnaHQuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkIHtcXG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgI2FmYWZhZjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbSwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNmNTFiNTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbS5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgI2FmYWZhZjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLWxlZnQsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0IHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBkYXNoZWQgIzNmNTFiNTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtbGVmdC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkYXNoZWQgI2FmYWZhZjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWxsLWhhbmRsZSwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yYW5nZS1oYW5kbGUge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHdpZHRoOiA2cHg7XFxuICAgIGhlaWdodDogNnB4O1xcbiAgICBib3R0b206IC0xcHg7XFxuICAgIHJpZ2h0OiAtMXB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Y1MWI1OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbGwtaGFuZGxlIHtcXG4gICAgY3Vyc29yOiBjZWxsOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJhbmdlLWhhbmRsZSB7XFxuICAgIGN1cnNvcjogbndzZS1yZXNpemU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbC5hZy1jZWxsLWlubGluZS1lZGl0aW5nIHtcXG4gICAgcGFkZGluZzogMjRweDtcXG4gICAgaGVpZ2h0OiA3MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwuYWctY2VsbC1pbmxpbmUtZWRpdGluZywgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLmFnLXBvcHVwLWVkaXRvciB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcG9wdXAtZWRpdG9yIHtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBvcHVwLWVkaXRvciAuYWctbGFyZ2UtdGV4dGFyZWEgdGV4dGFyZWEge1xcbiAgICAgIGhlaWdodDogYXV0bztcXG4gICAgICBwYWRkaW5nOiAyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJpY2gtc2VsZWN0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC1saXN0IHtcXG4gICAgICB3aWR0aDogMjAwcHg7XFxuICAgICAgaGVpZ2h0OiAzMTJweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC12YWx1ZSB7XFxuICAgICAgcGFkZGluZzogMCA4cHggMCAyNHB4O1xcbiAgICAgIGhlaWdodDogNDhweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJpY2gtc2VsZWN0IC5hZy12aXJ0dWFsLWxpc3QtaXRlbSB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIGhlaWdodDogNDhweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmljaC1zZWxlY3QgLmFnLXZpcnR1YWwtbGlzdC1pdGVtOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3Qtcm93IHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3Qtcm93LXNlbGVjdGVkIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24gYnV0dG9uIHtcXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgaGVpZ2h0OiAxOHB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB3aWR0aDogMThweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3g6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2VsZWN0aW9uLWNoZWNrYm94Om5vdCguYWctaGlkZGVuKSArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtZXhwYW5kZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWV4cGFuZGVkOm5vdCguYWctaGlkZGVuKSArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29udHJhY3RlZDpub3QoLmFnLWhpZGRlbikgfiAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29udHJhY3RlZDpub3QoLmFnLWhpZGRlbikgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNoZWNrYm94Om5vdCguYWctaW52aXNpYmxlKSB+IC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jaGVja2JveDpub3QoLmFnLWludmlzaWJsZSkgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSkge1xcbiAgICBtYXJnaW4tbGVmdDogMjRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3g6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1leHBhbmRlZDpub3QoLmFnLWhpZGRlbikgfiAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jaGVja2JveDpub3QoLmFnLWludmlzaWJsZSkgfiAuYWctZ3JvdXAtY2hlY2tib3gge1xcbiAgICBtYXJnaW4tbGVmdDogMjRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jaGlsZC1jb3VudCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2VsZWN0aW9uLWNoZWNrYm94IHNwYW4ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XFxuICAgIGhlaWdodDogNDhweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1ncm91cCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXBpdm90IHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXNtYWxsLWxlZnQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1zbWFsbC1yaWdodCB7XFxuICAgICAgbWFyZ2luOiAwIDhweDtcXG4gICAgICBvcGFjaXR5OiAwLjU0OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctY29sdW1uLWRyb3AtZW1wdHktbWVzc2FnZSB7XFxuICAgICAgb3BhY2l0eTogMC4zODsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgYmFja2dyb3VuZDogI2UyZTJlMjtcXG4gICAgYm9yZGVyLXJhZGl1czogMzJweDtcXG4gICAgbWluLWhlaWdodDogMzJweDtcXG4gICAgcGFkZGluZzogMCA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLXRleHQge1xcbiAgICAgIG1hcmdpbjogMCA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbiB7XFxuICAgICAgbWluLXdpZHRoOiAzMnB4O1xcbiAgICAgIG1hcmdpbjogMCA0cHg7XFxuICAgICAgb3BhY2l0eTogMC41NDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC1idXR0b246aG92ZXIge1xcbiAgICAgICAgb3BhY2l0eTogMC44NzsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcmFnIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIG1hcmdpbi10b3A6IDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zZWxlY3QtYWdnLWZ1bmMtcG9wdXAge1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcXG4gICAgcGFkZGluZzogOHB4O1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICBoZWlnaHQ6IDE0MHB4O1xcbiAgICBwYWRkaW5nOiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2VsZWN0LWFnZy1mdW5jLXBvcHVwIC5hZy12aXJ0dWFsLWxpc3QtaXRlbSB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zZXQtZmlsdGVyLWxpc3QsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW1lbnUtY29sdW1uLXNlbGVjdC13cmFwcGVyIHtcXG4gICAgd2lkdGg6IGF1dG87IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLWRyb3AtdmVydGljYWwgPiAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgIG1hcmdpbi10b3A6IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbC1kYXRhLWNoYW5nZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhY2MxICFpbXBvcnRhbnQ7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbC1kYXRhLWNoYW5nZWQtYW5pbWF0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxcztcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxczsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zdHViLWNlbGwge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zdHViLWNlbGwgLmFnLWxvYWRpbmctaWNvbiB7XFxuICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc3BpbjtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluO1xcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XFxuICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcXG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XFxuICAgICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7IH1cXG5cXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XFxuICBmcm9tIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxcbiAgdG8ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XFxuXFxuQGtleWZyYW1lcyBzcGluIHtcXG4gIGZyb20ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XFxuICB0byB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zdHViLWNlbGwgLmFnLWxvYWRpbmctdGV4dCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgICBtYXJnaW4tdG9wOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmxvYXRpbmctdG9wIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmxvYXRpbmctYm90dG9tIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc3RhdHVzLWJhciB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiUm9ib3RvXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgcGFkZGluZy1yaWdodDogMzJweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbiAgICBsaW5lLWhlaWdodDogMS41OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW5hbWUtdmFsdWUtdmFsdWUge1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zdGF0dXMtYmFyLWNlbnRlciB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1uYW1lLXZhbHVlIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1kZXRhaWxzLXJvdyB7XFxuICAgIHBhZGRpbmc6IDQwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctb3ZlcmxheS1sb2FkaW5nLXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xcbiAgICBwYWRkaW5nOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmUyO1xcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyB7XFxuICAgICAgcGFkZGluZy10b3A6IDMycHg7XFxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICB3aWR0aDogMjJweDtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgLmFnLXNpZGUtYnV0dG9uIGJ1dHRvbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xcbiAgICAgICAgcGFkZGluZzogMTZweCAwIDE2cHggMDtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgbWluLWhlaWdodDogMTQ0cHg7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwIDFweCAwO1xcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVyO1xcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyAuYWctc2VsZWN0ZWQgYnV0dG9uIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XFxuICAgICAgICBtYXJnaW4tbGVmdDogLTFweDtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMXB4O1xcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTJlMmUyOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIgLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNpZGUtYmFyLmZ1bGwtd2lkdGggLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIgLmFnLWNvbHVtbi1kcm9wIHtcXG4gICAgICBtaW4taGVpZ2h0OiA1MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXByaW1hcnktY29scy1maWx0ZXItd3JhcHBlciB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGZkZmQ7XFxuICAgIHBhZGRpbmc6IDBweDtcXG4gICAgYm9yZGVyOiAwIHNvbGlkICNlZmVmZWY7XFxuICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudC5hZy1kaXNhYmxlZCA+IC5hZy1ncm91cC1jb21wb25lbnQtbGFiZWwgLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZSwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jb21wb25lbnQuYWctZGlzYWJsZWQgPiAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciB7XFxuICAgICAgb3BhY2l0eTogMC41OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xcbiAgICAgIGhlaWdodDogMThweDtcXG4gICAgICBmb250LXNpemU6IDEzcHg7XFxuICAgICAgZm9udC1mYW1pbHk6IFxcXCJSb2JvdG9cXFwiLCBzYW5zLXNlcmlmO1xcbiAgICAgIGhlaWdodDogMjZweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudDpub3QoLmFnLWNvbGxhcHNpYmxlKSA+IGRpdiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jb21wb25lbnQ6bm90KC5hZy1jb2xsYXBzaWJsZSkgPiAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhciB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgcGFkZGluZzogOHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jb21wb25lbnQ6bm90KC5hZy1jb2xsYXBzaWJsZSkgPiAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhciAuYWctY29sdW1uLWdyb3VwLWljb25zIHtcXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWNvbXBvbmVudC10b29sYmFyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xcbiAgICAgIHBhZGRpbmc6IDhweDtcXG4gICAgICBib3JkZXI6IDAgc29saWQgI2UyZTJlMjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudCA+IC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMTZweDtcXG4gICAgICBwYWRkaW5nOiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWl0ZW0ge1xcbiAgICAgIG1hcmdpbjogNHB4IDA7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtaXRlbSAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhciB7XFxuICAgICAgICBoZWlnaHQ6IDE4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbGFiZWxlZCBsYWJlbCB7XFxuICAgIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWxhYmVsZWQuYWctbGFiZWwtYWxpZ24tdG9wIGxhYmVsIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNsaWRlciA+IC5hZy13cmFwcGVyID4gZGl2Om5vdCg6Zmlyc3Qtb2YtdHlwZSksIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctYW5nbGUtc2VsZWN0ID4gLmFnLXdyYXBwZXIgPiBkaXY6bm90KDpmaXJzdC1vZi10eXBlKSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1wYXJlbnQtY2lyY2xlIHtcXG4gICAgd2lkdGg6IDI0cHg7XFxuICAgIGhlaWdodDogMjRweDtcXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC45KTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC45KTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1hbmdsZS1zZWxlY3QgLmFnLWFuZ2xlLXNlbGVjdC1maWVsZCAuYWctY2hpbGQtY2lyY2xlIHtcXG4gICAgdG9wOiA0cHg7XFxuICAgIGxlZnQ6IDEycHg7XFxuICAgIHdpZHRoOiA2cHg7XFxuICAgIGhlaWdodDogNnB4O1xcbiAgICBtYXJnaW4tbGVmdDogLTNweDtcXG4gICAgbWFyZ2luLXRvcDogLTRweDtcXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGM0YzRjOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvZ2dsZS1idXR0b24gLmFnLWlucHV0LXdyYXBwZXIge1xcbiAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIHdpZHRoOiA0MHB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MDByZW07IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b2dnbGUtYnV0dG9uIC5hZy1pbnB1dC13cmFwcGVyIC5hZy1pY29uIHtcXG4gICAgICB3aWR0aDogMThweDtcXG4gICAgICBoZWlnaHQ6IDE4cHg7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMztcXG4gICAgICBib3JkZXItcmFkaXVzOiA1MDByZW07XFxuICAgICAgcmlnaHQ6IGNhbGMoMTAwJSAtIDE4cHgpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvZ2dsZS1idXR0b24uYWctc2VsZWN0ZWQgLmFnLWlucHV0LXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY0MDgxOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9nZ2xlLWJ1dHRvbi5hZy1zZWxlY3RlZCAuYWctaW5wdXQtd3JhcHBlciAuYWctaWNvbiB7XFxuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICByaWdodDogLTFweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyID4gZGl2IHtcXG4gICAgICB3aWR0aDogMThweDtcXG4gICAgICBoZWlnaHQ6IDE4cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciBidXR0b24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciBidXR0b246aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZGlhbG9nLmFnLWNvbG9yLWRpYWxvZyB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1wYW5lbCB7XFxuICAgIHBhZGRpbmc6IDhweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1jb2xvciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS10b29scyB7XFxuICAgICAgcGFkZGluZzogMTBweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1zYXQge1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKHdoaXRlKSwgdG8ocmdiYSgyMDQsIDE1NCwgMTI5LCAwKSkpO1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgd2hpdGUsIHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXZhbCB7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShibGFjayksIHRvKHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpKTtcXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBibGFjaywgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tZHJhZ2dlciB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcXG4gICAgICBoZWlnaHQ6IDEycHg7XFxuICAgICAgd2lkdGg6IDEycHg7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XFxuICAgICAgYmFja2dyb3VuZDogYmxhY2s7XFxuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjI0KTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1odWUtYmFja2dyb3VuZCB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWFscGhhLWJhY2tncm91bmQge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1odWUtYWxwaGEge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XFxuICAgICAgaGVpZ2h0OiAxMXB4O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1zbGlkZXIge1xcbiAgICAgIG1hcmdpbi10b3A6IC0xMnB4O1xcbiAgICAgIHdpZHRoOiAxM3B4O1xcbiAgICAgIGhlaWdodDogMTNweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAxM3B4O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XFxuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMzcpO1xcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjM3KTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS10ZXh0LXZhbHVlIHtcXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICBjb2xvcjogIzMzMzsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS10ZXh0LXZhbHVlOmZvY3VzIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGQ3N2U0O1xcbiAgICAgIHBhZGRpbmc6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1yZWNlbnQtY29sb3JzID4gZGl2IHtcXG4gICAgICBtYXJnaW46IDAgM3B4OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1wYW5lbCAuYWctcmVjZW50LWNvbG9ycyA+IGRpdjpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXJlY2VudC1jb2xvcnMgPiBkaXY6bGFzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbC5hZy1wb3B1cCA+IGRpdjpub3QoLmFnLXRvb2x0aXAtY3VzdG9tKSB7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogNXB4IDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhbmVsIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgICAuYWctZHJhZ2dpbmctcmFuZ2UtaGFuZGxlIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFuZWwuYWctZGlhbG9nLCAuYWctZHJhZ2dpbmctZmlsbC1oYW5kbGUgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYW5lbC5hZy1kaWFsb2cge1xcbiAgICAgIG9wYWNpdHk6IDAuNztcXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmY2ZjZmM7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XFxuICAgICAgaGVpZ2h0OiA1NnB4O1xcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICAgIGZvbnQtZmFtaWx5OiBcXFwiUm9ib3RvXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7XFxuICAgICAgcGFkZGluZzogNXB4IDEwcHg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b24ge1xcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xcbiAgICAgICAgd2lkdGg6IDIwcHg7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7IH1cXG4gICAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbiAuYWctaWNvbiB7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7IH1cXG4gICAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbjpob3ZlciwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uLmFnLWhhcy1wb3B1cCB7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cXG4gICAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbjpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYW5lbCAuYWctbWVzc2FnZS1ib3ggLmFnLW1lc3NhZ2UtYm94LWJ1dHRvbi1iYXIge1xcbiAgICAgIGhlaWdodDogMzBweDtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICAgIHBhZGRpbmc6IDJweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFuZWwgLmFnLW1lc3NhZ2UtYm94IC5hZy1tZXNzYWdlLWJveC1idXR0b24tYmFyIGJ1dHRvbiB7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbHRpcCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1MzUzNTM7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIHBhZGRpbmc6IDVweDtcXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogI2ViZWJlYjtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDFzO1xcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbHRpcC5hZy10b29sdGlwLWhpZGluZyB7XFxuICAgICAgb3BhY2l0eTogMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydCAuYWctY2hhcnQtbWVudSB7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNoYXJ0IC5hZy1jaGFydC1tZW51ID4gc3Bhbjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gICAgbWFyZ2luOiA1cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWw6bnRoLWNoaWxkKDJuICsgMik6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsOm50aC1jaGlsZCgzbiArIDEpIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsOm50aC1jaGlsZCgzbikge1xcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsLmFnLXNlbGVjdGVkIHtcXG4gICAgICBib3JkZXItY29sb3I6ICMzZjUxYjU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1uYXYtY2FyZC1zZWxlY3RvciAuYWctbmF2LWNhcmQtaXRlbSB7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xcbiAgICBmb250LXNpemU6IDExcHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLW5hdi1jYXJkLXNlbGVjdG9yIC5hZy1uYXYtY2FyZC1pdGVtLmFnLXNlbGVjdGVkIHtcXG4gICAgICBjb2xvcjogIzNmNTFiNTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtZm9ybWF0IC5hZy1jaGFydC1mb3JtYXQtd3JhcHBlciAuYWctZ3JvdXAtaXRlbSB7XFxuICAgIG1hcmdpbjogOS42cHggMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uIHtcXG4gICAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cXG4gICAgZm9udC1mYW1pbHk6IFxcXCJhZ0dyaWRNYXRlcmlhbFxcXCI7XFxuICAgIHNwZWFrOiBub25lO1xcbiAgICBmb250LXNpemU6IDE4cHg7XFxuICAgIGNvbG9yOiAjMzMzO1xcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gICAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tYWdncmVnYXRpb246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWFycm93czpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDFcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tYXNjOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jYW5jZWw6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoYXJ0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNvbG9yLXBpY2tlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDhcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY29sdW1uOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwOVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jb2x1bW5zOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jb250cmFjdGVkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwQlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jb3B5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jcm9zczpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MERcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY3V0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1kYXRhOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1kZXNjOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxMFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1leHBhbmRlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTFcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tZXllLXNsYXNoOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1leWU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTEzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWZpbHRlcjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTRcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tZmlyc3Q6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWdyaXA6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWdyb3VwOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxN1xcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxOFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1sYXN0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxOVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1sZWZ0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1sb2FkaW5nOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1tYXhpbWl6ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MUNcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tbWVudTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MURcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tbWluaW1pemU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFFXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLW1pbnVzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxRlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1uZXh0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1ub25lOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1ub3QtYWxsb3dlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjJcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcGFzdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXBpbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjRcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcGl2b3Q6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXBsdXM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXByZXZpb3VzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyN1xcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1yYWRpby1idXR0b24tb2ZmOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyOFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1yYWRpby1idXR0b24tb246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI5XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXJpZ2h0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1zYXZlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1zbWFsbC1kb3duOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1zbWFsbC1sZWZ0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1zbWFsbC1yaWdodDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkVcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tc21hbGwtdXA6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJGXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXRpY2s6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXRyZWUtY2xvc2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkzMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi10cmVlLWluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXRyZWUtb3BlbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzNcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZCxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBsaW5lLWhlaWdodDogMThweDtcXG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkLXJlYWRvbmx5LFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1yZWFkb25seSxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZC1yZWFkb25seSB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIG9wYWNpdHk6IDAuMzg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkIHtcXG4gICAgY29sb3I6ICNmZjQwODE7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQtcmVhZG9ubHk6YmVmb3JlIHtcXG4gICAgICBjb250ZW50OiBcXFwiXFxcXEU5MDVcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1yZWFkb25seTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDZcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtdW5jaGVja2VkLXJlYWRvbmx5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwN1xcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtZXhwYW5kZWQgLmFnLWljb24tY29udHJhY3RlZDplbXB0eTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzNcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcm93LWRyYWc6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yaWdodC1hcnJvdzpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MUFcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcmFkaW8tYnV0dG9uLW9uIHtcXG4gICAgY29sb3I6ICNmZjQwODE7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmlnaHQtYXJyb3c6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctbnVtZXJpYy1jZWxsIHtcXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jaGVja2JveDpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcmFkaW8tYnV0dG9uOm5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b2dnbGUtYnV0dG9uOm5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwge1xcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLXBpdm90LW1vZGUtcGFuZWwgLmFnLXBpdm90LW1vZGUtc2VsZWN0IHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCAuYWctY29sdW1uLWRyb3AtZW1wdHktbWVzc2FnZSB7XFxuICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgICAgcGFkZGluZy1yaWdodDogMzJweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi1ncm91cC1pY29ucyB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLmFnLXRvb2xwYW5lbC1hZGQtZ3JvdXAtaW5kZW50IHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDM0cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWhlYWRlci1zZWxlY3QtYWxsIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMjRweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtZXhwYW5kZWQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWNoZWNrYm94ICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1jaGVja2JveCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1jaGVja2JveCArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtZXhwYW5kZWQgKyAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtZXhwYW5kZWQgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQgKyAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtY29udHJhY3RlZCArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxuICAgICAgICBtYXJnaW4tbGVmdDogaW5pdGlhbDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggKyAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94ICsgLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCArIC5hZy1ncm91cC1jaGVja2JveCxcXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtY29udHJhY3RlZCArIC5hZy1ncm91cC1jaGVja2JveCB7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxuICAgICAgICBtYXJnaW4tbGVmdDogaW5pdGlhbDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtY2hpbGQtY291bnQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiB1bnNldDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCB7XFxuICAgICAgcGFkZGluZy1yaWdodDogMjRweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLWdyb3VwLFxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXBpdm90IHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1mbG9hdGluZy1maWx0ZXItYnV0dG9uIHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNldC1maWx0ZXItaXRlbSA+IGRpdiwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNldC1maWx0ZXItaXRlbSA+IHNwYW4ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1oZWFkZXIgLmFnLWhlYWRlci1jZWxsLXJlc2l6ZTo6YWZ0ZXIge1xcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNpZGUtYmFyIC5hZy1wYW5lbC1jb250YWluZXIge1xcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNpZGUtYmFyLmZ1bGwtd2lkdGggLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuc2Fzcy12YXJpYWJsZXM6OmFmdGVyIHtcXG4gICAgY29udGVudDogJ3sgXFxcImF1dG9TaXplUGFkZGluZ1xcXCI6IFxcXCIyNHB4XFxcIiwgXFxcImhlYWRlckhlaWdodFxcXCI6IFxcXCI1NnB4XFxcIiwgXFxcImdyb3VwUGFkZGluZ1NpemVcXFwiOiBcXFwiNDJweFxcXCIsIFxcXCJmb290ZXJQYWRkaW5nQWRkaXRpb25cXFwiOiBcXFwiMzJweFxcXCIsIFxcXCJ2aXJ0dWFsSXRlbUhlaWdodFxcXCI6IFxcXCI0MHB4XFxcIiwgXFxcImFnZ0Z1bmNQb3B1cEhlaWdodFxcXCI6IFxcXCIxNDBweFxcXCIsIFxcXCJjaGVja2JveEluZGVudFdpZHRoXFxcIjogXFxcIjI2cHhcXFwiLCBcXFwibGVhZk5vZGVQYWRkaW5nXFxcIjogXFxcIjI0cHhcXFwiLCBcXFwicm93SGVpZ2h0XFxcIjogXFxcIjQ4cHhcXFwiLCBcXFwiZ3JpZFNpemVcXFwiOiBcXFwiOHB4XFxcIiwgXFxcImljb25TaXplXFxcIjogXFxcIjE4cHhcXFwiIH0nO1xcbiAgICBkaXNwbGF5OiBub25lOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZCxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkLXJlYWRvbmx5LFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZCxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQtcmVhZG9ubHksXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLXJlYWRvbmx5LFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vbixcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1yYWRpby1idXR0b24tb2ZmIHtcXG4gICAgaGVpZ2h0OiAyNHB4O1xcbiAgICB3aWR0aDogMjRweDtcXG4gICAgZm9udC1zaXplOiAyNHB4O1xcbiAgICBsaW5lLWhlaWdodDogMjRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItY2VsbCxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWdyb3VwLWNlbGwge1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cztcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwtaGlnaGxpZ2h0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZTRlYyAhaW1wb3J0YW50OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwtaGlnaGxpZ2h0LWFuaW1hdGlvbiB7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxcztcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxczsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1tZW51LW9wdGlvbiB7XFxuICAgIGhlaWdodDogMzhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciB7XFxuICAgIGJvcmRlci1ib3R0b206IDA7XFxuICAgIGJvcmRlci1yaWdodDogMDtcXG4gICAgYm9yZGVyLXRvcDogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgYnV0dG9uIHtcXG4gICAgICBib3JkZXI6IDA7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XFxuICAgICAgZm9udC1mYW1pbHk6IFxcXCJSb2JvdG9cXFwiLCBzYW5zLXNlcmlmO1xcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyAuYWctc2lkZS1idXR0b24gYnV0dG9uIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICBib3JkZXItd2lkdGg6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIC5hZy1zZWxlY3RlZCBidXR0b24ge1xcbiAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgIzNmNTFiNTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogMXB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIgLmFnLWZpbHRlci10b29scGFuZWwtYm9keSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zdGF0dXMtYmFyIHtcXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMXB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyAuYWctc2VsZWN0ZWQgYnV0dG9uIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDA7XFxuICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICMzZjUxYjU7XFxuICAgIG1hcmdpbi1yaWdodDogLTJweDtcXG4gICAgcGFkZGluZy1yaWdodDogMXB4OyB9XFxuXFxuXCIiLCJtb2R1bGUuZXhwb3J0cyA9IFwiLmZsYXRwaWNrci1jYWxlbmRhciB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIG9wYWNpdHk6IDA7XFxuICBkaXNwbGF5OiBub25lO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgcGFkZGluZzogMDtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBub25lO1xcbiAgICAgICAgICBhbmltYXRpb246IG5vbmU7XFxuICBkaXJlY3Rpb246IGx0cjtcXG4gIGJvcmRlcjogMDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDMwNy44NzVweDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcXG4gICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDFweCAwIDAgI2U2ZTZlNiwgLTFweCAwIDAgI2U2ZTZlNiwgMCAxcHggMCAjZTZlNmU2LCAwIC0xcHggMCAjZTZlNmU2LCAwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDFweCAwIDAgI2U2ZTZlNiwgLTFweCAwIDAgI2U2ZTZlNiwgMCAxcHggMCAjZTZlNmU2LCAwIC0xcHggMCAjZTZlNmU2LCAwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCk7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIub3BlbixcXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmlubGluZSB7XFxuICBvcGFjaXR5OiAxO1xcbiAgbWF4LWhlaWdodDogNjQwcHg7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgei1pbmRleDogOTk5OTk7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIuYW5pbWF0ZS5vcGVuIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgICAgICAgICBhbmltYXRpb246IGZwRmFkZUluRG93biAzMDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5lIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgdG9wOiAycHg7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGljIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogY2FsYygxMDAlICsgMnB4KTtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5zdGF0aWMub3BlbiB7XFxuICB6LWluZGV4OiA5OTk7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5tdWx0aU1vbnRoIC5mbGF0cGlja3ItZGF5cyAuZGF5Q29udGFpbmVyOm50aC1jaGlsZChuKzEpIC5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bnRoLWNoaWxkKDduKzcpIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIubXVsdGlNb250aCAuZmxhdHBpY2tyLWRheXMgLmRheUNvbnRhaW5lcjpudGgtY2hpbGQobisyKSAuZmxhdHBpY2tyLWRheS5pblJhbmdlOm50aC1jaGlsZCg3bisxKSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IC0ycHggMCAwICNlNmU2ZTYsIDVweCAwIDAgI2U2ZTZlNjtcXG4gICAgICAgICAgYm94LXNoYWRvdzogLTJweCAwIDAgI2U2ZTZlNiwgNXB4IDAgMCAjZTZlNmU2O1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNXZWVrcyAuZGF5Q29udGFpbmVyLFxcbi5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1RpbWUgLmRheUNvbnRhaW5lciB7XFxuICBib3JkZXItYm90dG9tOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNXZWVrcyAuZGF5Q29udGFpbmVyIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLnNob3dUaW1lSW5wdXQuaGFzVGltZSAuZmxhdHBpY2tyLXRpbWUge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNmU2ZTY7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIubm9DYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZSB7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3JlLFxcbi5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XFxuICBjb250ZW50OiAnJztcXG4gIGhlaWdodDogMDtcXG4gIHdpZHRoOiAwO1xcbiAgbGVmdDogMjJweDtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5yaWdodE1vc3Q6YmVmb3JlLFxcbi5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmFmdGVyIHtcXG4gIGxlZnQ6IGF1dG87XFxuICByaWdodDogMjJweDtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhcjpiZWZvcmUge1xcbiAgYm9yZGVyLXdpZHRoOiA1cHg7XFxuICBtYXJnaW46IDAgLTVweDtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhcjphZnRlciB7XFxuICBib3JkZXItd2lkdGg6IDRweDtcXG4gIG1hcmdpbjogMCAtNHB4O1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSxcXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVyIHtcXG4gIGJvdHRvbTogMTAwJTtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDpiZWZvcmUge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2U2ZTZlNjtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlciB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmJlZm9yZSxcXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmFmdGVyIHtcXG4gIHRvcDogMTAwJTtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTpiZWZvcmUge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2U2ZTZlNjtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlciB7XFxuICBib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyOmZvY3VzIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5mbGF0cGlja3Itd3JhcHBlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcbi5mbGF0cGlja3ItbW9udGhzIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC45KTtcXG4gIGZpbGw6IHJnYmEoMCwwLDAsMC45KTtcXG4gIGhlaWdodDogMzRweDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgLXdlYmtpdC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxO1xcbiAgICAgICAgICBmbGV4OiAxO1xcbn1cXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGgsXFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGhlaWdodDogMzRweDtcXG4gIHBhZGRpbmc6IDEwcHg7XFxuICB6LWluZGV4OiAzO1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC45KTtcXG4gIGZpbGw6IHJnYmEoMCwwLDAsMC45KTtcXG59XFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1kaXNhYmxlZCxcXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLWRpc2FibGVkIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBpLFxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBpIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoLFxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItcHJldi1tb250aCB7XFxuLypcXG4gICAgICAvKnJ0bDpiZWdpbjppZ25vcmUqL1xcbi8qXFxuICAgICAgKi9cXG4gIGxlZnQ6IDA7XFxuLypcXG4gICAgICAvKnJ0bDplbmQ6aWdub3JlKi9cXG4vKlxcbiAgICAgICovXFxufVxcbi8qXFxuICAgICAgLypydGw6YmVnaW46aWdub3JlKi9cXG4vKlxcbiAgICAgIC8qcnRsOmVuZDppZ25vcmUqL1xcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCxcXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLW5leHQtbW9udGgge1xcbi8qXFxuICAgICAgLypydGw6YmVnaW46aWdub3JlKi9cXG4vKlxcbiAgICAgICovXFxuICByaWdodDogMDtcXG4vKlxcbiAgICAgIC8qcnRsOmVuZDppZ25vcmUqL1xcbi8qXFxuICAgICAgKi9cXG59XFxuLypcXG4gICAgICAvKnJ0bDpiZWdpbjppZ25vcmUqL1xcbi8qXFxuICAgICAgLypydGw6ZW5kOmlnbm9yZSovXFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyLFxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciB7XFxuICBjb2xvcjogIzk1OWVhOTtcXG59XFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyIHN2ZyxcXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGg6aG92ZXIgc3ZnIHtcXG4gIGZpbGw6ICNmNjQ3NDc7XFxufVxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCBzdmcsXFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyB7XFxuICB3aWR0aDogMTRweDtcXG4gIGhlaWdodDogMTRweDtcXG59XFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZyBwYXRoLFxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmcgcGF0aCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGZpbGwgMC4xcztcXG4gIHRyYW5zaXRpb246IGZpbGwgMC4xcztcXG4gIGZpbGw6IGluaGVyaXQ7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIGlucHV0LFxcbi5udW1JbnB1dFdyYXBwZXIgc3BhbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi1tcy1jbGVhciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxcbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xcbiAgbWFyZ2luOiAwO1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcmlnaHQ6IDA7XFxuICB3aWR0aDogMTRweDtcXG4gIHBhZGRpbmc6IDAgNHB4IDAgMnB4O1xcbiAgaGVpZ2h0OiA1MCU7XFxuICBsaW5lLWhlaWdodDogNTAlO1xcbiAgb3BhY2l0eTogMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC4xNSk7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgc3Bhbjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgc3BhbjphY3RpdmUge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjIpO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW46YWZ0ZXIge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXAge1xcbiAgdG9wOiAwO1xcbiAgYm9yZGVyLWJvdHRvbTogMDtcXG59XFxuLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXIge1xcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTtcXG4gIHRvcDogMjYlO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duIHtcXG4gIHRvcDogNTAlO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVyIHtcXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCByZ2JhKDU3LDU3LDU3LDAuNik7XFxuICB0b3A6IDQwJTtcXG59XFxuLm51bUlucHV0V3JhcHBlciBzcGFuIHN2ZyB7XFxuICB3aWR0aDogaW5oZXJpdDtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuLm51bUlucHV0V3JhcHBlciBzcGFuIHN2ZyBwYXRoIHtcXG4gIGZpbGw6IHJnYmEoMCwwLDAsMC41KTtcXG59XFxuLm51bUlucHV0V3JhcHBlcjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIHNwYW4ge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHtcXG4gIGZvbnQtc2l6ZTogMTM1JTtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDc1JTtcXG4gIGxlZnQ6IDEyLjUlO1xcbiAgcGFkZGluZzogNy40OHB4IDAgMCAwO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBoZWlnaHQ6IDM0cHg7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aCB7XFxuICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1hcmdpbi1sZWZ0OiAwLjVjaDtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aDpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpO1xcbn1cXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciB7XFxuICB3aWR0aDogNmNoO1xcbiAgd2lkdGg6IDdjaFxcXFwwO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXIge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLDAsMCwwLjkpO1xcbn1cXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlciB7XFxuICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsMCwwLDAuOSk7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhciB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgY3Vyc29yOiB0ZXh0O1xcbiAgcGFkZGluZzogMCAwIDAgMC41Y2g7XFxuICBtYXJnaW46IDA7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gIGhlaWdodDogYXV0bztcXG4gIGJvcmRlcjogMDtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xcbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxuICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcjpmb2N1cyB7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJbZGlzYWJsZWRdLFxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF06aG92ZXIge1xcbiAgZm9udC1zaXplOiAxMDAlO1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC41KTtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIHtcXG4gIGFwcGVhcmFuY2U6IG1lbnVsaXN0O1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IG5vbmU7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICBtYXJnaW46IC0xcHggMCAwIDA7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgcGFkZGluZzogMCAwIDAgMC41Y2g7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbWVudWxpc3Q7XFxuICAtbW96LWFwcGVhcmFuY2U6IG1lbnVsaXN0O1xcbiAgd2lkdGg6IGF1dG87XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmZvY3VzLFxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmFjdGl2ZSB7XFxuICBvdXRsaW5lOiBub25lO1xcbn1cXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpO1xcbn1cXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGgge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBvdXRsaW5lOiBub25lO1xcbiAgcGFkZGluZzogMDtcXG59XFxuLmZsYXRwaWNrci13ZWVrZGF5cyB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB3aWR0aDogMTAwJTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgaGVpZ2h0OiAyOHB4O1xcbn1cXG4uZmxhdHBpY2tyLXdlZWtkYXlzIC5mbGF0cGlja3Itd2Vla2RheWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtd2Via2l0LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7XFxufVxcbnNwYW4uZmxhdHBpY2tyLXdlZWtkYXkge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgZm9udC1zaXplOiA5MCU7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBtYXJnaW46IDA7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtd2Via2l0LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7XFxuICBmb250LXdlaWdodDogYm9sZGVyO1xcbn1cXG4uZGF5Q29udGFpbmVyLFxcbi5mbGF0cGlja3Itd2Vla3Mge1xcbiAgcGFkZGluZzogMXB4IDAgMCAwO1xcbn1cXG4uZmxhdHBpY2tyLWRheXMge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbiAgd2lkdGg6IDMwNy44NzVweDtcXG59XFxuLmZsYXRwaWNrci1kYXlzOmZvY3VzIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5kYXlDb250YWluZXIge1xcbiAgcGFkZGluZzogMDtcXG4gIG91dGxpbmU6IDA7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgd2lkdGg6IDMwNy44NzVweDtcXG4gIG1pbi13aWR0aDogMzA3Ljg3NXB4O1xcbiAgbWF4LXdpZHRoOiAzMDcuODc1cHg7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMHB4LCAwcHgpO1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLmRheUNvbnRhaW5lciArIC5kYXlDb250YWluZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAtMXB4IDAgMCAjZTZlNmU2O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAtMXB4IDAgMCAjZTZlNmU2O1xcbn1cXG4uZmxhdHBpY2tyLWRheSB7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmFkaXVzOiAxNTBweDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGNvbG9yOiAjMzkzOTM5O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIHdpZHRoOiAxNC4yODU3MTQzJTtcXG4gIC13ZWJraXQtZmxleC1iYXNpczogMTQuMjg1NzE0MyU7XFxuICAgICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDE0LjI4NTcxNDMlO1xcbiAgICAgICAgICBmbGV4LWJhc2lzOiAxNC4yODU3MTQzJTtcXG4gIG1heC13aWR0aDogMzlweDtcXG4gIGhlaWdodDogMzlweDtcXG4gIGxpbmUtaGVpZ2h0OiAzOXB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4uZmxhdHBpY2tyLWRheS5pblJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheS5pblJhbmdlLFxcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS5pblJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LnRvZGF5LmluUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXk6aG92ZXIsXFxuLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5OmhvdmVyLFxcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpob3ZlcixcXG4uZmxhdHBpY2tyLWRheTpmb2N1cyxcXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6Zm9jdXMsXFxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmZvY3VzIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG91dGxpbmU6IDA7XFxuICBiYWNrZ3JvdW5kOiAjZTZlNmU2O1xcbiAgYm9yZGVyLWNvbG9yOiAjZTZlNmU2O1xcbn1cXG4uZmxhdHBpY2tyLWRheS50b2RheSB7XFxuICBib3JkZXItY29sb3I6ICM5NTllYTk7XFxufVxcbi5mbGF0cGlja3ItZGF5LnRvZGF5OmhvdmVyLFxcbi5mbGF0cGlja3ItZGF5LnRvZGF5OmZvY3VzIHtcXG4gIGJvcmRlci1jb2xvcjogIzk1OWVhOTtcXG4gIGJhY2tncm91bmQ6ICM5NTllYTk7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQsXFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5pblJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuaW5SYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5pblJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmZvY3VzLFxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6Zm9jdXMsXFxuLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6Zm9jdXMsXFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6aG92ZXIsXFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpob3ZlcixcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpob3ZlcixcXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5wcmV2TW9udGhEYXksXFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5wcmV2TW9udGhEYXksXFxuLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UucHJldk1vbnRoRGF5LFxcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLm5leHRNb250aERheSxcXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLm5leHRNb250aERheSxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5uZXh0TW9udGhEYXkge1xcbiAgYmFja2dyb3VuZDogIzU2OWZmNztcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLWNvbG9yOiAjNTY5ZmY3O1xcbn1cXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwcHggMCAwIDUwcHg7XFxufVxcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmVuZFJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UuZW5kUmFuZ2Uge1xcbiAgYm9yZGVyLXJhZGl1czogMCA1MHB4IDUwcHggMDtcXG59XFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSksXFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IC0xMHB4IDAgMCAjNTY5ZmY3O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAtMTBweCAwIDAgIzU2OWZmNztcXG59XFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZS5lbmRSYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZSB7XFxuICBib3JkZXItcmFkaXVzOiA1MHB4O1xcbn1cXG4uZmxhdHBpY2tyLWRheS5pblJhbmdlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IC01cHggMCAwICNlNmU2ZTYsIDVweCAwIDAgI2U2ZTZlNjtcXG4gICAgICAgICAgYm94LXNoYWRvdzogLTVweCAwIDAgI2U2ZTZlNiwgNXB4IDAgMCAjZTZlNmU2O1xcbn1cXG4uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQsXFxuLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVyLFxcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheSxcXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXksXFxuLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZCxcXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLnByZXZNb250aERheSxcXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLm5leHRNb250aERheSB7XFxuICBjb2xvcjogcmdiYSg1Nyw1Nyw1NywwLjMpO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG4uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQsXFxuLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVyIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICBjb2xvcjogcmdiYSg1Nyw1Nyw1NywwLjEpO1xcbn1cXG4uZmxhdHBpY2tyLWRheS53ZWVrLnNlbGVjdGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IC01cHggMCAwICM1NjlmZjcsIDVweCAwIDAgIzU2OWZmNztcXG4gICAgICAgICAgYm94LXNoYWRvdzogLTVweCAwIDAgIzU2OWZmNywgNXB4IDAgMCAjNTY5ZmY3O1xcbn1cXG4uZmxhdHBpY2tyLWRheS5oaWRkZW4ge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4ucmFuZ2VNb2RlIC5mbGF0cGlja3ItZGF5IHtcXG4gIG1hcmdpbi10b3A6IDFweDtcXG59XFxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciB7XFxuICBmbG9hdDogbGVmdDtcXG59XFxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtzIHtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAxcHggMCAwICNlNmU2ZTY7XFxufVxcbi5mbGF0cGlja3Itd2Vla3dyYXBwZXIgLmZsYXRwaWNrci13ZWVrZGF5IHtcXG4gIGZsb2F0OiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBsaW5lLWhlaWdodDogMjhweDtcXG59XFxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXksXFxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXk6aG92ZXIge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogbm9uZTtcXG4gIGNvbG9yOiByZ2JhKDU3LDU3LDU3LDAuMyk7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIGJvcmRlcjogbm9uZTtcXG59XFxuLmZsYXRwaWNrci1pbm5lckNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLmZsYXRwaWNrci1yQ29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHBhZGRpbmc6IDA7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcbi5mbGF0cGlja3ItdGltZSB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBvdXRsaW5lOiAwO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBoZWlnaHQ6IDA7XFxuICBsaW5lLWhlaWdodDogNDBweDtcXG4gIG1heC1oZWlnaHQ6IDQwcHg7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbi5mbGF0cGlja3ItdGltZTphZnRlciB7XFxuICBjb250ZW50OiBcXFwiXFxcIjtcXG4gIGRpc3BsYXk6IHRhYmxlO1xcbiAgY2xlYXI6IGJvdGg7XFxufVxcbi5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtd2Via2l0LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7XFxuICB3aWR0aDogNDAlO1xcbiAgaGVpZ2h0OiA0MHB4O1xcbiAgZmxvYXQ6IGxlZnQ7XFxufVxcbi5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlciB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiAjMzkzOTM5O1xcbn1cXG4uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlciB7XFxuICBib3JkZXItdG9wLWNvbG9yOiAjMzkzOTM5O1xcbn1cXG4uZmxhdHBpY2tyLXRpbWUuaGFzU2Vjb25kcyAubnVtSW5wdXRXcmFwcGVyIHtcXG4gIHdpZHRoOiAyNiU7XFxufVxcbi5mbGF0cGlja3ItdGltZS50aW1lMjRociAubnVtSW5wdXRXcmFwcGVyIHtcXG4gIHdpZHRoOiA0OSU7XFxufVxcbi5mbGF0cGlja3ItdGltZSBpbnB1dCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gIGJvcmRlcjogMDtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgaGVpZ2h0OiBpbmhlcml0O1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICBjb2xvcjogIzM5MzkzOTtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xcbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxuICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxufVxcbi5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItaG91ciB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1taW51dGUsXFxuLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1zZWNvbmQge1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLmZsYXRwaWNrci10aW1lIGlucHV0OmZvY3VzIHtcXG4gIG91dGxpbmU6IDA7XFxuICBib3JkZXI6IDA7XFxufVxcbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yLFxcbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtIHtcXG4gIGhlaWdodDogaW5oZXJpdDtcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICBjb2xvcjogIzM5MzkzOTtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgd2lkdGg6IDIlO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIC13ZWJraXQtYWxpZ24tc2VsZjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xcbn1cXG4uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbSB7XFxuICBvdXRsaW5lOiAwO1xcbiAgd2lkdGg6IDE4JTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5mbGF0cGlja3ItdGltZSBpbnB1dDpob3ZlcixcXG4uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpob3ZlcixcXG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXMsXFxuLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG06Zm9jdXMge1xcbiAgYmFja2dyb3VuZDogI2VlZTtcXG59XFxuLmZsYXRwaWNrci1pbnB1dFtyZWFkb25seV0ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgZnBGYWRlSW5Eb3duIHtcXG4gIGZyb20ge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBmcEZhZGVJbkRvd24ge1xcbiAgZnJvbSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XFxuICB9XFxuICB0byB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgfVxcbn1cXG5cIiIsIm1vZHVsZS5leHBvcnRzID0gXCIvKlxcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXFxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XFxuKlxcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxcbiovXFxuXFxuLmd3LWFsaWdubWVudC1jZWxsLXJpZ2h0LFxcbi5ndy1hbGlnbm1lbnQtY2VsbC1yaWdodCAuYWctY2VsbC12YWx1ZSB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxO1xcbiAgICAgICAgICAgIGZsZXg6IDE7XFxufVxcblxcbi5ndy1hbGlnbm1lbnQtY2VsbC1jZW50ZXIsXFxuLmd3LWFsaWdubWVudC1jZWxsLWNlbnRlciAuYWctY2VsbC12YWx1ZSB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgICAgZmxleDogMTtcXG59XFxuXFxuLmd3LWFsaWdubWVudC1oZWFkZXItcmlnaHQgLmFnLWhlYWRlci1jZWxsLWxhYmVsIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgICAgXFxufVxcblxcbi5ndy1hbGlnbm1lbnQtaGVhZGVyLWNlbnRlciAuYWctaGVhZGVyLWNlbGwtbGFiZWwge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcblxcbi5ndy1hbGlnbm1lbnQtaGVhZGVyLXJpZ2h0IC5hZy1jZWxsLWxhYmVsLWNvbnRhaW5lcixcXG4uZ3ctYWxpZ25tZW50LWhlYWRlci1jZW50ZXIgLmFnLWNlbGwtbGFiZWwtY29udGFpbmVyIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxufVwiIiwiLypcblx0TUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcblx0QXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cblxudmFyIHN0eWxlc0luRG9tID0ge307XG5cbnZhclx0bWVtb2l6ZSA9IGZ1bmN0aW9uIChmbikge1xuXHR2YXIgbWVtbztcblxuXHRyZXR1cm4gZnVuY3Rpb24gKCkge1xuXHRcdGlmICh0eXBlb2YgbWVtbyA9PT0gXCJ1bmRlZmluZWRcIikgbWVtbyA9IGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cdFx0cmV0dXJuIG1lbW87XG5cdH07XG59O1xuXG52YXIgaXNPbGRJRSA9IG1lbW9pemUoZnVuY3Rpb24gKCkge1xuXHQvLyBUZXN0IGZvciBJRSA8PSA5IGFzIHByb3Bvc2VkIGJ5IEJyb3dzZXJoYWNrc1xuXHQvLyBAc2VlIGh0dHA6Ly9icm93c2VyaGFja3MuY29tLyNoYWNrLWU3MWQ4NjkyZjY1MzM0MTczZmVlNzE1YzIyMmNiODA1XG5cdC8vIFRlc3RzIGZvciBleGlzdGVuY2Ugb2Ygc3RhbmRhcmQgZ2xvYmFscyBpcyB0byBhbGxvdyBzdHlsZS1sb2FkZXJcblx0Ly8gdG8gb3BlcmF0ZSBjb3JyZWN0bHkgaW50byBub24tc3RhbmRhcmQgZW52aXJvbm1lbnRzXG5cdC8vIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIvaXNzdWVzLzE3N1xuXHRyZXR1cm4gd2luZG93ICYmIGRvY3VtZW50ICYmIGRvY3VtZW50LmFsbCAmJiAhd2luZG93LmF0b2I7XG59KTtcblxudmFyIGdldFRhcmdldCA9IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTtcbn07XG5cbnZhciBnZXRFbGVtZW50ID0gKGZ1bmN0aW9uIChmbikge1xuXHR2YXIgbWVtbyA9IHt9O1xuXG5cdHJldHVybiBmdW5jdGlvbih0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBwYXNzaW5nIGZ1bmN0aW9uIGluIG9wdGlvbnMsIHRoZW4gdXNlIGl0IGZvciByZXNvbHZlIFwiaGVhZFwiIGVsZW1lbnQuXG4gICAgICAgICAgICAgICAgLy8gVXNlZnVsIGZvciBTaGFkb3cgUm9vdCBzdHlsZSBpLmVcbiAgICAgICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAgICAgLy8gICBpbnNlcnRJbnRvOiBmdW5jdGlvbiAoKSB7IHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2Zvb1wiKS5zaGFkb3dSb290IH1cbiAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRcdHZhciBzdHlsZVRhcmdldCA9IGdldFRhcmdldC5jYWxsKHRoaXMsIHRhcmdldCk7XG5cdFx0XHQvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuXHRcdFx0aWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG5cdFx0XHRcdFx0Ly8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcblx0XHRcdFx0XHRzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuXHRcdFx0XHR9IGNhdGNoKGUpIHtcblx0XHRcdFx0XHRzdHlsZVRhcmdldCA9IG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuXHRcdH1cblx0XHRyZXR1cm4gbWVtb1t0YXJnZXRdXG5cdH07XG59KSgpO1xuXG52YXIgc2luZ2xldG9uID0gbnVsbDtcbnZhclx0c2luZ2xldG9uQ291bnRlciA9IDA7XG52YXJcdHN0eWxlc0luc2VydGVkQXRUb3AgPSBbXTtcblxudmFyXHRmaXhVcmxzID0gcmVxdWlyZShcIi4vdXJsc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihsaXN0LCBvcHRpb25zKSB7XG5cdGlmICh0eXBlb2YgREVCVUcgIT09IFwidW5kZWZpbmVkXCIgJiYgREVCVUcpIHtcblx0XHRpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcIm9iamVjdFwiKSB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgc3R5bGUtbG9hZGVyIGNhbm5vdCBiZSB1c2VkIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnRcIik7XG5cdH1cblxuXHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuXHRvcHRpb25zLmF0dHJzID0gdHlwZW9mIG9wdGlvbnMuYXR0cnMgPT09IFwib2JqZWN0XCIgPyBvcHRpb25zLmF0dHJzIDoge307XG5cblx0Ly8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XG5cdC8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2Vcblx0aWYgKCFvcHRpb25zLnNpbmdsZXRvbiAmJiB0eXBlb2Ygb3B0aW9ucy5zaW5nbGV0b24gIT09IFwiYm9vbGVhblwiKSBvcHRpb25zLnNpbmdsZXRvbiA9IGlzT2xkSUUoKTtcblxuXHQvLyBCeSBkZWZhdWx0LCBhZGQgPHN0eWxlPiB0YWdzIHRvIHRoZSA8aGVhZD4gZWxlbWVudFxuICAgICAgICBpZiAoIW9wdGlvbnMuaW5zZXJ0SW50bykgb3B0aW9ucy5pbnNlcnRJbnRvID0gXCJoZWFkXCI7XG5cblx0Ly8gQnkgZGVmYXVsdCwgYWRkIDxzdHlsZT4gdGFncyB0byB0aGUgYm90dG9tIG9mIHRoZSB0YXJnZXRcblx0aWYgKCFvcHRpb25zLmluc2VydEF0KSBvcHRpb25zLmluc2VydEF0ID0gXCJib3R0b21cIjtcblxuXHR2YXIgc3R5bGVzID0gbGlzdFRvU3R5bGVzKGxpc3QsIG9wdGlvbnMpO1xuXG5cdGFkZFN0eWxlc1RvRG9tKHN0eWxlcywgb3B0aW9ucyk7XG5cblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZSAobmV3TGlzdCkge1xuXHRcdHZhciBtYXlSZW1vdmUgPSBbXTtcblxuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgaXRlbSA9IHN0eWxlc1tpXTtcblx0XHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuXG5cdFx0XHRkb21TdHlsZS5yZWZzLS07XG5cdFx0XHRtYXlSZW1vdmUucHVzaChkb21TdHlsZSk7XG5cdFx0fVxuXG5cdFx0aWYobmV3TGlzdCkge1xuXHRcdFx0dmFyIG5ld1N0eWxlcyA9IGxpc3RUb1N0eWxlcyhuZXdMaXN0LCBvcHRpb25zKTtcblx0XHRcdGFkZFN0eWxlc1RvRG9tKG5ld1N0eWxlcywgb3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBtYXlSZW1vdmUubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBkb21TdHlsZSA9IG1heVJlbW92ZVtpXTtcblxuXHRcdFx0aWYoZG9tU3R5bGUucmVmcyA9PT0gMCkge1xuXHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSBkb21TdHlsZS5wYXJ0c1tqXSgpO1xuXG5cdFx0XHRcdGRlbGV0ZSBzdHlsZXNJbkRvbVtkb21TdHlsZS5pZF07XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufTtcblxuZnVuY3Rpb24gYWRkU3R5bGVzVG9Eb20gKHN0eWxlcywgb3B0aW9ucykge1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBpdGVtID0gc3R5bGVzW2ldO1xuXHRcdHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdO1xuXG5cdFx0aWYoZG9tU3R5bGUpIHtcblx0XHRcdGRvbVN0eWxlLnJlZnMrKztcblxuXHRcdFx0Zm9yKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGRvbVN0eWxlLnBhcnRzW2pdKGl0ZW0ucGFydHNbal0pO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3IoOyBqIDwgaXRlbS5wYXJ0cy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRkb21TdHlsZS5wYXJ0cy5wdXNoKGFkZFN0eWxlKGl0ZW0ucGFydHNbal0sIG9wdGlvbnMpKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dmFyIHBhcnRzID0gW107XG5cblx0XHRcdGZvcih2YXIgaiA9IDA7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdHBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSwgb3B0aW9ucykpO1xuXHRcdFx0fVxuXG5cdFx0XHRzdHlsZXNJbkRvbVtpdGVtLmlkXSA9IHtpZDogaXRlbS5pZCwgcmVmczogMSwgcGFydHM6IHBhcnRzfTtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gbGlzdFRvU3R5bGVzIChsaXN0LCBvcHRpb25zKSB7XG5cdHZhciBzdHlsZXMgPSBbXTtcblx0dmFyIG5ld1N0eWxlcyA9IHt9O1xuXG5cdGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBpdGVtID0gbGlzdFtpXTtcblx0XHR2YXIgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcblx0XHR2YXIgY3NzID0gaXRlbVsxXTtcblx0XHR2YXIgbWVkaWEgPSBpdGVtWzJdO1xuXHRcdHZhciBzb3VyY2VNYXAgPSBpdGVtWzNdO1xuXHRcdHZhciBwYXJ0ID0ge2NzczogY3NzLCBtZWRpYTogbWVkaWEsIHNvdXJjZU1hcDogc291cmNlTWFwfTtcblxuXHRcdGlmKCFuZXdTdHlsZXNbaWRdKSBzdHlsZXMucHVzaChuZXdTdHlsZXNbaWRdID0ge2lkOiBpZCwgcGFydHM6IFtwYXJ0XX0pO1xuXHRcdGVsc2UgbmV3U3R5bGVzW2lkXS5wYXJ0cy5wdXNoKHBhcnQpO1xuXHR9XG5cblx0cmV0dXJuIHN0eWxlcztcbn1cblxuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50IChvcHRpb25zLCBzdHlsZSkge1xuXHR2YXIgdGFyZ2V0ID0gZ2V0RWxlbWVudChvcHRpb25zLmluc2VydEludG8pXG5cblx0aWYgKCF0YXJnZXQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydEludG8nIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcblx0fVxuXG5cdHZhciBsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcCA9IHN0eWxlc0luc2VydGVkQXRUb3Bbc3R5bGVzSW5zZXJ0ZWRBdFRvcC5sZW5ndGggLSAxXTtcblxuXHRpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJ0b3BcIikge1xuXHRcdGlmICghbGFzdFN0eWxlRWxlbWVudEluc2VydGVkQXRUb3ApIHtcblx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIHRhcmdldC5maXJzdENoaWxkKTtcblx0XHR9IGVsc2UgaWYgKGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wLm5leHRTaWJsaW5nKSB7XG5cdFx0XHR0YXJnZXQuaW5zZXJ0QmVmb3JlKHN0eWxlLCBsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcC5uZXh0U2libGluZyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdFx0fVxuXHRcdHN0eWxlc0luc2VydGVkQXRUb3AucHVzaChzdHlsZSk7XG5cdH0gZWxzZSBpZiAob3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJib3R0b21cIikge1xuXHRcdHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIG9wdGlvbnMuaW5zZXJ0QXQgPT09IFwib2JqZWN0XCIgJiYgb3B0aW9ucy5pbnNlcnRBdC5iZWZvcmUpIHtcblx0XHR2YXIgbmV4dFNpYmxpbmcgPSBnZXRFbGVtZW50KG9wdGlvbnMuaW5zZXJ0SW50byArIFwiIFwiICsgb3B0aW9ucy5pbnNlcnRBdC5iZWZvcmUpO1xuXHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIG5leHRTaWJsaW5nKTtcblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJbU3R5bGUgTG9hZGVyXVxcblxcbiBJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgJ2luc2VydEF0JyAoJ29wdGlvbnMuaW5zZXJ0QXQnKSBmb3VuZC5cXG4gTXVzdCBiZSAndG9wJywgJ2JvdHRvbScsIG9yIE9iamVjdC5cXG4gKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrLWNvbnRyaWIvc3R5bGUtbG9hZGVyI2luc2VydGF0KVxcblwiKTtcblx0fVxufVxuXG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQgKHN0eWxlKSB7XG5cdGlmIChzdHlsZS5wYXJlbnROb2RlID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG5cdHN0eWxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGUpO1xuXG5cdHZhciBpZHggPSBzdHlsZXNJbnNlcnRlZEF0VG9wLmluZGV4T2Yoc3R5bGUpO1xuXHRpZihpZHggPj0gMCkge1xuXHRcdHN0eWxlc0luc2VydGVkQXRUb3Auc3BsaWNlKGlkeCwgMSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlU3R5bGVFbGVtZW50IChvcHRpb25zKSB7XG5cdHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblxuXHRvcHRpb25zLmF0dHJzLnR5cGUgPSBcInRleHQvY3NzXCI7XG5cblx0YWRkQXR0cnMoc3R5bGUsIG9wdGlvbnMuYXR0cnMpO1xuXHRpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucywgc3R5bGUpO1xuXG5cdHJldHVybiBzdHlsZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGlua0VsZW1lbnQgKG9wdGlvbnMpIHtcblx0dmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcblxuXHRvcHRpb25zLmF0dHJzLnR5cGUgPSBcInRleHQvY3NzXCI7XG5cdG9wdGlvbnMuYXR0cnMucmVsID0gXCJzdHlsZXNoZWV0XCI7XG5cblx0YWRkQXR0cnMobGluaywgb3B0aW9ucy5hdHRycyk7XG5cdGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zLCBsaW5rKTtcblxuXHRyZXR1cm4gbGluaztcbn1cblxuZnVuY3Rpb24gYWRkQXR0cnMgKGVsLCBhdHRycykge1xuXHRPYmplY3Qua2V5cyhhdHRycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG5cdFx0ZWwuc2V0QXR0cmlidXRlKGtleSwgYXR0cnNba2V5XSk7XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBhZGRTdHlsZSAob2JqLCBvcHRpb25zKSB7XG5cdHZhciBzdHlsZSwgdXBkYXRlLCByZW1vdmUsIHJlc3VsdDtcblxuXHQvLyBJZiBhIHRyYW5zZm9ybSBmdW5jdGlvbiB3YXMgZGVmaW5lZCwgcnVuIGl0IG9uIHRoZSBjc3Ncblx0aWYgKG9wdGlvbnMudHJhbnNmb3JtICYmIG9iai5jc3MpIHtcblx0ICAgIHJlc3VsdCA9IG9wdGlvbnMudHJhbnNmb3JtKG9iai5jc3MpO1xuXG5cdCAgICBpZiAocmVzdWx0KSB7XG5cdCAgICBcdC8vIElmIHRyYW5zZm9ybSByZXR1cm5zIGEgdmFsdWUsIHVzZSB0aGF0IGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGNzcy5cblx0ICAgIFx0Ly8gVGhpcyBhbGxvd3MgcnVubmluZyBydW50aW1lIHRyYW5zZm9ybWF0aW9ucyBvbiB0aGUgY3NzLlxuXHQgICAgXHRvYmouY3NzID0gcmVzdWx0O1xuXHQgICAgfSBlbHNlIHtcblx0ICAgIFx0Ly8gSWYgdGhlIHRyYW5zZm9ybSBmdW5jdGlvbiByZXR1cm5zIGEgZmFsc3kgdmFsdWUsIGRvbid0IGFkZCB0aGlzIGNzcy5cblx0ICAgIFx0Ly8gVGhpcyBhbGxvd3MgY29uZGl0aW9uYWwgbG9hZGluZyBvZiBjc3Ncblx0ICAgIFx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHQgICAgXHRcdC8vIG5vb3Bcblx0ICAgIFx0fTtcblx0ICAgIH1cblx0fVxuXG5cdGlmIChvcHRpb25zLnNpbmdsZXRvbikge1xuXHRcdHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrO1xuXG5cdFx0c3R5bGUgPSBzaW5nbGV0b24gfHwgKHNpbmdsZXRvbiA9IGNyZWF0ZVN0eWxlRWxlbWVudChvcHRpb25zKSk7XG5cblx0XHR1cGRhdGUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIGZhbHNlKTtcblx0XHRyZW1vdmUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGUsIHN0eWxlSW5kZXgsIHRydWUpO1xuXG5cdH0gZWxzZSBpZiAoXG5cdFx0b2JqLnNvdXJjZU1hcCAmJlxuXHRcdHR5cGVvZiBVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBVUkwuY3JlYXRlT2JqZWN0VVJMID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHR0eXBlb2YgVVJMLnJldm9rZU9iamVjdFVSTCA9PT0gXCJmdW5jdGlvblwiICYmXG5cdFx0dHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCJcblx0KSB7XG5cdFx0c3R5bGUgPSBjcmVhdGVMaW5rRWxlbWVudChvcHRpb25zKTtcblx0XHR1cGRhdGUgPSB1cGRhdGVMaW5rLmJpbmQobnVsbCwgc3R5bGUsIG9wdGlvbnMpO1xuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG5cblx0XHRcdGlmKHN0eWxlLmhyZWYpIFVSTC5yZXZva2VPYmplY3RVUkwoc3R5bGUuaHJlZik7XG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRzdHlsZSA9IGNyZWF0ZVN0eWxlRWxlbWVudChvcHRpb25zKTtcblx0XHR1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGUpO1xuXHRcdHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZSk7XG5cdFx0fTtcblx0fVxuXG5cdHVwZGF0ZShvYmopO1xuXG5cdHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZSAobmV3T2JqKSB7XG5cdFx0aWYgKG5ld09iaikge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRuZXdPYmouY3NzID09PSBvYmouY3NzICYmXG5cdFx0XHRcdG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmXG5cdFx0XHRcdG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXBcblx0XHRcdCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHVwZGF0ZShvYmogPSBuZXdPYmopO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZW1vdmUoKTtcblx0XHR9XG5cdH07XG59XG5cbnZhciByZXBsYWNlVGV4dCA9IChmdW5jdGlvbiAoKSB7XG5cdHZhciB0ZXh0U3RvcmUgPSBbXTtcblxuXHRyZXR1cm4gZnVuY3Rpb24gKGluZGV4LCByZXBsYWNlbWVudCkge1xuXHRcdHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudDtcblxuXHRcdHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcbicpO1xuXHR9O1xufSkoKTtcblxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyAoc3R5bGUsIGluZGV4LCByZW1vdmUsIG9iaikge1xuXHR2YXIgY3NzID0gcmVtb3ZlID8gXCJcIiA6IG9iai5jc3M7XG5cblx0aWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcblx0XHRzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKTtcblx0fSBlbHNlIHtcblx0XHR2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcyk7XG5cdFx0dmFyIGNoaWxkTm9kZXMgPSBzdHlsZS5jaGlsZE5vZGVzO1xuXG5cdFx0aWYgKGNoaWxkTm9kZXNbaW5kZXhdKSBzdHlsZS5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSk7XG5cblx0XHRpZiAoY2hpbGROb2Rlcy5sZW5ndGgpIHtcblx0XHRcdHN0eWxlLmluc2VydEJlZm9yZShjc3NOb2RlLCBjaGlsZE5vZGVzW2luZGV4XSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHN0eWxlLmFwcGVuZENoaWxkKGNzc05vZGUpO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBhcHBseVRvVGFnIChzdHlsZSwgb2JqKSB7XG5cdHZhciBjc3MgPSBvYmouY3NzO1xuXHR2YXIgbWVkaWEgPSBvYmoubWVkaWE7XG5cblx0aWYobWVkaWEpIHtcblx0XHRzdHlsZS5zZXRBdHRyaWJ1dGUoXCJtZWRpYVwiLCBtZWRpYSlcblx0fVxuXG5cdGlmKHN0eWxlLnN0eWxlU2hlZXQpIHtcblx0XHRzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG5cdH0gZWxzZSB7XG5cdFx0d2hpbGUoc3R5bGUuZmlyc3RDaGlsZCkge1xuXHRcdFx0c3R5bGUucmVtb3ZlQ2hpbGQoc3R5bGUuZmlyc3RDaGlsZCk7XG5cdFx0fVxuXG5cdFx0c3R5bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlTGluayAobGluaywgb3B0aW9ucywgb2JqKSB7XG5cdHZhciBjc3MgPSBvYmouY3NzO1xuXHR2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcblxuXHQvKlxuXHRcdElmIGNvbnZlcnRUb0Fic29sdXRlVXJscyBpc24ndCBkZWZpbmVkLCBidXQgc291cmNlbWFwcyBhcmUgZW5hYmxlZFxuXHRcdGFuZCB0aGVyZSBpcyBubyBwdWJsaWNQYXRoIGRlZmluZWQgdGhlbiBsZXRzIHR1cm4gY29udmVydFRvQWJzb2x1dGVVcmxzXG5cdFx0b24gYnkgZGVmYXVsdC4gIE90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBjb252ZXJ0VG9BYnNvbHV0ZVVybHMgb3B0aW9uXG5cdFx0ZGlyZWN0bHlcblx0Ki9cblx0dmFyIGF1dG9GaXhVcmxzID0gb3B0aW9ucy5jb252ZXJ0VG9BYnNvbHV0ZVVybHMgPT09IHVuZGVmaW5lZCAmJiBzb3VyY2VNYXA7XG5cblx0aWYgKG9wdGlvbnMuY29udmVydFRvQWJzb2x1dGVVcmxzIHx8IGF1dG9GaXhVcmxzKSB7XG5cdFx0Y3NzID0gZml4VXJscyhjc3MpO1xuXHR9XG5cblx0aWYgKHNvdXJjZU1hcCkge1xuXHRcdC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI2NjAzODc1XG5cdFx0Y3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIiArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSkgKyBcIiAqL1wiO1xuXHR9XG5cblx0dmFyIGJsb2IgPSBuZXcgQmxvYihbY3NzXSwgeyB0eXBlOiBcInRleHQvY3NzXCIgfSk7XG5cblx0dmFyIG9sZFNyYyA9IGxpbmsuaHJlZjtcblxuXHRsaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuXG5cdGlmKG9sZFNyYykgVVJMLnJldm9rZU9iamVjdFVSTChvbGRTcmMpO1xufVxuIiwiXG4vKipcbiAqIFdoZW4gc291cmNlIG1hcHMgYXJlIGVuYWJsZWQsIGBzdHlsZS1sb2FkZXJgIHVzZXMgYSBsaW5rIGVsZW1lbnQgd2l0aCBhIGRhdGEtdXJpIHRvXG4gKiBlbWJlZCB0aGUgY3NzIG9uIHRoZSBwYWdlLiBUaGlzIGJyZWFrcyBhbGwgcmVsYXRpdmUgdXJscyBiZWNhdXNlIG5vdyB0aGV5IGFyZSByZWxhdGl2ZSB0byBhXG4gKiBidW5kbGUgaW5zdGVhZCBvZiB0aGUgY3VycmVudCBwYWdlLlxuICpcbiAqIE9uZSBzb2x1dGlvbiBpcyB0byBvbmx5IHVzZSBmdWxsIHVybHMsIGJ1dCB0aGF0IG1heSBiZSBpbXBvc3NpYmxlLlxuICpcbiAqIEluc3RlYWQsIHRoaXMgZnVuY3Rpb24gXCJmaXhlc1wiIHRoZSByZWxhdGl2ZSB1cmxzIHRvIGJlIGFic29sdXRlIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBwYWdlIGxvY2F0aW9uLlxuICpcbiAqIEEgcnVkaW1lbnRhcnkgdGVzdCBzdWl0ZSBpcyBsb2NhdGVkIGF0IGB0ZXN0L2ZpeFVybHMuanNgIGFuZCBjYW4gYmUgcnVuIHZpYSB0aGUgYG5wbSB0ZXN0YCBjb21tYW5kLlxuICpcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3MpIHtcbiAgLy8gZ2V0IGN1cnJlbnQgbG9jYXRpb25cbiAgdmFyIGxvY2F0aW9uID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3cubG9jYXRpb247XG5cbiAgaWYgKCFsb2NhdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcImZpeFVybHMgcmVxdWlyZXMgd2luZG93LmxvY2F0aW9uXCIpO1xuICB9XG5cblx0Ly8gYmxhbmsgb3IgbnVsbD9cblx0aWYgKCFjc3MgfHwgdHlwZW9mIGNzcyAhPT0gXCJzdHJpbmdcIikge1xuXHQgIHJldHVybiBjc3M7XG4gIH1cblxuICB2YXIgYmFzZVVybCA9IGxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgbG9jYXRpb24uaG9zdDtcbiAgdmFyIGN1cnJlbnREaXIgPSBiYXNlVXJsICsgbG9jYXRpb24ucGF0aG5hbWUucmVwbGFjZSgvXFwvW15cXC9dKiQvLCBcIi9cIik7XG5cblx0Ly8gY29udmVydCBlYWNoIHVybCguLi4pXG5cdC8qXG5cdFRoaXMgcmVndWxhciBleHByZXNzaW9uIGlzIGp1c3QgYSB3YXkgdG8gcmVjdXJzaXZlbHkgbWF0Y2ggYnJhY2tldHMgd2l0aGluXG5cdGEgc3RyaW5nLlxuXG5cdCAvdXJsXFxzKlxcKCAgPSBNYXRjaCBvbiB0aGUgd29yZCBcInVybFwiIHdpdGggYW55IHdoaXRlc3BhY2UgYWZ0ZXIgaXQgYW5kIHRoZW4gYSBwYXJlbnNcblx0ICAgKCAgPSBTdGFydCBhIGNhcHR1cmluZyBncm91cFxuXHQgICAgICg/OiAgPSBTdGFydCBhIG5vbi1jYXB0dXJpbmcgZ3JvdXBcblx0ICAgICAgICAgW14pKF0gID0gTWF0Y2ggYW55dGhpbmcgdGhhdCBpc24ndCBhIHBhcmVudGhlc2VzXG5cdCAgICAgICAgIHwgID0gT1Jcblx0ICAgICAgICAgXFwoICA9IE1hdGNoIGEgc3RhcnQgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICg/OiAgPSBTdGFydCBhbm90aGVyIG5vbi1jYXB0dXJpbmcgZ3JvdXBzXG5cdCAgICAgICAgICAgICAgICAgW14pKF0rICA9IE1hdGNoIGFueXRoaW5nIHRoYXQgaXNuJ3QgYSBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgICAgIHwgID0gT1Jcblx0ICAgICAgICAgICAgICAgICBcXCggID0gTWF0Y2ggYSBzdGFydCBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgICAgICAgICBbXikoXSogID0gTWF0Y2ggYW55dGhpbmcgdGhhdCBpc24ndCBhIHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICAgICAgXFwpICA9IE1hdGNoIGEgZW5kIHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICApICA9IEVuZCBHcm91cFxuICAgICAgICAgICAgICAqXFwpID0gTWF0Y2ggYW55dGhpbmcgYW5kIHRoZW4gYSBjbG9zZSBwYXJlbnNcbiAgICAgICAgICApICA9IENsb3NlIG5vbi1jYXB0dXJpbmcgZ3JvdXBcbiAgICAgICAgICAqICA9IE1hdGNoIGFueXRoaW5nXG4gICAgICAgKSAgPSBDbG9zZSBjYXB0dXJpbmcgZ3JvdXBcblx0IFxcKSAgPSBNYXRjaCBhIGNsb3NlIHBhcmVuc1xuXG5cdCAvZ2kgID0gR2V0IGFsbCBtYXRjaGVzLCBub3QgdGhlIGZpcnN0LiAgQmUgY2FzZSBpbnNlbnNpdGl2ZS5cblx0ICovXG5cdHZhciBmaXhlZENzcyA9IGNzcy5yZXBsYWNlKC91cmxcXHMqXFwoKCg/OlteKShdfFxcKCg/OlteKShdK3xcXChbXikoXSpcXCkpKlxcKSkqKVxcKS9naSwgZnVuY3Rpb24oZnVsbE1hdGNoLCBvcmlnVXJsKSB7XG5cdFx0Ly8gc3RyaXAgcXVvdGVzIChpZiB0aGV5IGV4aXN0KVxuXHRcdHZhciB1bnF1b3RlZE9yaWdVcmwgPSBvcmlnVXJsXG5cdFx0XHQudHJpbSgpXG5cdFx0XHQucmVwbGFjZSgvXlwiKC4qKVwiJC8sIGZ1bmN0aW9uKG8sICQxKXsgcmV0dXJuICQxOyB9KVxuXHRcdFx0LnJlcGxhY2UoL14nKC4qKSckLywgZnVuY3Rpb24obywgJDEpeyByZXR1cm4gJDE7IH0pO1xuXG5cdFx0Ly8gYWxyZWFkeSBhIGZ1bGwgdXJsPyBubyBjaGFuZ2Vcblx0XHRpZiAoL14oI3xkYXRhOnxodHRwOlxcL1xcL3xodHRwczpcXC9cXC98ZmlsZTpcXC9cXC9cXC98XFxzKiQpL2kudGVzdCh1bnF1b3RlZE9yaWdVcmwpKSB7XG5cdFx0ICByZXR1cm4gZnVsbE1hdGNoO1xuXHRcdH1cblxuXHRcdC8vIGNvbnZlcnQgdGhlIHVybCB0byBhIGZ1bGwgdXJsXG5cdFx0dmFyIG5ld1VybDtcblxuXHRcdGlmICh1bnF1b3RlZE9yaWdVcmwuaW5kZXhPZihcIi8vXCIpID09PSAwKSB7XG5cdFx0ICBcdC8vVE9ETzogc2hvdWxkIHdlIGFkZCBwcm90b2NvbD9cblx0XHRcdG5ld1VybCA9IHVucXVvdGVkT3JpZ1VybDtcblx0XHR9IGVsc2UgaWYgKHVucXVvdGVkT3JpZ1VybC5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdFx0Ly8gcGF0aCBzaG91bGQgYmUgcmVsYXRpdmUgdG8gdGhlIGJhc2UgdXJsXG5cdFx0XHRuZXdVcmwgPSBiYXNlVXJsICsgdW5xdW90ZWRPcmlnVXJsOyAvLyBhbHJlYWR5IHN0YXJ0cyB3aXRoICcvJ1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZSB0byBjdXJyZW50IGRpcmVjdG9yeVxuXHRcdFx0bmV3VXJsID0gY3VycmVudERpciArIHVucXVvdGVkT3JpZ1VybC5yZXBsYWNlKC9eXFwuXFwvLywgXCJcIik7IC8vIFN0cmlwIGxlYWRpbmcgJy4vJ1xuXHRcdH1cblxuXHRcdC8vIHNlbmQgYmFjayB0aGUgZml4ZWQgdXJsKC4uLilcblx0XHRyZXR1cm4gXCJ1cmwoXCIgKyBKU09OLnN0cmluZ2lmeShuZXdVcmwpICsgXCIpXCI7XG5cdH0pO1xuXG5cdC8vIHNlbmQgYmFjayB0aGUgZml4ZWQgY3NzXG5cdHJldHVybiBmaXhlZENzcztcbn07XG4iLCJ2YXIgZztcblxuLy8gVGhpcyB3b3JrcyBpbiBub24tc3RyaWN0IG1vZGVcbmcgPSAoZnVuY3Rpb24oKSB7XG5cdHJldHVybiB0aGlzO1xufSkoKTtcblxudHJ5IHtcblx0Ly8gVGhpcyB3b3JrcyBpZiBldmFsIGlzIGFsbG93ZWQgKHNlZSBDU1ApXG5cdGcgPSBnIHx8IG5ldyBGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCk7XG59IGNhdGNoIChlKSB7XG5cdC8vIFRoaXMgd29ya3MgaWYgdGhlIHdpbmRvdyByZWZlcmVuY2UgaXMgYXZhaWxhYmxlXG5cdGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiKSBnID0gd2luZG93O1xufVxuXG4vLyBnIGNhbiBzdGlsbCBiZSB1bmRlZmluZWQsIGJ1dCBub3RoaW5nIHRvIGRvIGFib3V0IGl0Li4uXG4vLyBXZSByZXR1cm4gdW5kZWZpbmVkLCBpbnN0ZWFkIG9mIG5vdGhpbmcgaGVyZSwgc28gaXQnc1xuLy8gZWFzaWVyIHRvIGhhbmRsZSB0aGlzIGNhc2UuIGlmKCFnbG9iYWwpIHsgLi4ufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGc7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHRpZiAoIW1vZHVsZS53ZWJwYWNrUG9seWZpbGwpIHtcblx0XHRtb2R1bGUuZGVwcmVjYXRlID0gZnVuY3Rpb24oKSB7fTtcblx0XHRtb2R1bGUucGF0aHMgPSBbXTtcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcblx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0bW9kdWxlLndlYnBhY2tQb2x5ZmlsbCA9IDE7XG5cdH1cblx0cmV0dXJuIG1vZHVsZTtcbn07XG4iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X2dldEdyaWQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcbmltcG9ydCB7IGd3X3BhcnNlTm9kZSB9IGZyb20gXCJldmVudHMvdXRpbGl0aWVzXCI7XG5cbmNvbnN0IHsgZGVlcFBhcnNlSnNvbiB9ID0gcmVxdWlyZShcImRlZXAtcGFyc2UtanNvblwiKTtcblxuLyoqXG4gKiBTdGFydCBjZWxsIGVkaXRpbmdcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWQgXG4gKiBAcGFyYW0ge1N0cmluZ3xudW1iZXJ9IHJvdyBUaGUgcm93IGluZGV4XG4gKiBAcGFyYW0ge1N0cmluZ30gY29sS2V5IFRoZSBjb2x1bW4ncyBrZXlcbiAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcn0ga2V5ICBLZXkgcHJlc3NcbiAqIEBwYXJhbSB7U3RyaW5nfSBjaGFyIFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc3RhcnRFZGl0aW5nQ2VsbChpZCwgcm93LCBjb2xLZXksIGtleSwgY2hhcikge1xuICBjb25zdCBvcHRpb25zID0gZ3dfZ2V0R3JpZChpZCkub3B0aW9ucztcblxuICBvcHRpb25zLmFwaS5zZXRGb2N1c2VkQ2VsbChOdW1iZXIocm93KSwgY29sS2V5KTtcbiAgb3B0aW9ucy5hcGkuc3RhcnRFZGl0aW5nQ2VsbCh7XG4gICAgcm93SW5kZXg6IE51bWJlcihyb3cpLFxuICAgIGNvbEtleTogY29sS2V5LFxuICAgIGtleVByZXNzOiBOdW1iZXIoa2V5KSxcbiAgICBjaGFyUHJlc3M6IGNoYXJcbiAgfSk7XG59XG5cbi8qKlxuICogU3RvcCBjZWxsIGVkaXRpbmcgXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkIFxuICogQHBhcmFtIHtCb29sZWFufSBjYW5jZWwgd2hlbiB0cnVlIGNhbmNlbCBlZGl0cyAsIHNhdmUgZWRpdHMgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zdG9wRWRpdGluZyhpZCwgY2FuY2VsKSB7XG4gIGd3X2dldEdyaWQoaWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLnN0b3BFZGl0aW5nKGNhbmNlbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19lZGl0TmV4dENlbGwoaWQpIHtcbiAgZ3dfZ2V0R3JpZChpZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAudGFiVG9OZXh0Q2VsbCgpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGd3X2VkaXRQcmV2aW91c0NlbGwoaWQpIHtcbiAgZ3dfZ2V0R3JpZChpZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAudGFiVG9QcmV2aW91c0NlbGwoKTtcbn1cblxuLyoqXG4gKiBTZXQgRm9jdXMgb24gdGhlIGdpdmVuIHJvdyBhbmQgY29sdW1uXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkIFxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSByb3cgVGhlIHJvdydzIGluZGV4L2lkXG4gKiBAcGFyYW0ge1N0cmluZ30gY29sdW1uIFRoZSBjb2x1bW4gaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3NldEZvY3VzZWRDZWxsKGlkLCByb3csIGNvbHVtbikge1xuICBjb25zdCBvcHRpb25zID0gZ3dfZ2V0R3JpZChpZCkub3B0aW9ucztcbiAgY29uc3QgciA9ICFyb3cgPyAwIDogKE51bWJlci5pc0ludGVnZXIoK3JvdykgPyArcm93IDogb3B0aW9ucy5hcGkuZ2V0Um93Tm9kZShyb3cpLnJvd0luZGV4KTtcbiAgY29uc3QgYyA9IGNvbHVtbiA/IGNvbHVtbiA6IG9wdGlvbnMuY29sdW1uQXBpLmdldEFsbEdyaWRDb2x1bW5zKClbMF0uY29sSWQ7XG4gIGd3X2dldEdyaWQoaWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLnNldEZvY3VzZWRDZWxsKHIsIGMpO1xufVxuXG4vKipcbiAqIEdldCBSYW5nZSBTZWxlY3Rpb25zXG4gKiBcbiAqIFRoZSBtZXRob2Qgd2lsbCBjcmVhdGUgYSByYW5nZSBqc29uIG1vZGVsIGZvciBlYWNoIHJhbmdlIHdoaWNoIGNhbiBiZSBwYXJzZWQgaW4gQkJqIHNpZGUuXG4gKiBcbiAqIEBwYXJhbSB7TnVtYmVyfSBpZCBncmlkJ3MgaWRcbiAqIFxuICogQHJldHVybnMge1N0cmluZ30gc2VsZWN0ZWQgcmFuZ2VzIGFzIEpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2dldFJhbmdlU2VsZWN0aW9ucyhpZCkge1xuICBjb25zdCBvcHRpb25zID0gZ3dfZ2V0R3JpZChpZCkub3B0aW9ucztcbiAgY29uc3QgY29udGV4dCA9IG9wdGlvbnMuY29udGV4dDtcbiAgY29uc3QgYXBpID0gb3B0aW9ucy5hcGk7XG4gIGNvbnN0IHJhbmdlcyA9IGFwaS5nZXRDZWxsUmFuZ2VzKCk7XG4gIGNvbnN0IG1vZGVsID0gYXBpLmdldE1vZGVsKCk7XG4gIGxldCByZXN1bHQgPSBbXTtcblxuICByYW5nZXMuZm9yRWFjaChyYW5nZSA9PiB7XG5cbiAgICAvLyBjb25zdCBzdGFydCA9IGd3X3BhcnNlTm9kZShtb2RlbC5nZXRSb3cocmFuZ2Uuc3RhcnRSb3cucm93SW5kZXgpLCBvcHRpb25zLmNvbnRleHQpO1xuICAgIC8vIGNvbnN0IGVuZCA9IGd3X3BhcnNlTm9kZShtb2RlbC5nZXRSb3cocmFuZ2UuZW5kUm93LnJvd0luZGV4KSwgb3B0aW9ucy5jb250ZXh0KTtcblxuICAgIC8vaWYgKHN0YXJ0ICE9PSBmYWxzZSAmJiBlbmQgIT09IGZhbHNlKSB7XG4gICAgY29uc3QgY29sdW1ucyA9IHJhbmdlLmNvbHVtbnMucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudCkgPT4ge1xuXG4gICAgICBpZiAoXCJhZy1HcmlkLUF1dG9Db2x1bW5cIiAhPT0gY3VycmVudC5jb2xJZCkge1xuICAgICAgICBhY2N1bXVsYXRvci5wdXNoKGN1cnJlbnQuY29sSWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfSwgW10pLmZpbHRlcihCb29sZWFuKTtcblxuICAgIGNvbnN0IHN0YXJJbmRleCA9IE1hdGgubWluKHJhbmdlLnN0YXJ0Um93LnJvd0luZGV4LCByYW5nZS5lbmRSb3cucm93SW5kZXgpO1xuICAgIGNvbnN0IGVuZEluZGV4ID0gTWF0aC5tYXgocmFuZ2Uuc3RhcnRSb3cucm93SW5kZXgsIHJhbmdlLmVuZFJvdy5yb3dJbmRleCk7XG4gICAgY29uc3Qgcm93cyA9IFtdO1xuXG4gICAgZm9yIChsZXQgcm93SW5kZXggPSBzdGFySW5kZXg7IHJvd0luZGV4IDw9IGVuZEluZGV4OyByb3dJbmRleCsrKSB7XG4gICAgICBjb25zdCBub2RlID0gbW9kZWwuZ2V0Um93KHJvd0luZGV4KTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZE5vZGUgPSBnd19wYXJzZU5vZGUobm9kZSwgY29udGV4dCk7XG4gICAgICAgIGlmIChwYXJzZWROb2RlKSByb3dzLnB1c2gocGFyc2VkTm9kZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJvd3MubGVuZ3RoICYmIGNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICByZXN1bHQucHVzaCh7IHI6IHJvd3MsIGM6IGNvbHVtbnMgfSk7XG4gICAgfVxuICAgIC8vfVxuICB9KTtcblxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcbn1cblxuLyoqXG4gKiBQYXJzZSB0aGUgY2VsbHMgcmFuZ2UgaW4gYSBmb3JtYXQgdGhlIGdyaWQgY2FuIHVuZGVyc3RhbmQgd2hlbiBpdCBpcyBwYXNzZWQgXG4gKiB0byBgYXBpLmFkZENlbGxSYW5nZWBcbiAqIFxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgVGhlIGdyaWQncyBvcHRpb25zXG4gKiBAcGFyYW0ge09iamVjdH0gcmFuZ2UgIGJvdW5kZWQgb3IgdW5ib3VuZGVkIHJhbmdlIG1vZGVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19wYXJzZUFkZENlbGxSYW5nZShvcHRpb25zICwgcmFuZ2UpIHtcbiAgY29uc3QgcHIgPSBkZWVwUGFyc2VKc29uKEpTT04uc3RyaW5naWZ5KHJhbmdlKSk7XG4gIGNvbnN0IHN0YXJ0ID0gIShwci5zdGFydCB8fCBudWxsKSA/XG4gICAgMCA6IChOdW1iZXIuaXNJbnRlZ2VyKCtwci5zdGFydCkgPyArcHIuc3RhcnQgOiBvcHRpb25zLmFwaS5nZXRSb3dOb2RlKHByLnN0YXJ0KS5yb3dJbmRleCk7XG4gIGNvbnN0IGVuZCA9ICEocHIuZW5kIHx8IG51bGwpID9cbiAgICAob3B0aW9ucy5yb3dEYXRhLmxlbmd0aCAtIDEpIDogKE51bWJlci5pc0ludGVnZXIoK3ByLmVuZCkgPyArcHIuZW5kIDogb3B0aW9ucy5hcGkuZ2V0Um93Tm9kZShwci5lbmQpLnJvd0luZGV4KTtcblxuICByZXR1cm4ge1xuICAgIHJvd1N0YXJ0SW5kZXg6IE1hdGguYWJzKHN0YXJ0KSxcbiAgICByb3dFbmRJbmRleDogTWF0aC5hYnMoZW5kKSxcbiAgICBjb2x1bW5zOiBwci5jb2x1bW5zXG4gIH07XG59XG4vKipcbiAqIEFkZCBuZXcgY2VsbCByYW5nZVxuICogXG4gKiBAcGFyYW0ge051bWJlcn0gaWQgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gcmFuZ2UgIGJvdW5kZWQgb3IgdW5ib3VuZGVkIHJhbmdlIG1vZGVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19hZGRDZWxsUmFuZ2UoaWQsIHJhbmdlKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuICBvcHRpb25zLmFwaS5hZGRDZWxsUmFuZ2UoZ3dfcGFyc2VBZGRDZWxsUmFuZ2Uob3B0aW9ucywgcmFuZ2UpKTtcbn1cblxuLyoqXG4gKiBDbGVhcnMgdGhlIHNlbGVjdGVkIHJhbmdlLlxuICogXG4gKiBAcGFyYW0ge051bWJlcn0gaWQgZ3JpZCdzIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19jbGVhclJhbmdlU2VsZWN0aW9uKGlkKSB7XG4gIGd3X2dldEdyaWQoaWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLmNsZWFyUmFuZ2VTZWxlY3Rpb24oKTtcbn0iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X2dldEdyaWQsIGd3X3V1aWQgfSBmcm9tIFwiYXBpL3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ3dfcGFyc2VBZGRDZWxsUmFuZ2UgfSBmcm9tIFwiYXBpL2NlbGxzXCI7XG5cbmNvbnN0IHsgZGVlcFBhcnNlSnNvbiB9ID0gcmVxdWlyZShcImRlZXAtcGFyc2UtanNvblwiKTtcblxuLyoqXG4gKiBUaGUgYXJyYXkgY29udGFpbnMgcmVmZXJlbmNlcyB0byBjcmVhdGVkIGNoYXJ0cyBmcm9tIEJCai5cbiAqIEV2ZXJ5IHJlZmVyZW5jZSBpcyBhIENoYXJ0UmVmIG9iamVjdCB3aGljaCBwcm92aWRlcyB0aGUgYXBwbGljYXRpb24gd2l0aCB0aGUgXG4gKiBkZXN0cm95Q2hhcnQoKSBtZXRob2QgdGhhdCBpcyByZXF1aXJlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0byBkaXNwb3NlIHRoZSBjaGFydC5cbiAqL1xuXG4vKipcbiAqIFJldHVybiB0aGUgY2hhcnQgdG9vbGJhciBpdGVtcyBkZWZpbmVkIGluIHRoZSBncmlkJ3MgY29udGV4dCBcbiAqIFxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBcbiAqIEByZXR1cm5zIHtBcnJheX0gYXJyYXkgb2Ygc3VwcG9ydGVkIGNoYXJ0IGl0ZW1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19nZXRDaGFydFRvb2xiYXJJdGVtcyhwYXJhbXMpIHtcbiAgcmV0dXJuIHBhcmFtc1xuICAgIC5hcGlcbiAgICAuZ3JpZE9wdGlvbnNXcmFwcGVyXG4gICAgLmdyaWRPcHRpb25zXG4gICAgLmNvbnRleHRcbiAgICAuY2hhcnRUb29sYmFySXRlbXMgfHwgW107XG59XG5cbi8qKlxuICogQWRkIG5ldyBjaGFydCByYW5nZVxuICogXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gcmFuZ2UgIGJvdW5kZWQgb3IgdW5ib3VuZGVkIHJhbmdlIG1vZGVsXG4gKiBcbiAqIEByZXR1cm4ge1N0cmluZ30gYSB1bmlxdWUgaWQgZm9yIHRoZSBnZW5lcmF0ZSBjaGFydFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfYWRkQ2hhcnRSYW5nZShpZCwgcmFuZ2UpIHtcbiAgY29uc3QgZ3JpZCA9IGd3X2dldEdyaWQoaWQpO1xuICBjb25zdCBvcHRpb25zID0gZ3JpZC5vcHRpb25zO1xuICBjb25zdCBwciA9IGRlZXBQYXJzZUpzb24oSlNPTi5zdHJpbmdpZnkocmFuZ2UpKTtcblxuICBwci5jZWxsUmFuZ2UgPSBnd19wYXJzZUFkZENlbGxSYW5nZShvcHRpb25zLCBwci5jZWxsUmFuZ2UpO1xuXG4gIGNvbnN0IHJlZiA9IG9wdGlvbnMuYXBpLmNoYXJ0UmFuZ2UocHIpO1xuICBjb25zdCB1dWlkID0gZ3dfdXVpZCgpO1xuICBcbiAgZ3JpZC5jcmVhdGVkX2NoYXJ0cyA9IGdyaWQuY3JlYXRlZF9jaGFydHMgfHwge307XG4gIGdyaWQuY3JlYXRlZF9jaGFydHNbdXVpZF0gPSByZWY7XG4gIFxuICByZXR1cm4gdXVpZDtcbn1cblxuLyoqXG4gKiBEZXN0cm95IGNyZWF0ZWQgY2hhcnRzXG4gKiBcbiAqIERlc3Ryb3kgYWxyZWFkeSBjcmVhdGVkIGNoYXJ0IGJ5IGlkIG9yIGFsbCBjcmVhdGVkIGNoYXJ0cyBcbiAqIHdoZW4gdGhlIGB1dWlkYCBpcyBvbWl0dGVkLlxuICogXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gdXVpZCBUaGUgY2hhcnQncyBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZGVzdHJveUNoYXJ0KGlkLCB1dWlkKSB7XG4gIGNvbnN0IGdyaWQgPSBnd19nZXRHcmlkKGlkKTtcbiAgXG4gIGlmICh1dWlkKSB7XG4gICAgaWYgKGdyaWQuaGFzT3duUHJvcGVydHkoJ2NyZWF0ZWRfY2hhcnRzJykgJiYgZ3JpZC5jcmVhdGVkX2NoYXJ0cy5oYXNPd25Qcm9wZXJ0eSh1dWlkKSkge1xuICAgICAgZ3JpZC5jcmVhdGVkX2NoYXJ0c1t1dWlkXS5kZXN0cm95Q2hhcnQoKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gIFxuICAgIGlmIChncmlkLmhhc093blByb3BlcnR5KCdjcmVhdGVkX2NoYXJ0cycpKSB7XG4gICAgICBmb3IgKGNvbnN0IGkgaW4gZ3JpZC5jcmVhdGVkX2NoYXJ0cykge1xuICAgICAgICBpZiAoZ3JpZC5jcmVhdGVkX2NoYXJ0cy5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgIGNvbnN0IGNoYXJ0ID0gZ3JpZC5jcmVhdGVkX2NoYXJ0c1tpXTtcbiAgICAgICAgICBjaGFydC5kZXN0cm95Q2hhcnQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QEJhc2lzLkFnR3JpZENvbXBvbmVudHMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgeyBnd19nZXRHcmlkIH0gZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5jb25zdCB7IGRlZXBQYXJzZUpzb24gfSA9IHJlcXVpcmUoXCJkZWVwLXBhcnNlLWpzb25cIik7XG5cbi8qKlxuICogRXh0ZW5kIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnNcbiAqXG4gKiBFeHRlbmQgdGhlIGNvbHVtbiBkZWZpbml0aW9ucyB3aXRoIG9wdGlvbnMgd2hpY2ggY2FuIG5vdCBiZSBoYW5kbGVkIGluIEJCalxuICogKGV4OiBhdHRhY2hpbmcgY2FsbGJhY2tzKVxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGRlZmluaXRpb25zIGFycmF5IG9mIGNvbHVtbiBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZXh0ZW5kQ29sdW1uRGVmaW5pdGlvbnMoZGVmaW5pdGlvbnMpIHtcbiAgZm9yIChsZXQgaSBpbiBkZWZpbml0aW9ucykge1xuICAgIGNvbnN0IGRlZiA9IGRlZmluaXRpb25zW2ldO1xuXG4gICAgZGVmLmNoZWNrYm94U2VsZWN0aW9uID0gZGVmLmNoZWNrYm94U2VsZWN0aW9uIHx8IGd3X2lzU2hvd1NlbGVjdGlvbkNoZWNrYm94O1xuICAgIGRlZi5oZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9XG4gICAgICBkZWYuaGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24gfHwgZ3dfaXNIZWFkZXJDaGVja2JveFNlbGVjdGlvbjtcbiAgfVxufVxuXG4vKipcbiAqIFVwZGF0ZSB0aGUgY29sdW1uIGRlZmluaXRpb25zXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge0FycmF5fSBkZWZpbml0aW9ucyBhcnJheSBvZiBjb2x1bW4gZGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3NldENvbHVtbkRlZmluaXRpb25zKGlkLCBkZWZpbml0aW9ucykge1xuICBjb25zdCBncmlkID0gZ3dfZ2V0R3JpZChpZCk7XG4gIGNvbnN0IGRlZXBQYXJzZWREZWZpbml0aW9ucyA9IGRlZXBQYXJzZUpzb24oSlNPTi5zdHJpbmdpZnkoZGVmaW5pdGlvbnMpKTtcblxuICBnd19leHRlbmRDb2x1bW5EZWZpbml0aW9ucyhkZWVwUGFyc2VkRGVmaW5pdGlvbnMpO1xuXG4gIGdyaWQub3B0aW9ucy5hcGkuc2V0Q29sdW1uRGVmcyhkZWVwUGFyc2VkRGVmaW5pdGlvbnMpO1xuICBncmlkLm9wdGlvbnMuY29sdW1uRGVmcyA9IGRlZXBQYXJzZWREZWZpbml0aW9ucztcbn1cblxuLyoqXG4gKiBNYWtlIHRoZSBjdXJyZW50bHkgdmlzaWJsZSBjb2x1bW5zIGZpdCB0aGUgc2NyZWVuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7TnVtYmVyfSB0aGUgd2lkdGggdG8gdXNlIHRvIGZpdCBhbGwgY29sdW1ucyBpblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2l6ZUNvbHVtbnNUb0ZpdChpZCwgd2lkdGgpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG4gIGNvbnN0IGFwaSA9IG9wdGlvbnMuYXBpO1xuICBjb25zdCBjb2x1bW5zQVBJID0gb3B0aW9ucy5jb2x1bW5BcGk7XG4gIGlmICh3aWR0aCkgY29sdW1uc0FQSS5zaXplQ29sdW1uc1RvRml0KE51bWJlcih3aWR0aCkpO1xuICBlbHNlIGFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG59XG5cbi8qKlxuICogV29yayBvdXQgdGhlIGJlc3Qgd2lkdGggdG8gZml0IHRoZSBjb250ZW50cyBvZiB0aGUgY2VsbHMgaW4gdGhlIGNvbHVtbi5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgVGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtCb29sZWFufSBbc2tpcEhlYWRlcj1mYWxzZV0gd2hlbiB0cnVlIGluZGljYXRlIHRoYXQgdGhlIGhlYWRlciBjb250ZW50IChoZWFkZXJOYW1lKSBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgd2hlblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0aW5nIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uXG4gKiBAcGFyYW0ge0FycmF5fG51bGx9IFtjb2x1bW5zPW51bGxdIGFuIGFycmF5IG9mIGNvbHVtbnMgaWRzIHRvIGF1dG8gc2l6ZSBvciBudWxsIHRvIGF1dG8gc2l6ZSBhbGwgY29sdW1uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfYXV0b1NpemVDb2x1bW5zKGlkLCBza2lwSGVhZGVyID0gZmFsc2UsIGNvbHVtbnMgPSBudWxsKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuICBjb25zdCBjb2x1bW5zQVBJID0gb3B0aW9ucy5jb2x1bW5BcGk7XG5cbiAgaWYgKCEoY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCkpIHtcbiAgICBjb25zdCBhbGxDb2x1bW5JZHMgPSBbXTtcblxuICAgIGNvbHVtbnNBUEkuZ2V0QWxsQ29sdW1ucygpLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgIGFsbENvbHVtbklkcy5wdXNoKGNvbHVtbi5jb2xJZCk7XG4gICAgfSk7XG5cbiAgICBjb2x1bW5zQVBJLmF1dG9TaXplQ29sdW1ucyhhbGxDb2x1bW5JZHMsIEJvb2xlYW4oc2tpcEhlYWRlcikpO1xuICB9IGVsc2Uge1xuICAgIGNvbHVtbnNBUEkuYXV0b1NpemVDb2x1bW5zKGNvbHVtbnMsIEJvb2xlYW4oc2tpcEhlYWRlcikpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRWaXNpYmxlQ29sdW1uKGlkLCBjb2x1bW5JZCkge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmFwaS5lbnN1cmVDb2x1bW5WaXNpYmxlKGNvbHVtbklkKTtcbn1cblxuLyoqXG4gKiBTZXQgQ29sdW1uIFdpZHRoXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gY29sdW1uSWQgVGhlIGNvbHVtbiBpZFxuICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfSB3aWR0aCBUaGUgbmV3IGNvbHVtbiB3aWR0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0Q29sdW1uV2lkdGgoaWQsIGNvbHVtbklkLCB3aWR0aCkge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbHVtbkFwaS5zZXRDb2x1bW5XaWR0aChjb2x1bW5JZCwgTnVtYmVyKHdpZHRoKSk7XG59XG5cbi8qKlxuICogUGluIENvbHVtblxuICpcbiAqIFBpbiBhIGNvbHVtbiB0byBhIHNwZWNpZmljIGRpcmVjdGlvblxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IGNvbHVtbklkIFRoZSBjb2x1bW4gaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBwaW4gVGhlIHBpbiBkaXJlY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3BpbkNvbHVtbihpZCwgY29sdW1uSWQsIHBpbikge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbHVtbkFwaS5zZXRDb2x1bW5QaW5uZWQoY29sdW1uSWQsIHBpbik7XG59XG5cbi8qKlxuICogTW92ZSBDb2x1bW5cbiAqXG4gKiBNb3ZlIGNvbHVtbiB0byBhIHNwZWNpZmljIGluZGV4XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gY29sdW1uSWQgVGhlIGNvbHVtbiBpZFxuICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfSB0b0luZGV4IFRoZSBuZXcgY29sdW1uIGluZGV4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19tb3ZlQ29sdW1uKGlkLCBjb2x1bW5JZCwgdG9JbmRleCkge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbHVtbkFwaS5tb3ZlQ29sdW1uKGNvbHVtbklkLCB0b0luZGV4KTtcbn1cblxuLyoqXG4gKiBTaG93IC8gSGlkZSBzZWxlY3Rpb24gY2hlY2tib3ggYmFzZWQgb24gdGhlIGZpcnN0IGNvbHVtblxuICpcbiAqIFRoZSBmdW5jdGlvbiBtYWtlIHN1cmUgdGhhdCB0aGUgc2VsZWN0aW9uIGNoZWNrYm94IGlzIGFsd2F5cyBzaG93biBvbiB0aGVcbiAqIGZpcnN0IGNvbHVtblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbVxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgd2hlbiBmaXJzdCBjb2x1bW4gLCBmYWxzZSBpZiBub3QgdGhlIGZpcnN0IGNvbHVtbiBvciBpZiB0aGVcbiAqICAgICAgICAgICAgICAgICAgIGdyaWQncyBgQ29udGV4dC5zaG93U2VsZWN0aW9uQ2hlY2tib3hgIGlzIGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19pc1Nob3dTZWxlY3Rpb25DaGVja2JveChwYXJhbSkge1xuICBpZiAoIXBhcmFtLmNvbnRleHQuc2hvd1NlbGVjdGlvbkNoZWNrYm94KSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3QgY29sdW1ucyA9IHBhcmFtLmNvbHVtbkFwaS5nZXRBbGxHcmlkQ29sdW1ucygpO1xuXG4gIHJldHVybiBjb2x1bW5zWzBdLmNvbERlZi5maWVsZCA9PT0gcGFyYW0uY29sRGVmLmZpZWxkO1xufVxuXG4vKipcbiAqIFNob3cgLyBIaWRlIGhlYWRlciBzZWxlY3Rpb24gY2hlY2tib3ggYmFzZWQgb24gdGhlIGZpcnN0IGNvbHVtblxuICpcbiAqIFRoZSBmdW5jdGlvbiBtYWtlIHN1cmUgdGhhdCB0aGUgaGVhZGVyIHNlbGVjdGlvbiBjaGVja2JveCBpcyBhbHdheXMgc2hvd24gb24gdGhlXG4gKiBmaXJzdCBjb2x1bW5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1cbiAqXG4gKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIHdoZW4gZmlyc3QgY29sdW1uICwgZmFsc2UgaWYgbm90IHRoZSBmaXJzdCBjb2x1bW4gb3IgaWYgdGhlXG4gKiAgICAgICAgICAgICAgICAgICBncmlkJ3MgYENvbnRleHQuc2hvd0hlYWRlclNlbGVjdGlvbkNoZWNrYm94YCBpcyBmYWxzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfaXNIZWFkZXJDaGVja2JveFNlbGVjdGlvbihwYXJhbSkge1xuICBjb25zdCBjb250ZXh0ID0gcGFyYW0uYXBpLmdyaWRPcHRpb25zV3JhcHBlci5ncmlkT3B0aW9ucy5jb250ZXh0O1xuXG4gIGlmICghY29udGV4dC5zaG93SGVhZGVyU2VsZWN0aW9uQ2hlY2tib3gpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBjb2x1bW5zID0gcGFyYW0uY29sdW1uQXBpLmdldEFsbEdyaWRDb2x1bW5zKCk7XG5cbiAgcmV0dXJuIGNvbHVtbnNbMF0uY29sRGVmLmZpZWxkID09PSBwYXJhbS5jb2xEZWYuZmllbGQ7XG59XG5cbi8qKlxuICogRW5hYmxlIHJvdyBncm91cGluZyBmb3IgY29sdW1uc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IGNvbHVtbnMgIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBjb2x1bW5zXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHNldCAgV2hlbiB0cnVlICwgYHNldFJvd0dyb3VwQ29sdW1uc2Agd2lsbCBiZSB1c2VkICwgYGFkZFJvd0dyb3VwQ29sdW1uc2Agb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19hZGRSb3dHcm91cENvbHVtbihpZCwgY29sdW1ucywgc2V0KSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29sdW1uQXBpW1xuICAgIHNldCA/IFwic2V0Um93R3JvdXBDb2x1bW5zXCIgOiBcImFkZFJvd0dyb3VwQ29sdW1uc1wiXG4gIF0oY29sdW1ucy5zcGxpdChcIixcIikubWFwKGkgPT4gaS50cmltKCkpKTtcbn1cblxuLyoqXG4gKiBEaXNhYmxlIHJvdyBncm91cGluZyBmb3IgY29sdW1uc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IGNvbHVtbnMgIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBjb2x1bW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19yZW1vdmVSb3dHcm91cENvbHVtbihpZCwgY29sdW1ucykge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbHVtbkFwaS5yZW1vdmVSb3dHcm91cENvbHVtbnMoXG4gICAgY29sdW1ucy5zcGxpdChcIixcIikubWFwKGkgPT4gaS50cmltKCkpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19nZXRQaXZvdE1vZGUoaWQpIHtcbiAgcmV0dXJuIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29sdW1uQXBpLmlzUGl2b3RNb2RlKCk7XG59XG5cbi8qKlxuICogRW5hYmxlIC8gZGlzYmFsZSBwaXZvdCBtb2RlXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIHRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge0Jvb2xlYW59IG1vZGUgd2hlbiB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRQaXZvdE1vZGUoaWQsIG1vZGUpIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb2x1bW5BcGkuc2V0UGl2b3RNb2RlKCEhTnVtYmVyKG1vZGUpKTtcbn1cblxuLyoqXG4gKiBFbmFibGUgcGl2b3QgZm9yIGNvbHVtbnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5zICBhIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgY29sdW1uc1xuICogQHBhcmFtIHtCb29sZWFufSBzZXQgIFdoZW4gdHJ1ZSAsIGBhZGRQaXZvdENvbHVtbnNgIHdpbGwgYmUgdXNlZCAsIGBzZXRQaXZvdENvbHVtbnNgIG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfYWRkUGl2b3RDb2x1bW5zKGlkLCBjb2x1bW5zLCBzZXQpIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb2x1bW5BcGlbc2V0ID8gXCJzZXRQaXZvdENvbHVtbnNcIiA6IFwiYWRkUGl2b3RDb2x1bW5zXCJdKFxuICAgIGNvbHVtbnMuc3BsaXQoXCIsXCIpLm1hcChpID0+IGkudHJpbSgpKVxuICApO1xufVxuXG4vKipcbiAqIERpc2FibGUgcGl2b3QgZm9yIGNvbHVtbnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5zICBhIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgY29sdW1uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfcmVtb3ZlUGl2b3RDb2x1bW5zKGlkLCBjb2x1bW5zKSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29sdW1uQXBpLnJlbW92ZVBpdm90Q29sdW1ucyhcbiAgICBjb2x1bW5zLnNwbGl0KFwiLFwiKS5tYXAoaSA9PiBpLnRyaW0oKSlcbiAgKTtcbn1cblxuLyoqXG4gKiBFbmFibGUgdmFsdWUgZm9yIGNvbHVtbnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5zICBhIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgY29sdW1uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfYWRkVmFsdWVDb2x1bW5zKGlkLCBjb2x1bW5zLCBzZXQpIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb2x1bW5BcGkuYWRkVmFsdWVDb2x1bW5zKFxuICAgIGNvbHVtbnMuc3BsaXQoXCIsXCIpLm1hcChpID0+IGkudHJpbSgpKVxuICApO1xufVxuXG4vKipcbiAqIERpc2FibGUgdmFsdWUgZm9yIGNvbHVtbnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5zICBhIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgY29sdW1uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfcmVtb3ZlVmFsdWVDb2x1bW5zKGlkLCBjb2x1bW5zKSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29sdW1uQXBpLnJlbW92ZVZhbHVlQ29sdW1ucyhcbiAgICBjb2x1bW5zLnNwbGl0KFwiLFwiKS5tYXAoaSA9PiBpLnRyaW0oKSlcbiAgKTtcbn1cbiIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfZ2V0R3JpZCB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuXG4vKipcbiAqIFVwZGF0ZSBjb250ZXh0IFxuICogXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgVGhlIGdyaWQncyBpZCBcbiAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgVGhlIGNvbnRleHQncyBrZXkgdG8gdXBkYXRlXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgIFRoZSBuZXcgY29udGV4dCdzIHZhbHVlIFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfdXBkYXRlQ29udGV4dChpZCwga2V5LCB2YWx1ZSkge1xuXHRnd19nZXRHcmlkKGlkKVxuXHRcdC5vcHRpb25zXG5cdFx0LmNvbnRleHRba2V5XSA9IEpTT04ucGFyc2UodmFsdWUpO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBCYXNpcy5BZ0dyaWRDb21wb25lbnRzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5leHBvcnQgKiBmcm9tICcuL2luaXQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcm93cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGxzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RhdGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90b29scGFuZWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0dXNiYXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVybGF5cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFydHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9qc3MuanMnOyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QEJhc2lzLkFnR3JpZENvbXBvbmVudHMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgeyBnd19leHRlbmRDb2x1bW5EZWZpbml0aW9ucyB9IGZyb20gXCIuL2NvbHVtbnNcIjtcbmltcG9ydCB7IGd3X25hdmlnYXRlVG9OZXh0Um93IH0gICAgICAgZnJvbSBcIi4vcm93c1wiO1xuaW1wb3J0IHsgZ3dfZ2V0Q29udGV4dE1lbnUgfSAgICAgICAgICBmcm9tIFwiLi9tZW51c1wiO1xuaW1wb3J0IHsgZ3dfZ2V0Q2hhcnRUb29sYmFySXRlbXMgfSAgICBmcm9tIFwiLi9jaGFydHNcIjtcbmltcG9ydCB7IGd3X2dldERvY3VtZW50LCBnd19nZXRXaW5kb3cgLCBnd19hZGRHcmlkfSAgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5pbXBvcnQge1xuICBnd19vblJvd0RvdWJsZUNsaWNrZWQsXG4gIGd3X29uU2VsZWN0aW9uQ2hhbmdlZCxcbiAgZ3dfb25SYW5nZVNlbGVjdGlvbkNoYW5nZWQsXG4gIGd3X29uQ2VsbENsaWNrRXZlbnQsXG4gIGd3X29uQ2VsbEVkaXRpbmdFdmVudCxcbiAgZ3dfb25Sb3dFZGl0aW5nRXZlbnQsXG4gIGd3X29uUmVhZHlFdmVudCxcbiAgZ3dfZGVib3VuY2Vcbn0gZnJvbSBcImV2ZW50c1wiO1xuaW1wb3J0IHRlbXBsYXRlIGZyb20gJ2xvZGFzaC1lcy90ZW1wbGF0ZSdcblxuY29uc3QgeyBkZWVwUGFyc2VKc29uIH0gPSByZXF1aXJlKFwiZGVlcC1wYXJzZS1qc29uXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ3dfaW5pdChvcHRpb25zLCBsaWNlbnNlICwgZGF0YSkge1xuICBcbiAgLy8gc2V0IHRoZSBsaWNlbnNlIGtleSBmb3IgZW50ZXJwcmlzZSB2ZXJzaW9uXG4gIGlmIChhZ0dyaWQuTGljZW5zZU1hbmFnZXIgJiYgbGljZW5zZSlcbiAgICBhZ0dyaWQuTGljZW5zZU1hbmFnZXIuc2V0TGljZW5zZUtleShsaWNlbnNlKTtcblxuICBjb25zdCBpZCAgICAgICAgICAgICAgPSBvcHRpb25zLmNvbnRleHQuaWQ7XG4gIGNvbnN0IGNvbnRhaW5lciAgICAgICA9IGd3X2dldERvY3VtZW50KCkuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAvLyB3ZSBtYWtlIHRoZSBncmlkIG9wdGlvbnMgYXZhaWxhYmxlIGFzIHNvb24gYXMgcG9zc2libGUgXG4gIGNvbnN0IGdyaWQgICAgICAgICAgICA9IGd3X2FkZEdyaWQoaWQsIHtcbiAgICBjb250YWluZXIsXG4gICAgb3B0aW9uc1xuICB9KTtcblxuICAvLyBUT0RPOiB1c2UgYWcgZ3JpZCBkZXN0cm95XG4gIGNvbnRhaW5lci5pbm5lckhUTUwgICA9ICcnO1xuXG4gIGNvbnN0IHBhcnNlZE9wdGlvbnMgICA9IGd3X3BhcnNlT3B0aW9ucyhvcHRpb25zKTtcbiAgcGFyc2VkT3B0aW9ucy5yb3dEYXRhID0gZGF0YTtcblxuICBjb25zdCBpbnN0YW5jZSAgICAgICAgPSBuZXcgYWdHcmlkLkdyaWQoY29udGFpbmVyLCBwYXJzZWRPcHRpb25zKTtcbiAgZ3JpZC5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICBncmlkLm9wdGlvbnMgID0gcGFyc2VkT3B0aW9ucztcblxuICBjb25zb2xlLmxvZyhcbiAgICBgJWMgR3JpZCBbJHtpZH1dIHNldHRpbmdzIDogYFxuICAgICwgJ2JhY2tncm91bmQ6ICMyMjI7IGNvbG9yOiAjYmFkYTU1J1xuICAgICwgcGFyc2VkT3B0aW9uc1xuICApO1xufVxuXG4vKipcbiAqIFBhcnNlIE9wdGlvbnNcbiAqIFxuICogUGFyc2UgdGhlIGdyaWQgb3B0aW9ucyBhbmQgcmV0dXJuIFxuICogYW4gb2JqZWN0IHdoaWNoIGNhbiBiZSBwYXNzZWQgdG8gdGhlIGdyaWRcbiAqIFxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgR3JpZCBvcHRpb25zIGFzIEpzb24gT2JqZWN0XG4gKiBcbiAqIEByZXR1cm4ge09iamVjdH0gb3B0aW9ucyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZ3dfcGFyc2VPcHRpb25zKG9wdGlvbnMpIHtcbiAgY29uc3QgZGVlcFBhcnNlZE9wdGlvbnMgICAgID0gZGVlcFBhcnNlSnNvbihKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XG4gIGNvbnN0IGlkICAgICAgICAgICAgICAgICAgICA9IGRlZXBQYXJzZWRPcHRpb25zLmNvbnRleHQuaWQ7XG4gIGNvbnN0IGdldERhdGFQYXRoVGVtcGxhdGUgICA9IGRlZXBQYXJzZWRPcHRpb25zLmNvbnRleHQuZ2V0RGF0YVBhdGggfHwgXCJcIjtcbiAgLy8gVE9ETzogZG8gd2UgbmVlZCB0byBjb250cm9sIHRoaXMgc2V0dGluZyBmcm9tIEJCaiA/XG4gIGNvbnN0IGRlYm91bmNlRHVyYXRpb24gICAgICA9IDI1MDtcbiAgY29uc3QgZmluYWxPcHRpb25zID0ge1xuICAgIC4uLmRlZXBQYXJzZWRPcHRpb25zICxcbiAgICAuLi57XG4gICAgICBnZXREb2N1bWVudDogICAgICAgICAgICAoKSAgICAgPT4gICBnd19nZXREb2N1bWVudCgpLFxuICAgICAgb25DZWxsRWRpdGluZ1N0YXJ0ZWQ6ICAgZSAgICAgID0+IHsgZ3dfb25DZWxsRWRpdGluZ0V2ZW50KGlkLCBlKSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgIG9uQ2VsbEVkaXRpbmdTdG9wcGVkOiAgIGUgICAgICA9PiB7IGd3X29uQ2VsbEVkaXRpbmdFdmVudChpZCwgZSkgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBvbkNlbGxWYWx1ZUNoYW5nZWQ6ICAgICBlICAgICAgPT4geyBnd19vbkNlbGxFZGl0aW5nRXZlbnQoaWQsIGUpIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLFxuICAgICAgb25Sb3dFZGl0aW5nU3RhcnRlZDogICAgZSAgICAgID0+IHsgZ3dfb25Sb3dFZGl0aW5nRXZlbnQoaWQsIGUpICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIG9uUm93RWRpdGluZ1N0b3BwZWQ6ICAgIGUgICAgICA9PiB7IGd3X29uUm93RWRpdGluZ0V2ZW50KGlkLCBlKSAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBvblJvd1ZhbHVlQ2hhbmdlZDogICAgICBlICAgICAgPT4geyBnd19vblJvd0VkaXRpbmdFdmVudChpZCwgZSkgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLFxuICAgICAgb25DZWxsQ2xpY2tlZDogICAgICAgICAgZSAgICAgID0+IHsgZ3dfb25DZWxsQ2xpY2tFdmVudChpZCwgZSkgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIG9uQ2VsbERvdWJsZUNsaWNrZWQ6ICAgIGUgICAgICA9PiB7IGd3X29uQ2VsbENsaWNrRXZlbnQoaWQsIGUpICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBvbkdyaWRSZWFkeTogICAgICAgICAgICBlICAgICAgPT4geyBnd19vblJlYWR5RXZlbnQoaWQsIGUpICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLFxuICAgICAgZ2V0Um93Tm9kZUlkOiAgICAgICAgICAgZGF0YSAgID0+ICAgZ3dfZ2V0Um93Tm9kZUlkKGlkLCBkYXRhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIGdldENvbnRleHRNZW51SXRlbXM6ICAgIHBhcmFtcyA9PiAgIGd3X2dldENvbnRleHRNZW51KGlkLCBwYXJhbXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBcImdldENoYXJ0VG9vbGJhckl0ZW1zXCI6ICAgICAgICAgICAgIGd3X2dldENoYXJ0VG9vbGJhckl0ZW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBcInBvcHVwUGFyZW50XCI6ICAgICAgICAgICAgICAgICAgICAgIGd3X2dldERvY3VtZW50KCkuYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBcIm9uUm93RG91YmxlQ2xpY2tlZFwiOiAgICAgICAgICAgICAgIGd3X2RlYm91bmNlKGd3X29uUm93RG91YmxlQ2xpY2tlZCwgZGVib3VuY2VEdXJhdGlvbikgICAgICAgICAsXG4gICAgICBcIm9uU2VsZWN0aW9uQ2hhbmdlZFwiOiAgICAgICAgICAgICAgIGd3X2RlYm91bmNlKGd3X29uU2VsZWN0aW9uQ2hhbmdlZCwgZGVib3VuY2VEdXJhdGlvbikgICAgICAgICAsXG4gICAgICBcIm9uUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkXCI6ICAgICAgICAgIGd3X2RlYm91bmNlKGd3X29uUmFuZ2VTZWxlY3Rpb25DaGFuZ2VkICwgZGVib3VuY2VEdXJhdGlvbikgICAsXG4gICAgICBcImNvbXBvbmVudHNcIjoge1xuICAgICAgICBcIkJvb2xlYW5GaWx0ZXJcIiAgICAgICAgICAgICAgIDogQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5Cb29sZWFuRmlsdGVyICAgICAgICAsXG4gICAgICAgIFwiQm9vbGVhblJlbmRlcmVyXCIgICAgICAgICAgICAgOiBCYXNpcy5BZ0dyaWRDb21wb25lbnRzLkJvb2xlYW5SZW5kZXJlciAgICAgICxcbiAgICAgICAgXCJCb29sZWFuRWRpdG9yXCIgICAgICAgICAgICAgICA6IEJhc2lzLkFnR3JpZENvbXBvbmVudHMuQm9vbGVhbkVkaXRvciAgICAgICAgLFxuICAgICAgICBcIk51bWJlckVkaXRvclwiICAgICAgICAgICAgICAgIDogQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5OdW1iZXJFZGl0b3IgICAgICAgICAsXG4gICAgICAgIFwiVGV4dEVkaXRvclwiICAgICAgICAgICAgICAgICAgOiBCYXNpcy5BZ0dyaWRDb21wb25lbnRzLlRleHRFZGl0b3IgICAgICAgICAgICxcbiAgICAgICAgXCJEYXRlVGltZUVkaXRvclwiICAgICAgICAgICAgICA6IEJhc2lzLkFnR3JpZENvbXBvbmVudHMuRGF0ZVRpbWVFZGl0b3IgICAgICAgLFxuICAgICAgICBcIkRhdGVUaW1lRmlsdGVyXCIgICAgICAgICAgICAgIDogQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5EYXRlVGltZUZpbHRlciAgICAgICAsXG4gICAgICAgIFwiSW1hZ2VSZW5kZXJlclwiICAgICAgICAgICAgICAgOiBCYXNpcy5BZ0dyaWRDb21wb25lbnRzLkltYWdlUmVuZGVyZXIgICAgICAgICxcbiAgICAgICAgXCJUZW1wbGF0ZVJlbmRlcmVyXCIgICAgICAgICAgICA6IEJhc2lzLkFnR3JpZENvbXBvbmVudHMuVGVtcGxhdGVSZW5kZXJlciAgICAgLFxuICAgICAgfSxcbiAgICAgIFwiY29udGV4dFwiOiB7XG4gICAgICAgIC4uLmRlZXBQYXJzZWRPcHRpb25zLmNvbnRleHQsXG4gICAgICAgIC4uLntcbiAgICAgICAgICBcImRvY3VtZW50XCI6IGd3X2dldERvY3VtZW50KCksXG4gICAgICAgICAgXCJ3aW5kb3dcIiAgOiBnd19nZXRXaW5kb3coKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGlmIChcbiAgICBmaW5hbE9wdGlvbnMuY29udGV4dC5oYXNPd25Qcm9wZXJ0eShcIm5hdmlnYXRlVG9OZXh0Q2VsbFwiKSAmJlxuICAgIGZpbmFsT3B0aW9ucy5jb250ZXh0Lm5hdmlnYXRlVG9OZXh0Q2VsbFxuICApIHtcbiAgICBmaW5hbE9wdGlvbnMubmF2aWdhdGVUb05leHRDZWxsID0gcGFyYW1zID0+IHsgcmV0dXJuIGd3X25hdmlnYXRlVG9OZXh0Um93KGlkLCBwYXJhbXMpIH07XG4gIH1cblxuICBpZiAoZ2V0RGF0YVBhdGhUZW1wbGF0ZSAmJiBmaW5hbE9wdGlvbnMudHJlZURhdGEpIHtcbiAgICBjb25zdCBnZXREYXRhUGF0aFRlbXBsYXRlQ29tcGxpZWQgPSB0ZW1wbGF0ZShnZXREYXRhUGF0aFRlbXBsYXRlKTtcbiAgICBmaW5hbE9wdGlvbnMuZ2V0RGF0YVBhdGggPSBkYXRhID0+IGdldERhdGFQYXRoVGVtcGxhdGVDb21wbGllZCh7IGRhdGE6IGRhdGEgfSk7XG4gIH1cblxuICAvLyBleHRlbmQgdGhlIGNvbHVtbiBkZWZpbml0aW9uc1xuICBnd19leHRlbmRDb2x1bW5EZWZpbml0aW9ucyhmaW5hbE9wdGlvbnMuY29sdW1uRGVmcyk7XG5cbiAgcmV0dXJuIGZpbmFsT3B0aW9ucztcbn0iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCAnZXhwb3NlLWxvYWRlcj9qc3MhanNzL2pzcy5qcyc7XG5pbXBvcnQge2d3X2dldERvY3VtZW50fSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcblxuLyoqXG4gKiBGb3JtYXRlIHRoZSBjc3Mgc2VsZWN0b3IgXG4gKiBcbiAqIENoZWNrIGlmIHRoZSBjc3Mgc2VsZWN0b3Igc3RhcnRzIHdpdGggZG90ICwgaWYgbm90IGFkZCBvbmUgYW5kIHJldHVybiB0aGUgXG4gKiBmb3JtYXR0ZWQgbmFtZSBcbiAqIFxuICogQHBhcmFtIHsqfSBzZWxlY3RvciBcbiAqL1xuZnVuY3Rpb24gZm9ybWF0U2VsZWN0b3Ioc2VsZWN0b3Ipe1xuICByZXR1cm4gc2VsZWN0b3Iuc3RhcnRzV2l0aChcIi5cIikgPyBzZWxlY3RvciA6IGAuJHtzZWxlY3Rvcn1gO1xufVxuXG4vKipcbiAqIEFkZCBuZXcgc3R5bGUgXG4gKiBcbiAqIEFkZCBuZXcgc3R5bGUgdG8gdGhlIGRvY3VtZW50IFxuICogXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3IgY3NzIHNlbGVjdG9yXG4gKiBAcGFyYW0ge1N0cmluZ30gcnVsZXMgSnNvbiBzdHJpbmcgZm9yIGFuIGFycmF5IG9mIHJ1bGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRTdHlsZShzZWxlY3RvciwgcnVsZXMpIHtcbiAganNzLmZvckRvY3VtZW50KGd3X2dldERvY3VtZW50KCkpLnNldChmb3JtYXRTZWxlY3RvcihzZWxlY3RvciksIEpTT04ucGFyc2UocnVsZXMpKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgc3R5bGVcbiAqIFxuICogUmVtb3ZlIGFkZGVkIHN0eWxlIGZyb20gdGhlcyBkb2N1bWVudCBcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yIGNzcyBzZWxlY3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfcmVtb3ZlU3R5bGUoc2VsZWN0b3IpIHtcbiAganNzLmZvckRvY3VtZW50KGd3X2dldERvY3VtZW50KCkpLnJlbW92ZShmb3JtYXRTZWxlY3RvcihzZWxlY3RvcikpO1xufVxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19nZXRHcmlkIH0gZnJvbSBcIi4vdXRpbGl0aWVzXCJcbmltcG9ydCB7XG4gIGd3X3BhcnNlTm9kZUZyb21FdmVudCxcbiAgZ3dfc2VuZEV2ZW50XG59IGZyb20gXCJldmVudHMvdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19nZXRDb250ZXh0TWVudShncmlkSWQsIHBhcmFtcykge1xuXG4gIGNvbnN0IGJ1aWxkQ29udGV4dE1lbnVBY3Rpb24gPSAocGFyYW1zLCBpZCkgPT4ge1xuXG4gICAgcmV0dXJuICgpID0+IHtcblxuICAgICAgY29uc3Qgbm9kZSA9IGd3X3BhcnNlTm9kZUZyb21FdmVudChwYXJhbXMpO1xuICAgICAgY29uc3QgY29sSWQgPSBwYXJhbXMuY29sdW1uLmNvbElkO1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXMudmFsdWU7XG5cbiAgICAgIGd3X3NlbmRFdmVudChnd19nZXRHcmlkKGdyaWRJZCkub3B0aW9ucy5jb250ZXh0LCB7XG4gICAgICAgICd0eXBlJzogJ2d3LmNvbnRleHRtZW51JyxcbiAgICAgICAgJ2RldGFpbCc6IEpTT04uc3RyaW5naWZ5KHsgcjogbm9kZSwgYzogY29sSWQsIHY6dmFsdWUsIGk6aWQgfSlcbiAgICAgIH0sIGlkKTtcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IHBhcnNlTWVudSA9IChtZW51KSA9PiB7XG4gICAgbWVudS5mb3JFYWNoKGl0ZW0gPT4ge1xuXG4gICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSByZXR1cm47XG5cbiAgICAgIGl0ZW1bJ2FjdGlvbiddID0gYnVpbGRDb250ZXh0TWVudUFjdGlvbihwYXJhbXMsIGl0ZW0uaWQpO1xuXG4gICAgICBpZiAoaXRlbVsnY3NzQ2xhc3NlcyddICYmICFBcnJheS5pc0FycmF5KGl0ZW1bJ2Nzc0NsYXNzZXMnXSkpXG4gICAgICAgIGl0ZW1bJ2Nzc0NsYXNzZXMnXSA9IGl0ZW1bJ2Nzc0NsYXNzZXMnXS5zcGxpdChcIiBcIik7XG5cbiAgICAgIGlmIChpdGVtWydzdWJNZW51J10pIGl0ZW1bJ3N1Yk1lbnUnXSA9IHBhcnNlTWVudShpdGVtWydzdWJNZW51J10pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lbnU7XG4gIH07XG5cbiAgcmV0dXJuIHBhcnNlTWVudShnd19nZXRHcmlkKGdyaWRJZCkub3B0aW9ucy5jb250ZXh0LmNvbnRleHRNZW51KTtcbn1cbiIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfZ2V0R3JpZCB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuXG4vKipcbiAqIFNob3cgbG9hZGluZyBvdmVybGF5XG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2hvd0xvYWRpbmdPdmVybGF5KGlkKSB7XG4gIGd3X2dldEdyaWQoaWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLnNob3dMb2FkaW5nT3ZlcmxheSgpO1xufVxuXG4vKipcbiAqIFNob3cgJ25vIHJvd3MnIG92ZXJsYXlcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIHRoZSBncmlkIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zaG93Tm9Sb3dzT3ZlcmxheShpZCkge1xuICBnd19nZXRHcmlkKGlkKVxuICAgIC5vcHRpb25zXG4gICAgLmFwaVxuICAgIC5zaG93Tm9Sb3dzT3ZlcmxheSgpO1xufVxuXG4vKipcbiAqIENsZWFyIGFsbCBvdmVybGF5c1xuICogXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2hpZGVPdmVybGF5KGlkKSB7XG4gIGd3X2dldEdyaWQoaWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLmhpZGVPdmVybGF5KCk7XG59IiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7IGd3X2dldEdyaWQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcbmltcG9ydCB7IGd3X3BhcnNlTm9kZSB9IGZyb20gXCJldmVudHMvdXRpbGl0aWVzXCI7XG5cbmNvbnN0IHsgZGVlcFBhcnNlSnNvbiB9ID0gcmVxdWlyZShcImRlZXAtcGFyc2UtanNvblwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGd3X3NldFF1aWNrRmlsdGVyKGlkLCBmaWx0ZXIpIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5hcGkuc2V0UXVpY2tGaWx0ZXIoZmlsdGVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGd3X2V4cGFuZEFsbChpZCkge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmFwaS5leHBhbmRBbGwoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGd3X2NvbGxhcHNlQWxsKGlkKSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuYXBpLmNvbGxhcHNlQWxsKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRWaXNpYmxlUm93KGlkLCBpbmRleCwgcG9zaXRpb24pIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5hcGkuZW5zdXJlSW5kZXhWaXNpYmxlKGluZGV4LCBwb3NpdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19uYXZpZ2F0ZVRvTmV4dFJvdyhpZCwgcGFyYW1zKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuICBsZXQgcHJldmlvdXNDZWxsID0gcGFyYW1zLnByZXZpb3VzQ2VsbFBvc2l0aW9uO1xuICBsZXQgc3VnZ2VzdGVkTmV4dENlbGwgPSBwYXJhbXMubmV4dENlbGxQb3NpdGlvbjtcblxuICBjb25zdCBLRVlfVVAgPSAzODtcbiAgY29uc3QgS0VZX0RPV04gPSA0MDtcbiAgY29uc3QgS0VZX0xFRlQgPSAzNztcbiAgY29uc3QgS0VZX1JJR0hUID0gMzk7XG5cbiAgc3dpdGNoIChwYXJhbXMua2V5KSB7XG4gICAgY2FzZSBLRVlfRE9XTjpcbiAgICAgIC8vIHNldCBzZWxlY3RlZCBjZWxsIG9uIGN1cnJlbnQgY2VsbCArIDFcbiAgICAgIG9wdGlvbnMuYXBpLmZvckVhY2hOb2RlKG5vZGUgPT4ge1xuICAgICAgICBpZiAocHJldmlvdXNDZWxsLnJvd0luZGV4ICsgMSA9PT0gbm9kZS5yb3dJbmRleCkge1xuICAgICAgICAgIG5vZGUuc2V0U2VsZWN0ZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN1Z2dlc3RlZE5leHRDZWxsO1xuICAgIGNhc2UgS0VZX1VQOlxuICAgICAgLy8gc2V0IHNlbGVjdGVkIGNlbGwgb24gY3VycmVudCBjZWxsIC0gMVxuICAgICAgb3B0aW9ucy5hcGkuZm9yRWFjaE5vZGUobm9kZSA9PiB7XG4gICAgICAgIGlmIChwcmV2aW91c0NlbGwucm93SW5kZXggLSAxID09PSBub2RlLnJvd0luZGV4KSB7XG4gICAgICAgICAgbm9kZS5zZXRTZWxlY3RlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gc3VnZ2VzdGVkTmV4dENlbGw7XG4gICAgY2FzZSBLRVlfTEVGVDpcbiAgICBjYXNlIEtFWV9SSUdIVDpcbiAgICAgIHJldHVybiBzdWdnZXN0ZWROZXh0Q2VsbDtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IGhhdmUgc3VwZXIgc3RyYW5nZSBrZXlib2FyZFwiKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYSByb3cgYmFzZWQgb24gYGdldFJvd05vZGVJZGAgY29uZmlnIGRlZmluZWQgaW4gdGhlIGdyaWQgY29udGV4dFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gZGF0YSAgdGhlIGRhdGEgcm93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19nZXRSb3dOb2RlSWQoaWQsIGRhdGEpIHtcbiAgcmV0dXJuIGRhdGFbZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb250ZXh0LmdldFJvd05vZGVJZF07XG59XG5cbi8qKlxuICogVXBkYXRlIHRoZSBncmlkJ3MgZGF0YSBzZXRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtPYmplY3R9IGpzb24ganNvbiBvYmplY3Qgd2hpY2ggY29udGFpbnMgdGhlIG5ldyBkYXRhc2V0IHRvIHVwZGF0ZSB0aGUgZ3JpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0Um93c0RhdGEoaWQsIGpzb24pIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgb3B0aW9ucy5hcGkuc2V0Um93RGF0YShqc29uKTtcbiAgb3B0aW9ucy5yb3dEYXRhID0ganNvbjtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSByb3cgb24gdGhlIGdyaWRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtPYmplY3R9IHJvdyAgYSByb3cgZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0Um93RGF0YShpZCwgcm93KSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuXG4gIG9wdGlvbnMuYXBpLnVwZGF0ZVJvd0RhdGEoeyB1cGRhdGU6IFtyb3ddIH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZSBvbmUgb3IgbW9yZSByb3dzIGZyb20gdGhlIGdyaWRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtBcnJheX0gaW5kZXhlcyAgYW4gYXJyYXkgb2Ygcm93cyBpbmRleGVzIG9yIGFuIGFycmF5IG9mIHJvd3Mga2V5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfcmVtb3ZlUm93cyhpZCwgaW5kZXhlcykge1xuICBjb25zdCBvcHRpb25zID0gZ3dfZ2V0R3JpZChpZCkub3B0aW9ucztcbiAgbGV0IGl0ZW1zID0gW107XG5cbiAgaW5kZXhlcy5mb3JFYWNoKGluZGV4ID0+IHtcbiAgICBpdGVtcy5wdXNoKG9wdGlvbnMuYXBpLmdldFJvd05vZGUoaW5kZXgpLmRhdGEpO1xuICB9KTtcblxuICBvcHRpb25zLmFwaS51cGRhdGVSb3dEYXRhKHsgcmVtb3ZlOiBpdGVtcyB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYSByb3cgdG8gZ3JpZCBhdCB0aGUgZ2l2ZW4gaW5kZXhcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtOdW1iZXJ9IGluZGV4ICBUaGUgaW5zZXJ0aW9uIHBvc2l0aW9uXG4gKiBAcGFyYW0ge0FycmF5fSByb3dzICBBbiBhcnJheSBvZiByb3dzIHRvIGFkZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfYWRkUm93cyhpZCwgaW5kZXgsIHJvd3MpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgb3B0aW9ucy5hcGkudXBkYXRlUm93RGF0YSh7IGFkZDogcm93cywgYWRkSW5kZXg6IGluZGV4IH0pO1xufVxuXG4vKipcbiAqIFNldCB0aGUgaGVpZ2h0IG9mIGFsbCByb3dzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIHRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0IHRoZSByb3cgaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRSb3dzSGVpZ2h0KGlkLCBoZWlnaHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgb3B0aW9ucy5hcGkuZm9yRWFjaE5vZGUocm93ID0+IHtcbiAgICByb3cuc2V0Um93SGVpZ2h0KGhlaWdodCk7XG4gIH0pO1xuICBvcHRpb25zLmFwaS5vblJvd0hlaWdodENoYW5nZWQoKTtcbn1cblxuLyoqXG4gKiBTZXQgdGhlIGdpdmVuIHJvdyBoZWlnaHRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7TnVtYmVyfSBpbmRleCB0aGUgcm93IGluZGV4XG4gKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0IHRoZSBuZXcgaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRSb3dIZWlnaHQoaWQsIGluZGV4LCBoZWlnaHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG4gIGNvbnN0IHJvdyA9IG9wdGlvbnMuYXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgoaW5kZXgpO1xuXG4gIGlmIChyb3cpIHtcbiAgICByb3cuc2V0Um93SGVpZ2h0KGhlaWdodCk7XG4gICAgb3B0aW9ucy5hcGkub25Sb3dIZWlnaHRDaGFuZ2VkKCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gc2V0IGhlaWdodCBmb3Igcm93ICR7aW5kZXh9LiBSb3cgY2FuIG5vdCBiZSBmb3VuZGApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRTZWxlY3RlZFJvd3MoaWQsIHJvd3MpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgb3B0aW9ucy5hcGkuZm9yRWFjaE5vZGVBZnRlckZpbHRlckFuZFNvcnQobm9kZSA9PiB7XG4gICAgaWYgKHJvd3MuaW5kZXhPZihub2RlLnJvd0luZGV4KSA+IC0xKSB7XG4gICAgICBub2RlLnNldFNlbGVjdGVkKHRydWUpO1xuICAgICAgbm9kZS5leHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9KTtcbiAgb3B0aW9ucy5hcGkub25Hcm91cEV4cGFuZGVkT3JDb2xsYXBzZWQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGd3X3NlbGVjdEFsbChpZCwgZmlsdGVyZWQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgaWYgKDEgPT09IGZpbHRlcmVkKSB7XG4gICAgb3B0aW9ucy5hcGkuc2VsZWN0QWxsRmlsdGVyZWQoKTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zLmFwaS5zZWxlY3RBbGwoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfZGVzZWxlY3RBbGwoaWQsIGZpbHRlcmVkKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuXG4gIGlmICgxID09PSBmaWx0ZXJlZCkge1xuICAgIG9wdGlvbnMuYXBpLmRlc2VsZWN0QWxsRmlsdGVyZWQoKTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zLmFwaS5kZXNlbGVjdEFsbCgpO1xuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IHNlbGVjdGVkIHJvd3NcbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gaWQgZ3JpZCdzIGlkXG4gKlxuICogQHJldHVybnMge1N0cmluZ30gIHNlbGVjdGVkIHJvd3MgYXMgSlNPTlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0U2VsZWN0ZWRSb3dzKGlkKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuICBjb25zdCBub2RlcyA9IG9wdGlvbnMuYXBpLmdldFNlbGVjdGVkTm9kZXMoKTtcbiAgbGV0IHBhcnNlZCA9IFtdO1xuXG4gIG5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgcGFyc2VkLnB1c2goZ3dfcGFyc2VOb2RlKG5vZGUsIG9wdGlvbnMuY29udGV4dCkpO1xuICB9KTtcblxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocGFyc2VkKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGxhc3Qgc2VsZWN0ZWQgcm93XG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGlkIGdyaWQncyBpZFxuICpcbiAqIEByZXR1cm5zIHtTdHJpbmd9IHNlbGVjdGVkIHJvdyBhcyBKU09OXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19nZXRTZWxlY3RlZFJvdyhpZCkge1xuICBjb25zdCByb3dzID0gSlNPTi5wYXJzZShnd19nZXRTZWxlY3RlZFJvd3MoaWQpKTtcblxuICBpZiAocm93cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocm93c1tyb3dzLmxlbmd0aCAtIDFdKTtcbiAgfVxuXG4gIHJldHVybiBcIlwiO1xufVxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19nZXRHcmlkIH0gZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRTdGF0ZShpZCwgc3RhdGUpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgdHJ5IHtcbiAgICBvcHRpb25zLmNvbHVtbkFwaS5zZXRDb2x1bW5TdGF0ZShzdGF0ZS5jb2x1bW5zKTtcbiAgICBvcHRpb25zLmNvbHVtbkFwaS5zZXRDb2x1bW5Hcm91cFN0YXRlKHN0YXRlLmdyb3Vwcyk7XG4gICAgb3B0aW9ucy5hcGkuc2V0U29ydE1vZGVsKHN0YXRlLnNvcnQpO1xuICAgIG9wdGlvbnMuYXBpLnNldEZpbHRlck1vZGVsKHN0YXRlLmZpbHRlcnMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gcGFyc2UgZ3JpZCBzdGF0ZSBmcm9tIEpTT04nLCBlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0U3RhdGUoaWQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG4gIGNvbnN0IGNvbHVtbnMgPSBvcHRpb25zLmNvbHVtbkFwaS5nZXRDb2x1bW5TdGF0ZSgpO1xuICBjb25zdCBncm91cHMgPSBvcHRpb25zLmNvbHVtbkFwaS5nZXRDb2x1bW5Hcm91cFN0YXRlKCk7XG4gIGNvbnN0IHNvcnQgPSBvcHRpb25zLmFwaS5nZXRTb3J0TW9kZWwoKTtcbiAgY29uc3QgZmlsdGVycyA9IG9wdGlvbnMuYXBpLmdldEZpbHRlck1vZGVsKCk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgY29sdW1ucyxcbiAgICAgIGdyb3VwcyxcbiAgICAgIHNvcnQsXG4gICAgICBmaWx0ZXJzXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBjb252ZXJ0IHRoZSBncmlkIHN0YXRlIHRvIGpzb24nLCBlKTtcbiAgfVxufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfZ2V0R3JpZCB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0U3RhdHVzYmFyQ29tcG9uZW50VmlzaWJpbGl0eShpZCwga2V5LCB2aXNpYmlsaXR5KSB7XG5cdGd3X2dldEdyaWQoaWQpXG5cdFx0Lm9wdGlvbnNcblx0XHQuYXBpXG5cdFx0LmdldFN0YXR1c1BhbmVsKGtleSlcblx0XHQuc2V0VmlzaWJsZShCb29sZWFuKHZpc2liaWxpdHkpKTtcbn0iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X2dldEdyaWQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGd3X3NldFNpZGVCYXJWaXNpYmxlKGlkLCB2YWx1ZSkge1xuICBnd19nZXRHcmlkKGlkKVxuICAgIC5vcHRpb25zXG4gICAgLmFwaVxuICAgIC5zZXRTaWRlQmFyVmlzaWJsZShCb29sZWFuKHZhbHVlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19vcGVuVG9vbHBhbmVsKGdyaWRJZCwgdG9vbHBhbmVsSWQpIHtcbiAgZ3dfZ2V0R3JpZChncmlkSWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLm9wZW5Ub29sUGFuZWwodG9vbHBhbmVsSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfY2xvc2VUb29scGFuZWwoZ3JpZElkLCB0b29scGFuZWxJZCkge1xuICBnd19nZXRHcmlkKGdyaWRJZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAuY2xvc2VUb29sUGFuZWwodG9vbHBhbmVsSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0RnVuY3Rpb25zUmVhZE9ubHkoaWQsIHJlYWRvbmx5KSB7XG4gIGd3X2dldEdyaWQoaWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLnNldEZ1bmN0aW9uc1JlYWRPbmx5KEJvb2xlYW4ocmVhZG9ubHkpKTtcbn0iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuLyoqXG4gKiBHZXQgZG9jdW1lbnQgXG4gKiBcbiAqIEdldCB0aGUgZG9jdW1lbnQgaW5zdGFuY2UgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IEJCaiBlbnZcbiAqIFxuICogQHJldHVybiB7T2JqZWN0fSBEb2N1bWVudCBpbnN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0RG9jdW1lbnQoKSB7XG4gIHJldHVybiB0eXBlb2YgJGRvYyAhPT0gJ3VuZGVmaW5lZCcgPyAkZG9jIDogZG9jdW1lbnQ7XG59XG5cbi8qKlxuICogR2V0IHdpbmRvdyBcbiAqIFxuICogR2V0IHRoZSB3aW5kb3cgaW5zdGFuY2UgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IEJCaiBlbnZcbiAqIFxuICogQHJldHVybiB7T2JqZWN0fSBXaW5kb3cgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2dldFdpbmRvdygpIHtcbiAgcmV0dXJuIHR5cGVvZiAkd2luICE9PSAndW5kZWZpbmVkJyA/ICR3aW4gOiB3aW5kb3c7XG59XG5cbi8qKlxuICogRXNjYXBlIFZhbHVlIFxuICogXG4gKiBDaGFuZ2UgbnVsbCBhbmQgdW5kZWZpbmVkIHRvIGVtcHR5IHN0cmluZyBcbiAqIFxuICogQHBhcmFtIHsqfSB2YWx1ZSBcbiAqIFxuICogQHJldHVybiB7U3RyaW5nfSBlc2NhcGVkIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19lc2NhcGUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6ICcnO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgdW5pcXVlIHV1aWQgXG4gKiBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEwNTAzNC9jcmVhdGUtZ3VpZC11dWlkLWluLWphdmFzY3JpcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3V1aWQoKSB7XG4gIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHtcbiAgICB2YXIgciA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDAsIHYgPSBjID09ICd4JyA/IHIgOiAociAmIDB4MyB8IDB4OCk7XG4gICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgR3JpZCBcbiAqIFxuICogUmV0cmlldmUgdGhlIGdyaWQgaW5zdGFuY2UgZnJvbSBgd2luZG93LkJCakdyaWRFeFdpZGdldGAgYXJyYXkgXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBcbiAqIEByZXR1cm4ge09iamVjdHxudWxsfSBUaGUgZ3JpZCdzIGluc3RhbmNlIG9mciBudWxsXG4gKiBAdGhyb3dzIFR5cGVFcnJvciB3aGVuIHRoZSBncmlkIGluc3RhbmNlIGlzIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0R3JpZChpZCkge1xuICB3aW5kb3cuQkJqR3JpZEV4V2lkZ2V0ID0gd2luZG93LkJCakdyaWRFeFdpZGdldCB8fCB7fTtcbiAgY29uc3QgZ3JpZCA9ICB3aW5kb3cuQkJqR3JpZEV4V2lkZ2V0W2lkXSB8fCBudWxsO1xuXG4gIGlmICghZ3JpZCkge1xuICAgIGNvbnN0IHJlZ2lzdGVyZWRHcmlkcyA9IEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHdpbmRvdy5CQmpHcmlkRXhXaWRnZXQpKTtcbiAgICAvL2dldEZ1bmNBcmdzKGZ1bmMpLmZvckVhY2goKGtleSwgaSkgPT4gYXJnc09ialtrZXldID0gYXJnc1tpXSk7XG4gICAgXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbmBcXG5cXG5bR3JpZCBOb3QgRm91bmRdIFRoZSBtZXRob2QgYXNrZWQgZm9yIG5vbi1leGlzdGVudCBncmlkIGluc3RhbmNlLlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuUmVxdWlyZWQgR3JpZCBJZCA6ICR7aWR9ICAgXG5SZWdpc3RlcmVkIEdyaWRzIDogJHtyZWdpc3RlcmVkR3JpZHN9XG5gKTtcbiAgfVxuICBcbiAgcmV0dXJuIGdyaWQ7XG59XG5cbi8qKlxuICogQWRkIEdyaWQgXG4gKiBcbiAqIFN0b3JlIGEgbmV3IGdyaWQgaW5zdGFuY2UgYnkgaW4gdGhlIGB3aW5kb3cuQkJqR3JpZEV4V2lkZ2V0YCBhcnJheSBcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zICBUaGUgZ3JpZCdzIG9wdGlvbnNcbiAqIFxuICogQHJldHVybiB7T2JqZWN0fSBTdG9yZWQgZ3JpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfYWRkR3JpZChpZCwgb3B0aW9ucykge1xuICB3aW5kb3cuQkJqR3JpZEV4V2lkZ2V0ID0gd2luZG93LkJCakdyaWRFeFdpZGdldCB8fCB7fTtcbiAgd2luZG93LkJCakdyaWRFeFdpZGdldFtpZF0gPSBvcHRpb25zO1xuICBcbiAgcmV0dXJuIGd3X2dldEdyaWQoaWQpO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuLy8gc2VsZWN0aW9uIGNvbnN0YW50c1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX1JPV19DTElDSyA9IDY5O1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX1JPV19ET1VCTEVfQ0xJQ0sgPSA1MjtcbmV4cG9ydCBjb25zdCBHV19FVkVOVF9DRUxMX0NMSUNLID0gNTAwMTtcbmV4cG9ydCBjb25zdCBHV19FVkVOVF9DRUxMX0RPVUJMRV9DTElDSyA9IDUwMDI7XG5cbi8vIGVkaXRpbmcgY29uc3RhbnRzXG5leHBvcnQgY29uc3QgR1dfRVZFTlRfQ0VMTF9FRElUSU5HX1NUQVJURUQgPSA1MDAzO1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX0NFTExfRURJVElOR19TVE9QUEVEID0gNTAwNDtcbmV4cG9ydCBjb25zdCBHV19FVkVOVF9DRUxMX1ZBTFVFX0NIQU5HRUQgPSA1MDA1O1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX1JPV19FRElUSU5HX1NUQVJURUQgID0gNTAwNjtcbmV4cG9ydCBjb25zdCBHV19FVkVOVF9ST1dfRURJVElOR19TVE9QUEVEID0gNTAwNztcblxuLy8gc3RhdGUgY29uc3RhbnRzXG5leHBvcnQgY29uc3QgR1dfRVZFTlRfR1JJRF9TVEFURV9DSEFOR0UgPSA1MDA4O1xuXG4vLyByYW5nZSBzZWxlY3Rpb25cbmV4cG9ydCBjb25zdCBHV19FVkVOVF9SQU5HRV9TRUxFQ1RJT05fQ0hBTkdFRCA9IDUwMDk7XG5cbi8vIGtleWJvYXJkIGV2ZW50c1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX0tFWVBSRVNTID0gNTAxMDsiLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X3NlbmRFdmVudCwgZ3dfcGFyc2VOb2RlRnJvbUV2ZW50IH0gZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBnd19lc2NhcGUsIGd3X2dldEdyaWQgfSBmcm9tIFwiYXBpL3V0aWxpdGllc1wiO1xuaW1wb3J0IHtcbiAgR1dfRVZFTlRfQ0VMTF9FRElUSU5HX1NUQVJURUQsXG4gIEdXX0VWRU5UX0NFTExfRURJVElOR19TVE9QUEVELFxuICBHV19FVkVOVF9DRUxMX1ZBTFVFX0NIQU5HRUQsXG4gIEdXX0VWRU5UX1JPV19FRElUSU5HX1NUQVJURUQsXG4gIEdXX0VWRU5UX1JPV19FRElUSU5HX1NUT1BQRURcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IENFTExfRURJVElOR19FVkVOVFNfTUFQID0ge1xuICAnY2VsbEVkaXRpbmdTdGFydGVkJyAgOiBHV19FVkVOVF9DRUxMX0VESVRJTkdfU1RBUlRFRCxcbiAgJ2NlbGxFZGl0aW5nU3RvcHBlZCcgIDogR1dfRVZFTlRfQ0VMTF9FRElUSU5HX1NUT1BQRUQsXG4gICdjZWxsVmFsdWVDaGFuZ2VkJyAgOiBHV19FVkVOVF9DRUxMX1ZBTFVFX0NIQU5HRUQsXG59O1xuXG5jb25zdCBST1dfRURJVElOR19FVkVOVFNfTUFQID0ge1xuICAncm93RWRpdGluZ1N0YXJ0ZWQnICA6IEdXX0VWRU5UX1JPV19FRElUSU5HX1NUQVJURUQsXG4gICdyb3dFZGl0aW5nU3RvcHBlZCcgIDogR1dfRVZFTlRfUk9XX0VESVRJTkdfU1RPUFBFRCxcbn07XG5cbi8qKlxuICogQW4gaGFuZGxlciBmb3IgdGhlIGdyaWQgYGNlbGxFZGl0aW5nU3RhcnRlZGAgLCBgY2VsbEVkaXRpbmdTdG9wcGVkYCBhbmQgXG4gKiBgY2VsbFZhbHVlQ2hhbmdlZGAgZXZlbnRzXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gZSAgVGhlIGV2ZW50IHBheWxvYWRcbiAqIFxuICogQGxpc3RlbnMgYWdHcmlkLmNlbGxFZGl0aW5nU3RhcnRlZFxuICogQGxpc3RlbnMgYWdHcmlkLmNlbGxFZGl0aW5nU3RvcHBlZFxuICogQGxpc3RlbnMgYWdHcmlkLmNlbGxWYWx1ZUNoYW5nZWRcbiAqIFxuICogQGZpcmVzIGd3LmNlbGxFZGl0aW5nU3RhcnRlZFxuICogQGZpcmVzIGd3LmNlbGxFZGl0aW5nU3RvcHBlZFxuICogQGZpcmVzIGd3LmNlbGxWYWx1ZUNoYW5nZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uQ2VsbEVkaXRpbmdFdmVudChpZCwgZSkge1xuXG4gIGNvbnN0IHZhbHVlID0gZS5oYXNPd25Qcm9wZXJ0eShcIm5ld1ZhbHVlXCIpID8gZ3dfZXNjYXBlKGUubmV3VmFsdWUpIDogZ3dfZXNjYXBlKGUudmFsdWUpO1xuICBjb25zdCBvbGRWYWx1ZSA9IGUuaGFzT3duUHJvcGVydHkoXCJvbGRWYWx1ZVwiKSA/ICBnd19lc2NhcGUoZS5vbGRWYWx1ZSkgOiAoZS5oYXNPd25Qcm9wZXJ0eShcIm5ld1ZhbHVlXCIpID8gZ3dfZXNjYXBlKGUubmV3VmFsdWUpIDogZ3dfZXNjYXBlKGUudmFsdWUpKVxuXG4gIC8vaWYgKHZhbHVlID09PSBvbGRWYWx1ZSkgcmV0dXJuO1xuXG4gIGNvbnN0IHBhcnNlZCA9IGd3X3BhcnNlTm9kZUZyb21FdmVudChlKTtcbiAgY29uc3QgdHlwZSA9IGUudHlwZTtcbiAgY29uc3QgY29sSWQgPSBlLmNvbHVtbi5jb2xJZDtcblxuICBpZiAocGFyc2VkKSB7XG4gICAgZ3dfc2VuZEV2ZW50KFxuICAgICAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb250ZXh0LFxuICAgICAge1xuICAgICAgICAndHlwZSc6IGBndy4ke3R5cGV9YCxcbiAgICAgICAgJ2RldGFpbCc6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICByOiBwYXJzZWQsIC8vIHJvd1xuICAgICAgICAgIHY6IHZhbHVlLCAvLyBuZXcgdmFsdWVcbiAgICAgICAgICBvOiBvbGRWYWx1ZSwgLy8gb2xkIHZhbHVlXG4gICAgICAgICAgYzogY29sSWQgLy8gY29sdW1uXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgQ0VMTF9FRElUSU5HX0VWRU5UU19NQVBbdHlwZV1cbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQW4gaGFuZGxlciBmb3IgdGhlIGdyaWQgYHJvd0VkaXRpbmdTdGFydGVkYCAsIGByb3dFZGl0aW5nU3RvcHBlZGAgZXZlbnRzXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gZSAgVGhlIGV2ZW50IHBheWxvYWRcbiAqIFxuICogQGxpc3RlbnMgYWdHcmlkLnJvd0VkaXRpbmdTdGFydGVkXG4gKiBAbGlzdGVucyBhZ0dyaWQucm93RWRpdGluZ1N0b3BwZWRcbiAqIFxuICogQGZpcmVzIGd3LnJvd0VkaXRpbmdTdGFydGVkXG4gKiBAZmlyZXMgZ3cucm93RWRpdGluZ1N0b3BwZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uUm93RWRpdGluZ0V2ZW50KGlkLCBlKSB7XG4gIGNvbnN0IHBhcnNlZCA9IGd3X3BhcnNlTm9kZUZyb21FdmVudChlKTtcblxuICBpZiAocGFyc2VkKSB7XG4gICAgY29uc3QgdHlwZSA9IGUudHlwZTtcbiAgICBnd19zZW5kRXZlbnQoXG4gICAgICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbnRleHQsXG4gICAgICB7XG4gICAgICAgICd0eXBlJzogYGd3LiR7ZS50eXBlfWAsXG4gICAgICAgICdkZXRhaWwnOiBKU09OLnN0cmluZ2lmeShwYXJzZWQpXG4gICAgICB9LFxuICAgICAgUk9XX0VESVRJTkdfRVZFTlRTX01BUFt0eXBlXVxuICAgICk7XG4gIH1cbn1cblxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQge1xuXHRnd19vblJvd0RvdWJsZUNsaWNrZWQsXG5cdGd3X29uU2VsZWN0aW9uQ2hhbmdlZCxcblx0Z3dfb25DZWxsQ2xpY2tFdmVudCxcblx0Z3dfb25SYW5nZVNlbGVjdGlvbkNoYW5nZWRcbn0gZnJvbSBcIi4vc2VsZWN0aW9uc1wiO1xuXG5pbXBvcnQge1xuXHRnd19vbkNlbGxFZGl0aW5nRXZlbnQsXG5cdGd3X29uUm93RWRpdGluZ0V2ZW50XG59IGZyb20gXCIuL2VkaXRpbmdcIjtcblxuaW1wb3J0IHtcblx0Z3dfb25SZWFkeUV2ZW50XG59IGZyb20gXCIuL3JlYWR5XCI7XG5cbmltcG9ydCB7XG5cdGd3X2RlYm91bmNlXG59IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuXG5leHBvcnQge1xuXHRnd19vblJvd0RvdWJsZUNsaWNrZWQsXG5cdGd3X29uU2VsZWN0aW9uQ2hhbmdlZCxcblx0Z3dfb25SYW5nZVNlbGVjdGlvbkNoYW5nZWQsXG5cdGd3X29uQ2VsbENsaWNrRXZlbnQsXG5cdGd3X29uQ2VsbEVkaXRpbmdFdmVudCxcblx0Z3dfb25Sb3dFZGl0aW5nRXZlbnQsXG5cdGd3X29uUmVhZHlFdmVudCxcblx0Z3dfZGVib3VuY2Vcbn07IiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19zZW5kRXZlbnQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcbmltcG9ydCB7IEdXX0VWRU5UX0tFWVBSRVNTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnd19nZXRHcmlkIH0gZnJvbSBcImFwaS91dGlsaXRpZXNcIjtcblxuLyoqXG4gKiBDb21wb3NlIGEgbW9kZWwgb2YgdGhlIGtleWRvd24gZXZlbnQgYW5kIHNlbmQgaXQgdG8gQkJqXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCAgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtFdmVudH0ga2V5ZG93bkV2ZW50IGtleWRvd24gZXZlbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uS2V5ZG93bihpZCwga2V5ZG93bkV2ZW50KSB7XG4gIGd3X3NlbmRFdmVudChcbiAgICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbnRleHQsXG4gICAge1xuICAgICAgJ3R5cGUnOiBgZ3cua2V5cHJlc3NgLFxuICAgICAgJ2RldGFpbCc6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgYzogIGtleWRvd25FdmVudC5rZXksXG4gICAgICAgIGtjOiBrZXlkb3duRXZlbnQud2hpY2ggfHwgTnVtYmVyKGtleWRvd25FdmVudC5rZXlDb2RlKSxcbiAgICAgICAgYWs6IGtleWRvd25FdmVudC5hbHRLZXksXG4gICAgICAgIHNrOiBrZXlkb3duRXZlbnQuc2hpZnRLZXksXG4gICAgICAgIGNrOiBrZXlkb3duRXZlbnQuY3RybEtleSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBHV19FVkVOVF9LRVlQUkVTU1xuICApO1xufVxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19kZWJvdW5jZSB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ3dfb25TdGF0ZUNoYW5nZWQgfSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHsgZ3dfb25LZXlkb3duIH0gZnJvbSBcIi4va2V5Ym9hcmRcIjtcbmltcG9ydCB7IGd3X2dldEdyaWQgfSBmcm9tIFwiYXBpL3V0aWxpdGllc1wiO1xuXG4vKipcbiAqIE9uIFJlYWR5IEV2ZW50IFxuICogXG4gKiBUaGUgbWV0aG9kIHdpbGwgaWdub3JlIGZpcnN0IHJlYWR5IGV2ZW50IGFuZCB0aGVuIHJlZ2lzdGVyIGEgZGVib3VuY2VkIHN0YXRlXG4gKiBjYWxsYmFjayB0byBzZW5kIHN0YXRlIGV2ZW50cyB0byBCQmpcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBlICBUaGUgZXZlbnQgcGF5bG9hZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfb25SZWFkeUV2ZW50KGlkLCBlKSB7XG4gIGNvbnN0IGdyaWQgPSBnd19nZXRHcmlkKGlkKTtcblxuICAvLyByZWdpc3RlciBzdGF0ZSBkZWJvdW5jZSBtb25pdG9yIFxuICBjb25zdCBzdGF0ZURlYm91bmNlID0gZ3dfZGVib3VuY2UoY2hhbmdlRXZlbnQgPT4ge1xuICAgIGd3X29uU3RhdGVDaGFuZ2VkKGlkLCBjaGFuZ2VFdmVudCk7XG4gIH0sIDUwMCk7XG5cbiAgW1xuICAgICdzb3J0Q2hhbmdlZCcsXG4gICAgJ2ZpbHRlckNoYW5nZWQnLFxuICAgICdjb2x1bW5WaXNpYmxlJyxcbiAgICAnY29sdW1uUGlubmVkJyxcbiAgICAnY29sdW1uUmVzaXplZCcsXG4gICAgJ2NvbHVtbk1vdmVkJyxcbiAgICAnbmV3Q29sdW1uc0xvYWRlZCcsXG4gICAgJ2dyaWRDb2x1bW5zQ2hhbmdlZCcsXG4gICAgJ2Rpc3BsYXllZENvbHVtbnNDaGFuZ2VkJyxcbiAgICAndmlydHVhbENvbHVtbnNDaGFuZ2VkJyxcbiAgICAnY29sdW1uRXZlcnl0aGluZ0NoYW5nZWQnLFxuICAgIC8vJ2dyaWRTaXplQ2hhbmdlZCcsXG4gICAgJ2V4cGFuZE9yQ29sbGFwc2VBbGwnLFxuICAgIC8vJ3Rvb2xQYW5lbFZpc2libGVDaGFuZ2VkJ1xuICBdLmZvckVhY2goZXZlbnQgPT4ge1xuICAgIGdyaWQub3B0aW9ucy5hcGkuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgc3RhdGVEZWJvdW5jZSk7XG4gIH0pO1xuXG4gIC8vIHJlZ2lzdGVyIGtleWJvYXJkIGRlYm91bmNlIG1vbml0b3IgXG4gIGNvbnN0IGtleWJvYXJkRGVib3VuY2UgPSBnd19kZWJvdW5jZShrZXlkb3duRXZlbnQgPT4ge1xuICAgIGd3X29uS2V5ZG93bihpZCwga2V5ZG93bkV2ZW50KTtcbiAgfSAsIDUwMCk7XG5cbiAgZ3JpZC5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGtleWJvYXJkRGVib3VuY2UpO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfc2VuZEV2ZW50LCBnd19wYXJzZU5vZGVGcm9tRXZlbnQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcbmltcG9ydCB7IGd3X2VzY2FwZSwgZ3dfZ2V0R3JpZCB9IGZyb20gXCJhcGkvdXRpbGl0aWVzXCI7XG5pbXBvcnQge1xuICBHV19FVkVOVF9ST1dfQ0xJQ0ssXG4gIEdXX0VWRU5UX1JPV19ET1VCTEVfQ0xJQ0ssXG4gIEdXX0VWRU5UX0NFTExfQ0xJQ0ssXG4gIEdXX0VWRU5UX0NFTExfRE9VQkxFX0NMSUNLLFxuICBHV19FVkVOVF9SQU5HRV9TRUxFQ1RJT05fQ0hBTkdFRFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgQ0VMTF9DTElDS0lOR19FVkVOVFNfTUFQID0ge1xuICAnY2VsbENsaWNrZWQnOiBHV19FVkVOVF9DRUxMX0NMSUNLLFxuICAnY2VsbERvdWJsZUNsaWNrZWQnOiBHV19FVkVOVF9DRUxMX0RPVUJMRV9DTElDSyxcbn07XG5cbi8qKlxuICogQW4gaGFuZGxlciBmb3IgdGhlIGdyaWQgYHJvd0RvdWJsZUNsaWNrZWRgIGV2ZW50XG4gKiBcbiAqIFRoZSBmdW5jdGlvbiB3aWxsIHNlbmQgYSBiYmogZXZlbnQgd2l0aCBgR1dfTk9ERWAgYXMgcGF5bG9hZFxuICogXG4gKiBAcGFyYW0ge09iamVjdH0gZSBUaGUgZXZlbnQncyBwYXlsb2FkXG4gKiBcbiAqIEBsaXN0ZW5zIGFnR3JpZC5yb3dEb3VibGVDbGlja2VkXG4gKiBAZmlyZXMgZ3cucm93RG91YmxlQ2xpY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uUm93RG91YmxlQ2xpY2tlZChlKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBlLmFwaS5ncmlkT3B0aW9uc1dyYXBwZXIuZ3JpZE9wdGlvbnMuY29udGV4dDtcbiAgZ3dfc2VuZEV2ZW50KGNvbnRleHQsIHtcbiAgICAndHlwZSc6ICdndy5yb3dEb3VibGVDbGljaycsXG4gICAgJ2RldGFpbCc6ICcnXG4gIH0sIEdXX0VWRU5UX1JPV19ET1VCTEVfQ0xJQ0spO1xufVxuXG4vKipcbiAqIEEgaGFuZGxlciBmb3IgdGhlIGdyaWQgYHNlbGVjdGlvbkNoYW5nZWRgIGV2ZW50XG4gKiBcbiAqIEBwYXJhbSB7T2JqZWN0fSBlICBUaGUgZXZlbnQgcGF5bG9hZFxuICogXG4gKiBAbGlzdGVucyBhZ0dyaWQuc2VsZWN0aW9uQ2hhbmdlZFxuICogQGZpcmVzIGd3LnJvd1NlbGVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfb25TZWxlY3Rpb25DaGFuZ2VkKGUpIHtcbiAgY29uc3QgY29udGV4dCA9IGUuYXBpLmdyaWRPcHRpb25zV3JhcHBlci5ncmlkT3B0aW9ucy5jb250ZXh0O1xuICBnd19zZW5kRXZlbnQoY29udGV4dCwge1xuICAgICd0eXBlJzogJ2d3LnJvd1NlbGVjdCcsXG4gICAgJ2RldGFpbCc6ICcnXG4gIH0sIEdXX0VWRU5UX1JPV19DTElDSyk7XG59XG5cbi8qKlxuICogQSBoYW5kbGVyIGZvciB0aGUgZ3JpZCBgcmFuZ2VTZWxlY3Rpb25DaGFuZ2VkYCBldmVudFxuICogXG4gKiBAcGFyYW0ge09iamVjdH0gZSBcbiAqIFxuICogQGxpc3RlbnMgYWdHcmlkLnJhbmdlU2VsZWN0aW9uQ2hhbmdlZFxuICogQGZpcmVzIGd3LnJhbmdlU2VsZWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19vblJhbmdlU2VsZWN0aW9uQ2hhbmdlZChlKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBlLmFwaS5ncmlkT3B0aW9uc1dyYXBwZXIuZ3JpZE9wdGlvbnMuY29udGV4dDtcbiAgZ3dfc2VuZEV2ZW50KGNvbnRleHQsIHtcbiAgICAndHlwZSc6ICdndy5yYW5nZVNlbGVjdGlvbicsXG4gICAgJ2RldGFpbCc6ICcnXG4gIH0sIEdXX0VWRU5UX1JBTkdFX1NFTEVDVElPTl9DSEFOR0VEKTtcbn1cblxuLyoqXG4gKiBBIGhhbmRsZXIgZm9yIHRoZSBncmlkIGBjZWxsQ2xpY2tFdmVudGAgJiBgY2VsbERvdWJsZUNsaWNrZWRgIGV2ZW50XG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gZSAgVGhlIGV2ZW50IHBheWxvYWRcbiAqIFxuICogQGxpc3RlbnMgYWdHcmlkLmNlbGxDbGlja0V2ZW50XG4gKiBAbGlzdGVucyBhZ0dyaWQuY2VsbERvdWJsZUNsaWNrZWRcbiAqIFxuICogQGZpcmVzIGd3LmNlbGxDbGlja2VkXG4gKiBAZmlyZXMgZ3cuY2VsbERvdWJsZUNsaWNrZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uQ2VsbENsaWNrRXZlbnQoaWQsIGUpIHtcbiAgY29uc3QgcGFyc2VkID0gZ3dfcGFyc2VOb2RlRnJvbUV2ZW50KGUpO1xuXG4gIGlmIChwYXJzZWQpIHtcbiAgICBjb25zdCB0eXBlID0gZS50eXBlO1xuICAgIGd3X3NlbmRFdmVudChnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbnRleHQsIHtcbiAgICAgICd0eXBlJzogYGd3LiR7ZS50eXBlfWAsXG4gICAgICAnZGV0YWlsJzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICByOiBwYXJzZWQsIC8vIHJvd1xuICAgICAgICB2OiBnd19lc2NhcGUoZS52YWx1ZSksICAvLyBuZXcgdmFsdWVcbiAgICAgICAgbzogZ3dfZXNjYXBlKGUudmFsdWUpLCAvLyBvZGwgdmFsdWVcbiAgICAgICAgYzogZS5jb2x1bW4uY29sSWQgLy8gY29sdW1uc1xuICAgICAgfSlcbiAgICB9LCBDRUxMX0NMSUNLSU5HX0VWRU5UU19NQVBbdHlwZV0pO1xuICB9XG59XG4iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X3NlbmRFdmVudCB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ3dfZ2V0R3JpZCB9IGZyb20gXCJhcGkvdXRpbGl0aWVzXCI7XG5pbXBvcnQge1xuICBHV19FVkVOVF9HUklEX1NUQVRFX0NIQU5HRVxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBBbiBoYW5kbGVyIGZvciB0aGUgZ3JpZCBgc3RhdGVDaGFuZ2VkYCBldmVudHNcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBlICBUaGUgZXZlbnQgcGF5bG9hZFxuICogXG4gKiBAbGlzdGVucyBhZ0dyaWQuc3RhdGVDaGFuZ2VkXG4gKiBAbGlzdGVucyBhZ0dyaWQucm93RWRpdGluZ1N0b3BwZWRcbiAqIFxuICogQGZpcmVzIGd3LnN0YXRlQ2hhbmdlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfb25TdGF0ZUNoYW5nZWQoaWQsIGUpIHtcbiAgZ3dfc2VuZEV2ZW50KFxuICAgIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29udGV4dCxcbiAgICB7XG4gICAgICAndHlwZSc6ICdndy5zdGF0ZUNoYW5nZWQnLFxuICAgICAgJ2RldGFpbCc6IFtdXG4gICAgfSxcbiAgICBHV19FVkVOVF9HUklEX1NUQVRFX0NIQU5HRVxuICApO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfZ2V0RG9jdW1lbnQgfSBmcm9tIFwiYXBpL3V0aWxpdGllc1wiO1xuXG4vKiogaHR0cHM6Ly9kYXZpZHdhbHNoLm5hbWUvamF2YXNjcmlwdC1kZWJvdW5jZS1mdW5jdGlvbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2RlYm91bmNlKGZ1bmMsIHdhaXQsIGltbWVkaWF0ZSkge1xuICB2YXIgdGltZW91dDtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgdmFyIGxhdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICBpZiAoIWltbWVkaWF0ZSkgZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICB9O1xuICAgIHZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0O1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dChsYXRlciwgd2FpdCk7XG4gICAgaWYgKGNhbGxOb3cpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gIH07XG59XG5cbi8qKlxuICogU2VuZCBhbiBldmVudCB0byBCQmogc2lkZSBcbiAqIFxuICogVGhlIGZ1bmN0aW9uIHdpbGwgdHJpZ2dlciBhIGN1c3RvbSBjbGljayBldmVudCBvbiB0aGUgYGV2ZW50LWJyaWRnZS0ke2lkfWAgZGl2XG4gKiB0aGVuIHRoZSBkaXYgd2lsbCB1c2UgYmFzaXNEaXNwYXRjaEN1c3RvbUV2ZW50IHRvIGRpc3BhdGNoIHRoZSBldmVudCB0byBCQmpcbiAqIFxuICogQHBhcmFtIHtBcnJheX0gY29udGV4dCB0aGUgZ3JpZCdzIGNvbnRleHRcbiAqIEBwYXJhbSB7Kn0gcGF5bG9hZCB0aGUgZXZlbnQgcGF5bG9hZFxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50SWQgdGhlIGV2ZW50J3MgaWQgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZW5kRXZlbnQoY29udGV4dCwgcGF5bG9hZCA9IHt9LCBldmVudElkID0gW10pIHtcbiAgY29uc3QgcmVnaXN0ZXJlZEludGVyZXN0cyA9IGNvbnRleHQuaW50ZXJlc3RzIHx8IFtdO1xuXG4gIGlmIChyZWdpc3RlcmVkSW50ZXJlc3RzLmluY2x1ZGVzKGV2ZW50SWQpKSB7XG4gICAgY29uc3QgZGl2ID0gZ3dfZ2V0RG9jdW1lbnQoKS5nZXRFbGVtZW50QnlJZChgZXZlbnQtYnJpZGdlLSR7Y29udGV4dC5pZH1gKTtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnY2xpY2snKTtcblxuICAgIGV2ZW50LnBheWxvYWQgPSBwYXlsb2FkO1xuICAgIGRpdi5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEJCakdyaWRFeFdpZGdldFJvd1xuICogXG4gKiBAcHJvcGVydHkge251bWJlcn0gaWQgXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW5kZXggXG4gKiBAcHJvcGVydHkge251bWJlcn0gcGFyZW50S2V5IFxuICogQHByb3BlcnR5IHtudW1iZXJ9IGNoaWxkSW5kZXggXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHNlbGVjdGVkIFxuICovXG5cbi8qKlxuICogUGFyc2UgYSBub2RlIGFzIEJCakdyaWRFeFdpZGdldFJvd1xuICogXG4gKiBAcGFyYW0ge09iamVjdH0gbm9kZSBhZyBncmlkIG5vZGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0ICBhZyBncmlkIGNvbnRleHRcbiAqIFxuICogQHJldHVybnMge0JCakdyaWRFeFdpZGdldFJvd3xCb29sZWFufSBvYmplY3QgZm9ybWF0dGVkIGFzIEJCakdyaWRFeFdpZGdldFJvdy5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgaWYgdGhlIG5vZGUgaXMgZm9yIGdyb3VwIG5vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3BhcnNlTm9kZShub2RlLCBjb250ZXh0KSB7XG5cbiAgaWYgKHRydWUgPT09IG5vZGUuZ3JvdXApIHJldHVybiBmYWxzZTsgLy8gd2UgZG8gbm90IG1hbmFnZSBncm91cHNcblxuICBjb25zdCByb3dOb2RlSWQgPSBjb250ZXh0Lmhhc093blByb3BlcnR5KCdnZXRSb3dOb2RlSWQnKSAmJiBub2RlLmRhdGFbY29udGV4dC5nZXRSb3dOb2RlSWRdID9cbiAgICBub2RlLmRhdGFbY29udGV4dC5nZXRSb3dOb2RlSWRdIDogJyc7XG5cbiAgcmV0dXJuIHtcbiAgICBpOiByb3dOb2RlSWQgPyByb3dOb2RlSWQgOiBub2RlLmlkLCAvLyBpZFxuICAgIHg6IHJvd05vZGVJZCwgLy8gaW5kZXhcbiAgICBwOiBub2RlLmhhc093blByb3BlcnR5KCdwYXJlbnQnKSAmJiBub2RlLnBhcmVudC5oYXNPd25Qcm9wZXJ0eSgna2V5JykgP1xuICAgICAgbm9kZS5wYXJlbnQua2V5IDogJycsIC8vIHBhcmVudCBrZXlcbiAgICBjOiBub2RlLmNoaWxkSW5kZXgsIC8vY2hpbGRJbmRleFxuICAgIHM6IEJvb2xlYW4obm9kZS5zZWxlY3RlZCksIC8vIHNlbGVjdGVkIFxuICB9O1xufVxuXG4vKipcbiAqIFBhcnNlIG5vZGUgZnJvbSBldmVudCBcbiAqIFxuICogUGFyc2Ugbm9kZSBpbiB0aGUgcGFTc2VkIGV2ZW50IGFzIEJCakdyaWRFeFdpZGdldFJvd1xuICogXG4gKiBAcGFyYW0ge09iamVjdH0gZVxuICogXG4gKiBAcmV0dXJucyB7QkJqR3JpZEV4V2lkZ2V0Um93fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfcGFyc2VOb2RlRnJvbUV2ZW50KGUpIHtcbiAgcmV0dXJuIGd3X3BhcnNlTm9kZShlLm5vZGUsIGUuY29udGV4dCk7XG59XG4iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCAnZXhwb3NlLWxvYWRlcj9CQmouTWFza3MhYmJqLW1hc2tzL2Rpc3QvYmJqLW1hc2tzLmpzJ1xuaW1wb3J0ICdleHBvc2UtbG9hZGVyP0Jhc2lzLklucHV0TWFza2luZyFiYXNpcy1pbnB1dC1tYXNraW5nL2Rpc3QvYmFzaXMtaW5wdXQtbWFza2luZy5qcydcbmltcG9ydCAnZXhwb3NlLWxvYWRlcj9CYXNpcy5BZ0dyaWRDb21wb25lbnRzIWJhc2lzLWFnZ3JpZC1jb21wb25lbnRzL2Rpc3QvYmFzaXMtYWdncmlkLWNvbXBvbmVudHMuanMnO1xuXG5yZXF1aXJlKCdmbGF0cGlja3IvZGlzdC9mbGF0cGlja3IuY3NzJyk7XG5yZXF1aXJlKCdhZy1ncmlkLWNvbW11bml0eS9kaXN0L3N0eWxlcy9hZy1ncmlkLmNzcycpO1xucmVxdWlyZSgnYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9zdHlsZXMvYWctdGhlbWUtbWF0ZXJpYWwuY3NzJyk7XG5yZXF1aXJlKCdhZy1ncmlkLWNvbW11bml0eS9kaXN0L3N0eWxlcy9hZy10aGVtZS1iYWxoYW0uY3NzJyk7XG5yZXF1aXJlKCdhZy1ncmlkLWNvbW11bml0eS9kaXN0L3N0eWxlcy9hZy10aGVtZS1iYWxoYW0tZGFyay5jc3MnKTtcblxucmVxdWlyZSgnLi9zdHlsZS9jbGFzc2VzLmNzcycpO1xuXG5leHBvcnQgKiBmcm9tICcuL3BvbHlmaWxscy5qcyc7XG5leHBvcnQgKiBmcm9tIFwiLi9hcGlcIjtcbiIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuLyoqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9DdXN0b21FdmVudC9DdXN0b21FdmVudCAgKi9cbihmdW5jdGlvbiAoKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93LkN1c3RvbUV2ZW50ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBmYWxzZTsgLy9JZiBub3QgSUVcblxuICBmdW5jdGlvbiBDdXN0b21FdmVudChldmVudCwgcGFyYW1zKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IGZhbHNlLCBkZXRhaWw6IHVuZGVmaW5lZCB9O1xuICAgIHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnQ3VzdG9tRXZlbnQnKTtcbiAgICBldnQuaW5pdEN1c3RvbUV2ZW50KGV2ZW50LCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUsIHBhcmFtcy5kZXRhaWwpO1xuICAgIHJldHVybiBldnQ7XG4gIH1cblxuICBDdXN0b21FdmVudC5wcm90b3R5cGUgPSB3aW5kb3cuRXZlbnQucHJvdG90eXBlO1xuXG4gIHdpbmRvdy5DdXN0b21FdmVudCA9IEN1c3RvbUV2ZW50O1xufSkoKTtcblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbmlmICghQXJyYXkucHJvdG90eXBlLmZpbmQpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgJ2ZpbmQnLCB7XG4gICAgdmFsdWU6IGZ1bmN0aW9uIChwcmVkaWNhdGUpIHtcbiAgICAgIC8vIDEuIExldCBPIGJlID8gVG9PYmplY3QodGhpcyB2YWx1ZSkuXG4gICAgICBpZiAodGhpcyA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1widGhpc1wiIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG8gPSBPYmplY3QodGhpcyk7XG5cbiAgICAgIC8vIDIuIExldCBsZW4gYmUgPyBUb0xlbmd0aCg/IEdldChPLCBcImxlbmd0aFwiKSkuXG4gICAgICB2YXIgbGVuID0gby5sZW5ndGggPj4+IDA7XG5cbiAgICAgIC8vIDMuIElmIElzQ2FsbGFibGUocHJlZGljYXRlKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLlxuICAgICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncHJlZGljYXRlIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICAgICAgfVxuXG4gICAgICAvLyA0LiBJZiB0aGlzQXJnIHdhcyBzdXBwbGllZCwgbGV0IFQgYmUgdGhpc0FyZzsgZWxzZSBsZXQgVCBiZSB1bmRlZmluZWQuXG4gICAgICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50c1sxXTtcblxuICAgICAgLy8gNS4gTGV0IGsgYmUgMC5cbiAgICAgIHZhciBrID0gMDtcblxuICAgICAgLy8gNi4gUmVwZWF0LCB3aGlsZSBrIDwgbGVuXG4gICAgICB3aGlsZSAoayA8IGxlbikge1xuICAgICAgICAvLyBhLiBMZXQgUGsgYmUgISBUb1N0cmluZyhrKS5cbiAgICAgICAgLy8gYi4gTGV0IGtWYWx1ZSBiZSA/IEdldChPLCBQaykuXG4gICAgICAgIC8vIGMuIExldCB0ZXN0UmVzdWx0IGJlIFRvQm9vbGVhbig/IENhbGwocHJlZGljYXRlLCBULCDCqyBrVmFsdWUsIGssIE8gwrspKS5cbiAgICAgICAgLy8gZC4gSWYgdGVzdFJlc3VsdCBpcyB0cnVlLCByZXR1cm4ga1ZhbHVlLlxuICAgICAgICB2YXIga1ZhbHVlID0gb1trXTtcbiAgICAgICAgaWYgKHByZWRpY2F0ZS5jYWxsKHRoaXNBcmcsIGtWYWx1ZSwgaywgbykpIHtcbiAgICAgICAgICByZXR1cm4ga1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGUuIEluY3JlYXNlIGsgYnkgMS5cbiAgICAgICAgaysrO1xuICAgICAgfVxuXG4gICAgICAvLyA3LiBSZXR1cm4gdW5kZWZpbmVkLlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB3cml0YWJsZTogdHJ1ZVxuICB9KTtcbn0iLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vY2xhc3Nlcy5jc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWQgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vY2xhc3Nlcy5jc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9jbGFzc2VzLmNzc1wiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vLi4vLi4vYmFzaXMtaW5wdXQtbWFza2luZy9ub2RlX21vZHVsZXMvYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrL051bWJlck1hc2suanMiLCJ3ZWJwYWNrOi8vLy4vLi4vLi4vYmFzaXMtaW5wdXQtbWFza2luZy9ub2RlX21vZHVsZXMvYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrL2luZGV4LmpzIiwid2VicGFjazovLy8uLy4uLy4uL2Jhc2lzLWlucHV0LW1hc2tpbmcvbm9kZV9tb2R1bGVzL2Jiai1tYXNrcy9zcmMvU3RyaW5nTWFzay9TdHJpbmdNYXNrLmpzIiwid2VicGFjazovLy8uLy4uLy4uL2Jhc2lzLWlucHV0LW1hc2tpbmcvbm9kZV9tb2R1bGVzL2Jiai1tYXNrcy9zcmMvU3RyaW5nTWFzay9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9zdHlsZXMvYWctZ3JpZC5jc3M/YjQzNiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9zdHlsZXMvYWctdGhlbWUtYmFsaGFtLWRhcmsuY3NzP2NkYzEiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L2Rpc3Qvc3R5bGVzL2FnLXRoZW1lLWJhbGhhbS5jc3M/YjkzMCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9zdHlsZXMvYWctdGhlbWUtbWF0ZXJpYWwuY3NzPzExYWUiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrOi93ZWJwYWNrL2Jvb3RzdHJhcCA5OTA1NGJkNzlmMjNlYTBmMDk4OCIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQ29tcG9uZW50L2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9jb3JlLWRlY29yYXRvcnMvc3JjL2F1dG9iaW5kLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9jb3JlLWRlY29yYXRvcnMvc3JjL292ZXJyaWRlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VHZXRUYWcuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc09iamVjdExpa2UuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvY29yZS1kZWNvcmF0b3JzL3NyYy9wcml2YXRlL3V0aWxzLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU3ltYm9sLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Jvb3QuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lcS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlMaWtlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vX2xpYi90b0ludGVnZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2VzbS9fbGliL3JlcXVpcmVkQXJncy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhblN3aXRjaC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvVGVtcGxhdGVSZW5kZXJlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZGVmaW5lUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0Z1bmN0aW9uLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2ZyZWVHbG9iYWwuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VSZXN0LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXBwbHkuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNJdGVyYXRlZUNhbGwuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0xlbmd0aC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TGlrZUtleXMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL2hhcm1vbnktbW9kdWxlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzUHJvdG90eXBlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNFcnJvci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyQXJnLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TWFwLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlSW50ZXJwb2xhdGUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvY29yZS1kZWNvcmF0b3JzL3NyYy9yZWFkb25seS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvZGF0ZS1mbnMtdHovZXNtL3V0Y1RvWm9uZWRUaW1lL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy10ei9lc20vX2xpYi90elBhcnNlVGltZXpvbmUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0V2ZW50c01peGluL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlVGltZUlucHV0L2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhbkVkaXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhbkVkaXRvci9Cb29sZWFuRWRpdG9yLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9Db21wb25lbnQvQ29tcG9uZW50LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9Cb29sZWFuU3dpdGNoL0Jvb2xlYW5Td2l0Y2guanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2NvcmUtZGVjb3JhdG9ycy9zcmMvbGF6eS1pbml0aWFsaXplLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9Cb29sZWFuU3dpdGNoL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0Jvb2xlYW5Td2l0Y2gvc3R5bGUuc2Nzcz84ZjAyIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL3VybHMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0Jvb2xlYW5SZW5kZXJlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhblJlbmRlcmVyL0Jvb2xlYW5SZW5kZXJlci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhbkZpbHRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvQm9vbGVhbkZpbHRlci9Cb29sZWFuRmlsdGVyLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9Cb29sZWFuRmlsdGVyL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0Jvb2xlYW5GaWx0ZXIvc3R5bGUuc2Nzcz84MmRiIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9OdW1iZXJFZGl0b3IvaW5kZXguanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL051bWJlckVkaXRvci9OdW1iZXJFZGl0b3IuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL051bWJlckVkaXRvci9zdHlsZS5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9OdW1iZXJFZGl0b3Ivc3R5bGUuc2Nzcz80YjdjIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UZXh0RWRpdG9yL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UZXh0RWRpdG9yL1RleHRFZGl0b3IuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL1RleHRFZGl0b3Ivc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvVGV4dEVkaXRvci9zdHlsZS5zY3NzPzEzYzEiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL1RlbXBsYXRlUmVuZGVyZXIvVGVtcGxhdGVSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RlbXBsYXRlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXNzaWduSW5XaXRoLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcHlPYmplY3QuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0TmF0aXZlLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc05hdGl2ZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRSYXdUYWcuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fb2JqZWN0VG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNNYXNrZWQuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29yZUpzRGF0YS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRWYWx1ZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVBc3NpZ25lci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyUmVzdC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zZXRUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU2V0VG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb25zdGFudC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zaG9ydE91dC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXNJbi5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVGltZXMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FyZ3VtZW50cy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0J1ZmZlci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJGYWxzZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNUeXBlZEFycmF5LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VVbmFyeS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19ub2RlVXRpbC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlS2V5c0luLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2F0dGVtcHQuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1BsYWluT2JqZWN0LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVmFsdWVzLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2N1c3RvbURlZmF1bHRzQXNzaWduSW4uanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXNjYXBlU3RyaW5nQ2hhci5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbmF0aXZlS2V5cy5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RlbXBsYXRlU2V0dGluZ3MuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lc2NhcGUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXNjYXBlSHRtbENoYXIuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVByb3BlcnR5T2YuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVRvU3RyaW5nLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNTeW1ib2wuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcmVFc2NhcGUuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcmVFdmFsdWF0ZS5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvSW1hZ2VSZW5kZXJlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvSW1hZ2VSZW5kZXJlci9JbWFnZVJlbmRlcmVyLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlVGltZUZpbHRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvRGF0ZVRpbWVGaWx0ZXIvRGF0ZVRpbWVGaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL2RhdGUtZm5zLXR6L2VzbS9fbGliL3R6VG9rZW5pemVEYXRlL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vc3ViTWlsbGlzZWNvbmRzL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vYWRkTWlsbGlzZWNvbmRzL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vdG9EYXRlL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy10ei9lc20vdG9EYXRlL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vX2xpYi9nZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9FdmVudHNNaXhpbi9FdmVudHNNaXhpbi5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvRGF0ZVRpbWVJbnB1dC9EYXRlVGltZUlucHV0LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlVGltZUlucHV0L3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL0RhdGVUaW1lSW5wdXQvc3R5bGUuc2Nzcz9jNzMyIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlVGltZUVkaXRvci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvRGF0ZVRpbWVFZGl0b3IvRGF0ZVRpbWVFZGl0b3IuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6L3dlYnBhY2svYm9vdHN0cmFwIDBlNDFkYTFlODgzMDAzZmI4ZjI5Iiwid2VicGFjazovLy93ZWJwYWNrOi9leHRlcm5hbCB7XCJjb21tb25qc1wiOlwiYmJqLW1hc2tzL3NyYy9TdHJpbmdNYXNrXCIsXCJjb21tb25qczJcIjpcImJiai1tYXNrcy9zcmMvU3RyaW5nTWFza1wiLFwiYW1kXCI6XCJiYmotbWFza3Mvc3JjL1N0cmluZ01hc2tcIixcInJvb3RcIjpbXCJCQmpcIixcIk1hc2tzXCIsXCJTdHJpbmdNYXNrXCJdfSIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvVGV4dElucHV0L2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UZXh0SW5wdXQvVGV4dElucHV0LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UZXh0SW5wdXQvdG9vbHMuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL051bWJlcklucHV0L2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9OdW1iZXJJbnB1dC9OdW1iZXJJbnB1dC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovZXh0ZXJuYWwge1wiY29tbW9uanNcIjpcImJiai1tYXNrcy9zcmMvTnVtYmVyTWFza1wiLFwiY29tbW9uanMyXCI6XCJiYmotbWFza3Mvc3JjL051bWJlck1hc2tcIixcImFtZFwiOlwiYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrXCIsXCJyb290XCI6W1wiQkJqXCIsXCJNYXNrc1wiLFwiTnVtYmVyTWFza1wiXX0iLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6L3dlYnBhY2svYm9vdHN0cmFwIGVmZWY4N2EwMWMzZWQyMmNhMzU4Iiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9OdW1iZXJNYXNrL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlTWFzay9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvU3RyaW5nTWFzay9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9zcmMvTnVtYmVyTWFzay9OdW1iZXJNYXNrLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9EYXRlTWFzay9EYXRlTWFzay5qcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9ub2RlX21vZHVsZXMvd2Vla3N0YXJ0L2Rpc3QvZXMtbW9kdWxlL21haW4uanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3dlZWtzdGFydC9kaXN0L2VzLW1vZHVsZS9hcGkuanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vbm9kZV9tb2R1bGVzL3dlZWtzdGFydC9kaXN0L2VzLW1vZHVsZS9sYW5nUmVnaW9uTWFwLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL25vZGVfbW9kdWxlcy93ZWVrc3RhcnQvZGlzdC9lcy1tb2R1bGUvcmVnaW9uRGF5TWFwLmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9TdHJpbmdNYXNrL1N0cmluZ01hc2suanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vc3JjL1R5cGVzL2luZGV4LmpzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3NyYy9UeXBlcy9UeXBlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvanNzL2pzcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9hcnJheS9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9hcnJheS9pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9udW1iZXIvaXMtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9mbi9zdHJpbmcvc3RhcnRzLXdpdGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYS1mdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hZGQtdG8tdW5zY29wYWJsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYW4tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2FycmF5LW1ldGhvZHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fYXJyYXktc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jb2YuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fY29yZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19jdHguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19kb20tY3JlYXRlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2V4cG9ydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19mYWlscy1pcy1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZmFpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fZnVuY3Rpb24tdG8tc3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19oYXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faGlkZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pZTgtZG9tLWRlZmluZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLWFycmF5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9faXMtb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX2lzLXJlZ2V4cC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19saWJyYXJ5LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX29iamVjdC1kcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19wcm9wZXJ0eS1kZXNjLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3JlZGVmaW5lLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3NoYXJlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL19zdHJpY3QtbWV0aG9kLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3N0cmluZy1jb250ZXh0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8taW9iamVjdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL190by1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fdG8tb2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL191aWQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9fd2tzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LmFycmF5LmZvci1lYWNoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2Lm51bWJlci5pcy1pbnRlZ2VyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXM2LnN0cmluZy5zdGFydHMtd2l0aC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzNy5hcnJheS5pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZGVlcC1wYXJzZS1qc29uL2luZGV4LmpzIiwid2VicGFjazovLy9EOi9HaXRodWIvYmJqLW1hc2tzL2Rpc3QvYmJqLW1hc2tzLmpzLWV4cG9zZWQiLCJ3ZWJwYWNrOi8vL0Q6L0dpdGh1Yi9iYXNpcy1hZ2dyaWQtY29tcG9uZW50cy9kaXN0L2Jhc2lzLWFnZ3JpZC1jb21wb25lbnRzLmpzLWV4cG9zZWQiLCJ3ZWJwYWNrOi8vL0Q6L0dpdGh1Yi9iYXNpcy1pbnB1dC1tYXNraW5nL2Rpc3QvYmFzaXMtaW5wdXQtbWFza2luZy5qcy1leHBvc2VkIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9qc3MvanNzLmpzLWV4cG9zZWQiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2ZsYXRwaWNrci9kaXN0L2ZsYXRwaWNrci5jc3M/N2I2OCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXBwbHkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlMaWtlS2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheU1hcC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25WYWx1ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUdldFRhZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTmF0aXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc1R5cGVkQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXMuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXNJbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUHJvcGVydHlPZi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUmVzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU2V0VG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVRpbWVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVW5hcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVZhbHVlcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcmVKc0RhdGEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlQXNzaWduZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3VzdG9tRGVmYXVsdHNBc3NpZ25Jbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19kZWZpbmVQcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lc2NhcGVIdG1sQ2hhci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lc2NhcGVTdHJpbmdDaGFyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2ZyZWVHbG9iYWwuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0TmF0aXZlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRSYXdUYWcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0VmFsdWUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNJbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0l0ZXJhdGVlQ2FsbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc01hc2tlZC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19ub2RlVXRpbC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vdmVyQXJnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX292ZXJSZXN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlRXNjYXBlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlRXZhbHVhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcmVJbnRlcnBvbGF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yb290LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3NldFRvU3RyaW5nLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Nob3J0T3V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3RvU291cmNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXNzaWduSW5XaXRoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXR0ZW1wdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2NvbnN0YW50LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZXEuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lc2NhcGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pZGVudGl0eS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJndW1lbnRzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcnJheS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlMaWtlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0Vycm9yLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNGdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTGVuZ3RoLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNPYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc09iamVjdExpa2UuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1BsYWluT2JqZWN0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNTeW1ib2wuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1R5cGVkQXJyYXkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9rZXlzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5c0luLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YkZhbHNlLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGVtcGxhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90ZW1wbGF0ZVNldHRpbmdzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L2Rpc3Qvc3R5bGVzL2FnLWdyaWQuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hZy1ncmlkLWNvbW11bml0eS9kaXN0L3N0eWxlcy9hZy10aGVtZS1iYWxoYW0tZGFyay5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L2Rpc3Qvc3R5bGVzL2FnLXRoZW1lLWJhbGhhbS5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2FnLWdyaWQtY29tbXVuaXR5L2Rpc3Qvc3R5bGVzL2FnLXRoZW1lLW1hdGVyaWFsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZmxhdHBpY2tyL2Rpc3QvZmxhdHBpY2tyLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvc3R5bGUvY2xhc3Nlcy5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL3VybHMuanMiLCJ3ZWJwYWNrOi8vLyh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vbW9kdWxlLmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvY2VsbHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS9jaGFydHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS9jb2x1bW5zLmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvY29udGV4dC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvaW5pdC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2pzcy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvYXBpL21lbnVzLmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvb3ZlcmxheXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS9yb3dzLmpzIiwid2VicGFjazovLy8uL3NyYy9hcGkvc3RhdGUuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS9zdGF0dXNiYXIuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS90b29scGFuZWwuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2FwaS91dGlsaXRpZXMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V2ZW50cy9jb25zdGFudHMuanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V2ZW50cy9lZGl0aW5nLmpzIiwid2VicGFjazovLy8uL3NyYy9ldmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2V2ZW50cy9rZXlib2FyZC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvZXZlbnRzL3JlYWR5LmpzIiwid2VicGFjazovLy8uL3NyYy9ldmVudHMvc2VsZWN0aW9ucy5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvZXZlbnRzL3N0YXRlLmpzIiwid2VicGFjazovLy8uL3NyYy9ldmVudHMvdXRpbGl0aWVzLmpzIiwid2VicGFjazovLy8uL3NyYy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvcG9seWZpbGxzLmpzIiwid2VicGFjazovLy8uL3NyYy9zdHlsZS9jbGFzc2VzLmNzcz9iNzM4Il0sIm5hbWVzIjpbIk51bWJlck1hc2siLCJudW1iZXIiLCJtYXNrIiwiZ3JvdXBpbmdTZXBhcmF0b3IiLCJkZWNpbWFsU2VwYXJhdG9yIiwiZm9yY2VUcmFpbGluZ1plcm9zIiwibG9vc2UiLCJtYXNrTGVuIiwibGVuZ3RoIiwic3RyIiwibmFtZSIsIm1lc3NhZ2UiLCJtYXNrQmVmb3JlRGVjaW1hbCIsIm1hc2tBZnRlckRlY2ltYWwiLCJmb3VuZERlY2ltYWwiLCJpIiwibSIsImNoYXJBdCIsIm51bSIsIl9yb3VuZCIsImJ5dGVzIiwiX3RvQ2hhckFycmF5IiwiaW5MZW4iLCJudW1CZWZvcmVEZWNpbWFsIiwibnVtQWZ0ZXJEZWNpbWFsIiwidG9TdHJpbmciLCJmaWxsQnl0ZSIsImZsb2F0Qnl0ZSIsImluUG9zIiwib3V0UG9zIiwiZmxvYXRQb3MiLCJmaWxsSW5pdCIsImlzTmVnYXRpdmUiLCJfZ2V0U2lnbiIsImVtaXREZWNpbWFsIiwiaW5kZXhPZiIsImZvdW5kWmVybyIsImZvdW5kRGlnaXQiLCJjdXJyZW5jeSIsInJldCIsIkFycmF5IiwibWFza1BvcyIsImpvaW4iLCJwcmVjaXNpb24iLCJyZXZlcnNlU2hpZnQiLCJudW1BcnJheSIsInNwbGl0IiwiX3NoaWZ0IiwiTWF0aCIsInJvdW5kIiwic2lnbnVtIiwiY2hhcnMiLCJzdHJpbmciLCJzdWJzdHJpbmciLCJ4IiwiaXNOdW1iZXJSZWdleCIsImlzV2hpdGVzcGFjZVJlZ2V4IiwicHVuY3R1YXRpb25MaXN0IiwiaXNMb3dlckNhc2UiLCJ0b0xvd2VyQ2FzZSIsInRvVXBwZXJDYXNlIiwiaXNVcHBlckNhc2UiLCJwYXNzT3JUaHJvd0Vycm9yIiwiY2hhciIsInBvcyIsIlN0cmluZ01hc2siLCJTdHJpbmciLCJzdHJMZW4iLCJtYXNrQnl0ZSIsImJ5dGUiLCJ0ZXN0IiwiQ29tcG9uZW50IiwiZGVmaW5lUHJvcGVydHkiLCJPYmplY3QiLCJnZXRQcm90b3R5cGVPZiIsImZuIiwibWFwU3RvcmUiLCJzdXBlclN0b3JlIiwiYmluZCIsImRlc2NzIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImtsYXNzIiwia2V5cyIsImdldE93bktleXMiLCJsIiwia2V5IiwiZGVzYyIsImF1dG9iaW5kTWV0aG9kIiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwiY29uc3RydWN0b3IiLCJ0YXJnZXQiLCJnZXQiLCJnZXRCb3VuZFN1cGVyIiwiYm91bmRGbiIsIndyaXRhYmxlIiwic2V0IiwiY3JlYXRlRGVmYXVsdFNldHRlciIsImFyZ3MiLCJhdXRvYmluZENsYXNzIiwiaGFuZGxlIiwiR0VORVJJQ19GVU5DVElPTl9FUlJPUiIsIkZVTkNUSU9OX1JFR0VYUCIsIlN5bnRheEVycm9yUmVwb3J0ZXIiLCJkZXNjcmlwdG9yIiwidG9waWMiLCJwYXJhbXMiLCJwYXJlbnRLbGFzcyIsImNoaWxkS2xhc3MiLCJwYXJlbnREZXNjcmlwdG9yIiwiY2hpbGREZXNjcmlwdG9yIiwiY29uZGl0aW9uIiwibXNnIiwicmVwb3J0ZXIiLCJwYXJlbnQiLCJjaGlsZCIsInBhcmVudFZhbHVlVHlwZSIsImNoaWxkVmFsdWVUeXBlIiwiaXNGdW5jdGlvbk92ZXJVbmRlZmluZWQiLCJjaGVja0Z1bmN0aW9uU2lnbmF0dXJlcyIsInBhcmVudEhhc0dldHRlciIsImNoaWxkSGFzR2V0dGVyIiwicGFyZW50SGFzU2V0dGVyIiwiY2hpbGRIYXNTZXR0ZXIiLCJwYXJlbnRUeXBlIiwiZ2V0RGVzY3JpcHRvclR5cGUiLCJjaGlsZFR5cGUiLCJjaGVja0RhdGFEZXNjcmlwdG9ycyIsImNoZWNrQWNjZXNzb3JEZXNjcmlwdG9ycyIsInN1Z2dlc3Rpb25UcmFuc2Zvcm1zIiwic3VnZ2VzdGlvbiIsInN1cGVyS2xhc3MiLCJzdXBlckRlc2NyaXB0b3IiLCJzdWdnZXN0ZWRLZXkiLCJmaW5kUG9zc2libGVBbHRlcm5hdGl2ZXMiLCJjaGVja0Rlc2NyaXB0b3JzIiwiZGVjb3JhdGUiLCJudWxsVGFnIiwidW5kZWZpbmVkVGFnIiwic3ltVG9TdHJpbmdUYWciLCJTeW1ib2wiLCJnZXRSYXdUYWciLCJvYmplY3RUb1N0cmluZyIsImJhc2VHZXRUYWciLCJpc09iamVjdExpa2UiLCJtb2R1bGUiLCJsaXN0IiwiY29udGVudCIsImNzc1dpdGhNYXBwaW5nVG9TdHJpbmciLCJpdGVtIiwibW9kdWxlcyIsImFscmVhZHlJbXBvcnRlZE1vZHVsZXMiLCJpZCIsIm1lZGlhUXVlcnkiLCJjc3NNYXBwaW5nIiwidXNlU291cmNlTWFwIiwic291cmNlTWFwcGluZyIsInRvQ29tbWVudCIsInNvdXJjZVVSTHMiLCJiYXNlNjQiLCJidG9hIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJKU09OIiwiZGF0YSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldE93blByb3BlcnR5TmFtZXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpc0Rlc2NyaXB0b3IiLCJlbnRyeUFyZ3MiLCJoYW5kbGVEZXNjcmlwdG9yIiwiTWV0YSIsImxhenlJbml0aWFsaXplIiwiTUVUQV9LRVkiLCJvYmoiLCJuZXdWYWx1ZSIsIndhcm4iLCJjb25zb2xlIiwic2VlbkRlcHJlY2F0aW9ucyIsInR5cGUiLCJpc09iamVjdCIsInJvb3QiLCJmcmVlU2VsZiIsInNlbGYiLCJmcmVlR2xvYmFsIiwiRnVuY3Rpb24iLCJvdGhlciIsImVxIiwiaXNMZW5ndGgiLCJpc0Z1bmN0aW9uIiwiaXNBcnJheUxpa2UiLCJkaXJ0eU51bWJlciIsIk51bWJlciIsImlzTmFOIiwicmVxdWlyZWQiLCJCb29sZWFuU3dpdGNoIiwiVGVtcGxhdGVSZW5kZXJlciIsIm9iamVjdCIsImJhc2VBc3NpZ25WYWx1ZSIsImZ1bmMiLCJnZXROYXRpdmUiLCJhc3luY1RhZyIsImZ1bmNUYWciLCJnZW5UYWciLCJwcm94eVRhZyIsInRhZyIsImdsb2JhbCIsImciLCJzZXRUb1N0cmluZyIsIm92ZXJSZXN0IiwiaWRlbnRpdHkiLCJiYXNlUmVzdCIsImFwcGx5IiwiaXNJbmRleCIsImluZGV4IiwiaXNJdGVyYXRlZUNhbGwiLCJNQVhfU0FGRV9JTlRFR0VSIiwicmVJc1VpbnQiLCJvYmplY3RQcm90byIsImhhc093blByb3BlcnR5IiwiaXNBcnIiLCJpc0FycmF5IiwiaXNBcmciLCJpc0FyZ3VtZW50cyIsImlzQnVmZiIsImlzQnVmZmVyIiwiaXNUeXBlIiwiaXNUeXBlZEFycmF5Iiwic2tpcEluZGV4ZXMiLCJyZXN1bHQiLCJiYXNlVGltZXMiLCJpbmhlcml0ZWQiLCJhcnJheUxpa2VLZXlzIiwib3JpZ2luYWxNb2R1bGUiLCJDdG9yIiwicHJvdG8iLCJpc1Byb3RvdHlwZSIsImRvbUV4Y1RhZyIsImVycm9yVGFnIiwiaXNQbGFpbk9iamVjdCIsImlzRXJyb3IiLCJ0cmFuc2Zvcm0iLCJvdmVyQXJnIiwiYXJyYXkiLCJpdGVyYXRlZSIsImFycmF5TWFwIiwicmVJbnRlcnBvbGF0ZSIsImJhc2VUb1N0cmluZyIsImRhdGUiLCJ0b0RhdGUiLCJ1dGNEYXRlIiwib2Zmc2V0TWlsbGlzZWNvbmRzIiwidHpQYXJzZVRpbWV6b25lIiwic3ViTWlsbGlzZWNvbmRzIiwiTUlMTElTRUNPTkRTX0lOX0hPVVIiLCJNSUxMSVNFQ09ORFNfSU5fTUlOVVRFIiwicGF0dGVybnMiLCJ0aW1lem9uZSIsInRpbWV6b25lWiIsInRpbWV6b25lSEgiLCJ0aW1lem9uZUhITU0iLCJ0aW1lem9uZUlBTkEiLCJ0b2tlbiIsImhvdXJzIiwicGFyc2VJbnQiLCJ2YWxpZGF0ZVRpbWV6b25lIiwiYWJzb2x1dGVPZmZzZXQiLCJtaW51dGVzIiwidG9rZW5zIiwidHpUb2tlbml6ZURhdGUiLCJhc1VUQyIsIkRhdGUiLCJ0aW1lc3RhbXBXaXRoTXNaZXJvZWQiLCJFdmVudHNNaXhpbiIsIkRhdGVUaW1lSW5wdXQiLCJCb29sZWFuRWRpdG9yIiwiQm9vbGVhbiIsImtleVByZXNzQmFja3NwYWNlT3JEZWxldGUiLCJzd2l0Y2hlciIsInRydWVWYWx1ZSIsImZhbHNlVmFsdWUiLCJ2YWx1ZUFzU3RyaW5nIiwiX2d1aSIsImZhbGxiYWNrIiwib3B0aW9uIiwiQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZyIsImNvbnRleHQiLCJ3aW4iLCJkb2MiLCJpbml0aWFsVmFsdWUiLCJsaXN0ZW5lciIsImJvb2xTd2l0Y2giLCJkb2N1bWVudCIsImxhYmVsIiwiZSIsIm92ZXJyaWRlIiwiYXV0b2JpbmQiLCJpbml0aWFsaXplciIsInJlcXVpcmUiLCJvcHRpb25zIiwid2luZG93IiwidXBkYXRlIiwibG9jYXRpb24iLCJiYXNlVXJsIiwiY3VycmVudERpciIsImZpeGVkQ3NzIiwidW5xdW90ZWRPcmlnVXJsIiwibmV3VXJsIiwiQm9vbGVhblJlbmRlcmVyIiwiaXNJbml0IiwiYm9vbGVhblRydWVSZW5kZXJWYWx1ZSIsImJvb2xlYW5GYWxzZVJlbmRlclZhbHVlIiwiYm9vbGVhblRydWVWYWx1ZSIsImJvb2xlYW5GYWxzZVZhbHVlIiwiQm9vbGVhbkZpbHRlciIsInRvVGl0bGVDYXNlIiwid29yZCIsInN0cmlwSFRNTCIsInRtcCIsIl9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24iLCJ0cmFuc2xhdGUiLCJpc0NsZWFyRmlsdGVyIiwiaXNSZXNldEJ1dHRvbiIsImlzQXBwbHlCdXR0b24iLCJyZXNldCIsImJvZHkiLCJhcHBseUZpbHRlclBhbmVsIiwibW9kZWwiLCJfZmlsdGVyVGV4dCIsImZpbHRlclRleHRBc1N0cmluZyIsIk51bWJlckVkaXRvciIsIm1pbiIsIm1heCIsInN0ZXAiLCJzdGFydFZhbHVlIiwiQmFzaXMiLCJlbGVtZW50cyIsIm9uVXBkYXRlIiwib25JbnZhbGlkIiwiaW5wdXQiLCJjYXN0ZWQiLCJldmVudCIsImlzVmFsaWQiLCJUZXh0RWRpdG9yIiwicGF0dGVybiIsInRpdGxlIiwidGVtcGxhdGUiLCJyZUVtcHR5U3RyaW5nTGVhZGluZyIsInJlRW1wdHlTdHJpbmdNaWRkbGUiLCJyZUVtcHR5U3RyaW5nVHJhaWxpbmciLCJyZUVzVGVtcGxhdGUiLCJyZU5vTWF0Y2giLCJyZVVuZXNjYXBlZFN0cmluZyIsInNldHRpbmdzIiwidGVtcGxhdGVTZXR0aW5ncyIsImd1YXJkIiwiYXNzaWduSW5XaXRoIiwiY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiIsImltcG9ydHMiLCJpbXBvcnRzS2V5cyIsImltcG9ydHNWYWx1ZXMiLCJiYXNlVmFsdWVzIiwiaW50ZXJwb2xhdGUiLCJzb3VyY2UiLCJyZURlbGltaXRlcnMiLCJSZWdFeHAiLCJzb3VyY2VVUkwiLCJpbnRlcnBvbGF0ZVZhbHVlIiwiZXNjYXBlU3RyaW5nQ2hhciIsImlzRXNjYXBpbmciLCJpc0V2YWx1YXRpbmciLCJvZmZzZXQiLCJtYXRjaCIsInZhcmlhYmxlIiwiYXR0ZW1wdCIsImNyZWF0ZUFzc2lnbmVyIiwiY29weU9iamVjdCIsImtleXNJbiIsImlzTmV3IiwicHJvcHMiLCJjdXN0b21pemVyIiwiYXNzaWduVmFsdWUiLCJvYmpWYWx1ZSIsImdldFZhbHVlIiwiYmFzZUlzTmF0aXZlIiwicmVSZWdFeHBDaGFyIiwicmVJc0hvc3RDdG9yIiwiZnVuY1Byb3RvIiwiZnVuY1RvU3RyaW5nIiwicmVJc05hdGl2ZSIsImlzTWFza2VkIiwidG9Tb3VyY2UiLCJuYXRpdmVPYmplY3RUb1N0cmluZyIsImlzT3duIiwidW5tYXNrZWQiLCJtYXNrU3JjS2V5IiwidWlkIiwiY29yZUpzRGF0YSIsInNvdXJjZXMiLCJhc3NpZ25lciIsIm5hdGl2ZU1heCIsInN0YXJ0Iiwib3RoZXJBcmdzIiwic2hvcnRPdXQiLCJiYXNlU2V0VG9TdHJpbmciLCJjb25zdGFudCIsIkhPVF9DT1VOVCIsIkhPVF9TUEFOIiwibmF0aXZlTm93IiwiY291bnQiLCJsYXN0Q2FsbGVkIiwic3RhbXAiLCJyZW1haW5pbmciLCJhcmd1bWVudHMiLCJiYXNlS2V5c0luIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJiYXNlSXNBcmd1bWVudHMiLCJhcmdzVGFnIiwiZnJlZUV4cG9ydHMiLCJleHBvcnRzIiwiZnJlZU1vZHVsZSIsIm1vZHVsZUV4cG9ydHMiLCJCdWZmZXIiLCJuYXRpdmVJc0J1ZmZlciIsInN0dWJGYWxzZSIsIm5vZGVJc1R5cGVkQXJyYXkiLCJub2RlVXRpbCIsImJhc2VVbmFyeSIsImJhc2VJc1R5cGVkQXJyYXkiLCJhcnJheVRhZyIsImJvb2xUYWciLCJkYXRlVGFnIiwibWFwVGFnIiwibnVtYmVyVGFnIiwib2JqZWN0VGFnIiwicmVnZXhwVGFnIiwic2V0VGFnIiwic3RyaW5nVGFnIiwid2Vha01hcFRhZyIsImFycmF5QnVmZmVyVGFnIiwiZGF0YVZpZXdUYWciLCJmbG9hdDMyVGFnIiwiZmxvYXQ2NFRhZyIsImludDhUYWciLCJpbnQxNlRhZyIsImludDMyVGFnIiwidWludDhUYWciLCJ1aW50OENsYW1wZWRUYWciLCJ1aW50MTZUYWciLCJ1aW50MzJUYWciLCJ0eXBlZEFycmF5VGFncyIsImZyZWVQcm9jZXNzIiwidHlwZXMiLCJuYXRpdmVLZXlzSW4iLCJpc1Byb3RvIiwib2JqZWN0Q3RvclN0cmluZyIsImdldFByb3RvdHlwZSIsInN0cmluZ0VzY2FwZXMiLCJiYXNlS2V5cyIsIm5hdGl2ZUtleXMiLCJyZUVzY2FwZSIsInJlRXZhbHVhdGUiLCJlc2NhcGUiLCJyZVVuZXNjYXBlZEh0bWwiLCJyZUhhc1VuZXNjYXBlZEh0bWwiLCJlc2NhcGVIdG1sQ2hhciIsImh0bWxFc2NhcGVzIiwiYmFzZVByb3BlcnR5T2YiLCJJTkZJTklUWSIsInN5bWJvbFByb3RvIiwic3ltYm9sVG9TdHJpbmciLCJpc1N5bWJvbCIsInN5bWJvbFRhZyIsIkltYWdlUmVuZGVyZXIiLCJpbWFnZVdpZHRoIiwiaW1hZ2VIZWlnaHQiLCJpbWFnZUxpc3QiLCJEYXRlVGltZUZpbHRlciIsIlRPS0VOUyIsIlRPS0VOX0VRVUFMIiwiVE9LRU5fTk9UX0VRVUFMIiwiVE9LRU5fTEVTUyIsIlRPS0VOX0dSRUFURVIiLCJUT0tFTl9SQU5HRSIsIlRPS0VOX0FORCIsIlRPS0VOX09SIiwiQ29uZGl0aW9uUGFuZWwiLCJ3aXRoRXZlbnRzTWl4aW4iLCJfZmlsdGVyVGltZUlucHV0IiwiX2ZpbHRlclRvRGF0ZVRpbWVJbnB1dCIsIl9maWx0ZXJPcHRpb25zIiwiX2RlZmF1bHRPcHRpb24iLCJvcHRpb25zVHJhbnNsYXRpb25zIiwic2VsZWN0Iiwic3RhdGUiLCJndWkiLCJmaWx0ZXJPcHRpb25zIiwic2VsZWN0RWwiLCJmaWx0ZXJJbnB1dCIsImZpbHRlclRvSW5wdXQiLCJldnQiLCJlbCIsImZpbHRlckRhdGVUbyIsIk9OX0NPTkRJVElPTl9DSEFOR0VEIiwicmVhZG9ubHkiLCJmaWx0ZXIiLCJmaWx0ZXJUbyIsIkpvaW5Db25kaXRpb25QYW5lbCIsIl9maXJzdENvbmRpdGlvblBhbmVsIiwiX3NlY29uZENvbmRpdGlvblBhbmVsIiwiX29wZXJhdG9yUGFuZWwiLCJfcGFyYW1zIiwic3VwcHJlc3NBbmRPckNvbmRpdGlvbiIsInNlY29uZENvbmRpdGlvbkd1aSIsIm9wZXJhdG9yUGFuZWxHdWkiLCJPTl9KT0lOX0NPTkRJVElPTl9DSEFOR0VEIiwiY29uZGl0aW9uMSIsImNvbmRpdGlvbjIiLCJvcGVyYXRvciIsIl9Kb2luQ29uZGl0aW9uUGFuZWwiLCJfc3RhdGUiLCJfZG9lc0ZpbHRlclBhc3NPcHRpb25zIiwiZW5hYmxlVGltZSIsImluUmFuZ2VJbmNsdXNpdmUiLCJ2YWx1ZUdldHRlciIsImRvZXNQYXNzRmlyc3RDb25kaXRpb24iLCJkb2VzUGFzc1NlY29uZENvbmRpdGlvbiIsImNsb25lIiwiZGF0ZVRpbWVNYXNrIiwibG9jYWxlIiwiSW50bCIsIkJCaiIsImZpcnN0Q29uZGl0aW9uQXNTdHJpbmciLCJzZWNvbmRDb25kaXRpb25Bc1N0cmluZyIsIm9wZXJhdG9yQXNTdHJpbmciLCJwYXNzZWQiLCJ1dGNUb1pvbmVkVGltZSIsImlzQXBwbHlCdXR0b25BY3RpdmUiLCJkdGYiLCJnZXREYXRlVGltZUZvcm1hdCIsInBhcnRzT2Zmc2V0IiwiaGFja3lPZmZzZXQiLCJ0eXBlVG9Qb3MiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJob3VyIiwibWludXRlIiwic2Vjb25kIiwiZm9ybWF0dGVkIiwiZmlsbGVkIiwicGFyc2VkIiwiZHRmQ2FjaGUiLCJ0ZXN0RGF0ZUZvcm1hdHRlZCIsImhvdXIxMiIsInRpbWVab25lIiwiaG91ckN5Y2xlU3VwcG9ydGVkIiwiaG91ckN5Y2xlIiwicmVxdWlyZWRBcmdzIiwiYW1vdW50IiwidG9JbnRlZ2VyIiwiYWRkTWlsbGlzZWNvbmRzIiwidGltZXN0YW1wIiwiYXJnU3RyIiwiYXJndW1lbnQiLCJERUZBVUxUX0FERElUSU9OQUxfRElHSVRTIiwiZGF0ZVRpbWVEZWxpbWV0ZXIiLCJwbGFpblRpbWUiLCJ0aW1lWm9uZURlbGltZXRlciIsIllZIiwiWVlZIiwiWVlZWSIsIllZWVlZIiwiTU0iLCJEREQiLCJNTUREIiwiV3d3IiwiV3d3RCIsIkhIIiwiSEhNTSIsIkhITU1TUyIsImRpcnR5T3B0aW9ucyIsImFkZGl0aW9uYWxEaWdpdHMiLCJkYXRlU3RyaW5ncyIsInNwbGl0RGF0ZVN0cmluZyIsInBhcnNlWWVhclJlc3VsdCIsInBhcnNlWWVhciIsInJlc3REYXRlU3RyaW5nIiwicGFyc2VEYXRlIiwidGltZSIsInBhcnNlVGltZSIsImdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMiLCJkYXRlU3RyaW5nIiwidGltZVN0cmluZyIsInBhdHRlcm5ZWVkiLCJwYXR0ZXJuWVlZWVkiLCJ5ZWFyU3RyaW5nIiwiY2VudHVyeVN0cmluZyIsInZhbGlkYXRlRGF0ZSIsImRheU9mWWVhciIsInZhbGlkYXRlRGF5T2ZZZWFyRGF0ZSIsIndlZWsiLCJ2YWxpZGF0ZVdlZWtEYXRlIiwiZGF5T2ZJU09XZWVrWWVhciIsImRheU9mV2VlayIsInBhcnNlRmxvYXQiLCJ2YWxpZGF0ZVRpbWUiLCJzZWNvbmRzIiwiZm91cnRoT2ZKYW51YXJ5RGF5IiwiZGlmZiIsIkRBWVNfSU5fTU9OVEgiLCJEQVlTX0lOX01PTlRIX0xFQVBfWUVBUiIsImlzTGVhcFllYXIiLCJpc0xlYXBZZWFySW5kZXgiLCJkaXJ0eURhdGUiLCJiYXNlVGltZXpvbmVPZmZzZXQiLCJtaWxsaXNlY29uZHNQYXJ0T2ZUaW1lem9uZU9mZnNldCIsImhhbmRsZXJzIiwiaGFuZGxlciIsInBpY2tlciIsInNlbGVjdGVkRGF0ZSIsInRpbWVfMjRociIsImVuYWJsZVNlY29uZHMiLCJub0NhbGVuZGFyIiwiZGF0ZUZvcm1hdCIsImZsYXRwaWNrciIsIndyYXAiLCJhbGxvd0lucHV0Iiwib25DaGFuZ2UiLCJmb3JtYXREYXRlIiwibWF4RGF0ZSIsIm1pbkRhdGUiLCJkZWZhdWx0SG91ciIsImRlZmF1bHRNaW51dGUiLCJkaXNhYmxlTW9iaWxlIiwid2Vla051bWJlcnMiLCJmb3JtYXQiLCJkYXRlVGltZUZvcm1hdHRlciIsImV4cHJlc3Npb24iLCJzZWxlY3RlZERhdGVzIiwid2Vla0RheXNTaG9ydCIsIndlZWtEYXlzTG9uZyIsIndlZWtkYXkiLCJtb250aHNTaG9ydCIsIm1vbnRoc0xvbmciLCJ3ZWVrZGF5cyIsInNob3J0aGFuZCIsImxvbmdoYW5kIiwibW9udGhzIiwiZGF5c0luTW9udGgiLCJmaXJzdERheU9mV2VlayIsIm9yZGluYWwiLCJyYW5nZVNlcGFyYXRvciIsIndlZWtBYmJyZXZpYXRpb24iLCJzY3JvbGxUaXRsZSIsInRvZ2dsZVRpdGxlIiwiYW1QTSIsInllYXJBcmlhTGFiZWwiLCJob3VyQXJpYUxhYmVsIiwibWludXRlQXJpYUxhYmVsIiwiT05fREFURV9DSEFOR0VEIiwiRGF0ZVRpbWVFZGl0b3IiLCJfaW5wdXQiLCJfdmFsdWUiLCJUZXh0SW5wdXQiLCJjc3NDbGFzc0Vycm9yIiwiY3NzQ2xhc3NTdWNjZXNzIiwicGFyZW50Q2xhc3MiLCJpc1dyYXBwZWQiLCJpbnB1dElkIiwiaW5wdXROYW1lIiwib3JpZ2luYWxQYXR0ZXJuIiwiZGVmYXVsdFBhdHRlcm4iLCJnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzayIsInVubWFza0lucHV0IiwibWFza0lmTm90TWFza2VkIiwidW5tYXNrIiwidGV4dElucHV0IiwiZXZlbnRUeXBlIiwia2V5Q29kZSIsImtleUNvbnRlbnQiLCJpbnNlcnRQb3NpdGlvbiIsImZpbmRDYXJldFBvc2l0aW9uIiwibWFza0Vycm9yIiwic2VsZWN0aW9uU3RhcnQiLCJ1bm1hc2tlZFZhbHVlIiwic2V0VGltZW91dCIsInBvc2l0aW9uIiwidmFsdWVNYXNrZWQiLCJ2YWx1ZVVubWFza2VkIiwiZXJyb3IiLCJTVVBQT1JURURfTUFTS1MiLCJJU19VTklDT0RFX1BST1BFUlRZX1NVUFBPUlRFRCIsImV2YWwiLCJpc01hc2tlZFZhbHVlIiwiY2FjaGVLZXkiLCJtYXNrQXNBcnJ5IiwicmVnZXgiLCJjIiwibWFza0FzQXJyYXkiLCJtYXNrZWRWYWx1ZUFzQXJyYXkiLCJtYXNrZWRWYWx1ZSIsImVsSGFzTWFzayIsIk51bWJlcklucHV0IiwiY291bnREZWNpbWFscyIsImFjdHVhbElucHV0IiwiYWN0dWFsSW5wdXRJZCIsImFjdHVhbElucHV0TmFtZSIsImFjdHVhbElucHV0U3RlcCIsImFjdHVhbElucHV0TWF4IiwiYWN0dWFsSW5wdXRNaW4iLCJhY3R1YWxJbnB1dEdyb3VwaW5nU2VwYXJhdG9yIiwiYWN0dWFsSW5wdXREZWNpbWFsU2VwYXJhdG9yIiwiYWN0dWFsSW5wdXRGb3JjZVRyYWlsaW5nWmVyb3MiLCJhY3R1YWxJbnB1dE1hc2siLCJhY3R1YWxJbnB1dENsYXNzZXMiLCJhY3R1YWxJbnB1dFJlcXVpcmVkIiwidW5tYXNrZWRJbnB1dCIsImRlY2ltYWxzIiwicmVzdG9yZSIsIkRhdGVNYXNrIiwiVXRpbHMiLCJEYXRlcyIsImdldERheU9mWWVhciIsImdldFdlZWtOdW1iZXIiLCJnZXRXZWVrU3RhcnRCeUxvY2FsZSIsIklTX0RBVEVfUkVHRVgiLCJJU19USU1FX1JFR0VYIiwiZml4U2hvcnRJU08iLCJnZXRUaW1lem9uZU9yT2Zmc2V0IiwiVHlwZXMiLCJvcmlnaW5hbEdldFdlZWtTdGFydEJ5TG9jYWxlIiwib25lRGF5IiwicGFkIiwiZCIsImRheU51bSIsIndlZWtTdGFydCIsInllYXJTdGFydCIsImRhdGVPYmplY3QiLCJ0cmFuc2xhdGlvbiIsIm1vbnRoU2hvcnQiLCJtb250aExvbmciLCJkYXlTaG9ydCIsImRheUxvbmciLCJ3ZWVrTnVtYmVyIiwiZGF0ZURldGFpbHMiLCJZeiIsIllzIiwiWWwiLCJZcCIsIllkIiwiWSIsIk16IiwiTXMiLCJNbCIsIk1wIiwiTWQiLCJNIiwiRHoiLCJEcyIsIkRsIiwiRHAiLCJEZCIsIkQiLCJIeiIsIkhzIiwiSGwiLCJIcCIsIkhkIiwiSCIsImh6IiwiaHMiLCJobCIsImhwIiwiaGQiLCJoIiwibXoiLCJtcyIsIm1sIiwibXAiLCJtZCIsInN6Iiwic3MiLCJzbCIsInNwIiwic2QiLCJzIiwiUFAiLCJQIiwicHAiLCJwIiwiSnoiLCJKcyIsIkpsIiwiSmQiLCJKIiwiV3oiLCJXcyIsIldsIiwiV3AiLCJXZCIsIlciLCJ3eiIsIndzIiwid2wiLCJ3cCIsIndkIiwidyIsImpzcyIsImFkalNlbEF0dHJSZWdleCIsImRvdWJsZUNvbG9uUHNldWRvRWxSZWdleCIsInNpbmdsZUNvbG9uUHNldWRvRWxSZWdleCIsInNpbmdsZUNvbG9uRm9yUHNldWRvRWxlbWVudHMiLCJnZXRTZWxlY3RvcnNBbmRSdWxlcyIsInNoZWV0IiwicnVsZXMiLCJjc3NSdWxlcyIsInJlc3VsdHMiLCJzZWxlY3RvclRleHQiLCJ0b0RvdWJsZUNvbG9uUHNldWRvRWxlbWVudHMiLCJwdXNoIiwic3R5bGUiLCJnZXRSdWxlcyIsInNlbGVjdG9yIiwic3dhcEFkalNlbEF0dHIiLCJzd2FwUHNldWRvRWxTeW50YXgiLCJhZGRSdWxlIiwicHNldWRvRWxlbWVudFJ1bGUiLCJhZGRQc2V1ZG9FbGVtZW50UnVsZSIsImFkZFJ1bGVUb1NoZWV0IiwiaW5zZXJ0UnVsZSIsImRvdWJsZUNvbG9uU2VsZWN0b3IiLCJzaW5nbGVDb2xvblNlbGVjdG9yIiwiZXhlYyIsInRvU2luZ2xlQ29sb25Qc2V1ZG9FbGVtZW50cyIsInJlcGxhY2UiLCJzdWJtYXRjaDEiLCJzdWJtYXRjaDIiLCJzdWJtYXRjaDMiLCJyZW1vdmVSdWxlIiwicnVsZSIsImRlbGV0ZVJ1bGUiLCJleHRlbmQiLCJkZXN0Iiwic3JjIiwiYWdncmVnYXRlU3R5bGVzIiwiYWdncmVnYXRlIiwiZGVjbGFyZWRQcm9wZXJ0aWVzIiwiZGVjbGFyZWQiLCJ0b0NhbWVsQ2FzZSIsInN3YXAiLCJsYXN0SW5kZXgiLCJzdWJzdHIiLCJzZXRTdHlsZVByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiaW1wb3J0YW50SW5kZXgiLCJyZW1vdmVQcm9wZXJ0eSIsInNldFByb3BlcnR5Iiwic3VibWF0Y2giLCJ0cmFuc2Zvcm1DYW1lbENhc2VkUHJvcGVydHlOYW1lcyIsIm9sZFByb3BzIiwibmV3UHJvcHMiLCJ1bkNhbWVsQ2FzZSIsIkpzcyIsImhlYWQiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInNoZWV0cyIsInN0eWxlU2hlZXRzIiwicHJvdG90eXBlIiwiZGVmYXVsdFNoZWV0IiwiZ2V0QWxsIiwiX2NyZWF0ZVNoZWV0IiwicmVtb3ZlIiwiX3JlbW92ZVNoZWV0Iiwic3R5bGVOb2RlIiwiY3JlYXRlRWxlbWVudCIsInJlbCIsImFwcGVuZENoaWxkIiwibm9kZSIsIm93bmVyTm9kZSIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsImZvckRvY3VtZW50IiwiZm9yRWFjaCIsImluY2x1ZGVzIiwiaXNJbnRlZ2VyIiwic3RhcnRzV2l0aCIsIml0IiwiVHlwZUVycm9yIiwiVU5TQ09QQUJMRVMiLCJBcnJheVByb3RvIiwidW5kZWZpbmVkIiwidG9JT2JqZWN0IiwidG9MZW5ndGgiLCJ0b0Fic29sdXRlSW5kZXgiLCJJU19JTkNMVURFUyIsIiR0aGlzIiwiZnJvbUluZGV4IiwiTyIsImN0eCIsIklPYmplY3QiLCJ0b09iamVjdCIsImFzYyIsIlRZUEUiLCIkY3JlYXRlIiwiSVNfTUFQIiwiSVNfRklMVEVSIiwiSVNfU09NRSIsIklTX0VWRVJZIiwiSVNfRklORF9JTkRFWCIsIk5PX0hPTEVTIiwiY3JlYXRlIiwiY2FsbGJhY2tmbiIsInRoYXQiLCJmIiwidmFsIiwicmVzIiwiU1BFQ0lFUyIsIm9yaWdpbmFsIiwiQyIsInNwZWNpZXNDb25zdHJ1Y3RvciIsImNhbGwiLCJzbGljZSIsImNvcmUiLCJ2ZXJzaW9uIiwiX19lIiwiYUZ1bmN0aW9uIiwiYSIsImIiLCJpcyIsImhpZGUiLCJyZWRlZmluZSIsIlBST1RPVFlQRSIsIiRleHBvcnQiLCJJU19GT1JDRUQiLCJGIiwiSVNfR0xPQkFMIiwiRyIsIklTX1NUQVRJQyIsIlMiLCJJU19QUk9UTyIsIklTX0JJTkQiLCJCIiwiZXhwUHJvdG8iLCJvd24iLCJvdXQiLCJleHAiLCJVIiwiUiIsIk1BVENIIiwiS0VZIiwicmUiLCJfX2ciLCJkUCIsImNyZWF0ZURlc2MiLCJjb2YiLCJhcmciLCJmbG9vciIsImlzRmluaXRlIiwiaXNSZWdFeHAiLCJhbk9iamVjdCIsIklFOF9ET01fREVGSU5FIiwidG9QcmltaXRpdmUiLCJBdHRyaWJ1dGVzIiwiYml0bWFwIiwiaGFzIiwiU1JDIiwiJHRvU3RyaW5nIiwiVE9fU1RSSU5HIiwiVFBMIiwiaW5zcGVjdFNvdXJjZSIsInNhZmUiLCJTSEFSRUQiLCJzdG9yZSIsIm1vZGUiLCJjb3B5cmlnaHQiLCJmYWlscyIsIm1ldGhvZCIsImRlZmluZWQiLCJzZWFyY2hTdHJpbmciLCJOQU1FIiwiY2VpbCIsInZhbHVlT2YiLCJweCIsInJhbmRvbSIsImNvbmNhdCIsIlVTRV9TWU1CT0wiLCIkZXhwb3J0cyIsIiRmb3JFYWNoIiwiU1RSSUNUIiwiU1RBUlRTX1dJVEgiLCIkc3RhcnRzV2l0aCIsInNlYXJjaCIsIiRpbmNsdWRlcyIsImRlZXBQYXJzZUpzb24iLCJqc29uU3RyaW5nIiwicGFyc2UiLCJlcnIiLCJtYXAiLCJyZWR1Y2UiLCJ0aGlzQXJnIiwidG9TdHJpbmdUYWciLCJuIiwic3JjVmFsdWUiLCJjaHIiLCJJRV9QUk9UTyIsIm5vZGVUeXBlIiwicHJvY2VzcyIsImJpbmRpbmciLCJub3ciLCJzcmNJbmRleCIsIkVycm9yIiwiXyIsImV2YWx1YXRlIiwiZXNjYXBlVmFsdWUiLCJlc1RlbXBsYXRlVmFsdWUiLCJldmFsdWF0ZVZhbHVlIiwiY3NzIiwicHJvdG9jb2wiLCJob3N0IiwicGF0aG5hbWUiLCJmdWxsTWF0Y2giLCJvcmlnVXJsIiwidHJpbSIsIm8iLCIkMSIsInN0cmluZ2lmeSIsIndlYnBhY2tQb2x5ZmlsbCIsImRlcHJlY2F0ZSIsInBhdGhzIiwiY2hpbGRyZW4iLCJnd19zdGFydEVkaXRpbmdDZWxsIiwicm93IiwiY29sS2V5IiwiYXBpIiwic2V0Rm9jdXNlZENlbGwiLCJzdGFydEVkaXRpbmdDZWxsIiwicm93SW5kZXgiLCJrZXlQcmVzcyIsImNoYXJQcmVzcyIsImd3X3N0b3BFZGl0aW5nIiwiY2FuY2VsIiwic3RvcEVkaXRpbmciLCJnd19lZGl0TmV4dENlbGwiLCJ0YWJUb05leHRDZWxsIiwiZ3dfZWRpdFByZXZpb3VzQ2VsbCIsInRhYlRvUHJldmlvdXNDZWxsIiwiZ3dfc2V0Rm9jdXNlZENlbGwiLCJjb2x1bW4iLCJyIiwiZ2V0Um93Tm9kZSIsImNvbHVtbkFwaSIsImdldEFsbEdyaWRDb2x1bW5zIiwiY29sSWQiLCJnd19nZXRSYW5nZVNlbGVjdGlvbnMiLCJyYW5nZXMiLCJnZXRDZWxsUmFuZ2VzIiwiZ2V0TW9kZWwiLCJyYW5nZSIsImNvbHVtbnMiLCJhY2N1bXVsYXRvciIsImN1cnJlbnQiLCJzdGFySW5kZXgiLCJzdGFydFJvdyIsImVuZFJvdyIsImVuZEluZGV4Iiwicm93cyIsImdldFJvdyIsInBhcnNlZE5vZGUiLCJnd19wYXJzZUFkZENlbGxSYW5nZSIsInByIiwiZW5kIiwicm93RGF0YSIsInJvd1N0YXJ0SW5kZXgiLCJhYnMiLCJyb3dFbmRJbmRleCIsImd3X2FkZENlbGxSYW5nZSIsImFkZENlbGxSYW5nZSIsImd3X2NsZWFyUmFuZ2VTZWxlY3Rpb24iLCJjbGVhclJhbmdlU2VsZWN0aW9uIiwiZ3dfZ2V0Q2hhcnRUb29sYmFySXRlbXMiLCJncmlkT3B0aW9uc1dyYXBwZXIiLCJncmlkT3B0aW9ucyIsImNoYXJ0VG9vbGJhckl0ZW1zIiwiZ3dfYWRkQ2hhcnRSYW5nZSIsImdyaWQiLCJjZWxsUmFuZ2UiLCJyZWYiLCJjaGFydFJhbmdlIiwidXVpZCIsImNyZWF0ZWRfY2hhcnRzIiwiZ3dfZGVzdHJveUNoYXJ0IiwiZGVzdHJveUNoYXJ0IiwiY2hhcnQiLCJnd19leHRlbmRDb2x1bW5EZWZpbml0aW9ucyIsImRlZmluaXRpb25zIiwiZGVmIiwiY2hlY2tib3hTZWxlY3Rpb24iLCJnd19pc1Nob3dTZWxlY3Rpb25DaGVja2JveCIsImhlYWRlckNoZWNrYm94U2VsZWN0aW9uIiwiZ3dfaXNIZWFkZXJDaGVja2JveFNlbGVjdGlvbiIsImd3X3NldENvbHVtbkRlZmluaXRpb25zIiwiZGVlcFBhcnNlZERlZmluaXRpb25zIiwic2V0Q29sdW1uRGVmcyIsImNvbHVtbkRlZnMiLCJnd19zaXplQ29sdW1uc1RvRml0Iiwid2lkdGgiLCJjb2x1bW5zQVBJIiwic2l6ZUNvbHVtbnNUb0ZpdCIsImd3X2F1dG9TaXplQ29sdW1ucyIsInNraXBIZWFkZXIiLCJhbGxDb2x1bW5JZHMiLCJnZXRBbGxDb2x1bW5zIiwiYXV0b1NpemVDb2x1bW5zIiwiZ3dfc2V0VmlzaWJsZUNvbHVtbiIsImNvbHVtbklkIiwiZW5zdXJlQ29sdW1uVmlzaWJsZSIsImd3X3NldENvbHVtbldpZHRoIiwic2V0Q29sdW1uV2lkdGgiLCJnd19waW5Db2x1bW4iLCJwaW4iLCJzZXRDb2x1bW5QaW5uZWQiLCJnd19tb3ZlQ29sdW1uIiwidG9JbmRleCIsIm1vdmVDb2x1bW4iLCJwYXJhbSIsInNob3dTZWxlY3Rpb25DaGVja2JveCIsImNvbERlZiIsImZpZWxkIiwic2hvd0hlYWRlclNlbGVjdGlvbkNoZWNrYm94IiwiZ3dfYWRkUm93R3JvdXBDb2x1bW4iLCJnd19yZW1vdmVSb3dHcm91cENvbHVtbiIsInJlbW92ZVJvd0dyb3VwQ29sdW1ucyIsImd3X2dldFBpdm90TW9kZSIsImlzUGl2b3RNb2RlIiwiZ3dfc2V0UGl2b3RNb2RlIiwic2V0UGl2b3RNb2RlIiwiZ3dfYWRkUGl2b3RDb2x1bW5zIiwiZ3dfcmVtb3ZlUGl2b3RDb2x1bW5zIiwicmVtb3ZlUGl2b3RDb2x1bW5zIiwiZ3dfYWRkVmFsdWVDb2x1bW5zIiwiYWRkVmFsdWVDb2x1bW5zIiwiZ3dfcmVtb3ZlVmFsdWVDb2x1bW5zIiwicmVtb3ZlVmFsdWVDb2x1bW5zIiwiZ3dfdXBkYXRlQ29udGV4dCIsImd3X2luaXQiLCJsaWNlbnNlIiwiYWdHcmlkIiwiTGljZW5zZU1hbmFnZXIiLCJzZXRMaWNlbnNlS2V5IiwiY29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJpbm5lckhUTUwiLCJwYXJzZWRPcHRpb25zIiwiZ3dfcGFyc2VPcHRpb25zIiwiaW5zdGFuY2UiLCJHcmlkIiwibG9nIiwiZGVlcFBhcnNlZE9wdGlvbnMiLCJnZXREYXRhUGF0aFRlbXBsYXRlIiwiZ2V0RGF0YVBhdGgiLCJkZWJvdW5jZUR1cmF0aW9uIiwiZmluYWxPcHRpb25zIiwiZ2V0RG9jdW1lbnQiLCJvbkNlbGxFZGl0aW5nU3RhcnRlZCIsIm9uQ2VsbEVkaXRpbmdTdG9wcGVkIiwib25DZWxsVmFsdWVDaGFuZ2VkIiwib25Sb3dFZGl0aW5nU3RhcnRlZCIsIm9uUm93RWRpdGluZ1N0b3BwZWQiLCJvblJvd1ZhbHVlQ2hhbmdlZCIsIm9uQ2VsbENsaWNrZWQiLCJvbkNlbGxEb3VibGVDbGlja2VkIiwib25HcmlkUmVhZHkiLCJnZXRSb3dOb2RlSWQiLCJnd19nZXRSb3dOb2RlSWQiLCJnZXRDb250ZXh0TWVudUl0ZW1zIiwiZ3dfb25Sb3dEb3VibGVDbGlja2VkIiwiZ3dfb25TZWxlY3Rpb25DaGFuZ2VkIiwiZ3dfb25SYW5nZVNlbGVjdGlvbkNoYW5nZWQiLCJBZ0dyaWRDb21wb25lbnRzIiwibmF2aWdhdGVUb05leHRDZWxsIiwidHJlZURhdGEiLCJnZXREYXRhUGF0aFRlbXBsYXRlQ29tcGxpZWQiLCJmb3JtYXRTZWxlY3RvciIsImd3X3NldFN0eWxlIiwiZ3dfcmVtb3ZlU3R5bGUiLCJnd19nZXRDb250ZXh0TWVudSIsImdyaWRJZCIsImJ1aWxkQ29udGV4dE1lbnVBY3Rpb24iLCJ2IiwicGFyc2VNZW51IiwibWVudSIsImNvbnRleHRNZW51IiwiZ3dfc2hvd0xvYWRpbmdPdmVybGF5Iiwic2hvd0xvYWRpbmdPdmVybGF5IiwiZ3dfc2hvd05vUm93c092ZXJsYXkiLCJzaG93Tm9Sb3dzT3ZlcmxheSIsImd3X2hpZGVPdmVybGF5IiwiaGlkZU92ZXJsYXkiLCJnd19zZXRRdWlja0ZpbHRlciIsInNldFF1aWNrRmlsdGVyIiwiZ3dfZXhwYW5kQWxsIiwiZXhwYW5kQWxsIiwiZ3dfY29sbGFwc2VBbGwiLCJjb2xsYXBzZUFsbCIsImd3X2Vuc3VyZUluZGV4VmlzaWJsZSIsInJvd0lkIiwiZW5zdXJlSW5kZXhWaXNpYmxlIiwiZ3dfbmF2aWdhdGVUb05leHRSb3ciLCJwcmV2aW91c0NlbGwiLCJwcmV2aW91c0NlbGxQb3NpdGlvbiIsInN1Z2dlc3RlZE5leHRDZWxsIiwibmV4dENlbGxQb3NpdGlvbiIsIktFWV9VUCIsIktFWV9ET1dOIiwiS0VZX0xFRlQiLCJLRVlfUklHSFQiLCJmb3JFYWNoTm9kZSIsInNldFNlbGVjdGVkIiwiZ3dfc2V0Um93c0RhdGEiLCJqc29uIiwic2V0Um93RGF0YSIsImd3X3NldFJvd0RhdGEiLCJ1cGRhdGVSb3dEYXRhIiwiZ3dfcmVtb3ZlUm93cyIsImluZGV4ZXMiLCJpdGVtcyIsImd3X2FkZFJvd3MiLCJhZGQiLCJhZGRJbmRleCIsImd3X3NldFJvd3NIZWlnaHQiLCJoZWlnaHQiLCJzZXRSb3dIZWlnaHQiLCJvblJvd0hlaWdodENoYW5nZWQiLCJnd19zZXRSb3dIZWlnaHQiLCJnZXREaXNwbGF5ZWRSb3dBdEluZGV4IiwiZ3dfc2V0U2VsZWN0ZWRSb3dzIiwiZm9yRWFjaE5vZGVBZnRlckZpbHRlckFuZFNvcnQiLCJleHBhbmRlZCIsIm9uR3JvdXBFeHBhbmRlZE9yQ29sbGFwc2VkIiwiZ3dfc2VsZWN0QWxsIiwiZmlsdGVyZWQiLCJzZWxlY3RBbGxGaWx0ZXJlZCIsInNlbGVjdEFsbCIsImd3X2Rlc2VsZWN0QWxsIiwiZGVzZWxlY3RBbGxGaWx0ZXJlZCIsImRlc2VsZWN0QWxsIiwiZ3dfZ2V0U2VsZWN0ZWRSb3dzIiwibm9kZXMiLCJnZXRTZWxlY3RlZE5vZGVzIiwiZ3dfZ2V0U2VsZWN0ZWRSb3ciLCJnd19zZXRTdGF0ZSIsInNldENvbHVtblN0YXRlIiwic2V0Q29sdW1uR3JvdXBTdGF0ZSIsImdyb3VwcyIsInNldFNvcnRNb2RlbCIsInNvcnQiLCJzZXRGaWx0ZXJNb2RlbCIsImZpbHRlcnMiLCJnd19nZXRTdGF0ZSIsImdldENvbHVtblN0YXRlIiwiZ2V0Q29sdW1uR3JvdXBTdGF0ZSIsImdldFNvcnRNb2RlbCIsImdldEZpbHRlck1vZGVsIiwiZ3dfc2V0U3RhdHVzYmFyQ29tcG9uZW50VmlzaWJpbGl0eSIsInZpc2liaWxpdHkiLCJnZXRTdGF0dXNQYW5lbCIsInNldFZpc2libGUiLCJnd19zZXRTaWRlQmFyVmlzaWJsZSIsInNldFNpZGVCYXJWaXNpYmxlIiwiZ3dfb3BlblRvb2xwYW5lbCIsInRvb2xwYW5lbElkIiwib3BlblRvb2xQYW5lbCIsImd3X2Nsb3NlVG9vbHBhbmVsIiwiY2xvc2VUb29sUGFuZWwiLCJnd19zZXRGdW5jdGlvbnNSZWFkT25seSIsInNldEZ1bmN0aW9uc1JlYWRPbmx5IiwiZ3dfZ2V0RG9jdW1lbnQiLCIkZG9jIiwiZ3dfZ2V0V2luZG93IiwiJHdpbiIsImd3X2VzY2FwZSIsImd3X3V1aWQiLCJnd19nZXRHcmlkIiwiQkJqR3JpZEV4V2lkZ2V0IiwicmVnaXN0ZXJlZEdyaWRzIiwiZ3dfYWRkR3JpZCIsIkdXX0VWRU5UX1JPV19DTElDSyIsIkdXX0VWRU5UX1JPV19ET1VCTEVfQ0xJQ0siLCJHV19FVkVOVF9DRUxMX0NMSUNLIiwiR1dfRVZFTlRfQ0VMTF9ET1VCTEVfQ0xJQ0siLCJHV19FVkVOVF9DRUxMX0VESVRJTkdfU1RBUlRFRCIsIkdXX0VWRU5UX0NFTExfRURJVElOR19TVE9QUEVEIiwiR1dfRVZFTlRfQ0VMTF9WQUxVRV9DSEFOR0VEIiwiR1dfRVZFTlRfUk9XX0VESVRJTkdfU1RBUlRFRCIsIkdXX0VWRU5UX1JPV19FRElUSU5HX1NUT1BQRUQiLCJHV19FVkVOVF9HUklEX1NUQVRFX0NIQU5HRSIsIkdXX0VWRU5UX1JBTkdFX1NFTEVDVElPTl9DSEFOR0VEIiwiR1dfRVZFTlRfS0VZUFJFU1MiLCJDRUxMX0VESVRJTkdfRVZFTlRTX01BUCIsIlJPV19FRElUSU5HX0VWRU5UU19NQVAiLCJnd19vbkNlbGxFZGl0aW5nRXZlbnQiLCJvbGRWYWx1ZSIsImd3X29uUm93RWRpdGluZ0V2ZW50IiwiZ3dfb25LZXlkb3duIiwia2V5ZG93bkV2ZW50Iiwia2MiLCJ3aGljaCIsImFrIiwiYWx0S2V5Iiwic2siLCJzaGlmdEtleSIsImNrIiwiY3RybEtleSIsImd3X29uUmVhZHlFdmVudCIsInN0YXRlRGVib3VuY2UiLCJjaGFuZ2VFdmVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJrZXlib2FyZERlYm91bmNlIiwiQ0VMTF9DTElDS0lOR19FVkVOVFNfTUFQIiwiZ3dfb25DZWxsQ2xpY2tFdmVudCIsImd3X29uU3RhdGVDaGFuZ2VkIiwiZ3dfZGVib3VuY2UiLCJ3YWl0IiwiaW1tZWRpYXRlIiwidGltZW91dCIsImxhdGVyIiwiY2FsbE5vdyIsImNsZWFyVGltZW91dCIsImd3X3NlbmRFdmVudCIsInBheWxvYWQiLCJldmVudElkIiwicmVnaXN0ZXJlZEludGVyZXN0cyIsImludGVyZXN0cyIsImRpdiIsIkN1c3RvbUV2ZW50IiwiZGlzcGF0Y2hFdmVudCIsImd3X3BhcnNlTm9kZSIsImdyb3VwIiwicm93Tm9kZUlkIiwiY2hpbGRJbmRleCIsInNlbGVjdGVkIiwiZ3dfcGFyc2VOb2RlRnJvbUV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJkZXRhaWwiLCJjcmVhdGVFdmVudCIsImluaXRDdXN0b21FdmVudCIsIkV2ZW50IiwiZmluZCIsInByZWRpY2F0ZSIsImxlbiIsImsiLCJrVmFsdWUiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtEQUEwQyxnQ0FBZ0M7QUFDMUU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnRUFBd0Qsa0JBQWtC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bkJBO0FBb0JBLGNBcEJBO0FBcUJBLGFBckJBO0FBc0JBLGFBdEJBO0FBdUJBLGNBdkJBO0FBd0JBLGFBeEJBO0FBeUJBLGFBekJBO0FBMEJBLGNBMUJBO0FBMkJBLGFBM0JBO0FBNEJBLGFBNUJBO0FBNkJBLGNBN0JBO0FBOEJBLGNBOUJBO0FBK0JBLGFBL0JBO0FBZ0NBLGNBaENBO0FBaUNBLGNBakNBO0FBa0NBLGFBbENBO0FBbUNBLGNBbkNBO0FBb0NBLGNBcENBO0FBcUNBLGFBckNBO0FBc0NBLGNBdENBO0FBdUNBLGNBdkNBO0FBd0NBLGFBeENBO0FBeUNBLGNBekNBO0FBMENBLGNBMUNBO0FBMkNBLGFBM0NBO0FBNENBLGNBNUNBO0FBNkNBLGNBN0NBO0FBOENBLGFBOUNBO0FBK0NBLGNBL0NBO0FBZ0RBLGNBaERBO0FBaURBLGFBakRBO0FBa0RBLGNBbERBO0FBbURBLGNBbkRBO0FBb0RBLGFBcERBO0FBcURBLGNBckRBO0FBc0RBLGNBdERBO0FBdURBLGFBdkRBO0FBd0RBLGNBeERBO0FBeURBLGNBekRBO0FBMERBLGFBMURBO0FBMkRBLGNBM0RBO0FBNERBLGNBNURBO0FBNkRBLGFBN0RBO0FBOERBLGNBOURBO0FBK0RBLGNBL0RBO0FBZ0VBLGFBaEVBO0FBaUVBLGNBakVBO0FBa0VBLGNBbEVBO0FBbUVBLGFBbkVBO0FBb0VBLGNBcEVBO0FBcUVBLGNBckVBO0FBc0VBLGFBdEVBO0FBdUVBLGNBdkVBO0FBd0VBLGNBeEVBO0FBeUVBLGFBekVBO0FBMEVBLGNBMUVBO0FBMkVBLGNBM0VBO0FBNEVBLGFBNUVBO0FBNkVBLGNBN0VBO0FBOEVBLGNBOUVBO0FBK0VBLGFBL0VBO0FBZ0ZBLGNBaEZBO0FBaUZBLGNBakZBO0FBa0ZBLGFBbEZBO0FBbUZBLGNBbkZBO0FBb0ZBLGNBcEZBO0FBcUZBLGFBckZBO0FBc0ZBLGNBdEZBO0FBdUZBLGNBdkZBO0FBd0ZBLGFBeEZBO0FBeUZBLGNBekZBO0FBMEZBLGNBMUZBO0FBMkZBLGFBM0ZBO0FBNEZBLGNBNUZBO0FBNkZBLGNBN0ZBO0FBOEZBLGFBOUZBO0FBK0ZBLGNBL0ZBO0FBZ0dBLGNBaEdBO0FBaUdBLGFBakdBO0FBa0dBLGNBbEdBO0FBbUdBLGNBbkdBO0FBb0dBLGFBcEdBO0FBcUdBLGNBckdBO0FBc0dBLGNBdEdBO0FBdUdBLGFBdkdBO0FBd0dBLGNBeEdBO0FBeUdBLGNBekdBO0FBMEdBLGFBMUdBO0FBMkdBLGNBM0dBO0FBNEdBLGNBNUdBO0FBNkdBLGFBN0dBO0FBOEdBLGNBOUdBO0FBK0dBLGNBL0dBO0FBZ0hBLGFBaEhBO0FBaUhBLGNBakhBO0FBa0hBLGNBbEhBO0FBbUhBLGFBbkhBO0FBb0hBLGNBcEhBO0FBcUhBLGNBckhBO0FBc0hBLGFBdEhBO0FBdUhBLGNBdkhBO0FBd0hBLGNBeEhBO0FBeUhBLGFBekhBO0FBMEhBLGNBMUhBO0FBMkhBLGNBM0hBO0FBNEhBLGFBNUhBO0FBNkhBLGNBN0hBO0FBOEhBLGNBOUhBO0FBK0hBLGFBL0hBO0FBZ0lBLGNBaElBO0FBaUlBLGNBaklBO0FBa0lBLGFBbElBO0FBbUlBLGNBbklBO0FBb0lBLGNBcElBO0FBcUlBLGFBcklBO0FBc0lBLGNBdElBO0FBdUlBLGNBdklBO0FBd0lBLGFBeElBO0FBeUlBLGNBeklBO0FBMElBLGNBMUlBO0FBMklBLGFBM0lBO0FBNElBLGNBNUlBO0FBNklBLGNBN0lBO0FBOElBLGFBOUlBO0FBK0lBLGNBL0lBO0FBZ0pBLGNBaEpBO0FBaUpBLGFBakpBO0FBa0pBLGNBbEpBO0FBbUpBLGNBbkpBO0FBb0pBLGFBcEpBO0FBcUpBLGNBckpBO0FBc0pBLGNBdEpBO0FBdUpBLGFBdkpBO0FBd0pBLGNBeEpBO0FBeUpBLGNBekpBO0FBMEpBLGFBMUpBO0FBMkpBLGNBM0pBO0FBNEpBLGNBNUpBO0FBNkpBLGFBN0pBO0FBOEpBLGNBOUpBO0FBK0pBLGNBL0pBO0FBZ0tBLGFBaEtBO0FBaUtBLGNBaktBO0FBa0tBLGNBbEtBO0FBbUtBLGFBbktBO0FBb0tBLGNBcEtBO0FBcUtBLGNBcktBO0FBc0tBLGFBdEtBO0FBdUtBLGNBdktBO0FBd0tBLGNBeEtBO0FBeUtBLGFB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Q0FBb0MsdUJBQXVCLEVBQUUsb0NBQW9DLHdCQUF3QixFQUFFLG9DQUFvQyx1QkFBdUIsRUFBRSxvQ0FBb0Msd0JBQXdCLEVBQUUsb0NBQW9DLHVCQUF1QixFQUFFLG9DQUFvQyx3QkFBd0IsRUFBRSxvQ0FBb0MsdUJBQXVCLEVBQUUsb0NBQW9DLHdCQUF3QixFQUFFLG9DQUFvQyx1QkFBdUIsRUFBRSxvQ0FBb0Msd0JBQXdCLEVBQUUsb0NBQW9DLHVCQUF1QixFQUFFLG9DQUFvQyx3QkFBd0IsRUFBRSxvQ0FBb0MsdUJBQXVCLEVBQUUsb0NBQW9DLHdCQUF3QixFQUFFLG9DQUFvQyx1QkFBdUIsRUFBRSxvQ0FBb0Msd0JBQXdCLEVBQUUsb0NBQW9DLHVCQUF1QixFQUFFLG9DQUFvQyx3QkFBd0IsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNBQXFDLHdCQUF3QixFQUFFLHFDQUFxQyx5QkFBeUIsRUFBRSxxQ0FBcUMsd0JBQXdCLEVBQUUscUNBQXFDLHlCQUF5QixFQUFFLHFDQUFxQyx3QkFBd0IsRUFBRSxxQ0FBcUMseUJBQXlCLEVBQUUscUNB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QUEwRCwwQkFBMEIsRUFBRSwwREFBMEQsMkJBQTJCLEVBQUUsMERBQTBELDBCQUEwQixFQUFFLDBEQUEwRCwyQkFBMkIsRUFBRSwwREFBMEQsMEJBQTBCLEVBQUUsMERBQTBELDJCQUEyQixFQUFFLDBEQUEwRCwwQkFBMEIsRUFBRSwwREFBMEQsMkJBQTJCLEVBQUUsMERBQTBELDBCQUEwQixFQUFFLDBEQUEwRCwyQkFBMkIsRUFBRSwwREFBMEQsMEJBQTBCLEVBQUUsMERBQTBELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDRCQUE0QixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCw0QkFBNEIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsNEJBQTRCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDRCQUE0QixFQUFFLDJEQUEyRCwwQkFBMEIsRUFBRSwyREFBMkQsMkJBQTJCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCw0QkFBNEIsRUFBRSwyREFBMkQsMEJBQTBCLEVBQUUsMkRBQTJELDJCQUEyQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFBMkQsNEJBQTRCLEVBQUUsMkRBQTJELDBCQUEwQixFQUFFLDJEQUEyRCwyQkFBMkIsRUFBRSwyREFB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LEVBQUUscURBQXFELDBCQUEwQixFQUFFLHFEQUFxRCwyQkFBMkIsRUFBRSxxREFBcUQsMEJBQTBCLEVBQUUscURBQXFELDJCQUEyQixFQUFFLHFEQUFxRCwwQkFBMEIsRUFBRSxxREFBcUQsMkJBQTJCLEVBQUUscURBQXFELDBCQUEwQixFQUFFLHFEQUFxRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCw0QkFBNEIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsNEJBQTRCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDRCQUE0QixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCw0QkFBNEIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsNEJBQTRCLEVBQUUsc0RBQXNELDBCQUEwQixFQUFFLHNEQUFzRCwyQkFBMkIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDRCQUE0QixFQUFFLHNEQUFzRCwwQkFBMEIsRUFBRSxzREFBc0QsMkJBQTJCLEVBQUUsc0RBQXNELDJCQUEyQixFQUFFLHNEQUFzRCw0QkFBNEIsRUFBRSxzREFBc0QsMEJBQTBCLEVBQUUsc0RBQXNELDJCQUEyQixF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d0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwwQkFBMEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMEJBQTBCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDBCQUEwQixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdELDRCQUE0QixFQUFFLHdEQUF3RCwyQkFBMkIsRUFBRSx3REFBd0QsNEJBQTRCLEVBQUUsd0RBQXdELDJCQUEyQixFQUFFLHdEQUF3RCw0QkFBNEIsRUFBRSx3REFBd0QsMkJBQTJCLEVBQUUsd0RBQXdE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QUMsQ0FBQ3dVLENBQUQsQ0FBZDs7QUFDQSxZQUFJRixTQUFTLENBQUM3YSxJQUFWLENBQWUrRSxPQUFmLEVBQXdCaVcsTUFBeEIsRUFBZ0NELENBQWhDLEVBQW1DeFUsQ0FBbkMsQ0FBSixFQUEyQztBQUN6QyxpQkFBT3lVLE1BQVA7QUFDRCxTQVJhLENBU2Q7OztBQUNBRCxTQUFDO0FBQ0YsT0FsQ3lCLENBb0MxQjs7O0FBQ0EsYUFBTzdjLFNBQVA7QUFDRCxLQXZDNEM7QUF3QzdDbnlCLGdCQUFZLEVBQUUsSUF4QytCO0FBeUM3Q08sWUFBUSxFQUFFO0FBekNtQyxHQUEvQztBQTJDRCxDOzs7Ozs7Ozs7Ozs7QUNwRUQsY0FBYyxtQkFBTyxDQUFDLGlOQUErRzs7QUFFckksNENBQTRDLFFBQVM7O0FBRXJEO0FBQ0E7Ozs7QUFJQSxlQUFlOztBQUVmO0FBQ0Esa0NBQWtDOztBQUVsQyxhQUFhLG1CQUFPLENBQUMsc0dBQW1EOztBQUV4RTs7QUFFQSxHQUFHLEtBQVUsRUFBRSxFIiwiZmlsZSI6ImJiai1ncmlkLXdpZGdldC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTtcbiIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4vKipcbiAqIE51bWJlck1hc2tcbiAqXG4gKiBBIGphdmFzY3JpcHQgaW1wbGVtZW50YXRpb24gZm9yIEJCaiBudW1iZXJzIG1hc2tpbmdcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBOdW1iZXJNYXNrIHtcbiAgLyoqXG4gICAqIE1hc2sgdGhlIGdpdmVuIG51bWJlciB3aXRoIHRoZSBnaXZlbiBtYXNrIGFjY29yZGluZyB0byBCQmogcnVsZXNcbiAgICpcbiAgICogQHBhcmFtIHtOdW1iZXJ9IG51bWJlciB0aGUgbnVtYmVyIHRvIGZvcm1hdFxuICAgKiBAcGFyYW0ge1N0cmluZ30gbWFzayB0aGUgbWFzayB0byB1c2UgZm9yIGZvcm1hdHRpbmdcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtncm91cGluZ1NlcGFyYXRvcj0sXSAtIGEgY2hhciB3aGljaCB3aWxsIGJlIHVzZWQgYXMgYSBncm91cGluZyBzZXBhcmF0b3JcbiAgICogQHBhcmFtIHtTdHJpbmd9IFtkZWNpbWFsU2VwYXJhdG9yPS5dICAtIGEgY2hhciB3aGljaCB3aWxsIGJlIHVzZWQgYXMgYSBkZWNpbWFsIHNlcGFyYXRvclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtmb3JjZVRyYWlsaW5nWmVyb3M9ZmFsc2VdIC0gQWZmZWN0cyB0aGUgb3V0cHV0IGJ5IHN3aXRjaGluZyB0aGUgd2F5IGEgbWFzayB3aXRoIFwiI1wiIGNoYXJhY3RlcnMgaW4gdGhlIHRyYWlsaW5nIHBvc2l0aW9ucyBpcyBmaWxsZWQuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlLCB0aGUgZnVuY3Rpb24gYE51bWJlck1hc2subWFzayguMTA6XCIjLiMjXCIpYCByZXR1cm5zIGAgLjEwYCBpbnN0ZWFkIG9mIGAgLjEgYFxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtsb29zZT10cnVlXSB3aGVuIHRydWUgLCBlcnJvcnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB0aGUgbWV0aG9kIHdpbGwgdHJ5IGF0IGFwcGx5IHRoZSBtYXNrXG4gICAqICAgICAgICAgICAgICAgIGFueXdheSAsIG90aGVyd2lzZSBpdCB3aWxsIHN0b3AgYXQgZmlyc3QgZXJyb3IgYW5kIHRocm93IGl0LlxuICAgKiBcbiAgICogQHRocm93cyB7TWFza0Vycm9yfSBvbmx5IGlmIGxvb3NlIGlzIGRpc2FibGVkXG4gICAqIFxuICAgKiBAcmV0dXJucyB7U3RyaW5nfSB0aGUgbWFza2VkIG51bWJlclxuICAgKi9cbiAgc3RhdGljIG1hc2soXG4gICAgbnVtYmVyLFxuICAgIG1hc2ssXG4gICAgZ3JvdXBpbmdTZXBhcmF0b3IgPSAnLCcsXG4gICAgZGVjaW1hbFNlcGFyYXRvciA9ICcuJyxcbiAgICBmb3JjZVRyYWlsaW5nWmVyb3MgPSBmYWxzZSxcbiAgICBsb29zZSA9IHRydWVcbiAgKSB7XG4gICAgY29uc3QgbWFza0xlbiA9IG1hc2subGVuZ3RoXG4gICAgaWYgKDAgPT09IG1hc2tMZW4pIHtcbiAgICAgIGlmIChsb29zZSkgcmV0dXJuIHN0clxuICAgICAgLy8gZnJpZW5kbHkgc2lsZW50IGZhaWxcbiAgICAgIGVsc2VcbiAgICAgICAgdGhyb3cge1xuICAgICAgICAgIG5hbWU6ICdNYXNrRXJyb3InLFxuICAgICAgICAgIG1lc3NhZ2U6IGBNYXNrRXJyb3I6IE1hc2sgaXMgZW1wdHlgXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZXQgbWFnbml0dWRlIGFuZCBwcmVjaXNpb24gb2YgTUFTS1xuICAgIGxldCBtYXNrQmVmb3JlRGVjaW1hbCA9IDBcbiAgICBsZXQgbWFza0FmdGVyRGVjaW1hbCA9IDBcbiAgICBsZXQgZm91bmREZWNpbWFsID0gZmFsc2VcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2tMZW47ICsraSkge1xuICAgICAgY29uc3QgbSA9IG1hc2suY2hhckF0KGkpXG4gICAgICBpZiAobSA9PSAnMCcgfHwgbSA9PSAnIycpIHtcbiAgICAgICAgaWYgKGZvdW5kRGVjaW1hbCkgKyttYXNrQWZ0ZXJEZWNpbWFsXG4gICAgICAgIGVsc2UgKyttYXNrQmVmb3JlRGVjaW1hbFxuICAgICAgfSBlbHNlIGlmIChtID09ICcuJykgZm91bmREZWNpbWFsID0gdHJ1ZVxuICAgIH1cblxuICAgIGxldCBudW0gPSBOdW1iZXJNYXNrLl9yb3VuZChudW1iZXIsIG1hc2tBZnRlckRlY2ltYWwpXG4gICAgbGV0IGJ5dGVzID0gTnVtYmVyTWFzay5fdG9DaGFyQXJyYXkobnVtKVxuXG4gICAgLy8gR2V0IG1hZ25pdHVkZSBhbmQgcHJlY2lzaW9uIG9mIE5VTUJFUlxuICAgIGxldCBpbkxlbiA9IGJ5dGVzLmxlbmd0aFxuICAgIGxldCBudW1CZWZvcmVEZWNpbWFsID0gMFxuICAgIGxldCBudW1BZnRlckRlY2ltYWwgPSAwXG4gICAgZm91bmREZWNpbWFsID0gZmFsc2VcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluTGVuOyArK2kpIHtcbiAgICAgIGlmIChieXRlc1tpXSA9PSAnLicpIGZvdW5kRGVjaW1hbCA9IHRydWVcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoZm91bmREZWNpbWFsKSArK251bUFmdGVyRGVjaW1hbFxuICAgICAgICBlbHNlICsrbnVtQmVmb3JlRGVjaW1hbFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFsd2F5cyBpZ25vcmUgbWFzayBvdmVyZmxvd1xuICAgIGlmIChudW1CZWZvcmVEZWNpbWFsID4gbWFza0JlZm9yZURlY2ltYWwpIHtcbiAgICAgIGlmIChsb29zZSkgcmV0dXJuIG51bWJlci50b1N0cmluZygpXG4gICAgICAvLyBmcmllbmRseSBzaWxlbnQgZmFpbFxuICAgICAgZWxzZVxuICAgICAgICB0aHJvdyB7XG4gICAgICAgICAgbmFtZTogJ01hc2tFcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogYE1hc2tFcnJvcjogTnVtYmVyIGlzIHRvbyBsYXJnZSBmb3IgbWFza2BcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHJvdW5kIGlmIG1hc2sgaXMgZm9yIGEgbG93ZXIgcHJlY2lzaW9uIG51bWJlclxuICAgIGlmIChudW1BZnRlckRlY2ltYWwgPiBtYXNrQWZ0ZXJEZWNpbWFsKSB7XG4gICAgICBudW0gPSBOdW1iZXJNYXNrLl9yb3VuZChudW0sIG1hc2tBZnRlckRlY2ltYWwpXG4gICAgICBieXRlcyA9IE51bWJlck1hc2suX3RvQ2hhckFycmF5KG51bSlcbiAgICAgIGluTGVuID0gYnl0ZXMubGVuZ3RoXG5cbiAgICAgIC8vIEdldCBuZXcgbWFnbml0dWRlIGFuZCBwcmVjaXNpb24gb2YgTlVNQkVSXG4gICAgICBudW1CZWZvcmVEZWNpbWFsID0gMFxuICAgICAgbnVtQWZ0ZXJEZWNpbWFsID0gMFxuICAgICAgZm91bmREZWNpbWFsID0gZmFsc2VcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5MZW47ICsraSkge1xuICAgICAgICBpZiAoYnl0ZXNbaV0gPT0gJy4nKSBmb3VuZERlY2ltYWwgPSB0cnVlXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmIChmb3VuZERlY2ltYWwpICsrbnVtQWZ0ZXJEZWNpbWFsXG4gICAgICAgICAgZWxzZSArK251bUJlZm9yZURlY2ltYWxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBhbHdheXMgaWdub3JlIG1hc2sgb3ZlcmZsb3dcbiAgICAgIGlmIChudW1CZWZvcmVEZWNpbWFsID4gbWFza0JlZm9yZURlY2ltYWwpIHtcbiAgICAgICAgaWYgKGxvb3NlKSByZXR1cm4gbnVtYmVyLnRvU3RyaW5nKClcbiAgICAgICAgLy8gZnJpZW5kbHkgc2lsZW50IGZhaWxcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHRocm93IHtcbiAgICAgICAgICAgIG5hbWU6ICdNYXNrRXJyb3InLFxuICAgICAgICAgICAgbWVzc2FnZTogYE1hc2tFcnJvcjogTnVtYmVyIGlzIHRvbyBsYXJnZSBmb3IgbWFza2BcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGZpbGxCeXRlID0gJyAnLFxuICAgICAgZmxvYXRCeXRlID0gJyAnXG4gICAgbGV0IGluUG9zID0gMCxcbiAgICAgIG91dFBvcyA9IDAsXG4gICAgICBmbG9hdFBvcyA9IDBcbiAgICBpZiAobWFzay5jaGFyQXQoMCkgPT0gJyonKSBmaWxsQnl0ZSA9ICcqJ1xuXG4gICAgY29uc3QgZmlsbEluaXQgPSBmaWxsQnl0ZVxuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSBOdW1iZXJNYXNrLl9nZXRTaWduKG51bSkgPCAwXG4gICAgbGV0IGVtaXREZWNpbWFsID0gaW5MZW4gPiAwIHx8IG1hc2suaW5kZXhPZignMCcpID49IDBcbiAgICBsZXQgZm91bmRaZXJvID0gZmFsc2VcbiAgICBsZXQgZm91bmREaWdpdCA9IGZhbHNlXG4gICAgbGV0IGN1cnJlbmN5ID0gZmFsc2VcbiAgICBmb3VuZERlY2ltYWwgPSBmYWxzZVxuXG4gICAgbGV0IHJldCA9IG5ldyBBcnJheShtYXNrTGVuKVxuXG4gICAgZm9yIChsZXQgbWFza1BvcyA9IDA7IG1hc2tQb3MgPCBtYXNrTGVuOyArK21hc2tQb3MpIHtcbiAgICAgIGxldCBtID0gbWFzay5jaGFyQXQobWFza1BvcylcbiAgICAgIHN3aXRjaCAobSkge1xuICAgICAgICBjYXNlICcwJzpcbiAgICAgICAgICAtLW1hc2tCZWZvcmVEZWNpbWFsXG4gICAgICAgICAgaWYgKG1hc2tCZWZvcmVEZWNpbWFsIDwgbnVtQmVmb3JlRGVjaW1hbCAmJiBpblBvcyA8IGluTGVuKSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGJ5dGVzW2luUG9zXVxuICAgICAgICAgICAgKytpblBvc1xuICAgICAgICAgICAgZm91bmREaWdpdCA9IHRydWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSAnMCdcbiAgICAgICAgICAgIGZvdW5kWmVybyA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJyMnOlxuICAgICAgICAgIC0tbWFza0JlZm9yZURlY2ltYWxcbiAgICAgICAgICBpZiAobWFza0JlZm9yZURlY2ltYWwgPCBudW1CZWZvcmVEZWNpbWFsICYmIGluUG9zIDwgaW5MZW4pIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gYnl0ZXNbaW5Qb3NdXG4gICAgICAgICAgICArK2luUG9zXG4gICAgICAgICAgICBmb3VuZERpZ2l0ID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9XG4gICAgICAgICAgICAgIGZvdW5kRGVjaW1hbCAmJlxuICAgICAgICAgICAgICBmb3JjZVRyYWlsaW5nWmVyb3MgJiZcbiAgICAgICAgICAgICAgTnVtYmVyTWFzay5fZ2V0U2lnbihudW0pICE9IDBcbiAgICAgICAgICAgICAgICA/ICcwJ1xuICAgICAgICAgICAgICAgIDogZmlsbEJ5dGVcbiAgICAgICAgICAgIGlmICghZm91bmREZWNpbWFsKSBmbG9hdFBvcyA9IG1hc2tQb3NcbiAgICAgICAgICB9XG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJywnOlxuICAgICAgICAgIGlmIChmb3VuZFplcm8gfHwgaW5Qb3MgPiAwKSByZXRbb3V0UG9zXSA9IGdyb3VwaW5nU2VwYXJhdG9yXG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgICAgICBpZiAoIWZvdW5kRGVjaW1hbCkgZmxvYXRQb3MgPSBtYXNrUG9zXG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICctJzpcbiAgICAgICAgICBpZiAoIWZvdW5kRGlnaXQgJiYgZmxvYXRCeXRlID09ICcgJykge1xuICAgICAgICAgICAgaWYgKGlzTmVnYXRpdmUpIGZsb2F0Qnl0ZSA9ICctJ1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAgICAgZmxvYXRQb3MgPSBmb3VuZERlY2ltYWwgPyAtMSA6IG1hc2tQb3NcbiAgICAgICAgICB9IGVsc2UgcmV0W291dFBvc10gPSBpc05lZ2F0aXZlID8gJy0nIDogZmlsbEJ5dGVcbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnKyc6XG4gICAgICAgICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgICAgIGZsb2F0Qnl0ZSA9IGlzTmVnYXRpdmUgPyAnLScgOiAnKydcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgICAgfSBlbHNlIHJldFtvdXRQb3NdID0gaXNOZWdhdGl2ZSA/ICctJyA6ICcrJ1xuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICckJzpcbiAgICAgICAgICBpZiAoIWZvdW5kRGlnaXQgJiYgZmxvYXRCeXRlID09ICcgJykge1xuICAgICAgICAgICAgZmxvYXRCeXRlID0gJyQnXG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgICAgICBmbG9hdFBvcyA9IGZvdW5kRGVjaW1hbCA/IC0xIDogbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9ICckJ1xuICAgICAgICAgIH1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgLy8gY2FzZSAnJic6XG4gICAgICAgIC8vICAgY3VycmVuY3kgPSB0cnVlXG4gICAgICAgIC8vICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgLy8gICAgIGZsb2F0Qnl0ZSA9ICcmJ1xuICAgICAgICAvLyAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAvLyAgICAgZmxvYXRQb3MgPSBmb3VuZERlY2ltYWwgPyAtMSA6IG1hc2tQb3NcbiAgICAgICAgLy8gICB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgcmV0W291dFBvc10gPSAnJidcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vICAgKytvdXRQb3NcbiAgICAgICAgLy8gICBicmVha1xuXG4gICAgICAgIC8vIGNhc2UgJ0AnOlxuICAgICAgICAvLyAgIGN1cnJlbmN5ID0gdHJ1ZVxuICAgICAgICAvLyAgIGlmICghZm91bmREaWdpdCAmJiBmbG9hdEJ5dGUgPT0gJyAnKSB7XG4gICAgICAgIC8vICAgICBmbG9hdEJ5dGUgPSAnQCdcbiAgICAgICAgLy8gICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgLy8gICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgIC8vICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIHJldFtvdXRQb3NdID0gJ0AnXG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgICsrb3V0UG9zXG4gICAgICAgIC8vICAgYnJlYWtcblxuICAgICAgICBjYXNlICcoJzpcbiAgICAgICAgICBpZiAoIWZvdW5kRGlnaXQgJiYgZmxvYXRCeXRlID09ICcgJykge1xuICAgICAgICAgICAgaWYgKGlzTmVnYXRpdmUpIGZsb2F0Qnl0ZSA9ICcoJ1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAgICAgZmxvYXRQb3MgPSBmb3VuZERlY2ltYWwgPyAtMSA6IG1hc2tQb3NcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzTmVnYXRpdmUpIHtcbiAgICAgICAgICAgICAgcmV0W291dFBvc10gPSAnKCdcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZm91bmREZWNpbWFsID8gJyAnIDogZmlsbEJ5dGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJyknOlxuICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9ICcpJ1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZvdW5kRGVjaW1hbCA/ICcgJyA6IGZpbGxCeXRlXG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICdDJzpcbiAgICAgICAgICBpZiAobWFza1BvcyA8IG1hc2tMZW4gLSAxICYmIG1hc2suY2hhckF0KG1hc2tQb3MgKyAxKSA9PSAnUicpIHtcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJ0MnXG4gICAgICAgICAgICAgIHJldFtvdXRQb3MgKyAxXSA9ICdSJ1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0W291dFBvc10gPSAnICdcbiAgICAgICAgICAgICAgcmV0W291dFBvcyArIDFdID0gJyAnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXRQb3MgKz0gMlxuICAgICAgICAgICAgKyttYXNrUG9zXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJ0MnXG4gICAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICBpZiAobWFza1BvcyA8IG1hc2tMZW4gLSAxICYmIG1hc2suY2hhckF0KG1hc2tQb3MgKyAxKSA9PSAnUicpIHtcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJ0MnXG4gICAgICAgICAgICAgIHJldFtvdXRQb3MgKyAxXSA9ICdSJ1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0W291dFBvc10gPSAnRCdcbiAgICAgICAgICAgICAgcmV0W291dFBvcyArIDFdID0gJ1InXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvdXRQb3MgKz0gMlxuICAgICAgICAgICAgKyttYXNrUG9zXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJ0QnXG4gICAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJyonOlxuICAgICAgICAgIHJldFtvdXRQb3NdID0gJyonXG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJy4nOlxuICAgICAgICAgIHJldFtvdXRQb3NdID0gZW1pdERlY2ltYWwgPyBkZWNpbWFsU2VwYXJhdG9yIDogZmlsbEJ5dGVcbiAgICAgICAgICBmaWxsQnl0ZSA9ICcgJ1xuICAgICAgICAgIGZvdW5kRGVjaW1hbCA9IHRydWVcbiAgICAgICAgICArK2luUG9zXG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ0InOlxuICAgICAgICAgIHJldFtvdXRQb3NdID0gJyAnXG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0W291dFBvc10gPSBtXG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmbG9hdEJ5dGUgIT0gJyAnKSB7XG4gICAgICBpZiAoZmxvYXRQb3MgPCAwKSBmbG9hdFBvcyA9IG91dFBvc1xuICAgICAgd2hpbGUgKGZsb2F0UG9zID49IG1hc2tMZW4pIC0tZmxvYXRQb3NcbiAgICAgIGlmIChyZXRbZmxvYXRQb3NdID09IGZpbGxJbml0KSByZXRbZmxvYXRQb3NdID0gZmxvYXRCeXRlXG4gICAgfVxuXG4gICAgcmV0dXJuIHJldC5qb2luKCcnKVxuICB9XG5cbiAgc3RhdGljIF9zaGlmdChudW1iZXIsIHByZWNpc2lvbiwgcmV2ZXJzZVNoaWZ0KSB7XG4gICAgaWYgKHJldmVyc2VTaGlmdCkgcHJlY2lzaW9uID0gLXByZWNpc2lvblxuICAgIHZhciBudW1BcnJheSA9ICgnJyArIG51bWJlcikuc3BsaXQoJ2UnKVxuICAgIHJldHVybiArKFxuICAgICAgbnVtQXJyYXlbMF0gK1xuICAgICAgJ2UnICtcbiAgICAgIChudW1BcnJheVsxXSA/ICtudW1BcnJheVsxXSArIHByZWNpc2lvbiA6IHByZWNpc2lvbilcbiAgICApXG4gIH1cblxuICBzdGF0aWMgX3JvdW5kKG51bWJlciwgcHJlY2lzaW9uKSB7XG4gICAgcmV0dXJuIE51bWJlck1hc2suX3NoaWZ0KFxuICAgICAgTWF0aC5yb3VuZChOdW1iZXJNYXNrLl9zaGlmdChudW1iZXIsIHByZWNpc2lvbiwgZmFsc2UpKSxcbiAgICAgIHByZWNpc2lvbixcbiAgICAgIHRydWVcbiAgICApXG4gIH1cblxuICBzdGF0aWMgX3RvQ2hhckFycmF5KG51bWJlcikge1xuICAgIGNvbnN0IHNpZ251bSA9IE51bWJlck1hc2suX2dldFNpZ24obnVtYmVyKVxuICAgIGxldCBjaGFycyA9IFtdXG5cbiAgICBpZiAoc2lnbnVtICE9PSAwKSB7XG4gICAgICBsZXQgc3RyaW5nID0gc2lnbnVtIDwgMCA/IGAkey0xICogbnVtYmVyLnRvU3RyaW5nKCl9YCA6IG51bWJlci50b1N0cmluZygpXG5cbiAgICAgIGlmIChzdHJpbmcubGVuZ3RoID4gMSAmJiBzdHJpbmcuY2hhckF0KDApID09ICcwJylcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nLnN1YnN0cmluZygxKVxuXG4gICAgICAvLyBUaGUgc3RyaW5nIGNvbnRhaW5zIG9ubHkgWzAtOV0gYW5kICcuJ1xuICAgICAgY2hhcnMgPSBzdHJpbmcuc3BsaXQoJycpXG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYXJzXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2lnbiBvZiBhIG51bWJlclxuICAgKlxuICAgKiBAcGFyYW0ge051bWJlcn0geCBudW1iZXJcbiAgICogQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgcmVwcmVzZW50aW5nIHRoZSBzaWduIG9mIHRoZSBnaXZlbiBhcmd1bWVudC5cbiAgICogICAgICAgICAgICAgICAgICAgSWYgdGhlIGFyZ3VtZW50IGlzIGEgcG9zaXRpdmUgbnVtYmVyLCBuZWdhdGl2ZSBudW1iZXIsIHBvc2l0aXZlIHplcm9cbiAgICogICAgICAgICAgICAgICAgICAgb3IgbmVnYXRpdmUgemVybywgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIDEsIC0xLCAwIG9yIC0wIHJlc3BlY3RpdmVseS5cbiAgICogICAgICAgICAgICAgICAgICAgT3RoZXJ3aXNlLCBOYU4gaXMgcmV0dXJuZWQuXG4gICAqL1xuICBzdGF0aWMgX2dldFNpZ24oeCkge1xuICAgIHJldHVybiAoeCA+IDApIC0gKHggPCAwKSB8fCAreFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE51bWJlck1hc2tcbiIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgTnVtYmVyTWFzayBmcm9tICcuL051bWJlck1hc2snXG5cbmV4cG9ydCBkZWZhdWx0IE51bWJlck1hc2tcbiIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5jb25zdCBpc051bWJlclJlZ2V4ID0gL15cXGQrJC9cbmNvbnN0IGlzV2hpdGVzcGFjZVJlZ2V4ID0gL1xccy9cbmNvbnN0IHB1bmN0dWF0aW9uTGlzdCA9ICchXCIjJCUmXFwnKCkqKywtLi86Ozw9Pj9AW11eX2B7fH1+J1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgaW4gbG93ZXIgY2FzZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqL1xuY29uc3QgaXNMb3dlckNhc2UgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyID09IHN0ci50b0xvd2VyQ2FzZSgpICYmIHN0ciAhPSBzdHIudG9VcHBlckNhc2UoKVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgaW4gdXBwZXIgY2FzZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqL1xuY29uc3QgaXNVcHBlckNhc2UgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyID09IHN0ci50b1VwcGVyQ2FzZSgpICYmIHN0ciAhPSBzdHIudG9Mb3dlckNhc2UoKVxufVxuXG5jb25zdCBwYXNzT3JUaHJvd0Vycm9yID0gKGxvb3NlLCByZXQsIGksIHN0cikgPT4ge1xuICBpZiAoIWxvb3NlKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQXQoaSlcbiAgICBjb25zdCBwb3MgPSBpICsgMVxuICAgIHRocm93IHtcbiAgICAgIG5hbWU6ICdTdHJpbmdNYXNrRXJyb3InLFxuICAgICAgbWVzc2FnZTogYFN0cmluZ01hc2tFcnJvcjogZXJyb3IgYXBwbHlpbmcgbWFzayBhdCBwb3NpdGlvbiBcIiR7cG9zfVwiICwgY2hhciBcIiR7Y2hhcn1cImAsXG4gICAgICBwb3MsXG4gICAgICBjaGFyXG4gICAgfVxuICB9IGVsc2UgcmV0W2ldID0gJyAnXG59XG5cbi8qKlxuICogTnVtYmVyTWFza1xuICpcbiAqIEEgamF2YXNjcmlwdCBpbXBsZW1lbnRhdGlvbiBmb3IgQkJqIG51bWJlcnMgbWFza2luZ1xuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIFN0cmluZ01hc2sge1xuICAvKipcbiAgICogTWFzayB0aGUgZ2l2ZW4gc3RyaW5nIHdpdGggdGhlIGdpdmVuIG1hc2sgYWNjb3JkaW5nIHRvIEJCaiBydWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gc3RyIHRoZSBzdHJpbmcgdG8gbWFza1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbWFzayB0aGUgbWFzayB0byB1c2UgZm9yIGZvcm1hdHRpbmdcbiAgICogQHBhcmFtIHtCb29sZWFufSBbbG9vc2U9dHJ1ZV0gd2hlbiB0cnVlICwgZXJyb3JzIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIG1ldGhvZCB3aWxsIHRyeSBhdCBhcHBseSB0aGUgbWFza1xuICAgKiAgICAgICAgICAgICAgICBhbnl3YXkgLCBvdGhlcndpc2UgaXQgd2lsbCBzdG9wIGF0IGZpcnN0IGVycm9yIGFuZCB0aHJvdyBpdC5cbiAgICogXG4gICAqIEB0aHJvd3Mge01hc2tJc1Rvb1Nob3J0RXJyb3J9XG4gICAqIEB0aHJvd3Mge1N0cmluZ01hc2tFcnJvcn1cbiAgICogQHRocm93cyB7TWFza0Vycm9yfVxuICAgKiBcbiAgICogQHJldHVybnMge1N0cmluZ30gdGhlIG1hc2tlZCBzdHJpbmdcbiAgICovXG4gIHN0YXRpYyBtYXNrKHN0ciwgbWFzaywgbG9vc2UgPSB0cnVlKSB7XG4gICAgc3RyID0gU3RyaW5nKHN0cilcbiAgICBtYXNrID0gU3RyaW5nKG1hc2spXG4gICAgY29uc3QgbWFza0xlbiA9IG1hc2subGVuZ3RoXG4gICAgY29uc3Qgc3RyTGVuID0gc3RyLmxlbmd0aFxuXG4gICAgaWYgKHN0ckxlbiA+IG1hc2tMZW4pIHtcbiAgICAgIGlmIChsb29zZSkgcmV0dXJuIHN0clxuICAgICAgLy8gZnJpZW5kbHkgc2lsZW50IGZhaWxcbiAgICAgIGVsc2VcbiAgICAgICAgdGhyb3cge1xuICAgICAgICAgIG5hbWU6ICdNYXNrSXNUb29TaG9ydEVycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiBgTWFza0lzVG9vU2hvcnRFcnJvcjogTWFzayBpcyBzaG9ydGVyIHRoYW4gdGhlIHBhc3NlZCBzdHJpbmdgXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXkobWFza0xlbilcbiAgICBsZXQgcG9zID0gMCAvLyB0byBrZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBzdHJcbiAgICBsZXQgbWFza0J5dGUgPSAnJ1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrTGVuOyBpKyspIHtcbiAgICAgIG1hc2tCeXRlID0gbWFzay5jaGFyQXQoaSlcbiAgICAgIHN3aXRjaCAobWFza0J5dGUpIHtcbiAgICAgICAgY2FzZSAnWCc6IC8vIG1hdGNoIGFueSBjaGFyYWN0ZXJcbiAgICAgICAgICByZXRbaV0gPSBwb3MgPCBzdHJMZW4gPyBzdHIuY2hhckF0KHBvcykgOiAnICdcbiAgICAgICAgICArK3Bvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnQSc6IC8vIG1hdGNoIGxldHRlcjsgZm9yY2UgdXBwZXIgY2FzZVxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChpc1VwcGVyQ2FzZShieXRlKSkgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNMb3dlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGUudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ2EnOiAvLyBtYXRjaCBsZXR0ZXJcbiAgICAgICAgICBpZiAocG9zIDwgc3RyTGVuKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlID0gc3RyLmNoYXJBdChwb3MpXG4gICAgICAgICAgICBpZiAoaXNVcHBlckNhc2UoYnl0ZSkgfHwgaXNMb3dlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnMCc6IC8vIG1hdGNoIGRpZ2l0XG4gICAgICAgICAgaWYgKHBvcyA8IHN0ckxlbikge1xuICAgICAgICAgICAgY29uc3QgYnl0ZSA9IHN0ci5jaGFyQXQocG9zKVxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyUmVnZXgudGVzdChieXRlKSkgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdaJzogLy8gbWF0Y2ggbGV0dGVyIG9yIGRpZ2l0OyBmb3JjZSB1cHBlciBjYXNlXG4gICAgICAgICAgaWYgKHBvcyA8IHN0ckxlbikge1xuICAgICAgICAgICAgY29uc3QgYnl0ZSA9IHN0ci5jaGFyQXQocG9zKVxuICAgICAgICAgICAgaWYgKGlzVXBwZXJDYXNlKGJ5dGUpIHx8IGlzTnVtYmVyUmVnZXgudGVzdChieXRlKSkgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNMb3dlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGUudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICd6JzogLy8gbWF0Y2ggbGV0dGVyIG9yIGRpZ2l0XG4gICAgICAgICAgaWYgKHBvcyA8IHN0ckxlbikge1xuICAgICAgICAgICAgY29uc3QgYnl0ZSA9IHN0ci5jaGFyQXQocG9zKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBpc1VwcGVyQ2FzZShieXRlKSB8fFxuICAgICAgICAgICAgICBpc0xvd2VyQ2FzZShieXRlKSB8fFxuICAgICAgICAgICAgICBpc051bWJlclJlZ2V4LnRlc3QoYnl0ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnVSc6IC8vIG1hdGNoIGxldHRlciAoZm9yY2UgdXBwZXIgY2FzZSksIGRpZ2l0LCB3aGl0ZXNwYWNlIG9yIHB1bmN0dWF0aW9uLlxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChpc0xvd2VyQ2FzZShieXRlKSkgcmV0W2ldID0gYnl0ZS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgaXNVcHBlckNhc2UoYnl0ZSkgfHxcbiAgICAgICAgICAgICAgaXNOdW1iZXJSZWdleC50ZXN0KGJ5dGUpIHx8XG4gICAgICAgICAgICAgIGlzV2hpdGVzcGFjZVJlZ2V4LnRlc3QoYnl0ZSkgfHxcbiAgICAgICAgICAgICAgcHVuY3R1YXRpb25MaXN0LmluZGV4T2YoYnl0ZSkgPiAtMVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXRbaV0gPSBieXRlXG4gICAgICAgICAgICBlbHNlIHBhc3NPclRocm93RXJyb3IobG9vc2UsIHJldCwgaSwgc3RyKVxuICAgICAgICAgIH0gZWxzZSByZXRbaV0gPSAnICdcbiAgICAgICAgICArK3Bvc1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0W2ldID0gbWFza0J5dGVcbiAgICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgIGlmICghbG9vc2UpIHtcbiAgICAgICAgdGhyb3cgeyBuYW1lOiAnTWFza0Vycm9yJywgbWVzc2FnZTogJ01hc2sgY2Fubm90IGJlIGFwcGxpZWQnIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV0LmpvaW4oJycpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3RyaW5nTWFza1xuIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJiai1tYXNrcyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBTdHJpbmdNYXNrIGZyb20gJy4vU3RyaW5nTWFzaydcblxuZXhwb3J0IGRlZmF1bHQgU3RyaW5nTWFza1xuIiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy1ncmlkLmNzc1wiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuaGVhZCB9O1xuXG52YXIgdXBkYXRlID0gcmVxdWlyZShcIiEuLi8uLi8uLi9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1wiKShjb250ZW50LCBvcHRpb25zKTtcblxuaWYoY29udGVudC5sb2NhbHMpIG1vZHVsZS5leHBvcnRzID0gY29udGVudC5sb2NhbHM7XG5cbmlmKG1vZHVsZS5ob3QpIHtcblx0bW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy1ncmlkLmNzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy1ncmlkLmNzc1wiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsIlxudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctdGhlbWUtYmFsaGFtLWRhcmsuY3NzXCIpO1xuXG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcblxudmFyIHRyYW5zZm9ybTtcbnZhciBpbnNlcnRJbnRvO1xuXG5cblxudmFyIG9wdGlvbnMgPSB7XCJobXJcIjp0cnVlfVxuXG5vcHRpb25zLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxub3B0aW9ucy5pbnNlcnRJbnRvID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LnBhcmVudC5kb2N1bWVudC5oZWFkIH07XG5cbnZhciB1cGRhdGUgPSByZXF1aXJlKFwiIS4uLy4uLy4uL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuL2FnLXRoZW1lLWJhbGhhbS1kYXJrLmNzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy10aGVtZS1iYWxoYW0tZGFyay5jc3NcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuL2FnLXRoZW1lLWJhbGhhbS5jc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWQgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcIikoY29udGVudCwgb3B0aW9ucyk7XG5cbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuXG5pZihtb2R1bGUuaG90KSB7XG5cdG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctdGhlbWUtYmFsaGFtLmNzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy10aGVtZS1iYWxoYW0uY3NzXCIpO1xuXG5cdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cblx0XHR2YXIgbG9jYWxzID0gKGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdHZhciBrZXksIGlkeCA9IDA7XG5cblx0XHRcdGZvcihrZXkgaW4gYSkge1xuXHRcdFx0XHRpZighYiB8fCBhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRpZHgrKztcblx0XHRcdH1cblxuXHRcdFx0Zm9yKGtleSBpbiBiKSBpZHgtLTtcblxuXHRcdFx0cmV0dXJuIGlkeCA9PT0gMDtcblx0XHR9KGNvbnRlbnQubG9jYWxzLCBuZXdDb250ZW50LmxvY2FscykpO1xuXG5cdFx0aWYoIWxvY2FscykgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGluZyBDU1MgSE1SIGR1ZSB0byBjaGFuZ2VkIGNzcy1tb2R1bGVzIGxvY2Fscy4nKTtcblxuXHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0fSk7XG5cblx0bW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59IiwiXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9hZy10aGVtZS1tYXRlcmlhbC5jc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWQgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcIikoY29udGVudCwgb3B0aW9ucyk7XG5cbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuXG5pZihtb2R1bGUuaG90KSB7XG5cdG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vYWctdGhlbWUtbWF0ZXJpYWwuY3NzXCIsIGZ1bmN0aW9uKCkge1xuXHRcdHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuL2FnLXRoZW1lLW1hdGVyaWFsLmNzc1wiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIk1hc2tzXCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkJCalwiXSA9IHJvb3RbXCJCQmpcIl0gfHwge30sIHJvb3RbXCJCQmpcIl1bXCJNYXNrc1wiXSA9IGZhY3RvcnkoKTtcbn0pKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyA/IHNlbGYgOiB0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiBcblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNDIpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIDk5MDU0YmQ3OWYyM2VhMGYwOTg4IiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IENvbXBvbmVudCBmcm9tICcuL0NvbXBvbmVudCdcblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvQ29tcG9uZW50L2luZGV4LmpzIiwiaW1wb3J0IHsgZGVjb3JhdGUsIGNyZWF0ZURlZmF1bHRTZXR0ZXIsXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnMsIGdldE93bktleXMsIGJpbmQgfSBmcm9tICcuL3ByaXZhdGUvdXRpbHMnO1xuY29uc3QgeyBkZWZpbmVQcm9wZXJ0eSwgZ2V0UHJvdG90eXBlT2YgfSA9IE9iamVjdDtcblxubGV0IG1hcFN0b3JlO1xuXG5mdW5jdGlvbiBnZXRCb3VuZFN1cGVyKG9iaiwgZm4pIHtcbiAgaWYgKHR5cGVvZiBXZWFrTWFwID09PSAndW5kZWZpbmVkJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBVc2luZyBAYXV0b2JpbmQgb24gJHtmbi5uYW1lfSgpIHJlcXVpcmVzIFdlYWtNYXAgc3VwcG9ydCBkdWUgdG8gaXRzIHVzZSBvZiBzdXBlci4ke2ZuLm5hbWV9KClcbiAgICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vamF5cGhlbHBzL2NvcmUtZGVjb3JhdG9ycy5qcy9pc3N1ZXMvMjBgXG4gICAgKTtcbiAgfVxuXG4gIGlmICghbWFwU3RvcmUpIHtcbiAgICAgbWFwU3RvcmUgPSBuZXcgV2Vha01hcCgpO1xuICB9XG5cbiAgaWYgKG1hcFN0b3JlLmhhcyhvYmopID09PSBmYWxzZSkge1xuICAgIG1hcFN0b3JlLnNldChvYmosIG5ldyBXZWFrTWFwKCkpO1xuICB9XG5cbiAgY29uc3Qgc3VwZXJTdG9yZSA9IG1hcFN0b3JlLmdldChvYmopO1xuXG4gIGlmIChzdXBlclN0b3JlLmhhcyhmbikgPT09IGZhbHNlKSB7XG4gICAgc3VwZXJTdG9yZS5zZXQoZm4sIGJpbmQoZm4sIG9iaikpO1xuICB9XG5cbiAgcmV0dXJuIHN1cGVyU3RvcmUuZ2V0KGZuKTtcbn1cblxuZnVuY3Rpb24gYXV0b2JpbmRDbGFzcyhrbGFzcykge1xuICBjb25zdCBkZXNjcyA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoa2xhc3MucHJvdG90eXBlKTtcbiAgY29uc3Qga2V5cyA9IGdldE93bktleXMoZGVzY3MpO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgIGNvbnN0IGRlc2MgPSBkZXNjc1trZXldO1xuXG4gICAgaWYgKHR5cGVvZiBkZXNjLnZhbHVlICE9PSAnZnVuY3Rpb24nIHx8IGtleSA9PT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgZGVmaW5lUHJvcGVydHkoa2xhc3MucHJvdG90eXBlLCBrZXksIGF1dG9iaW5kTWV0aG9kKGtsYXNzLnByb3RvdHlwZSwga2V5LCBkZXNjKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXV0b2JpbmRNZXRob2QodGFyZ2V0LCBrZXksIHsgdmFsdWU6IGZuLCBjb25maWd1cmFibGUsIGVudW1lcmFibGUgfSkge1xuICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKGBAYXV0b2JpbmQgY2FuIG9ubHkgYmUgdXNlZCBvbiBmdW5jdGlvbnMsIG5vdDogJHtmbn1gKTtcbiAgfVxuXG4gIGNvbnN0IHsgY29uc3RydWN0b3IgfSA9IHRhcmdldDtcblxuICByZXR1cm4ge1xuICAgIGNvbmZpZ3VyYWJsZSxcbiAgICBlbnVtZXJhYmxlLFxuXG4gICAgZ2V0KCkge1xuICAgICAgLy8gQ2xhc3MucHJvdG90eXBlLmtleSBsb29rdXBcbiAgICAgIC8vIFNvbWVvbmUgYWNjZXNzZXMgdGhlIHByb3BlcnR5IGRpcmVjdGx5IG9uIHRoZSBwcm90b3R5cGUgb24gd2hpY2ggaXQgaXNcbiAgICAgIC8vIGFjdHVhbGx5IGRlZmluZWQgb24sIGkuZS4gQ2xhc3MucHJvdG90eXBlLmhhc093blByb3BlcnR5KGtleSlcbiAgICAgIGlmICh0aGlzID09PSB0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIGZuO1xuICAgICAgfVxuXG4gICAgICAvLyBDbGFzcy5wcm90b3R5cGUua2V5IGxvb2t1cFxuICAgICAgLy8gU29tZW9uZSBhY2Nlc3NlcyB0aGUgcHJvcGVydHkgZGlyZWN0bHkgb24gYSBwcm90b3R5cGUgYnV0IGl0IHdhcyBmb3VuZFxuICAgICAgLy8gdXAgdGhlIGNoYWluLCBub3QgZGVmaW5lZCBkaXJlY3RseSBvbiBpdFxuICAgICAgLy8gaS5lLiBDbGFzcy5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoa2V5KSA9PSBmYWxzZSAmJiBrZXkgaW4gQ2xhc3MucHJvdG90eXBlXG4gICAgICBpZiAodGhpcy5jb25zdHJ1Y3RvciAhPT0gY29uc3RydWN0b3IgJiYgZ2V0UHJvdG90eXBlT2YodGhpcykuY29uc3RydWN0b3IgPT09IGNvbnN0cnVjdG9yKSB7XG4gICAgICAgIHJldHVybiBmbjtcbiAgICAgIH1cblxuICAgICAgLy8gQXV0b2JvdW5kIG1ldGhvZCBjYWxsaW5nIHN1cGVyLnNhbWVNZXRob2QoKSB3aGljaCBpcyBhbHNvIGF1dG9ib3VuZCBhbmQgc28gb24uXG4gICAgICBpZiAodGhpcy5jb25zdHJ1Y3RvciAhPT0gY29uc3RydWN0b3IgJiYga2V5IGluIHRoaXMuY29uc3RydWN0b3IucHJvdG90eXBlKSB7XG4gICAgICAgIHJldHVybiBnZXRCb3VuZFN1cGVyKHRoaXMsIGZuKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYm91bmRGbiA9IGJpbmQoZm4sIHRoaXMpO1xuXG4gICAgICBkZWZpbmVQcm9wZXJ0eSh0aGlzLCBrZXksIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgLy8gTk9UIGVudW1lcmFibGUgd2hlbiBpdCdzIGEgYm91bmQgbWV0aG9kXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogYm91bmRGblxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBib3VuZEZuO1xuICAgIH0sXG4gICAgc2V0OiBjcmVhdGVEZWZhdWx0U2V0dGVyKGtleSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlKGFyZ3MpIHtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIGF1dG9iaW5kQ2xhc3MoLi4uYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGF1dG9iaW5kTWV0aG9kKC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGF1dG9iaW5kKC4uLmFyZ3MpIHtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBoYW5kbGUoYXJndW1lbnRzKTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBoYW5kbGUoYXJncyk7XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWRlY29yYXRvcnMvc3JjL2F1dG9iaW5kLmpzIiwiaW1wb3J0IHsgZGVjb3JhdGUgfSBmcm9tICcuL3ByaXZhdGUvdXRpbHMnO1xuXG5jb25zdCBHRU5FUklDX0ZVTkNUSU9OX0VSUk9SID0gJ3tjaGlsZH0gZG9lcyBub3QgcHJvcGVybHkgb3ZlcnJpZGUge3BhcmVudH0nO1xuY29uc3QgRlVOQ1RJT05fUkVHRVhQID0gL15mdW5jdGlvbiAoW18kYS16QS1aXFx4QTAtXFx1RkZGRl1bXyRhLXpBLVowLTlcXHhBMC1cXHVGRkZGXSopPyhcXChbXlxcKV0qXFwpKVtcXHNcXFNdKyQvO1xuXG5jbGFzcyBTeW50YXhFcnJvclJlcG9ydGVyIHtcbiAgcGFyZW50S2xhc3M7XG4gIGNoaWxkS2xhc3M7XG4gIHBhcmVudERlc2NyaXB0b3I7XG4gIGNoaWxkRGVzY3JpcHRvcjtcbiAgXG4gIGdldCBrZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGREZXNjcmlwdG9yLmtleTsgIFxuICB9XG4gIFxuICBnZXQgcGFyZW50Tm90YXRpb24oKSB7XG4gICAgcmV0dXJuIGAke3RoaXMucGFyZW50S2xhc3MuY29uc3RydWN0b3IubmFtZX0jJHt0aGlzLnBhcmVudFByb3BlcnR5U2lnbmF0dXJlfWA7XG4gIH1cblxuICBnZXQgY2hpbGROb3RhdGlvbigpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5jaGlsZEtsYXNzLmNvbnN0cnVjdG9yLm5hbWV9IyR7dGhpcy5jaGlsZFByb3BlcnR5U2lnbmF0dXJlfWA7XG4gIH1cbiAgXG4gIGdldCBwYXJlbnRUb3BpYygpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VG9waWModGhpcy5wYXJlbnREZXNjcmlwdG9yKTtcbiAgfVxuICBcbiAgZ2V0IGNoaWxkVG9waWMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFRvcGljKHRoaXMuY2hpbGREZXNjcmlwdG9yKTtcbiAgfVxuICBcbiAgX2dldFRvcGljKGRlc2NyaXB0b3IpIHtcbiAgICBpZiAoZGVzY3JpcHRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDsgIFxuICAgIH1cbiAgICBcbiAgICBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSB7XG4gICAgICByZXR1cm4gZGVzY3JpcHRvci52YWx1ZTtcbiAgICB9XG4gICAgXG4gICAgaWYgKCdnZXQnIGluIGRlc2NyaXB0b3IpIHtcbiAgICAgIHJldHVybiBkZXNjcmlwdG9yLmdldDtcbiAgICB9XG4gICAgXG4gICAgaWYgKCdzZXQnIGluIGRlc2NyaXB0b3IpIHtcbiAgICAgIHJldHVybiBkZXNjcmlwdG9yLnNldDtcbiAgICB9XG4gIH1cbiAgXG4gIGdldCBwYXJlbnRQcm9wZXJ0eVNpZ25hdHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZXh0cmFjdFRvcGljU2lnbmF0dXJlKHRoaXMucGFyZW50VG9waWMpOyBcbiAgfVxuICBcbiAgZ2V0IGNoaWxkUHJvcGVydHlTaWduYXR1cmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2V4dHJhY3RUb3BpY1NpZ25hdHVyZSh0aGlzLmNoaWxkVG9waWMpOyBcbiAgfVxuICBcbiAgX2V4dHJhY3RUb3BpY1NpZ25hdHVyZSh0b3BpYykge1xuICAgIHN3aXRjaCAodHlwZW9mIHRvcGljKSB7XG4gICAgICBjYXNlICdmdW5jdGlvbic6XG4gICAgICAgIHJldHVybiB0aGlzLl9leHRyYWN0RnVuY3Rpb25TaWduYXR1cmUodG9waWMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMua2V5O1xuICAgIH1cbiAgfVxuICBcbiAgX2V4dHJhY3RGdW5jdGlvblNpZ25hdHVyZShmbikge1xuICAgIHJldHVybiBmblxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICBGVU5DVElPTl9SRUdFWFAsXG4gICAgICAgIChtYXRjaCwgbmFtZSA9IHRoaXMua2V5LCBwYXJhbXMpID0+IG5hbWUgKyBwYXJhbXNcbiAgICAgICk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwYXJlbnRLbGFzcywgY2hpbGRLbGFzcywgcGFyZW50RGVzY3JpcHRvciwgY2hpbGREZXNjcmlwdG9yKSB7XG4gICAgdGhpcy5wYXJlbnRLbGFzcyA9IHBhcmVudEtsYXNzO1xuICAgIHRoaXMuY2hpbGRLbGFzcyA9IGNoaWxkS2xhc3M7XG4gICAgdGhpcy5wYXJlbnREZXNjcmlwdG9yID0gcGFyZW50RGVzY3JpcHRvcjtcbiAgICB0aGlzLmNoaWxkRGVzY3JpcHRvciA9IGNoaWxkRGVzY3JpcHRvcjtcbiAgfVxuICBcbiAgYXNzZXJ0KGNvbmRpdGlvbiwgbXNnID0gJycpIHtcbiAgICBpZiAoY29uZGl0aW9uICE9PSB0cnVlKSB7XG4gICAgICB0aGlzLmVycm9yKEdFTkVSSUNfRlVOQ1RJT05fRVJST1IgKyBtc2cpO1xuICAgIH1cbiAgfVxuICBcbiAgZXJyb3IobXNnKSB7XG4gICAgbXNnID0gbXNnXG4gICAgICAvLyBSZXBsYWNlIGxhemlseSwgYmVjYXVzZSB0aGV5IGFjdHVhbGx5IG1pZ2h0IG5vdFxuICAgICAgLy8gYmUgYXZhaWxhYmxlIGluIGFsbCBjYXNlc1xuICAgICAgLnJlcGxhY2UoJ3twYXJlbnR9JywgbSA9PiB0aGlzLnBhcmVudE5vdGF0aW9uKVxuICAgICAgLnJlcGxhY2UoJ3tjaGlsZH0nLCBtID0+IHRoaXMuY2hpbGROb3RhdGlvbik7XG4gICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKG1zZyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVzY3JpcHRvclR5cGUoZGVzY3JpcHRvcikge1xuICBpZiAoZGVzY3JpcHRvci5oYXNPd25Qcm9wZXJ0eSgndmFsdWUnKSkge1xuICAgIHJldHVybiAnZGF0YSc7XG4gIH1cblxuICBpZiAoZGVzY3JpcHRvci5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgfHwgZGVzY3JpcHRvci5oYXNPd25Qcm9wZXJ0eSgnc2V0JykpIHtcbiAgICByZXR1cm4gJ2FjY2Vzc29yJztcbiAgfVxuXG4gIC8vIElmIG5vbmUgb2YgdGhlbSBleGlzdCwgYnJvd3NlcnMgdHJlYXQgaXQgYXNcbiAgLy8gYSBkYXRhIGRlc2NyaXB0b3Igd2l0aCBhIHZhbHVlIG9mIGB1bmRlZmluZWRgXG4gIHJldHVybiAnZGF0YSc7XG59XG5cbmZ1bmN0aW9uIGNoZWNrRnVuY3Rpb25TaWduYXR1cmVzKHBhcmVudCwgY2hpbGQsIHJlcG9ydGVyKSB7XG4gIHJlcG9ydGVyLmFzc2VydChwYXJlbnQubGVuZ3RoID09PSBjaGlsZC5sZW5ndGgpO1xufVxuXG5mdW5jdGlvbiBjaGVja0RhdGFEZXNjcmlwdG9ycyhwYXJlbnQsIGNoaWxkLCByZXBvcnRlcikge1xuICBjb25zdCBwYXJlbnRWYWx1ZVR5cGUgPSB0eXBlb2YgcGFyZW50LnZhbHVlO1xuICBjb25zdCBjaGlsZFZhbHVlVHlwZSA9IHR5cGVvZiBjaGlsZC52YWx1ZTtcbiAgXG4gIGlmIChwYXJlbnRWYWx1ZVR5cGUgPT09ICd1bmRlZmluZWQnICYmIGNoaWxkVmFsdWVUeXBlID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIGNsYXNzIHByb3BlcnRpZXMgY2FuIGJlIGFueSBleHByZXNzaW9uLCB3aGljaCBpc24ndCByYW4gdW50aWwgdGhlXG4gICAgLy8gdGhlIGluc3RhbmNlIGlzIGNyZWF0ZWQsIHNvIHdlIGNhbid0IHJlbGlhYmx5IGdldCB0eXBlIGluZm9ybWF0aW9uXG4gICAgLy8gZm9yIHRoZW0geWV0IChwZXIgc3BlYykuIFBlcmhhcHMgd2hlbiBCYWJlbCBpbmNsdWRlcyBmbG93LXR5cGUgaW5mb1xuICAgIC8vIGluIHJ1bnRpbWU/IFRyaWVkIHJlZ2V4IHNvbHV0aW9ucywgYnV0IHN1cGVyIGhhY2t5IGFuZCBvbmx5IGZlYXNpYmxlXG4gICAgLy8gb24gcHJpbWl0aXZlcywgd2hpY2ggaXMgY29uZnVzaW5nIGZvciB1c2FnZS4uLlxuICAgIHJlcG9ydGVyLmVycm9yKGBkZXNjcmlwdG9yIHZhbHVlcyBhcmUgYm90aCB1bmRlZmluZWQuIChjbGFzcyBwcm9wZXJ0aWVzIGFyZSBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQpJ2ApO1xuICB9XG4gIFxuICBpZiAocGFyZW50VmFsdWVUeXBlICE9PSBjaGlsZFZhbHVlVHlwZSkge1xuICAgIGNvbnN0IGlzRnVuY3Rpb25PdmVyVW5kZWZpbmVkID0gKGNoaWxkVmFsdWVUeXBlID09PSAnZnVuY3Rpb24nICYmIHBhcmVudFZhbHVlVHlwZSA9PT0gdW5kZWZpbmVkKTtcbiAgICAvLyBFdmVuIHRob3VnaCB3ZSBkb24ndCBzdXBwb3J0IGNsYXNzIHByb3BlcnRpZXMsIHRoaXNcbiAgICAvLyB3aWxsIHN0aWxsIGhhbmRsZSBtb3JlIHRoYW4ganVzdCBmdW5jdGlvbnMsIGp1c3QgaW4gY2FzZS5cbiAgICAvLyBTaGFkb3dpbmcgYW4gdW5kZWZpbmVkIHZhbHVlIGlzIGFuIGVycm9yIGlmIHRoZSBpbmhlcml0ZWRcbiAgICAvLyB2YWx1ZSB3YXMgdW5kZWZpbmVkICh1c3VhbGx5IGEgY2xhc3MgcHJvcGVydHksIG5vdCBhIG1ldGhvZClcbiAgICBpZiAoaXNGdW5jdGlvbk92ZXJVbmRlZmluZWQgfHwgcGFyZW50VmFsdWVUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlcG9ydGVyLmVycm9yKGB2YWx1ZSB0eXBlcyBkbyBub3QgbWF0Y2guIHtwYXJlbnR9IGlzIFwiJHtwYXJlbnRWYWx1ZVR5cGV9XCIsIHtjaGlsZH0gaXMgXCIke2NoaWxkVmFsdWVUeXBlfVwiYCk7XG4gICAgfVxuICB9XG4gIFxuICAvLyBTd2l0Y2gsIGluIHByZXBhcmF0aW9uIGZvciBzdXBwb3J0aW5nIG1vcmUgdHlwZXNcbiAgc3dpdGNoIChjaGlsZFZhbHVlVHlwZSkge1xuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgIGNoZWNrRnVuY3Rpb25TaWduYXR1cmVzKHBhcmVudC52YWx1ZSwgY2hpbGQudmFsdWUsIHJlcG9ydGVyKTtcbiAgICAgIGJyZWFrO1xuICAgICAgXG4gICAgZGVmYXVsdDpcbiAgICAgIHJlcG9ydGVyLmVycm9yKGBVbmV4cGVjdGVkIGVycm9yLiBQbGVhc2UgZmlsZSBhIGJ1ZyB3aXRoOiB7cGFyZW50fSBpcyBcIiR7cGFyZW50VmFsdWVUeXBlfVwiLCB7Y2hpbGR9IGlzIFwiJHtjaGlsZFZhbHVlVHlwZX1cImApO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tBY2Nlc3NvckRlc2NyaXB0b3JzKHBhcmVudCwgY2hpbGQsIHJlcG9ydGVyKSB7XG4gIGNvbnN0IHBhcmVudEhhc0dldHRlciA9IHR5cGVvZiBwYXJlbnQuZ2V0ID09PSAnZnVuY3Rpb24nO1xuICBjb25zdCBjaGlsZEhhc0dldHRlciA9IHR5cGVvZiBjaGlsZC5nZXQgPT09ICdmdW5jdGlvbic7XG4gIGNvbnN0IHBhcmVudEhhc1NldHRlciA9IHR5cGVvZiBwYXJlbnQuc2V0ID09PSAnZnVuY3Rpb24nO1xuICBjb25zdCBjaGlsZEhhc1NldHRlciA9IHR5cGVvZiBjaGlsZC5zZXQgPT09ICdmdW5jdGlvbic7XG4gIFxuICBpZiAocGFyZW50SGFzR2V0dGVyIHx8IGNoaWxkSGFzR2V0dGVyKSB7XG4gICAgaWYgKCFwYXJlbnRIYXNHZXR0ZXIgJiYgcGFyZW50SGFzU2V0dGVyKSB7XG4gICAgICByZXBvcnRlci5lcnJvcihge3BhcmVudH0gaXMgc2V0dGVyIGJ1dCB7Y2hpbGR9IGlzIGdldHRlcmApO1xuICAgIH1cbiAgICBcbiAgICBpZiAoIWNoaWxkSGFzR2V0dGVyICYmIGNoaWxkSGFzU2V0dGVyKSB7XG4gICAgICByZXBvcnRlci5lcnJvcihge3BhcmVudH0gaXMgZ2V0dGVyIGJ1dCB7Y2hpbGR9IGlzIHNldHRlcmApO1xuICAgIH1cbiAgICBcbiAgICBjaGVja0Z1bmN0aW9uU2lnbmF0dXJlcyhwYXJlbnQuZ2V0LCBjaGlsZC5nZXQsIHJlcG9ydGVyKTtcbiAgfVxuICBcbiAgaWYgKHBhcmVudEhhc1NldHRlciB8fCBjaGlsZEhhc1NldHRlcikge1xuICAgIGlmICghcGFyZW50SGFzU2V0dGVyICYmIHBhcmVudEhhc0dldHRlcikge1xuICAgICAgcmVwb3J0ZXIuZXJyb3IoYHtwYXJlbnR9IGlzIGdldHRlciBidXQge2NoaWxkfSBpcyBzZXR0ZXJgKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKCFjaGlsZEhhc1NldHRlciAmJiBjaGlsZEhhc0dldHRlcikge1xuICAgICAgcmVwb3J0ZXIuZXJyb3IoYHtwYXJlbnR9IGlzIHNldHRlciBidXQge2NoaWxkfSBpcyBnZXR0ZXJgKTtcbiAgICB9XG4gICAgXG4gICAgY2hlY2tGdW5jdGlvblNpZ25hdHVyZXMocGFyZW50LnNldCwgY2hpbGQuc2V0LCByZXBvcnRlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tEZXNjcmlwdG9ycyhwYXJlbnQsIGNoaWxkLCByZXBvcnRlcikge1xuICBjb25zdCBwYXJlbnRUeXBlID0gZ2V0RGVzY3JpcHRvclR5cGUocGFyZW50KTtcbiAgY29uc3QgY2hpbGRUeXBlID0gZ2V0RGVzY3JpcHRvclR5cGUoY2hpbGQpO1xuXG4gIGlmIChwYXJlbnRUeXBlICE9PSBjaGlsZFR5cGUpIHtcbiAgICByZXBvcnRlci5lcnJvcihgZGVzY3JpcHRvciB0eXBlcyBkbyBub3QgbWF0Y2guIHtwYXJlbnR9IGlzIFwiJHtwYXJlbnRUeXBlfVwiLCB7Y2hpbGR9IGlzIFwiJHtjaGlsZFR5cGV9XCJgKTtcbiAgfVxuXG4gIHN3aXRjaCAoY2hpbGRUeXBlKSB7XG4gICAgY2FzZSAnZGF0YSc6XG4gICAgICBjaGVja0RhdGFEZXNjcmlwdG9ycyhwYXJlbnQsIGNoaWxkLCByZXBvcnRlcik7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2FjY2Vzc29yJzpcbiAgICAgIGNoZWNrQWNjZXNzb3JEZXNjcmlwdG9ycyhwYXJlbnQsIGNoaWxkLCByZXBvcnRlcik7XG4gICAgICBicmVhaztcbiAgfVxufVxuXG5jb25zdCBzdWdnZXN0aW9uVHJhbnNmb3JtcyA9IFtcbiAga2V5ID0+IGtleS50b0xvd2VyQ2FzZSgpLFxuICBrZXkgPT4ga2V5LnRvVXBwZXJDYXNlKCksXG4gIGtleSA9PiBrZXkgKyAncycsXG4gIGtleSA9PiBrZXkuc2xpY2UoMCwgLTEpLFxuICBrZXkgPT4ga2V5LnNsaWNlKDEsIGtleS5sZW5ndGgpLFxuXTtcblxuZnVuY3Rpb24gZmluZFBvc3NpYmxlQWx0ZXJuYXRpdmVzKHN1cGVyS2xhc3MsIGtleSkge1xuICBmb3IgKGxldCBpID0gMCwgbCA9IHN1Z2dlc3Rpb25UcmFuc2Zvcm1zLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGNvbnN0IGZuID0gc3VnZ2VzdGlvblRyYW5zZm9ybXNbaV07XG4gICAgY29uc3Qgc3VnZ2VzdGlvbiA9IGZuKGtleSk7XG5cbiAgICBpZiAoc3VnZ2VzdGlvbiBpbiBzdXBlcktsYXNzKSB7XG4gICAgICByZXR1cm4gc3VnZ2VzdGlvbjtcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVEZXNjcmlwdG9yKHRhcmdldCwga2V5LCBkZXNjcmlwdG9yKSB7XG4gIGRlc2NyaXB0b3Iua2V5ID0ga2V5O1xuICBjb25zdCBzdXBlcktsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCk7XG4gIGNvbnN0IHN1cGVyRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc3VwZXJLbGFzcywga2V5KTtcbiAgY29uc3QgcmVwb3J0ZXIgPSBuZXcgU3ludGF4RXJyb3JSZXBvcnRlcihzdXBlcktsYXNzLCB0YXJnZXQsIHN1cGVyRGVzY3JpcHRvciwgZGVzY3JpcHRvcik7XG4gIFxuICBpZiAoc3VwZXJEZXNjcmlwdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBzdWdnZXN0ZWRLZXkgPSBmaW5kUG9zc2libGVBbHRlcm5hdGl2ZXMoc3VwZXJLbGFzcywga2V5KTtcbiAgICBjb25zdCBzdWdnZXN0aW9uID0gc3VnZ2VzdGVkS2V5ID8gYFxcblxcbiAgRGlkIHlvdSBtZWFuIFwiJHtzdWdnZXN0ZWRLZXl9XCI/YCA6ICcnO1xuICAgIHJlcG9ydGVyLmVycm9yKGBObyBkZXNjcmlwdG9yIG1hdGNoaW5nIHtjaGlsZH0gd2FzIGZvdW5kIG9uIHRoZSBwcm90b3R5cGUgY2hhaW4uJHtzdWdnZXN0aW9ufWApO1xuICB9XG4gIFxuICBjaGVja0Rlc2NyaXB0b3JzKHN1cGVyRGVzY3JpcHRvciwgZGVzY3JpcHRvciwgcmVwb3J0ZXIpO1xuICBcbiAgcmV0dXJuIGRlc2NyaXB0b3I7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG92ZXJyaWRlKC4uLmFyZ3MpIHtcbiAgcmV0dXJuIGRlY29yYXRlKGhhbmRsZURlc2NyaXB0b3IsIGFyZ3MpO1xufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2NvcmUtZGVjb3JhdG9ycy9zcmMvb3ZlcnJpZGUuanMiLCJpbXBvcnQgU3ltYm9sIGZyb20gJy4vX1N5bWJvbC5qcyc7XG5pbXBvcnQgZ2V0UmF3VGFnIGZyb20gJy4vX2dldFJhd1RhZy5qcyc7XG5pbXBvcnQgb2JqZWN0VG9TdHJpbmcgZnJvbSAnLi9fb2JqZWN0VG9TdHJpbmcuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgbnVsbFRhZyA9ICdbb2JqZWN0IE51bGxdJyxcbiAgICB1bmRlZmluZWRUYWcgPSAnW29iamVjdCBVbmRlZmluZWRdJztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGdldFRhZ2Agd2l0aG91dCBmYWxsYmFja3MgZm9yIGJ1Z2d5IGVudmlyb25tZW50cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBgdG9TdHJpbmdUYWdgLlxuICovXG5mdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWRUYWcgOiBudWxsVGFnO1xuICB9XG4gIHJldHVybiAoc3ltVG9TdHJpbmdUYWcgJiYgc3ltVG9TdHJpbmdUYWcgaW4gT2JqZWN0KHZhbHVlKSlcbiAgICA/IGdldFJhd1RhZyh2YWx1ZSlcbiAgICA6IG9iamVjdFRvU3RyaW5nKHZhbHVlKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUdldFRhZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VHZXRUYWcuanMiLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLiBBIHZhbHVlIGlzIG9iamVjdC1saWtlIGlmIGl0J3Mgbm90IGBudWxsYFxuICogYW5kIGhhcyBhIGB0eXBlb2ZgIHJlc3VsdCBvZiBcIm9iamVjdFwiLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIG9iamVjdC1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKHt9KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKF8ubm9vcCk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNPYmplY3RMaWtlKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNPYmplY3RMaWtlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc09iamVjdExpa2UuanMiLCIvKlxuXHRNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuXHRBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4qL1xuLy8gY3NzIGJhc2UgY29kZSwgaW5qZWN0ZWQgYnkgdGhlIGNzcy1sb2FkZXJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24odXNlU291cmNlTWFwKSB7XG5cdHZhciBsaXN0ID0gW107XG5cblx0Ly8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuXHRsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG5cdFx0cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG5cdFx0XHR2YXIgY29udGVudCA9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSwgdXNlU291cmNlTWFwKTtcblx0XHRcdGlmKGl0ZW1bMl0pIHtcblx0XHRcdFx0cmV0dXJuIFwiQG1lZGlhIFwiICsgaXRlbVsyXSArIFwie1wiICsgY29udGVudCArIFwifVwiO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIGNvbnRlbnQ7XG5cdFx0XHR9XG5cdFx0fSkuam9pbihcIlwiKTtcblx0fTtcblxuXHQvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuXHRsaXN0LmkgPSBmdW5jdGlvbihtb2R1bGVzLCBtZWRpYVF1ZXJ5KSB7XG5cdFx0aWYodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpXG5cdFx0XHRtb2R1bGVzID0gW1tudWxsLCBtb2R1bGVzLCBcIlwiXV07XG5cdFx0dmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7fTtcblx0XHRmb3IodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGlkID0gdGhpc1tpXVswXTtcblx0XHRcdGlmKHR5cGVvZiBpZCA9PT0gXCJudW1iZXJcIilcblx0XHRcdFx0YWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuXHRcdH1cblx0XHRmb3IoaSA9IDA7IGkgPCBtb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR2YXIgaXRlbSA9IG1vZHVsZXNbaV07XG5cdFx0XHQvLyBza2lwIGFscmVhZHkgaW1wb3J0ZWQgbW9kdWxlXG5cdFx0XHQvLyB0aGlzIGltcGxlbWVudGF0aW9uIGlzIG5vdCAxMDAlIHBlcmZlY3QgZm9yIHdlaXJkIG1lZGlhIHF1ZXJ5IGNvbWJpbmF0aW9uc1xuXHRcdFx0Ly8gIHdoZW4gYSBtb2R1bGUgaXMgaW1wb3J0ZWQgbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQgbWVkaWEgcXVlcmllcy5cblx0XHRcdC8vICBJIGhvcGUgdGhpcyB3aWxsIG5ldmVyIG9jY3VyIChIZXkgdGhpcyB3YXkgd2UgaGF2ZSBzbWFsbGVyIGJ1bmRsZXMpXG5cdFx0XHRpZih0eXBlb2YgaXRlbVswXSAhPT0gXCJudW1iZXJcIiB8fCAhYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuXHRcdFx0XHRpZihtZWRpYVF1ZXJ5ICYmICFpdGVtWzJdKSB7XG5cdFx0XHRcdFx0aXRlbVsyXSA9IG1lZGlhUXVlcnk7XG5cdFx0XHRcdH0gZWxzZSBpZihtZWRpYVF1ZXJ5KSB7XG5cdFx0XHRcdFx0aXRlbVsyXSA9IFwiKFwiICsgaXRlbVsyXSArIFwiKSBhbmQgKFwiICsgbWVkaWFRdWVyeSArIFwiKVwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxpc3QucHVzaChpdGVtKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cdHJldHVybiBsaXN0O1xufTtcblxuZnVuY3Rpb24gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtLCB1c2VTb3VyY2VNYXApIHtcblx0dmFyIGNvbnRlbnQgPSBpdGVtWzFdIHx8ICcnO1xuXHR2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG5cdGlmICghY3NzTWFwcGluZykge1xuXHRcdHJldHVybiBjb250ZW50O1xuXHR9XG5cblx0aWYgKHVzZVNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdHZhciBzb3VyY2VNYXBwaW5nID0gdG9Db21tZW50KGNzc01hcHBpbmcpO1xuXHRcdHZhciBzb3VyY2VVUkxzID0gY3NzTWFwcGluZy5zb3VyY2VzLm1hcChmdW5jdGlvbiAoc291cmNlKSB7XG5cdFx0XHRyZXR1cm4gJy8qIyBzb3VyY2VVUkw9JyArIGNzc01hcHBpbmcuc291cmNlUm9vdCArIHNvdXJjZSArICcgKi8nXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKCdcXG4nKTtcblx0fVxuXG5cdHJldHVybiBbY29udGVudF0uam9pbignXFxuJyk7XG59XG5cbi8vIEFkYXB0ZWQgZnJvbSBjb252ZXJ0LXNvdXJjZS1tYXAgKE1JVClcbmZ1bmN0aW9uIHRvQ29tbWVudChzb3VyY2VNYXApIHtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG5cdHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpO1xuXHR2YXIgZGF0YSA9ICdzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwnICsgYmFzZTY0O1xuXG5cdHJldHVybiAnLyojICcgKyBkYXRhICsgJyAqLyc7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9saWIvY3NzLWJhc2UuanMiLCIvKlxuXHRNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuXHRBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4qL1xuXG52YXIgc3R5bGVzSW5Eb20gPSB7fTtcblxudmFyXHRtZW1vaXplID0gZnVuY3Rpb24gKGZuKSB7XG5cdHZhciBtZW1vO1xuXG5cdHJldHVybiBmdW5jdGlvbiAoKSB7XG5cdFx0aWYgKHR5cGVvZiBtZW1vID09PSBcInVuZGVmaW5lZFwiKSBtZW1vID0gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblx0XHRyZXR1cm4gbWVtbztcblx0fTtcbn07XG5cbnZhciBpc09sZElFID0gbWVtb2l6ZShmdW5jdGlvbiAoKSB7XG5cdC8vIFRlc3QgZm9yIElFIDw9IDkgYXMgcHJvcG9zZWQgYnkgQnJvd3NlcmhhY2tzXG5cdC8vIEBzZWUgaHR0cDovL2Jyb3dzZXJoYWNrcy5jb20vI2hhY2stZTcxZDg2OTJmNjUzMzQxNzNmZWU3MTVjMjIyY2I4MDVcblx0Ly8gVGVzdHMgZm9yIGV4aXN0ZW5jZSBvZiBzdGFuZGFyZCBnbG9iYWxzIGlzIHRvIGFsbG93IHN0eWxlLWxvYWRlclxuXHQvLyB0byBvcGVyYXRlIGNvcnJlY3RseSBpbnRvIG5vbi1zdGFuZGFyZCBlbnZpcm9ubWVudHNcblx0Ly8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay1jb250cmliL3N0eWxlLWxvYWRlci9pc3N1ZXMvMTc3XG5cdHJldHVybiB3aW5kb3cgJiYgZG9jdW1lbnQgJiYgZG9jdW1lbnQuYWxsICYmICF3aW5kb3cuYXRvYjtcbn0pO1xuXG52YXIgZ2V0VGFyZ2V0ID0gZnVuY3Rpb24gKHRhcmdldCkge1xuICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xufTtcblxudmFyIGdldEVsZW1lbnQgPSAoZnVuY3Rpb24gKGZuKSB7XG5cdHZhciBtZW1vID0ge307XG5cblx0cmV0dXJuIGZ1bmN0aW9uKHRhcmdldCkge1xuICAgICAgICAgICAgICAgIC8vIElmIHBhc3NpbmcgZnVuY3Rpb24gaW4gb3B0aW9ucywgdGhlbiB1c2UgaXQgZm9yIHJlc29sdmUgXCJoZWFkXCIgZWxlbWVudC5cbiAgICAgICAgICAgICAgICAvLyBVc2VmdWwgZm9yIFNoYWRvdyBSb290IHN0eWxlIGkuZVxuICAgICAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgICAgICAvLyAgIGluc2VydEludG86IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjZm9vXCIpLnNoYWRvd1Jvb3QgfVxuICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdFx0dmFyIHN0eWxlVGFyZ2V0ID0gZ2V0VGFyZ2V0LmNhbGwodGhpcywgdGFyZ2V0KTtcblx0XHRcdC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG5cdFx0XHRpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Ly8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcblx0XHRcdFx0XHQvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuXHRcdFx0XHRcdHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG5cdFx0XHRcdH0gY2F0Y2goZSkge1xuXHRcdFx0XHRcdHN0eWxlVGFyZ2V0ID0gbnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0bWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG5cdFx0fVxuXHRcdHJldHVybiBtZW1vW3RhcmdldF1cblx0fTtcbn0pKCk7XG5cbnZhciBzaW5nbGV0b24gPSBudWxsO1xudmFyXHRzaW5nbGV0b25Db3VudGVyID0gMDtcbnZhclx0c3R5bGVzSW5zZXJ0ZWRBdFRvcCA9IFtdO1xuXG52YXJcdGZpeFVybHMgPSByZXF1aXJlKFwiLi91cmxzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGxpc3QsIG9wdGlvbnMpIHtcblx0aWYgKHR5cGVvZiBERUJVRyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBERUJVRykge1xuXHRcdGlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwib2JqZWN0XCIpIHRocm93IG5ldyBFcnJvcihcIlRoZSBzdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudFwiKTtcblx0fVxuXG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG5cdG9wdGlvbnMuYXR0cnMgPSB0eXBlb2Ygb3B0aW9ucy5hdHRycyA9PT0gXCJvYmplY3RcIiA/IG9wdGlvbnMuYXR0cnMgOiB7fTtcblxuXHQvLyBGb3JjZSBzaW5nbGUtdGFnIHNvbHV0aW9uIG9uIElFNi05LCB3aGljaCBoYXMgYSBoYXJkIGxpbWl0IG9uIHRoZSAjIG9mIDxzdHlsZT5cblx0Ly8gdGFncyBpdCB3aWxsIGFsbG93IG9uIGEgcGFnZVxuXHRpZiAoIW9wdGlvbnMuc2luZ2xldG9uICYmIHR5cGVvZiBvcHRpb25zLnNpbmdsZXRvbiAhPT0gXCJib29sZWFuXCIpIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xuXG5cdC8vIEJ5IGRlZmF1bHQsIGFkZCA8c3R5bGU+IHRhZ3MgdG8gdGhlIDxoZWFkPiBlbGVtZW50XG4gICAgICAgIGlmICghb3B0aW9ucy5pbnNlcnRJbnRvKSBvcHRpb25zLmluc2VydEludG8gPSBcImhlYWRcIjtcblxuXHQvLyBCeSBkZWZhdWx0LCBhZGQgPHN0eWxlPiB0YWdzIHRvIHRoZSBib3R0b20gb2YgdGhlIHRhcmdldFxuXHRpZiAoIW9wdGlvbnMuaW5zZXJ0QXQpIG9wdGlvbnMuaW5zZXJ0QXQgPSBcImJvdHRvbVwiO1xuXG5cdHZhciBzdHlsZXMgPSBsaXN0VG9TdHlsZXMobGlzdCwgb3B0aW9ucyk7XG5cblx0YWRkU3R5bGVzVG9Eb20oc3R5bGVzLCBvcHRpb25zKTtcblxuXHRyZXR1cm4gZnVuY3Rpb24gdXBkYXRlIChuZXdMaXN0KSB7XG5cdFx0dmFyIG1heVJlbW92ZSA9IFtdO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBpdGVtID0gc3R5bGVzW2ldO1xuXHRcdFx0dmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF07XG5cblx0XHRcdGRvbVN0eWxlLnJlZnMtLTtcblx0XHRcdG1heVJlbW92ZS5wdXNoKGRvbVN0eWxlKTtcblx0XHR9XG5cblx0XHRpZihuZXdMaXN0KSB7XG5cdFx0XHR2YXIgbmV3U3R5bGVzID0gbGlzdFRvU3R5bGVzKG5ld0xpc3QsIG9wdGlvbnMpO1xuXHRcdFx0YWRkU3R5bGVzVG9Eb20obmV3U3R5bGVzLCBvcHRpb25zKTtcblx0XHR9XG5cblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IG1heVJlbW92ZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGRvbVN0eWxlID0gbWF5UmVtb3ZlW2ldO1xuXG5cdFx0XHRpZihkb21TdHlsZS5yZWZzID09PSAwKSB7XG5cdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIGRvbVN0eWxlLnBhcnRzW2pdKCk7XG5cblx0XHRcdFx0ZGVsZXRlIHN0eWxlc0luRG9tW2RvbVN0eWxlLmlkXTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG59O1xuXG5mdW5jdGlvbiBhZGRTdHlsZXNUb0RvbSAoc3R5bGVzLCBvcHRpb25zKSB7XG5cdGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIGl0ZW0gPSBzdHlsZXNbaV07XG5cdFx0dmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF07XG5cblx0XHRpZihkb21TdHlsZSkge1xuXHRcdFx0ZG9tU3R5bGUucmVmcysrO1xuXG5cdFx0XHRmb3IodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ZG9tU3R5bGUucGFydHNbal0oaXRlbS5wYXJ0c1tqXSk7XG5cdFx0XHR9XG5cblx0XHRcdGZvcig7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGRvbVN0eWxlLnBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSwgb3B0aW9ucykpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YXIgcGFydHMgPSBbXTtcblxuXHRcdFx0Zm9yKHZhciBqID0gMDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0cGFydHMucHVzaChhZGRTdHlsZShpdGVtLnBhcnRzW2pdLCBvcHRpb25zKSk7XG5cdFx0XHR9XG5cblx0XHRcdHN0eWxlc0luRG9tW2l0ZW0uaWRdID0ge2lkOiBpdGVtLmlkLCByZWZzOiAxLCBwYXJ0czogcGFydHN9O1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBsaXN0VG9TdHlsZXMgKGxpc3QsIG9wdGlvbnMpIHtcblx0dmFyIHN0eWxlcyA9IFtdO1xuXHR2YXIgbmV3U3R5bGVzID0ge307XG5cblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIGl0ZW0gPSBsaXN0W2ldO1xuXHRcdHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuXHRcdHZhciBjc3MgPSBpdGVtWzFdO1xuXHRcdHZhciBtZWRpYSA9IGl0ZW1bMl07XG5cdFx0dmFyIHNvdXJjZU1hcCA9IGl0ZW1bM107XG5cdFx0dmFyIHBhcnQgPSB7Y3NzOiBjc3MsIG1lZGlhOiBtZWRpYSwgc291cmNlTWFwOiBzb3VyY2VNYXB9O1xuXG5cdFx0aWYoIW5ld1N0eWxlc1tpZF0pIHN0eWxlcy5wdXNoKG5ld1N0eWxlc1tpZF0gPSB7aWQ6IGlkLCBwYXJ0czogW3BhcnRdfSk7XG5cdFx0ZWxzZSBuZXdTdHlsZXNbaWRdLnBhcnRzLnB1c2gocGFydCk7XG5cdH1cblxuXHRyZXR1cm4gc3R5bGVzO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQgKG9wdGlvbnMsIHN0eWxlKSB7XG5cdHZhciB0YXJnZXQgPSBnZXRFbGVtZW50KG9wdGlvbnMuaW5zZXJ0SW50bylcblxuXHRpZiAoIXRhcmdldCkge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0SW50bycgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuXHR9XG5cblx0dmFyIGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wID0gc3R5bGVzSW5zZXJ0ZWRBdFRvcFtzdHlsZXNJbnNlcnRlZEF0VG9wLmxlbmd0aCAtIDFdO1xuXG5cdGlmIChvcHRpb25zLmluc2VydEF0ID09PSBcInRvcFwiKSB7XG5cdFx0aWYgKCFsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcCkge1xuXHRcdFx0dGFyZ2V0Lmluc2VydEJlZm9yZShzdHlsZSwgdGFyZ2V0LmZpcnN0Q2hpbGQpO1xuXHRcdH0gZWxzZSBpZiAobGFzdFN0eWxlRWxlbWVudEluc2VydGVkQXRUb3AubmV4dFNpYmxpbmcpIHtcblx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wLm5leHRTaWJsaW5nKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcblx0XHR9XG5cdFx0c3R5bGVzSW5zZXJ0ZWRBdFRvcC5wdXNoKHN0eWxlKTtcblx0fSBlbHNlIGlmIChvcHRpb25zLmluc2VydEF0ID09PSBcImJvdHRvbVwiKSB7XG5cdFx0dGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcblx0fSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJvYmplY3RcIiAmJiBvcHRpb25zLmluc2VydEF0LmJlZm9yZSkge1xuXHRcdHZhciBuZXh0U2libGluZyA9IGdldEVsZW1lbnQob3B0aW9ucy5pbnNlcnRJbnRvICsgXCIgXCIgKyBvcHRpb25zLmluc2VydEF0LmJlZm9yZSk7XG5cdFx0dGFyZ2V0Lmluc2VydEJlZm9yZShzdHlsZSwgbmV4dFNpYmxpbmcpO1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIltTdHlsZSBMb2FkZXJdXFxuXFxuIEludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAnaW5zZXJ0QXQnICgnb3B0aW9ucy5pbnNlcnRBdCcpIGZvdW5kLlxcbiBNdXN0IGJlICd0b3AnLCAnYm90dG9tJywgb3IgT2JqZWN0LlxcbiAoaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIjaW5zZXJ0YXQpXFxuXCIpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudCAoc3R5bGUpIHtcblx0aWYgKHN0eWxlLnBhcmVudE5vZGUgPT09IG51bGwpIHJldHVybiBmYWxzZTtcblx0c3R5bGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZSk7XG5cblx0dmFyIGlkeCA9IHN0eWxlc0luc2VydGVkQXRUb3AuaW5kZXhPZihzdHlsZSk7XG5cdGlmKGlkeCA+PSAwKSB7XG5cdFx0c3R5bGVzSW5zZXJ0ZWRBdFRvcC5zcGxpY2UoaWR4LCAxKTtcblx0fVxufVxuXG5mdW5jdGlvbiBjcmVhdGVTdHlsZUVsZW1lbnQgKG9wdGlvbnMpIHtcblx0dmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuXG5cdG9wdGlvbnMuYXR0cnMudHlwZSA9IFwidGV4dC9jc3NcIjtcblxuXHRhZGRBdHRycyhzdHlsZSwgb3B0aW9ucy5hdHRycyk7XG5cdGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zLCBzdHlsZSk7XG5cblx0cmV0dXJuIHN0eWxlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMaW5rRWxlbWVudCAob3B0aW9ucykge1xuXHR2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO1xuXG5cdG9wdGlvbnMuYXR0cnMudHlwZSA9IFwidGV4dC9jc3NcIjtcblx0b3B0aW9ucy5hdHRycy5yZWwgPSBcInN0eWxlc2hlZXRcIjtcblxuXHRhZGRBdHRycyhsaW5rLCBvcHRpb25zLmF0dHJzKTtcblx0aW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMsIGxpbmspO1xuXG5cdHJldHVybiBsaW5rO1xufVxuXG5mdW5jdGlvbiBhZGRBdHRycyAoZWwsIGF0dHJzKSB7XG5cdE9iamVjdC5rZXlzKGF0dHJzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcblx0XHRlbC5zZXRBdHRyaWJ1dGUoa2V5LCBhdHRyc1trZXldKTtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIGFkZFN0eWxlIChvYmosIG9wdGlvbnMpIHtcblx0dmFyIHN0eWxlLCB1cGRhdGUsIHJlbW92ZSwgcmVzdWx0O1xuXG5cdC8vIElmIGEgdHJhbnNmb3JtIGZ1bmN0aW9uIHdhcyBkZWZpbmVkLCBydW4gaXQgb24gdGhlIGNzc1xuXHRpZiAob3B0aW9ucy50cmFuc2Zvcm0gJiYgb2JqLmNzcykge1xuXHQgICAgcmVzdWx0ID0gb3B0aW9ucy50cmFuc2Zvcm0ob2JqLmNzcyk7XG5cblx0ICAgIGlmIChyZXN1bHQpIHtcblx0ICAgIFx0Ly8gSWYgdHJhbnNmb3JtIHJldHVybnMgYSB2YWx1ZSwgdXNlIHRoYXQgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgY3NzLlxuXHQgICAgXHQvLyBUaGlzIGFsbG93cyBydW5uaW5nIHJ1bnRpbWUgdHJhbnNmb3JtYXRpb25zIG9uIHRoZSBjc3MuXG5cdCAgICBcdG9iai5jc3MgPSByZXN1bHQ7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgXHQvLyBJZiB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIHJldHVybnMgYSBmYWxzeSB2YWx1ZSwgZG9uJ3QgYWRkIHRoaXMgY3NzLlxuXHQgICAgXHQvLyBUaGlzIGFsbG93cyBjb25kaXRpb25hbCBsb2FkaW5nIG9mIGNzc1xuXHQgICAgXHRyZXR1cm4gZnVuY3Rpb24oKSB7XG5cdCAgICBcdFx0Ly8gbm9vcFxuXHQgICAgXHR9O1xuXHQgICAgfVxuXHR9XG5cblx0aWYgKG9wdGlvbnMuc2luZ2xldG9uKSB7XG5cdFx0dmFyIHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKys7XG5cblx0XHRzdHlsZSA9IHNpbmdsZXRvbiB8fCAoc2luZ2xldG9uID0gY3JlYXRlU3R5bGVFbGVtZW50KG9wdGlvbnMpKTtcblxuXHRcdHVwZGF0ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgZmFsc2UpO1xuXHRcdHJlbW92ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgdHJ1ZSk7XG5cblx0fSBlbHNlIGlmIChcblx0XHRvYmouc291cmNlTWFwICYmXG5cdFx0dHlwZW9mIFVSTCA9PT0gXCJmdW5jdGlvblwiICYmXG5cdFx0dHlwZW9mIFVSTC5jcmVhdGVPYmplY3RVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBVUkwucmV2b2tlT2JqZWN0VVJMID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHR0eXBlb2YgQmxvYiA9PT0gXCJmdW5jdGlvblwiICYmXG5cdFx0dHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIlxuXHQpIHtcblx0XHRzdHlsZSA9IGNyZWF0ZUxpbmtFbGVtZW50KG9wdGlvbnMpO1xuXHRcdHVwZGF0ZSA9IHVwZGF0ZUxpbmsuYmluZChudWxsLCBzdHlsZSwgb3B0aW9ucyk7XG5cdFx0cmVtb3ZlID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0cmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKTtcblxuXHRcdFx0aWYoc3R5bGUuaHJlZikgVVJMLnJldm9rZU9iamVjdFVSTChzdHlsZS5ocmVmKTtcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdHN0eWxlID0gY3JlYXRlU3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuXHRcdHVwZGF0ZSA9IGFwcGx5VG9UYWcuYmluZChudWxsLCBzdHlsZSk7XG5cdFx0cmVtb3ZlID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0cmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKTtcblx0XHR9O1xuXHR9XG5cblx0dXBkYXRlKG9iaik7XG5cblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlIChuZXdPYmopIHtcblx0XHRpZiAobmV3T2JqKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdG5ld09iai5jc3MgPT09IG9iai5jc3MgJiZcblx0XHRcdFx0bmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiZcblx0XHRcdFx0bmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcFxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0dXBkYXRlKG9iaiA9IG5ld09iaik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlbW92ZSgpO1xuXHRcdH1cblx0fTtcbn1cblxudmFyIHJlcGxhY2VUZXh0ID0gKGZ1bmN0aW9uICgpIHtcblx0dmFyIHRleHRTdG9yZSA9IFtdO1xuXG5cdHJldHVybiBmdW5jdGlvbiAoaW5kZXgsIHJlcGxhY2VtZW50KSB7XG5cdFx0dGV4dFN0b3JlW2luZGV4XSA9IHJlcGxhY2VtZW50O1xuXG5cdFx0cmV0dXJuIHRleHRTdG9yZS5maWx0ZXIoQm9vbGVhbikuam9pbignXFxuJyk7XG5cdH07XG59KSgpO1xuXG5mdW5jdGlvbiBhcHBseVRvU2luZ2xldG9uVGFnIChzdHlsZSwgaW5kZXgsIHJlbW92ZSwgb2JqKSB7XG5cdHZhciBjc3MgPSByZW1vdmUgPyBcIlwiIDogb2JqLmNzcztcblxuXHRpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuXHRcdHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IHJlcGxhY2VUZXh0KGluZGV4LCBjc3MpO1xuXHR9IGVsc2Uge1xuXHRcdHZhciBjc3NOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKTtcblx0XHR2YXIgY2hpbGROb2RlcyA9IHN0eWxlLmNoaWxkTm9kZXM7XG5cblx0XHRpZiAoY2hpbGROb2Rlc1tpbmRleF0pIHN0eWxlLnJlbW92ZUNoaWxkKGNoaWxkTm9kZXNbaW5kZXhdKTtcblxuXHRcdGlmIChjaGlsZE5vZGVzLmxlbmd0aCkge1xuXHRcdFx0c3R5bGUuaW5zZXJ0QmVmb3JlKGNzc05vZGUsIGNoaWxkTm9kZXNbaW5kZXhdKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3R5bGUuYXBwZW5kQ2hpbGQoY3NzTm9kZSk7XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIGFwcGx5VG9UYWcgKHN0eWxlLCBvYmopIHtcblx0dmFyIGNzcyA9IG9iai5jc3M7XG5cdHZhciBtZWRpYSA9IG9iai5tZWRpYTtcblxuXHRpZihtZWRpYSkge1xuXHRcdHN0eWxlLnNldEF0dHJpYnV0ZShcIm1lZGlhXCIsIG1lZGlhKVxuXHR9XG5cblx0aWYoc3R5bGUuc3R5bGVTaGVldCkge1xuXHRcdHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcblx0fSBlbHNlIHtcblx0XHR3aGlsZShzdHlsZS5maXJzdENoaWxkKSB7XG5cdFx0XHRzdHlsZS5yZW1vdmVDaGlsZChzdHlsZS5maXJzdENoaWxkKTtcblx0XHR9XG5cblx0XHRzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcblx0fVxufVxuXG5mdW5jdGlvbiB1cGRhdGVMaW5rIChsaW5rLCBvcHRpb25zLCBvYmopIHtcblx0dmFyIGNzcyA9IG9iai5jc3M7XG5cdHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuXG5cdC8qXG5cdFx0SWYgY29udmVydFRvQWJzb2x1dGVVcmxzIGlzbid0IGRlZmluZWQsIGJ1dCBzb3VyY2VtYXBzIGFyZSBlbmFibGVkXG5cdFx0YW5kIHRoZXJlIGlzIG5vIHB1YmxpY1BhdGggZGVmaW5lZCB0aGVuIGxldHMgdHVybiBjb252ZXJ0VG9BYnNvbHV0ZVVybHNcblx0XHRvbiBieSBkZWZhdWx0LiAgT3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIGNvbnZlcnRUb0Fic29sdXRlVXJscyBvcHRpb25cblx0XHRkaXJlY3RseVxuXHQqL1xuXHR2YXIgYXV0b0ZpeFVybHMgPSBvcHRpb25zLmNvbnZlcnRUb0Fic29sdXRlVXJscyA9PT0gdW5kZWZpbmVkICYmIHNvdXJjZU1hcDtcblxuXHRpZiAob3B0aW9ucy5jb252ZXJ0VG9BYnNvbHV0ZVVybHMgfHwgYXV0b0ZpeFVybHMpIHtcblx0XHRjc3MgPSBmaXhVcmxzKGNzcyk7XG5cdH1cblxuXHRpZiAoc291cmNlTWFwKSB7XG5cdFx0Ly8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjY2MDM4NzVcblx0XHRjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiICsgYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSArIFwiICovXCI7XG5cdH1cblxuXHR2YXIgYmxvYiA9IG5ldyBCbG9iKFtjc3NdLCB7IHR5cGU6IFwidGV4dC9jc3NcIiB9KTtcblxuXHR2YXIgb2xkU3JjID0gbGluay5ocmVmO1xuXG5cdGxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cblx0aWYob2xkU3JjKSBVUkwucmV2b2tlT2JqZWN0VVJMKG9sZFNyYyk7XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlcy5qc1xuLy8gbW9kdWxlIGlkID0gNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIDMiLCJpbXBvcnQgbGF6eUluaXRpYWxpemUgZnJvbSAnLi4vbGF6eS1pbml0aWFsaXplJztcblxuY29uc3QgeyBkZWZpbmVQcm9wZXJ0eSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFxuICAgICAgICBnZXRPd25Qcm9wZXJ0eU5hbWVzLCBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgfSA9IE9iamVjdDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzY3JpcHRvcihkZXNjKSB7XG4gIGlmICghZGVzYyB8fCAhZGVzYy5oYXNPd25Qcm9wZXJ0eSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGtleXMgPSBbJ3ZhbHVlJywgJ2luaXRpYWxpemVyJywgJ2dldCcsICdzZXQnXTtcblxuICBmb3IgKGxldCBpID0gMCwgbCA9IGtleXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgaWYgKGRlc2MuaGFzT3duUHJvcGVydHkoa2V5c1tpXSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRlKGhhbmRsZURlc2NyaXB0b3IsIGVudHJ5QXJncykge1xuICBpZiAoaXNEZXNjcmlwdG9yKGVudHJ5QXJnc1tlbnRyeUFyZ3MubGVuZ3RoIC0gMV0pKSB7XG4gICAgcmV0dXJuIGhhbmRsZURlc2NyaXB0b3IoLi4uZW50cnlBcmdzLCBbXSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBoYW5kbGVEZXNjcmlwdG9yKC4uLkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyksIGVudHJ5QXJncyk7XG4gICAgfTtcbiAgfVxufVxuXG5jbGFzcyBNZXRhIHtcbiAgQGxhenlJbml0aWFsaXplXG4gIGRlYm91bmNlVGltZW91dElkcyA9IHt9O1xuXG4gIEBsYXp5SW5pdGlhbGl6ZVxuICB0aHJvdHRsZVRpbWVvdXRJZHMgPSB7fTtcblxuICBAbGF6eUluaXRpYWxpemVcbiAgdGhyb3R0bGVQcmV2aW91c1RpbWVzdGFtcHMgPSB7fTtcblxuICBAbGF6eUluaXRpYWxpemVcbiAgdGhyb3R0bGVUcmFpbGluZ0FyZ3MgPSBudWxsO1xuXG4gIEBsYXp5SW5pdGlhbGl6ZVxuICBwcm9maWxlTGFzdFJhbiA9IG51bGw7XG59XG5cbmNvbnN0IE1FVEFfS0VZID0gKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicpXG4gID8gU3ltYm9sKCdfX2NvcmVfZGVjb3JhdG9yc19fJylcbiAgOiAnX19jb3JlX2RlY29yYXRvcnNfXyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhRm9yKG9iaikge1xuICBpZiAob2JqLmhhc093blByb3BlcnR5KE1FVEFfS0VZKSA9PT0gZmFsc2UpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eShvYmosIE1FVEFfS0VZLCB7XG4gICAgICAvLyBEZWZhdWx0czogTk9UIGVudW1lcmFibGUsIGNvbmZpZ3VyYWJsZSwgb3Igd3JpdGFibGVcbiAgICAgIHZhbHVlOiBuZXcgTWV0YSgpXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gb2JqW01FVEFfS0VZXTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldE93bktleXMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNcbiAgICA/IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICAgICAgcmV0dXJuIGdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KVxuICAgICAgICAgIC5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKG9iamVjdCkpO1xuICAgICAgfVxuICAgIDogZ2V0T3duUHJvcGVydHlOYW1lcztcblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvYmopIHtcbiAgY29uc3QgZGVzY3MgPSB7fTtcblxuICBnZXRPd25LZXlzKG9iaikuZm9yRWFjaChcbiAgICBrZXkgPT4gKGRlc2NzW2tleV0gPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpKVxuICApO1xuXG4gIHJldHVybiBkZXNjcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRTZXR0ZXIoa2V5KSB7XG4gIHJldHVybiBmdW5jdGlvbiBzZXQobmV3VmFsdWUpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywga2V5LCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIC8vIElTIGVudW1lcmFibGUgd2hlbiByZWFzc2lnbmVkIGJ5IHRoZSBvdXRzaWRlIHdvcmRcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogbmV3VmFsdWVcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXdWYWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJpbmQoZm4sIGNvbnRleHQpIHtcbiAgaWYgKGZuLmJpbmQpIHtcbiAgICByZXR1cm4gZm4uYmluZChjb250ZXh0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gX19hdXRvYmluZF9fKCkge1xuICAgICAgcmV0dXJuIGZuLmFwcGx5KGNvbnRleHQsIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgd2FybiA9ICgoKSA9PiB7XG4gIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ29iamVjdCcgfHwgIWNvbnNvbGUgfHwgdHlwZW9mIGNvbnNvbGUud2FybiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiAoKSA9PiB7fTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYmluZChjb25zb2xlLndhcm4sIGNvbnNvbGUpO1xuICB9XG59KSgpO1xuXG5jb25zdCBzZWVuRGVwcmVjYXRpb25zID0ge307XG5leHBvcnQgZnVuY3Rpb24gaW50ZXJuYWxEZXByZWNhdGlvbihtc2cpIHtcbiAgaWYgKHNlZW5EZXByZWNhdGlvbnNbbXNnXSAhPT0gdHJ1ZSkge1xuICAgIHNlZW5EZXByZWNhdGlvbnNbbXNnXSA9IHRydWU7XG4gICAgd2FybignREVQUkVDQVRJT046ICcgKyBtc2cpO1xuICB9XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1kZWNvcmF0b3JzL3NyYy9wcml2YXRlL3V0aWxzLmpzIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzT2JqZWN0O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc09iamVjdC5qcyIsImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBTeW1ib2wgPSByb290LlN5bWJvbDtcblxuZXhwb3J0IGRlZmF1bHQgU3ltYm9sO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU3ltYm9sLmpzIiwiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG52YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcblxuLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG52YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxuZXhwb3J0IGRlZmF1bHQgcm9vdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Jvb3QuanMiLCIvKipcbiAqIFBlcmZvcm1zIGFcbiAqIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgZXF1aXZhbGVudC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7Kn0gb3RoZXIgVGhlIG90aGVyIHZhbHVlIHRvIGNvbXBhcmUuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0ID0geyAnYSc6IDEgfTtcbiAqIHZhciBvdGhlciA9IHsgJ2EnOiAxIH07XG4gKlxuICogXy5lcShvYmplY3QsIG9iamVjdCk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcShvYmplY3QsIG90aGVyKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcSgnYScsICdhJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5lcSgnYScsIE9iamVjdCgnYScpKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5lcShOYU4sIE5hTik7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGVxKHZhbHVlLCBvdGhlcikge1xuICByZXR1cm4gdmFsdWUgPT09IG90aGVyIHx8ICh2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZXE7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2VxLmpzIiwiaW1wb3J0IGlzRnVuY3Rpb24gZnJvbSAnLi9pc0Z1bmN0aW9uLmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXG4gKiBub3QgYSBmdW5jdGlvbiBhbmQgaGFzIGEgYHZhbHVlLmxlbmd0aGAgdGhhdCdzIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIG9yXG4gKiBlcXVhbCB0byBgMGAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJyYXlMaWtlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5TGlrZS5qcyIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRvSW50ZWdlcihkaXJ0eU51bWJlcikge1xuICBpZiAoZGlydHlOdW1iZXIgPT09IG51bGwgfHwgZGlydHlOdW1iZXIgPT09IHRydWUgfHwgZGlydHlOdW1iZXIgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuXG4gIHZhciBudW1iZXIgPSBOdW1iZXIoZGlydHlOdW1iZXIpO1xuXG4gIGlmIChpc05hTihudW1iZXIpKSB7XG4gICAgcmV0dXJuIG51bWJlcjtcbiAgfVxuXG4gIHJldHVybiBudW1iZXIgPCAwID8gTWF0aC5jZWlsKG51bWJlcikgOiBNYXRoLmZsb29yKG51bWJlcik7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZXNtL19saWIvdG9JbnRlZ2VyL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVxdWlyZWRBcmdzKHJlcXVpcmVkLCBhcmdzKSB7XG4gIGlmIChhcmdzLmxlbmd0aCA8IHJlcXVpcmVkKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihyZXF1aXJlZCArICcgYXJndW1lbnQnICsgcmVxdWlyZWQgPiAxID8gJ3MnIDogJycgKyAnIHJlcXVpcmVkLCBidXQgb25seSAnICsgYXJncy5sZW5ndGggKyAnIHByZXNlbnQnKTtcbiAgfVxufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vX2xpYi9yZXF1aXJlZEFyZ3MvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgQm9vbGVhblN3aXRjaCBmcm9tICcuL0Jvb2xlYW5Td2l0Y2gnXG5cbmV4cG9ydCBkZWZhdWx0IEJvb2xlYW5Td2l0Y2hcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9Cb29sZWFuU3dpdGNoL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IFRlbXBsYXRlUmVuZGVyZXIgZnJvbSAnLi9UZW1wbGF0ZVJlbmRlcmVyJ1xuXG5leHBvcnQgZGVmYXVsdCBUZW1wbGF0ZVJlbmRlcmVyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvVGVtcGxhdGVSZW5kZXJlci9pbmRleC5qcyIsImltcG9ydCBkZWZpbmVQcm9wZXJ0eSBmcm9tICcuL19kZWZpbmVQcm9wZXJ0eS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGFzc2lnblZhbHVlYCBhbmQgYGFzc2lnbk1lcmdlVmFsdWVgIHdpdGhvdXRcbiAqIHZhbHVlIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgPT0gJ19fcHJvdG9fXycgJiYgZGVmaW5lUHJvcGVydHkpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eShvYmplY3QsIGtleSwge1xuICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgICAnZW51bWVyYWJsZSc6IHRydWUsXG4gICAgICAndmFsdWUnOiB2YWx1ZSxcbiAgICAgICd3cml0YWJsZSc6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VBc3NpZ25WYWx1ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VBc3NpZ25WYWx1ZS5qcyIsImltcG9ydCBnZXROYXRpdmUgZnJvbSAnLi9fZ2V0TmF0aXZlLmpzJztcblxudmFyIGRlZmluZVByb3BlcnR5ID0gKGZ1bmN0aW9uKCkge1xuICB0cnkge1xuICAgIHZhciBmdW5jID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2RlZmluZVByb3BlcnR5Jyk7XG4gICAgZnVuYyh7fSwgJycsIHt9KTtcbiAgICByZXR1cm4gZnVuYztcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZVByb3BlcnR5O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZGVmaW5lUHJvcGVydHkuanMiLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdCBmcm9tICcuL2lzT2JqZWN0LmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFzeW5jVGFnID0gJ1tvYmplY3QgQXN5bmNGdW5jdGlvbl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIGdlblRhZyA9ICdbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXScsXG4gICAgcHJveHlUYWcgPSAnW29iamVjdCBQcm94eV0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSBgRnVuY3Rpb25gIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNGdW5jdGlvbihfKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oL2FiYy8pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBUaGUgdXNlIG9mIGBPYmplY3QjdG9TdHJpbmdgIGF2b2lkcyBpc3N1ZXMgd2l0aCB0aGUgYHR5cGVvZmAgb3BlcmF0b3JcbiAgLy8gaW4gU2FmYXJpIDkgd2hpY2ggcmV0dXJucyAnb2JqZWN0JyBmb3IgdHlwZWQgYXJyYXlzIGFuZCBvdGhlciBjb25zdHJ1Y3RvcnMuXG4gIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFnID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNGdW5jdGlvbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNGdW5jdGlvbi5qcyIsIi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZ2xvYmFsYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZUdsb2JhbCA9IHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG5cbmV4cG9ydCBkZWZhdWx0IGZyZWVHbG9iYWw7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19mcmVlR2xvYmFsLmpzIiwidmFyIGc7XHJcblxyXG4vLyBUaGlzIHdvcmtzIGluIG5vbi1zdHJpY3QgbW9kZVxyXG5nID0gKGZ1bmN0aW9uKCkge1xyXG5cdHJldHVybiB0aGlzO1xyXG59KSgpO1xyXG5cclxudHJ5IHtcclxuXHQvLyBUaGlzIHdvcmtzIGlmIGV2YWwgaXMgYWxsb3dlZCAoc2VlIENTUClcclxuXHRnID0gZyB8fCBGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCkgfHwgKDEsZXZhbCkoXCJ0aGlzXCIpO1xyXG59IGNhdGNoKGUpIHtcclxuXHQvLyBUaGlzIHdvcmtzIGlmIHRoZSB3aW5kb3cgcmVmZXJlbmNlIGlzIGF2YWlsYWJsZVxyXG5cdGlmKHR5cGVvZiB3aW5kb3cgPT09IFwib2JqZWN0XCIpXHJcblx0XHRnID0gd2luZG93O1xyXG59XHJcblxyXG4vLyBnIGNhbiBzdGlsbCBiZSB1bmRlZmluZWQsIGJ1dCBub3RoaW5nIHRvIGRvIGFib3V0IGl0Li4uXHJcbi8vIFdlIHJldHVybiB1bmRlZmluZWQsIGluc3RlYWQgb2Ygbm90aGluZyBoZXJlLCBzbyBpdCdzXHJcbi8vIGVhc2llciB0byBoYW5kbGUgdGhpcyBjYXNlLiBpZighZ2xvYmFsKSB7IC4uLn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZztcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vICh3ZWJwYWNrKS9idWlsZGluL2dsb2JhbC5qcyIsImltcG9ydCBpZGVudGl0eSBmcm9tICcuL2lkZW50aXR5LmpzJztcbmltcG9ydCBvdmVyUmVzdCBmcm9tICcuL19vdmVyUmVzdC5qcyc7XG5pbXBvcnQgc2V0VG9TdHJpbmcgZnJvbSAnLi9fc2V0VG9TdHJpbmcuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlc3RgIHdoaWNoIGRvZXNuJ3QgdmFsaWRhdGUgb3IgY29lcmNlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUmVzdChmdW5jLCBzdGFydCkge1xuICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgc3RhcnQsIGlkZW50aXR5KSwgZnVuYyArICcnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVJlc3Q7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUmVzdC5qcyIsIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZmlyc3QgYXJndW1lbnQgaXQgcmVjZWl2ZXMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKlxuICogY29uc29sZS5sb2coXy5pZGVudGl0eShvYmplY3QpID09PSBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBpZGVudGl0eSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlkZW50aXR5O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pZGVudGl0eS5qcyIsIi8qKlxuICogQSBmYXN0ZXIgYWx0ZXJuYXRpdmUgdG8gYEZ1bmN0aW9uI2FwcGx5YCwgdGhpcyBmdW5jdGlvbiBpbnZva2VzIGBmdW5jYFxuICogd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgIGFuZCB0aGUgYXJndW1lbnRzIG9mIGBhcmdzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLlxuICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcGFyYW0ge0FycmF5fSBhcmdzIFRoZSBhcmd1bWVudHMgdG8gaW52b2tlIGBmdW5jYCB3aXRoLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIHJlc3VsdCBvZiBgZnVuY2AuXG4gKi9cbmZ1bmN0aW9uIGFwcGx5KGZ1bmMsIHRoaXNBcmcsIGFyZ3MpIHtcbiAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnKTtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSk7XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcbiAgfVxuICByZXR1cm4gZnVuYy5hcHBseSh0aGlzQXJnLCBhcmdzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXBwbHk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcHBseS5qcyIsImltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcbmltcG9ydCBpc0luZGV4IGZyb20gJy4vX2lzSW5kZXguanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gYXJndW1lbnRzIGFyZSBmcm9tIGFuIGl0ZXJhdGVlIGNhbGwuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSB2YWx1ZSBhcmd1bWVudC5cbiAqIEBwYXJhbSB7Kn0gaW5kZXggVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBpbmRleCBvciBrZXkgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IG9iamVjdCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIG9iamVjdCBhcmd1bWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJndW1lbnRzIGFyZSBmcm9tIGFuIGl0ZXJhdGVlIGNhbGwsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0l0ZXJhdGVlQ2FsbCh2YWx1ZSwgaW5kZXgsIG9iamVjdCkge1xuICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHR5cGUgPSB0eXBlb2YgaW5kZXg7XG4gIGlmICh0eXBlID09ICdudW1iZXInXG4gICAgICAgID8gKGlzQXJyYXlMaWtlKG9iamVjdCkgJiYgaXNJbmRleChpbmRleCwgb2JqZWN0Lmxlbmd0aCkpXG4gICAgICAgIDogKHR5cGUgPT0gJ3N0cmluZycgJiYgaW5kZXggaW4gb2JqZWN0KVxuICAgICAgKSB7XG4gICAgcmV0dXJuIGVxKG9iamVjdFtpbmRleF0sIHZhbHVlKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzSXRlcmF0ZWVDYWxsO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNJdGVyYXRlZUNhbGwuanMiLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNMZW5ndGgoMyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzTGVuZ3RoO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0xlbmd0aC5qcyIsIi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMuICovXG52YXIgcmVJc1VpbnQgPSAvXig/OjB8WzEtOV1cXGQqKSQvO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBpbmRleC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD1NQVhfU0FGRV9JTlRFR0VSXSBUaGUgdXBwZXIgYm91bmRzIG9mIGEgdmFsaWQgaW5kZXguXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGluZGV4LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSW5kZXgodmFsdWUsIGxlbmd0aCkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuXG4gIHJldHVybiAhIWxlbmd0aCAmJlxuICAgICh0eXBlID09ICdudW1iZXInIHx8XG4gICAgICAodHlwZSAhPSAnc3ltYm9sJyAmJiByZUlzVWludC50ZXN0KHZhbHVlKSkpICYmXG4gICAgICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNJbmRleDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzSW5kZXguanMiLCJpbXBvcnQgYmFzZVRpbWVzIGZyb20gJy4vX2Jhc2VUaW1lcy5qcyc7XG5pbXBvcnQgaXNBcmd1bWVudHMgZnJvbSAnLi9pc0FyZ3VtZW50cy5qcyc7XG5pbXBvcnQgaXNBcnJheSBmcm9tICcuL2lzQXJyYXkuanMnO1xuaW1wb3J0IGlzQnVmZmVyIGZyb20gJy4vaXNCdWZmZXIuanMnO1xuaW1wb3J0IGlzSW5kZXggZnJvbSAnLi9faXNJbmRleC5qcyc7XG5pbXBvcnQgaXNUeXBlZEFycmF5IGZyb20gJy4vaXNUeXBlZEFycmF5LmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBhcnJheS1saWtlIGB2YWx1ZWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtib29sZWFufSBpbmhlcml0ZWQgU3BlY2lmeSByZXR1cm5pbmcgaW5oZXJpdGVkIHByb3BlcnR5IG5hbWVzLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYXJyYXlMaWtlS2V5cyh2YWx1ZSwgaW5oZXJpdGVkKSB7XG4gIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpLFxuICAgICAgaXNBcmcgPSAhaXNBcnIgJiYgaXNBcmd1bWVudHModmFsdWUpLFxuICAgICAgaXNCdWZmID0gIWlzQXJyICYmICFpc0FyZyAmJiBpc0J1ZmZlcih2YWx1ZSksXG4gICAgICBpc1R5cGUgPSAhaXNBcnIgJiYgIWlzQXJnICYmICFpc0J1ZmYgJiYgaXNUeXBlZEFycmF5KHZhbHVlKSxcbiAgICAgIHNraXBJbmRleGVzID0gaXNBcnIgfHwgaXNBcmcgfHwgaXNCdWZmIHx8IGlzVHlwZSxcbiAgICAgIHJlc3VsdCA9IHNraXBJbmRleGVzID8gYmFzZVRpbWVzKHZhbHVlLmxlbmd0aCwgU3RyaW5nKSA6IFtdLFxuICAgICAgbGVuZ3RoID0gcmVzdWx0Lmxlbmd0aDtcblxuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAoKGluaGVyaXRlZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCBrZXkpKSAmJlxuICAgICAgICAhKHNraXBJbmRleGVzICYmIChcbiAgICAgICAgICAgLy8gU2FmYXJpIDkgaGFzIGVudW1lcmFibGUgYGFyZ3VtZW50cy5sZW5ndGhgIGluIHN0cmljdCBtb2RlLlxuICAgICAgICAgICBrZXkgPT0gJ2xlbmd0aCcgfHxcbiAgICAgICAgICAgLy8gTm9kZS5qcyAwLjEwIGhhcyBlbnVtZXJhYmxlIG5vbi1pbmRleCBwcm9wZXJ0aWVzIG9uIGJ1ZmZlcnMuXG4gICAgICAgICAgIChpc0J1ZmYgJiYgKGtleSA9PSAnb2Zmc2V0JyB8fCBrZXkgPT0gJ3BhcmVudCcpKSB8fFxuICAgICAgICAgICAvLyBQaGFudG9tSlMgMiBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiB0eXBlZCBhcnJheXMuXG4gICAgICAgICAgIChpc1R5cGUgJiYgKGtleSA9PSAnYnVmZmVyJyB8fCBrZXkgPT0gJ2J5dGVMZW5ndGgnIHx8IGtleSA9PSAnYnl0ZU9mZnNldCcpKSB8fFxuICAgICAgICAgICAvLyBTa2lwIGluZGV4IHByb3BlcnRpZXMuXG4gICAgICAgICAgIGlzSW5kZXgoa2V5LCBsZW5ndGgpXG4gICAgICAgICkpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheUxpa2VLZXlzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlMaWtlS2V5cy5qcyIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXkoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheSgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG5leHBvcnQgZGVmYXVsdCBpc0FycmF5O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5LmpzIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvcmlnaW5hbE1vZHVsZSkge1xyXG5cdGlmKCFvcmlnaW5hbE1vZHVsZS53ZWJwYWNrUG9seWZpbGwpIHtcclxuXHRcdHZhciBtb2R1bGUgPSBPYmplY3QuY3JlYXRlKG9yaWdpbmFsTW9kdWxlKTtcclxuXHRcdC8vIG1vZHVsZS5wYXJlbnQgPSB1bmRlZmluZWQgYnkgZGVmYXVsdFxyXG5cdFx0aWYoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImxvYWRlZFwiLCB7XHJcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXHJcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0cmV0dXJuIG1vZHVsZS5sO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsIFwiaWRcIiwge1xyXG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiBtb2R1bGUuaTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImV4cG9ydHNcIiwge1xyXG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxyXG5cdFx0fSk7XHJcblx0XHRtb2R1bGUud2VicGFja1BvbHlmaWxsID0gMTtcclxuXHR9XHJcblx0cmV0dXJuIG1vZHVsZTtcclxufTtcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vICh3ZWJwYWNrKS9idWlsZGluL2hhcm1vbnktbW9kdWxlLmpzIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBwcm90b3R5cGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvdG90eXBlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvdG90eXBlKHZhbHVlKSB7XG4gIHZhciBDdG9yID0gdmFsdWUgJiYgdmFsdWUuY29uc3RydWN0b3IsXG4gICAgICBwcm90byA9ICh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlKSB8fCBvYmplY3RQcm90bztcblxuICByZXR1cm4gdmFsdWUgPT09IHByb3RvO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc1Byb3RvdHlwZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzUHJvdG90eXBlLmpzIiwiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcbmltcG9ydCBpc1BsYWluT2JqZWN0IGZyb20gJy4vaXNQbGFpbk9iamVjdC5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBkb21FeGNUYWcgPSAnW29iamVjdCBET01FeGNlcHRpb25dJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXSc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYW4gYEVycm9yYCwgYEV2YWxFcnJvcmAsIGBSYW5nZUVycm9yYCwgYFJlZmVyZW5jZUVycm9yYCxcbiAqIGBTeW50YXhFcnJvcmAsIGBUeXBlRXJyb3JgLCBvciBgVVJJRXJyb3JgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDMuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBlcnJvciBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0Vycm9yKG5ldyBFcnJvcik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0Vycm9yKEVycm9yKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRXJyb3IodmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciB0YWcgPSBiYXNlR2V0VGFnKHZhbHVlKTtcbiAgcmV0dXJuIHRhZyA9PSBlcnJvclRhZyB8fCB0YWcgPT0gZG9tRXhjVGFnIHx8XG4gICAgKHR5cGVvZiB2YWx1ZS5tZXNzYWdlID09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZS5uYW1lID09ICdzdHJpbmcnICYmICFpc1BsYWluT2JqZWN0KHZhbHVlKSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzRXJyb3I7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRXJyb3IuanMiLCIvKipcbiAqIENyZWF0ZXMgYSB1bmFyeSBmdW5jdGlvbiB0aGF0IGludm9rZXMgYGZ1bmNgIHdpdGggaXRzIGFyZ3VtZW50IHRyYW5zZm9ybWVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byB3cmFwLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNmb3JtIFRoZSBhcmd1bWVudCB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlckFyZyhmdW5jLCB0cmFuc2Zvcm0pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGFyZykge1xuICAgIHJldHVybiBmdW5jKHRyYW5zZm9ybShhcmcpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgb3ZlckFyZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX292ZXJBcmcuanMiLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5tYXBgIGZvciBhcnJheXMgd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZVxuICogc2hvcnRoYW5kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gW2FycmF5XSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlNYXAoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkgPT0gbnVsbCA/IDAgOiBhcnJheS5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGl0ZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBhcnJheU1hcDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TWFwLmpzIiwiLyoqIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbnZhciByZUludGVycG9sYXRlID0gLzwlPShbXFxzXFxTXSs/KSU+L2c7XG5cbmV4cG9ydCBkZWZhdWx0IHJlSW50ZXJwb2xhdGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yZUludGVycG9sYXRlLmpzIiwiaW1wb3J0IGJhc2VUb1N0cmluZyBmcm9tICcuL19iYXNlVG9TdHJpbmcuanMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBmb3IgYG51bGxgXG4gKiBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBUaGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9TdHJpbmcobnVsbCk7XG4gKiAvLyA9PiAnJ1xuICpcbiAqIF8udG9TdHJpbmcoLTApO1xuICogLy8gPT4gJy0wJ1xuICpcbiAqIF8udG9TdHJpbmcoWzEsIDIsIDNdKTtcbiAqIC8vID0+ICcxLDIsMydcbiAqL1xuZnVuY3Rpb24gdG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvU3RyaW5nO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1N0cmluZy5qcyIsImltcG9ydCB7IGRlY29yYXRlIH0gZnJvbSAnLi9wcml2YXRlL3V0aWxzJztcblxuZnVuY3Rpb24gaGFuZGxlRGVzY3JpcHRvcih0YXJnZXQsIGtleSwgZGVzY3JpcHRvcikge1xuICBkZXNjcmlwdG9yLndyaXRhYmxlID0gZmFsc2U7XG4gIHJldHVybiBkZXNjcmlwdG9yO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZWFkb25seSguLi5hcmdzKSB7XG4gIHJldHVybiBkZWNvcmF0ZShoYW5kbGVEZXNjcmlwdG9yLCBhcmdzKTtcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9jb3JlLWRlY29yYXRvcnMvc3JjL3JlYWRvbmx5LmpzIiwiaW1wb3J0IHR6UGFyc2VUaW1lem9uZSBmcm9tICcuLi9fbGliL3R6UGFyc2VUaW1lem9uZSdcbmltcG9ydCBzdWJNaWxsaXNlY29uZHMgZnJvbSAnZGF0ZS1mbnMvZXNtL3N1Yk1pbGxpc2Vjb25kcydcbmltcG9ydCB0b0RhdGUgZnJvbSAnLi4vdG9EYXRlJ1xuXG4vKipcbiAqIEBuYW1lIHV0Y1RvWm9uZWRUaW1lXG4gKiBAY2F0ZWdvcnkgVGltZSBab25lIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IEdldCBhIGRhdGUvdGltZSByZXByZXNlbnRpbmcgbG9jYWwgdGltZSBpbiBhIGdpdmVuIHRpbWUgem9uZSBmcm9tIHRoZSBVVEMgZGF0ZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogUmV0dXJucyBhIGRhdGUgaW5zdGFuY2Ugd2l0aCB2YWx1ZXMgcmVwcmVzZW50aW5nIHRoZSBsb2NhbCB0aW1lIGluIHRoZSB0aW1lIHpvbmVcbiAqIHNwZWNpZmllZCBvZiB0aGUgVVRDIHRpbWUgZnJvbSB0aGUgZGF0ZSBwcm92aWRlZC4gSW4gb3RoZXIgd29yZHMsIHdoZW4gdGhlIG5ldyBkYXRlXG4gKiBpcyBmb3JtYXR0ZWQgaXQgd2lsbCBzaG93IHRoZSBlcXVpdmFsZW50IGhvdXJzIGluIHRoZSB0YXJnZXQgdGltZSB6b25lIHJlZ2FyZGxlc3NcbiAqIG9mIHRoZSBjdXJyZW50IHN5c3RlbSB0aW1lIHpvbmUuXG4gKlxuICogQHBhcmFtIHtEYXRlfFN0cmluZ3xOdW1iZXJ9IGRhdGUgLSB0aGUgZGF0ZSB3aXRoIHRoZSByZWxldmFudCBVVEMgdGltZVxuICogQHBhcmFtIHtTdHJpbmd9IHRpbWVab25lIC0gdGhlIHRpbWUgem9uZSB0byBnZXQgbG9jYWwgdGltZSBmb3IsIGNhbiBiZSBhbiBvZmZzZXQgb3IgSUFOQSB0aW1lIHpvbmVcbiAqIEBwYXJhbSB7T3B0aW9uc1dpdGhUWn0gW29wdGlvbnNdIC0gdGhlIG9iamVjdCB3aXRoIG9wdGlvbnMuIFNlZSBbT3B0aW9uc117QGxpbmsgaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy9PcHRpb25zfVxuICogQHBhcmFtIHswfDF8Mn0gW29wdGlvbnMuYWRkaXRpb25hbERpZ2l0cz0yXSAtIHBhc3NlZCB0byBgdG9EYXRlYC4gU2VlIFt0b0RhdGVde0BsaW5rIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvdG9EYXRlfVxuICogQHJldHVybnMge0RhdGV9IHRoZSBuZXcgZGF0ZSB3aXRoIHRoZSBlcXVpdmFsZW50IHRpbWUgaW4gdGhlIHRpbWUgem9uZVxuICogQHRocm93cyB7VHlwZUVycm9yfSAyIGFyZ3VtZW50cyByZXF1aXJlZFxuICogQHRocm93cyB7UmFuZ2VFcnJvcn0gYG9wdGlvbnMuYWRkaXRpb25hbERpZ2l0c2AgbXVzdCBiZSAwLCAxIG9yIDJcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gSW4gSnVuZSAxMGFtIFVUQyBpcyA2YW0gaW4gTmV3IFlvcmsgKC0wNDowMClcbiAqIGNvbnN0IHJlc3VsdCA9IHV0Y1RvWm9uZWRUaW1lKCcyMDE0LTA2LTI1VDEwOjAwOjAwLjAwMFonLCAnQW1lcmljYS9OZXdfWW9yaycpXG4gKiAvLz0+IEp1biAyNSAyMDE0IDA2OjAwOjAwXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHV0Y1RvWm9uZWRUaW1lKGRpcnR5RGF0ZSwgdGltZVpvbmUsIG9wdGlvbnMpIHtcbiAgdmFyIGRhdGUgPSB0b0RhdGUoZGlydHlEYXRlLCBvcHRpb25zKVxuXG4gIC8vIFRoaXMgZGF0ZSBoYXMgdGhlIFVUQyB0aW1lIHZhbHVlcyBvZiB0aGUgaW5wdXQgZGF0ZSBhdCB0aGUgc3lzdGVtIHRpbWUgem9uZVxuICB2YXIgdXRjRGF0ZSA9IG5ldyBEYXRlKFxuICAgIGRhdGUuZ2V0VVRDRnVsbFllYXIoKSxcbiAgICBkYXRlLmdldFVUQ01vbnRoKCksXG4gICAgZGF0ZS5nZXRVVENEYXRlKCksXG4gICAgZGF0ZS5nZXRVVENIb3VycygpLFxuICAgIGRhdGUuZ2V0VVRDTWludXRlcygpLFxuICAgIGRhdGUuZ2V0VVRDU2Vjb25kcygpLFxuICAgIGRhdGUuZ2V0VVRDTWlsbGlzZWNvbmRzKClcbiAgKVxuICAvLyBXZSBqdXN0IG5lZWQgdG8gYXBwbHkgdGhlIG9mZnNldCBpbmRpY2F0ZWQgYnkgdGhlIHRpbWUgem9uZSB0byB0aGlzIGxvY2FsaXplZCBkYXRlXG4gIHZhciBvZmZzZXRNaWxsaXNlY29uZHMgPSB0elBhcnNlVGltZXpvbmUodGltZVpvbmUsIGRhdGUpXG5cbiAgcmV0dXJuIG9mZnNldE1pbGxpc2Vjb25kc1xuICAgID8gc3ViTWlsbGlzZWNvbmRzKHV0Y0RhdGUsIG9mZnNldE1pbGxpc2Vjb25kcylcbiAgICA6IHV0Y0RhdGVcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zLXR6L2VzbS91dGNUb1pvbmVkVGltZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsImltcG9ydCB0elRva2VuaXplRGF0ZSBmcm9tICcuLi90elRva2VuaXplRGF0ZS9pbmRleC5qcydcblxudmFyIE1JTExJU0VDT05EU19JTl9IT1VSID0gMzYwMDAwMFxudmFyIE1JTExJU0VDT05EU19JTl9NSU5VVEUgPSA2MDAwMFxuXG52YXIgcGF0dGVybnMgPSB7XG4gIHRpbWV6b25lOiAvKFtaKy1dLiopJC8sXG4gIHRpbWV6b25lWjogL14oWikkLyxcbiAgdGltZXpvbmVISDogL14oWystXSkoXFxkezJ9KSQvLFxuICB0aW1lem9uZUhITU06IC9eKFsrLV0pKFxcZHsyfSk6PyhcXGR7Mn0pJC8sXG4gIHRpbWV6b25lSUFOQTogLyhVVEN8KD86W2EtekEtWl0rXFwvW2EtekEtWl9dKyg/OlxcL1thLXpBLVpfXSspPykpJC9cbn1cblxuLy8gUGFyc2UgdmFyaW91cyB0aW1lIHpvbmUgb2Zmc2V0IGZvcm1hdHMgdG8gYW4gb2Zmc2V0IGluIG1pbGxpc2Vjb25kc1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdHpQYXJzZVRpbWV6b25lKHRpbWV6b25lU3RyaW5nLCBkYXRlKSB7XG4gIHZhciB0b2tlblxuICB2YXIgYWJzb2x1dGVPZmZzZXRcblxuICAvLyBaXG4gIHRva2VuID0gcGF0dGVybnMudGltZXpvbmVaLmV4ZWModGltZXpvbmVTdHJpbmcpXG4gIGlmICh0b2tlbikge1xuICAgIHJldHVybiAwXG4gIH1cblxuICB2YXIgaG91cnNcblxuICAvLyDCsWhoXG4gIHRva2VuID0gcGF0dGVybnMudGltZXpvbmVISC5leGVjKHRpbWV6b25lU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICBob3VycyA9IHBhcnNlSW50KHRva2VuWzJdLCAxMClcblxuICAgIGlmICghdmFsaWRhdGVUaW1lem9uZShob3VycykpIHtcbiAgICAgIHJldHVybiBOYU5cbiAgICB9XG5cbiAgICBhYnNvbHV0ZU9mZnNldCA9IGhvdXJzICogTUlMTElTRUNPTkRTX0lOX0hPVVJcbiAgICByZXR1cm4gdG9rZW5bMV0gPT09ICcrJyA/IC1hYnNvbHV0ZU9mZnNldCA6IGFic29sdXRlT2Zmc2V0XG4gIH1cblxuICAvLyDCsWhoOm1tIG9yIMKxaGhtbVxuICB0b2tlbiA9IHBhdHRlcm5zLnRpbWV6b25lSEhNTS5leGVjKHRpbWV6b25lU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICBob3VycyA9IHBhcnNlSW50KHRva2VuWzJdLCAxMClcbiAgICB2YXIgbWludXRlcyA9IHBhcnNlSW50KHRva2VuWzNdLCAxMClcblxuICAgIGlmICghdmFsaWRhdGVUaW1lem9uZShob3VycywgbWludXRlcykpIHtcbiAgICAgIHJldHVybiBOYU5cbiAgICB9XG5cbiAgICBhYnNvbHV0ZU9mZnNldCA9XG4gICAgICBob3VycyAqIE1JTExJU0VDT05EU19JTl9IT1VSICsgbWludXRlcyAqIE1JTExJU0VDT05EU19JTl9NSU5VVEVcbiAgICByZXR1cm4gdG9rZW5bMV0gPT09ICcrJyA/IC1hYnNvbHV0ZU9mZnNldCA6IGFic29sdXRlT2Zmc2V0XG4gIH1cblxuICAvLyBJQU5BIHRpbWUgem9uZVxuICB0b2tlbiA9IHBhdHRlcm5zLnRpbWV6b25lSUFOQS5leGVjKHRpbWV6b25lU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICAvLyB2YXIgW2ZZZWFyLCBmTW9udGgsIGZEYXksIGZIb3VyLCBmTWludXRlLCBmU2Vjb25kXSA9IHR6VG9rZW5pemVEYXRlKGRhdGUsIHRpbWV6b25lU3RyaW5nKVxuICAgIHZhciB0b2tlbnMgPSB0elRva2VuaXplRGF0ZShkYXRlLCB0aW1lem9uZVN0cmluZylcbiAgICB2YXIgYXNVVEMgPSBEYXRlLlVUQyhcbiAgICAgIHRva2Vuc1swXSxcbiAgICAgIHRva2Vuc1sxXSAtIDEsXG4gICAgICB0b2tlbnNbMl0sXG4gICAgICB0b2tlbnNbM10sXG4gICAgICB0b2tlbnNbNF0sXG4gICAgICB0b2tlbnNbNV1cbiAgICApXG4gICAgdmFyIHRpbWVzdGFtcFdpdGhNc1plcm9lZCA9IGRhdGUuZ2V0VGltZSgpIC0gKGRhdGUuZ2V0VGltZSgpICUgMTAwMClcbiAgICByZXR1cm4gLShhc1VUQyAtIHRpbWVzdGFtcFdpdGhNc1plcm9lZClcbiAgfVxuXG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlVGltZXpvbmUoaG91cnMsIG1pbnV0ZXMpIHtcbiAgaWYgKG1pbnV0ZXMgIT0gbnVsbCAmJiAobWludXRlcyA8IDAgfHwgbWludXRlcyA+IDU5KSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zLXR6L2VzbS9fbGliL3R6UGFyc2VUaW1lem9uZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50c01peGluLCB3aXRoRXZlbnRzTWl4aW4gfSBmcm9tICcuL0V2ZW50c01peGluJ1xuXG5leHBvcnQgZGVmYXVsdCBFdmVudHNNaXhpblxuZXhwb3J0IHsgd2l0aEV2ZW50c01peGluIH1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9FdmVudHNNaXhpbi9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBEYXRlVGltZUlucHV0IGZyb20gJy4vRGF0ZVRpbWVJbnB1dCdcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWVJbnB1dFxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0RhdGVUaW1lSW5wdXQvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IE51bWJlck1hc2sgZnJvbSAnLi9OdW1iZXJNYXNrJ1xuaW1wb3J0IERhdGVNYXNrLCB7XG4gIGdldERheU9mWWVhcixcbiAgZ2V0V2Vla051bWJlcixcbiAgZ2V0V2Vla1N0YXJ0QnlMb2NhbGUsXG4gIElTX0RBVEVfUkVHRVgsXG4gIElTX1RJTUVfUkVHRVgsXG4gIGZpeFNob3J0SVNPLFxuICBnZXRUaW1lem9uZU9yT2Zmc2V0XG59IGZyb20gJy4vRGF0ZU1hc2snXG5cbmltcG9ydCBTdHJpbmdNYXNrIGZyb20gJy4vU3RyaW5nTWFzaydcbmltcG9ydCBUeXBlcyBmcm9tICcuL1R5cGVzJ1xuXG5jb25zdCBVdGlscyA9IHtcbiAgRGF0ZXM6IHtcbiAgICBnZXREYXlPZlllYXIsXG4gICAgZ2V0V2Vla051bWJlcixcbiAgICBnZXRXZWVrU3RhcnRCeUxvY2FsZSxcbiAgICBJU19EQVRFX1JFR0VYLFxuICAgIElTX1RJTUVfUkVHRVgsXG4gICAgZml4U2hvcnRJU08sXG4gICAgZ2V0VGltZXpvbmVPck9mZnNldFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFR5cGVzXG5leHBvcnQgeyBUeXBlcywgTnVtYmVyTWFzaywgRGF0ZU1hc2ssIFN0cmluZ01hc2ssIFV0aWxzIH1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBCb29sZWFuRWRpdG9yIGZyb20gJy4vQm9vbGVhbkVkaXRvcidcblxuZXhwb3J0IGRlZmF1bHQgQm9vbGVhbkVkaXRvclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0Jvb2xlYW5FZGl0b3IvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgQ29tcG9uZW50IGZyb20gJy4uL0NvbXBvbmVudCdcbmltcG9ydCBCb29sZWFuU3dpdGNoIGZyb20gJy4uL0Jvb2xlYW5Td2l0Y2gnXG5cbi8qKlxuICogQm9vbGVhbnMgRWRpdG9yXG4gKlxuICogSGFuZGxlIGJvb2xlYW4gdmFsdWVzIEVkaXRpbmdcbiAqXG4gKiAjIyBPcHRpb25zXG4gKlxuICogfCBOYW1lICAgICAgICAgICAgICAgICAgXHR8IERlZmF1bHQgICAgIFx0fCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVx0fDotLS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipib29sZWFuVXNlZFRydWVWYWx1ZSoqICAgfCB1bmRlZmluZWQgICAgfCB0aGUgdmFsdWUgdG8gcmV0dXJuIHdoZW4gdGhlIGVkaXRvciBjaGFuZ2VzIHRoZSBjdXJyZW50IGNlbGwgdmFsdWUgdG8gdHJ1ZS4gaW4gY2FzZSBpdCBpcyB1bmRlZmluZWQgdGhlbiB3ZSB1c2UgdGhlIGZpcnN0IGl0ZW0gaW4gKipib29sZWFuVHJ1ZVZhbHVlW10qKlxuICogfCAqKmJvb2xlYW5Vc2VkRmFsc2VWYWx1ZSoqICAgfCB1bmRlZmluZWQgICAgfCB0aGUgdmFsdWUgdG8gcmV0dXJuIHdoZW4gdGhlIGVkaXRvciBjaGFuZ2VzIHRoZSBjdXJyZW50IGNlbGwgdmFsdWUgdG8gZmFsc2UuIGluIGNhc2UgaXQgaXMgdW5kZWZpbmVkIHRoZW4gd2UgdXNlIHRoZSBmaXJzdCBpdGVtIGluICoqYm9vbGVhbkZhbHNlVmFsdWVbXSoqXG4gKiB8ICoqYm9vbGVhblRydWVWYWx1ZVtdKiogICAgICAgfCB0cnVlKGJvb2wpICBcdHwgVGhlIG9wdGlvbnMgZGVzY3JpYmVzIHdoYXQgaXMgY29uc2lkZXJlZCBgdHJ1ZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0fFxuICogfCAqKmJvb2xlYW5GYWxzZVZhbHVlW10qKiAgICAgIHwgZmFsc2UoYm9vbCkgXHR8IFRoZSBvcHRpb25zIGRlc2NyaWJlcyB3aGF0IGlzIGNvbnNpZGVyZWQgYGZhbHNlYFxuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIEJvb2xlYW5FZGl0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBpbml0KHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMua2V5UHJlc3MgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gQm9vbGVhbihwYXJhbXMua2V5UHJlc3MpXG4gICAgfSBlbHNlIGlmIChwYXJhbXMuY2hhclByZXNzICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IEJvb2xlYW4ocGFyYW1zLmNoYXJQcmVzcylcbiAgICB9XG5cbiAgICB0aGlzLl90cnVlVmFsdWUgPSBbXS5jb25jYXQoXG4gICAgICB0aGlzLmdldE9wdGlvbignYm9vbGVhblRydWVWYWx1ZScsIHBhcmFtcywgW3RydWVdKVxuICAgIClcblxuICAgIHRoaXMuX2ZhbHNlVmFsdWUgPSBbXS5jb25jYXQoXG4gICAgICB0aGlzLmdldE9wdGlvbignYm9vbGVhbkZhbHNlVmFsdWUnLCBwYXJhbXMsIFtmYWxzZV0pXG4gICAgKVxuXG4gICAgdGhpcy5fcmV0dXJuVHJ1ZVZhbHVlID0gdGhpcy5nZXRPcHRpb24oXG4gICAgICAnYm9vbGVhblVzZWRUcnVlVmFsdWUnLFxuICAgICAgcGFyYW1zLFxuICAgICAgdGhpcy5fdHJ1ZVZhbHVlWzBdXG4gICAgKVxuICAgIHRoaXMuX3JldHVybkZhbHNlVmFsdWUgPSB0aGlzLmdldE9wdGlvbihcbiAgICAgICdib29sZWFuVXNlZEZhbHNlVmFsdWUnLFxuICAgICAgcGFyYW1zLFxuICAgICAgdGhpcy5fZmFsc2VWYWx1ZVswXVxuICAgIClcblxuICAgIHRoaXMuX3RydWVWYWx1ZSA9IHRoaXMuX3RydWVWYWx1ZS5tYXAoeCA9PiBTdHJpbmcoeCkpXG4gICAgdGhpcy5fZmFsc2VWYWx1ZSA9IHRoaXMuX2ZhbHNlVmFsdWUubWFwKHggPT4gU3RyaW5nKHgpKVxuXG4gICAgdGhpcy5mb2N1c0FmdGVyQXR0YWNoZWQgPSBwYXJhbXMuY2VsbFN0YXJ0ZWRFZGl0XG4gICAgaWYgKHRoaXMuZm9jdXNBZnRlckF0dGFjaGVkKSB7XG4gICAgICBsZXQga2V5UHJlc3NCYWNrc3BhY2VPckRlbGV0ZSA9XG4gICAgICAgIHBhcmFtcy5rZXlQcmVzcyA9PSAzMiB8fCBwYXJhbXMua2V5UHJlc3MgPT0gNDYgLy8gc3BhY2UgLy8gZGVsZXRlXG5cbiAgICAgIGlmIChrZXlQcmVzc0JhY2tzcGFjZU9yRGVsZXRlKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gZmFsc2VcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLmNoYXJQcmVzcyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHBhcmFtcy5jaGFyUHJlc3NcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gcGFyYW1zLnZhbHVlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gcGFyYW1zLnZhbHVlXG4gICAgfVxuXG4gICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jb252ZXJ0VmFsdWUoXG4gICAgICB0aGlzLl92YWx1ZSxcbiAgICAgIHRoaXMuX3RydWVWYWx1ZSxcbiAgICAgIHRoaXMuX2ZhbHNlVmFsdWVcbiAgICApXG5cbiAgICB0aGlzLl9zd2l0Y2hlciA9IG5ldyBCb29sZWFuU3dpdGNoKHRoaXMuX3ZhbHVlLCBzd2l0Y2hlciA9PiB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2NvbnZlcnRWYWx1ZShcbiAgICAgICAgc3dpdGNoZXIuaXNDaGVja2VkKCksXG4gICAgICAgIHRoaXMuX3RydWVWYWx1ZSxcbiAgICAgICAgdGhpcy5fZmFsc2VWYWx1ZVxuICAgICAgKVxuICAgIH0pXG4gICAgdGhpcy5fc3dpdGNoZXIuaW5pdChwYXJhbXMpXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBnZXRHdWkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N3aXRjaGVyLmdldEd1aSgpXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIHRoaXMuX3N3aXRjaGVyLmRlc3Ryb3koKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIG9uY2UgYWZ0ZXIgR1VJIGlzIGF0dGFjaGVkIHRvIERPTS5cbiAgICogTWFrZSBzdXJlIHRoZSBjb250YWluZXIgaXMgYWx3YXlzIGZvY3VzZWQgYW5kIGxpc3RlbmluZyB0byBrZXkgY2hhbmdlc1xuICAgKi9cbiAgYWZ0ZXJHdWlBdHRhY2hlZCgpIHtcbiAgICBpZiAodGhpcy5mb2N1c0FmdGVyQXR0YWNoZWQpIHtcbiAgICAgIHRoaXMuZm9jdXNJbigpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmluYWwgdmFsdWUgdG8gdGhlIGdyaWQsIHRoZSByZXN1bHQgb2YgdGhlIGVkaXRpbmdcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn1cbiAgICovXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZSA/IHRoaXMuX3JldHVyblRydWVWYWx1ZSA6IHRoaXMuX3JldHVybkZhbHNlVmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNhbGxlZCBvbmNlIGFmdGVyIGluaXRpYWxpemVkIGFuZCByZXR1cm5zIGZhbHNlIHNvIHRoZSBlZGl0b3IgYXBwZWFycyBpbiB0aGUgY2VsbFxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSBhbHdheXMgZmFsc2VcbiAgICoqL1xuICBpc1BvcHVwKCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIElmIGRvaW5nIGZ1bGwgcm93IGVkaXQsIHRoZW4gZ2V0cyBjYWxsZWQgd2hlbiB0YWJiaW5nIGludG8gdGhlIGNlbGwuXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59XG4gICAqL1xuICBmb2N1c0luKCkge1xuICAgIHRoaXMuX3N3aXRjaGVyLnNldERpc2FibGVkKGZhbHNlKVxuICAgIHRoaXMuX3N3aXRjaGVyLmZvY3VzKClcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIElmIGRvaW5nIGZ1bGwgcm93IGVkaXQsIHRoZW4gZ2V0cyBjYWxsZWQgd2hlbiB0YWJiaW5nIG91dCBvZiB0aGUgY2VsbC5cbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn1cbiAgICovXG4gIGZvY3VzT3V0KCkge1xuICAgIHRoaXMuX3N3aXRjaGVyLnNldERpc2FibGVkKHRydWUpXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHZhbHVlIHRoZSBjdXJyZW50IGNlbGwgdmFsdWVcbiAgICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB0cnVlVmFsdWUgdHJ1ZSB2YWx1ZSBhbGlhc1xuICAgKiBAcGFyYW0ge1N0cmluZ3xOdW1iZXJ9IGZhbHNlVmFsdWUgZmFsc2UgdmFsdWUgYWxpYXNcbiAgICovXG4gIF9jb252ZXJ0VmFsdWUodmFsdWUsIHRydWVWYWx1ZSwgZmFsc2VWYWx1ZSkge1xuICAgIGNvbnN0IHZhbHVlQXNTdHJpbmcgPSBTdHJpbmcodmFsdWUpXG5cbiAgICByZXR1cm4gdHJ1ZVZhbHVlLmluZGV4T2YodmFsdWVBc1N0cmluZykgPiAtMVxuICAgICAgPyB0cnVlXG4gICAgICA6IGZhbHNlVmFsdWUuaW5kZXhPZih2YWx1ZUFzU3RyaW5nKSA+IC0xXG4gICAgICA/IGZhbHNlXG4gICAgICA6IHZhbHVlXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQm9vbGVhbkVkaXRvclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0Jvb2xlYW5FZGl0b3IvQm9vbGVhbkVkaXRvci5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvdHlwZS1idWlsdGlucyAqL1xuXG4vKipcbiAqIFRoZSBiYXNlIGNvbXBvbmVudCBjbGFzc1xuICpcbiAqIFRoaXMgY2xhc3MgaXMgdGhlIGFic3RyYWN0IGNsYXNzIHdoaWNoIGFsbCBjb21wb25lbnRzIHNob3VsZCB1c2VcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBDb21wb25lbnQge1xuICAvKipcbiAgICogVGhlIGNvbXBvbmVudCBodG1sIGVsZW1lbnRcbiAgICpcbiAgICogQHR5cGUge0hUTUxFbGVtZW50fVxuICAgKi9cbiAgX2d1aSA9IG51bGxcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXNcbiAgICpcbiAgICogQHJldHVybiB2b2lkXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgaW5pdChwYXJhbXMpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9IGRvZXMgbm90IGltcGxlbWVudCB0aGUgW2luaXRdIG1ldGhvZGBcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBET00gZWxlbWVudCBvZiB0aGUgY29tcG9uZW50LCB0aGlzIGlzIHdoYXQgdGhlIGdyaWQgcHV0cyBpbnRvIHRoZSBjZWxsXG4gICAqXG4gICAqIEByZXR1cm4ge0hUTUxFbGVtZW50fVxuICAgKi9cbiAgZ2V0R3VpKCkge1xuICAgIHJldHVybiB0aGlzLl9ndWlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLiBJZiB5b3VyIGN1c3RvbSBjb21wb25lbnQgbmVlZHMgdG8gZG9cbiAgICogYW55IHJlc291cmNlIGNsZWFuaW5nIHVwLCBkbyBpdCBoZXJlLlxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICAvLyBwYXNzXG4gIH1cblxuICAvKipcbiAgICogRmluZCB0aGUgcmVxdWlyZWQgb3B0aW9uIHZhbHVlXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gd2lsbCB0cnkgdG8gZmluZCB0aGUgcGFzc2VkIG9wdGlvbidzIHZhbHVlIGluIHRoZSBmb2xsb3dpbmcgb3JkZXJcbiAgICpcbiAgICogIDEuIHBhcmFtc1xuICAgKiAgMi4gU2VhcmNoIGBwYXJhbXMuY29sRGVmYFxuICAgKiAgMy4gU2VhcmNoIGBwYXJhbXMuY29udGV4dC5BR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnW0NPTFVNTl9JRF1gIG9yIGBwYXJhbXMuY29udGV4dC5tZXRhW0NPTFVNTl9JRF1gXG4gICAqICA0LiBTZWFyY2ggYHBhcmFtcy5jb250ZXh0LkFHcmlkQ29tcG9uZW50c01ldGFDb25maWdgIG9yIGBwYXJhbXMuY29udGV4dC5tZXRhYFxuICAgKiAgNS4gU2VhcmNoIGBwYXJhbXMuY29udGV4dGBcbiAgICogIDYuIElmIG5vbmUgZm91bmQgcmV0dXJuIHRoZSBmYWxsYmFja1xuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSB0aGUgbmFtZSBvZiB0aGUgb3B0aW9uXG4gICAqIEBwYXJhbSB7cGFyYW1zfSBwYXJhbXMgYW4gb2JqZWN0IHVzZWQgdG8gc2VhcmNoIGZvciB0aGUgb3B0aW9uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBmYWxsYmFjayBhIHZhbHVlIHRvIHJldHVybiBpbiBjYXNlIHRoZSBvcHRpb24gY2FuIG5vdCBiZSBmb3VuZFxuICAgKi9cbiAgZ2V0T3B0aW9uKG5hbWUsIHBhcmFtcywgZmFsbGJhY2sgPSBudWxsKSB7XG4gICAgbGV0IG9wdGlvblxuXG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgIG9wdGlvbiA9IHBhcmFtc1tuYW1lXVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0cnkgdG8gZmV0Y2ggZnJvbSB0aGUgY29sdW1uIGRlZiBmaXJzdFxuICAgICAgaWYgKFxuICAgICAgICBwYXJhbXMuaGFzT3duUHJvcGVydHkoJ2NvbERlZicpICYmXG4gICAgICAgIHBhcmFtcy5jb2xEZWYuaGFzT3duUHJvcGVydHkobmFtZSlcbiAgICAgICkge1xuICAgICAgICBvcHRpb24gPSBwYXJhbXMuY29sRGVmW25hbWVdXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0cnkgdG8gZmV0Y2ggZnJvbSBBR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnfG1ldGEgaW4gdGhlIGNvbnRleHRcbiAgICAgICAgbGV0IEFHcmlkQ29tcG9uZW50c01ldGFDb25maWcgPSBudWxsXG4gICAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoJ2NvbnRleHQnKSkge1xuICAgICAgICAgIEFHcmlkQ29tcG9uZW50c01ldGFDb25maWcgPVxuICAgICAgICAgICAgcGFyYW1zLmNvbnRleHQuQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZyB8fCBwYXJhbXMuY29udGV4dC5tZXRhXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZyAmJlxuICAgICAgICAgIEFHcmlkQ29tcG9uZW50c01ldGFDb25maWcuaGFzT3duUHJvcGVydHkocGFyYW1zLmNvbHVtbi5jb2xJZCkgJiZcbiAgICAgICAgICBBR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnW3BhcmFtcy5jb2x1bW4uY29sSWRdLmhhc093blByb3BlcnR5KG5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIG9wdGlvbiA9IEFHcmlkQ29tcG9uZW50c01ldGFDb25maWdbcGFyYW1zLmNvbHVtbi5jb2xJZF1bbmFtZV1cbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBBR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnICYmXG4gICAgICAgICAgQUdyaWRDb21wb25lbnRzTWV0YUNvbmZpZy5oYXNPd25Qcm9wZXJ0eShuYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICBvcHRpb24gPSBBR3JpZENvbXBvbmVudHNNZXRhQ29uZmlnW25hbWVdXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdHJ5IHRvIGZldGNoIGZyb20gdGhlIGNvbnRleHQgb2JqZWN0IGl0c2VsZlxuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBwYXJhbXMuY29udGV4dFxuICAgICAgICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgICAgIG9wdGlvbiA9IGNvbnRleHRbbmFtZV1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdHJ5IHRvIGNoZWNrIHBhcmFtcyBpdHNlbGYgb3IgZmFsbGJhY2sgdG8gZGVmYXVsdFxuICAgICAgICAgICAgb3B0aW9uID0gZmFsbGJhY2tcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZW9mIG9wdGlvbiAhPT0gJ3VuZGVmaW5lZCcgPyBvcHRpb24gOiBmYWxsYmFja1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBXaW5kb3cgSW5zdGFuY2VcbiAgICpcbiAgICogQHBhcmFtIHtwYXJhbXN9IHBhcmFtcyBhbiBvYmplY3QgdXNlZCB0byBzZWFyY2ggZm9yIHRoZSB3aW5kb3cgaW5zdGFuY2VcbiAgICpcbiAgICogQHJldHVybiB7V2luZG93fVxuICAgKi9cbiAgZ2V0V2luKHBhcmFtcykge1xuICAgIGNvbnN0IHdpbiA9IHRoaXMuZ2V0T3B0aW9uKCd3aW5kb3cnLCBwYXJhbXMpIHx8IHdpbmRvdyB8fCBudWxsXG5cbiAgICBpZiAoIXdpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDdXJyZW50IGVudmlyb25tZW50IGRvZXMgbm90IHN1cHBvcnQgd2luZG93JylcbiAgICB9XG5cbiAgICByZXR1cm4gd2luXG4gIH1cblxuICAvKipcbiAgICogR2V0IGRvY3VtZW50IEluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7cGFyYW1zfSBwYXJhbXMgYW4gb2JqZWN0IHVzZWQgdG8gc2VhcmNoIGZvciB0aGUgZG9jdW1lbnQgaW5zdGFuY2VcbiAgICpcbiAgICogQHJldHVybiB7SFRNTERvY3VtZW50fVxuICAgKi9cbiAgZ2V0RG9jKHBhcmFtcykge1xuICAgIGNvbnN0IGRvYyA9IHRoaXMuZ2V0T3B0aW9uKCdkb2N1bWVudCcsIHBhcmFtcykgfHwgZG9jdW1lbnQgfHwgbnVsbFxuXG4gICAgaWYgKCFkb2MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ3VycmVudCBlbnZpcm9ubWVudCBkb2VzIG5vdCBzdXBwb3J0IGRvY3VtZW50JylcbiAgICB9XG5cbiAgICByZXR1cm4gZG9jXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvQ29tcG9uZW50L0NvbXBvbmVudC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7IGF1dG9iaW5kLCBvdmVycmlkZSB9IGZyb20gJ2NvcmUtZGVjb3JhdG9ycydcbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vQ29tcG9uZW50J1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnXG5cbi8qKlxuICogQm9vbGVhbiBSZW5kZXJlclxuICpcbiAqIFNpbXBsZSB0b2dnbGUgc3dpdGNoIHRvIGhhbmRsZSBib29sZWFuIHZhbHVlc1xuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIEJvb2xlYW5Td2l0Y2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogQ29uc3RydWN0IG5ldyBCb29sZWFuU3dpdGNoIENvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtpbml0aWFsVmFsdWUgPSBmYWxzZV0gdGhlIGRlZmF1bHQgc3RhdGUgLCBjaGVja2VkIG9yIHVuY2hlY2tlZFxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBbbGlzdGVuZXIgPSBudWxsXSBhIGxpc3RlbmVyIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzdGF0ZSBpcyBjaGFuZ2VkXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWUgPSBmYWxzZSwgbGlzdGVuZXIgPSBudWxsKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuc2V0Q2hlY2tlZChpbml0aWFsVmFsdWUpXG4gICAgdGhpcy5zZXRMaXN0ZW5lcihsaXN0ZW5lcilcbiAgICB0aGlzLnNldERpc2FibGVkKGZhbHNlKVxuICB9XG5cbiAgLyoqXG4gICAqICBAaW5oZXJpdERvY1xuICAgKi9cbiAgQG92ZXJyaWRlXG4gIGluaXQocGFyYW1zKSB7XG4gICAgdGhpcy5fcGFyYW1zID0gcGFyYW1zXG4gICAgdGhpcy5fb25DbGljayA9IHRoaXMuX29uQ2xpY2suYmluZCh0aGlzKVxuICAgIHRoaXMuX29uS2V5ZG93biA9IHRoaXMuX29uS2V5ZG93bi5iaW5kKHRoaXMpXG5cbiAgICB0aGlzLl9ndWkgPSB0aGlzLmdldERvYyhwYXJhbXMpLmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGhpcy5fZ3VpLmNsYXNzTmFtZSA9ICdib29sU3dpdGNoX193cmFwcGVyJ1xuICAgIHRoaXMuX2d1aS50YWJJbmRleCA9IC0xXG5cbiAgICB0aGlzLnJlbmRlcigpXG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBzd2l0Y2ggc2xpZGVyIGFuZCBoaWRkZW4gaW5wdXQuXG4gICAqL1xuICByZW5kZXIoKSB7XG4gICAgY29uc3QgZG9jID0gdGhpcy5nZXREb2ModGhpcy5fcGFyYW1zKVxuXG4gICAgY29uc3QgYm9vbFN3aXRjaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgYm9vbFN3aXRjaC5jbGFzc05hbWUgPSAnYm9vbFN3aXRjaCdcblxuICAgIC8vIGlucHV0XG4gICAgdGhpcy5faW5wdXQgPSBkb2MuY3JlYXRlRWxlbWVudCgnaW5wdXQnKVxuICAgIHRoaXMuX2lucHV0LmlkID0gYGVsLSR7TWF0aC5yYW5kb20oKX1gXG4gICAgdGhpcy5faW5wdXQubmFtZSA9ICdjaGVja2JveCdcbiAgICB0aGlzLl9pbnB1dC5jbGFzc05hbWUgPSAnYm9vbFN3aXRjaF9fY2hlY2tib3gnXG4gICAgdGhpcy5faW5wdXQudHlwZSA9ICdjaGVja2JveCdcbiAgICB0aGlzLl9pbnB1dC5jaGVja2VkID0gdGhpcy5pc0NoZWNrZWQoKVxuICAgIHRoaXMuX2lucHV0LmRpc2FibGVkID0gdGhpcy5pc0Rpc2FibGVkKClcbiAgICB0aGlzLl9pbnB1dC50YWJJbmRleCA9ICcwJ1xuXG4gICAgLy8gbGFiZWxcbiAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJylcbiAgICBsYWJlbC5jbGFzc05hbWUgPSAnYm9vbFN3aXRjaF9fbGFiZWwnXG4gICAgbGFiZWwuZm9yID0gdGhpcy5faW5wdXQuaWRcbiAgICBsYWJlbC5pbm5lckhUTUwgPSAvKiBodG1sICovIGBcbiAgICAgIDxzcGFuIGNsYXNzPVwiYm9vbFN3aXRjaF9faW5uZXJcIj48L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImJvb2xTd2l0Y2hfX3N3aXRjaFwiPjwvc3Bhbj5cbiAgICBgXG5cbiAgICAvLyBhdHRhY2hlIGlucHV0IGFuZCBzbGlkZXIgdG8gY29tcG9uZW50XG4gICAgYm9vbFN3aXRjaC5hcHBlbmRDaGlsZCh0aGlzLl9pbnB1dClcbiAgICBib29sU3dpdGNoLmFwcGVuZENoaWxkKGxhYmVsKVxuXG4gICAgYm9vbFN3aXRjaC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX29uQ2xpY2spXG4gICAgdGhpcy5fZ3VpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleWRvd24pXG5cbiAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQoYm9vbFN3aXRjaClcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBkZXN0cm95KCkge1xuICAgIGNvbnN0IGJvb2xTd2l0Y2ggPSB0aGlzLl9ndWkucXVlcnlTZWxlY3RvcignLmJvb2xTd2l0Y2gnKVxuICAgIGJvb2xTd2l0Y2gucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9vbkNsaWNrKVxuICAgIHRoaXMuX2d1aS5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25LZXlkb3duKVxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzIHRoZSBjb21wb25lbnRcbiAgICovXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuX2d1aS5mb2N1cygpXG4gICAgdGhpcy5faW5wdXQuZm9jdXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhIGxpc3RlbmVyIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBzd2l0Y2ggc3RhdGUgaXMgY2hhbmdlZFxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBsaXN0ZW5lclxuICAgKi9cbiAgc2V0TGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgICB0aGlzLl9saXN0ZW5lciA9IGxpc3RlbmVyXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0ZW5lciBpbnN0YW5jZSAsIGlmXG4gICAqXG4gICAqIEByZXR1cm4ge0Z1bmN0aW9ufG51bGx9XG4gICAqL1xuICBnZXRMaXN0ZW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbGlzdGVuZXJcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgY2hlY2tlZFxuICAgKlxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IHZhbHVlIHRydWUgdG8gY2hlY2sgLCBmYWxzZSB0byB1bmNoZWNrXG4gICAqL1xuICBzZXRDaGVja2VkKHZhbHVlKSB7XG4gICAgdGhpcy5fY2hlY2tlZCA9IHZhbHVlXG4gICAgaWYgKHRoaXMuX2lucHV0KSB7XG4gICAgICB0aGlzLl9pbnB1dC5jaGVja2VkID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhlIGlmIHN3aXRjaCBpcyBjaGVja2VkXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59ICB0cnVlIHdoZW4gY2hlY2tlZCAsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgaXNDaGVja2VkKCkge1xuICAgIHJldHVybiB0aGlzLl9jaGVja2VkXG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBjb21wb25lbnQgc3RhdGVcbiAgICovXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLnNldENoZWNrZWQoIXRoaXMuaXNDaGVja2VkKCkpXG4gIH1cblxuICAvKipcbiAgICogU2V0IGRpc2FibGVkXG4gICAqXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gdmFsdWUgdHJ1ZSB0byBkaXNhYmxlZCAsIGZhbHNlIHRvIGVuYWJsZVxuICAgKi9cbiAgc2V0RGlzYWJsZWQodmFsdWUpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlXG4gICAgaWYgKHRoaXMuX2lucHV0KSB7XG4gICAgICB0aGlzLl9pbnB1dC5kaXNhYmxlZCA9IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBzd2l0Y2ggaXMgZGlzYWJsZWRcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSB3aGVuIGRpc2FibGVkICwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBpc0Rpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZFxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGNsaWNrIGxpc3RlbmVyIG9mIHRoZSBzd2l0Y2guIEl0IHdpbGwgdG9nZ2xlIHRoZSBzdGF0ZSBhbmQgZmlyZSBhbnkgcmVnaXN0ZXJlZCBsaXN0ZW5lclxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBlIHRoZSBldmVudCBvYmplY3RcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBfb25DbGljayhlKSB7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZSgpXG5cbiAgICBpZiAodGhpcy5fbGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuX2xpc3RlbmVyKHRoaXMpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGtleSBsaXN0ZW5lciBvZiB0aGUgc3dpdGNoLiBJdCB3aWxsIHRvZ2dsZSB0aGUgc3RhdGUgdXNpbmcga2V5Ym9hcmQga2V5cyAobGVmdCAsIHJpZ2h0ICwgc3BhY2UpXG4gICAqIGFuZCBmaXJlIGFueSByZWdpc3RlcmVkIGxpc3RlbmVyXG4gICAqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGUgIHRoZSBldmVudCBvYmplY3RcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9vbktleWRvd24oZSkge1xuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gZS53aGljaCB8fCBlLmtleUNvZGVcblxuICAgIC8vIHNwYWNlXG4gICAgaWYgKGtleSA9PSAzMikge1xuICAgICAgdGhpcy50b2dnbGUoKVxuICAgICAgaWYgKHRoaXMuX2xpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuX2xpc3RlbmVyKHRoaXMpXG4gICAgICB9XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgfVxuICAgIC8vIHJpZ2h0XG4gICAgZWxzZSBpZiAoa2V5ID09IDM5KSB7XG4gICAgICB0aGlzLnNldENoZWNrZWQodHJ1ZSlcbiAgICAgIGlmICh0aGlzLl9saXN0ZW5lcikge1xuICAgICAgICB0aGlzLl9saXN0ZW5lcih0aGlzKVxuICAgICAgfVxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIH1cbiAgICAvLyBsZWZ0XG4gICAgZWxzZSBpZiAoa2V5ID09IDM3KSB7XG4gICAgICB0aGlzLnNldENoZWNrZWQoZmFsc2UpXG4gICAgICBpZiAodGhpcy5fbGlzdGVuZXIpIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuZXIodGhpcylcbiAgICAgIH1cbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQm9vbGVhblN3aXRjaFxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0Jvb2xlYW5Td2l0Y2gvQm9vbGVhblN3aXRjaC5qcyIsImltcG9ydCB7IGRlY29yYXRlLCBjcmVhdGVEZWZhdWx0U2V0dGVyIH0gZnJvbSAnLi9wcml2YXRlL3V0aWxzJztcbmNvbnN0IHsgZGVmaW5lUHJvcGVydHkgfSA9IE9iamVjdDtcblxuZnVuY3Rpb24gaGFuZGxlRGVzY3JpcHRvcih0YXJnZXQsIGtleSwgZGVzY3JpcHRvcikge1xuICBjb25zdCB7IGNvbmZpZ3VyYWJsZSwgZW51bWVyYWJsZSwgaW5pdGlhbGl6ZXIsIHZhbHVlIH0gPSBkZXNjcmlwdG9yO1xuICByZXR1cm4ge1xuICAgIGNvbmZpZ3VyYWJsZSxcbiAgICBlbnVtZXJhYmxlLFxuXG4gICAgZ2V0KCkge1xuICAgICAgLy8gVGhpcyBoYXBwZW5zIGlmIHNvbWVvbmUgYWNjZXNzZXMgdGhlXG4gICAgICAvLyBwcm9wZXJ0eSBkaXJlY3RseSBvbiB0aGUgcHJvdG90eXBlXG4gICAgICBpZiAodGhpcyA9PT0gdGFyZ2V0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmV0ID0gaW5pdGlhbGl6ZXIgPyBpbml0aWFsaXplci5jYWxsKHRoaXMpIDogdmFsdWU7XG5cbiAgICAgIGRlZmluZVByb3BlcnR5KHRoaXMsIGtleSwge1xuICAgICAgICBjb25maWd1cmFibGUsXG4gICAgICAgIGVudW1lcmFibGUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogcmV0XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgc2V0OiBjcmVhdGVEZWZhdWx0U2V0dGVyKGtleSlcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbGF6eUluaXRpYWxpemUoLi4uYXJncykge1xuICByZXR1cm4gZGVjb3JhdGUoaGFuZGxlRGVzY3JpcHRvciwgYXJncyk7XG59XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvY29yZS1kZWNvcmF0b3JzL3NyYy9sYXp5LWluaXRpYWxpemUuanMiLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWRcbiAgICAgICAgICAgICAgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvQm9vbGVhblN3aXRjaC9zdHlsZS5zY3NzIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIuYWctY2VsbC1pbmxpbmUtZWRpdGluZyAuYm9vbFN3aXRjaF9fd3JhcHBlcnttYXJnaW46YXV0byAxMXB4fS5ib29sU3dpdGNoX193cmFwcGVye2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2FsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lfS5ib29sU3dpdGNoe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjU1cHg7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZX0uYm9vbFN3aXRjaF9fY2hlY2tib3h7ZGlzcGxheTpub25lfS5ib29sU3dpdGNoX19sYWJlbHtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRlbjtjdXJzb3I6cG9pbnRlcjtib3JkZXI6MnB4IHNvbGlkICM5OTk5OTk7Ym9yZGVyLXJhZGl1czoyMHB4fS5ib29sU3dpdGNoX19pbm5lcntkaXNwbGF5OmJsb2NrO3dpZHRoOjIwMCU7bWFyZ2luLWxlZnQ6LTEwMCU7dHJhbnNpdGlvbjptYXJnaW4gMC4zcyBlYXNlLWluIDBzfS5ib29sU3dpdGNoX19pbm5lcjpiZWZvcmUsLmJvb2xTd2l0Y2hfX2lubmVyOmFmdGVye2Rpc3BsYXk6YmxvY2s7ZmxvYXQ6bGVmdDt3aWR0aDo1MCU7aGVpZ2h0OjE1cHg7cGFkZGluZzowO2xpbmUtaGVpZ2h0OjE1cHg7Zm9udC1zaXplOjE0cHg7Y29sb3I6d2hpdGU7Zm9udC1mYW1pbHk6J1NlZ29lIFVJIFN5bWJvbCcsIFRyZWJ1Y2hldCwgQXJpYWwsIHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6Ym9sZDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmJvb2xTd2l0Y2hfX2lubmVyOmJlZm9yZXtjb250ZW50OidcXFxcMjcxNCc7cGFkZGluZy1sZWZ0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjojMzRhN2MxO2NvbG9yOiNmZmZmZmZ9LmJvb2xTd2l0Y2hfX2lubmVyOmFmdGVye2NvbnRlbnQ6J1xcXFwyNzE4JztwYWRkaW5nLXJpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjojZWVlZWVlO2NvbG9yOiM5OTk5OTk7dGV4dC1hbGlnbjpyaWdodH0uYm9vbFN3aXRjaF9fc3dpdGNoe2Rpc3BsYXk6YmxvY2s7d2lkdGg6MThweDttYXJnaW46MXB4O2JhY2tncm91bmQ6I2ZmZmZmZjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDozNXB4O2JvcmRlcjoycHggc29saWQgIzk5OTk5OTtib3JkZXItcmFkaXVzOjIwcHg7dHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlLWluIDBzfS5ib29sU3dpdGNoX19jaGVja2JveDpjaGVja2VkKy5ib29sU3dpdGNoX19sYWJlbCAuYm9vbFN3aXRjaF9faW5uZXJ7bWFyZ2luLWxlZnQ6MH0uYm9vbFN3aXRjaF9fY2hlY2tib3g6Y2hlY2tlZCsuYm9vbFN3aXRjaF9fbGFiZWwgLmJvb2xTd2l0Y2hfX3N3aXRjaHtyaWdodDowcHh9LmFnLXRoZW1lLWJhbGhhbSAuYm9vbFN3aXRjaF9fbGFiZWx7Ym9yZGVyLWNvbG9yOiNCREMzQzd9LmFnLXRoZW1lLWJhbGhhbSAuYm9vbFN3aXRjaF9faW5uZXI6YmVmb3JlLC5hZy10aGVtZS1iYWxoYW0gLmJvb2xTd2l0Y2hfX2lubmVyOmFmdGVye2NvbG9yOiNmZmZ9LmFnLXRoZW1lLWJhbGhhbSAuYm9vbFN3aXRjaF9faW5uZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAwOTFFQTtjb2xvcjojZmZmfS5hZy10aGVtZS1iYWxoYW0gLmJvb2xTd2l0Y2hfX2lubmVyOmFmdGVye2JhY2tncm91bmQtY29sb3I6I2YyZjJmMjtjb2xvcjojQkRDM0M3fS5hZy10aGVtZS1iYWxoYW0gLmJvb2xTd2l0Y2hfX3N3aXRjaHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiNCREMzQzd9LmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5ib29sU3dpdGNoX19sYWJlbHtib3JkZXItY29sb3I6IzQyNDI0Mn0uYWctdGhlbWUtYmFsaGFtLWRhcmsgLmJvb2xTd2l0Y2hfX2lubmVyOmJlZm9yZSwuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmJvb2xTd2l0Y2hfX2lubmVyOmFmdGVye2NvbG9yOiMyZDM0MzZ9LmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5ib29sU3dpdGNoX19pbm5lcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMDBCMEZGO2NvbG9yOiNjZmQ5ZGJ9LmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5ib29sU3dpdGNoX19pbm5lcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiMyMTI3Mjg7Y29sb3I6IzQyNDI0Mn0uYWctdGhlbWUtYmFsaGFtLWRhcmsgLmJvb2xTd2l0Y2hfX3N3aXRjaHtiYWNrZ3JvdW5kOiMyZDM0MzY7Ym9yZGVyLWNvbG9yOiM0MjQyNDJ9LmFnLXRoZW1lLW1hdGVyaWFsIC5ib29sU3dpdGNoX19sYWJlbHtib3JkZXItY29sb3I6I2UyZTJlMn0uYWctdGhlbWUtbWF0ZXJpYWwgLmJvb2xTd2l0Y2hfX2lubmVyOmJlZm9yZSwuYWctdGhlbWUtbWF0ZXJpYWwgLmJvb2xTd2l0Y2hfX2lubmVyOmFmdGVye2NvbG9yOiNmZmZ9LmFnLXRoZW1lLW1hdGVyaWFsIC5ib29sU3dpdGNoX19pbm5lcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZmY0MDgxO2NvbG9yOiNmZmZ9LmFnLXRoZW1lLW1hdGVyaWFsIC5ib29sU3dpdGNoX19pbm5lcjphZnRlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMmYyZjI7Y29sb3I6I2Q1ZDVkNX0uYWctdGhlbWUtbWF0ZXJpYWwgLmJvb2xTd2l0Y2hfX3N3aXRjaHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiNlMmUyZTJ9XFxuXCIsIFwiXCJdKTtcblxuLy8gZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlciEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9Cb29sZWFuU3dpdGNoL3N0eWxlLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDQ5XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIgMyIsIlxuLyoqXG4gKiBXaGVuIHNvdXJjZSBtYXBzIGFyZSBlbmFibGVkLCBgc3R5bGUtbG9hZGVyYCB1c2VzIGEgbGluayBlbGVtZW50IHdpdGggYSBkYXRhLXVyaSB0b1xuICogZW1iZWQgdGhlIGNzcyBvbiB0aGUgcGFnZS4gVGhpcyBicmVha3MgYWxsIHJlbGF0aXZlIHVybHMgYmVjYXVzZSBub3cgdGhleSBhcmUgcmVsYXRpdmUgdG8gYVxuICogYnVuZGxlIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgcGFnZS5cbiAqXG4gKiBPbmUgc29sdXRpb24gaXMgdG8gb25seSB1c2UgZnVsbCB1cmxzLCBidXQgdGhhdCBtYXkgYmUgaW1wb3NzaWJsZS5cbiAqXG4gKiBJbnN0ZWFkLCB0aGlzIGZ1bmN0aW9uIFwiZml4ZXNcIiB0aGUgcmVsYXRpdmUgdXJscyB0byBiZSBhYnNvbHV0ZSBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgcGFnZSBsb2NhdGlvbi5cbiAqXG4gKiBBIHJ1ZGltZW50YXJ5IHRlc3Qgc3VpdGUgaXMgbG9jYXRlZCBhdCBgdGVzdC9maXhVcmxzLmpzYCBhbmQgY2FuIGJlIHJ1biB2aWEgdGhlIGBucG0gdGVzdGAgY29tbWFuZC5cbiAqXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY3NzKSB7XG4gIC8vIGdldCBjdXJyZW50IGxvY2F0aW9uXG4gIHZhciBsb2NhdGlvbiA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmxvY2F0aW9uO1xuXG4gIGlmICghbG9jYXRpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaXhVcmxzIHJlcXVpcmVzIHdpbmRvdy5sb2NhdGlvblwiKTtcbiAgfVxuXG5cdC8vIGJsYW5rIG9yIG51bGw/XG5cdGlmICghY3NzIHx8IHR5cGVvZiBjc3MgIT09IFwic3RyaW5nXCIpIHtcblx0ICByZXR1cm4gY3NzO1xuICB9XG5cbiAgdmFyIGJhc2VVcmwgPSBsb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIGxvY2F0aW9uLmhvc3Q7XG4gIHZhciBjdXJyZW50RGlyID0gYmFzZVVybCArIGxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoL1xcL1teXFwvXSokLywgXCIvXCIpO1xuXG5cdC8vIGNvbnZlcnQgZWFjaCB1cmwoLi4uKVxuXHQvKlxuXHRUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiBpcyBqdXN0IGEgd2F5IHRvIHJlY3Vyc2l2ZWx5IG1hdGNoIGJyYWNrZXRzIHdpdGhpblxuXHRhIHN0cmluZy5cblxuXHQgL3VybFxccypcXCggID0gTWF0Y2ggb24gdGhlIHdvcmQgXCJ1cmxcIiB3aXRoIGFueSB3aGl0ZXNwYWNlIGFmdGVyIGl0IGFuZCB0aGVuIGEgcGFyZW5zXG5cdCAgICggID0gU3RhcnQgYSBjYXB0dXJpbmcgZ3JvdXBcblx0ICAgICAoPzogID0gU3RhcnQgYSBub24tY2FwdHVyaW5nIGdyb3VwXG5cdCAgICAgICAgIFteKShdICA9IE1hdGNoIGFueXRoaW5nIHRoYXQgaXNuJ3QgYSBwYXJlbnRoZXNlc1xuXHQgICAgICAgICB8ICA9IE9SXG5cdCAgICAgICAgIFxcKCAgPSBNYXRjaCBhIHN0YXJ0IHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICAoPzogID0gU3RhcnQgYW5vdGhlciBub24tY2FwdHVyaW5nIGdyb3Vwc1xuXHQgICAgICAgICAgICAgICAgIFteKShdKyAgPSBNYXRjaCBhbnl0aGluZyB0aGF0IGlzbid0IGEgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICAgICB8ICA9IE9SXG5cdCAgICAgICAgICAgICAgICAgXFwoICA9IE1hdGNoIGEgc3RhcnQgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICAgICAgICAgW14pKF0qICA9IE1hdGNoIGFueXRoaW5nIHRoYXQgaXNuJ3QgYSBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgICAgIFxcKSAgPSBNYXRjaCBhIGVuZCBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgKSAgPSBFbmQgR3JvdXBcbiAgICAgICAgICAgICAgKlxcKSA9IE1hdGNoIGFueXRoaW5nIGFuZCB0aGVuIGEgY2xvc2UgcGFyZW5zXG4gICAgICAgICAgKSAgPSBDbG9zZSBub24tY2FwdHVyaW5nIGdyb3VwXG4gICAgICAgICAgKiAgPSBNYXRjaCBhbnl0aGluZ1xuICAgICAgICkgID0gQ2xvc2UgY2FwdHVyaW5nIGdyb3VwXG5cdCBcXCkgID0gTWF0Y2ggYSBjbG9zZSBwYXJlbnNcblxuXHQgL2dpICA9IEdldCBhbGwgbWF0Y2hlcywgbm90IHRoZSBmaXJzdC4gIEJlIGNhc2UgaW5zZW5zaXRpdmUuXG5cdCAqL1xuXHR2YXIgZml4ZWRDc3MgPSBjc3MucmVwbGFjZSgvdXJsXFxzKlxcKCgoPzpbXikoXXxcXCgoPzpbXikoXSt8XFwoW14pKF0qXFwpKSpcXCkpKilcXCkvZ2ksIGZ1bmN0aW9uKGZ1bGxNYXRjaCwgb3JpZ1VybCkge1xuXHRcdC8vIHN0cmlwIHF1b3RlcyAoaWYgdGhleSBleGlzdClcblx0XHR2YXIgdW5xdW90ZWRPcmlnVXJsID0gb3JpZ1VybFxuXHRcdFx0LnRyaW0oKVxuXHRcdFx0LnJlcGxhY2UoL15cIiguKilcIiQvLCBmdW5jdGlvbihvLCAkMSl7IHJldHVybiAkMTsgfSlcblx0XHRcdC5yZXBsYWNlKC9eJyguKiknJC8sIGZ1bmN0aW9uKG8sICQxKXsgcmV0dXJuICQxOyB9KTtcblxuXHRcdC8vIGFscmVhZHkgYSBmdWxsIHVybD8gbm8gY2hhbmdlXG5cdFx0aWYgKC9eKCN8ZGF0YTp8aHR0cDpcXC9cXC98aHR0cHM6XFwvXFwvfGZpbGU6XFwvXFwvXFwvfFxccyokKS9pLnRlc3QodW5xdW90ZWRPcmlnVXJsKSkge1xuXHRcdCAgcmV0dXJuIGZ1bGxNYXRjaDtcblx0XHR9XG5cblx0XHQvLyBjb252ZXJ0IHRoZSB1cmwgdG8gYSBmdWxsIHVybFxuXHRcdHZhciBuZXdVcmw7XG5cblx0XHRpZiAodW5xdW90ZWRPcmlnVXJsLmluZGV4T2YoXCIvL1wiKSA9PT0gMCkge1xuXHRcdCAgXHQvL1RPRE86IHNob3VsZCB3ZSBhZGQgcHJvdG9jb2w/XG5cdFx0XHRuZXdVcmwgPSB1bnF1b3RlZE9yaWdVcmw7XG5cdFx0fSBlbHNlIGlmICh1bnF1b3RlZE9yaWdVcmwuaW5kZXhPZihcIi9cIikgPT09IDApIHtcblx0XHRcdC8vIHBhdGggc2hvdWxkIGJlIHJlbGF0aXZlIHRvIHRoZSBiYXNlIHVybFxuXHRcdFx0bmV3VXJsID0gYmFzZVVybCArIHVucXVvdGVkT3JpZ1VybDsgLy8gYWxyZWFkeSBzdGFydHMgd2l0aCAnLydcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gcGF0aCBzaG91bGQgYmUgcmVsYXRpdmUgdG8gY3VycmVudCBkaXJlY3Rvcnlcblx0XHRcdG5ld1VybCA9IGN1cnJlbnREaXIgKyB1bnF1b3RlZE9yaWdVcmwucmVwbGFjZSgvXlxcLlxcLy8sIFwiXCIpOyAvLyBTdHJpcCBsZWFkaW5nICcuLydcblx0XHR9XG5cblx0XHQvLyBzZW5kIGJhY2sgdGhlIGZpeGVkIHVybCguLi4pXG5cdFx0cmV0dXJuIFwidXJsKFwiICsgSlNPTi5zdHJpbmdpZnkobmV3VXJsKSArIFwiKVwiO1xuXHR9KTtcblxuXHQvLyBzZW5kIGJhY2sgdGhlIGZpeGVkIGNzc1xuXHRyZXR1cm4gZml4ZWRDc3M7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvdXJscy5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBCb29sZWFuUmVuZGVyZXIgZnJvbSAnLi9Cb29sZWFuUmVuZGVyZXInXG5cbmV4cG9ydCBkZWZhdWx0IEJvb2xlYW5SZW5kZXJlclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0Jvb2xlYW5SZW5kZXJlci9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vQ29tcG9uZW50J1xuaW1wb3J0IEJvb2xlYW5Td2l0Y2ggZnJvbSAnLi4vQm9vbGVhblN3aXRjaCdcblxuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zICovXG5cbi8qKlxuICogQm9vbGVhbnMgUmVuZGVyZXJcbiAqXG4gKiBIYW5kbGUgYm9vbGVhbiB2YWx1ZXMgUmVuZGVyaW5nXG4gKlxuICogIyMgT3B0aW9uc1xuICpcbiAqIHwgTmFtZSAgICAgICAgICAgICAgICAgIFx0fCBEZWZhdWx0ICAgICBcdHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0fFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cdHw6LS0tLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8ICoqYm9vbGVhblRydWVSZW5kZXJWYWx1ZSoqICBcdHwgc3dpdGNoICAgICAgXHR8IFRoZSBvcHRpb24gY29udHJvbHMgaG93IHRvIHJlbmRlciBgdHJ1ZWAgdmFsdWVzLiA8YnI+ICoqc3dpdGNoKiogaXMgYSBzcGVjaWFsIHZhbHVlIHVzZWQgdG8gcmVuZGVyIHRydWUgdmFsdWVzIGFzIGEgc3dpdGNoIGNvbXBvbmVudCAgXHR8XG4gKiB8ICoqYm9vbGVhbkZhbHNlUmVuZGVyVmFsdWUqKiBcdHwgc3dpdGNoICAgICAgXHR8IFRoZSBvcHRpb24gY29udHJvbHMgaG93IHRvIHJlbmRlciBgZmFsc2VgIHZhbHVlcy4gPGJyPiAqKnN3aXRjaCoqIGlzIGEgc3BlY2lhbCB2YWx1ZSB1c2VkIHRvIHJlbmRlciB0cnVlIHZhbHVlcyBhcyBhIHN3aXRjaCBjb21wb25lbnQgXHR8XG4gKiB8ICoqYm9vbGVhblRydWVWYWx1ZVtdKiogICAgICAgfCB0cnVlKGJvb2wpICBcdHwgVGhlIG9wdGlvbnMgZGVzY3JpYmVzIHdoYXQgaXMgY29uc2lkZXJlZCBgdHJ1ZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0fFxuICogfCAqKmJvb2xlYW5GYWxzZVZhbHVlW10qKiAgICAgIHwgZmFsc2UoYm9vbCkgXHR8IFRoZSBvcHRpb25zIGRlc2NyaWJlcyB3aGF0IGlzIGNvbnNpZGVyZWQgYGZhbHNlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBCb29sZWFuUmVuZGVyZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogQ29uc3RydWN0IG5ldyBCb29sZWFuUmVuZGVyZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKClcblxuICAgIC8vIHdpbGwgdGhpcyBhZmZlY3QgQkJqIGJ1aSA/XG4gICAgdGhpcy5fZ3VpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpXG4gICAgdGhpcy5fZ3VpLmNsYXNzTmFtZSA9ICdib29sUmVuZGVyZXInXG4gICAgdGhpcy5fZ3VpLnN0eWxlLmZvbnRGYW1pbHkgPVxuICAgICAgJ1wiU2Vnb2UgVUkgU3ltYm9sXCIsVHJlYnVjaGV0LCBBcmlhbCwgc2Fucy1zZXJpZidcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGluaGVyaXREb2NcbiAgICovXG4gIGluaXQocGFyYW1zKSB7XG4gICAgdGhpcy5yZWZyZXNoKHBhcmFtcywgdHJ1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGluaGVyaXREb2NcbiAgICovXG4gIGdldEd1aSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZ3VpXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLl9zd2l0Y2hlcikge1xuICAgICAgdGhpcy5fc3dpdGNoZXIuZGVzdHJveSgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIGNlbGxcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBjZWxsIHJlbmRlcmVyIHBhcmFtc1xuICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzSW5pdCB0cnVlIHdoZW4gdGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkIGluIGBpbml0YCBwaGFzZSAsIGZhbHNlIG90aGVyd2lzZVxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIGlmIHRoZSByZWZyZXNoIHN1Y2NlZWRlZCwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICByZWZyZXNoKHBhcmFtcywgaXNJbml0KSB7XG4gICAgbGV0IHZhbHVlID0gcGFyYW1zLnZhbHVlRm9ybWF0dGVkID8gcGFyYW1zLnZhbHVlRm9ybWF0dGVkIDogcGFyYW1zLnZhbHVlXG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5fZ3VpLmlubmVySFRNTCA9ICcnXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKVxuICAgICAgY29uc3QgYm9vbGVhblRydWVSZW5kZXJWYWx1ZSA9IFN0cmluZyhcbiAgICAgICAgdGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5UcnVlUmVuZGVyVmFsdWUnLCBwYXJhbXMsICdzd2l0Y2gnKVxuICAgICAgKVxuICAgICAgY29uc3QgYm9vbGVhbkZhbHNlUmVuZGVyVmFsdWUgPSBTdHJpbmcoXG4gICAgICAgIHRoaXMuZ2V0T3B0aW9uKCdib29sZWFuRmFsc2VSZW5kZXJWYWx1ZScsIHBhcmFtcywgJ3N3aXRjaCcpXG4gICAgICApXG4gICAgICBjb25zdCBib29sZWFuVHJ1ZVZhbHVlID0gW11cbiAgICAgICAgLmNvbmNhdCh0aGlzLmdldE9wdGlvbignYm9vbGVhblRydWVWYWx1ZScsIHBhcmFtcywgW3RydWVdKSlcbiAgICAgICAgLm1hcCh4ID0+IFN0cmluZyh4KSlcbiAgICAgIGNvbnN0IGJvb2xlYW5GYWxzZVZhbHVlID0gW11cbiAgICAgICAgLmNvbmNhdCh0aGlzLmdldE9wdGlvbignYm9vbGVhbkZhbHNlVmFsdWUnLCBwYXJhbXMsIFtmYWxzZV0pKVxuICAgICAgICAubWFwKHggPT4gU3RyaW5nKHgpKVxuXG4gICAgICAvLyBoYW5kbGUgdHJ1ZSB2YWx1ZXNcbiAgICAgIGlmIChib29sZWFuVHJ1ZVZhbHVlLmluZGV4T2YodmFsdWUpID4gLTEpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFib29sZWFuVHJ1ZVJlbmRlclZhbHVlLmxlbmd0aCB8fFxuICAgICAgICAgIGJvb2xlYW5UcnVlUmVuZGVyVmFsdWUgPT09ICdzd2l0Y2gnXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IHN3aXRjaGVyID0gdGhpcy5fZ2V0U3dpdGNoZXIocGFyYW1zKVxuICAgICAgICAgIHN3aXRjaGVyLnNldENoZWNrZWQodHJ1ZSlcbiAgICAgICAgICB0aGlzLl9ndWkuaW5uZXJIVE1MID0gJydcbiAgICAgICAgICB0aGlzLl9ndWkuYXBwZW5kQ2hpbGQoc3dpdGNoZXIuZ2V0R3VpKCkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZ3VpLmlubmVySFRNTCA9IGJvb2xlYW5UcnVlUmVuZGVyVmFsdWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gaGFuZGxlIGZhbHNlIHZhbHVlc1xuICAgICAgZWxzZSBpZiAoYm9vbGVhbkZhbHNlVmFsdWUuaW5kZXhPZih2YWx1ZSkgPiAtMSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWJvb2xlYW5GYWxzZVJlbmRlclZhbHVlLmxlbmd0aCB8fFxuICAgICAgICAgIGJvb2xlYW5GYWxzZVJlbmRlclZhbHVlID09PSAnc3dpdGNoJ1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBzd2l0Y2hlciA9IHRoaXMuX2dldFN3aXRjaGVyKHBhcmFtcylcbiAgICAgICAgICBzd2l0Y2hlci5zZXRDaGVja2VkKGZhbHNlKVxuICAgICAgICAgIHRoaXMuX2d1aS5pbm5lckhUTUwgPSAnJ1xuICAgICAgICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZChzd2l0Y2hlci5nZXRHdWkoKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9ndWkuaW5uZXJIVE1MID0gYm9vbGVhbkZhbHNlUmVuZGVyVmFsdWVcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZ3VpLmlubmVySFRNTCA9IHZhbHVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3dpdGNoIGluc3RhbmNlIGlmIGF2YWlsYWJsZSAsIG9yIGNyZWF0ZSBpdCBvdGhlcndpc2VcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtc1xuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFuU3dpdGNofSBzd2l0Y2ggaW5zdGFuY2VcbiAgICovXG4gIF9nZXRTd2l0Y2hlcihwYXJhbXMpIHtcbiAgICBpZiAoIXRoaXMuX3N3aXRjaGVyKSB7XG4gICAgICB0aGlzLl9zd2l0Y2hlciA9IG5ldyBCb29sZWFuU3dpdGNoKClcbiAgICAgIHRoaXMuX3N3aXRjaGVyLnNldERpc2FibGVkKHRydWUpXG4gICAgICB0aGlzLl9zd2l0Y2hlci5pbml0KHBhcmFtcylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc3dpdGNoZXJcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCb29sZWFuUmVuZGVyZXJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9Cb29sZWFuUmVuZGVyZXIvQm9vbGVhblJlbmRlcmVyLmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IEJvb2xlYW5GaWx0ZXIgZnJvbSAnLi9Cb29sZWFuRmlsdGVyJ1xuXG5leHBvcnQgZGVmYXVsdCBCb29sZWFuRmlsdGVyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvQm9vbGVhbkZpbHRlci9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7IGF1dG9iaW5kLCBvdmVycmlkZSB9IGZyb20gJ2NvcmUtZGVjb3JhdG9ycydcbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vQ29tcG9uZW50J1xuaW1wb3J0ICcuL3N0eWxlLnNjc3MnXG5cbmNvbnN0IHRvVGl0bGVDYXNlID0gcGhyYXNlID0+IHtcbiAgcmV0dXJuIHBocmFzZVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLnNwbGl0KCcgJylcbiAgICAubWFwKHdvcmQgPT4gd29yZC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHdvcmQuc2xpY2UoMSkpXG4gICAgLmpvaW4oJyAnKVxufVxuXG5jb25zdCBzdHJpcEhUTUwgPSBodG1sID0+IHtcbiAgY29uc3QgdG1wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnRElWJylcbiAgdG1wLmlubmVySFRNTCA9IGh0bWxcbiAgcmV0dXJuIHRtcC50ZXh0Q29udGVudCB8fCB0bXAuaW5uZXJUZXh0IHx8ICcnXG59XG5cbi8qKlxuICogQm9vbGVhbnMgRmlsdGVyXG4gKlxuICogSGFuZGxlIGJvb2xlYW4gdmFsdWVzIEZpbHRlcmluZ1xuICpcbiAqICMjIE9wdGlvbnNcbiAqXG4gKiB8IE5hbWUgICAgICAgICAgICAgICAgICBcdHwgRGVmYXVsdCAgICAgXHR8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHR8Oi0tLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKmJvb2xlYW5Vc2VkVHJ1ZVZhbHVlKiogICB8IHVuZGVmaW5lZCAgICB8IHRoZSB2YWx1ZSB0byB1c2Ugd2hlbiB0aGUgZmlsdGVyIGRpc3BsYXlzIHRoZSB0cnVlIHN0YXRlIC4gaW4gY2FzZSBpdCBpcyB1bmRlZmluZWQgdGhlbiB3ZSB1c2UgdGhlIGZpcnN0IGl0ZW0gaW4gKipib29sZWFuVHJ1ZVZhbHVlW10qKlxuICogfCAqKmJvb2xlYW5Vc2VkRmFsc2VWYWx1ZSoqICAgfCB1bmRlZmluZWQgICAgfCB0aGUgdmFsdWUgdG8gdXNlIHdoZW4gdGhlIGZpbHRlciBkaXNwbGF5cyB0aGUgZmFsc2Ugc3RhdGUuIGluIGNhc2UgaXQgaXMgdW5kZWZpbmVkIHRoZW4gd2UgdXNlIHRoZSBmaXJzdCBpdGVtIGluICoqYm9vbGVhbkZhbHNlVmFsdWVbXSoqXG4gKiB8ICoqYm9vbGVhblRydWVWYWx1ZVtdKiogICAgICAgfCB0cnVlKGJvb2wpICBcdHwgVGhlIG9wdGlvbnMgZGVzY3JpYmVzIHdoYXQgaXMgY29uc2lkZXJlZCBgdHJ1ZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0fFxuICogfCAqKmJvb2xlYW5GYWxzZVZhbHVlW10qKiAgICAgIHwgZmFsc2UoYm9vbCkgXHR8IFRoZSBvcHRpb25zIGRlc2NyaWJlcyB3aGF0IGlzIGNvbnNpZGVyZWQgYGZhbHNlYFxuICogfCAqKmNsZWFyQnV0dG9uKiogICB8IGZhbHNlICAgIHwgIFNldCB0byB0cnVlIHRvIGhhdmUgdGhlIGZpbHRlciB1c2UgYSBDbGVhciBidXR0b24uIFRoZSBDbGVhciBidXR0b24gd2lsbCBjbGVhciB0aGUgKGZvcm0pIGRldGFpbHMgb2YgdGhlIGZpbHRlciB3aXRob3V0IHJlbW92aW5nIGFueSBhY3RpdmUgZmlsdGVycyBvbiB0aGUgY29sdW1uLlxuICogfCAqKmFwcGx5QnV0dG9uKiogICB8IGZhbHNlICAgIHwgIFNldCB0byB0cnVlIHRvIGhhdmUgdGhlIGZpbHRlciB1c2UgYW4gQXBwbHkgYnV0dG9uLiBJZiB0aGUgQXBwbHkgYnV0dG9uIGlzIHByZXNlbnQsIHRoZW4gdGhlIGZpbHRlciBpcyBvbmx5IGFwcGxpZWQgYWZ0ZXIgdGhlIHVzZXIgaGl0cyB0aGUgQXBwbHkgYnV0dG9uLlxuICogfCAqKnJlc2V0QnV0dG9uKiogICB8IGZhbHNlICAgIHwgIFNldCB0byB0cnVlIHRvIGhhdmUgdGhlIGZpbHRlciB1c2UgYSBSZXNldCBidXR0b24uIFRoZSBSZXNldCBidXR0b24gd2lsbCBjbGVhciB0aGUgZGV0YWlscyBvZiB0aGUgZmlsdGVyIGFuZCBhbnkgYWN0aXZlIGZpbHRlcnMgb24gdGhhdCBjb2x1bW4uXG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgQm9vbGVhbkZpbHRlciBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUcnVlICwgZmFsc2UgdHJhbnNsYXRpb25cbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIF9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24gPSB7fVxuICAvKipcbiAgICogQ29uc3RydWN0IG5ldyBCb29sZWFuRmlsdGVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG5cbiAgICB0aGlzLl9ndWkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMuX2d1aS5jbGFzc05hbWUgPSAnYm9vbGVhbkZpbHRlciBhZy1maWx0ZXItYm9keS13cmFwcGVyJ1xuICAgIHRoaXMuX2d1aS50YWJJbmRleCA9ICcwJ1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgaW5pdChwYXJhbXMpIHtcbiAgICBjb25zdCB0cmFuc2xhdGUgPSBwYXJhbXMuYXBpLmdyaWRPcHRpb25zV3JhcHBlci5nZXRMb2NhbGVUZXh0RnVuYygpXG4gICAgY29uc3QgaXNDbGVhckZpbHRlciA9IHRoaXMuZ2V0T3B0aW9uKCdjbGVhckJ1dHRvbicsIHBhcmFtcywgZmFsc2UpXG4gICAgY29uc3QgaXNSZXNldEJ1dHRvbiA9IHRoaXMuZ2V0T3B0aW9uKCdyZXNldEJ1dHRvbicsIHBhcmFtcywgZmFsc2UpXG4gICAgY29uc3QgaXNBcHBseUJ1dHRvbiA9IHRoaXMuZ2V0T3B0aW9uKCdhcHBseUJ1dHRvbicsIHBhcmFtcywgZmFsc2UpXG5cbiAgICB0aGlzLl90cnVlVmFsdWUgPSBbXVxuICAgICAgLmNvbmNhdCh0aGlzLmdldE9wdGlvbignYm9vbGVhblRydWVWYWx1ZScsIHBhcmFtcywgW3RydWVdKSlcbiAgICAgIC5tYXAoeCA9PiBTdHJpbmcoeCkpXG5cbiAgICB0aGlzLl9mYWxzZVZhbHVlID0gW11cbiAgICAgIC5jb25jYXQodGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5GYWxzZVZhbHVlJywgcGFyYW1zLCBbZmFsc2VdKSlcbiAgICAgIC5tYXAoeCA9PiBTdHJpbmcoeCkpXG5cbiAgICB0aGlzLl91c2VkVHJ1ZVZhbHVlID0gU3RyaW5nKFxuICAgICAgdGhpcy5nZXRPcHRpb24oJ2Jvb2xlYW5Vc2VkVHJ1ZVZhbHVlJywgcGFyYW1zLCB0aGlzLl90cnVlVmFsdWVbMF0pXG4gICAgKVxuXG4gICAgdGhpcy5fdXNlZEZhbHNlVmFsdWUgPSBTdHJpbmcoXG4gICAgICB0aGlzLmdldE9wdGlvbignYm9vbGVhblVzZWRGYWxzZVZhbHVlJywgcGFyYW1zLCB0aGlzLl9mYWxzZVZhbHVlWzBdKVxuICAgIClcblxuICAgIHRoaXMuX2Jvb2xlYW5GaWx0ZXJUcmFuc2xhdGlvbiA9IHRoaXMuZ2V0T3B0aW9uKFxuICAgICAgJ2Jvb2xlYW5GaWx0ZXJUcmFuc2xhdGlvbicsXG4gICAgICBwYXJhbXMsXG4gICAgICB7XG4gICAgICAgIHRydWU6IHRyYW5zbGF0ZShcbiAgICAgICAgICAnYm9vbGVhblRydWUnLFxuICAgICAgICAgIHRvVGl0bGVDYXNlKFN0cmluZyh0aGlzLl91c2VkVHJ1ZVZhbHVlKSlcbiAgICAgICAgKSxcbiAgICAgICAgZmFsc2U6IHRyYW5zbGF0ZShcbiAgICAgICAgICAnYm9vbGVhbkZhbHNlJyxcbiAgICAgICAgICB0b1RpdGxlQ2FzZShTdHJpbmcodGhpcy5fdXNlZEZhbHNlVmFsdWUpKVxuICAgICAgICApLFxuICAgICAgICByZXNldDogdHJhbnNsYXRlKFxuICAgICAgICAgICdib29sZWFuUmVzZXQnLFxuICAgICAgICAgIHRyYW5zbGF0ZSgncmVzZXRGaWx0ZXInLCAnUmVzZXQgRmlsdGVyJylcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICApXG5cbiAgICB0aGlzLl9wYXJhbXMgPSBwYXJhbXNcbiAgICB0aGlzLl9maWx0ZXJUZXh0ID0gbnVsbFxuXG4gICAgdGhpcy5fb25SYWRpb0NoYW5nZSA9IHRoaXMuX29uUmFkaW9DaGFuZ2UuYmluZCh0aGlzLCBpc0FwcGx5QnV0dG9uKVxuXG4gICAgLy8gY3JlYXRlIGJvZHlcbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICBib2R5LmNsYXNzTmFtZSA9ICdib29sZWFuRmlsdGVyX19ib2R5IGFnLWZpbHRlci1ib2R5J1xuICAgIGJvZHkuc3R5bGUucGFkZGluZyA9ICc1cHggMTVweCdcbiAgICBib2R5LmlubmVySFRNTCA9IC8qIGh0bWwgKi8gYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9vbGVhbkZpbHRlcl9fYm9keV9fbGFiZWxzXCI+XG4gICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJib29sZWFuXCIgdmFsdWU9XCJ0cnVlXCI+XG4gICAgICAgICAgICAke3RoaXMuX2Jvb2xlYW5GaWx0ZXJUcmFuc2xhdGlvbi50cnVlfVxuICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cImJvb2xlYW5cIiB2YWx1ZT1cImZhbHNlXCI+XG4gICAgICAgICAgICAke3RoaXMuX2Jvb2xlYW5GaWx0ZXJUcmFuc2xhdGlvbi5mYWxzZX1cbiAgICAgICAgICA8L2xhYmVsPiAgICAgXG4gICAgICAgICAgXG4gICAgICAgICAgJHtcbiAgICAgICAgICAgICFpc1Jlc2V0QnV0dG9uXG4gICAgICAgICAgICAgID8gLyogaHRtbCAqLyBgXG4gICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJib29sZWFuXCIgdmFsdWU9XCJcIiBjaGVja2VkPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLl9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24ucmVzZXR9XG4gICAgICAgICAgICAgICAgPC9sYWJlbD4gICBcbiAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgfSAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgYFxuXG4gICAgYm9keS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9vblJhZGlvQ2hhbmdlKVxuXG4gICAgdGhpcy5fZ3VpLmFwcGVuZENoaWxkKGJvZHkpXG5cbiAgICAvLyBjcmVhdGUgYXBwbHkgZmlsdGVyIHBhbmVsXG4gICAgY29uc3QgYXBwbHlGaWx0ZXJQYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgYXBwbHlGaWx0ZXJQYW5lbC5jbGFzc05hbWUgPSBgYm9vbGVhbkZpbHRlcl9fYm9keV9fYXBwbHlQYW5lbCBhZy1maWx0ZXItYXBwbHktcGFuZWwgYWctaGlkZGVuYFxuICAgIGFwcGx5RmlsdGVyUGFuZWwuaW5uZXJIVE1MID0gLyogaHRtbCAqLyBgXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY2xlYXIgJHshaXNDbGVhckZpbHRlciAmJlxuICAgICAgICAnYWctaGlkZGVuJ31cIiB0eXBlPVwiYnV0dG9uXCI+JHt0cmFuc2xhdGUoXG4gICAgICAnY2xlYXJGaWx0ZXInLFxuICAgICAgJ0NsZWFyIEZpbHRlcidcbiAgICApfTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlc2V0ICR7IWlzUmVzZXRCdXR0b24gJiZcbiAgICAgICAgJ2FnLWhpZGRlbid9XCIgdHlwZT1cImJ1dHRvblwiPiR7dHJhbnNsYXRlKFxuICAgICAgJ3Jlc2V0RmlsdGVyJyxcbiAgICAgICdSZXNldCBGaWx0ZXInXG4gICAgKX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhcHBseSAkeyFpc0FwcGx5QnV0dG9uICYmXG4gICAgICAgICdhZy1oaWRkZW4nfVwiIHR5cGU9XCJidXR0b25cIj4ke3RyYW5zbGF0ZShcbiAgICAgICdhcHBseUZpbHRlcicsXG4gICAgICAnQXBwbHkgRmlsdGVyJ1xuICAgICl9PC9idXR0b24+XG4gICAgYFxuXG4gICAgaWYgKGlzQ2xlYXJGaWx0ZXIgfHwgaXNSZXNldEJ1dHRvbiB8fCBpc0FwcGx5QnV0dG9uKSB7XG4gICAgICBhcHBseUZpbHRlclBhbmVsLmNsYXNzTGlzdC5yZW1vdmUoJ2FnLWhpZGRlbicpXG4gICAgfVxuXG4gICAgYXBwbHlGaWx0ZXJQYW5lbC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIHRoaXMuX0FwcGx5RmlsdGVyUGFuZWxCdXR0b25DbGlja1xuICAgIClcblxuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZChhcHBseUZpbHRlclBhbmVsKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9ndWlcbiAgICAgIC5xdWVyeVNlbGVjdG9yKCcuYm9vbGVhbkZpbHRlcl9fYm9keV9fbGFiZWxzJylcbiAgICAgIC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9vblJhZGlvQ2hhbmdlKVxuXG4gICAgdGhpcy5fZ3VpXG4gICAgICAucXVlcnlTZWxlY3RvcignLmJvb2xlYW5GaWx0ZXJfX2JvZHlfX2FwcGx5UGFuZWwnKVxuICAgICAgLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fQXBwbHlGaWx0ZXJQYW5lbEJ1dHRvbkNsaWNrKVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgc2VsZWN0ZWQgZmlsdGVyIG1hdGNoZXMgdGhlIHBhc3NlZCBjZWxsIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtc1xuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufSB0cnVlIHdoZW4gcGFzcywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBkb2VzRmlsdGVyUGFzcyhwYXJhbXMpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgY29uc3QgdmFsdWUgPSBTdHJpbmcoXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICB0aGlzLl9wYXJhbXMuaGFzT3duUHJvcGVydHkoJ2ZpbHRlclZhbHVlR2V0dGVyJylcbiAgICAgICAgPyB0aGlzLl9wYXJhbXMuZmlsdGVyVmFsdWVHZXR0ZXIocGFyYW1zKVxuICAgICAgICA6IHRoaXMuX3BhcmFtcy52YWx1ZUdldHRlcihwYXJhbXMpXG4gICAgKVxuXG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlclRleHQgPT09ICd0cnVlJ1xuICAgICAgPyB0aGlzLl90cnVlVmFsdWUuaW5kZXhPZih2YWx1ZSkgPiAtMVxuICAgICAgOiB0aGlzLl9mYWxzZVZhbHVlLmluZGV4T2YodmFsdWUpID4gLTFcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB3aGV0aGVyIHRoZSBjb21wb25lbnQgaXMgYXBwbHlpbmcgYW55IGZpbHRlciBvbiB0aGUgY29sdW1uXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59XG4gICAqKi9cbiAgaXNGaWx0ZXJBY3RpdmUoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2ZpbHRlclRleHQgIT09IG51bGwgJiZcbiAgICAgIHRoaXMuX2ZpbHRlclRleHQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5fZmlsdGVyVGV4dCAhPT0gJydcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZmlsdGVyIHN0YXRlLiBJZiBmaWx0ZXIgaXMgbm90IGFjdGl2ZSwgdGhlbiBzaG91bGQgcmV0dXJuIG51bGwvdW5kZWZpbmVkLlxuICAgKiBUaGUgZ3JpZCBjYWxscyBnZXRNb2RlbCgpIG9uIGFsbCBhY3RpdmUgZmlsdGVycyB3aGVuIGdyaWRBcGkuZ2V0RmlsdGVyTW9kZWwoKSBpcyBjYWxsZWQuXG4gICAqXG4gICAqIEByZXR1cm4gT2JqZWN0IHwgbnVsbCB0aGUgZmlsdGVyIHN0YXRlXG4gICAqL1xuICBnZXRNb2RlbCgpIHtcbiAgICBpZiAoIXRoaXMuaXNGaWx0ZXJBY3RpdmUoKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlbCA9IHsgdmFsdWU6IHRoaXMuX2ZpbHRlclRleHQgfVxuICAgIHJldHVybiBtb2RlbFxuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIHRoZSBmaWx0ZXIgc3RhdGUuIENhbGxlZCBieSB0aGUgZ3JpZCBhZnRlciBncmlkQXBpLnNldEZpbHRlck1vZGVsKG1vZGVsKSBpcyBjYWxsZWQuXG4gICAqIFRoZSBncmlkIHdpbGwgcGFzcyB1bmRlZmluZWQvbnVsbCB0byBjbGVhciB0aGUgZmlsdGVyLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdCB8IG51bGx9IG1vZGVsXG4gICAqL1xuICBzZXRNb2RlbChtb2RlbCkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvdHlwZS1idWlsdGlucyAqL1xuICAgIHRoaXMuX2ZpbHRlclRleHQgPSBtb2RlbCAmJiBtb2RlbC5oYXNPd25Qcm9wZXJ0eSgndmFsdWUnKSA/IG1vZGVsLnZhbHVlIDogJydcblxuICAgIGNvbnN0IGZpbHRlclRleHRBc1N0cmluZyA9IFN0cmluZyh0aGlzLl9maWx0ZXJUZXh0KVxuICAgIGNvbnN0IGJvZHkgPSB0aGlzLl9ndWkucXVlcnlTZWxlY3RvcignLmJvb2xlYW5GaWx0ZXJfX2JvZHknKVxuICAgIGJvZHkucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbdHlwZT1cInJhZGlvXCJdJykuZm9yRWFjaChpID0+IHtcbiAgICAgIGlmIChpLnZhbHVlID09IGZpbHRlclRleHRBc1N0cmluZykge1xuICAgICAgICBpLmNoZWNrZWQgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpLmNoZWNrZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmaWx0ZXIgbW9kZWwgYXMgcGxhaW4gc3RyaW5nIHRvIGRpc3BsYXkgaW4gdGhlIGZsb2F0aW5nIGZpbHRlciBpbnB1dFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdCB8IG51bGx9IG1vZGVsXG4gICAqL1xuICBnZXRNb2RlbEFzU3RyaW5nKG1vZGVsKSB7XG4gICAgaWYgKCFtb2RlbCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmlwSFRNTChcbiAgICAgIG1vZGVsLnZhbHVlID09PSAndHJ1ZSdcbiAgICAgICAgPyB0aGlzLl9ib29sZWFuRmlsdGVyVHJhbnNsYXRpb24udHJ1ZVxuICAgICAgICA6IHRoaXMuX2Jvb2xlYW5GaWx0ZXJUcmFuc2xhdGlvbi5mYWxzZVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgZmlsdGVyIHN0YXRlXG4gICAqL1xuICByZXNldCgpIHtcbiAgICBjb25zdCBib2R5ID0gdGhpcy5fZ3VpLnF1ZXJ5U2VsZWN0b3IoJy5ib29sZWFuRmlsdGVyX19ib2R5JylcbiAgICBib2R5LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXScpLmZvckVhY2goaSA9PiB7XG4gICAgICBpLmNoZWNrZWQgPSBmYWxzZVxuICAgIH0pXG5cbiAgICB0aGlzLl9maWx0ZXJUZXh0ID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBzZWxlY3Rpb24gY2hhbmdlcyBpbiB0aGUgZmlsdGVyIHJhZGlvIGJ1dHRvbnMgYW5kIHVwZGF0ZSB0aGUgY3VycmVudCBmaWx0ZXIgdGV4dFxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBlXG4gICAqL1xuICBfb25SYWRpb0NoYW5nZShpc0FwcGx5QnV0dG9uLCBlKSB7XG4gICAgdGhpcy5fZmlsdGVyVGV4dCA9IGUudGFyZ2V0LnZhbHVlXG4gICAgaWYgKGZhbHNlID09PSBpc0FwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLl9wYXJhbXMuZmlsdGVyQ2hhbmdlZENhbGxiYWNrKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIHRoZSBidXR0b24gY2xpY2tzIGluIHRoZSBidXR0b25zIHBhbmVsIGFuZCBhcHBseSB0aGUgY2hvc2VuIGFjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBlXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX0FwcGx5RmlsdGVyUGFuZWxCdXR0b25DbGljayhlKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXRcblxuICAgIGlmICh0YXJnZXQubm9kZU5hbWUgPT09ICdCVVRUT04nKSB7XG4gICAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygncmVzZXQnKSkge1xuICAgICAgICB0aGlzLnJlc2V0KClcbiAgICAgICAgdGhpcy5fcGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpXG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2NsZWFyJykpIHtcbiAgICAgICAgdGhpcy5yZXNldCgpXG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2FwcGx5JykpIHtcbiAgICAgICAgdGhpcy5fcGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJvb2xlYW5GaWx0ZXJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9Cb29sZWFuRmlsdGVyL0Jvb2xlYW5GaWx0ZXIuanMiLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWRcbiAgICAgICAgICAgICAgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvQm9vbGVhbkZpbHRlci9zdHlsZS5zY3NzIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIuYm9vbGVhbkZpbHRlcl9fYm9keV9fbGFiZWxzIGxhYmVse2Rpc3BsYXk6YmxvY2s7cGFkZGluZzozcHggMH1cXG5cIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL0Jvb2xlYW5GaWx0ZXIvc3R5bGUuc2Nzc1xuLy8gbW9kdWxlIGlkID0gNTZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEgMiAzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IE51bWJlckVkaXRvciBmcm9tICcuL051bWJlckVkaXRvcidcblxuZXhwb3J0IGRlZmF1bHQgTnVtYmVyRWRpdG9yXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvTnVtYmVyRWRpdG9yL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IENvbXBvbmVudCBmcm9tICcuLi9Db21wb25lbnQnXG5pbXBvcnQgeyBhdXRvYmluZCwgb3ZlcnJpZGUgfSBmcm9tICdjb3JlLWRlY29yYXRvcnMnXG5cbmltcG9ydCAnLi9zdHlsZS5zY3NzJ1xuXG4vKipcbiAqIE51bWJlcnMgRWRpdG9yXG4gKlxuICogSGFuZGxlIG51bWJlciB2YWx1ZXMgRWRpdGluZ1xuICpcbiAqIHwgTmFtZSAgICAgICAgICAgICAgICAgIFx0fCBEZWZhdWx0ICAgICBcdHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0fFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cdHw6LS0tLS0tLS0tLS0tLTp8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8ICoqbnVtYmVyTWluVmFsdWUqKiAgIHwgdW5kZWZpbmVkICAgIHwgbWluIGFsbG93ZWQgdmFsdWVcbiAqIHwgKipudW1iZXJNYXhWYWx1ZSoqICAgfCB1bmRlZmluZWQgICAgfCBtYXggYWxsb3dlZCB2YWx1ZVxuICogfCAqKm51bWJlclN0ZXBWYWx1ZSoqICAgICAgIHwgdW5kZWZpbmVkICBcdHwgbnVtYmVyIG9mIHN0ZXAgYnkgaW5jcmVtZW50IG9yIGRlY3JlbWVudFxuICogfCAqKm51bWJlck1hc2sqKiAgICAgICB8IHVuZGVmaW5lZCAgXHR8IGEgYmJqIG51bWJlciBtYXNrIHRvIHZhbGlkYXRlIHRoZSBudW1iZXIgYWdhaW5zdFxuICogfCoqbnVtYmVyR3JvdXBpbmdTZXBhcmF0b3IqKiB8ICwgfCBhIGNoYXIgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIGEgZ3JvdXBpbmcgc2VwYXJhdG9yLiBUaGUgb3B0aW9ucyBpcyB1c2VkIG9ubHkgd2hlbiAqKm51bWJlck1hc2sqKiBpcyBkZWZpbmVkIHxcbiAqIHwqKm51bWJlckRlY2ltYWxTZXBhcmF0b3IqKiB8IC4gfCBhIGNoYXIgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIGEgZGVjaW1hbCBzZXBhcmF0b3IuIFRoZSBvcHRpb25zIGlzIHVzZWQgb25seSB3aGVuICoqbnVtYmVyTWFzayoqIGlzIGRlZmluZWQgIHxcbiAqIHwqKm51bWJlckZvcmNlVHJhaWxpbmdaZXJvcyoqIHwgZmFsc2UgfCBBZmZlY3RzIHRoZSBvdXRwdXQgYnkgc3dpdGNoaW5nIHRoZSB3YXkgYSBtYXNrIHdpdGggXCIjXCIgY2hhcmFjdGVycyBpbiB0aGUgdHJhaWxpbmcgcG9zaXRpb25zIGlzIGZpbGxlZC4gZm9yIGV4YW1wbGUsIHRoZSBmdW5jdGlvbiBOdW1iZXJNYXNrLm1hc2soLjEwOlwiIy4jI1wiKSByZXR1cm5zIC4xMCBpbnN0ZWFkIG9mIC4xIC4gVGhlIG9wdGlvbnMgaXMgdXNlZCBvbmx5IHdoZW4gKipudW1iZXJNYXNrKiogaXMgZGVmaW5lZHxcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBOdW1iZXJFZGl0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgaW5pdChwYXJhbXMpIHtcbiAgICBjb25zdCBtaW4gPSB0aGlzLmdldE9wdGlvbignbnVtYmVyTWluVmFsdWUnLCBwYXJhbXMpXG4gICAgY29uc3QgbWF4ID0gdGhpcy5nZXRPcHRpb24oJ251bWJlck1heFZhbHVlJywgcGFyYW1zKVxuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmdldE9wdGlvbignbnVtYmVyU3RlcFZhbHVlJywgcGFyYW1zKVxuICAgIGNvbnN0IG1hc2sgPSB0aGlzLmdldE9wdGlvbignbnVtYmVyTWFzaycsIHBhcmFtcylcblxuICAgIGxldCBzdGFydFZhbHVlXG5cbiAgICB0aGlzLl9mb2N1c0FmdGVyQXR0YWNoZWQgPSBwYXJhbXMuY2VsbFN0YXJ0ZWRFZGl0XG4gICAgaWYgKHRoaXMuX2ZvY3VzQWZ0ZXJBdHRhY2hlZCkge1xuICAgICAgbGV0IGtleVByZXNzQmFja3NwYWNlT3JEZWxldGUgPVxuICAgICAgICBwYXJhbXMua2V5UHJlc3MgPT0gMzIgfHwgcGFyYW1zLmtleVByZXNzID09IDQ2IC8vIHNwYWNlIC8vIGRlbGV0ZVxuXG4gICAgICBpZiAoa2V5UHJlc3NCYWNrc3BhY2VPckRlbGV0ZSkge1xuICAgICAgICBzdGFydFZhbHVlID0gJydcbiAgICAgIH0gZWxzZSBpZiAocGFyYW1zLmNoYXJQcmVzcykge1xuICAgICAgICBzdGFydFZhbHVlID0gcGFyYW1zLmNoYXJQcmVzc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhcnRWYWx1ZSA9IHBhcmFtcy52YWx1ZVxuICAgICAgICBpZiAocGFyYW1zLmtleVByZXNzICE9IDExMykge1xuICAgICAgICAgIC8vRjJcbiAgICAgICAgICB0aGlzLl9oaWdobGlnaHRBbGxPbkZvY3VzID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXJ0VmFsdWUgPSBwYXJhbXMudmFsdWVcbiAgICB9XG5cbiAgICB0aGlzLl9ndWkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpXG4gICAgdGhpcy5fZ3VpLmNsYXNzTmFtZSA9ICdudW1iZXJFZGl0b3IgYWctaW5wdXQtd3JhcHBlcidcbiAgICB0aGlzLl9ndWkudGFiSW5kZXggPSAnMCdcblxuICAgIC8vIGlucHV0XG4gICAgdGhpcy5faW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpXG4gICAgdGhpcy5faW5wdXQuY2xhc3NOYW1lID0gJ251bWJlckVkaXRvcl9faW5wdXQgYWctY2VsbC1lZGl0LWlucHV0J1xuICAgIHRoaXMuX2lucHV0LmlkID0gYGVsLSR7TWF0aC5yYW5kb20oKVxuICAgICAgLnRvU3RyaW5nKDE2KVxuICAgICAgLnNsaWNlKDIsIDEwKX1gIC8vIGdlbmVyYXRlIHJhbmRvbSBpZFxuICAgIHRoaXMuX2lucHV0LnR5cGUgPSBtYXNrID8gJ3RleHQnIDogJ251bWJlcidcbiAgICB0aGlzLl9pbnB1dC52YWx1ZSA9IHN0YXJ0VmFsdWVcbiAgICB0aGlzLl9pbnB1dC50YWJJbmRleCA9IDBcblxuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZCh0aGlzLl9pbnB1dClcblxuICAgIGlmIChtaW4gIT09IG51bGwpIHtcbiAgICAgIG1hc2sgPyAodGhpcy5faW5wdXQuZGF0YXNldC5taW4gPSBtaW4pIDogKHRoaXMuX2lucHV0Lm1pbiA9IG1pbilcbiAgICB9XG5cbiAgICBpZiAobWF4ICE9PSBudWxsKSB7XG4gICAgICBtYXNrID8gKHRoaXMuX2lucHV0LmRhdGFzZXQubWF4ID0gbWF4KSA6ICh0aGlzLl9pbnB1dC5tYXggPSBtYXgpXG4gICAgfVxuXG4gICAgaWYgKHN0ZXAgIT09IG51bGwpIHtcbiAgICAgIG1hc2sgPyAodGhpcy5faW5wdXQuZGF0YXNldC5zdGVwID0gc3RlcCkgOiAodGhpcy5faW5wdXQuc3RlcCA9IHN0ZXApXG4gICAgfVxuXG4gICAgaWYgKG1hc2spIHtcbiAgICAgIGNvbnN0IGdyb3VwaW5nU2VwYXJhdG9yID0gdGhpcy5nZXRPcHRpb24oXG4gICAgICAgICdudW1iZXJHcm91cGluZ1NlcGFyYXRvcicsXG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgdGhpcy5nZXRPcHRpb24oJ251bWJlckdyb3VwU2VwJywgcGFyYW1zKVxuICAgICAgKVxuICAgICAgY29uc3QgZGVjaW1hbFNlcGFyYXRvciA9IHRoaXMuZ2V0T3B0aW9uKFxuICAgICAgICAnbnVtYmVyRGVjaW1hbFNlcGFyYXRvcicsXG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgdGhpcy5nZXRPcHRpb24oJ251bWJlckRlY2ltYWxTZXAnLCBwYXJhbXMpXG4gICAgICApXG4gICAgICBjb25zdCBmb3JjZVRyYWlsaW5nWmVyb3MgPSB0aGlzLmdldE9wdGlvbihcbiAgICAgICAgJ251bWJlckZvcmNlVHJhaWxpbmdaZXJvcycsXG4gICAgICAgIHBhcmFtc1xuICAgICAgKVxuXG4gICAgICBpZiAoZ3JvdXBpbmdTZXBhcmF0b3IgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5faW5wdXQuZGF0YXNldC5ncm91cGluZ1NlcGFyYXRvciA9IGdyb3VwaW5nU2VwYXJhdG9yXG4gICAgICB9XG5cbiAgICAgIGlmIChkZWNpbWFsU2VwYXJhdG9yICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2lucHV0LmRhdGFzZXQuZGVjaW1hbFNlcGFyYXRvciA9IGRlY2ltYWxTZXBhcmF0b3JcbiAgICAgIH1cblxuICAgICAgaWYgKGZvcmNlVHJhaWxpbmdaZXJvcyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9pbnB1dC5kYXRhc2V0LmZvcmNlVHJhaWxpbmdaZXJvcyA9IGZvcmNlVHJhaWxpbmdaZXJvc1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pbnB1dC5kYXRhc2V0Lm1hc2sgPSBtYXNrXG4gICAgICB0aGlzLl9udW1iZXJJbnB1dCA9IG5ldyBCYXNpcy5JbnB1dE1hc2tpbmcuTnVtYmVySW5wdXQoe1xuICAgICAgICBlbGVtZW50czogW3RoaXMuX2lucHV0XSxcbiAgICAgICAgZG9jOiB0aGlzLmdldERvYyhwYXJhbXMpLFxuICAgICAgICBvblVwZGF0ZTogKF9tYXNrZWQsIHVubWFza2VkKSA9PiB7XG4gICAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gdW5tYXNrZWRcbiAgICAgICAgICB0aGlzLmZvY3VzSW4oKVxuICAgICAgICB9LFxuICAgICAgICBvbkludmFsaWQ6IChlcnJvciwgaW5wdXQpID0+IHtcbiAgICAgICAgICB0aGlzLmZvY3VzSW4oKVxuICAgICAgICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpbnB1dC5zZXRDdXN0b21WYWxpZGl0eShlcnJvcilcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25LZXlEb3duVXApXG4gICAgICB0aGlzLl9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX29uS2V5RG93blVwKVxuICAgICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5fb25DaGFuZ2UpXG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIGBjdXJyZW50VmFsdWVgIHRoZSB2YWx1ZSB3aGljaCB0aGlzIGNvbXBvbmVudCBpcyBtYW5hZ2luZ1xuICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHN0YXJ0VmFsdWVcbiAgICB0aGlzLl9faXNNYXNrZWRfXyA9IG1hc2sgJiYgbWFzay5sZW5ndGhcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBkZXN0cm95KCkge1xuICAgIGlmICghdGhpcy5fX2lzTWFza2VkX18pIHtcbiAgICAgIHRoaXMuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9vbktleURvd25VcClcbiAgICAgIHRoaXMuX2lucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fb25LZXlEb3duVXApXG4gICAgICB0aGlzLl9pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9vbkNoYW5nZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbnVtYmVySW5wdXQuZGVzdHJveSgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIG9uY2UgYWZ0ZXIgR1VJIGlzIGF0dGFjaGVkIHRvIERPTS5cbiAgICpcbiAgICogTWFrZSBzdXJlIGNvbnRhaW5lciBpcyBhbHdheXMgZm9jdXNlZCB0byBsaXN0ZW4gdG8ga2V5IGNoYW5nZXNcbiAgICovXG4gIGFmdGVyR3VpQXR0YWNoZWQoKSB7XG4gICAgaWYgKCF0aGlzLl9faXNNYXNrZWRfXykge1xuICAgICAgdGhpcy5fdmFsaWRhdGVJbnB1dCh0aGlzLl9pbnB1dClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faGlnaGxpZ2h0QWxsT25Gb2N1cykge1xuICAgICAgdGhpcy5faW5wdXQuc2VsZWN0KClcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2ZvY3VzQWZ0ZXJBdHRhY2hlZCkge1xuICAgICAgICB0aGlzLmZvY3VzSW4oKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgVGhlIGNvbXBvbmVudCB2YWx1ZVxuICAgKlxuICAgKiBAcmV0dXJuIHtOdW1iZXJ9XG4gICAqL1xuICBnZXRWYWx1ZSgpIHtcbiAgICBjb25zdCBjYXN0ZWQgPSBOdW1iZXIodGhpcy5fY3VycmVudFZhbHVlKVxuICAgIHJldHVybiBpc05hTihjYXN0ZWQpID8gdGhpcy5fY3VycmVudFZhbHVlIDogY2FzdGVkXG4gIH1cblxuICAvKipcbiAgICogSWYgZG9pbmcgZnVsbCByb3cgZWRpdCwgdGhlbiBnZXRzIGNhbGxlZCB3aGVuIHRhYmJpbmcgaW50byB0aGUgY2VsbC5cbiAgICovXG4gIGZvY3VzSW4oKSB7XG4gICAgdGhpcy5faW5wdXQuZm9jdXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIG9uY2UgYWZ0ZXIgaW5pdGlhbGl6ZWQgYW5kIHJldHVybnMgZmFsc2Ugc28gdGhlIGVkaXRvciBhcHBlYXJzIGluIHRoZSBjZWxsXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IGFsd2F5cyBmYWxzZVxuICAgKiovXG4gIGlzUG9wdXAoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGBjdXJyZW50VmFsdWVgIHdoZW4gdGhlIGNoZWNrYm94IHZhbHVlIGlzIGNoYW5nZWRcbiAgICovXG4gIEBhdXRvYmluZFxuICBfb25DaGFuZ2UoZXZlbnQpIHtcbiAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5fdmFsaWRhdGVJbnB1dChldmVudC50YXJnZXQpXG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHRoaXMuX2lucHV0LnZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBrZXkgY2hhbmdlcyBhbmQgdmFsaWRhdGUgdGhlIGlucHV0XG4gICAqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX29uS2V5RG93blVwKGV2ZW50KSB7XG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuX3ZhbGlkYXRlSW5wdXQoZXZlbnQudGFyZ2V0KVxuXG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBldmVudC53aGljaCB8fCBldmVudC5rZXlDb2RlXG5cbiAgICBpZiAoa2V5ID09IDM4IHx8IGtleSA9PSA0MCkge1xuICAgICAgLy8gdG9wIHwgZG93blxuICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gdGhpcy5faW5wdXQudmFsdWVcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgfSBlbHNlIGlmIChrZXkgPT0gMTMgfHwga2V5ID09PSA5KSB7XG4gICAgICAvLyBlbnRlclxuICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gdGhpcy5faW5wdXQudmFsdWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIGdpdmVuIGlucHV0IGVsZW1lbnRcbiAgICpcbiAgICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBpbnB1dCBpbnB1dCBlbGVtZW50XG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgd2hlbiB2YWxpZCAsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgX3ZhbGlkYXRlSW5wdXQoaW5wdXQpIHtcbiAgICBjb25zdCBpc1ZhbGlkID0gaW5wdXQuY2hlY2tWYWxpZGl0eSgpXG5cbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgIGlucHV0LmNsYXNzTGlzdC5hZGQoJ2Jiai1tYXNrLWVycm9yJylcbiAgICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ2Jiai1tYXNrLXN1Y2Nlc3MnKVxuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCdiYmotbWFzay1lcnJvcicpXG4gICAgICBpbnB1dC5jbGFzc0xpc3QuYWRkKCdiYmotbWFzay1zdWNjZXNzJylcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWYWxpZFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE51bWJlckVkaXRvclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL051bWJlckVkaXRvci9OdW1iZXJFZGl0b3IuanMiLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWRcbiAgICAgICAgICAgICAgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvTnVtYmVyRWRpdG9yL3N0eWxlLnNjc3MiLCJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzXCIpKGZhbHNlKTtcbi8vIGltcG9ydHNcblxuXG4vLyBtb2R1bGVcbmV4cG9ydHMucHVzaChbbW9kdWxlLmlkLCBcIi5udW1iZXJFZGl0b3IgLm51bWJlcklucHV0TWFza19fd3JhcHt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5udW1iZXJFZGl0b3IgLmJiai1tYXNrLWVycm9ye2JveC1zaGFkb3c6MCAtMnB4IDAgI2U5MWU2MyBpbnNldH0ubnVtYmVyRWRpdG9yIC5iYmotbWFzay1zdWNjZXNze2JveC1zaGFkb3c6MCAtMnB4IDAgIzRjYWY1MCBpbnNldH1cXG5cIiwgXCJcIl0pO1xuXG4vLyBleHBvcnRzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyIS4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL051bWJlckVkaXRvci9zdHlsZS5zY3NzXG4vLyBtb2R1bGUgaWQgPSA2MFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIDMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgVGV4dEVkaXRvciBmcm9tICcuL1RleHRFZGl0b3InXG5cbmV4cG9ydCBkZWZhdWx0IFRleHRFZGl0b3JcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UZXh0RWRpdG9yL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IENvbXBvbmVudCBmcm9tICcuLi9Db21wb25lbnQnXG5pbXBvcnQgeyBhdXRvYmluZCwgb3ZlcnJpZGUgfSBmcm9tICdjb3JlLWRlY29yYXRvcnMnXG5cbmltcG9ydCAnLi9zdHlsZS5zY3NzJ1xuXG4vKipcbiAqIFRleHQgRWRpdG9yXG4gKlxuICogSGFuZGxlIHRleHQgdmFsdWVzIEVkaXRpbmdcbiAqXG4gKiB8IE5hbWUgICAgICAgICAgICAgICAgICBcdHwgRGVmYXVsdCAgICAgXHR8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHR8Oi0tLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKnRleHRQYXR0ZXJuKiogICB8IHVuZGVmaW5lZCAgICB8IEEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgdGhlIGlucHV0J3MgdmFsdWUgbXVzdCBtYXRjaCBpbiBvcmRlciBmb3IgdGhlIHZhbHVlIHRvIHBhc3MgY29uc3RyYWludCB2YWxpZGF0aW9uXG4gKiB8ICoqdGV4dFJlcXVpcmVkKiogICB8IHVuZGVmaW5lZCAgICB8IEJvb2xlYW4uIEEgdmFsdWUgaXMgcmVxdWlyZWQgdG8gY29uc2lkZXIgdGhlIGlucHV0IHZhbGlkXG4gKiB8ICoqdGV4dE1hc2sqKiAgIHwgdW5kZWZpbmVkICAgIHwgQSBiYmogc3RyaW5nIG1hc2sgdG8gdmFsaWRhdGUgdGhlIHZhbHVlXG4gKiB8ICoqdGV4dFRpdGxlKiogICB8IG51bGwgICAgfCBUaGUgaW5wdXQgdGl0bGUgLCB3aGVuIG51bGwgYW5kIHRoZSAqKnRleHRNYXNrKiogb3B0aW9ucyBpcyBkZWZpbmVkICwgdGhlbiB3ZSB1c2UgdGhlIG1hc2sgYXMgdGl0bGUgLCB3aGVuIHNldCB0byBgZGVmYXVsdGAgd2UgdGhlIGJyb3dzZXIncyBkZWZhdWx0IHRpdGxlICwgb3RoZXJ3aXNlIHRoZSB2YWx1ZSBkZWZpbmVkIGluIHRoaXMgb3B0aW9uXG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgVGV4dEVkaXRvciBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiAgQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBpbml0KHBhcmFtcykge1xuICAgIGNvbnN0IHBhdHRlcm4gPSB0aGlzLmdldE9wdGlvbigndGV4dFBhdHRlcm4nLCBwYXJhbXMpXG4gICAgY29uc3QgcmVxdWlyZWQgPSB0aGlzLmdldE9wdGlvbigndGV4dFJlcXVpcmVkJywgcGFyYW1zKVxuICAgIGNvbnN0IG1hc2sgPSB0aGlzLmdldE9wdGlvbigndGV4dE1hc2snLCBwYXJhbXMpXG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLmdldE9wdGlvbigndGV4dFRpdGxlJywgcGFyYW1zKVxuXG4gICAgbGV0IHN0YXJ0VmFsdWVcblxuICAgIHRoaXMuX2ZvY3VzQWZ0ZXJBdHRhY2hlZCA9IHBhcmFtcy5jZWxsU3RhcnRlZEVkaXRcbiAgICBpZiAodGhpcy5fZm9jdXNBZnRlckF0dGFjaGVkKSB7XG4gICAgICBsZXQga2V5UHJlc3NCYWNrc3BhY2VPckRlbGV0ZSA9XG4gICAgICAgIHBhcmFtcy5rZXlQcmVzcyA9PSAzMiB8fCBwYXJhbXMua2V5UHJlc3MgPT0gNDYgLy8gc3BhY2UgLy8gZGVsZXRlXG5cbiAgICAgIGlmIChrZXlQcmVzc0JhY2tzcGFjZU9yRGVsZXRlKSB7XG4gICAgICAgIHN0YXJ0VmFsdWUgPSAnJ1xuICAgICAgfSBlbHNlIGlmIChwYXJhbXMuY2hhclByZXNzKSB7XG4gICAgICAgIHN0YXJ0VmFsdWUgPSBwYXJhbXMuY2hhclByZXNzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFydFZhbHVlID0gcGFyYW1zLnZhbHVlXG4gICAgICAgIGlmIChwYXJhbXMua2V5UHJlc3MgIT0gMTEzKSB7XG4gICAgICAgICAgLy9GMlxuICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodEFsbE9uRm9jdXMgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnRWYWx1ZSA9IHBhcmFtcy52YWx1ZVxuICAgIH1cblxuICAgIHRoaXMuX3BhcmFtcyA9IHBhcmFtc1xuXG4gICAgdGhpcy5fZ3VpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKVxuICAgIHRoaXMuX2d1aS5jbGFzc05hbWUgPSAndGV4dEVkaXRvciBhZy1pbnB1dC13cmFwcGVyJ1xuICAgIHRoaXMuX2d1aS50YWJJbmRleCA9ICcwJ1xuXG4gICAgLy8gaW5wdXRcbiAgICB0aGlzLl9pbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JylcbiAgICB0aGlzLl9pbnB1dC5jbGFzc05hbWUgPSAndGV4dEVkaXRvcl9faW5wdXQgYWctY2VsbC1lZGl0LWlucHV0J1xuICAgIHRoaXMuX2lucHV0LmlkID0gYGVsLSR7TWF0aC5yYW5kb20oKVxuICAgICAgLnRvU3RyaW5nKDE2KVxuICAgICAgLnNsaWNlKDIsIDEwKX1gIC8vIGdlbmVyYXRlIHJhbmRvbSBpZFxuICAgIHRoaXMuX2lucHV0LnR5cGUgPSAndGV4dCdcbiAgICB0aGlzLl9pbnB1dC52YWx1ZSA9IHN0YXJ0VmFsdWVcbiAgICB0aGlzLl9pbnB1dC50YWJJbmRleCA9IDBcblxuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZCh0aGlzLl9pbnB1dClcblxuICAgIGlmIChwYXR0ZXJuICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9pbnB1dC5zZXRBdHRyaWJ1dGUoJ3BhdHRlcm4nLCBwYXR0ZXJuKVxuICAgIH1cblxuICAgIGlmIChyZXF1aXJlZCA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5faW5wdXQuc2V0QXR0cmlidXRlKCdyZXF1aXJlZCcsICdyZXF1aXJlZCcpXG4gICAgfVxuXG4gICAgaWYgKHRpdGxlICE9PSBudWxsKSB7XG4gICAgICBpZiAodGl0bGUgIT09ICdkZWZhdWx0Jykge1xuICAgICAgICB0aGlzLl9pbnB1dC50aXRsZSA9IHRpdGxlXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChtYXNrKSB7XG4gICAgICB0aGlzLl9pbnB1dC50aXRsZSA9IG1hc2tcbiAgICB9XG5cbiAgICBpZiAobWFzaykge1xuICAgICAgdGhpcy5faW5wdXQuZGF0YXNldC5tYXNrID0gbWFza1xuICAgICAgdGhpcy5fdGV4dElucHV0ID0gbmV3IEJhc2lzLklucHV0TWFza2luZy5UZXh0SW5wdXQoe1xuICAgICAgICBlbGVtZW50czogW3RoaXMuX2lucHV0XSxcbiAgICAgICAgZG9jOiB0aGlzLmdldERvYyhwYXJhbXMpLFxuICAgICAgICBvblVwZGF0ZTogKF9tYXNrZWQsIHVubWFza2VkKSA9PiB7XG4gICAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gdW5tYXNrZWRcbiAgICAgICAgICB0aGlzLmZvY3VzSW4oKVxuICAgICAgICB9LFxuICAgICAgICBvbkludmFsaWQ6IChlcnJvciwgaW5wdXQpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaW5wdXQuc2V0Q3VzdG9tVmFsaWRpdHkoZXJyb3IpXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX29uQ2hhbmdlKVxuICAgICAgdGhpcy5faW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCB0aGlzLl9vbkNoYW5nZSlcbiAgICAgIHRoaXMuX2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX29uQ2hhbmdlKVxuICAgIH1cblxuICAgIC8vIHVwZGF0ZSBgY3VycmVudFZhbHVlYCB0aGUgdmFsdWUgd2hpY2ggdGhpcyBjb21wb25lbnQgaXMgbWFuYWdpbmdcbiAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSBzdGFydFZhbHVlXG4gICAgdGhpcy5fX2lzTWFza2VkX18gPSBtYXNrICYmIG1hc2subGVuZ3RoXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgZGVzdHJveSgpIHtcbiAgICBpZiAoIXRoaXMuX19pc01hc2tlZF9fKSB7XG4gICAgICB0aGlzLl9pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fb25DaGFuZ2UpXG4gICAgICB0aGlzLl9pbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdpbnB1dCcsIHRoaXMuX29uQ2hhbmdlKVxuICAgICAgdGhpcy5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgdGhpcy5fb25DaGFuZ2UpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RleHRJbnB1dC5kZXN0cm95KClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBjYWxsZWQgb25jZSBhZnRlciBHVUkgaXMgYXR0YWNoZWQgdG8gRE9NLlxuICAgKlxuICAgKiBNYWtlIHN1cmUgY29udGFpbmVyIGlzIGFsd2F5cyBmb2N1c2VkIHRvIGxpc3RlbiB0byBrZXkgY2hhbmdlc1xuICAgKi9cbiAgYWZ0ZXJHdWlBdHRhY2hlZCgpIHtcbiAgICBpZiAoIXRoaXMuX19pc01hc2tlZF9fKSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZUlucHV0KHRoaXMuX2lucHV0KVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9oaWdobGlnaHRBbGxPbkZvY3VzKSB7XG4gICAgICB0aGlzLl9pbnB1dC5zZWxlY3QoKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fZm9jdXNBZnRlckF0dGFjaGVkKSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbigpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBUaGUgY29tcG9uZW50IHZhbHVlXG4gICAqXG4gICAqIEByZXR1cm4ge051bWJlcn1cbiAgICovXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBkb2luZyBmdWxsIHJvdyBlZGl0LCB0aGVuIGdldHMgY2FsbGVkIHdoZW4gdGFiYmluZyBpbnRvIHRoZSBjZWxsLlxuICAgKi9cbiAgZm9jdXNJbigpIHtcbiAgICB0aGlzLl9pbnB1dC5mb2N1cygpXG4gIH1cblxuICAvKipcbiAgICogR2V0cyBjYWxsZWQgb25jZSBhZnRlciBpbml0aWFsaXplZCBhbmQgcmV0dXJucyBmYWxzZSBzbyB0aGUgZWRpdG9yIGFwcGVhcnMgaW4gdGhlIGNlbGxcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gYWx3YXlzIGZhbHNlXG4gICAqKi9cbiAgaXNQb3B1cCgpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYGN1cnJlbnRWYWx1ZWAgb24gdGhlIGlucHV0IHZhbHVlIGlzIGNoYW5nZWQgYW5kIGl0IGlzIHZhbGlkXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX29uQ2hhbmdlKGV2ZW50KSB7XG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuX3ZhbGlkYXRlSW5wdXQoZXZlbnQudGFyZ2V0KVxuICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHRoaXMuX3BhcmFtcy52YWx1ZVxuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB0aGlzLl9pbnB1dC52YWx1ZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGUgZ2l2ZW4gaW5wdXQgZWxlbWVudFxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGlucHV0IGlucHV0IGVsZW1lbnRcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSB3aGVuIHZhbGlkICwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBfdmFsaWRhdGVJbnB1dChpbnB1dCkge1xuICAgIGNvbnN0IGlzVmFsaWQgPSBpbnB1dC5jaGVja1ZhbGlkaXR5KClcblxuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgaW5wdXQuY2xhc3NMaXN0LmFkZCgnYmJqLW1hc2stZXJyb3InKVxuICAgICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgnYmJqLW1hc2stc3VjY2VzcycpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ2Jiai1tYXNrLWVycm9yJylcbiAgICAgIGlucHV0LmNsYXNzTGlzdC5hZGQoJ2Jiai1tYXNrLXN1Y2Nlc3MnKVxuICAgIH1cblxuICAgIHJldHVybiBpc1ZhbGlkXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVGV4dEVkaXRvclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL1RleHRFZGl0b3IvVGV4dEVkaXRvci5qcyIsIlxudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zdHlsZS5zY3NzXCIpO1xuXG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcblxudmFyIHRyYW5zZm9ybTtcbnZhciBpbnNlcnRJbnRvO1xuXG5cblxudmFyIG9wdGlvbnMgPSB7XCJobXJcIjp0cnVlfVxuXG5vcHRpb25zLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVxub3B0aW9ucy5pbnNlcnRJbnRvID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQuaGVhZFxuICAgICAgICAgICAgICB9O1xuXG52YXIgdXBkYXRlID0gcmVxdWlyZShcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcIikoY29udGVudCwgb3B0aW9ucyk7XG5cbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuXG5pZihtb2R1bGUuaG90KSB7XG5cdG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zdHlsZS5zY3NzXCIsIGZ1bmN0aW9uKCkge1xuXHRcdHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufVxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UZXh0RWRpdG9yL3N0eWxlLnNjc3MiLCJleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvbGliL2Nzcy1iYXNlLmpzXCIpKGZhbHNlKTtcbi8vIGltcG9ydHNcblxuXG4vLyBtb2R1bGVcbmV4cG9ydHMucHVzaChbbW9kdWxlLmlkLCBcIi50ZXh0RWRpdG9yIC50ZXh0SW5wdXRNYXNrX193cmFwe3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCV9LnRleHRFZGl0b3IgLmJiai1tYXNrLWVycm9ye2JveC1zaGFkb3c6MCAtMnB4IDAgI2U5MWU2MyBpbnNldH0udGV4dEVkaXRvciAuYmJqLW1hc2stc3VjY2Vzc3tib3gtc2hhZG93OjAgLTJweCAwICM0Y2FmNTAgaW5zZXR9XFxuXCIsIFwiXCJdKTtcblxuLy8gZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlciEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9UZXh0RWRpdG9yL3N0eWxlLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDY0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIDIgMyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBDb21wb25lbnQgZnJvbSAnLi4vQ29tcG9uZW50J1xuaW1wb3J0IHRlbXBsYXRlIGZyb20gJ2xvZGFzaC1lcy90ZW1wbGF0ZSdcblxuLyoqXG4gKiBOdW1iZXJzIEVkaXRvclxuICpcbiAqIEhhbmRsZSBudW1iZXIgdmFsdWVzIEVkaXRpbmdcbiAqXG4gKiB8IE5hbWUgICAgICAgICAgICAgICAgICBcdHwgRGVmYXVsdCAgICAgXHR8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHR8Oi0tLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKnJlbmRlclRlbXBsYXRlKiogICB8IHVuZGVmaW5lZCAgICB8IGxvZGFzaCB0ZW1wbGF0ZVxuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIFRlbXBsYXRlUmVuZGVyZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogQ29uc3RydWN0IG5ldyBUZW1wbGF0ZVJlbmRlcmVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG5cbiAgICAvLyB3aWxsIHRoaXMgYWZmZWN0IEJCaiBidWkgP1xuICAgIHRoaXMuX2d1aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGhpcy5fZ3VpLmNsYXNzTmFtZSA9ICd0ZW1wbGF0ZVJlbmRlcmVyJ1xuICAgIHRoaXMuX2d1aS5zdHlsZS53aWR0aCA9ICcxMDAlJ1xuICAgIHRoaXMuX2d1aS5zdHlsZS5oZWlnaHQgPSAnMTAwJSdcbiAgICB0aGlzLl9ndWkuc3R5bGUubGluZUhlaWdodCA9ICdub3JtYWwnXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBpbml0KHBhcmFtcykge1xuICAgIHRoaXMucmVmcmVzaChwYXJhbXMsIHRydWUpXG4gIH1cblxuICAvKipcbiAgICogIEBpbmhlcml0RG9jXG4gICAqL1xuICBnZXRHdWkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2d1aVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIGNlbGwgbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIGNlbGwgcmVuZGVyZXIgcGFyYW1zXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gaXNJbml0IHRydWUgd2hlbiB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgaW4gYGluaXRgIHBoYXNlICwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgaWYgdGhlIHJlZnJlc2ggc3VjY2VlZGVkLCBvdGhlcndpc2UgcmV0dXJuIGZhbHNlLlxuICAgKi9cbiAgcmVmcmVzaChwYXJhbXMsIGlzSW5pdCkge1xuICAgIGlmIChpc0luaXQpIHtcbiAgICAgIHRoaXMuX2NvbXBpbGVkVGVtcGxhdGUgPSB0ZW1wbGF0ZShcbiAgICAgICAgdGhpcy5nZXRPcHRpb24oJ3JlbmRlclRlbXBsYXRlJywgcGFyYW1zLCAnJylcbiAgICAgIClcbiAgICB9XG5cbiAgICBsZXQgY29udGVudFxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLl9jb21waWxlZFRlbXBsYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb250ZW50ID0gdGhpcy5fY29tcGlsZWRUZW1wbGF0ZSh7IHBhcmFtcyB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZW50ID0gcGFyYW1zLnZhbHVlRm9ybWF0dGVkID8gcGFyYW1zLnZhbHVlRm9ybWF0dGVkIDogcGFyYW1zLnZhbHVlXG4gICAgfVxuXG4gICAgdGhpcy5fZ3VpLmlubmVySFRNTCA9IGNvbnRlbnRcblxuICAgIHJldHVybiB0cnVlXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVGVtcGxhdGVSZW5kZXJlclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL1RlbXBsYXRlUmVuZGVyZXIvVGVtcGxhdGVSZW5kZXJlci5qcyIsImltcG9ydCBhc3NpZ25JbldpdGggZnJvbSAnLi9hc3NpZ25JbldpdGguanMnO1xuaW1wb3J0IGF0dGVtcHQgZnJvbSAnLi9hdHRlbXB0LmpzJztcbmltcG9ydCBiYXNlVmFsdWVzIGZyb20gJy4vX2Jhc2VWYWx1ZXMuanMnO1xuaW1wb3J0IGN1c3RvbURlZmF1bHRzQXNzaWduSW4gZnJvbSAnLi9fY3VzdG9tRGVmYXVsdHNBc3NpZ25Jbi5qcyc7XG5pbXBvcnQgZXNjYXBlU3RyaW5nQ2hhciBmcm9tICcuL19lc2NhcGVTdHJpbmdDaGFyLmpzJztcbmltcG9ydCBpc0Vycm9yIGZyb20gJy4vaXNFcnJvci5qcyc7XG5pbXBvcnQgaXNJdGVyYXRlZUNhbGwgZnJvbSAnLi9faXNJdGVyYXRlZUNhbGwuanMnO1xuaW1wb3J0IGtleXMgZnJvbSAnLi9rZXlzLmpzJztcbmltcG9ydCByZUludGVycG9sYXRlIGZyb20gJy4vX3JlSW50ZXJwb2xhdGUuanMnO1xuaW1wb3J0IHRlbXBsYXRlU2V0dGluZ3MgZnJvbSAnLi90ZW1wbGF0ZVNldHRpbmdzLmpzJztcbmltcG9ydCB0b1N0cmluZyBmcm9tICcuL3RvU3RyaW5nLmpzJztcblxuLyoqIFVzZWQgdG8gbWF0Y2ggZW1wdHkgc3RyaW5nIGxpdGVyYWxzIGluIGNvbXBpbGVkIHRlbXBsYXRlIHNvdXJjZS4gKi9cbnZhciByZUVtcHR5U3RyaW5nTGVhZGluZyA9IC9cXGJfX3AgXFwrPSAnJzsvZyxcbiAgICByZUVtcHR5U3RyaW5nTWlkZGxlID0gL1xcYihfX3AgXFwrPSkgJycgXFwrL2csXG4gICAgcmVFbXB0eVN0cmluZ1RyYWlsaW5nID0gLyhfX2VcXCguKj9cXCl8XFxiX190XFwpKSBcXCtcXG4nJzsvZztcblxuLyoqXG4gKiBVc2VkIHRvIG1hdGNoXG4gKiBbRVMgdGVtcGxhdGUgZGVsaW1pdGVyc10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdGVtcGxhdGUtbGl0ZXJhbC1sZXhpY2FsLWNvbXBvbmVudHMpLlxuICovXG52YXIgcmVFc1RlbXBsYXRlID0gL1xcJFxceyhbXlxcXFx9XSooPzpcXFxcLlteXFxcXH1dKikqKVxcfS9nO1xuXG4vKiogVXNlZCB0byBlbnN1cmUgY2FwdHVyaW5nIG9yZGVyIG9mIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXG52YXIgcmVOb01hdGNoID0gLygkXikvO1xuXG4vKiogVXNlZCB0byBtYXRjaCB1bmVzY2FwZWQgY2hhcmFjdGVycyBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG52YXIgcmVVbmVzY2FwZWRTdHJpbmcgPSAvWydcXG5cXHJcXHUyMDI4XFx1MjAyOVxcXFxdL2c7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNvbXBpbGVkIHRlbXBsYXRlIGZ1bmN0aW9uIHRoYXQgY2FuIGludGVycG9sYXRlIGRhdGEgcHJvcGVydGllc1xuICogaW4gXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlcnMsIEhUTUwtZXNjYXBlIGludGVycG9sYXRlZCBkYXRhIHByb3BlcnRpZXMgaW5cbiAqIFwiZXNjYXBlXCIgZGVsaW1pdGVycywgYW5kIGV4ZWN1dGUgSmF2YVNjcmlwdCBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy4gRGF0YVxuICogcHJvcGVydGllcyBtYXkgYmUgYWNjZXNzZWQgYXMgZnJlZSB2YXJpYWJsZXMgaW4gdGhlIHRlbXBsYXRlLiBJZiBhIHNldHRpbmdcbiAqIG9iamVjdCBpcyBnaXZlbiwgaXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBfLnRlbXBsYXRlU2V0dGluZ3NgIHZhbHVlcy5cbiAqXG4gKiAqKk5vdGU6KiogSW4gdGhlIGRldmVsb3BtZW50IGJ1aWxkIGBfLnRlbXBsYXRlYCB1dGlsaXplc1xuICogW3NvdXJjZVVSTHNdKGh0dHA6Ly93d3cuaHRtbDVyb2Nrcy5jb20vZW4vdHV0b3JpYWxzL2RldmVsb3BlcnRvb2xzL3NvdXJjZW1hcHMvI3RvYy1zb3VyY2V1cmwpXG4gKiBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbiAqXG4gKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBwcmVjb21waWxpbmcgdGVtcGxhdGVzIHNlZVxuICogW2xvZGFzaCdzIGN1c3RvbSBidWlsZHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9sb2Rhc2guY29tL2N1c3RvbS1idWlsZHMpLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIENocm9tZSBleHRlbnNpb24gc2FuZGJveGVzIHNlZVxuICogW0Nocm9tZSdzIGV4dGVuc2lvbnMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9leHRlbnNpb25zL3NhbmRib3hpbmdFdmFsKS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgU3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHRlbXBsYXRlIHN0cmluZy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gVGhlIG9wdGlvbnMgb2JqZWN0LlxuICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmVzY2FwZT1fLnRlbXBsYXRlU2V0dGluZ3MuZXNjYXBlXVxuICogIFRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyLlxuICogQHBhcmFtIHtSZWdFeHB9IFtvcHRpb25zLmV2YWx1YXRlPV8udGVtcGxhdGVTZXR0aW5ncy5ldmFsdWF0ZV1cbiAqICBUaGUgXCJldmFsdWF0ZVwiIGRlbGltaXRlci5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5pbXBvcnRzPV8udGVtcGxhdGVTZXR0aW5ncy5pbXBvcnRzXVxuICogIEFuIG9iamVjdCB0byBpbXBvcnQgaW50byB0aGUgdGVtcGxhdGUgYXMgZnJlZSB2YXJpYWJsZXMuXG4gKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuaW50ZXJwb2xhdGU9Xy50ZW1wbGF0ZVNldHRpbmdzLmludGVycG9sYXRlXVxuICogIFRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnNvdXJjZVVSTD0ndGVtcGxhdGVTb3VyY2VzW25dJ11cbiAqICBUaGUgc291cmNlVVJMIG9mIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy52YXJpYWJsZT0nb2JqJ11cbiAqICBUaGUgZGF0YSBvYmplY3QgdmFyaWFibGUgbmFtZS5cbiAqIEBwYXJhbS0ge09iamVjdH0gW2d1YXJkXSBFbmFibGVzIHVzZSBhcyBhbiBpdGVyYXRlZSBmb3IgbWV0aG9kcyBsaWtlIGBfLm1hcGAuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNvbXBpbGVkIHRlbXBsYXRlIGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiAvLyBVc2UgdGhlIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIgdG8gY3JlYXRlIGEgY29tcGlsZWQgdGVtcGxhdGUuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyA8JT0gdXNlciAlPiEnKTtcbiAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnZnJlZCcgfSk7XG4gKiAvLyA9PiAnaGVsbG8gZnJlZCEnXG4gKlxuICogLy8gVXNlIHRoZSBIVE1MIFwiZXNjYXBlXCIgZGVsaW1pdGVyIHRvIGVzY2FwZSBkYXRhIHByb3BlcnR5IHZhbHVlcy5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzxiPjwlLSB2YWx1ZSAlPjwvYj4nKTtcbiAqIGNvbXBpbGVkKHsgJ3ZhbHVlJzogJzxzY3JpcHQ+JyB9KTtcbiAqIC8vID0+ICc8Yj4mbHQ7c2NyaXB0Jmd0OzwvYj4nXG4gKlxuICogLy8gVXNlIHRoZSBcImV2YWx1YXRlXCIgZGVsaW1pdGVyIHRvIGV4ZWN1dGUgSmF2YVNjcmlwdCBhbmQgZ2VuZXJhdGUgSFRNTC5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIF8uZm9yRWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+Jyk7XG4gKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAqIC8vID0+ICc8bGk+ZnJlZDwvbGk+PGxpPmJhcm5leTwvbGk+J1xuICpcbiAqIC8vIFVzZSB0aGUgaW50ZXJuYWwgYHByaW50YCBmdW5jdGlvbiBpbiBcImV2YWx1YXRlXCIgZGVsaW1pdGVycy5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJzwlIHByaW50KFwiaGVsbG8gXCIgKyB1c2VyKTsgJT4hJyk7XG4gKiBjb21waWxlZCh7ICd1c2VyJzogJ2Jhcm5leScgfSk7XG4gKiAvLyA9PiAnaGVsbG8gYmFybmV5ISdcbiAqXG4gKiAvLyBVc2UgdGhlIEVTIHRlbXBsYXRlIGxpdGVyYWwgZGVsaW1pdGVyIGFzIGFuIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIuXG4gKiAvLyBEaXNhYmxlIHN1cHBvcnQgYnkgcmVwbGFjaW5nIHRoZSBcImludGVycG9sYXRlXCIgZGVsaW1pdGVyLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gJHsgdXNlciB9IScpO1xuICogY29tcGlsZWQoeyAndXNlcic6ICdwZWJibGVzJyB9KTtcbiAqIC8vID0+ICdoZWxsbyBwZWJibGVzISdcbiAqXG4gKiAvLyBVc2UgYmFja3NsYXNoZXMgdG8gdHJlYXQgZGVsaW1pdGVycyBhcyBwbGFpbiB0ZXh0LlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCU9IFwiXFxcXDwlLSB2YWx1ZSAlXFxcXD5cIiAlPicpO1xuICogY29tcGlsZWQoeyAndmFsdWUnOiAnaWdub3JlZCcgfSk7XG4gKiAvLyA9PiAnPCUtIHZhbHVlICU+J1xuICpcbiAqIC8vIFVzZSB0aGUgYGltcG9ydHNgIG9wdGlvbiB0byBpbXBvcnQgYGpRdWVyeWAgYXMgYGpxYC5cbiAqIHZhciB0ZXh0ID0gJzwlIGpxLmVhY2godXNlcnMsIGZ1bmN0aW9uKHVzZXIpIHsgJT48bGk+PCUtIHVzZXIgJT48L2xpPjwlIH0pOyAlPic7XG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKHRleHQsIHsgJ2ltcG9ydHMnOiB7ICdqcSc6IGpRdWVyeSB9IH0pO1xuICogY29tcGlsZWQoeyAndXNlcnMnOiBbJ2ZyZWQnLCAnYmFybmV5J10gfSk7XG4gKiAvLyA9PiAnPGxpPmZyZWQ8L2xpPjxsaT5iYXJuZXk8L2xpPidcbiAqXG4gKiAvLyBVc2UgdGhlIGBzb3VyY2VVUkxgIG9wdGlvbiB0byBzcGVjaWZ5IGEgY3VzdG9tIHNvdXJjZVVSTCBmb3IgdGhlIHRlbXBsYXRlLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnaGVsbG8gPCU9IHVzZXIgJT4hJywgeyAnc291cmNlVVJMJzogJy9iYXNpYy9ncmVldGluZy5qc3QnIH0pO1xuICogY29tcGlsZWQoZGF0YSk7XG4gKiAvLyA9PiBGaW5kIHRoZSBzb3VyY2Ugb2YgXCJncmVldGluZy5qc3RcIiB1bmRlciB0aGUgU291cmNlcyB0YWIgb3IgUmVzb3VyY2VzIHBhbmVsIG9mIHRoZSB3ZWIgaW5zcGVjdG9yLlxuICpcbiAqIC8vIFVzZSB0aGUgYHZhcmlhYmxlYCBvcHRpb24gdG8gZW5zdXJlIGEgd2l0aC1zdGF0ZW1lbnQgaXNuJ3QgdXNlZCBpbiB0aGUgY29tcGlsZWQgdGVtcGxhdGUuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoaSA8JT0gZGF0YS51c2VyICU+IScsIHsgJ3ZhcmlhYmxlJzogJ2RhdGEnIH0pO1xuICogY29tcGlsZWQuc291cmNlO1xuICogLy8gPT4gZnVuY3Rpb24oZGF0YSkge1xuICogLy8gICB2YXIgX190LCBfX3AgPSAnJztcbiAqIC8vICAgX19wICs9ICdoaSAnICsgKChfX3QgPSAoIGRhdGEudXNlciApKSA9PSBudWxsID8gJycgOiBfX3QpICsgJyEnO1xuICogLy8gICByZXR1cm4gX19wO1xuICogLy8gfVxuICpcbiAqIC8vIFVzZSBjdXN0b20gdGVtcGxhdGUgZGVsaW1pdGVycy5cbiAqIF8udGVtcGxhdGVTZXR0aW5ncy5pbnRlcnBvbGF0ZSA9IC97eyhbXFxzXFxTXSs/KX19L2c7XG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyB7eyB1c2VyIH19IScpO1xuICogY29tcGlsZWQoeyAndXNlcic6ICdtdXN0YWNoZScgfSk7XG4gKiAvLyA9PiAnaGVsbG8gbXVzdGFjaGUhJ1xuICpcbiAqIC8vIFVzZSB0aGUgYHNvdXJjZWAgcHJvcGVydHkgdG8gaW5saW5lIGNvbXBpbGVkIHRlbXBsYXRlcyBmb3IgbWVhbmluZ2Z1bFxuICogLy8gbGluZSBudW1iZXJzIGluIGVycm9yIG1lc3NhZ2VzIGFuZCBzdGFjayB0cmFjZXMuXG4gKiBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnanN0LmpzJyksICdcXFxuICogICB2YXIgSlNUID0ge1xcXG4gKiAgICAgXCJtYWluXCI6ICcgKyBfLnRlbXBsYXRlKG1haW5UZXh0KS5zb3VyY2UgKyAnXFxcbiAqICAgfTtcXFxuICogJyk7XG4gKi9cbmZ1bmN0aW9uIHRlbXBsYXRlKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpIHtcbiAgLy8gQmFzZWQgb24gSm9obiBSZXNpZydzIGB0bXBsYCBpbXBsZW1lbnRhdGlvblxuICAvLyAoaHR0cDovL2Vqb2huLm9yZy9ibG9nL2phdmFzY3JpcHQtbWljcm8tdGVtcGxhdGluZy8pXG4gIC8vIGFuZCBMYXVyYSBEb2t0b3JvdmEncyBkb1QuanMgKGh0dHBzOi8vZ2l0aHViLmNvbS9vbGFkby9kb1QpLlxuICB2YXIgc2V0dGluZ3MgPSB0ZW1wbGF0ZVNldHRpbmdzLmltcG9ydHMuXy50ZW1wbGF0ZVNldHRpbmdzIHx8IHRlbXBsYXRlU2V0dGluZ3M7XG5cbiAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHN0cmluZywgb3B0aW9ucywgZ3VhcmQpKSB7XG4gICAgb3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgfVxuICBzdHJpbmcgPSB0b1N0cmluZyhzdHJpbmcpO1xuICBvcHRpb25zID0gYXNzaWduSW5XaXRoKHt9LCBvcHRpb25zLCBzZXR0aW5ncywgY3VzdG9tRGVmYXVsdHNBc3NpZ25Jbik7XG5cbiAgdmFyIGltcG9ydHMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMuaW1wb3J0cywgc2V0dGluZ3MuaW1wb3J0cywgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiksXG4gICAgICBpbXBvcnRzS2V5cyA9IGtleXMoaW1wb3J0cyksXG4gICAgICBpbXBvcnRzVmFsdWVzID0gYmFzZVZhbHVlcyhpbXBvcnRzLCBpbXBvcnRzS2V5cyk7XG5cbiAgdmFyIGlzRXNjYXBpbmcsXG4gICAgICBpc0V2YWx1YXRpbmcsXG4gICAgICBpbmRleCA9IDAsXG4gICAgICBpbnRlcnBvbGF0ZSA9IG9wdGlvbnMuaW50ZXJwb2xhdGUgfHwgcmVOb01hdGNoLFxuICAgICAgc291cmNlID0gXCJfX3AgKz0gJ1wiO1xuXG4gIC8vIENvbXBpbGUgdGhlIHJlZ2V4cCB0byBtYXRjaCBlYWNoIGRlbGltaXRlci5cbiAgdmFyIHJlRGVsaW1pdGVycyA9IFJlZ0V4cChcbiAgICAob3B0aW9ucy5lc2NhcGUgfHwgcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgIGludGVycG9sYXRlLnNvdXJjZSArICd8JyArXG4gICAgKGludGVycG9sYXRlID09PSByZUludGVycG9sYXRlID8gcmVFc1RlbXBsYXRlIDogcmVOb01hdGNoKS5zb3VyY2UgKyAnfCcgK1xuICAgIChvcHRpb25zLmV2YWx1YXRlIHx8IHJlTm9NYXRjaCkuc291cmNlICsgJ3wkJ1xuICAsICdnJyk7XG5cbiAgLy8gVXNlIGEgc291cmNlVVJMIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICAvLyBUaGUgc291cmNlVVJMIGdldHMgaW5qZWN0ZWQgaW50byB0aGUgc291cmNlIHRoYXQncyBldmFsLWVkLCBzbyBiZSBjYXJlZnVsXG4gIC8vIHdpdGggbG9va3VwIChpbiBjYXNlIG9mIGUuZy4gcHJvdG90eXBlIHBvbGx1dGlvbiksIGFuZCBzdHJpcCBuZXdsaW5lcyBpZiBhbnkuXG4gIC8vIEEgbmV3bGluZSB3b3VsZG4ndCBiZSBhIHZhbGlkIHNvdXJjZVVSTCBhbnl3YXksIGFuZCBpdCdkIGVuYWJsZSBjb2RlIGluamVjdGlvbi5cbiAgdmFyIHNvdXJjZVVSTCA9IGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3NvdXJjZVVSTCcpXG4gICAgPyAoJy8vIyBzb3VyY2VVUkw9JyArXG4gICAgICAgKG9wdGlvbnMuc291cmNlVVJMICsgJycpLnJlcGxhY2UoL1tcXHJcXG5dL2csICcgJykgK1xuICAgICAgICdcXG4nKVxuICAgIDogJyc7XG5cbiAgc3RyaW5nLnJlcGxhY2UocmVEZWxpbWl0ZXJzLCBmdW5jdGlvbihtYXRjaCwgZXNjYXBlVmFsdWUsIGludGVycG9sYXRlVmFsdWUsIGVzVGVtcGxhdGVWYWx1ZSwgZXZhbHVhdGVWYWx1ZSwgb2Zmc2V0KSB7XG4gICAgaW50ZXJwb2xhdGVWYWx1ZSB8fCAoaW50ZXJwb2xhdGVWYWx1ZSA9IGVzVGVtcGxhdGVWYWx1ZSk7XG5cbiAgICAvLyBFc2NhcGUgY2hhcmFjdGVycyB0aGF0IGNhbid0IGJlIGluY2x1ZGVkIGluIHN0cmluZyBsaXRlcmFscy5cbiAgICBzb3VyY2UgKz0gc3RyaW5nLnNsaWNlKGluZGV4LCBvZmZzZXQpLnJlcGxhY2UocmVVbmVzY2FwZWRTdHJpbmcsIGVzY2FwZVN0cmluZ0NoYXIpO1xuXG4gICAgLy8gUmVwbGFjZSBkZWxpbWl0ZXJzIHdpdGggc25pcHBldHMuXG4gICAgaWYgKGVzY2FwZVZhbHVlKSB7XG4gICAgICBpc0VzY2FwaW5nID0gdHJ1ZTtcbiAgICAgIHNvdXJjZSArPSBcIicgK1xcbl9fZShcIiArIGVzY2FwZVZhbHVlICsgXCIpICtcXG4nXCI7XG4gICAgfVxuICAgIGlmIChldmFsdWF0ZVZhbHVlKSB7XG4gICAgICBpc0V2YWx1YXRpbmcgPSB0cnVlO1xuICAgICAgc291cmNlICs9IFwiJztcXG5cIiArIGV2YWx1YXRlVmFsdWUgKyBcIjtcXG5fX3AgKz0gJ1wiO1xuICAgIH1cbiAgICBpZiAoaW50ZXJwb2xhdGVWYWx1ZSkge1xuICAgICAgc291cmNlICs9IFwiJyArXFxuKChfX3QgPSAoXCIgKyBpbnRlcnBvbGF0ZVZhbHVlICsgXCIpKSA9PSBudWxsID8gJycgOiBfX3QpICtcXG4nXCI7XG4gICAgfVxuICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoO1xuXG4gICAgLy8gVGhlIEpTIGVuZ2luZSBlbWJlZGRlZCBpbiBBZG9iZSBwcm9kdWN0cyBuZWVkcyBgbWF0Y2hgIHJldHVybmVkIGluXG4gICAgLy8gb3JkZXIgdG8gcHJvZHVjZSB0aGUgY29ycmVjdCBgb2Zmc2V0YCB2YWx1ZS5cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH0pO1xuXG4gIHNvdXJjZSArPSBcIic7XFxuXCI7XG5cbiAgLy8gSWYgYHZhcmlhYmxlYCBpcyBub3Qgc3BlY2lmaWVkIHdyYXAgYSB3aXRoLXN0YXRlbWVudCBhcm91bmQgdGhlIGdlbmVyYXRlZFxuICAvLyBjb2RlIHRvIGFkZCB0aGUgZGF0YSBvYmplY3QgdG8gdGhlIHRvcCBvZiB0aGUgc2NvcGUgY2hhaW4uXG4gIC8vIExpa2Ugd2l0aCBzb3VyY2VVUkwsIHdlIHRha2UgY2FyZSB0byBub3QgY2hlY2sgdGhlIG9wdGlvbidzIHByb3RvdHlwZSxcbiAgLy8gYXMgdGhpcyBjb25maWd1cmF0aW9uIGlzIGEgY29kZSBpbmplY3Rpb24gdmVjdG9yLlxuICB2YXIgdmFyaWFibGUgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMsICd2YXJpYWJsZScpICYmIG9wdGlvbnMudmFyaWFibGU7XG4gIGlmICghdmFyaWFibGUpIHtcbiAgICBzb3VyY2UgPSAnd2l0aCAob2JqKSB7XFxuJyArIHNvdXJjZSArICdcXG59XFxuJztcbiAgfVxuICAvLyBDbGVhbnVwIGNvZGUgYnkgc3RyaXBwaW5nIGVtcHR5IHN0cmluZ3MuXG4gIHNvdXJjZSA9IChpc0V2YWx1YXRpbmcgPyBzb3VyY2UucmVwbGFjZShyZUVtcHR5U3RyaW5nTGVhZGluZywgJycpIDogc291cmNlKVxuICAgIC5yZXBsYWNlKHJlRW1wdHlTdHJpbmdNaWRkbGUsICckMScpXG4gICAgLnJlcGxhY2UocmVFbXB0eVN0cmluZ1RyYWlsaW5nLCAnJDE7Jyk7XG5cbiAgLy8gRnJhbWUgY29kZSBhcyB0aGUgZnVuY3Rpb24gYm9keS5cbiAgc291cmNlID0gJ2Z1bmN0aW9uKCcgKyAodmFyaWFibGUgfHwgJ29iaicpICsgJykge1xcbicgK1xuICAgICh2YXJpYWJsZVxuICAgICAgPyAnJ1xuICAgICAgOiAnb2JqIHx8IChvYmogPSB7fSk7XFxuJ1xuICAgICkgK1xuICAgIFwidmFyIF9fdCwgX19wID0gJydcIiArXG4gICAgKGlzRXNjYXBpbmdcbiAgICAgICA/ICcsIF9fZSA9IF8uZXNjYXBlJ1xuICAgICAgIDogJydcbiAgICApICtcbiAgICAoaXNFdmFsdWF0aW5nXG4gICAgICA/ICcsIF9faiA9IEFycmF5LnByb3RvdHlwZS5qb2luO1xcbicgK1xuICAgICAgICBcImZ1bmN0aW9uIHByaW50KCkgeyBfX3AgKz0gX19qLmNhbGwoYXJndW1lbnRzLCAnJykgfVxcblwiXG4gICAgICA6ICc7XFxuJ1xuICAgICkgK1xuICAgIHNvdXJjZSArXG4gICAgJ3JldHVybiBfX3BcXG59JztcblxuICB2YXIgcmVzdWx0ID0gYXR0ZW1wdChmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24oaW1wb3J0c0tleXMsIHNvdXJjZVVSTCArICdyZXR1cm4gJyArIHNvdXJjZSlcbiAgICAgIC5hcHBseSh1bmRlZmluZWQsIGltcG9ydHNWYWx1ZXMpO1xuICB9KTtcblxuICAvLyBQcm92aWRlIHRoZSBjb21waWxlZCBmdW5jdGlvbidzIHNvdXJjZSBieSBpdHMgYHRvU3RyaW5nYCBtZXRob2Qgb3JcbiAgLy8gdGhlIGBzb3VyY2VgIHByb3BlcnR5IGFzIGEgY29udmVuaWVuY2UgZm9yIGlubGluaW5nIGNvbXBpbGVkIHRlbXBsYXRlcy5cbiAgcmVzdWx0LnNvdXJjZSA9IHNvdXJjZTtcbiAgaWYgKGlzRXJyb3IocmVzdWx0KSkge1xuICAgIHRocm93IHJlc3VsdDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCB0ZW1wbGF0ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGVtcGxhdGUuanMiLCJpbXBvcnQgY29weU9iamVjdCBmcm9tICcuL19jb3B5T2JqZWN0LmpzJztcbmltcG9ydCBjcmVhdGVBc3NpZ25lciBmcm9tICcuL19jcmVhdGVBc3NpZ25lci5qcyc7XG5pbXBvcnQga2V5c0luIGZyb20gJy4va2V5c0luLmpzJztcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCBpcyBsaWtlIGBfLmFzc2lnbkluYCBleGNlcHQgdGhhdCBpdCBhY2NlcHRzIGBjdXN0b21pemVyYFxuICogd2hpY2ggaXMgaW52b2tlZCB0byBwcm9kdWNlIHRoZSBhc3NpZ25lZCB2YWx1ZXMuIElmIGBjdXN0b21pemVyYCByZXR1cm5zXG4gKiBgdW5kZWZpbmVkYCwgYXNzaWdubWVudCBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYFxuICogaXMgaW52b2tlZCB3aXRoIGZpdmUgYXJndW1lbnRzOiAob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCwgc291cmNlKS5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgbXV0YXRlcyBgb2JqZWN0YC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAYWxpYXMgZXh0ZW5kV2l0aFxuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHsuLi5PYmplY3R9IHNvdXJjZXMgVGhlIHNvdXJjZSBvYmplY3RzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgYXNzaWduZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqIEBzZWUgXy5hc3NpZ25XaXRoXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlKSB7XG4gKiAgIHJldHVybiBfLmlzVW5kZWZpbmVkKG9ialZhbHVlKSA/IHNyY1ZhbHVlIDogb2JqVmFsdWU7XG4gKiB9XG4gKlxuICogdmFyIGRlZmF1bHRzID0gXy5wYXJ0aWFsUmlnaHQoXy5hc3NpZ25JbldpdGgsIGN1c3RvbWl6ZXIpO1xuICpcbiAqIGRlZmF1bHRzKHsgJ2EnOiAxIH0sIHsgJ2InOiAyIH0sIHsgJ2EnOiAzIH0pO1xuICogLy8gPT4geyAnYSc6IDEsICdiJzogMiB9XG4gKi9cbnZhciBhc3NpZ25JbldpdGggPSBjcmVhdGVBc3NpZ25lcihmdW5jdGlvbihvYmplY3QsIHNvdXJjZSwgc3JjSW5kZXgsIGN1c3RvbWl6ZXIpIHtcbiAgY29weU9iamVjdChzb3VyY2UsIGtleXNJbihzb3VyY2UpLCBvYmplY3QsIGN1c3RvbWl6ZXIpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFzc2lnbkluV2l0aDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXNzaWduSW5XaXRoLmpzIiwiaW1wb3J0IGFzc2lnblZhbHVlIGZyb20gJy4vX2Fzc2lnblZhbHVlLmpzJztcbmltcG9ydCBiYXNlQXNzaWduVmFsdWUgZnJvbSAnLi9fYmFzZUFzc2lnblZhbHVlLmpzJztcblxuLyoqXG4gKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IGlkZW50aWZpZXJzIHRvIGNvcHkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb3BpZWQgdmFsdWVzLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xuZnVuY3Rpb24gY29weU9iamVjdChzb3VyY2UsIHByb3BzLCBvYmplY3QsIGN1c3RvbWl6ZXIpIHtcbiAgdmFyIGlzTmV3ID0gIW9iamVjdDtcbiAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuXG4gICAgdmFyIG5ld1ZhbHVlID0gY3VzdG9taXplclxuICAgICAgPyBjdXN0b21pemVyKG9iamVjdFtrZXldLCBzb3VyY2Vba2V5XSwga2V5LCBvYmplY3QsIHNvdXJjZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKG5ld1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG5ld1ZhbHVlID0gc291cmNlW2tleV07XG4gICAgfVxuICAgIGlmIChpc05ldykge1xuICAgICAgYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2lnblZhbHVlKG9iamVjdCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvcHlPYmplY3Q7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzIiwiaW1wb3J0IGJhc2VBc3NpZ25WYWx1ZSBmcm9tICcuL19iYXNlQXNzaWduVmFsdWUuanMnO1xuaW1wb3J0IGVxIGZyb20gJy4vZXEuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEFzc2lnbnMgYHZhbHVlYCB0byBga2V5YCBvZiBgb2JqZWN0YCBpZiB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbm90IGVxdWl2YWxlbnRcbiAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHZhciBvYmpWYWx1ZSA9IG9iamVjdFtrZXldO1xuICBpZiAoIShoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBlcShvYmpWYWx1ZSwgdmFsdWUpKSB8fFxuICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcbiAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBhc3NpZ25WYWx1ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Fzc2lnblZhbHVlLmpzIiwiaW1wb3J0IGJhc2VJc05hdGl2ZSBmcm9tICcuL19iYXNlSXNOYXRpdmUuanMnO1xuaW1wb3J0IGdldFZhbHVlIGZyb20gJy4vX2dldFZhbHVlLmpzJztcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IGdldFZhbHVlKG9iamVjdCwga2V5KTtcbiAgcmV0dXJuIGJhc2VJc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0TmF0aXZlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0TmF0aXZlLmpzIiwiaW1wb3J0IGlzRnVuY3Rpb24gZnJvbSAnLi9pc0Z1bmN0aW9uLmpzJztcbmltcG9ydCBpc01hc2tlZCBmcm9tICcuL19pc01hc2tlZC5qcyc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5pbXBvcnQgdG9Tb3VyY2UgZnJvbSAnLi9fdG9Tb3VyY2UuanMnO1xuXG4vKipcbiAqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGBcbiAqIFtzeW50YXggY2hhcmFjdGVyc10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcGF0dGVybnMpLlxuICovXG52YXIgcmVSZWdFeHBDaGFyID0gL1tcXFxcXiQuKis/KClbXFxde318XS9nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaG9zdCBjb25zdHJ1Y3RvcnMgKFNhZmFyaSkuICovXG52YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBpZiBhIG1ldGhvZCBpcyBuYXRpdmUuICovXG52YXIgcmVJc05hdGl2ZSA9IFJlZ0V4cCgnXicgK1xuICBmdW5jVG9TdHJpbmcuY2FsbChoYXNPd25Qcm9wZXJ0eSkucmVwbGFjZShyZVJlZ0V4cENoYXIsICdcXFxcJCYnKVxuICAucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXFxcXCgpfCBmb3IgLis/KD89XFxcXFxcXSkvZywgJyQxLio/JykgKyAnJCdcbik7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNOYXRpdmVgIHdpdGhvdXQgYmFkIHNoaW0gY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzTmF0aXZlKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpIHx8IGlzTWFza2VkKHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcGF0dGVybiA9IGlzRnVuY3Rpb24odmFsdWUpID8gcmVJc05hdGl2ZSA6IHJlSXNIb3N0Q3RvcjtcbiAgcmV0dXJuIHBhdHRlcm4udGVzdCh0b1NvdXJjZSh2YWx1ZSkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNOYXRpdmU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNOYXRpdmUuanMiLCJpbXBvcnQgU3ltYm9sIGZyb20gJy4vX1N5bWJvbC5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZVxuICogW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VHZXRUYWdgIHdoaWNoIGlnbm9yZXMgYFN5bWJvbC50b1N0cmluZ1RhZ2AgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHJhdyBgdG9TdHJpbmdUYWdgLlxuICovXG5mdW5jdGlvbiBnZXRSYXdUYWcodmFsdWUpIHtcbiAgdmFyIGlzT3duID0gaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWcpLFxuICAgICAgdGFnID0gdmFsdWVbc3ltVG9TdHJpbmdUYWddO1xuXG4gIHRyeSB7XG4gICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdW5kZWZpbmVkO1xuICAgIHZhciB1bm1hc2tlZCA9IHRydWU7XG4gIH0gY2F0Y2ggKGUpIHt9XG5cbiAgdmFyIHJlc3VsdCA9IG5hdGl2ZU9iamVjdFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICBpZiAodW5tYXNrZWQpIHtcbiAgICBpZiAoaXNPd24pIHtcbiAgICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHRhZztcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0UmF3VGFnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UmF3VGFnLmpzIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyB1c2luZyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdFRvU3RyaW5nO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fb2JqZWN0VG9TdHJpbmcuanMiLCJpbXBvcnQgY29yZUpzRGF0YSBmcm9tICcuL19jb3JlSnNEYXRhLmpzJztcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IG1ldGhvZHMgbWFzcXVlcmFkaW5nIGFzIG5hdGl2ZS4gKi9cbnZhciBtYXNrU3JjS2V5ID0gKGZ1bmN0aW9uKCkge1xuICB2YXIgdWlkID0gL1teLl0rJC8uZXhlYyhjb3JlSnNEYXRhICYmIGNvcmVKc0RhdGEua2V5cyAmJiBjb3JlSnNEYXRhLmtleXMuSUVfUFJPVE8gfHwgJycpO1xuICByZXR1cm4gdWlkID8gKCdTeW1ib2woc3JjKV8xLicgKyB1aWQpIDogJyc7XG59KCkpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGl0cyBzb3VyY2UgbWFza2VkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgZnVuY2AgaXMgbWFza2VkLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzTWFza2VkKGZ1bmMpIHtcbiAgcmV0dXJuICEhbWFza1NyY0tleSAmJiAobWFza1NyY0tleSBpbiBmdW5jKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNNYXNrZWQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc01hc2tlZC5qcyIsImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb3ZlcnJlYWNoaW5nIGNvcmUtanMgc2hpbXMuICovXG52YXIgY29yZUpzRGF0YSA9IHJvb3RbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG5leHBvcnQgZGVmYXVsdCBjb3JlSnNEYXRhO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29yZUpzRGF0YS5qcyIsIi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jUHJvdG8gPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYGZ1bmNgIHRvIGl0cyBzb3VyY2UgY29kZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5mdW5jdGlvbiB0b1NvdXJjZShmdW5jKSB7XG4gIGlmIChmdW5jICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZ1bmNUb1N0cmluZy5jYWxsKGZ1bmMpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiAoZnVuYyArICcnKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG4gIHJldHVybiAnJztcbn1cblxuZXhwb3J0IGRlZmF1bHQgdG9Tb3VyY2U7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL190b1NvdXJjZS5qcyIsIi8qKlxuICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlKG9iamVjdCwga2V5KSB7XG4gIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRWYWx1ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFZhbHVlLmpzIiwiaW1wb3J0IGJhc2VSZXN0IGZyb20gJy4vX2Jhc2VSZXN0LmpzJztcbmltcG9ydCBpc0l0ZXJhdGVlQ2FsbCBmcm9tICcuL19pc0l0ZXJhdGVlQ2FsbC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA+IDEgPyBzb3VyY2VzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkLFxuICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiBjdXN0b21pemVyO1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9XG4gICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUFzc2lnbmVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlQXNzaWduZXIuanMiLCJpbXBvcnQgYXBwbHkgZnJvbSAnLi9fYXBwbHkuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggdHJhbnNmb3JtcyB0aGUgcmVzdCBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgcmVzdCBhcnJheSB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlclJlc3QoZnVuYywgc3RhcnQsIHRyYW5zZm9ybSkge1xuICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiBzdGFydCwgMCk7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gc3RhcnQsIDApLFxuICAgICAgICBhcnJheSA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgYXJyYXlbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcbiAgICB9XG4gICAgaW5kZXggPSAtMTtcbiAgICB2YXIgb3RoZXJBcmdzID0gQXJyYXkoc3RhcnQgKyAxKTtcbiAgICB3aGlsZSAoKytpbmRleCA8IHN0YXJ0KSB7XG4gICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgfVxuICAgIG90aGVyQXJnc1tzdGFydF0gPSB0cmFuc2Zvcm0oYXJyYXkpO1xuICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBvdmVyUmVzdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX292ZXJSZXN0LmpzIiwiaW1wb3J0IGJhc2VTZXRUb1N0cmluZyBmcm9tICcuL19iYXNlU2V0VG9TdHJpbmcuanMnO1xuaW1wb3J0IHNob3J0T3V0IGZyb20gJy4vX3Nob3J0T3V0LmpzJztcblxuLyoqXG4gKiBTZXRzIHRoZSBgdG9TdHJpbmdgIG1ldGhvZCBvZiBgZnVuY2AgdG8gcmV0dXJuIGBzdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdHJpbmcgVGhlIGB0b1N0cmluZ2AgcmVzdWx0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAqL1xudmFyIHNldFRvU3RyaW5nID0gc2hvcnRPdXQoYmFzZVNldFRvU3RyaW5nKTtcblxuZXhwb3J0IGRlZmF1bHQgc2V0VG9TdHJpbmc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zZXRUb1N0cmluZy5qcyIsImltcG9ydCBjb25zdGFudCBmcm9tICcuL2NvbnN0YW50LmpzJztcbmltcG9ydCBkZWZpbmVQcm9wZXJ0eSBmcm9tICcuL19kZWZpbmVQcm9wZXJ0eS5qcyc7XG5pbXBvcnQgaWRlbnRpdHkgZnJvbSAnLi9pZGVudGl0eS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldFRvU3RyaW5nYCB3aXRob3V0IHN1cHBvcnQgZm9yIGhvdCBsb29wIHNob3J0aW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdHJpbmcgVGhlIGB0b1N0cmluZ2AgcmVzdWx0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAqL1xudmFyIGJhc2VTZXRUb1N0cmluZyA9ICFkZWZpbmVQcm9wZXJ0eSA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgc3RyaW5nKSB7XG4gIHJldHVybiBkZWZpbmVQcm9wZXJ0eShmdW5jLCAndG9TdHJpbmcnLCB7XG4gICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgJ2VudW1lcmFibGUnOiBmYWxzZSxcbiAgICAndmFsdWUnOiBjb25zdGFudChzdHJpbmcpLFxuICAgICd3cml0YWJsZSc6IHRydWVcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBiYXNlU2V0VG9TdHJpbmc7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU2V0VG9TdHJpbmcuanMiLCIvKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHZhbHVlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDIuNC4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmV0dXJuIGZyb20gdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGNvbnN0YW50IGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgb2JqZWN0cyA9IF8udGltZXMoMiwgXy5jb25zdGFudCh7ICdhJzogMSB9KSk7XG4gKlxuICogY29uc29sZS5sb2cob2JqZWN0cyk7XG4gKiAvLyA9PiBbeyAnYSc6IDEgfSwgeyAnYSc6IDEgfV1cbiAqXG4gKiBjb25zb2xlLmxvZyhvYmplY3RzWzBdID09PSBvYmplY3RzWzFdKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gY29uc3RhbnQodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29uc3RhbnQ7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2NvbnN0YW50LmpzIiwiLyoqIFVzZWQgdG8gZGV0ZWN0IGhvdCBmdW5jdGlvbnMgYnkgbnVtYmVyIG9mIGNhbGxzIHdpdGhpbiBhIHNwYW4gb2YgbWlsbGlzZWNvbmRzLiAqL1xudmFyIEhPVF9DT1VOVCA9IDgwMCxcbiAgICBIT1RfU1BBTiA9IDE2O1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTm93ID0gRGF0ZS5ub3c7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQnbGwgc2hvcnQgb3V0IGFuZCBpbnZva2UgYGlkZW50aXR5YCBpbnN0ZWFkXG4gKiBvZiBgZnVuY2Agd2hlbiBpdCdzIGNhbGxlZCBgSE9UX0NPVU5UYCBvciBtb3JlIHRpbWVzIGluIGBIT1RfU1BBTmBcbiAqIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcmVzdHJpY3QuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBzaG9ydGFibGUgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIHNob3J0T3V0KGZ1bmMpIHtcbiAgdmFyIGNvdW50ID0gMCxcbiAgICAgIGxhc3RDYWxsZWQgPSAwO1xuXG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc3RhbXAgPSBuYXRpdmVOb3coKSxcbiAgICAgICAgcmVtYWluaW5nID0gSE9UX1NQQU4gLSAoc3RhbXAgLSBsYXN0Q2FsbGVkKTtcblxuICAgIGxhc3RDYWxsZWQgPSBzdGFtcDtcbiAgICBpZiAocmVtYWluaW5nID4gMCkge1xuICAgICAgaWYgKCsrY291bnQgPj0gSE9UX0NPVU5UKSB7XG4gICAgICAgIHJldHVybiBhcmd1bWVudHNbMF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvdW50ID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmMuYXBwbHkodW5kZWZpbmVkLCBhcmd1bWVudHMpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBzaG9ydE91dDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3Nob3J0T3V0LmpzIiwiaW1wb3J0IGFycmF5TGlrZUtleXMgZnJvbSAnLi9fYXJyYXlMaWtlS2V5cy5qcyc7XG5pbXBvcnQgYmFzZUtleXNJbiBmcm9tICcuL19iYXNlS2V5c0luLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5c0luKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXNJbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5c0luLmpzIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50aW1lc2Agd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzXG4gKiBvciBtYXggYXJyYXkgbGVuZ3RoIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KG4pO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShpbmRleCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVRpbWVzO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVRpbWVzLmpzIiwiaW1wb3J0IGJhc2VJc0FyZ3VtZW50cyBmcm9tICcuL19iYXNlSXNBcmd1bWVudHMuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA/IGJhc2VJc0FyZ3VtZW50cyA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJlxuICAgICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCAnY2FsbGVlJyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpc0FyZ3VtZW50cztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcmd1bWVudHMuanMiLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzQXJndW1lbnRzYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc0FyZ3VtZW50cyh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PSBhcmdzVGFnO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNBcmd1bWVudHM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNBcmd1bWVudHMuanMiLCJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcbmltcG9ydCBzdHViRmFsc2UgZnJvbSAnLi9zdHViRmFsc2UuanMnO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIEJ1ZmZlciA9IG1vZHVsZUV4cG9ydHMgPyByb290LkJ1ZmZlciA6IHVuZGVmaW5lZDtcblxuLyogQnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUlzQnVmZmVyID0gQnVmZmVyID8gQnVmZmVyLmlzQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4zLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgYnVmZmVyLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNCdWZmZXIobmV3IEJ1ZmZlcigyKSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgVWludDhBcnJheSgyKSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG52YXIgaXNCdWZmZXIgPSBuYXRpdmVJc0J1ZmZlciB8fCBzdHViRmFsc2U7XG5cbmV4cG9ydCBkZWZhdWx0IGlzQnVmZmVyO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0J1ZmZlci5qcyIsIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyBgZmFsc2VgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4xMy4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50aW1lcygyLCBfLnN0dWJGYWxzZSk7XG4gKiAvLyA9PiBbZmFsc2UsIGZhbHNlXVxuICovXG5mdW5jdGlvbiBzdHViRmFsc2UoKSB7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R1YkZhbHNlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zdHViRmFsc2UuanMiLCJpbXBvcnQgYmFzZUlzVHlwZWRBcnJheSBmcm9tICcuL19iYXNlSXNUeXBlZEFycmF5LmpzJztcbmltcG9ydCBiYXNlVW5hcnkgZnJvbSAnLi9fYmFzZVVuYXJ5LmpzJztcbmltcG9ydCBub2RlVXRpbCBmcm9tICcuL19ub2RlVXRpbC5qcyc7XG5cbi8qIE5vZGUuanMgaGVscGVyIHJlZmVyZW5jZXMuICovXG52YXIgbm9kZUlzVHlwZWRBcnJheSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzVHlwZWRBcnJheTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgdHlwZWQgYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShuZXcgVWludDhBcnJheSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkoW10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzVHlwZWRBcnJheSA9IG5vZGVJc1R5cGVkQXJyYXkgPyBiYXNlVW5hcnkobm9kZUlzVHlwZWRBcnJheSkgOiBiYXNlSXNUeXBlZEFycmF5O1xuXG5leHBvcnQgZGVmYXVsdCBpc1R5cGVkQXJyYXk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzVHlwZWRBcnJheS5qcyIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGlzTGVuZ3RoIGZyb20gJy4vaXNMZW5ndGguanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBkYXRhVmlld1RhZyA9ICdbb2JqZWN0IERhdGFWaWV3XScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIG9mIHR5cGVkIGFycmF5cy4gKi9cbnZhciB0eXBlZEFycmF5VGFncyA9IHt9O1xudHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQ4VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2ludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50OFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG50eXBlZEFycmF5VGFnc1thcmdzVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2FycmF5VGFnXSA9XG50eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG50eXBlZEFycmF5VGFnc1tkYXRhVmlld1RhZ10gPSB0eXBlZEFycmF5VGFnc1tkYXRlVGFnXSA9XG50eXBlZEFycmF5VGFnc1tlcnJvclRhZ10gPSB0eXBlZEFycmF5VGFnc1tmdW5jVGFnXSA9XG50eXBlZEFycmF5VGFnc1ttYXBUYWddID0gdHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9XG50eXBlZEFycmF5VGFnc1tvYmplY3RUYWddID0gdHlwZWRBcnJheVRhZ3NbcmVnZXhwVGFnXSA9XG50eXBlZEFycmF5VGFnc1tzZXRUYWddID0gdHlwZWRBcnJheVRhZ3Nbc3RyaW5nVGFnXSA9XG50eXBlZEFycmF5VGFnc1t3ZWFrTWFwVGFnXSA9IGZhbHNlO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmlzVHlwZWRBcnJheWAgd2l0aG91dCBOb2RlLmpzIG9wdGltaXphdGlvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNUeXBlZEFycmF5KHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmXG4gICAgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhIXR5cGVkQXJyYXlUYWdzW2Jhc2VHZXRUYWcodmFsdWUpXTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzVHlwZWRBcnJheTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc1R5cGVkQXJyYXkuanMiLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnVuYXJ5YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0b3JpbmcgbWV0YWRhdGEuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGNhcCBhcmd1bWVudHMgZm9yLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY2FwcGVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlVW5hcnkoZnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gZnVuYyh2YWx1ZSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VVbmFyeTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VVbmFyeS5qcyIsImltcG9ydCBmcmVlR2xvYmFsIGZyb20gJy4vX2ZyZWVHbG9iYWwuanMnO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGV4cG9ydHNgLiAqL1xudmFyIGZyZWVFeHBvcnRzID0gdHlwZW9mIGV4cG9ydHMgPT0gJ29iamVjdCcgJiYgZXhwb3J0cyAmJiAhZXhwb3J0cy5ub2RlVHlwZSAmJiBleHBvcnRzO1xuXG4vKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYG1vZHVsZWAuICovXG52YXIgZnJlZU1vZHVsZSA9IGZyZWVFeHBvcnRzICYmIHR5cGVvZiBtb2R1bGUgPT0gJ29iamVjdCcgJiYgbW9kdWxlICYmICFtb2R1bGUubm9kZVR5cGUgJiYgbW9kdWxlO1xuXG4vKiogRGV0ZWN0IHRoZSBwb3B1bGFyIENvbW1vbkpTIGV4dGVuc2lvbiBgbW9kdWxlLmV4cG9ydHNgLiAqL1xudmFyIG1vZHVsZUV4cG9ydHMgPSBmcmVlTW9kdWxlICYmIGZyZWVNb2R1bGUuZXhwb3J0cyA9PT0gZnJlZUV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgcHJvY2Vzc2AgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVQcm9jZXNzID0gbW9kdWxlRXhwb3J0cyAmJiBmcmVlR2xvYmFsLnByb2Nlc3M7XG5cbi8qKiBVc2VkIHRvIGFjY2VzcyBmYXN0ZXIgTm9kZS5qcyBoZWxwZXJzLiAqL1xudmFyIG5vZGVVdGlsID0gKGZ1bmN0aW9uKCkge1xuICB0cnkge1xuICAgIC8vIFVzZSBgdXRpbC50eXBlc2AgZm9yIE5vZGUuanMgMTArLlxuICAgIHZhciB0eXBlcyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlICYmIGZyZWVNb2R1bGUucmVxdWlyZSgndXRpbCcpLnR5cGVzO1xuXG4gICAgaWYgKHR5cGVzKSB7XG4gICAgICByZXR1cm4gdHlwZXM7XG4gICAgfVxuXG4gICAgLy8gTGVnYWN5IGBwcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKWAgZm9yIE5vZGUuanMgPCAxMC5cbiAgICByZXR1cm4gZnJlZVByb2Nlc3MgJiYgZnJlZVByb2Nlc3MuYmluZGluZyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nKCd1dGlsJyk7XG4gIH0gY2F0Y2ggKGUpIHt9XG59KCkpO1xuXG5leHBvcnQgZGVmYXVsdCBub2RlVXRpbDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25vZGVVdGlsLmpzIiwiaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuaW1wb3J0IGlzUHJvdG90eXBlIGZyb20gJy4vX2lzUHJvdG90eXBlLmpzJztcbmltcG9ydCBuYXRpdmVLZXlzSW4gZnJvbSAnLi9fbmF0aXZlS2V5c0luLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5rZXlzSW5gIHdoaWNoIGRvZXNuJ3QgdHJlYXQgc3BhcnNlIGFycmF5cyBhcyBkZW5zZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gYmFzZUtleXNJbihvYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdChvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXNJbihvYmplY3QpO1xuICB9XG4gIHZhciBpc1Byb3RvID0gaXNQcm90b3R5cGUob2JqZWN0KSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHtcbiAgICBpZiAoIShrZXkgPT0gJ2NvbnN0cnVjdG9yJyAmJiAoaXNQcm90byB8fCAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUtleXNJbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VLZXlzSW4uanMiLCIvKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZVxuICogW2BPYmplY3Qua2V5c2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZXhjZXB0IHRoYXQgaXQgaW5jbHVkZXMgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gbmF0aXZlS2V5c0luKG9iamVjdCkge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIGlmIChvYmplY3QgIT0gbnVsbCkge1xuICAgIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbmF0aXZlS2V5c0luO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbmF0aXZlS2V5c0luLmpzIiwiaW1wb3J0IGFwcGx5IGZyb20gJy4vX2FwcGx5LmpzJztcbmltcG9ydCBiYXNlUmVzdCBmcm9tICcuL19iYXNlUmVzdC5qcyc7XG5pbXBvcnQgaXNFcnJvciBmcm9tICcuL2lzRXJyb3IuanMnO1xuXG4vKipcbiAqIEF0dGVtcHRzIHRvIGludm9rZSBgZnVuY2AsIHJldHVybmluZyBlaXRoZXIgdGhlIHJlc3VsdCBvciB0aGUgY2F1Z2h0IGVycm9yXG4gKiBvYmplY3QuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gYGZ1bmNgIHdoZW4gaXQncyBpbnZva2VkLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhdHRlbXB0LlxuICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYGZ1bmNgIHJlc3VsdCBvciBlcnJvciBvYmplY3QuXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIHRocm93aW5nIGVycm9ycyBmb3IgaW52YWxpZCBzZWxlY3RvcnMuXG4gKiB2YXIgZWxlbWVudHMgPSBfLmF0dGVtcHQoZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAqICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICogfSwgJz5fPicpO1xuICpcbiAqIGlmIChfLmlzRXJyb3IoZWxlbWVudHMpKSB7XG4gKiAgIGVsZW1lbnRzID0gW107XG4gKiB9XG4gKi9cbnZhciBhdHRlbXB0ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgYXJncykge1xuICB0cnkge1xuICAgIHJldHVybiBhcHBseShmdW5jLCB1bmRlZmluZWQsIGFyZ3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGlzRXJyb3IoZSkgPyBlIDogbmV3IEVycm9yKGUpO1xuICB9XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgYXR0ZW1wdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXR0ZW1wdC5qcyIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGdldFByb3RvdHlwZSBmcm9tICcuL19nZXRQcm90b3R5cGUuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbnZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgdGhhdCBpcywgYW4gb2JqZWN0IGNyZWF0ZWQgYnkgdGhlXG4gKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjguMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yICYmXG4gICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQbGFpbk9iamVjdDtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNQbGFpbk9iamVjdC5qcyIsImltcG9ydCBvdmVyQXJnIGZyb20gJy4vX292ZXJBcmcuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBnZXRQcm90b3R5cGUgPSBvdmVyQXJnKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0UHJvdG90eXBlO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UHJvdG90eXBlLmpzIiwiaW1wb3J0IGFycmF5TWFwIGZyb20gJy4vX2FycmF5TWFwLmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy52YWx1ZXNgIGFuZCBgXy52YWx1ZXNJbmAgd2hpY2ggY3JlYXRlcyBhblxuICogYXJyYXkgb2YgYG9iamVjdGAgcHJvcGVydHkgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3BlcnR5IG5hbWVzXG4gKiBvZiBgcHJvcHNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VWYWx1ZXMob2JqZWN0LCBwcm9wcykge1xuICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgIHJldHVybiBvYmplY3Rba2V5XTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VWYWx1ZXM7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVmFsdWVzLmpzIiwiaW1wb3J0IGVxIGZyb20gJy4vZXEuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgYnkgYF8uZGVmYXVsdHNgIHRvIGN1c3RvbWl6ZSBpdHMgYF8uYXNzaWduSW5gIHVzZSB0byBhc3NpZ24gcHJvcGVydGllc1xuICogb2Ygc291cmNlIG9iamVjdHMgdG8gdGhlIGRlc3RpbmF0aW9uIG9iamVjdCBmb3IgYWxsIGRlc3RpbmF0aW9uIHByb3BlcnRpZXNcbiAqIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSBvYmpWYWx1ZSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXG4gKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSBzb3VyY2UgdmFsdWUuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHBhcmVudCBvYmplY3Qgb2YgYG9ialZhbHVlYC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzQXNzaWduSW4ob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCkge1xuICBpZiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgKGVxKG9ialZhbHVlLCBvYmplY3RQcm90b1trZXldKSAmJiAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSB7XG4gICAgcmV0dXJuIHNyY1ZhbHVlO1xuICB9XG4gIHJldHVybiBvYmpWYWx1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2N1c3RvbURlZmF1bHRzQXNzaWduSW4uanMiLCIvKiogVXNlZCB0byBlc2NhcGUgY2hhcmFjdGVycyBmb3IgaW5jbHVzaW9uIGluIGNvbXBpbGVkIHN0cmluZyBsaXRlcmFscy4gKi9cbnZhciBzdHJpbmdFc2NhcGVzID0ge1xuICAnXFxcXCc6ICdcXFxcJyxcbiAgXCInXCI6IFwiJ1wiLFxuICAnXFxuJzogJ24nLFxuICAnXFxyJzogJ3InLFxuICAnXFx1MjAyOCc6ICd1MjAyOCcsXG4gICdcXHUyMDI5JzogJ3UyMDI5J1xufTtcblxuLyoqXG4gKiBVc2VkIGJ5IGBfLnRlbXBsYXRlYCB0byBlc2NhcGUgY2hhcmFjdGVycyBmb3IgaW5jbHVzaW9uIGluIGNvbXBpbGVkIHN0cmluZyBsaXRlcmFscy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGNociBUaGUgbWF0Y2hlZCBjaGFyYWN0ZXIgdG8gZXNjYXBlLlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgZXNjYXBlZCBjaGFyYWN0ZXIuXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZVN0cmluZ0NoYXIoY2hyKSB7XG4gIHJldHVybiAnXFxcXCcgKyBzdHJpbmdFc2NhcGVzW2Nocl07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGVzY2FwZVN0cmluZ0NoYXI7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lc2NhcGVTdHJpbmdDaGFyLmpzIiwiaW1wb3J0IGFycmF5TGlrZUtleXMgZnJvbSAnLi9fYXJyYXlMaWtlS2V5cy5qcyc7XG5pbXBvcnQgYmFzZUtleXMgZnJvbSAnLi9fYmFzZUtleXMuanMnO1xuaW1wb3J0IGlzQXJyYXlMaWtlIGZyb20gJy4vaXNBcnJheUxpa2UuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLiBTZWUgdGhlXG4gKiBbRVMgc3BlY10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5cyhuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJ10gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqXG4gKiBfLmtleXMoJ2hpJyk7XG4gKiAvLyA9PiBbJzAnLCAnMSddXG4gKi9cbmZ1bmN0aW9uIGtleXMob2JqZWN0KSB7XG4gIHJldHVybiBpc0FycmF5TGlrZShvYmplY3QpID8gYXJyYXlMaWtlS2V5cyhvYmplY3QpIDogYmFzZUtleXMob2JqZWN0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQga2V5cztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2V5cy5qcyIsImltcG9ydCBpc1Byb3RvdHlwZSBmcm9tICcuL19pc1Byb3RvdHlwZS5qcyc7XG5pbXBvcnQgbmF0aXZlS2V5cyBmcm9tICcuL19uYXRpdmVLZXlzLmpzJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5rZXlzYCB3aGljaCBkb2Vzbid0IHRyZWF0IHNwYXJzZSBhcnJheXMgYXMgZGVuc2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VLZXlzKG9iamVjdCkge1xuICBpZiAoIWlzUHJvdG90eXBlKG9iamVjdCkpIHtcbiAgICByZXR1cm4gbmF0aXZlS2V5cyhvYmplY3QpO1xuICB9XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIE9iamVjdChvYmplY3QpKSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpICYmIGtleSAhPSAnY29uc3RydWN0b3InKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlS2V5cztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VLZXlzLmpzIiwiaW1wb3J0IG92ZXJBcmcgZnJvbSAnLi9fb3ZlckFyZy5qcyc7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVLZXlzID0gb3ZlckFyZyhPYmplY3Qua2V5cywgT2JqZWN0KTtcblxuZXhwb3J0IGRlZmF1bHQgbmF0aXZlS2V5cztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXMuanMiLCJpbXBvcnQgZXNjYXBlIGZyb20gJy4vZXNjYXBlLmpzJztcbmltcG9ydCByZUVzY2FwZSBmcm9tICcuL19yZUVzY2FwZS5qcyc7XG5pbXBvcnQgcmVFdmFsdWF0ZSBmcm9tICcuL19yZUV2YWx1YXRlLmpzJztcbmltcG9ydCByZUludGVycG9sYXRlIGZyb20gJy4vX3JlSW50ZXJwb2xhdGUuanMnO1xuXG4vKipcbiAqIEJ5IGRlZmF1bHQsIHRoZSB0ZW1wbGF0ZSBkZWxpbWl0ZXJzIHVzZWQgYnkgbG9kYXNoIGFyZSBsaWtlIHRob3NlIGluXG4gKiBlbWJlZGRlZCBSdWJ5IChFUkIpIGFzIHdlbGwgYXMgRVMyMDE1IHRlbXBsYXRlIHN0cmluZ3MuIENoYW5nZSB0aGVcbiAqIGZvbGxvd2luZyB0ZW1wbGF0ZSBzZXR0aW5ncyB0byB1c2UgYWx0ZXJuYXRpdmUgZGVsaW1pdGVycy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHR5cGUge09iamVjdH1cbiAqL1xudmFyIHRlbXBsYXRlU2V0dGluZ3MgPSB7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZGV0ZWN0IGBkYXRhYCBwcm9wZXJ0eSB2YWx1ZXMgdG8gYmUgSFRNTC1lc2NhcGVkLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAqIEB0eXBlIHtSZWdFeHB9XG4gICAqL1xuICAnZXNjYXBlJzogcmVFc2NhcGUsXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZGV0ZWN0IGNvZGUgdG8gYmUgZXZhbHVhdGVkLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAqIEB0eXBlIHtSZWdFeHB9XG4gICAqL1xuICAnZXZhbHVhdGUnOiByZUV2YWx1YXRlLFxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGRldGVjdCBgZGF0YWAgcHJvcGVydHkgdmFsdWVzIHRvIGluamVjdC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgKi9cbiAgJ2ludGVycG9sYXRlJzogcmVJbnRlcnBvbGF0ZSxcblxuICAvKipcbiAgICogVXNlZCB0byByZWZlcmVuY2UgdGhlIGRhdGEgb2JqZWN0IGluIHRoZSB0ZW1wbGF0ZSB0ZXh0LlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICAndmFyaWFibGUnOiAnJyxcblxuICAvKipcbiAgICogVXNlZCB0byBpbXBvcnQgdmFyaWFibGVzIGludG8gdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICAnaW1wb3J0cyc6IHtcblxuICAgIC8qKlxuICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBgbG9kYXNoYCBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3MuaW1wb3J0c1xuICAgICAqIEB0eXBlIHtGdW5jdGlvbn1cbiAgICAgKi9cbiAgICAnXyc6IHsgJ2VzY2FwZSc6IGVzY2FwZSB9XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHRlbXBsYXRlU2V0dGluZ3M7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RlbXBsYXRlU2V0dGluZ3MuanMiLCJpbXBvcnQgZXNjYXBlSHRtbENoYXIgZnJvbSAnLi9fZXNjYXBlSHRtbENoYXIuanMnO1xuaW1wb3J0IHRvU3RyaW5nIGZyb20gJy4vdG9TdHJpbmcuanMnO1xuXG4vKiogVXNlZCB0byBtYXRjaCBIVE1MIGVudGl0aWVzIGFuZCBIVE1MIGNoYXJhY3RlcnMuICovXG52YXIgcmVVbmVzY2FwZWRIdG1sID0gL1smPD5cIiddL2csXG4gICAgcmVIYXNVbmVzY2FwZWRIdG1sID0gUmVnRXhwKHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UpO1xuXG4vKipcbiAqIENvbnZlcnRzIHRoZSBjaGFyYWN0ZXJzIFwiJlwiLCBcIjxcIiwgXCI+XCIsICdcIicsIGFuZCBcIidcIiBpbiBgc3RyaW5nYCB0byB0aGVpclxuICogY29ycmVzcG9uZGluZyBIVE1MIGVudGl0aWVzLlxuICpcbiAqICoqTm90ZToqKiBObyBvdGhlciBjaGFyYWN0ZXJzIGFyZSBlc2NhcGVkLiBUbyBlc2NhcGUgYWRkaXRpb25hbFxuICogY2hhcmFjdGVycyB1c2UgYSB0aGlyZC1wYXJ0eSBsaWJyYXJ5IGxpa2UgW19oZV9dKGh0dHBzOi8vbXRocy5iZS9oZSkuXG4gKlxuICogVGhvdWdoIHRoZSBcIj5cIiBjaGFyYWN0ZXIgaXMgZXNjYXBlZCBmb3Igc3ltbWV0cnksIGNoYXJhY3RlcnMgbGlrZVxuICogXCI+XCIgYW5kIFwiL1wiIGRvbid0IG5lZWQgZXNjYXBpbmcgaW4gSFRNTCBhbmQgaGF2ZSBubyBzcGVjaWFsIG1lYW5pbmdcbiAqIHVubGVzcyB0aGV5J3JlIHBhcnQgb2YgYSB0YWcgb3IgdW5xdW90ZWQgYXR0cmlidXRlIHZhbHVlLiBTZWVcbiAqIFtNYXRoaWFzIEJ5bmVucydzIGFydGljbGVdKGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9hbWJpZ3VvdXMtYW1wZXJzYW5kcylcbiAqICh1bmRlciBcInNlbWktcmVsYXRlZCBmdW4gZmFjdFwiKSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFdoZW4gd29ya2luZyB3aXRoIEhUTUwgeW91IHNob3VsZCBhbHdheXNcbiAqIFtxdW90ZSBhdHRyaWJ1dGUgdmFsdWVzXShodHRwOi8vd29ua28uY29tL3Bvc3QvaHRtbC1lc2NhcGluZykgdG8gcmVkdWNlXG4gKiBYU1MgdmVjdG9ycy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgU3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gW3N0cmluZz0nJ10gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIHN0cmluZy5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5lc2NhcGUoJ2ZyZWQsIGJhcm5leSwgJiBwZWJibGVzJyk7XG4gKiAvLyA9PiAnZnJlZCwgYmFybmV5LCAmYW1wOyBwZWJibGVzJ1xuICovXG5mdW5jdGlvbiBlc2NhcGUoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gIHJldHVybiAoc3RyaW5nICYmIHJlSGFzVW5lc2NhcGVkSHRtbC50ZXN0KHN0cmluZykpXG4gICAgPyBzdHJpbmcucmVwbGFjZShyZVVuZXNjYXBlZEh0bWwsIGVzY2FwZUh0bWxDaGFyKVxuICAgIDogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBlc2NhcGU7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2VzY2FwZS5qcyIsImltcG9ydCBiYXNlUHJvcGVydHlPZiBmcm9tICcuL19iYXNlUHJvcGVydHlPZi5qcyc7XG5cbi8qKiBVc2VkIHRvIG1hcCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXRpZXMuICovXG52YXIgaHRtbEVzY2FwZXMgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmIzM5Oydcbn07XG5cbi8qKlxuICogVXNlZCBieSBgXy5lc2NhcGVgIHRvIGNvbnZlcnQgY2hhcmFjdGVycyB0byBIVE1MIGVudGl0aWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hyIFRoZSBtYXRjaGVkIGNoYXJhY3RlciB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBlc2NhcGVkIGNoYXJhY3Rlci5cbiAqL1xudmFyIGVzY2FwZUh0bWxDaGFyID0gYmFzZVByb3BlcnR5T2YoaHRtbEVzY2FwZXMpO1xuXG5leHBvcnQgZGVmYXVsdCBlc2NhcGVIdG1sQ2hhcjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2VzY2FwZUh0bWxDaGFyLmpzIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wcm9wZXJ0eU9mYCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUHJvcGVydHlPZihvYmplY3QpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGtleSkge1xuICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlUHJvcGVydHlPZjtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VQcm9wZXJ0eU9mLmpzIiwiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuaW1wb3J0IGFycmF5TWFwIGZyb20gJy4vX2FycmF5TWFwLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5pbXBvcnQgaXNTeW1ib2wgZnJvbSAnLi9pc1N5bWJvbC5qcyc7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIElORklOSVRZID0gMSAvIDA7XG5cbi8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xudmFyIHN5bWJvbFByb3RvID0gU3ltYm9sID8gU3ltYm9sLnByb3RvdHlwZSA6IHVuZGVmaW5lZCxcbiAgICBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udG9TdHJpbmcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udG9TdHJpbmdgIHdoaWNoIGRvZXNuJ3QgY29udmVydCBudWxsaXNoXG4gKiB2YWx1ZXMgdG8gZW1wdHkgc3RyaW5ncy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHZhbHVlKSB7XG4gIC8vIEV4aXQgZWFybHkgZm9yIHN0cmluZ3MgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBoaXQgaW4gc29tZSBlbnZpcm9ubWVudHMuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgLy8gUmVjdXJzaXZlbHkgY29udmVydCB2YWx1ZXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyAnJztcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHN5bWJvbFRvU3RyaW5nID8gc3ltYm9sVG9TdHJpbmcuY2FsbCh2YWx1ZSkgOiAnJztcbiAgfVxuICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VUb1N0cmluZztcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUb1N0cmluZy5qcyIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN5bWJvbGAgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN5bWJvbCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU3ltYm9sKFN5bWJvbC5pdGVyYXRvcik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1N5bWJvbCgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XG4gICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gc3ltYm9sVGFnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNTeW1ib2w7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzU3ltYm9sLmpzIiwiLyoqIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbnZhciByZUVzY2FwZSA9IC88JS0oW1xcc1xcU10rPyklPi9nO1xuXG5leHBvcnQgZGVmYXVsdCByZUVzY2FwZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlRXNjYXBlLmpzIiwiLyoqIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbnZhciByZUV2YWx1YXRlID0gLzwlKFtcXHNcXFNdKz8pJT4vZztcblxuZXhwb3J0IGRlZmF1bHQgcmVFdmFsdWF0ZTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlRXZhbHVhdGUuanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgSW1hZ2VSZW5kZXJlciBmcm9tICcuL0ltYWdlUmVuZGVyZXInXG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlUmVuZGVyZXJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9JbWFnZVJlbmRlcmVyL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IFRlbXBsYXRlUmVuZGVyZXIgZnJvbSAnLi4vVGVtcGxhdGVSZW5kZXJlcidcblxuLyoqXG4gKiBOdW1iZXJzIEVkaXRvclxuICpcbiAqIEhhbmRsZSBudW1iZXIgdmFsdWVzIEVkaXRpbmdcbiAqXG4gKiB8IE5hbWUgICAgICAgICAgICAgICAgICBcdHwgRGVmYXVsdCAgICAgXHR8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHR8Oi0tLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKmltYWdlUmVuZGVyZXJXaWR0aCoqICAgfCAyOHB4ICAgIHwgaW1hZ2Ugd2lkdGhcbiAqIHwgKippbWFnZVJlbmRlcmVySGVpZ2h0KiogICB8IDI4cHggICAgfCBpbWFnZSBoZWlnaHRcbiAqIHwgKippbWFnZVJlbmRlcmVyTGlzdCoqICAgICAgIHwge30gIFx0fCBhIGxpc3Qgb2Ygd2hpY2ggbWFwcyBpbWFnZXMgd2l0aCBjZWxsIHZhbHVlcyBhcyBKU09OIG9yIHBsYWluIEpTIG9iamVjdFxuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKlxuICogQHNlZSBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjE1I3RlbXBsYXRlXG4gKi9cbmNsYXNzIEltYWdlUmVuZGVyZXIgZXh0ZW5kcyBUZW1wbGF0ZVJlbmRlcmVyIHtcbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICByZWZyZXNoKHBhcmFtcywgaXNJbml0KSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbXMudmFsdWVcbiAgICBjb25zdCBpbWFnZVdpZHRoID0gdGhpcy5nZXRPcHRpb24oJ2ltYWdlUmVuZGVyZXJXaWR0aCcsIHBhcmFtcywgJzI4cHgnKVxuICAgIGNvbnN0IGltYWdlSGVpZ2h0ID0gdGhpcy5nZXRPcHRpb24oJ2ltYWdlUmVuZGVyZXJIZWlnaHQnLCBwYXJhbXMsICcyOHB4JylcbiAgICBsZXQgaW1hZ2VMaXN0ID0gdGhpcy5nZXRPcHRpb24oJ2ltYWdlUmVuZGVyZXJMaXN0JywgcGFyYW1zKVxuXG4gICAgdHJ5IHtcbiAgICAgIGltYWdlTGlzdCA9IEpTT04ucGFyc2UoaW1hZ2VMaXN0KVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGltYWdlTGlzdCA9IGltYWdlTGlzdCB8fCB7fVxuICAgIH1cblxuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvdHlwZS1idWlsdGlucyAqL1xuICAgIGlmIChpbWFnZUxpc3QgJiYgaW1hZ2VMaXN0Lmhhc093blByb3BlcnR5KHZhbHVlKSkge1xuICAgICAgcGFyYW1zLnJlbmRlclRlbXBsYXRlID0gLypodG1sKi8gYFxuICAgICAgICA8aW1nIFxuICAgICAgICAgIHNyYz1cIiR7aW1hZ2VMaXN0W3BhcmFtcy52YWx1ZV19XCIgXG4gICAgICAgICAgd2lkdGg9XCIke2ltYWdlV2lkdGh9XCJcbiAgICAgICAgICBoZWlnaHQ9XCIke2ltYWdlSGVpZ2h0fVwiICBcbiAgICAgICAgLz5cbiAgICAgIGBcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zLnJlbmRlclRlbXBsYXRlID0gdmFsdWVcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIucmVmcmVzaChwYXJhbXMsIGlzSW5pdClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBJbWFnZVJlbmRlcmVyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvSW1hZ2VSZW5kZXJlci9JbWFnZVJlbmRlcmVyLmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IERhdGVUaW1lRmlsdGVyIGZyb20gJy4vRGF0ZVRpbWVGaWx0ZXInXG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lRmlsdGVyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvRGF0ZVRpbWVGaWx0ZXIvaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgeyBhdXRvYmluZCwgb3ZlcnJpZGUsIHJlYWRvbmx5IH0gZnJvbSAnY29yZS1kZWNvcmF0b3JzJ1xuaW1wb3J0IHV0Y1RvWm9uZWRUaW1lIGZyb20gJ2RhdGUtZm5zLXR6L3V0Y1RvWm9uZWRUaW1lJ1xuaW1wb3J0IHsgd2l0aEV2ZW50c01peGluIH0gZnJvbSAnLi4vRXZlbnRzTWl4aW4nXG5pbXBvcnQgRGF0ZVRpbWVJbnB1dCBmcm9tICcuLi9EYXRlVGltZUlucHV0J1xuaW1wb3J0IENvbXBvbmVudCBmcm9tICcuLi9Db21wb25lbnQnXG5cbmNvbnN0IFRPS0VOUyA9IHtcbiAgVE9LRU5fRVFVQUw6ICdlcXVhbHMnLFxuICBUT0tFTl9OT1RfRVFVQUw6ICdub3RFcXVhbCcsXG4gIFRPS0VOX0xFU1M6ICdsZXNzVGhhbicsXG4gIFRPS0VOX0dSRUFURVI6ICdncmVhdGVyVGhhbicsXG4gIFRPS0VOX1JBTkdFOiAnaW5SYW5nZScsXG4gIFRPS0VOX0FORDogJ0FORCcsXG4gIFRPS0VOX09SOiAnT1InLFxufVxuXG5Ad2l0aEV2ZW50c01peGluXG5jbGFzcyBDb25kaXRpb25QYW5lbCBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBDb25zdGFudCB3aGljaCBkZXNjcmliZXMgdGhlIGV2ZW50IG5hbWUgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gdGhlIG9wdGlvblxuICAgKiBzdGF0ZSBpcyBjaGFuZ2VkXG4gICAqXG4gICAqIEB0eXBlIHtTdHJpbmd9XG4gICAqL1xuICBAcmVhZG9ubHlcbiAgc3RhdGljIE9OX0NPTkRJVElPTl9DSEFOR0VEID0gJ0NvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VEJ1xuICAvKipcbiAgICogVGhlIG9wdGlvbiBzdGF0ZVxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgQHJlYWRvbmx5XG4gIHN0YXRlID0ge1xuICAgIHR5cGU6IFRPS0VOUy5UT0tFTl9FUVVBTCxcbiAgICBmaWx0ZXI6IG51bGwsXG4gICAgZmlsdGVyVG86IG51bGwsXG4gIH1cblxuICAvKipcbiAgICogQHR5cGUge0RhdGVUaW1lSW5wdXR9XG4gICAqL1xuICBfZmlsdGVyVGltZUlucHV0ID0gbmV3IERhdGVUaW1lSW5wdXQoKVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7RGF0ZVRpbWVJbnB1dH1cbiAgICovXG4gIF9maWx0ZXJUb0RhdGVUaW1lSW5wdXQgPSBuZXcgRGF0ZVRpbWVJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIGVuYWJsZWQgZmlsdGVyIHR5cGVzXG4gICAqXG4gICAqIEB0eXBlIHtBcnJheX1cbiAgICovXG4gIF9maWx0ZXJPcHRpb25zID0gW11cblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgZW5hYmxlZCBmaWx0ZXIgdHlwZVxuICAgKlxuICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgKi9cbiAgX2RlZmF1bHRPcHRpb24gPSAtMVxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBpbml0KHBhcmFtcykge1xuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHBhcmFtcy5hcGkuZ3JpZE9wdGlvbnNXcmFwcGVyLmdldExvY2FsZVRleHRGdW5jKClcblxuICAgIHRoaXMuX2ZpbHRlck9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbignZmlsdGVyT3B0aW9ucycsIHBhcmFtcywgW1xuICAgICAgVE9LRU5TLlRPS0VOX0VRVUFMLFxuICAgICAgVE9LRU5TLlRPS0VOX05PVF9FUVVBTCxcbiAgICAgIFRPS0VOUy5UT0tFTl9MRVNTLFxuICAgICAgVE9LRU5TLlRPS0VOX0dSRUFURVIsXG4gICAgICBUT0tFTlMuVE9LRU5fUkFOR0UsXG4gICAgXSlcblxuICAgIHRoaXMuX2RlZmF1bHRPcHRpb24gPSB0aGlzLmdldE9wdGlvbihcbiAgICAgICdkZWZhdWx0T3B0aW9uJyxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHRoaXMuX2ZpbHRlck9wdGlvbnMuaW5kZXhPZihUT0tFTlMuVE9LRU5fRVFVQUwpID4gLTFcbiAgICAgICAgPyBUT0tFTlMuVE9LRU5fRVFVQUxcbiAgICAgICAgOiB0aGlzLl9maWx0ZXJPcHRpb25zWzBdXG4gICAgKVxuXG4gICAgdGhpcy5zdGF0ZS50eXBlID0gdGhpcy5fZGVmYXVsdE9wdGlvblxuXG4gICAgY29uc3Qgb3B0aW9uc1RyYW5zbGF0aW9ucyA9IHtcbiAgICAgIFtUT0tFTlMuVE9LRU5fRVFVQUxdOiB0cmFuc2xhdGUoVE9LRU5TLlRPS0VOX0VRVUFMLCAnRXF1YWxzJyksXG4gICAgICBbVE9LRU5TLlRPS0VOX05PVF9FUVVBTF06IHRyYW5zbGF0ZShUT0tFTlMuVE9LRU5fRVFVQUwsICdOb3QgZXF1YWwnKSxcbiAgICAgIFtUT0tFTlMuVE9LRU5fTEVTU106IHRyYW5zbGF0ZShUT0tFTlMuVE9LRU5fTEVTUywgJ0xlc3MgdGhhbicpLFxuICAgICAgW1RPS0VOUy5UT0tFTl9HUkVBVEVSXTogdHJhbnNsYXRlKFRPS0VOUy5UT0tFTl9HUkVBVEVSLCAnR3JlYXRlciB0aGFuJyksXG4gICAgICBbVE9LRU5TLlRPS0VOX1JBTkdFXTogdHJhbnNsYXRlKFRPS0VOUy5UT0tFTl9SQU5HRSwgJ0luIHJhbmdlJyksXG4gICAgfVxuXG4gICAgdGhpcy5fZ3VpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB0aGlzLl9ndWkuY2xhc3NOYW1lID0gJ2FnLWZpbHRlci1ib2R5LXdyYXBwZXInXG4gICAgdGhpcy5fZ3VpLmlubmVySFRNTCA9IC8qIGh0bWwgKi8gYFxuICAgICAgPHNlbGVjdCBjbGFzcz1cImFnLWZpbHRlci1zZWxlY3RcIiAgJHtcbiAgICAgICAgdGhpcy5fZmlsdGVyT3B0aW9ucy5sZW5ndGggPT09IDEgPyAnZGlzYWJsZWQnIDogJydcbiAgICAgIH0+XG4gICAgICAgICR7dGhpcy5fZmlsdGVyT3B0aW9ucy5tYXAoXG4gICAgICAgICAgb3B0aW9uID0+IC8qIGh0bWwgKi8gYFxuICAgICAgICAgIDxvcHRpb24gXG4gICAgICAgICAgICB2YWx1ZT1cIiR7b3B0aW9ufVwiIFxuICAgICAgICAgICAgJHtvcHRpb24gPT09IHRoaXMuX2RlZmF1bHRPcHRpb24gPyAnc2VsZWN0ZWQnIDogJyd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgICAke29wdGlvbnNUcmFuc2xhdGlvbnNbb3B0aW9uXX1cbiAgICAgICAgICA8L29wdGlvbj5gXG4gICAgICAgICl9XG4gICAgICA8L3NlbGVjdD5cbiAgICAgIDxkaXYgY2xhc3M9XCJhZy1maWx0ZXItYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWctZmlsdGVyLWRhdGUtZnJvbVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFnLWZpbHRlci1kYXRlLXRvIGFnLWhpZGRlblwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGBcblxuICAgIHRoaXMuX2ZpbHRlclRpbWVJbnB1dC5pbml0KHBhcmFtcylcbiAgICB0aGlzLl9maWx0ZXJUaW1lSW5wdXQub24oRGF0ZVRpbWVJbnB1dC5PTl9EQVRFX0NIQU5HRUQsIHNlbGVjdGVkRGF0ZSA9PiB7XG4gICAgICB0aGlzLnN0YXRlLmZpbHRlciA9IHNlbGVjdGVkRGF0ZVxuICAgICAgdGhpcy5ub3RpZnkoQ29uZGl0aW9uUGFuZWwuT05fQ09ORElUSU9OX0NIQU5HRUQsIHRoaXMuc3RhdGUpXG4gICAgfSlcblxuICAgIHRoaXMuX2ZpbHRlclRvRGF0ZVRpbWVJbnB1dC5pbml0KHBhcmFtcylcbiAgICB0aGlzLl9maWx0ZXJUb0RhdGVUaW1lSW5wdXQub24oXG4gICAgICBEYXRlVGltZUlucHV0Lk9OX0RBVEVfQ0hBTkdFRCxcbiAgICAgIHNlbGVjdGVkRGF0ZSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGUuZmlsdGVyVG8gPSBzZWxlY3RlZERhdGVcbiAgICAgICAgdGhpcy5ub3RpZnkoQ29uZGl0aW9uUGFuZWwuT05fQ09ORElUSU9OX0NIQU5HRUQsIHRoaXMuc3RhdGUpXG4gICAgICB9XG4gICAgKVxuXG4gICAgdGhpcy5fZ3VpXG4gICAgICAucXVlcnlTZWxlY3RvcignLmFnLWZpbHRlci1kYXRlLWZyb20nKVxuICAgICAgLmFwcGVuZENoaWxkKHRoaXMuX2ZpbHRlclRpbWVJbnB1dC5nZXRHdWkoKSlcbiAgICB0aGlzLl9ndWlcbiAgICAgIC5xdWVyeVNlbGVjdG9yKCcuYWctZmlsdGVyLWRhdGUtdG8nKVxuICAgICAgLmFwcGVuZENoaWxkKHRoaXMuX2ZpbHRlclRvRGF0ZVRpbWVJbnB1dC5nZXRHdWkoKSlcblxuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMuX2d1aS5xdWVyeVNlbGVjdG9yKCcuYWctZmlsdGVyLXNlbGVjdCcpXG4gICAgc2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX29uVHlwZUNoYW5nZSlcblxuICAgIHRoaXMuc2V0U3RhdGUodGhpcy5fc3RhdGUpXG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBkZXN0cm95KCkge1xuICAgIHRoaXMub2ZmKENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VEKVxuICAgIHRoaXMuX2ZpbHRlclRpbWVJbnB1dC5kZXN0cm95KClcbiAgICB0aGlzLl9maWx0ZXJUb0RhdGVUaW1lSW5wdXQuZGVzdHJveSgpXG4gICAgdGhpcy5fZ3VpXG4gICAgICAucXVlcnlTZWxlY3RvcignLmFnLWZpbHRlci1zZWxlY3QnKVxuICAgICAgLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX29uVHlwZUNoYW5nZSlcbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc3RhdGVcbiAgICovXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuc3RhdGUuZmlsdGVyID0gbnVsbFxuICAgIHRoaXMuc3RhdGUuZmlsdGVyVG8gPSBudWxsXG4gICAgdGhpcy5fZmlsdGVyVGltZUlucHV0LnJlc2V0KClcbiAgICB0aGlzLl9maWx0ZXJUb0RhdGVUaW1lSW5wdXQucmVzZXQoKVxuXG4gICAgdGhpcy5ub3RpZnkoQ29uZGl0aW9uUGFuZWwuT05fQ09ORElUSU9OX0NIQU5HRUQsIHRoaXMuc3RhdGUpXG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb25kaXRpb24gc3RhdGVcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHN0YXRlXG4gICAqL1xuICBzZXRTdGF0ZShzdGF0ZSkge1xuICAgIHN0YXRlID0gc3RhdGUgfHwge31cbiAgICB0aGlzLnN0YXRlLmZpbHRlciA9IHN0YXRlLmZpbHRlciB8fCBudWxsXG4gICAgdGhpcy5zdGF0ZS5maWx0ZXJUbyA9IHN0YXRlLmZpbHRlclRvIHx8IG51bGxcbiAgICB0aGlzLnN0YXRlLnR5cGUgPSBzdGF0ZS50eXBlIHx8IHRoaXMuX2RlZmF1bHRPcHRpb25cblxuICAgIGNvbnN0IGd1aSA9IHRoaXMuX2d1aVxuICAgIGNvbnN0IGZpbHRlck9wdGlvbnMgPSB0aGlzLl9maWx0ZXJPcHRpb25zXG4gICAgY29uc3Qgc2VsZWN0RWwgPSBndWkucXVlcnlTZWxlY3RvcignLmFnLWZpbHRlci1zZWxlY3QnKVxuICAgIGNvbnN0IGZpbHRlcklucHV0ID0gdGhpcy5fZmlsdGVyVGltZUlucHV0XG4gICAgY29uc3QgZmlsdGVyVG9JbnB1dCA9IHRoaXMuX2ZpbHRlclRvRGF0ZVRpbWVJbnB1dFxuXG4gICAgc2VsZWN0RWwuc2VsZWN0ZWRJbmRleCA9IGZpbHRlck9wdGlvbnMuaW5kZXhPZih0aGlzLnN0YXRlLnR5cGUpXG4gICAgZmlsdGVySW5wdXQuc2V0RGF0ZSh0aGlzLnN0YXRlLmZpbHRlcilcbiAgICBmaWx0ZXJUb0lucHV0LnNldERhdGUodGhpcy5zdGF0ZS5maWx0ZXJUbylcblxuICAgIC8vIHdlIGZpcmUgb24gY2hhbmdlIGV2ZW50IGluIGNhc2UgdGhlIGZpbHRlciBvcHRpb25zIGNvbnRhaW5cbiAgICAvLyBvbmUgb3B0aW9uIHdoaWNoIGlzIGluIFJhbmdlIFwiaW5SYW5nZVwiXG4gICAgaWYgKCdjcmVhdGVFdmVudCcgaW4gZG9jdW1lbnQpIHtcbiAgICAgIGNvbnN0IGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJylcbiAgICAgIGV2dC5pbml0RXZlbnQoJ2NoYW5nZScsIGZhbHNlLCB0cnVlKVxuICAgICAgc2VsZWN0RWwuZGlzcGF0Y2hFdmVudChldnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdEVsLmZpcmVFdmVudCgnb25jaGFuZ2UnKVxuICAgIH1cblxuICAgIHRoaXMubm90aWZ5KENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgc3RhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBlXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX29uVHlwZUNoYW5nZShlKSB7XG4gICAgY29uc3QgZWwgPSBlLnRhcmdldFxuICAgIGNvbnN0IGZpbHRlckRhdGVUbyA9IHRoaXMuX2d1aS5xdWVyeVNlbGVjdG9yKCcuYWctZmlsdGVyLWRhdGUtdG8nKVxuXG4gICAgdGhpcy5zdGF0ZS50eXBlID0gZWwub3B0aW9uc1tlbC5zZWxlY3RlZEluZGV4XS52YWx1ZVxuXG4gICAgaWYgKHRoaXMuc3RhdGUudHlwZSA9PT0gVE9LRU5TLlRPS0VOX1JBTkdFKSB7XG4gICAgICBmaWx0ZXJEYXRlVG8uY2xhc3NMaXN0LnJlbW92ZSgnYWctaGlkZGVuJylcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVyRGF0ZVRvLmNsYXNzTGlzdC5hZGQoJ2FnLWhpZGRlbicpXG4gICAgfVxuXG4gICAgdGhpcy5ub3RpZnkoQ29uZGl0aW9uUGFuZWwuT05fQ09ORElUSU9OX0NIQU5HRUQsIHRoaXMuc3RhdGUpXG4gIH1cbn1cblxuQHdpdGhFdmVudHNNaXhpblxuY2xhc3MgSm9pbkNvbmRpdGlvblBhbmVsIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIENvbnN0YW50IHdoaWNoIGRlc2NyaWJlcyB0aGUgZXZlbnQgbmFtZSB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiB0aGUgam9pblxuICAgKiBzdGF0ZSBpcyBjaGFuZ2VkXG4gICAqXG4gICAqIEB0eXBlIHtTdHJpbmd9XG4gICAqL1xuICBAcmVhZG9ubHlcbiAgc3RhdGljIE9OX0pPSU5fQ09ORElUSU9OX0NIQU5HRUQgPVxuICAgICdKb2luQ29uZGl0aW9uUGFuZWwuT05fSk9JTl9DT05ESVRJT05fQ0hBTkdFRCdcbiAgLyoqXG4gICAqIFRoZSBqb2luIHN0YXRlXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBAcmVhZG9ubHlcbiAgc3RhdGUgPSB7XG4gICAgY29uZGl0aW9uMToge30sXG4gICAgY29uZGl0aW9uMjoge30sXG4gICAgb3BlcmF0b3I6IFRPS0VOUy5UT0tFTl9PUixcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7T3B0aW9ufVxuICAgKi9cbiAgX2ZpcnN0Q29uZGl0aW9uUGFuZWwgPSBuZXcgQ29uZGl0aW9uUGFuZWwoKVxuXG4gIC8qKlxuICAgKiBAdHlwZSB7T3B0aW9ufVxuICAgKi9cbiAgX3NlY29uZENvbmRpdGlvblBhbmVsID0gbmV3IENvbmRpdGlvblBhbmVsKClcblxuICAvKipcbiAgICogQHR5cGUge0hUTUxFbGVtZW50fVxuICAgKi9cbiAgX29wZXJhdG9yUGFuZWwgPSBudWxsXG5cbiAgLyoqXG4gICAqIFBhcmFtcyByZWNlaXZlZCBhZnRlciBpbml0XG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBfcGFyYW1zID0gbnVsbFxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBpbml0KHBhcmFtcykge1xuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IHBhcmFtcy5hcGkuZ3JpZE9wdGlvbnNXcmFwcGVyLmdldExvY2FsZVRleHRGdW5jKClcblxuICAgIHRoaXMuX3BhcmFtcyA9IHBhcmFtc1xuXG4gICAgdGhpcy5fZmlyc3RDb25kaXRpb25QYW5lbC5pbml0KHBhcmFtcylcbiAgICB0aGlzLl9maXJzdENvbmRpdGlvblBhbmVsLm9uKFxuICAgICAgQ29uZGl0aW9uUGFuZWwuT05fQ09ORElUSU9OX0NIQU5HRUQsXG4gICAgICB0aGlzLl9vbkZpcnN0Q29uZGl0aW9uQ2hhbmdlZFxuICAgIClcblxuICAgIHRoaXMuX3NlY29uZENvbmRpdGlvblBhbmVsLmluaXQocGFyYW1zKVxuICAgIHRoaXMuX3NlY29uZENvbmRpdGlvblBhbmVsLm9uKFxuICAgICAgQ29uZGl0aW9uUGFuZWwuT05fQ09ORElUSU9OX0NIQU5HRUQsXG4gICAgICB0aGlzLl9vblNlY29uZENvbmRpdGlvbkNoYW5nZWRcbiAgICApXG4gICAgdGhpcy5fc2Vjb25kQ29uZGl0aW9uUGFuZWwuZ2V0R3VpKCkuY2xhc3NMaXN0LmFkZCgnYWctaGlkZGVuJylcblxuICAgIHRoaXMuX2d1aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGhpcy5fZ3VpLmNsYXNzTmFtZSA9ICdhZy1maWx0ZXItYm9keS13cmFwcGVyJ1xuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZCh0aGlzLl9maXJzdENvbmRpdGlvblBhbmVsLmdldEd1aSgpKVxuXG4gICAgdGhpcy5fb3BlcmF0b3JQYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gICAgdGhpcy5fb3BlcmF0b3JQYW5lbC5jbGFzc05hbWUgPSAnYWctZmlsdGVyLWNvbmRpdGlvbiBhZy1oaWRkZW4nXG4gICAgdGhpcy5fb3BlcmF0b3JQYW5lbC5pbm5lckhUTUwgPSAvKiBodG1sICovIGBcbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiQU5EXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cIm9yQW5kUmFkaW9cIiB2YWx1ZT1cIiR7XG4gICAgICAgICAgVE9LRU5TLlRPS0VOX0FORFxuICAgICAgICB9XCIvPlxuICAgICAgICAke3RyYW5zbGF0ZSgnYW5kQ29uZGl0aW9uJywgJ0FORCcpfVxuICAgICAgPC9sYWJlbD4gXG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxpbnB1dCBjbGFzcz1cIk9SXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cIm9yQW5kUmFkaW9cIiB2YWx1ZT1cIiR7XG4gICAgICAgICAgVE9LRU5TLlRPS0VOX09SXG4gICAgICAgIH1cIiBjaGVja2VkIC8+XG4gICAgICAgICR7dHJhbnNsYXRlKCdvckNvbmRpdGlvbicsICdPUicpfVxuICAgICAgPC9sYWJlbD5cbiAgICBgXG4gICAgdGhpcy5fZ3VpLmFwcGVuZENoaWxkKHRoaXMuX29wZXJhdG9yUGFuZWwpXG4gICAgdGhpcy5fb3BlcmF0b3JQYW5lbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLl9vbk9wZXJhdG9yQ2hhbmdlZClcblxuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZCh0aGlzLl9zZWNvbmRDb25kaXRpb25QYW5lbC5nZXRHdWkoKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgQG92ZXJyaWRlXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZmlyc3RDb25kaXRpb25QYW5lbC5kZXN0cm95KClcbiAgICB0aGlzLl9zZWNvbmRDb25kaXRpb25QYW5lbC5kZXN0cm95KClcbiAgICB0aGlzLl9vcGVyYXRvclBhbmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX29uT3BlcmF0b3JDaGFuZ2VkKVxuICAgIHRoaXMub2ZmKEpvaW5Db25kaXRpb25QYW5lbC5PTl9KT0lOX0NPTkRJVElPTl9DSEFOR0VEKVxuICAgIHRoaXMucmVzZXQoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBzdGF0ZVxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5fZmlyc3RDb25kaXRpb25QYW5lbC5yZXNldCgpXG4gICAgdGhpcy5fc2Vjb25kQ29uZGl0aW9uUGFuZWwucmVzZXQoKVxuICAgIHRoaXMubm90aWZ5KENvbmRpdGlvblBhbmVsLk9OX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY29uZGl0aW9uIGpvaW4gc3RhdGVcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHN0YXRlXG4gICAqL1xuICBzZXRTdGF0ZShzdGF0ZSkge1xuICAgIHN0YXRlID0gc3RhdGUgfHwge31cbiAgICB0aGlzLnN0YXRlLm9wZXJhdG9yID0gc3RhdGUub3BlcmF0b3IgfHwgVE9LRU5TLlRPS0VOX09SXG4gICAgdGhpcy5zdGF0ZS5jb25kaXRpb24xID0gc3RhdGUuY29uZGl0aW9uMSB8fCBudWxsXG4gICAgdGhpcy5zdGF0ZS5jb25kaXRpb24yID0gc3RhdGUuY29uZGl0aW9uMiB8fCBudWxsXG5cbiAgICB0aGlzLl9maXJzdENvbmRpdGlvblBhbmVsLnNldFN0YXRlKHRoaXMuc3RhdGUuY29uZGl0aW9uMSlcbiAgICB0aGlzLl9zZWNvbmRDb25kaXRpb25QYW5lbC5zZXRTdGF0ZSh0aGlzLnN0YXRlLmNvbmRpdGlvbjIpXG4gICAgdGhpcy5fb3BlcmF0b3JQYW5lbC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpLmZvckVhY2goaW5wdXQgPT4ge1xuICAgICAgaWYgKGlucHV0LmNsYXNzTGlzdC5jb250YWlucyh0aGlzLnN0YXRlLm9wZXJhdG9yKSkge1xuICAgICAgICBpbnB1dC5jaGVja2VkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5wdXQuY2hlY2tlZCA9IGZhbHNlXG4gICAgICB9XG4gICAgfSlcblxuICAgIHRoaXMubm90aWZ5KEpvaW5Db25kaXRpb25QYW5lbC5PTl9KT0lOX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgc2VsZWN0ZWQgY29uZGl0aW9uIHRvIHRoZSBjb21wb25lbnQgc3RhdGVyXG4gICAqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGVcbiAgICovXG4gIEBhdXRvYmluZFxuICBfb25PcGVyYXRvckNoYW5nZWQoZSkge1xuICAgIHRoaXMuc3RhdGUub3BlcmF0b3IgPSBlLnRhcmdldC52YWx1ZVxuICAgIHRoaXMubm90aWZ5KEpvaW5Db25kaXRpb25QYW5lbC5PTl9KT0lOX0NPTkRJVElPTl9DSEFOR0VELCB0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSAgdGhlIG9wdGlvbiBzdGF0ZVxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9vbkZpcnN0Q29uZGl0aW9uQ2hhbmdlZChzdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUuY29uZGl0aW9uMSA9IHN0YXRlXG5cbiAgICBjb25zdCBzdXBwcmVzc0FuZE9yQ29uZGl0aW9uID0gdGhpcy5nZXRPcHRpb24oXG4gICAgICAnc3VwcHJlc3NBbmRPckNvbmRpdGlvbicsXG4gICAgICB0aGlzLl9wYXJhbXMsXG4gICAgICBmYWxzZVxuICAgIClcblxuICAgIGlmICghc3VwcHJlc3NBbmRPckNvbmRpdGlvbikge1xuICAgICAgY29uc3QgeyBmaWx0ZXIsIGZpbHRlclRvLCB0eXBlIH0gPSB0aGlzLnN0YXRlLmNvbmRpdGlvbjFcbiAgICAgIGNvbnN0IHNlY29uZENvbmRpdGlvbkd1aSA9IHRoaXMuX3NlY29uZENvbmRpdGlvblBhbmVsLmdldEd1aSgpXG4gICAgICBjb25zdCBvcGVyYXRvclBhbmVsR3VpID0gdGhpcy5fb3BlcmF0b3JQYW5lbFxuICAgICAgY29uc3QgY29uZGl0aW9uID1cbiAgICAgICAgdHlwZSA9PT0gVE9LRU5TLlRPS0VOX1JBTkdFID8gIWZpbHRlciB8fCAhZmlsdGVyVG8gOiAhZmlsdGVyXG5cbiAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgc2Vjb25kQ29uZGl0aW9uR3VpLmNsYXNzTGlzdC5hZGQoJ2FnLWhpZGRlbicpXG4gICAgICAgIG9wZXJhdG9yUGFuZWxHdWkuY2xhc3NMaXN0LmFkZCgnYWctaGlkZGVuJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlY29uZENvbmRpdGlvbkd1aS5jbGFzc0xpc3QucmVtb3ZlKCdhZy1oaWRkZW4nKVxuICAgICAgICBvcGVyYXRvclBhbmVsR3VpLmNsYXNzTGlzdC5yZW1vdmUoJ2FnLWhpZGRlbicpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpZnkoSm9pbkNvbmRpdGlvblBhbmVsLk9OX0pPSU5fQ09ORElUSU9OX0NIQU5HRUQsIHRoaXMuc3RhdGUpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtPYmplY3R9IHN0YXRlICB0aGUgb3B0aW9uIHN0YXRlXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX29uU2Vjb25kQ29uZGl0aW9uQ2hhbmdlZChzdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUuY29uZGl0aW9uMiA9IHN0YXRlXG4gICAgdGhpcy5ub3RpZnkoSm9pbkNvbmRpdGlvblBhbmVsLk9OX0pPSU5fQ09ORElUSU9OX0NIQU5HRUQsIHRoaXMuc3RhdGUpXG4gIH1cbn1cblxuLyoqXG4gKiBEYXRlVGltZSBGaWx0ZXJcbiAqXG4gKiAjIyBPcHRpb25zXG4gKlxuICogfCBOYW1lICAgICAgICAgICAgICAgICAgXHR8IERlZmF1bHQgICAgIFx0fCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHR8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVx0fDotLS0tLS0tLS0tLS0tOnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipkYXRlVGltZUVuYWJsZVRpbWUqKiAgIHwgZmFsc2UgICAgfCBlbmFibGUgLyBkaXNhYmxlIHRpbWVcbiAqIHwgKipkYXRlVGltZUVuYWJsZTI0SFIqKiAgIHwgZmFsc2UgICAgfCBlbmFibGUgLyBkaXNhYmxlIHRpbWUgMjQgZm9ybWF0XG4gKiB8ICoqZGF0ZVRpbWVFbmFibGVTZWNvbmRzKiogICB8IGZhbHNlICAgIHwgZW5hYmxlIC8gZGlzYWJsZSBzZWNvbmRzIG1hbmFnZW1lbnRcbiAqIHwgKipkYXRlVGltZUVuYWJsZUNhbGVuZGFyKiogICB8IGZhbHNlICAgIHwgZW5hYmxlIC8gZGlzYWJsZSBDYWxlbmRhci5cbiAqIHwgKipkYXRlVGltZU1hc2sqKiAgIHwgZmFsc2UgICAgfCBUaGUgbWFzayB1c2VkIHRvIGZvcm1hdCB0aGUgc2VsZWN0ZWQgZGF0ZVxuICogfCAqKmRhdGVUaW1lTWF4KiogICB8IHVuZGVmaW5lZCAgICB8ICBNYXggYWxsb3dlZCBkYXRlXG4gKiB8ICoqZGF0ZVRpbWVNaW4qKiAgIHwgdW5kZWZpbmVkICAgIHwgIE1pbiBhbGxvd2VkIGRhdGVcbiAqIHwgKipkYXRlVGltZUZvcm1hdHRlcioqICAgfCB1bmRlZmluZWQgICAgfCAgQSBmdW5jdGlvbiBvciBleHByZXNzaW9uIHRvIGZvcm1hdCB0aGUgZGF0ZSAoQHNlZSBzdXBwb3J0ZWQgcGFyYW0pXG4gKiB8ICoqZGF0ZVRpbWVMb2NhbGUqKiAgIHwgU3lzdGVtIGRlZmF1bHQgICAgfCAgQSBsb2NhbGUgdG8gdXNlIGZvciBkYXRlIGZvcm1hdHRpbmdcbiAqIHwgKipkYXRlVGltZURlZmF1bHRIb3VyKiogICB8IDEyICAgIHwgIEluaXRpYWwgdmFsdWUgb2YgdGhlIGhvdXIgZWxlbWVudC5cbiAqIHwgKipkYXRlVGltZURlZmF1bHRNaW51dGUqKiAgIHwgMCAgICB8ICBJbml0aWFsIHZhbHVlIG9mIHRoZSBtaW51dGUgZWxlbWVudC5cbiAqIHwgKipkYXRlVGltZURpc2FibGVNb2JpbGUqKiAgIHwgZmFsc2UgICAgfCAgU2V0IGRpc2FibGVNb2JpbGUgdG8gdHJ1ZSB0byBhbHdheXMgdXNlIHRoZSBub24tbmF0aXZlIHBpY2tlci5cbiAqIHwgKipkYXRlVGltZUVuYWJsZVdlZWtOdW1iZXIqKiAgIHwgdHJ1ZSAgICB8ICBFbmFibGVzIGRpc3BsYXkgb2Ygd2VlayBudW1iZXJzIGluIGNhbGVuZGFyLlxuICogfCAqKmZpbHRlck9wdGlvbnMqKiAgIHwgRXF1YWxzLCBHcmVhdGVyIFRoYW4sIExlc3MgVGhhbiwgTm90IEVxdWFscywgSW4gUmFuZ2UuICAgIHwgIFdoYXQgRmlsdGVyIE9wdGlvbnMgdG8gcHJlc2VudCB0byB0aGUgdXNlci5cbiAqIHwgKipkZWZhdWx0T3B0aW9uKiogICB8IEVxdWFscyAgICB8ICBUaGUgZGVmYXVsdCBGaWx0ZXIgT3B0aW9ucyB0byBiZSBzZWxlY3RlZC5cbiAqIHwgKipzdXBwcmVzc0FuZE9yQ29uZGl0aW9uKiogICB8IGZhbHNlICAgIHwgIElmIHRydWUsIHRoZSBmaWx0ZXIgd2lsbCBvbmx5IG9mZmVyIENvbmRpdGlvbiAxLlxuICogfCAqKmluUmFuZ2VJbmNsdXNpdmUqKiAgIHwgZmFsc2UgICAgfCAgSWYgdHJ1ZSB0aGVuIGRvaW5nICdpblJhbmdlJyBmaWx0ZXIgb3B0aW9uIHdpbGwgaW5jbHVkZSB2YWx1ZXMgZXF1YWwgdG8gdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHJhbmdlLlxuICogfCAqKmNsZWFyQnV0dG9uKiogICB8IGZhbHNlICAgIHwgIFNldCB0byB0cnVlIHRvIGhhdmUgdGhlIGZpbHRlciB1c2UgYSBDbGVhciBidXR0b24uIFRoZSBDbGVhciBidXR0b24gd2lsbCBjbGVhciB0aGUgKGZvcm0pIGRldGFpbHMgb2YgdGhlIGZpbHRlciB3aXRob3V0IHJlbW92aW5nIGFueSBhY3RpdmUgZmlsdGVycyBvbiB0aGUgY29sdW1uLlxuICogfCAqKmFwcGx5QnV0dG9uKiogICB8IGZhbHNlICAgIHwgIFNldCB0byB0cnVlIHRvIGhhdmUgdGhlIGZpbHRlciB1c2UgYW4gQXBwbHkgYnV0dG9uLiBJZiB0aGUgQXBwbHkgYnV0dG9uIGlzIHByZXNlbnQsIHRoZW4gdGhlIGZpbHRlciBpcyBvbmx5IGFwcGxpZWQgYWZ0ZXIgdGhlIHVzZXIgaGl0cyB0aGUgQXBwbHkgYnV0dG9uLlxuICogfCAqKnJlc2V0QnV0dG9uKiogICB8IGZhbHNlICAgIHwgIFNldCB0byB0cnVlIHRvIGhhdmUgdGhlIGZpbHRlciB1c2UgYSBSZXNldCBidXR0b24uIFRoZSBSZXNldCBidXR0b24gd2lsbCBjbGVhciB0aGUgZGV0YWlscyBvZiB0aGUgZmlsdGVyIGFuZCBhbnkgYWN0aXZlIGZpbHRlcnMgb24gdGhhdCBjb2x1bW4uXG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgRGF0ZVRpbWVGaWx0ZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogQHR5cGUge0pvaW59XG4gICAqL1xuICBfSm9pbkNvbmRpdGlvblBhbmVsID0gbmV3IEpvaW5Db25kaXRpb25QYW5lbCgpXG5cbiAgLyoqXG4gICAqIEpvaW4gcGFuZWwgc3RhdGVcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIF9zdGF0ZSA9IHt9XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudCBwYXJhbXNcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIF9wYXJhbXMgPSB7fVxuXG4gIC8qKlxuICAgKiBBbiBvYmplY3Qgb2YgYWxsIHRoZSByZXF1aXJlZCBvcHRpb25zIGNhY2hlZCBmb3IgZG9lc0ZpbHRlclBhc3MgbWV0aG9kXG4gICAqL1xuICBfZG9lc0ZpbHRlclBhc3NPcHRpb25zID0gbnVsbFxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgQG92ZXJyaWRlXG4gIGluaXQocGFyYW1zKSB7XG4gICAgY29uc3QgdHJhbnNsYXRlID0gcGFyYW1zLmFwaS5ncmlkT3B0aW9uc1dyYXBwZXIuZ2V0TG9jYWxlVGV4dEZ1bmMoKVxuICAgIGNvbnN0IGlzQ2xlYXJGaWx0ZXIgPSB0aGlzLmdldE9wdGlvbignY2xlYXJCdXR0b24nLCBwYXJhbXMsIGZhbHNlKVxuICAgIGNvbnN0IGlzUmVzZXRCdXR0b24gPSB0aGlzLmdldE9wdGlvbigncmVzZXRCdXR0b24nLCBwYXJhbXMsIGZhbHNlKVxuICAgIGNvbnN0IGlzQXBwbHlCdXR0b24gPSB0aGlzLmdldE9wdGlvbignYXBwbHlCdXR0b24nLCBwYXJhbXMsIGZhbHNlKVxuXG4gICAgdGhpcy5fZ3VpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcblxuICAgIHRoaXMuX0pvaW5Db25kaXRpb25QYW5lbC5pbml0KHBhcmFtcylcbiAgICB0aGlzLl9Kb2luQ29uZGl0aW9uUGFuZWwub24oXG4gICAgICBKb2luQ29uZGl0aW9uUGFuZWwuT05fSk9JTl9DT05ESVRJT05fQ0hBTkdFRCxcbiAgICAgIHN0YXRlID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9fZGlzYWJsZVN0YXRlQ2hhbmdlTGlzdGVuZXIpIHtcbiAgICAgICAgICB0aGlzLl9vbkpvaW5Db25kaXRpb25QYW5lbFN0YXRlQ2hhbmdlZChzdGF0ZSwgaXNBcHBseUJ1dHRvbilcbiAgICAgICAgfVxuICAgICAgfVxuICAgIClcblxuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZCh0aGlzLl9Kb2luQ29uZGl0aW9uUGFuZWwuZ2V0R3VpKCkpXG5cbiAgICBjb25zdCBhcHBseUZpbHRlclBhbmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICBhcHBseUZpbHRlclBhbmVsLmNsYXNzTmFtZSA9IGBhZy1maWx0ZXItYXBwbHktcGFuZWwgYWctaGlkZGVuYFxuICAgIGFwcGx5RmlsdGVyUGFuZWwuaW5uZXJIVE1MID0gLyogaHRtbCAqLyBgXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY2xlYXIgJHshaXNDbGVhckZpbHRlciAmJlxuICAgICAgICAnYWctaGlkZGVuJ31cIiB0eXBlPVwiYnV0dG9uXCI+JHt0cmFuc2xhdGUoXG4gICAgICAnY2xlYXJGaWx0ZXInLFxuICAgICAgJ0NsZWFyIEZpbHRlcidcbiAgICApfTwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlc2V0ICR7IWlzUmVzZXRCdXR0b24gJiZcbiAgICAgICAgJ2FnLWhpZGRlbid9XCIgdHlwZT1cImJ1dHRvblwiPiR7dHJhbnNsYXRlKFxuICAgICAgJ3Jlc2V0RmlsdGVyJyxcbiAgICAgICdSZXNldCBGaWx0ZXInXG4gICAgKX08L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhcHBseSAkeyFpc0FwcGx5QnV0dG9uICYmXG4gICAgICAgICdhZy1oaWRkZW4nfVwiIHR5cGU9XCJidXR0b25cIj4ke3RyYW5zbGF0ZShcbiAgICAgICdhcHBseUZpbHRlcicsXG4gICAgICAnQXBwbHkgRmlsdGVyJ1xuICAgICl9PC9idXR0b24+XG4gICAgYFxuXG4gICAgaWYgKGlzQ2xlYXJGaWx0ZXIgfHwgaXNSZXNldEJ1dHRvbiB8fCBpc0FwcGx5QnV0dG9uKSB7XG4gICAgICBhcHBseUZpbHRlclBhbmVsLmNsYXNzTGlzdC5yZW1vdmUoJ2FnLWhpZGRlbicpXG4gICAgfVxuXG4gICAgYXBwbHlGaWx0ZXJQYW5lbC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIHRoaXMuX0FwcGx5RmlsdGVyUGFuZWxCdXR0b25DbGlja1xuICAgIClcblxuICAgIHRoaXMuX2d1aS5hcHBlbmRDaGlsZChhcHBseUZpbHRlclBhbmVsKVxuXG4gICAgdGhpcy5fc3RhdGUgPSB0aGlzLl9Kb2luQ29uZGl0aW9uUGFuZWwuc3RhdGVcbiAgICB0aGlzLl9wYXJhbXMgPSBwYXJhbXNcblxuICAgIHRoaXMuX2RvZXNGaWx0ZXJQYXNzT3B0aW9ucyA9IHtcbiAgICAgIGVuYWJsZVRpbWU6IHRoaXMuZ2V0T3B0aW9uKCdkYXRlVGltZUVuYWJsZVRpbWUnLCB0aGlzLl9wYXJhbXMsIHRydWUpLFxuICAgICAgaW5SYW5nZUluY2x1c2l2ZTogdGhpcy5nZXRPcHRpb24oJ2luUmFuZ2VJbmNsdXNpdmUnLCB0aGlzLl9wYXJhbXMsIGZhbHNlKSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICAgIHZhbHVlR2V0dGVyOiB0aGlzLl9wYXJhbXMuaGFzT3duUHJvcGVydHkoJ2ZpbHRlclZhbHVlR2V0dGVyJylcbiAgICAgICAgPyB0aGlzLl9wYXJhbXMuZmlsdGVyVmFsdWVHZXR0ZXJcbiAgICAgICAgOiB0aGlzLl9wYXJhbXMudmFsdWVHZXR0ZXIsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBAb3ZlcnJpZGVcbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9Kb2luQ29uZGl0aW9uUGFuZWwuZGVzdHJveSgpXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciBzZWxlY3RlZCBmaWx0ZXIgbWF0Y2hlcyB0aGUgcGFzc2VkIGNlbGwgZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgd2hlbiBwYXNzLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGRvZXNGaWx0ZXJQYXNzKHBhcmFtcykge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fZG9lc0ZpbHRlclBhc3NPcHRpb25zLnZhbHVlR2V0dGVyKHBhcmFtcylcbiAgICBjb25zdCB7IGNvbmRpdGlvbjEsIGNvbmRpdGlvbjIsIG9wZXJhdG9yIH0gPSB0aGlzLl9zdGF0ZVxuICAgIGNvbnN0IGRvZXNQYXNzRmlyc3RDb25kaXRpb24gPSB0aGlzLl9kb2VzUGFzc0NvbmRpdGlvbihjb25kaXRpb24xLCB2YWx1ZSlcbiAgICBjb25zdCBkb2VzUGFzc1NlY29uZENvbmRpdGlvbiA9IHRoaXMuX2RvZXNQYXNzQ29uZGl0aW9uKGNvbmRpdGlvbjIsIHZhbHVlKVxuXG4gICAgcmV0dXJuIG9wZXJhdG9yID09PSBUT0tFTlMuVE9LRU5fT1JcbiAgICAgID8gZG9lc1Bhc3NGaXJzdENvbmRpdGlvbiB8fCBkb2VzUGFzc1NlY29uZENvbmRpdGlvblxuICAgICAgOiBkb2VzUGFzc0ZpcnN0Q29uZGl0aW9uICYmIGRvZXNQYXNzU2Vjb25kQ29uZGl0aW9uXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgd2hldGhlciB0aGUgY29tcG9uZW50IGlzIGFwcGx5aW5nIGFueSBmaWx0ZXIgb24gdGhlIGNvbHVtblxuICAgKlxuICAgKiBAcmV0dXJuIHtCb29sZWFufVxuICAgKiovXG4gIGlzRmlsdGVyQWN0aXZlKCkge1xuICAgIGNvbnN0IHsgY29uZGl0aW9uMSB9ID0gdGhpcy5fc3RhdGVcblxuICAgIGlmIChjb25kaXRpb24xICYmIGNvbmRpdGlvbjEuZmlsdGVyKSB7XG4gICAgICBpZiAoY29uZGl0aW9uMS5maWx0ZXJUbyAmJiBjb25kaXRpb24xLnR5cGUgPT09IFRPS0VOUy5UT0tFTl9SQU5HRSkge1xuICAgICAgICByZXR1cm4gY29uZGl0aW9uMS5maWx0ZXIgIT09IG51bGwgJiYgY29uZGl0aW9uMS5maWx0ZXJUbyAhPT0gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29uZGl0aW9uMS5maWx0ZXIgIT09IG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaWx0ZXIgc3RhdGUuIElmIGZpbHRlciBpcyBub3QgYWN0aXZlLCB0aGVuIHNob3VsZCByZXR1cm4gbnVsbC91bmRlZmluZWQuXG4gICAqIFRoZSBncmlkIGNhbGxzIGdldE1vZGVsKCkgb24gYWxsIGFjdGl2ZSBmaWx0ZXJzIHdoZW4gZ3JpZEFwaS5nZXRGaWx0ZXJNb2RlbCgpIGlzIGNhbGxlZC5cbiAgICpcbiAgICogQHJldHVybiBPYmplY3QgfCBudWxsIHRoZSBmaWx0ZXIgc3RhdGVcbiAgICovXG4gIGdldE1vZGVsKCkge1xuICAgIGNvbnN0IGNsb25lID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9zdGF0ZSkpXG4gICAgO1tjbG9uZS5jb25kaXRpb24xLCBjbG9uZS5jb25kaXRpb24yXS5mb3JFYWNoKChjb25kaXRpb24sIGkpID0+IHtcbiAgICAgIGlmIChjb25kaXRpb24uZmlsdGVyKSB7XG4gICAgICAgIGNvbmRpdGlvbi5maWx0ZXIgPSB0aGlzLl9zdGF0ZVtgY29uZGl0aW9uJHtpICsgMX1gXS5maWx0ZXIudG9JU09TdHJpbmcoKVxuICAgICAgfVxuICAgICAgaWYgKGNvbmRpdGlvbi5maWx0ZXJUbykge1xuICAgICAgICBjb25kaXRpb24uZmlsdGVyVG8gPSB0aGlzLl9zdGF0ZVtcbiAgICAgICAgICBgY29uZGl0aW9uJHtpICsgMX1gXG4gICAgICAgIF0uZmlsdGVyVG8udG9JU09TdHJpbmcoKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4gY2xvbmVcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgZmlsdGVyIHN0YXRlLiBDYWxsZWQgYnkgdGhlIGdyaWQgYWZ0ZXIgZ3JpZEFwaS5zZXRGaWx0ZXJNb2RlbChtb2RlbCkgaXMgY2FsbGVkLlxuICAgKiBUaGUgZ3JpZCB3aWxsIHBhc3MgdW5kZWZpbmVkL251bGwgdG8gY2xlYXIgdGhlIGZpbHRlci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3QgfCBudWxsfSBtb2RlbFxuICAgKi9cbiAgc2V0TW9kZWwobW9kZWwpIHtcbiAgICB0aGlzLl9fZGlzYWJsZVN0YXRlQ2hhbmdlTGlzdGVuZXIgPSB0cnVlXG4gICAgdGhpcy5fSm9pbkNvbmRpdGlvblBhbmVsLnNldFN0YXRlKG1vZGVsKVxuICAgIHRoaXMuX19kaXNhYmxlU3RhdGVDaGFuZ2VMaXN0ZW5lciA9IGZhbHNlXG5cbiAgICB0aGlzLl9zdGF0ZSA9IHRoaXMuX0pvaW5Db25kaXRpb25QYW5lbC5zdGF0ZVxuICAgIDtbdGhpcy5fc3RhdGUuY29uZGl0aW9uMSwgdGhpcy5fc3RhdGUuY29uZGl0aW9uMl0uZm9yRWFjaChjb25kaXRpb24gPT4ge1xuICAgICAgaWYgKGNvbmRpdGlvbi5maWx0ZXIpIHtcbiAgICAgICAgY29uZGl0aW9uLmZpbHRlciA9IG5ldyBEYXRlKGNvbmRpdGlvbi5maWx0ZXIpXG4gICAgICB9XG4gICAgICBpZiAoY29uZGl0aW9uLmZpbHRlclRvKSB7XG4gICAgICAgIGNvbmRpdGlvbi5maWx0ZXJUbyA9IG5ldyBEYXRlKGNvbmRpdGlvbi5maWx0ZXJUbylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmlsdGVyIG1vZGVsIGFzIHBsYWluIHN0cmluZyB0byBkaXNwbGF5IGluIHRoZSBmbG9hdGluZyBmaWx0ZXIgaW5wdXRcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3QgfCBudWxsfSBtb2RlbFxuICAgKi9cbiAgZ2V0TW9kZWxBc1N0cmluZyhtb2RlbCkge1xuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiAnJ1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGVUaW1lTWFzayA9IHRoaXMuZ2V0T3B0aW9uKFxuICAgICAgJ2RhdGVUaW1lTWFzaycsXG4gICAgICB0aGlzLl9wYXJhbXMsXG4gICAgICAvLyBAdG9kbyBGaW5kIGEgYmV0dGVyIHdheSBmb3IgdGhpc1xuICAgICAgdGhpcy5fSm9pbkNvbmRpdGlvblBhbmVsLl9maXJzdENvbmRpdGlvblBhbmVsLl9maWx0ZXJUaW1lSW5wdXQucGlja2VyXG4gICAgICAgIC5jb25maWdbJ2RhdGVGb3JtYXQnXVxuICAgIClcbiAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmdldE9wdGlvbihcbiAgICAgICdkYXRlVGltZUxvY2FsZScsXG4gICAgICB0aGlzLl9wYXJhbXMsXG4gICAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlIHx8ICdlbi1VUydcbiAgICApXG5cbiAgICBjb25zdCB7IGNvbmRpdGlvbjEsIGNvbmRpdGlvbjIsIG9wZXJhdG9yIH0gPSBKU09OLnBhcnNlKFxuICAgICAgSlNPTi5zdHJpbmdpZnkobW9kZWwpXG4gICAgKVxuXG4gICAgO1tjb25kaXRpb24xLCBjb25kaXRpb24yXS5mb3JFYWNoKGNvbmRpdGlvbiA9PiB7XG4gICAgICBpZiAoY29uZGl0aW9uLmZpbHRlcikge1xuICAgICAgICBjb25kaXRpb24uZmlsdGVyID0gQkJqLk1hc2tzLkRhdGVNYXNrLm1hc2soXG4gICAgICAgICAgY29uZGl0aW9uLmZpbHRlcixcbiAgICAgICAgICBkYXRlVGltZU1hc2ssXG4gICAgICAgICAgbG9jYWxlXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmRpdGlvbi5maWx0ZXJUbykge1xuICAgICAgICBjb25kaXRpb24uZmlsdGVyVG8gPSBCQmouTWFza3MuRGF0ZU1hc2subWFzayhcbiAgICAgICAgICBjb25kaXRpb24uZmlsdGVyVG8sXG4gICAgICAgICAgZGF0ZVRpbWVNYXNrLFxuICAgICAgICAgIGxvY2FsZVxuICAgICAgICApXG4gICAgICB9XG4gICAgfSlcblxuICAgIGNvbnN0IGZpcnN0Q29uZGl0aW9uQXNTdHJpbmcgPSBgJHtjb25kaXRpb24xLmZpbHRlciB8fCAnJ30gJHtcbiAgICAgIGNvbmRpdGlvbjEuZmlsdGVyVG8gPyAn4oaSICcgKyBjb25kaXRpb24xLmZpbHRlclRvIDogJydcbiAgICB9YFxuICAgIGNvbnN0IHNlY29uZENvbmRpdGlvbkFzU3RyaW5nID0gYCR7Y29uZGl0aW9uMi5maWx0ZXIgfHwgJyd9ICR7XG4gICAgICBjb25kaXRpb24yLmZpbHRlclRvID8gJ+KGkiAnICsgY29uZGl0aW9uMi5maWx0ZXJUbyA6ICcnXG4gICAgfWBcbiAgICBjb25zdCBvcGVyYXRvckFzU3RyaW5nID0gYCR7Y29uZGl0aW9uMi5maWx0ZXIgJiYgb3BlcmF0b3IgPyBvcGVyYXRvciA6ICcnfWBcblxuICAgIHJldHVybiBgJHtmaXJzdENvbmRpdGlvbkFzU3RyaW5nfSAke29wZXJhdG9yQXNTdHJpbmd9ICR7c2Vjb25kQ29uZGl0aW9uQXNTdHJpbmd9YC50cmltKClcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgZ2l2ZW4gdmFsdWUgcGFzc2VzIHRoZSBmaWx0ZXIgZGVmaW5lZCBpbiB0aGUgcGFzc2VkIENvbmRpdGlvblBhbmVsJ3Mgc3RhdGVcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IGNvbmRpdGlvbiBjb25kaXRpb24gcGFuZWwgc3RhdGVcbiAgICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlIGNlbGwgdmFsdWVcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSB3aGVuIHBhc3MsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgX2RvZXNQYXNzQ29uZGl0aW9uKGNvbmRpdGlvbiwgdmFsdWUpIHtcbiAgICBpZiAoIWNvbmRpdGlvbi5maWx0ZXIpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IHsgZmlsdGVyLCBmaWx0ZXJUbywgdHlwZSB9ID0gY29uZGl0aW9uXG4gICAgY29uc3QgdGltZXpvbmUgPSBCQmouTWFza3MuVXRpbHMuRGF0ZXMuZ2V0VGltZXpvbmVPck9mZnNldCgpXG4gICAgY29uc3QgaW5SYW5nZUluY2x1c2l2ZSA9IHRoaXMuX2RvZXNGaWx0ZXJQYXNzT3B0aW9ucy5pblJhbmdlSW5jbHVzaXZlXG4gICAgY29uc3QgZW5hYmxlVGltZSA9IHRoaXMuX2RvZXNGaWx0ZXJQYXNzT3B0aW9ucy5lbmFibGVUaW1lXG4gICAgbGV0IHBhc3NlZCA9IGZhbHNlXG5cbiAgICBpZiAoQkJqLk1hc2tzLlV0aWxzLkRhdGVzLklTX1RJTUVfUkVHRVgudGVzdCh2YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUgPSBCQmouTWFza3MuVXRpbHMuRGF0ZXMuZml4U2hvcnRJU08odmFsdWUpXG4gICAgICA7W2ZpbHRlciwgZmlsdGVyVG9dLmZvckVhY2goZGF0ZSA9PiB7XG4gICAgICAgIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoMTk3MClcbiAgICAgICAgICBkYXRlLnNldE1vbnRoKDApXG4gICAgICAgICAgZGF0ZS5zZXREYXRlKDEpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChCQmouTWFza3MuVXRpbHMuRGF0ZXMuSVNfREFURV9SRUdFWC50ZXN0KHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSBCQmouTWFza3MuVXRpbHMuRGF0ZXMuZml4U2hvcnRJU08odmFsdWUpXG4gICAgfVxuXG4gICAgLy8gY29udmVydCB0aGUgZGF0ZXRpbWUgZnJvbSB1dGMgdG8gbG9jYWxlXG4gICAgdmFsdWUgPSB1dGNUb1pvbmVkVGltZSh2YWx1ZSwgdGltZXpvbmUpXG4gICAgLy8gZmlyc3REYXRlID0gZmlyc3REYXRlID8gem9uZWRUaW1lVG9VdGMoZmlyc3REYXRlICwgdGltZXpvbmUpIDogZmlyc3REYXRlXG4gICAgLy8gc2Vjb25kRGF0ZSA9IHNlY29uZERhdGUgPyB6b25lZFRpbWVUb1V0YyhzZWNvbmREYXRlICwgdGltZXpvbmUpIDogc2Vjb25kRGF0ZVxuXG4gICAgaWYgKCFlbmFibGVUaW1lKSB7XG4gICAgICAvLyByZW1vdmUgdGhlIHRpbWUgcG9ydGlvbiBmcm9tIHRoZSBkYXRlXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0cmEtc2VtaVxuICAgICAgO1t2YWx1ZSwgZmlsdGVyLCBmaWx0ZXJUb10uZm9yRWFjaChkYXRlID0+IHtcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgZGF0ZS5zZXRIb3VycygwKVxuICAgICAgICAgIGRhdGUuc2V0TWludXRlcygwKVxuICAgICAgICAgIGRhdGUuc2V0U2Vjb25kcygwKVxuICAgICAgICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzKDApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09IFRPS0VOUy5UT0tFTl9FUVVBTCkge1xuICAgICAgcGFzc2VkID0gZmlsdGVyID4gdmFsdWUgPT09IGZhbHNlICYmIGZpbHRlciA8IHZhbHVlID09IGZhbHNlXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBUT0tFTlMuVE9LRU5fTk9UX0VRVUFMKSB7XG4gICAgICBwYXNzZWQgPSAhKGZpbHRlciA+IHZhbHVlID09PSBmYWxzZSAmJiBmaWx0ZXIgPCB2YWx1ZSA9PSBmYWxzZSlcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRPS0VOUy5UT0tFTl9HUkVBVEVSKSB7XG4gICAgICBwYXNzZWQgPSBmaWx0ZXIgPCB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVE9LRU5TLlRPS0VOX0xFU1MpIHtcbiAgICAgIHBhc3NlZCA9IGZpbHRlciA+IHZhbHVlXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBUT0tFTlMuVE9LRU5fUkFOR0UgJiYgZmlsdGVyVG8pIHtcbiAgICAgIGlmIChpblJhbmdlSW5jbHVzaXZlKSB7XG4gICAgICAgIHBhc3NlZCA9XG4gICAgICAgICAgKChmaWx0ZXIgPCB2YWx1ZSB8fFxuICAgICAgICAgICAgKGZpbHRlciA+IHZhbHVlID09PSBmYWxzZSAmJiBmaWx0ZXIgPCB2YWx1ZSA9PSBmYWxzZSkpICYmXG4gICAgICAgICAgICBmaWx0ZXJUbyA+IHZhbHVlKSB8fFxuICAgICAgICAgIChmaWx0ZXJUbyA+IHZhbHVlID09PSBmYWxzZSAmJiBmaWx0ZXJUbyA8IHZhbHVlID09IGZhbHNlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFzc2VkID0gZmlsdGVyIDwgdmFsdWUgJiYgZmlsdGVyVG8gPiB2YWx1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXNzZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IHRvIGNsaWNrIGJ1dHRvbiBldmVudCBvbiB0aGUgZmlsdGVyIHBhbmVsIGFuZCBleGVjdXRlIHRoZVxuICAgKiByaWdodCBhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtFdmVudH0gZVxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9BcHBseUZpbHRlclBhbmVsQnV0dG9uQ2xpY2soZSkge1xuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0XG5cbiAgICBpZiAodGFyZ2V0Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xuICAgICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ3Jlc2V0JykpIHtcbiAgICAgICAgdGhpcy5fSm9pbkNvbmRpdGlvblBhbmVsLnJlc2V0KClcbiAgICAgICAgdGhpcy5fcGFyYW1zLmZpbHRlckNoYW5nZWRDYWxsYmFjaygpXG4gICAgICB9IGVsc2UgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2NsZWFyJykpIHtcbiAgICAgICAgdGhpcy5fSm9pbkNvbmRpdGlvblBhbmVsLnJlc2V0KClcbiAgICAgIH0gZWxzZSBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnYXBwbHknKSkge1xuICAgICAgICB0aGlzLl9wYXJhbXMuZmlsdGVyQ2hhbmdlZENhbGxiYWNrKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBmaWx0ZXIgc3RhdGUgYW5kIEFwcGx5IHRoZSBmaWx0ZXIgZGVwZW5kaW5nIG9uXG4gICAqIHdoZXRoZXIgdGhlIGBpc0FwcGx5QnV0dG9uQWN0aXZlYCBpcyB0cnVlIG9yIGZhbHNlXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZVxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzQXBwbHlCdXR0b25BY3RpdmVcbiAgICovXG4gIEBhdXRvYmluZFxuICBfb25Kb2luQ29uZGl0aW9uUGFuZWxTdGF0ZUNoYW5nZWQoc3RhdGUsIGlzQXBwbHlCdXR0b25BY3RpdmUpIHtcbiAgICB0aGlzLl9zdGF0ZSA9IHN0YXRlXG4gICAgaWYgKGZhbHNlID09PSBpc0FwcGx5QnV0dG9uQWN0aXZlKSB7XG4gICAgICB0aGlzLl9wYXJhbXMuZmlsdGVyQ2hhbmdlZENhbGxiYWNrKClcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWVGaWx0ZXJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9EYXRlVGltZUZpbHRlci9EYXRlVGltZUZpbHRlci5qcyIsIi8qKlxuICogUmV0dXJucyB0aGUgW3llYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kc10gdG9rZW5zIG9mIHRoZSBwcm92aWRlZFxuICogYGRhdGVgIGFzIGl0IHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIGB0aW1lWm9uZWAuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHR6VG9rZW5pemVEYXRlKGRhdGUsIHRpbWVab25lKSB7XG4gIHZhciBkdGYgPSBnZXREYXRlVGltZUZvcm1hdCh0aW1lWm9uZSlcbiAgcmV0dXJuIGR0Zi5mb3JtYXRUb1BhcnRzID8gcGFydHNPZmZzZXQoZHRmLCBkYXRlKSA6IGhhY2t5T2Zmc2V0KGR0ZiwgZGF0ZSlcbn1cblxudmFyIHR5cGVUb1BvcyA9IHtcbiAgeWVhcjogMCxcbiAgbW9udGg6IDEsXG4gIGRheTogMixcbiAgaG91cjogMyxcbiAgbWludXRlOiA0LFxuICBzZWNvbmQ6IDVcbn1cblxuZnVuY3Rpb24gcGFydHNPZmZzZXQoZHRmLCBkYXRlKSB7XG4gIHZhciBmb3JtYXR0ZWQgPSBkdGYuZm9ybWF0VG9QYXJ0cyhkYXRlKVxuICB2YXIgZmlsbGVkID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtYXR0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcG9zID0gdHlwZVRvUG9zW2Zvcm1hdHRlZFtpXS50eXBlXVxuXG4gICAgaWYgKHBvcyA+PSAwKSB7XG4gICAgICBmaWxsZWRbcG9zXSA9IHBhcnNlSW50KGZvcm1hdHRlZFtpXS52YWx1ZSwgMTApXG4gICAgfVxuICB9XG4gIHJldHVybiBmaWxsZWRcbn1cblxuZnVuY3Rpb24gaGFja3lPZmZzZXQoZHRmLCBkYXRlKSB7XG4gIHZhciBmb3JtYXR0ZWQgPSBkdGYuZm9ybWF0KGRhdGUpLnJlcGxhY2UoL1xcdTIwMEUvZywgJycpXG4gIHZhciBwYXJzZWQgPSAvKFxcZCspXFwvKFxcZCspXFwvKFxcZCspLD8gKFxcZCspOihcXGQrKTooXFxkKykvLmV4ZWMoZm9ybWF0dGVkKVxuICAvLyB2YXIgWywgZk1vbnRoLCBmRGF5LCBmWWVhciwgZkhvdXIsIGZNaW51dGUsIGZTZWNvbmRdID0gcGFyc2VkXG4gIC8vIHJldHVybiBbZlllYXIsIGZNb250aCwgZkRheSwgZkhvdXIsIGZNaW51dGUsIGZTZWNvbmRdXG4gIHJldHVybiBbcGFyc2VkWzNdLCBwYXJzZWRbMV0sIHBhcnNlZFsyXSwgcGFyc2VkWzRdLCBwYXJzZWRbNV0sIHBhcnNlZFs2XV1cbn1cblxuLy8gR2V0IGEgY2FjaGVkIEludGwuRGF0ZVRpbWVGb3JtYXQgaW5zdGFuY2UgZm9yIHRoZSBJQU5BIGB0aW1lWm9uZWAuIFRoaXMgY2FuIGJlIHVzZWRcbi8vIHRvIGdldCBkZXRlcm1pbmlzdGljIGxvY2FsIGRhdGUvdGltZSBvdXRwdXQgYWNjb3JkaW5nIHRvIHRoZSBgZW4tVVNgIGxvY2FsZSB3aGljaFxuLy8gY2FuIGJlIHVzZWQgdG8gZXh0cmFjdCBsb2NhbCB0aW1lIHBhcnRzIGFzIG5lY2Vzc2FyeS5cbnZhciBkdGZDYWNoZSA9IHt9XG5mdW5jdGlvbiBnZXREYXRlVGltZUZvcm1hdCh0aW1lWm9uZSkge1xuICBpZiAoIWR0ZkNhY2hlW3RpbWVab25lXSkge1xuICAgIC8vIE5ldyBicm93c2VycyB1c2UgYGhvdXJDeWNsZWAsIElFIGFuZCBDaHJvbWUgPDczIGRvZXMgbm90IHN1cHBvcnQgaXQgYW5kIHVzZXMgYGhvdXIxMmBcbiAgICB2YXIgdGVzdERhdGVGb3JtYXR0ZWQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XG4gICAgICBob3VyMTI6IGZhbHNlLFxuICAgICAgdGltZVpvbmU6ICdBbWVyaWNhL05ld19Zb3JrJyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXI6ICcyLWRpZ2l0JyxcbiAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgc2Vjb25kOiAnMi1kaWdpdCdcbiAgICB9KS5mb3JtYXQobmV3IERhdGUoJzIwMTQtMDYtMjVUMDQ6MDA6MDAuMTIzWicpKVxuICAgIHZhciBob3VyQ3ljbGVTdXBwb3J0ZWQgPVxuICAgICAgdGVzdERhdGVGb3JtYXR0ZWQgPT09ICcwNi8yNS8yMDE0LCAwMDowMDowMCcgfHxcbiAgICAgIHRlc3REYXRlRm9ybWF0dGVkID09PSAn4oCOMDbigI4v4oCOMjXigI4v4oCOMjAxNOKAjiDigI4wMOKAjjrigI4wMOKAjjrigI4wMCdcblxuICAgIGR0ZkNhY2hlW3RpbWVab25lXSA9IGhvdXJDeWNsZVN1cHBvcnRlZFxuICAgICAgPyBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XG4gICAgICAgICAgaG91cjEyOiBmYWxzZSxcbiAgICAgICAgICB0aW1lWm9uZTogdGltZVpvbmUsXG4gICAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICAgICAgZGF5OiAnMi1kaWdpdCcsXG4gICAgICAgICAgaG91cjogJzItZGlnaXQnLFxuICAgICAgICAgIG1pbnV0ZTogJzItZGlnaXQnLFxuICAgICAgICAgIHNlY29uZDogJzItZGlnaXQnXG4gICAgICAgIH0pXG4gICAgICA6IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHtcbiAgICAgICAgICBob3VyQ3ljbGU6ICdoMjMnLFxuICAgICAgICAgIHRpbWVab25lOiB0aW1lWm9uZSxcbiAgICAgICAgICB5ZWFyOiAnbnVtZXJpYycsXG4gICAgICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcbiAgICAgICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgICAgICBob3VyOiAnMi1kaWdpdCcsXG4gICAgICAgICAgbWludXRlOiAnMi1kaWdpdCcsXG4gICAgICAgICAgc2Vjb25kOiAnMi1kaWdpdCdcbiAgICAgICAgfSlcbiAgfVxuICByZXR1cm4gZHRmQ2FjaGVbdGltZVpvbmVdXG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9kYXRlLWZucy10ei9lc20vX2xpYi90elRva2VuaXplRGF0ZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsImltcG9ydCB0b0ludGVnZXIgZnJvbSAnLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanMnO1xuaW1wb3J0IGFkZE1pbGxpc2Vjb25kcyBmcm9tICcuLi9hZGRNaWxsaXNlY29uZHMvaW5kZXguanMnO1xuLyoqXG4gKiBAbmFtZSBzdWJNaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBNaWxsaXNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBTdWJ0cmFjdCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMgZnJvbSB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFN1YnRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqICMjIyB2Mi4wLjAgYnJlYWtpbmcgY2hhbmdlczpcbiAqXG4gKiAtIFtDaGFuZ2VzIHRoYXQgYXJlIGNvbW1vbiBmb3IgdGhlIHdob2xlIGxpYnJhcnldKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9ibG9iL21hc3Rlci9kb2NzL3VwZ3JhZGVHdWlkZS5tZCNDb21tb24tQ2hhbmdlcykuXG4gKlxuICogQHBhcmFtIHtEYXRlfE51bWJlcn0gZGF0ZSAtIHRoZSBkYXRlIHRvIGJlIGNoYW5nZWRcbiAqIEBwYXJhbSB7TnVtYmVyfSBhbW91bnQgLSB0aGUgYW1vdW50IG9mIG1pbGxpc2Vjb25kcyB0byBiZSBzdWJ0cmFjdGVkXG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIG5ldyBkYXRlIHdpdGggdGhlIG1pbGxpc2Vjb25kcyBzdWJ0cmFjdGVkXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFN1YnRyYWN0IDc1MCBtaWxsaXNlY29uZHMgZnJvbSAxMCBKdWx5IDIwMTQgMTI6NDU6MzAuMDAwOlxuICogdmFyIHJlc3VsdCA9IHN1Yk1pbGxpc2Vjb25kcyhuZXcgRGF0ZSgyMDE0LCA2LCAxMCwgMTIsIDQ1LCAzMCwgMCksIDc1MClcbiAqIC8vPT4gVGh1IEp1bCAxMCAyMDE0IDEyOjQ1OjI5LjI1MFxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHN1Yk1pbGxpc2Vjb25kcyhkaXJ0eURhdGUsIGRpcnR5QW1vdW50KSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzIgYXJndW1lbnRzIHJlcXVpcmVkLCBidXQgb25seSAnICsgYXJndW1lbnRzLmxlbmd0aCArICcgcHJlc2VudCcpO1xuICB9XG5cbiAgdmFyIGFtb3VudCA9IHRvSW50ZWdlcihkaXJ0eUFtb3VudCk7XG4gIHJldHVybiBhZGRNaWxsaXNlY29uZHMoZGlydHlEYXRlLCAtYW1vdW50KTtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy9kYXRlLWZucy9lc20vc3ViTWlsbGlzZWNvbmRzL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSAxMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsImltcG9ydCB0b0ludGVnZXIgZnJvbSAnLi4vX2xpYi90b0ludGVnZXIvaW5kZXguanMnO1xuaW1wb3J0IHRvRGF0ZSBmcm9tICcuLi90b0RhdGUvaW5kZXguanMnO1xuLyoqXG4gKiBAbmFtZSBhZGRNaWxsaXNlY29uZHNcbiAqIEBjYXRlZ29yeSBNaWxsaXNlY29uZCBIZWxwZXJzXG4gKiBAc3VtbWFyeSBBZGQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHRoZSBnaXZlbiBkYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0aGUgZ2l2ZW4gZGF0ZS5cbiAqXG4gKiAjIyMgdjIuMC4wIGJyZWFraW5nIGNoYW5nZXM6XG4gKlxuICogLSBbQ2hhbmdlcyB0aGF0IGFyZSBjb21tb24gZm9yIHRoZSB3aG9sZSBsaWJyYXJ5XShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi9tYXN0ZXIvZG9jcy91cGdyYWRlR3VpZGUubWQjQ29tbW9uLUNoYW5nZXMpLlxuICpcbiAqIEBwYXJhbSB7RGF0ZXxOdW1iZXJ9IGRhdGUgLSB0aGUgZGF0ZSB0byBiZSBjaGFuZ2VkXG4gKiBAcGFyYW0ge051bWJlcn0gYW1vdW50IC0gdGhlIGFtb3VudCBvZiBtaWxsaXNlY29uZHMgdG8gYmUgYWRkZWRcbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgbmV3IGRhdGUgd2l0aCB0aGUgbWlsbGlzZWNvbmRzIGFkZGVkXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IDIgYXJndW1lbnRzIHJlcXVpcmVkXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEFkZCA3NTAgbWlsbGlzZWNvbmRzIHRvIDEwIEp1bHkgMjAxNCAxMjo0NTozMC4wMDA6XG4gKiB2YXIgcmVzdWx0ID0gYWRkTWlsbGlzZWNvbmRzKG5ldyBEYXRlKDIwMTQsIDYsIDEwLCAxMiwgNDUsIDMwLCAwKSwgNzUwKVxuICogLy89PiBUaHUgSnVsIDEwIDIwMTQgMTI6NDU6MzAuNzUwXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkTWlsbGlzZWNvbmRzKGRpcnR5RGF0ZSwgZGlydHlBbW91bnQpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAyKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignMiBhcmd1bWVudHMgcmVxdWlyZWQsIGJ1dCBvbmx5ICcgKyBhcmd1bWVudHMubGVuZ3RoICsgJyBwcmVzZW50Jyk7XG4gIH1cblxuICB2YXIgdGltZXN0YW1wID0gdG9EYXRlKGRpcnR5RGF0ZSkuZ2V0VGltZSgpO1xuICB2YXIgYW1vdW50ID0gdG9JbnRlZ2VyKGRpcnR5QW1vdW50KTtcbiAgcmV0dXJuIG5ldyBEYXRlKHRpbWVzdGFtcCArIGFtb3VudCk7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZXNtL2FkZE1pbGxpc2Vjb25kcy9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCIvKipcbiAqIEBuYW1lIHRvRGF0ZVxuICogQGNhdGVnb3J5IENvbW1vbiBIZWxwZXJzXG4gKiBAc3VtbWFyeSBDb252ZXJ0IHRoZSBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnN0YW5jZSBvZiBEYXRlLlxuICpcbiAqIEBkZXNjcmlwdGlvblxuICogQ29udmVydCB0aGUgZ2l2ZW4gYXJndW1lbnQgdG8gYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgYW4gaW5zdGFuY2Ugb2YgRGF0ZSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgaXRzIGNsb25lLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBhIG51bWJlciwgaXQgaXMgdHJlYXRlZCBhcyBhIHRpbWVzdGFtcC5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgbm9uZSBvZiB0aGUgYWJvdmUsIHRoZSBmdW5jdGlvbiByZXR1cm5zIEludmFsaWQgRGF0ZS5cbiAqXG4gKiAqKk5vdGUqKjogKmFsbCogRGF0ZSBhcmd1bWVudHMgcGFzc2VkIHRvIGFueSAqZGF0ZS1mbnMqIGZ1bmN0aW9uIGlzIHByb2Nlc3NlZCBieSBgdG9EYXRlYC5cbiAqXG4gKiBAcGFyYW0ge0RhdGV8TnVtYmVyfSBhcmd1bWVudCAtIHRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gKiBAcmV0dXJucyB7RGF0ZX0gdGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqIEB0aHJvd3Mge1R5cGVFcnJvcn0gMSBhcmd1bWVudCByZXF1aXJlZFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDbG9uZSB0aGUgZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IHRvRGF0ZShuZXcgRGF0ZSgyMDE0LCAxLCAxMSwgMTEsIDMwLCAzMCkpXG4gKiAvLz0+IFR1ZSBGZWIgMTEgMjAxNCAxMTozMDozMFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IHRoZSB0aW1lc3RhbXAgdG8gZGF0ZTpcbiAqIGNvbnN0IHJlc3VsdCA9IHRvRGF0ZSgxMzkyMDk4NDMwMDAwKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9EYXRlKGFyZ3VtZW50KSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5ICcgKyBhcmd1bWVudHMubGVuZ3RoICsgJyBwcmVzZW50Jyk7XG4gIH1cblxuICB2YXIgYXJnU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KTsgLy8gQ2xvbmUgdGhlIGRhdGVcblxuICBpZiAoYXJndW1lbnQgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiBhcmd1bWVudCA9PT0gJ29iamVjdCcgJiYgYXJnU3RyID09PSAnW29iamVjdCBEYXRlXScpIHtcbiAgICAvLyBQcmV2ZW50IHRoZSBkYXRlIHRvIGxvc2UgdGhlIG1pbGxpc2Vjb25kcyB3aGVuIHBhc3NlZCB0byBuZXcgRGF0ZSgpIGluIElFMTBcbiAgICByZXR1cm4gbmV3IERhdGUoYXJndW1lbnQuZ2V0VGltZSgpKTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYXJndW1lbnQgPT09ICdudW1iZXInIHx8IGFyZ1N0ciA9PT0gJ1tvYmplY3QgTnVtYmVyXScpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoYXJndW1lbnQpO1xuICB9IGVsc2Uge1xuICAgIGlmICgodHlwZW9mIGFyZ3VtZW50ID09PSAnc3RyaW5nJyB8fCBhcmdTdHIgPT09ICdbb2JqZWN0IFN0cmluZ10nKSAmJiB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oXCJTdGFydGluZyB3aXRoIHYyLjAuMC1iZXRhLjEgZGF0ZS1mbnMgZG9lc24ndCBhY2NlcHQgc3RyaW5ncyBhcyBhcmd1bWVudHMuIFBsZWFzZSB1c2UgYHBhcnNlSVNPYCB0byBwYXJzZSBzdHJpbmdzLiBTZWU6IGh0dHBzOi8vZ2l0LmlvL2ZqdWxlXCIpOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuXG4gICAgICBjb25zb2xlLndhcm4obmV3IEVycm9yKCkuc3RhY2spO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pO1xuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZXNtL3RvRGF0ZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTJcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCJpbXBvcnQgdG9JbnRlZ2VyIGZyb20gJ2RhdGUtZm5zL2VzbS9fbGliL3RvSW50ZWdlci9pbmRleC5qcydcbmltcG9ydCBnZXRUaW1lem9uZU9mZnNldEluTWlsbGlzZWNvbmRzIGZyb20gJ2RhdGUtZm5zL2VzbS9fbGliL2dldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMvaW5kZXguanMnXG5pbXBvcnQgdHpQYXJzZVRpbWV6b25lIGZyb20gJy4uL19saWIvdHpQYXJzZVRpbWV6b25lJ1xuXG52YXIgTUlMTElTRUNPTkRTX0lOX0hPVVIgPSAzNjAwMDAwXG52YXIgTUlMTElTRUNPTkRTX0lOX01JTlVURSA9IDYwMDAwXG52YXIgREVGQVVMVF9BRERJVElPTkFMX0RJR0lUUyA9IDJcblxudmFyIHBhdHRlcm5zID0ge1xuICBkYXRlVGltZURlbGltZXRlcjogL1tUIF0vLFxuICBwbGFpblRpbWU6IC86LyxcbiAgdGltZVpvbmVEZWxpbWV0ZXI6IC9bWiBdL2ksXG5cbiAgLy8geWVhciB0b2tlbnNcbiAgWVk6IC9eKFxcZHsyfSkkLyxcbiAgWVlZOiBbXG4gICAgL14oWystXVxcZHsyfSkkLywgLy8gMCBhZGRpdGlvbmFsIGRpZ2l0c1xuICAgIC9eKFsrLV1cXGR7M30pJC8sIC8vIDEgYWRkaXRpb25hbCBkaWdpdFxuICAgIC9eKFsrLV1cXGR7NH0pJC8gLy8gMiBhZGRpdGlvbmFsIGRpZ2l0c1xuICBdLFxuICBZWVlZOiAvXihcXGR7NH0pLyxcbiAgWVlZWVk6IFtcbiAgICAvXihbKy1dXFxkezR9KS8sIC8vIDAgYWRkaXRpb25hbCBkaWdpdHNcbiAgICAvXihbKy1dXFxkezV9KS8sIC8vIDEgYWRkaXRpb25hbCBkaWdpdFxuICAgIC9eKFsrLV1cXGR7Nn0pLyAvLyAyIGFkZGl0aW9uYWwgZGlnaXRzXG4gIF0sXG5cbiAgLy8gZGF0ZSB0b2tlbnNcbiAgTU06IC9eLShcXGR7Mn0pJC8sXG4gIERERDogL14tPyhcXGR7M30pJC8sXG4gIE1NREQ6IC9eLT8oXFxkezJ9KS0/KFxcZHsyfSkkLyxcbiAgV3d3OiAvXi0/VyhcXGR7Mn0pJC8sXG4gIFd3d0Q6IC9eLT9XKFxcZHsyfSktPyhcXGR7MX0pJC8sXG5cbiAgSEg6IC9eKFxcZHsyfShbLixdXFxkKik/KSQvLFxuICBISE1NOiAvXihcXGR7Mn0pOj8oXFxkezJ9KFsuLF1cXGQqKT8pJC8sXG4gIEhITU1TUzogL14oXFxkezJ9KTo/KFxcZHsyfSk6PyhcXGR7Mn0oWy4sXVxcZCopPykkLyxcblxuICAvLyB0aW1lem9uZSB0b2tlbnMgKHRvIGlkZW50aWZ5IHRoZSBwcmVzZW5jZSBvZiBhIHR6KVxuICB0aW1lem9uZTogLyhbWistXS4qfCBVVEN8KD86W2EtekEtWl0rXFwvW2EtekEtWl9dKyg/OlxcL1thLXpBLVpfXSspPykpJC9cbn1cblxuLyoqXG4gKiBAbmFtZSB0b0RhdGVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgQ29udmVydCB0aGUgZ2l2ZW4gYXJndW1lbnQgdG8gYW4gaW5zdGFuY2Ugb2YgRGF0ZS5cbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqIENvbnZlcnQgdGhlIGdpdmVuIGFyZ3VtZW50IHRvIGFuIGluc3RhbmNlIG9mIERhdGUuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIGFuIGluc3RhbmNlIG9mIERhdGUsIHRoZSBmdW5jdGlvbiByZXR1cm5zIGl0cyBjbG9uZS5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgYSBudW1iZXIsIGl0IGlzIHRyZWF0ZWQgYXMgYSB0aW1lc3RhbXAuXG4gKlxuICogSWYgYW4gYXJndW1lbnQgaXMgYSBzdHJpbmcsIHRoZSBmdW5jdGlvbiB0cmllcyB0byBwYXJzZSBpdC5cbiAqIEZ1bmN0aW9uIGFjY2VwdHMgY29tcGxldGUgSVNPIDg2MDEgZm9ybWF0cyBhcyB3ZWxsIGFzIHBhcnRpYWwgaW1wbGVtZW50YXRpb25zLlxuICogSVNPIDg2MDE6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDFcbiAqIElmIHRoZSBmdW5jdGlvbiBjYW5ub3QgcGFyc2UgdGhlIHN0cmluZyBvciB0aGUgdmFsdWVzIGFyZSBpbnZhbGlkLCBpdCByZXR1cm5zIEludmFsaWQgRGF0ZS5cbiAqXG4gKiBJZiB0aGUgYXJndW1lbnQgaXMgbm9uZSBvZiB0aGUgYWJvdmUsIHRoZSBmdW5jdGlvbiByZXR1cm5zIEludmFsaWQgRGF0ZS5cbiAqXG4gKiAqKk5vdGUqKjogKmFsbCogRGF0ZSBhcmd1bWVudHMgcGFzc2VkIHRvIGFueSAqZGF0ZS1mbnMqIGZ1bmN0aW9uIGlzIHByb2Nlc3NlZCBieSBgdG9EYXRlYC5cbiAqIEFsbCAqZGF0ZS1mbnMqIGZ1bmN0aW9ucyB3aWxsIHRocm93IGBSYW5nZUVycm9yYCBpZiBgb3B0aW9ucy5hZGRpdGlvbmFsRGlnaXRzYCBpcyBub3QgMCwgMSwgMiBvciB1bmRlZmluZWQuXG4gKlxuICogQHBhcmFtIHtEYXRlfFN0cmluZ3xOdW1iZXJ9IGFyZ3VtZW50IC0gdGhlIHZhbHVlIHRvIGNvbnZlcnRcbiAqIEBwYXJhbSB7T3B0aW9uc1dpdGhUWn0gW29wdGlvbnNdIC0gdGhlIG9iamVjdCB3aXRoIG9wdGlvbnMuIFNlZSBbT3B0aW9uc117QGxpbmsgaHR0cHM6Ly9kYXRlLWZucy5vcmcvZG9jcy9PcHRpb25zfVxuICogQHBhcmFtIHswfDF8Mn0gW29wdGlvbnMuYWRkaXRpb25hbERpZ2l0cz0yXSAtIHRoZSBhZGRpdGlvbmFsIG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIGV4dGVuZGVkIHllYXIgZm9ybWF0XG4gKiBAcGFyYW0ge1N0cmluZ30gW29wdGlvbnMudGltZVpvbmU9JyddIC0gdXNlZCB0byBzcGVjaWZ5IHRoZSBJQU5BIHRpbWUgem9uZSBvZmZzZXQgb2YgYSBkYXRlIFN0cmluZy5cbiAqIEByZXR1cm5zIHtEYXRlfSB0aGUgcGFyc2VkIGRhdGUgaW4gdGhlIGxvY2FsIHRpbWUgem9uZVxuICogQHRocm93cyB7VHlwZUVycm9yfSAxIGFyZ3VtZW50IHJlcXVpcmVkXG4gKiBAdGhyb3dzIHtSYW5nZUVycm9yfSBgb3B0aW9ucy5hZGRpdGlvbmFsRGlnaXRzYCBtdXN0IGJlIDAsIDEgb3IgMlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb252ZXJ0IHN0cmluZyAnMjAxNC0wMi0xMVQxMTozMDozMCcgdG8gZGF0ZTpcbiAqIHZhciByZXN1bHQgPSB0b0RhdGUoJzIwMTQtMDItMTFUMTE6MzA6MzAnKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCBzdHJpbmcgJyswMjAxNDEwMScgdG8gZGF0ZSxcbiAqIC8vIGlmIHRoZSBhZGRpdGlvbmFsIG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIGV4dGVuZGVkIHllYXIgZm9ybWF0IGlzIDE6XG4gKiB2YXIgcmVzdWx0ID0gdG9EYXRlKCcrMDIwMTQxMDEnLCB7YWRkaXRpb25hbERpZ2l0czogMX0pXG4gKiAvLz0+IEZyaSBBcHIgMTEgMjAxNCAwMDowMDowMFxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0b0RhdGUoYXJndW1lbnQsIGRpcnR5T3B0aW9ucykge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDEpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgJzEgYXJndW1lbnQgcmVxdWlyZWQsIGJ1dCBvbmx5ICcgKyBhcmd1bWVudHMubGVuZ3RoICsgJyBwcmVzZW50J1xuICAgIClcbiAgfVxuXG4gIGlmIChhcmd1bWVudCA9PT0gbnVsbCkge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pXG4gIH1cblxuICB2YXIgb3B0aW9ucyA9IGRpcnR5T3B0aW9ucyB8fCB7fVxuXG4gIHZhciBhZGRpdGlvbmFsRGlnaXRzID1cbiAgICBvcHRpb25zLmFkZGl0aW9uYWxEaWdpdHMgPT0gbnVsbFxuICAgICAgPyBERUZBVUxUX0FERElUSU9OQUxfRElHSVRTXG4gICAgICA6IHRvSW50ZWdlcihvcHRpb25zLmFkZGl0aW9uYWxEaWdpdHMpXG4gIGlmIChcbiAgICBhZGRpdGlvbmFsRGlnaXRzICE9PSAyICYmXG4gICAgYWRkaXRpb25hbERpZ2l0cyAhPT0gMSAmJlxuICAgIGFkZGl0aW9uYWxEaWdpdHMgIT09IDBcbiAgKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ2FkZGl0aW9uYWxEaWdpdHMgbXVzdCBiZSAwLCAxIG9yIDInKVxuICB9XG5cbiAgLy8gQ2xvbmUgdGhlIGRhdGVcbiAgaWYgKFxuICAgIGFyZ3VtZW50IGluc3RhbmNlb2YgRGF0ZSB8fFxuICAgICh0eXBlb2YgYXJndW1lbnQgPT09ICdvYmplY3QnICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJndW1lbnQpID09PSAnW29iamVjdCBEYXRlXScpXG4gICkge1xuICAgIC8vIFByZXZlbnQgdGhlIGRhdGUgdG8gbG9zZSB0aGUgbWlsbGlzZWNvbmRzIHdoZW4gcGFzc2VkIHRvIG5ldyBEYXRlKCkgaW4gSUUxMFxuICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudC5nZXRUaW1lKCkpXG4gIH0gZWxzZSBpZiAoXG4gICAgdHlwZW9mIGFyZ3VtZW50ID09PSAnbnVtYmVyJyB8fFxuICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmd1bWVudCkgPT09ICdbb2JqZWN0IE51bWJlcl0nXG4gICkge1xuICAgIHJldHVybiBuZXcgRGF0ZShhcmd1bWVudClcbiAgfSBlbHNlIGlmIChcbiAgICAhKFxuICAgICAgdHlwZW9mIGFyZ3VtZW50ID09PSAnc3RyaW5nJyB8fFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGFyZ3VtZW50KSA9PT0gJ1tvYmplY3QgU3RyaW5nXSdcbiAgICApXG4gICkge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pXG4gIH1cblxuICB2YXIgZGF0ZVN0cmluZ3MgPSBzcGxpdERhdGVTdHJpbmcoYXJndW1lbnQpXG5cbiAgdmFyIHBhcnNlWWVhclJlc3VsdCA9IHBhcnNlWWVhcihkYXRlU3RyaW5ncy5kYXRlLCBhZGRpdGlvbmFsRGlnaXRzKVxuICB2YXIgeWVhciA9IHBhcnNlWWVhclJlc3VsdC55ZWFyXG4gIHZhciByZXN0RGF0ZVN0cmluZyA9IHBhcnNlWWVhclJlc3VsdC5yZXN0RGF0ZVN0cmluZ1xuXG4gIHZhciBkYXRlID0gcGFyc2VEYXRlKHJlc3REYXRlU3RyaW5nLCB5ZWFyKVxuXG4gIGlmIChpc05hTihkYXRlKSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShOYU4pXG4gIH1cblxuICBpZiAoZGF0ZSkge1xuICAgIHZhciB0aW1lc3RhbXAgPSBkYXRlLmdldFRpbWUoKVxuICAgIHZhciB0aW1lID0gMFxuICAgIHZhciBvZmZzZXRcblxuICAgIGlmIChkYXRlU3RyaW5ncy50aW1lKSB7XG4gICAgICB0aW1lID0gcGFyc2VUaW1lKGRhdGVTdHJpbmdzLnRpbWUpXG5cbiAgICAgIGlmIChpc05hTih0aW1lKSkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoTmFOKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkYXRlU3RyaW5ncy50aW1lem9uZSB8fCBvcHRpb25zLnRpbWVab25lKSB7XG4gICAgICBvZmZzZXQgPSB0elBhcnNlVGltZXpvbmUoXG4gICAgICAgIGRhdGVTdHJpbmdzLnRpbWV6b25lIHx8IG9wdGlvbnMudGltZVpvbmUsXG4gICAgICAgIG5ldyBEYXRlKHRpbWVzdGFtcCArIHRpbWUpXG4gICAgICApXG4gICAgICBpZiAoaXNOYU4ob2Zmc2V0KSkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoTmFOKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBnZXQgb2Zmc2V0IGFjY3VyYXRlIHRvIGhvdXIgaW4gdGltZXpvbmVzIHRoYXQgY2hhbmdlIG9mZnNldFxuICAgICAgb2Zmc2V0ID0gZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcyhuZXcgRGF0ZSh0aW1lc3RhbXAgKyB0aW1lKSlcbiAgICAgIG9mZnNldCA9IGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoXG4gICAgICAgIG5ldyBEYXRlKHRpbWVzdGFtcCArIHRpbWUgKyBvZmZzZXQpXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRpbWVzdGFtcCArIHRpbWUgKyBvZmZzZXQpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKE5hTilcbiAgfVxufVxuXG5mdW5jdGlvbiBzcGxpdERhdGVTdHJpbmcoZGF0ZVN0cmluZykge1xuICB2YXIgZGF0ZVN0cmluZ3MgPSB7fVxuICB2YXIgYXJyYXkgPSBkYXRlU3RyaW5nLnNwbGl0KHBhdHRlcm5zLmRhdGVUaW1lRGVsaW1ldGVyKVxuICB2YXIgdGltZVN0cmluZ1xuXG4gIGlmIChwYXR0ZXJucy5wbGFpblRpbWUudGVzdChhcnJheVswXSkpIHtcbiAgICBkYXRlU3RyaW5ncy5kYXRlID0gbnVsbFxuICAgIHRpbWVTdHJpbmcgPSBhcnJheVswXVxuICB9IGVsc2Uge1xuICAgIGRhdGVTdHJpbmdzLmRhdGUgPSBhcnJheVswXVxuICAgIHRpbWVTdHJpbmcgPSBhcnJheVsxXVxuICAgIGRhdGVTdHJpbmdzLnRpbWV6b25lID0gYXJyYXlbMl1cbiAgICBpZiAocGF0dGVybnMudGltZVpvbmVEZWxpbWV0ZXIudGVzdChkYXRlU3RyaW5ncy5kYXRlKSkge1xuICAgICAgZGF0ZVN0cmluZ3MuZGF0ZSA9IGRhdGVTdHJpbmcuc3BsaXQocGF0dGVybnMudGltZVpvbmVEZWxpbWV0ZXIpWzBdXG4gICAgICB0aW1lU3RyaW5nID0gZGF0ZVN0cmluZy5zdWJzdHIoZGF0ZVN0cmluZ3MuZGF0ZS5sZW5ndGgsIGRhdGVTdHJpbmcubGVuZ3RoKVxuICAgIH1cbiAgfVxuXG4gIGlmICh0aW1lU3RyaW5nKSB7XG4gICAgdmFyIHRva2VuID0gcGF0dGVybnMudGltZXpvbmUuZXhlYyh0aW1lU3RyaW5nKVxuICAgIGlmICh0b2tlbikge1xuICAgICAgZGF0ZVN0cmluZ3MudGltZSA9IHRpbWVTdHJpbmcucmVwbGFjZSh0b2tlblsxXSwgJycpXG4gICAgICBkYXRlU3RyaW5ncy50aW1lem9uZSA9IHRva2VuWzFdXG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGVTdHJpbmdzLnRpbWUgPSB0aW1lU3RyaW5nXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRhdGVTdHJpbmdzXG59XG5cbmZ1bmN0aW9uIHBhcnNlWWVhcihkYXRlU3RyaW5nLCBhZGRpdGlvbmFsRGlnaXRzKSB7XG4gIHZhciBwYXR0ZXJuWVlZID0gcGF0dGVybnMuWVlZW2FkZGl0aW9uYWxEaWdpdHNdXG4gIHZhciBwYXR0ZXJuWVlZWVkgPSBwYXR0ZXJucy5ZWVlZWVthZGRpdGlvbmFsRGlnaXRzXVxuXG4gIHZhciB0b2tlblxuXG4gIC8vIFlZWVkgb3IgwrFZWVlZWVxuICB0b2tlbiA9IHBhdHRlcm5zLllZWVkuZXhlYyhkYXRlU3RyaW5nKSB8fCBwYXR0ZXJuWVlZWVkuZXhlYyhkYXRlU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICB2YXIgeWVhclN0cmluZyA9IHRva2VuWzFdXG4gICAgcmV0dXJuIHtcbiAgICAgIHllYXI6IHBhcnNlSW50KHllYXJTdHJpbmcsIDEwKSxcbiAgICAgIHJlc3REYXRlU3RyaW5nOiBkYXRlU3RyaW5nLnNsaWNlKHllYXJTdHJpbmcubGVuZ3RoKVxuICAgIH1cbiAgfVxuXG4gIC8vIFlZIG9yIMKxWVlZXG4gIHRva2VuID0gcGF0dGVybnMuWVkuZXhlYyhkYXRlU3RyaW5nKSB8fCBwYXR0ZXJuWVlZLmV4ZWMoZGF0ZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgdmFyIGNlbnR1cnlTdHJpbmcgPSB0b2tlblsxXVxuICAgIHJldHVybiB7XG4gICAgICB5ZWFyOiBwYXJzZUludChjZW50dXJ5U3RyaW5nLCAxMCkgKiAxMDAsXG4gICAgICByZXN0RGF0ZVN0cmluZzogZGF0ZVN0cmluZy5zbGljZShjZW50dXJ5U3RyaW5nLmxlbmd0aClcbiAgICB9XG4gIH1cblxuICAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgeWVhclxuICByZXR1cm4ge1xuICAgIHllYXI6IG51bGxcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZURhdGUoZGF0ZVN0cmluZywgeWVhcikge1xuICAvLyBJbnZhbGlkIElTTy1mb3JtYXR0ZWQgeWVhclxuICBpZiAoeWVhciA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICB2YXIgdG9rZW5cbiAgdmFyIGRhdGVcbiAgdmFyIG1vbnRoXG4gIHZhciB3ZWVrXG5cbiAgLy8gWVlZWVxuICBpZiAoZGF0ZVN0cmluZy5sZW5ndGggPT09IDApIHtcbiAgICBkYXRlID0gbmV3IERhdGUoMClcbiAgICBkYXRlLnNldFVUQ0Z1bGxZZWFyKHllYXIpXG4gICAgcmV0dXJuIGRhdGVcbiAgfVxuXG4gIC8vIFlZWVktTU1cbiAgdG9rZW4gPSBwYXR0ZXJucy5NTS5leGVjKGRhdGVTdHJpbmcpXG4gIGlmICh0b2tlbikge1xuICAgIGRhdGUgPSBuZXcgRGF0ZSgwKVxuICAgIG1vbnRoID0gcGFyc2VJbnQodG9rZW5bMV0sIDEwKSAtIDFcblxuICAgIGlmICghdmFsaWRhdGVEYXRlKHllYXIsIG1vbnRoKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTilcbiAgICB9XG5cbiAgICBkYXRlLnNldFVUQ0Z1bGxZZWFyKHllYXIsIG1vbnRoKVxuICAgIHJldHVybiBkYXRlXG4gIH1cblxuICAvLyBZWVlZLURERCBvciBZWVlZREREXG4gIHRva2VuID0gcGF0dGVybnMuRERELmV4ZWMoZGF0ZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKDApXG4gICAgdmFyIGRheU9mWWVhciA9IHBhcnNlSW50KHRva2VuWzFdLCAxMClcblxuICAgIGlmICghdmFsaWRhdGVEYXlPZlllYXJEYXRlKHllYXIsIGRheU9mWWVhcikpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShOYU4pXG4gICAgfVxuXG4gICAgZGF0ZS5zZXRVVENGdWxsWWVhcih5ZWFyLCAwLCBkYXlPZlllYXIpXG4gICAgcmV0dXJuIGRhdGVcbiAgfVxuXG4gIC8vIHl5eXktTU0tZGQgb3IgWVlZWU1NRERcbiAgdG9rZW4gPSBwYXR0ZXJucy5NTURELmV4ZWMoZGF0ZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgZGF0ZSA9IG5ldyBEYXRlKDApXG4gICAgbW9udGggPSBwYXJzZUludCh0b2tlblsxXSwgMTApIC0gMVxuICAgIHZhciBkYXkgPSBwYXJzZUludCh0b2tlblsyXSwgMTApXG5cbiAgICBpZiAoIXZhbGlkYXRlRGF0ZSh5ZWFyLCBtb250aCwgZGF5KSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTilcbiAgICB9XG5cbiAgICBkYXRlLnNldFVUQ0Z1bGxZZWFyKHllYXIsIG1vbnRoLCBkYXkpXG4gICAgcmV0dXJuIGRhdGVcbiAgfVxuXG4gIC8vIFlZWVktV3d3IG9yIFlZWVlXd3dcbiAgdG9rZW4gPSBwYXR0ZXJucy5Xd3cuZXhlYyhkYXRlU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICB3ZWVrID0gcGFyc2VJbnQodG9rZW5bMV0sIDEwKSAtIDFcblxuICAgIGlmICghdmFsaWRhdGVXZWVrRGF0ZSh5ZWFyLCB3ZWVrKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE5hTilcbiAgICB9XG5cbiAgICByZXR1cm4gZGF5T2ZJU09XZWVrWWVhcih5ZWFyLCB3ZWVrKVxuICB9XG5cbiAgLy8gWVlZWS1Xd3ctRCBvciBZWVlZV3d3RFxuICB0b2tlbiA9IHBhdHRlcm5zLld3d0QuZXhlYyhkYXRlU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICB3ZWVrID0gcGFyc2VJbnQodG9rZW5bMV0sIDEwKSAtIDFcbiAgICB2YXIgZGF5T2ZXZWVrID0gcGFyc2VJbnQodG9rZW5bMl0sIDEwKSAtIDFcblxuICAgIGlmICghdmFsaWRhdGVXZWVrRGF0ZSh5ZWFyLCB3ZWVrLCBkYXlPZldlZWspKSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoTmFOKVxuICAgIH1cblxuICAgIHJldHVybiBkYXlPZklTT1dlZWtZZWFyKHllYXIsIHdlZWssIGRheU9mV2VlaylcbiAgfVxuXG4gIC8vIEludmFsaWQgSVNPLWZvcm1hdHRlZCBkYXRlXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIHBhcnNlVGltZSh0aW1lU3RyaW5nKSB7XG4gIHZhciB0b2tlblxuICB2YXIgaG91cnNcbiAgdmFyIG1pbnV0ZXNcblxuICAvLyBoaFxuICB0b2tlbiA9IHBhdHRlcm5zLkhILmV4ZWModGltZVN0cmluZylcbiAgaWYgKHRva2VuKSB7XG4gICAgaG91cnMgPSBwYXJzZUZsb2F0KHRva2VuWzFdLnJlcGxhY2UoJywnLCAnLicpKVxuXG4gICAgaWYgKCF2YWxpZGF0ZVRpbWUoaG91cnMpKSB7XG4gICAgICByZXR1cm4gTmFOXG4gICAgfVxuXG4gICAgcmV0dXJuIChob3VycyAlIDI0KSAqIE1JTExJU0VDT05EU19JTl9IT1VSXG4gIH1cblxuICAvLyBoaDptbSBvciBoaG1tXG4gIHRva2VuID0gcGF0dGVybnMuSEhNTS5leGVjKHRpbWVTdHJpbmcpXG4gIGlmICh0b2tlbikge1xuICAgIGhvdXJzID0gcGFyc2VJbnQodG9rZW5bMV0sIDEwKVxuICAgIG1pbnV0ZXMgPSBwYXJzZUZsb2F0KHRva2VuWzJdLnJlcGxhY2UoJywnLCAnLicpKVxuXG4gICAgaWYgKCF2YWxpZGF0ZVRpbWUoaG91cnMsIG1pbnV0ZXMpKSB7XG4gICAgICByZXR1cm4gTmFOXG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIChob3VycyAlIDI0KSAqIE1JTExJU0VDT05EU19JTl9IT1VSICsgbWludXRlcyAqIE1JTExJU0VDT05EU19JTl9NSU5VVEVcbiAgICApXG4gIH1cblxuICAvLyBoaDptbTpzcyBvciBoaG1tc3NcbiAgdG9rZW4gPSBwYXR0ZXJucy5ISE1NU1MuZXhlYyh0aW1lU3RyaW5nKVxuICBpZiAodG9rZW4pIHtcbiAgICBob3VycyA9IHBhcnNlSW50KHRva2VuWzFdLCAxMClcbiAgICBtaW51dGVzID0gcGFyc2VJbnQodG9rZW5bMl0sIDEwKVxuICAgIHZhciBzZWNvbmRzID0gcGFyc2VGbG9hdCh0b2tlblszXS5yZXBsYWNlKCcsJywgJy4nKSlcblxuICAgIGlmICghdmFsaWRhdGVUaW1lKGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSkge1xuICAgICAgcmV0dXJuIE5hTlxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAoaG91cnMgJSAyNCkgKiBNSUxMSVNFQ09ORFNfSU5fSE9VUiArXG4gICAgICBtaW51dGVzICogTUlMTElTRUNPTkRTX0lOX01JTlVURSArXG4gICAgICBzZWNvbmRzICogMTAwMFxuICAgIClcbiAgfVxuXG4gIC8vIEludmFsaWQgSVNPLWZvcm1hdHRlZCB0aW1lXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGRheU9mSVNPV2Vla1llYXIoaXNvV2Vla1llYXIsIHdlZWssIGRheSkge1xuICB3ZWVrID0gd2VlayB8fCAwXG4gIGRheSA9IGRheSB8fCAwXG4gIHZhciBkYXRlID0gbmV3IERhdGUoMClcbiAgZGF0ZS5zZXRVVENGdWxsWWVhcihpc29XZWVrWWVhciwgMCwgNClcbiAgdmFyIGZvdXJ0aE9mSmFudWFyeURheSA9IGRhdGUuZ2V0VVRDRGF5KCkgfHwgN1xuICB2YXIgZGlmZiA9IHdlZWsgKiA3ICsgZGF5ICsgMSAtIGZvdXJ0aE9mSmFudWFyeURheVxuICBkYXRlLnNldFVUQ0RhdGUoZGF0ZS5nZXRVVENEYXRlKCkgKyBkaWZmKVxuICByZXR1cm4gZGF0ZVxufVxuXG4vLyBWYWxpZGF0aW9uIGZ1bmN0aW9uc1xuXG52YXIgREFZU19JTl9NT05USCA9IFszMSwgMjgsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxXVxudmFyIERBWVNfSU5fTU9OVEhfTEVBUF9ZRUFSID0gWzMxLCAyOSwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdXG5cbmZ1bmN0aW9uIGlzTGVhcFllYXJJbmRleCh5ZWFyKSB7XG4gIHJldHVybiB5ZWFyICUgNDAwID09PSAwIHx8ICh5ZWFyICUgNCA9PT0gMCAmJiB5ZWFyICUgMTAwICE9PSAwKVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZURhdGUoeWVhciwgbW9udGgsIGRhdGUpIHtcbiAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoZGF0ZSAhPSBudWxsKSB7XG4gICAgaWYgKGRhdGUgPCAxKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICB2YXIgaXNMZWFwWWVhciA9IGlzTGVhcFllYXJJbmRleCh5ZWFyKVxuICAgIGlmIChpc0xlYXBZZWFyICYmIGRhdGUgPiBEQVlTX0lOX01PTlRIX0xFQVBfWUVBUlttb250aF0pIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBpZiAoIWlzTGVhcFllYXIgJiYgZGF0ZSA+IERBWVNfSU5fTU9OVEhbbW9udGhdKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZURheU9mWWVhckRhdGUoeWVhciwgZGF5T2ZZZWFyKSB7XG4gIGlmIChkYXlPZlllYXIgPCAxKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB2YXIgaXNMZWFwWWVhciA9IGlzTGVhcFllYXJJbmRleCh5ZWFyKVxuICBpZiAoaXNMZWFwWWVhciAmJiBkYXlPZlllYXIgPiAzNjYpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBpZiAoIWlzTGVhcFllYXIgJiYgZGF5T2ZZZWFyID4gMzY1KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVdlZWtEYXRlKHllYXIsIHdlZWssIGRheSkge1xuICBpZiAod2VlayA8IDAgfHwgd2VlayA+IDUyKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoZGF5ICE9IG51bGwgJiYgKGRheSA8IDAgfHwgZGF5ID4gNikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlVGltZShob3VycywgbWludXRlcywgc2Vjb25kcykge1xuICBpZiAoaG91cnMgIT0gbnVsbCAmJiAoaG91cnMgPCAwIHx8IGhvdXJzID49IDI1KSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG1pbnV0ZXMgIT0gbnVsbCAmJiAobWludXRlcyA8IDAgfHwgbWludXRlcyA+PSA2MCkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChzZWNvbmRzICE9IG51bGwgJiYgKHNlY29uZHMgPCAwIHx8IHNlY29uZHMgPj0gNjApKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMtdHovZXNtL3RvRGF0ZS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTNcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCJ2YXIgTUlMTElTRUNPTkRTX0lOX01JTlVURSA9IDYwMDAwO1xuLyoqXG4gKiBHb29nbGUgQ2hyb21lIGFzIG9mIDY3LjAuMzM5Ni44NyBpbnRyb2R1Y2VkIHRpbWV6b25lcyB3aXRoIG9mZnNldCB0aGF0IGluY2x1ZGVzIHNlY29uZHMuXG4gKiBUaGV5IHVzdWFsbHkgYXBwZWFyIGZvciBkYXRlcyB0aGF0IGRlbm90ZSB0aW1lIGJlZm9yZSB0aGUgdGltZXpvbmVzIHdlcmUgaW50cm9kdWNlZFxuICogKGUuZy4gZm9yICdFdXJvcGUvUHJhZ3VlJyB0aW1lem9uZSB0aGUgb2Zmc2V0IGlzIEdNVCswMDo1Nzo0NCBiZWZvcmUgMSBPY3RvYmVyIDE4OTFcbiAqIGFuZCBHTVQrMDE6MDA6MDAgYWZ0ZXIgdGhhdCBkYXRlKVxuICpcbiAqIERhdGUjZ2V0VGltZXpvbmVPZmZzZXQgcmV0dXJucyB0aGUgb2Zmc2V0IGluIG1pbnV0ZXMgYW5kIHdvdWxkIHJldHVybiA1NyBmb3IgdGhlIGV4YW1wbGUgYWJvdmUsXG4gKiB3aGljaCB3b3VsZCBsZWFkIHRvIGluY29ycmVjdCBjYWxjdWxhdGlvbnMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSB0aW1lem9uZSBvZmZzZXQgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGFrZXMgc2Vjb25kcyBpbiBhY2NvdW50LlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFRpbWV6b25lT2Zmc2V0SW5NaWxsaXNlY29uZHMoZGlydHlEYXRlKSB7XG4gIHZhciBkYXRlID0gbmV3IERhdGUoZGlydHlEYXRlLmdldFRpbWUoKSk7XG4gIHZhciBiYXNlVGltZXpvbmVPZmZzZXQgPSBNYXRoLmNlaWwoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpKTtcbiAgZGF0ZS5zZXRTZWNvbmRzKDAsIDApO1xuICB2YXIgbWlsbGlzZWNvbmRzUGFydE9mVGltZXpvbmVPZmZzZXQgPSBkYXRlLmdldFRpbWUoKSAlIE1JTExJU0VDT05EU19JTl9NSU5VVEU7XG4gIHJldHVybiBiYXNlVGltZXpvbmVPZmZzZXQgKiBNSUxMSVNFQ09ORFNfSU5fTUlOVVRFICsgbWlsbGlzZWNvbmRzUGFydE9mVGltZXpvbmVPZmZzZXQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvZXNtL19saWIvZ2V0VGltZXpvbmVPZmZzZXRJbk1pbGxpc2Vjb25kcy9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMTRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgKi9cblxuLyoqXG4gKiBFdmVudHMgTWl4aW5cbiAqXG4gKiBBbGxvdyBjbGFzc2VzIHRvIGhhdmUgdGhlaXIgb3duIGV2ZW50cyBtYW5hZ2VyXG4gKlxuICogQHBhcmFtIHtDbGFzc30gc3VwZXJDbGFzc1xuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNvbnN0IEV2ZW50c01peGluID0gc3VwZXJDbGFzcyA9PlxuICBjbGFzcyBleHRlbmRzIHN1cGVyQ2xhc3Mge1xuICAgIC8qKlxuICAgICAqIE9iamVjdCBvZiByZWdpc3RlcnMgaGFuZGxlcnNcbiAgICAgKlxuICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICovXG4gICAgX19oYW5kbGVycyA9IHt9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhbiBldmVudCBoYW5kbGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSBldmVudCBuYW1lXG4gICAgICogQHBhcmFtIHtGdW5jdGlvbn0gaGFuZGxlciBoYW5kbGVyIGZ1bmN0aW9uXG4gICAgICovXG4gICAgb24obmFtZSwgaGFuZGxlcikge1xuICAgICAgdGhpcy5fX2hhbmRsZXJzW25hbWVdID0gdGhpcy5fX2hhbmRsZXJzW25hbWVdIHx8IFtdXG4gICAgICB0aGlzLl9faGFuZGxlcnNbbmFtZV0ucHVzaChoYW5kbGVyKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhbiBldmVudCBoYW5kbGVyXG4gICAgICpcbiAgICAgKiAqKk5vdGUgOioqIGlmIGhhbmRsZXIgaXMgbm90IHByb3ZpZGVkIHRoZW4gYWxsIHJlZ2lzdGVyZWQgaGFuZGxlciBmb3IgdGhlIGdpdmVuIGV2ZW50IHdpbGwgYmUgcmVtb3ZlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgZXZlbnQgbmFtZVxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGhhbmRsZXIgaGFuZGxlciBmdW5jdGlvblxuICAgICAqL1xuICAgIG9mZihuYW1lLCBoYW5kbGVyKSB7XG4gICAgICB0aGlzLl9faGFuZGxlcnNbbmFtZV0gPSB0aGlzLl9faGFuZGxlcnNbbmFtZV0gfHwgW11cbiAgICAgIGlmICghaGFuZGxlcikge1xuICAgICAgICBkZWxldGUgdGhpcy5fX2hhbmRsZXJzW25hbWVdXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IHJlZ2lzdGVyZWRIYW5kbGVyIGluIHRoaXMuX19oYW5kbGVycykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX19oYW5kbGVycy5oYXNPd25Qcm9wZXJ0eShyZWdpc3RlcmVkSGFuZGxlcikgJiZcbiAgICAgICAgICAgIHRoaXMuX19oYW5kbGVyc1tyZWdpc3RlcmVkSGFuZGxlcl0gPT09IGhhbmRsZXJcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9faGFuZGxlcnNbbmFtZV1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOb3RpZnkgaGFuZGxlcnNcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIGV2ZW50IG5hbWVcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZXZlbnQgcGF5bG9hZFxuICAgICAqL1xuICAgIG5vdGlmeShuYW1lLCBwYXlsb2FkKSB7XG4gICAgICBjb25zdCBoYW5kbGVycyA9IHRoaXMuX19oYW5kbGVyc1tuYW1lXSB8fCBbXVxuICAgICAgaGFuZGxlcnMuZm9yRWFjaChoYW5kbGVyID0+IHtcbiAgICAgICAgaGFuZGxlcihwYXlsb2FkKVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuLyoqXG4gKiBBbiBldmVudHMgbWl4aW4gZGVjb3JhdG9yXG4gKlxuICogQHBhcmFtIHtDbGFzc30gc3VwZXJDbGFzc1xuICpcbiAqIEBzZWUge0V2ZW50c01peGlufVxuICovXG5mdW5jdGlvbiB3aXRoRXZlbnRzTWl4aW4oc3VwZXJDbGFzcykge1xuICByZXR1cm4gRXZlbnRzTWl4aW4oc3VwZXJDbGFzcylcbn1cblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRzTWl4aW5cbmV4cG9ydCB7IEV2ZW50c01peGluLCB3aXRoRXZlbnRzTWl4aW4gfVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0V2ZW50c01peGluL0V2ZW50c01peGluLmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWFnZ3JpZC1jb21wb25lbnRzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgYXV0b2JpbmQsIG92ZXJyaWRlLCByZWFkb25seSB9IGZyb20gJ2NvcmUtZGVjb3JhdG9ycydcbmltcG9ydCB7IHdpdGhFdmVudHNNaXhpbiB9IGZyb20gJy4uL0V2ZW50c01peGluJ1xuaW1wb3J0IENvbXBvbmVudCBmcm9tICcuLi9Db21wb25lbnQnXG5pbXBvcnQgJy4vc3R5bGUuc2NzcydcblxuLyoqXG4gKiBEYXRlVGltZUlucHV0XG4gKlxuICogU2ltcGxlIERhdGVUaW1lSW5wdXQgY29tcG9uZW50IHdoaWNoIGludGVncmF0ZXMgdGhlIGZsYXRwaWNrclxuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbkB3aXRoRXZlbnRzTWl4aW5cbmNsYXNzIERhdGVUaW1lSW5wdXQgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogQ29uc3RhbnQgd2hpY2ggZGVzY3JpYmVzIHRoZSBldmVudCBuYW1lIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGEgZGF0ZVxuICAgKiBpcyBzZWxlY3RlZCB1c2luZyB0aGUgZGF0ZSBwaWNrZXJcbiAgICpcbiAgICogQHR5cGUge1N0cmluZ31cbiAgICovXG4gIEByZWFkb25seVxuICBzdGF0aWMgT05fREFURV9DSEFOR0VEID0gJ0RhdGVUaW1lSW5wdXQuT05fREFURV9DSEFOR0VEJ1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBwaWNrZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHR5cGUge0ZsYXRwaWNrckZufVxuICAgKi9cbiAgcGlja2VyID0gbnVsbFxuXG4gIC8qKlxuICAgKiBUaGUgbGFzdCBzZWxlY3RlZCBkYXRlXG4gICAqXG4gICAqIEB0eXBlIHtEYXRlfG51bGx9XG4gICAqL1xuICBzZWxlY3RlZERhdGUgPSBudWxsXG5cbiAgLyoqXG4gICAqIFRoZSBjb21wb25lbnQgcmVjZWl2ZWQgcGFyYW1zIHdoZW4gaW5pdCBpcyBjYWxsZWRcbiAgICpzXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBfcGFyYW1zID0ge31cblxuICAvKipcbiAgICogQ29uc3RydWN0IG5ldyBEYXRlVGltZUlucHV0XG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG5cbiAgICB0aGlzLl9ndWkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRoaXMuX2d1aS5jbGFzc05hbWUgPSAnYWctaW5wdXQtd3JhcHBlcidcbiAgICB0aGlzLl9ndWkuaW5uZXJIVE1MID0gLyogaHRtbCAqLyBgXG4gICAgPGRpdiBjbGFzcz1cImRhdGV0aW1lX19pbnB1dFwiPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJkYXRldGltZV9faW5wdXRfX2lucHV0XCIgdHlwZT1cInRleHRcIiBkYXRhLWlucHV0PlxuICAgICAgICA8YSBjbGFzcz1cImRhdGV0aW1lX19pbnB1dF9fY2xlYXJcIiBkYXRhLWNsZWFyPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZGF0ZXRpbWVfX2lucHV0X19jbGVhcl9faWNvbiBhZy1pY29uIGFnLWljb24tY3Jvc3NcIj48L2k+XG4gICAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICBgXG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgaW5pdChwYXJhbXMpIHtcbiAgICB0aGlzLl9wYXJhbXMgPSBwYXJhbXNcbiAgICBjb25zdCBlbmFibGVUaW1lID0gdGhpcy5nZXRPcHRpb24oJ2RhdGVUaW1lRW5hYmxlVGltZScsIHBhcmFtcywgdHJ1ZSlcbiAgICBjb25zdCB0aW1lXzI0aHIgPSB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVFbmFibGUyNEhSJywgcGFyYW1zLCB0cnVlKVxuICAgIGNvbnN0IGVuYWJsZVNlY29uZHMgPSB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVFbmFibGVTZWNvbmRzJywgcGFyYW1zLCBmYWxzZSlcbiAgICBjb25zdCBub0NhbGVuZGFyID0gIXRoaXMuZ2V0T3B0aW9uKCdkYXRlVGltZUVuYWJsZUNhbGVuZGFyJywgcGFyYW1zLCB0cnVlKVxuXG4gICAgbGV0IGRhdGVGb3JtYXQgPSB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVNYXNrJywgcGFyYW1zKVxuXG4gICAgLy8gdHJ5IHRvIGdlbmVyYXRlIGEgZGVmYXVsdCBkYXRlIGZvcm1hdCBiYXNlZCBvbiB0aGUgb3B0aW9uc1xuICAgIGlmICghZGF0ZUZvcm1hdCkge1xuICAgICAgZGF0ZUZvcm1hdCA9IG5vQ2FsZW5kYXIgPyAnJyA6ICclWS8lTXovJUR6J1xuICAgICAgaWYgKGVuYWJsZVRpbWUpIHtcbiAgICAgICAgZGF0ZUZvcm1hdCArPSB0aW1lXzI0aHIgPyAnICVIejolbXonIDogJyAlaHo6JW16J1xuXG4gICAgICAgIGlmIChlbmFibGVTZWNvbmRzKSB7XG4gICAgICAgICAgZGF0ZUZvcm1hdCArPSAnOiVzeidcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRhdGVGb3JtYXQgPSBkYXRlRm9ybWF0LnRyaW0oKVxuXG4gICAgLy8gaW5pdCB0aGUgZGF0ZSBwaWNrZXJcbiAgICB0aGlzLnBpY2tlciA9IGZsYXRwaWNrcih0aGlzLl9ndWksIHtcbiAgICAgIHdyYXA6IHRydWUsXG4gICAgICAvLyBhbGxvdyBlbnRlcmluZyB0aGUgZGF0ZSBtYW51YWxseSByZXF1aXJlcyBkYXRlIHBhcnNpbmcgZnJvbSBzdHJpbmdcbiAgICAgIC8vIHRoaXMgaXMgYSB0b3VnaCB0aGluZyBhbmQgcmVxdWlyZXMgbGlicyBsaWtlIG1vbWVudFxuICAgICAgYWxsb3dJbnB1dDogZmFsc2UsXG4gICAgICBvbkNoYW5nZTogdGhpcy5fb25EYXRlQ2hhbmdlZCxcbiAgICAgIGZvcm1hdERhdGU6IHRoaXMuZm9ybWF0RGF0ZSxcbiAgICAgIG1heERhdGU6IHRoaXMuZ2V0T3B0aW9uKCdkYXRlVGltZU1heCcsIHBhcmFtcywgbnVsbCksXG4gICAgICBtaW5EYXRlOiB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVNaW4nLCBwYXJhbXMsIG51bGwpLFxuICAgICAgZGVmYXVsdEhvdXI6IHRoaXMuZ2V0T3B0aW9uKCdkYXRlVGltZURlZmF1bHRIb3VyJywgcGFyYW1zLCAxMiksXG4gICAgICBkZWZhdWx0TWludXRlOiB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVEZWZhdWx0TWludXRlJywgcGFyYW1zLCAwKSxcbiAgICAgIGRpc2FibGVNb2JpbGU6IHRoaXMuZ2V0T3B0aW9uKCdkYXRlVGltZURpc2FibGVNb2JpbGUnLCBwYXJhbXMsIGZhbHNlKSxcbiAgICAgIHdlZWtOdW1iZXJzOiB0aGlzLmdldE9wdGlvbignZGF0ZVRpbWVFbmFibGVXZWVrTnVtYmVyJywgcGFyYW1zLCBmYWxzZSksXG4gICAgICBsb2NhbGU6IHRoaXMuX2dldFBpY2tlckxvY2FsZSgpLFxuICAgICAgbm9DYWxlbmRhcixcbiAgICAgIGRhdGVGb3JtYXQsXG4gICAgICBlbmFibGVUaW1lLFxuICAgICAgZW5hYmxlU2Vjb25kcyxcbiAgICAgIHRpbWVfMjRocixcbiAgICB9KVxuXG4gICAgLy8gZm9yY2UgZGlhbG9nIG92ZXJmbG93XG4gICAgdGhpcy5waWNrZXIuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnYWctY3VzdG9tLWNvbXBvbmVudC1wb3B1cCcpXG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucGlja2VyLmRlc3Ryb3koKVxuICAgIHRoaXMub2ZmKERhdGVUaW1lSW5wdXQuT05fREFURV9DSEFOR0VEKVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcGlja2VyIGRhdGVcbiAgICpcbiAgICogQHBhcmFtIHtEYXRlfFN0cmluZ30gdmFsdWUgdGhlIGRhdGUgdmFsdWUgdG8gc2V0XG4gICAqL1xuICBzZXREYXRlKHZhbHVlKSB7XG4gICAgdGhpcy5waWNrZXIuc2V0RGF0ZSh2YWx1ZSwgdHJ1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVuIFBpY2tlclxuICAgKi9cbiAgb3BlbigpIHtcbiAgICB0aGlzLnBpY2tlci5vcGVuKClcbiAgICB0aGlzLl9ndWkucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpXG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgcGlja2VyXG4gICAqL1xuICBjbG9zZSgpIHtcbiAgICB0aGlzLnBpY2tlci5jbG9zZSgpXG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHBpY2tlclxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgLyoqIHRoaXMgY2hlY2sgYmVjYXVzZSB0aGUgdGVzdHMgZmFpbCBoZXJlIGZvciBzb21lIHJlYXNvbnMgICovXG4gICAgaWYgKHRoaXMucGlja2VyLmNvbmZpZykge1xuICAgICAgdGhpcy5waWNrZXIuY2xlYXIoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgdGhlIGRhdGUgdXNpbmcgYEJCai5NYXNrcy5UeXBlcy5kYXRlYFxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0ZSBkYXRlIGFzIGEgc3RyaW5nXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBmb3JtYXQgQkJqIGRhdGUgZm9ybWF0XG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmluZ30gZm9ybWF0dGVkIGRhdGUgYXMgc3RyaW5nXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgZm9ybWF0RGF0ZShkYXRlLCBmb3JtYXQpIHtcbiAgICBjb25zdCBkYXRlVGltZUZvcm1hdHRlciA9IHRoaXMuZ2V0T3B0aW9uKCdkYXRlVGltZUZvcm1hdHRlcicsIHRoaXMuX3BhcmFtcylcbiAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmdldE9wdGlvbihcbiAgICAgICdkYXRlVGltZUxvY2FsZScsXG4gICAgICB0aGlzLl9wYXJhbXMsXG4gICAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlIHx8ICdlbi1VUydcbiAgICApXG5cbiAgICBpZiAoZGF0ZVRpbWVGb3JtYXR0ZXIpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSB0eXBlb2YgZGF0ZVRpbWVGb3JtYXR0ZXJcbiAgICAgIGxldCBleHByZXNzaW9uID0gZGF0ZVRpbWVGb3JtYXR0ZXJcblxuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgaWYgKCEoZXhwcmVzc2lvbi5pbmRleE9mKCdyZXR1cm4nKSA+PSAwKSkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbiA9ICdyZXR1cm4gJyArIGV4cHJlc3Npb24gKyAnOydcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV3IEZ1bmN0aW9uKFxuICAgICAgICAgICAgJ2RhdGUnLFxuICAgICAgICAgICAgJ2Zvcm1hdCcsXG4gICAgICAgICAgICAnbG9jYWxlJyxcbiAgICAgICAgICAgICdEYXRlTWFzaycsXG4gICAgICAgICAgICBleHByZXNzaW9uXG4gICAgICAgICAgKShkYXRlLCBmb3JtYXQsIGxvY2FsZSwgQkJqLk1hc2tzLkRhdGVNYXNrKVxuXG4gICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAgICByZXR1cm4gZGF0ZVRpbWVGb3JtYXR0ZXIoZGF0ZSwgZm9ybWF0LCBsb2NhbGUsIEJCai5NYXNrcy5EYXRlTWFzaylcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW52YWxpZCBkYXRlVGltZUZvcm1hdHRlciBkZWZpbmVkIGZvciBjb2x1bW4gXCIke3RoaXMuX3BhcmFtcy5jb2xEZWYuZmllbGR9XCIuIFRoZSBmb3JtYXR0ZXIgc2hvdWxkIGJlIGFuIGV4cHJlc3Npb24gb3IgcGxhaW4gZnVuY3Rpb25gXG4gICAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWZvcm1hdCB8fCAoZm9ybWF0ICYmIGZvcm1hdC5pbmRleE9mKCclJykgPCAwKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIEJCai5NYXNrcy5EYXRlTWFzay5tYXNrKGRhdGUsIGZvcm1hdCwgbG9jYWxlKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gZGF0ZSBwaWNrZXIgY2hhbmdlcyBhbmQgdXBkYXRlIHRoZSBzZWxlY3RlZCBkYXRlXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXl9IHNlbGVjdGVkRGF0ZXMgIGFycmF5IG9mIHNlbGVjdGVkIGRhdGVzXG4gICAqL1xuICBAYXV0b2JpbmRcbiAgX29uRGF0ZUNoYW5nZWQoc2VsZWN0ZWREYXRlcykge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gc2VsZWN0ZWREYXRlc1swXSB8fCBudWxsXG4gICAgdGhpcy5ub3RpZnkoRGF0ZVRpbWVJbnB1dC5PTl9EQVRFX0NIQU5HRUQsIHRoaXMuc2VsZWN0ZWREYXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwaWNrZXIgZ2xvYmFsIGxvY2FsaXphdGlvbiB3aGljaCB3aWxsIHdvcmsgd2l0aCBhbnkgbG9jYWxlXG4gICAqXG4gICAqIEByZXR1cm4ge09iamVjdH1cbiAgICpcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2ZsYXRwaWNrci9mbGF0cGlja3IvYmxvYi9tYXN0ZXIvc3JjL2wxMG4vZGVmYXVsdC50c1xuICAgKi9cbiAgX2dldFBpY2tlckxvY2FsZSgpIHtcbiAgICBjb25zdCBsb2NhbGUgPSBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkubG9jYWxlIHx8ICdlbi1VUydcblxuICAgIGNvbnN0IHdlZWtEYXlzU2hvcnQgPSBbXVxuICAgIGNvbnN0IHdlZWtEYXlzTG9uZyA9IFtdXG5cbiAgICBmb3IgKGxldCBkYXkgPSA0OyBkYXkgPCAxMTsgZGF5KyspIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgxOTcwLCAxIC0gMSwgZGF5KVxuXG4gICAgICB3ZWVrRGF5c1Nob3J0LnB1c2goXG4gICAgICAgIGRhdGVcbiAgICAgICAgICAudG9Mb2NhbGVTdHJpbmcobG9jYWxlLCB7XG4gICAgICAgICAgICB3ZWVrZGF5OiAnc2hvcnQnLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnNwbGl0KCcsJylbMF0gLy8gdGhlIGRhdGUtdGltZS1mb3JtYXQtdGltZXpvbmUgcG9seWZpbGwgYXR0YWNoIHRoZSBkYXRlIGFsc29cbiAgICAgIClcblxuICAgICAgd2Vla0RheXNMb25nLnB1c2goXG4gICAgICAgIGRhdGVcbiAgICAgICAgICAudG9Mb2NhbGVTdHJpbmcobG9jYWxlLCB7XG4gICAgICAgICAgICB3ZWVrZGF5OiAnbG9uZycsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuc3BsaXQoJywnKVswXSAvLyB0aGUgZGF0ZS10aW1lLWZvcm1hdC10aW1lem9uZSBwb2x5ZmlsbCBhdHRhY2ggdGhlIGRhdGUgYWxzb1xuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IG1vbnRoc1Nob3J0ID0gW11cbiAgICBjb25zdCBtb250aHNMb25nID0gW11cblxuICAgIGZvciAobGV0IG1vbnRoID0gMDsgbW9udGggPCAxMjsgbW9udGgrKykge1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDE5NzAsIG1vbnRoLCA0KVxuXG4gICAgICBtb250aHNTaG9ydC5wdXNoKFxuICAgICAgICBkYXRlLnRvTG9jYWxlU3RyaW5nKGxvY2FsZSwge1xuICAgICAgICAgIG1vbnRoOiAnc2hvcnQnLFxuICAgICAgICB9KVxuICAgICAgKVxuXG4gICAgICBtb250aHNMb25nLnB1c2goXG4gICAgICAgIGRhdGUudG9Mb2NhbGVTdHJpbmcobG9jYWxlLCB7XG4gICAgICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgd2Vla2RheXM6IHtcbiAgICAgICAgc2hvcnRoYW5kOiB3ZWVrRGF5c1Nob3J0LFxuICAgICAgICBsb25naGFuZDogd2Vla0RheXNMb25nLFxuICAgICAgfSxcbiAgICAgIG1vbnRoczoge1xuICAgICAgICBzaG9ydGhhbmQ6IG1vbnRoc1Nob3J0LFxuICAgICAgICBsb25naGFuZDogbW9udGhzTG9uZyxcbiAgICAgIH0sXG4gICAgICBkYXlzSW5Nb250aDogWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdLFxuICAgICAgZmlyc3REYXlPZldlZWs6IEJCai5NYXNrcy5VdGlscy5EYXRlcy5nZXRXZWVrU3RhcnRCeUxvY2FsZShsb2NhbGUpLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgICBvcmRpbmFsOiBudW1iZXIgPT4gJycsXG4gICAgICByYW5nZVNlcGFyYXRvcjogJyAgJyxcbiAgICAgIHdlZWtBYmJyZXZpYXRpb246ICcnLFxuICAgICAgc2Nyb2xsVGl0bGU6ICcnLFxuICAgICAgdG9nZ2xlVGl0bGU6ICcnLFxuICAgICAgYW1QTTogWydBTScsICdQTSddLFxuICAgICAgeWVhckFyaWFMYWJlbDogJycsXG4gICAgICBob3VyQXJpYUxhYmVsOiAnJyxcbiAgICAgIG1pbnV0ZUFyaWFMYWJlbDogJycsXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lSW5wdXRcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9EYXRlVGltZUlucHV0L0RhdGVUaW1lSW5wdXQuanMiLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiKTtcblxuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5cbnZhciB0cmFuc2Zvcm07XG52YXIgaW5zZXJ0SW50bztcblxuXG5cbnZhciBvcHRpb25zID0ge1wiaG1yXCI6dHJ1ZX1cblxub3B0aW9ucy50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1cbm9wdGlvbnMuaW5zZXJ0SW50byA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWRcbiAgICAgICAgICAgICAgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3R5bGUuc2Nzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLnNjc3NcIik7XG5cblx0XHRpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcblxuXHRcdHZhciBsb2NhbHMgPSAoZnVuY3Rpb24oYSwgYikge1xuXHRcdFx0dmFyIGtleSwgaWR4ID0gMDtcblxuXHRcdFx0Zm9yKGtleSBpbiBhKSB7XG5cdFx0XHRcdGlmKCFiIHx8IGFba2V5XSAhPT0gYltrZXldKSByZXR1cm4gZmFsc2U7XG5cdFx0XHRcdGlkeCsrO1xuXHRcdFx0fVxuXG5cdFx0XHRmb3Ioa2V5IGluIGIpIGlkeC0tO1xuXG5cdFx0XHRyZXR1cm4gaWR4ID09PSAwO1xuXHRcdH0oY29udGVudC5sb2NhbHMsIG5ld0NvbnRlbnQubG9jYWxzKSk7XG5cblx0XHRpZighbG9jYWxzKSB0aHJvdyBuZXcgRXJyb3IoJ0Fib3J0aW5nIENTUyBITVIgZHVlIHRvIGNoYW5nZWQgY3NzLW1vZHVsZXMgbG9jYWxzLicpO1xuXG5cdFx0dXBkYXRlKG5ld0NvbnRlbnQpO1xuXHR9KTtcblxuXHRtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn1cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvRGF0ZVRpbWVJbnB1dC9zdHlsZS5zY3NzIiwiZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2xpYi9jc3MtYmFzZS5qc1wiKShmYWxzZSk7XG4vLyBpbXBvcnRzXG5cblxuLy8gbW9kdWxlXG5leHBvcnRzLnB1c2goW21vZHVsZS5pZCwgXCIuZGF0ZXRpbWVfX2lucHV0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTttYXJnaW46YXV0byA0cHg7Ym9yZGVyOnRoaW4gc29saWQgIzAwMH0uZGF0ZXRpbWVfX2lucHV0X19pbnB1dHtmbGV4OjE7b3V0bGluZTpub25lICFpbXBvcnRhbnQ7Ym9yZGVyOm5vbmUgIWltcG9ydGFudH0uZGF0ZXRpbWVfX2lucHV0X19jbGVhcnttYXJnaW4tbGVmdDoxcHg7bWFyZ2luLXRvcDoxcHg7dGV4dC1hbGlnbjpjZW50ZXI7b3V0bGluZTpub25lfS5hZy10aGVtZS1iYWxoYW0gLmRhdGV0aW1lX19pbnB1dHtib3JkZXItY29sb3I6Izk1QTVBNn0uYWctdGhlbWUtYmFsaGFtLWRhcmsgLmRhdGV0aW1lX19pbnB1dHtib3JkZXItY29sb3I6I2VjZjBmMX0uYWctdGhlbWUtbWF0ZXJpYWwgLmRhdGV0aW1lX19pbnB1dHttYXJnaW46YXV0byA4cHh9XFxuXCIsIFwiXCJdKTtcblxuLy8gZXhwb3J0c1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlciEuL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9EYXRlVGltZUlucHV0L3N0eWxlLnNjc3Ncbi8vIG1vZHVsZSBpZCA9IDEyNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSAyIDMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtYWdncmlkLWNvbXBvbmVudHMgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgRGF0ZVRpbWVFZGl0b3IgZnJvbSAnLi9EYXRlVGltZUVkaXRvcidcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWVFZGl0b3JcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9EYXRlVGltZUVkaXRvci9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1hZ2dyaWQtY29tcG9uZW50cyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7IGF1dG9iaW5kLCBvdmVycmlkZSB9IGZyb20gJ2NvcmUtZGVjb3JhdG9ycydcbmltcG9ydCB1dGNUb1pvbmVkVGltZSBmcm9tICdkYXRlLWZucy10ei91dGNUb1pvbmVkVGltZSdcbmltcG9ydCBEYXRlVGltZUlucHV0IGZyb20gJy4uL0RhdGVUaW1lSW5wdXQnXG5pbXBvcnQgQ29tcG9uZW50IGZyb20gJy4uL0NvbXBvbmVudCdcblxuLyoqXG4gKiBEYXRlVGltZUlucHV0XG4gKlxuICogU2ltcGxlIERhdGVUaW1lSW5wdXQgY29tcG9uZW50IHdoaWNoIGludGVncmF0ZXMgdGhlIGZsYXRwaWNrclxuICpcbiAqICMjIE9wdGlvbnNcbiAqXG4gKiB8IE5hbWUgICAgICAgICAgICAgICAgICBcdHwgRGVmYXVsdCAgICAgXHR8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHR8Oi0tLS0tLS0tLS0tLS06fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKmRhdGVUaW1lRW5hYmxlVGltZSoqICAgfCBmYWxzZSAgICB8IGVuYWJsZSAvIGRpc2FibGUgdGltZVxuICogfCAqKmRhdGVUaW1lRW5hYmxlMjRIUioqICAgfCBmYWxzZSAgICB8IGVuYWJsZSAvIGRpc2FibGUgdGltZSAyNCBmb3JtYXRcbiAqIHwgKipkYXRlVGltZUVuYWJsZVNlY29uZHMqKiAgIHwgZmFsc2UgICAgfCBlbmFibGUgLyBkaXNhYmxlIHNlY29uZHMgbWFuYWdlbWVudFxuICogfCAqKmRhdGVUaW1lRW5hYmxlQ2FsZW5kYXIqKiAgIHwgZmFsc2UgICAgfCBlbmFibGUgLyBkaXNhYmxlIENhbGVuZGFyLlxuICogfCAqKmRhdGVUaW1lTWFzayoqICAgfCBmYWxzZSAgICB8IFRoZSBtYXNrIHVzZWQgdG8gZm9ybWF0IHRoZSBzZWxlY3RlZCBkYXRlXG4gKiB8ICoqZGF0ZVRpbWVNYXgqKiAgIHwgdW5kZWZpbmVkICAgIHwgIE1heCBhbGxvd2VkIGRhdGVcbiAqIHwgKipkYXRlVGltZU1pbioqICAgfCB1bmRlZmluZWQgICAgfCAgTWluIGFsbG93ZWQgZGF0ZVxuICogfCAqKmRhdGVUaW1lRm9ybWF0dGVyKiogICB8IGZhbHNlICAgIHwgIEEgZnVuY3Rpb24gb3IgZXhwcmVzc2lvbiB0byBmb3JtYXQgdGhlIGRhdGUgKEBzZWUgc3VwcG9ydGVkIHBhcmFtKVxuICogfCAqKmRhdGVUaW1lTG9jYWxlKiogICB8IFN5c3RlbSBkZWZhdWx0ICAgIHwgIEEgbG9jYWxlIHRvIHVzZSBmb3IgZGF0ZSBmb3JtYXR0aW5nXG4gKiB8ICoqZGF0ZVRpbWVEZWZhdWx0SG91cioqICAgfCAxMiAgICB8ICBJbml0aWFsIHZhbHVlIG9mIHRoZSBob3VyIGVsZW1lbnQuXG4gKiB8ICoqZGF0ZVRpbWVEZWZhdWx0TWludXRlKiogICB8IDAgICAgfCAgSW5pdGlhbCB2YWx1ZSBvZiB0aGUgbWludXRlIGVsZW1lbnQuXG4gKiB8ICoqZGF0ZVRpbWVEaXNhYmxlTW9iaWxlKiogICB8IGZhbHNlICAgIHwgIFNldCBkaXNhYmxlTW9iaWxlIHRvIHRydWUgdG8gYWx3YXlzIHVzZSB0aGUgbm9uLW5hdGl2ZSBwaWNrZXIuXG4gKiB8ICoqZGF0ZVRpbWVFbmFibGVXZWVrTnVtYmVyKiogICB8IHRydWUgICAgfCAgRW5hYmxlcyBkaXNwbGF5IG9mIHdlZWsgbnVtYmVycyBpbiBjYWxlbmRhci5cbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBEYXRlVGltZUVkaXRvciBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBAdHlwZSB7RGF0ZVRpbWVJbnB1dH1cbiAgICovXG4gIF9pbnB1dCA9IG5ldyBEYXRlVGltZUlucHV0KClcblxuICAvKipcbiAgICogQHR5cGUge1N0cmluZ31cbiAgICovXG4gIF92YWx1ZSA9IG51bGxcblxuICAvKipcbiAgICogUGFyYW1zIHJlY2VpdmVkIGluIGluaXRcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIF9wYXJhbXMgPSBudWxsXG5cbiAgLyoqXG4gICAqIFRha2VzIGluY29tcGxldGUgaXNvIHN0cmluZyBhbmQgcmV0dXJuIGEgY29tcGxldGUgb25lXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBkYXRlIGluY29tcGxldGUgaXNvIHN0cmluZ1xuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGNvbXBsZXRlIGlzbyBzdHJpbmdcbiAgICovXG4gIHN0YXRpYyBmaXhTaG9ydElTTyh2YWx1ZSkge1xuICAgIHJldHVybiBCQmouTWFza3MuVXRpbHMuRGF0ZXMuZml4U2hvcnRJU08odmFsdWUpXG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBpbml0KHBhcmFtcykge1xuICAgIHRoaXMuX3BhcmFtcyA9IHBhcmFtc1xuICAgIHRoaXMuZm9jdXNBZnRlckF0dGFjaGVkID0gcGFyYW1zLmNlbGxTdGFydGVkRWRpdFxuICAgIGlmICh0aGlzLmZvY3VzQWZ0ZXJBdHRhY2hlZCkge1xuICAgICAgbGV0IGtleVByZXNzQmFja3NwYWNlT3JEZWxldGUgPVxuICAgICAgICBwYXJhbXMua2V5UHJlc3MgPT0gMzIgfHwgcGFyYW1zLmtleVByZXNzID09IDQ2IC8vIHNwYWNlIC8vIGRlbGV0ZVxuXG4gICAgICBpZiAoa2V5UHJlc3NCYWNrc3BhY2VPckRlbGV0ZSkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9ICcnXG4gICAgICB9IGVsc2UgaWYgKHBhcmFtcy5jaGFyUHJlc3MgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBwYXJhbXMuY2hhclByZXNzXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHBhcmFtcy52YWx1ZVxuICAgICAgICBpZiAocGFyYW1zLmtleVByZXNzICE9IDExMykge1xuICAgICAgICAgIC8vRjJcbiAgICAgICAgICB0aGlzLmhpZ2hsaWdodEFsbE9uRm9jdXMgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSBwYXJhbXMudmFsdWVcbiAgICB9XG5cbiAgICB0aGlzLl92YWx1ZSA9IERhdGVUaW1lRWRpdG9yLmZpeFNob3J0SVNPKHRoaXMuX3ZhbHVlKVxuICAgIHRoaXMuX2lucHV0LmluaXQocGFyYW1zKVxuICAgIHRoaXMuX2lucHV0Lm9uKERhdGVUaW1lSW5wdXQuT05fREFURV9DSEFOR0VELCB0aGlzLl9vbkRhdGVDaGFuZ2UpXG5cbiAgICBpZiAodGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX2lucHV0LnNldERhdGUoXG4gICAgICAgIHV0Y1RvWm9uZWRUaW1lKHRoaXMuX3ZhbHVlLCBCQmouTWFza3MuVXRpbHMuRGF0ZXMuZ2V0VGltZXpvbmVPck9mZnNldCgpKVxuICAgICAgKVxuICAgIH1cblxuICAgIHRoaXMuX2d1aSA9IHRoaXMuX2lucHV0LmdldEd1aSgpXG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXREb2NcbiAgICovXG4gIEBvdmVycmlkZVxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuX2lucHV0LmRlc3Ryb3koKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIG9uY2UgYWZ0ZXIgR1VJIGlzIGF0dGFjaGVkIHRvIERPTS5cbiAgICogTWFrZSBzdXJlIHRoZSBjb250YWluZXIgaXMgYWx3YXlzIGZvY3VzZWQgYW5kIGxpc3RlbmluZyB0byBrZXkgY2hhbmdlc1xuICAgKi9cbiAgYWZ0ZXJHdWlBdHRhY2hlZCgpIHtcbiAgICBpZiAodGhpcy5mb2N1c0FmdGVyQXR0YWNoZWQpIHtcbiAgICAgIHRoaXMuZm9jdXNJbigpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmluYWwgdmFsdWUgdG8gdGhlIGdyaWQsIHRoZSByZXN1bHQgb2YgdGhlIGVkaXRpbmdcbiAgICpcbiAgICogQHJldHVybiB7Qm9vbGVhbn1cbiAgICovXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIG9uY2UgYWZ0ZXIgaW5pdGlhbGl6ZWQgYW5kIHJldHVybnMgZmFsc2Ugc28gdGhlIGVkaXRvciBhcHBlYXJzIGluIHRoZSBjZWxsXG4gICAqXG4gICAqIEByZXR1cm4ge0Jvb2xlYW59IGFsd2F5cyBmYWxzZVxuICAgKiovXG4gIGlzUG9wdXAoKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogSWYgZG9pbmcgZnVsbCByb3cgZWRpdCwgdGhlbiBnZXRzIGNhbGxlZCB3aGVuIHRhYmJpbmcgaW50byB0aGUgY2VsbC5cbiAgICovXG4gIGZvY3VzSW4oKSB7XG4gICAgdGhpcy5faW5wdXQub3BlbigpXG4gIH1cblxuICAvKipcbiAgICogSWYgZG9pbmcgZnVsbCByb3cgZWRpdCwgdGhlbiBnZXRzIGNhbGxlZCB3aGVuIHRhYmJpbmcgb3V0IG9mIHRoZSBjZWxsLlxuICAgKi9cbiAgZm9jdXNPdXQoKSB7XG4gICAgdGhpcy5faW5wdXQuY2xvc2UoKVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgZWRpdG9yIHZhbHVlIHdpdGggc2VsZWN0ZWQgZGF0ZSBmcm9tIHRoZSBpbnB1dFxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gZGF0ZVxuICAgKi9cbiAgQGF1dG9iaW5kXG4gIF9vbkRhdGVDaGFuZ2UoZGF0ZSkge1xuICAgIHRoaXMuX3ZhbHVlID0gZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBkYXRlLnRvSVNPU3RyaW5nKCkgOiAnJ1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lRWRpdG9yXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvRGF0ZVRpbWVFZGl0b3IvRGF0ZVRpbWVFZGl0b3IuanMiLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHtcbiBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gXHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuIFx0XHRcdFx0Z2V0OiBnZXR0ZXJcbiBcdFx0XHR9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyB3ZWJwYWNrL2Jvb3RzdHJhcCAwZTQxZGExZTg4MzAwM2ZiOGYyOSIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8wX187XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gZXh0ZXJuYWwge1wiY29tbW9uanNcIjpcImJiai1tYXNrcy9zcmMvU3RyaW5nTWFza1wiLFwiY29tbW9uanMyXCI6XCJiYmotbWFza3Mvc3JjL1N0cmluZ01hc2tcIixcImFtZFwiOlwiYmJqLW1hc2tzL3NyYy9TdHJpbmdNYXNrXCIsXCJyb290XCI6W1wiQkJqXCIsXCJNYXNrc1wiLFwiU3RyaW5nTWFza1wiXX1cbi8vIG1vZHVsZSBpZCA9IDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiLCIvKlxyXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1pbnB1dC1tYXNraW5nIGxpYi5cclxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxyXG4gKlxyXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxyXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cclxuICovXHJcblxyXG5pbXBvcnQgVGV4dElucHV0IGZyb20gJy4vVGV4dElucHV0J1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVGV4dElucHV0XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UZXh0SW5wdXQvaW5kZXguanMiLCIvKlxyXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1pbnB1dC1tYXNraW5nIGxpYi5cclxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxyXG4gKlxyXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxyXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cclxuICovXHJcblxyXG5pbXBvcnQgU3RyaW5nTWFzayBmcm9tICdiYmotbWFza3Mvc3JjL1N0cmluZ01hc2snXHJcbmltcG9ydCB7XHJcbiAgbWFza0lmTm90TWFza2VkLFxyXG4gIHVubWFzayxcclxuICBmaW5kQ2FyZXRQb3NpdGlvbixcclxuICBnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzayxcclxufSBmcm9tICcuL3Rvb2xzLmpzJ1xyXG5cclxuLyoqXHJcbiAqIFRoZSBgVGV4dElucHV0YCB3aWxsIHdyYXAgdGV4dCBpbnB1dHMgYW5kIGFwcGx5IHRoZSBnaXZlbiBbYmJqIHN0cmluZyBtYXNrXShodHRwczovL2dpdGh1Yi5jb20vQmFzaXNIdWIvYmJqLW1hc2tzI3N0cmluZy1tYXNrcylcclxuICpcclxuICogKipPcHRpb25zKipcclxuICpcclxuICogX09wdGlvbnMgY2FuIGJlIHBhc3NlZCB2aWEgZGF0YSBhdHRyaWJ1dGVzIC4gRm9yIGRhdGEgYXR0cmlidXRlcywgYXBwZW5kIHRoZSBvcHRpb24gbmFtZSB0byBkYXRhLSwgYXMgaW4gZGF0YS1tYXNrX1xyXG4gKlxyXG4gKiB8IE9wdGlvbiAgICB8IERlZmF1bHQgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcclxuICogfC0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XHJcbiAqIHwgbWFzayB8ICAgICAgICAgfCBUaGUgYmJqIHN0cmluZyBtYXNrIEBzZWUgW0JCaiBTdHJpbmcgTWFza3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9CYXNpc0h1Yi9iYmotbWFza3Mjc3RyaW5nLW1hc2tzKSB8XHJcbiAqXHJcbiAqICA8YnI+XHJcbiAqXHJcbiAqICoqRXhhbXBsZSA6KipcclxuICogYGBgaHRtbFxyXG4gKiAgPGlucHV0IGNsYXNzPVwiYmJqLXRleHQtbWFza2VkXCIgbmFtZT1cInRlc3RcIiBpZD1cInRlc3RcIiB2YWx1ZT1cImVkMjNcIiBkYXRhLW1hc2s9XCJBQS0wMFwiPlxyXG4gKlxyXG4gKiAgPHNjcmlwdD5cclxuICogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uIChlKSB7XHJcbiAqICAgICAgbmV3IEJhc2lzLklucHV0TWFza2luZy5UZXh0SW5wdXQoe1xyXG4gKiAgICAgICAgIG9uVXBkYXRlOiAobWFza2VkVmFsdWUgLCByYXdWYWx1ZSAsIGlucHV0KSA9PiB7XHJcbiAqICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXHJcbiAqICAgICAgICAgfSxcclxuICogICAgICAgICBvbkludmFsaWQ6IChlcnIgLCBpbnB1dCkgPT4ge1xyXG4gKiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xyXG4gKiAgICAgICAgIH1cclxuICogICAgICB9KVxyXG4gKiAgICB9KVxyXG4gKiAgPC9zY3JpcHQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxyXG4gKi9cclxuY2xhc3MgVGV4dElucHV0IHtcclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3QgbmV3IFRleHRJbnB1dFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHs/T2JqZWN0fSBvcHRpb25zIC0gVGhlIGlucHV0IG9wdGlvbnMuXHJcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudHxTdHJpbmd9IFtvcHRpb25zLmVsZW1lbnRzPVwiLmJiai10ZXh0LW1hc2tlZFwiXSAtIFRoZSBjbGFzcyBuYW1lIG9yIHRoZSBub2RlIHRvIHVzZVxyXG4gICAqIEBwYXJhbSB7SFRNTERvY3VtZW50fSBbb3B0aW9ucy5kb2N1bWVudD1kb2N1bWVudF0gLSBEb2N1bWVudCBpbnN0YW5jZSB0byB1c2VcclxuICAgKiBAcGFyYW0ge1N0cmluZ30gW29wdGlvbnMuY3NzQ2xhc3NFcnJvcj1cImJiai1tYXNrLWVycm9yXCJdIC0gQSBjc3MgY2xhc3MgdG8gYXR0YWNoIHRvIHRoZSBpbnB1dCB3aGVuIGl0IGlzIGludmFsaWRcclxuICAgKiBAcGFyYW0ge1N0cmluZ30gW29wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzPVwiYmJqLW1hc2stc3VjY2Vzc1wiXSAtIEEgY3NzIGNsYXNzIHRvIGF0dGFjaCB0byB0aGUgaW5wdXQgd2hlbiBpdCBpcyB2YWxpZCBhZnRlciB0aGUgdXNlciBpbnRlcmFjdGlvblxyXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLm9uVXBkYXRlPW51bGxdIC0gQSBjYWxsYmFjayB0byBiZSBjYWxsZWQgb24gdGhlIG5ldyBtYXNrZWQgdmFsdWUgaXMgc2V0XHJcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMub25JbnZhbGlkPW51bGxdIC0gQSBjYWxsYmFjayB0byBiZSBjYWxsZWQgb24gdGhlIGlucHV0IG9yIHRoZSBtYXNrIGlzIGludmFsaWRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHtcclxuICAgICAgLi4ue1xyXG4gICAgICAgIGVsZW1lbnRzOiAnLmJiai10ZXh0LW1hc2tlZCcsXHJcbiAgICAgICAgZG9jOiBkb2N1bWVudCxcclxuICAgICAgICBjc3NDbGFzc0Vycm9yOiAnYmJqLW1hc2stZXJyb3InLFxyXG4gICAgICAgIGNzc0NsYXNzU3VjY2VzczogJ2Jiai1tYXNrLXN1Y2Nlc3MnLFxyXG4gICAgICAgIG9uVXBkYXRlOiBudWxsLFxyXG4gICAgICAgIG9uSW52YWxpZDogbnVsbCxcclxuICAgICAgfSxcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgIH1cclxuICAgIHRoaXMuX29uS2V5c3Ryb2tlID0gdGhpcy5fb25LZXlzdHJva2UuYmluZCh0aGlzKVxyXG4gICAgdGhpcy5fb25Gb2N1cyA9IHRoaXMuX29uRm9jdXMuYmluZCh0aGlzKVxyXG4gICAgdGhpcy5yZWZyZXNoKClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGNvbXBvbmVudCBhbmQgd3JhcCB0aGUgaW5wdXQgZWxlbWVudHMgZm9yIG1hc2tpbmcgaW4gY2FzZVxyXG4gICAqIHRoZXkgYXJlIG5vdCB3cmFwcGVkIHlldFxyXG4gICAqL1xyXG4gIHJlZnJlc2goKSB7XHJcbiAgICBjb25zdCBlbGVtZW50cyA9XHJcbiAgICAgIHR5cGVvZiB0aGlzLm9wdGlvbnMuZWxlbWVudHMgPT09ICdzdHJpbmcnXHJcbiAgICAgICAgPyB0aGlzLm9wdGlvbnMuZG9jLnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5vcHRpb25zLmVsZW1lbnRzKVxyXG4gICAgICAgIDogdGhpcy5vcHRpb25zLmVsZW1lbnRzXHJcbiAgICBsZXQgaW5wdXQsIHBhcmVudENsYXNzXHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpbnB1dCA9IGVsZW1lbnRzW2ldXHJcbiAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcclxuICAgICAgICBwYXJlbnRDbGFzcyA9IGlucHV0LnBhcmVudE5vZGUuZ2V0QXR0cmlidXRlKCdjbGFzcycpXHJcblxyXG4gICAgICAgIGlmICghaW5wdXQuZ2V0QXR0cmlidXRlKCdpZCcpKSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICAgIGBCQmpNYXNraW5nOiBJbnB1dCBoYXMgbm8gSUQuIFdpdGhvdXQgYW4gSUQgdGhlIGlucHV0IGNhbm5vdCBiZSBtYXNrZWRgLFxyXG4gICAgICAgICAgICBpbnB1dFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgY29udGludWVcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHdlIGRvbid0IGluaXRpYWxpemUgdGhlIGlucHV0J3Mgd3JhcCB0d2ljZVxyXG4gICAgICAgIGNvbnN0IGlzV3JhcHBlZCA9XHJcbiAgICAgICAgICBwYXJlbnRDbGFzcyAmJiBwYXJlbnRDbGFzcy5pbmRleE9mKCd0ZXh0SW5wdXRNYXNrX193cmFwJykgPiAtMVxyXG4gICAgICAgIHRoaXMuX3dyYXAoaW5wdXQsIGlzV3JhcHBlZClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBgQkJqTWFza2luZzogSW52YWxpZCBpbnB1dCBlbGVtZW50LiBUaGUgZWxlbWVudCB3aWxsIGJlIGlnbm9yZWRgLFxyXG4gICAgICAgICAgaW5wdXRcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVud3JhcCB0aGUgaW5wdXQgZWxlbWVudHMgYW5kIHJlbW92ZSBhdHRhY2hlZCBsaXN0ZW5lcnNcclxuICAgKi9cclxuICBkZXN0cm95KCkge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPVxyXG4gICAgICB0eXBlb2YgdGhpcy5vcHRpb25zLmVsZW1lbnRzID09PSAnc3RyaW5nJ1xyXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmRvYy5xdWVyeVNlbGVjdG9yQWxsKHRoaXMub3B0aW9ucy5lbGVtZW50cylcclxuICAgICAgICA6IHRoaXMub3B0aW9ucy5lbGVtZW50c1xyXG5cclxuICAgIGxldCBpbnB1dCwgcGFyZW50LCBwYXJlbnRDbGFzc1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaW5wdXQgPSBlbGVtZW50c1tpXVxyXG4gICAgICBwYXJlbnQgPSBpbnB1dC5wYXJlbnROb2RlXHJcbiAgICAgIHBhcmVudENsYXNzID0gcGFyZW50LmdldEF0dHJpYnV0ZSgnY2xhc3MnKVxyXG5cclxuICAgICAgaWYgKHBhcmVudENsYXNzICYmIHBhcmVudENsYXNzLmluZGV4T2YoJ3RleHRJbnB1dE1hc2tfX3dyYXAnKSA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5fdW53cmFwKHBhcmVudClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSB0ZXh0IG1hc2tpbmcgaW5wdXQgd3JhcHBlclxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBpbnB1dCB0aGUgaW5wdXQgZWxlbWVudFxyXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gaXNXcmFwcGVkIHdoZW4gdHJ1ZSB0aGUgaW5wdXQgaXMgYWxyZWFkeSB3cmFwcGVkIGFuZCB3ZSBuZWVkIHRvIGFkZCB3aGF0IGlzXHJcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZyBvbmx5XHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7SFRNTFNwYW5FbGVtZW50fSB0aGUgd3JhcCBlbGVtZW50XHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX3dyYXAoaW5wdXQsIGlzV3JhcHBlZCkge1xyXG4gICAgY29uc3QgaW5wdXRJZCA9IGlucHV0LmdldEF0dHJpYnV0ZSgnaWQnKSxcclxuICAgICAgaW5wdXROYW1lID0gaW5wdXQuZ2V0QXR0cmlidXRlKCduYW1lJyksXHJcbiAgICAgIG1hc2sgPSBpbnB1dC5kYXRhc2V0Lm1hc2sgfHwgJycsXHJcbiAgICAgIG9yaWdpbmFsUGF0dGVybiA9IGlucHV0LnBhdHRlcm4sXHJcbiAgICAgIGRlZmF1bHRQYXR0ZXJuID0gZ2VuZXJhdGVQYXR0ZXJuRnJvbU1hc2sobWFzayksXHJcbiAgICAgIHBhdHRlcm4gPSBvcmlnaW5hbFBhdHRlcm4gfHwgZGVmYXVsdFBhdHRlcm5cclxuXHJcbiAgICBsZXQgd3JhcCA9IG51bGwsXHJcbiAgICAgIHVubWFza0lucHV0ID0gbnVsbFxyXG5cclxuICAgIGlmICghaXNXcmFwcGVkKSB7XHJcbiAgICAgIHdyYXAgPSB0aGlzLm9wdGlvbnMuZG9jLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKVxyXG4gICAgICB1bm1hc2tJbnB1dCA9IHRoaXMub3B0aW9ucy5kb2MuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSAvLyBoaWRkZW4gaW5wdXQgd2l0aCB0aGUgdW5tYXNrZWQgdmFsdWVzIGZvciBmb3Jtc1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd3JhcCA9IGlucHV0LnBhcmVudE5vZGVcclxuICAgICAgdW5tYXNrSW5wdXQgPSB3cmFwLnF1ZXJ5U2VsZWN0b3IoJy50ZXh0SW5wdXRNYXNrX191bm1hc2tlZElucHV0JylcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb25maWd1cmUgdGhlIGFjdHVhbCBpbnB1dFxyXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIGlucHV0LnZhbHVlID0gbWFza0lmTm90TWFza2VkKGlucHV0LnZhbHVlLCBtYXNrKVxyXG4gICAgaW5wdXQucGF0dGVybiA9IHBhdHRlcm5cclxuICAgIGlucHV0LmNsYXNzTGlzdC5hZGQoJ3RleHRJbnB1dE1hc2tfX3RleHRJbnB1dCcpXHJcbiAgICBpbnB1dC5kYXRhc2V0Lm1hc2sgPSBtYXNrXHJcbiAgICBpbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWQgPSB1bm1hc2soaW5wdXQudmFsdWUsIG1hc2spXHJcbiAgICBpZiAob3JpZ2luYWxQYXR0ZXJuICYmIG9yaWdpbmFsUGF0dGVybiAhPT0gZGVmYXVsdFBhdHRlcm4pIHtcclxuICAgICAgaW5wdXQuZGF0YXNldC5pc0N1c3RvbVBhdHRlcm4gPSB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFpc1dyYXBwZWQpIHtcclxuICAgICAgaWYgKCEoaW5wdXQuaGFzQXR0cmlidXRlKCdyZWFkb25seScpIHx8IGlucHV0Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZScpKSkge1xyXG4gICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fb25LZXlzdHJva2UpXHJcbiAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLl9vbktleXN0cm9rZSlcclxuICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIHRoaXMuX29uS2V5c3Ryb2tlKVxyXG4gICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9vbkZvY3VzKVxyXG4gICAgICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb25Gb2N1cylcclxuICAgICAgfVxyXG4gICAgICBpbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3cmFwLCBpbnB1dCkgLy8gbW92ZSB0aGUgaW5wdXQgb3V0c2lkZSB0aGUgd3JhcHBlclxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl92YWxpZGF0ZUlucHV0KGlucHV0KSkge1xyXG4gICAgICB0aGlzLl9fZmlyZU9uVXBkYXRlKGlucHV0LnZhbHVlLCBpbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWQsIGlucHV0KVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvbmZpZ3VyZSB0aGUgdW5tYXNrZWQgaW5wdXRcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHVubWFza0lucHV0LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpXHJcbiAgICB1bm1hc2tJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJylcclxuICAgIHVubWFza0lucHV0LmNsYXNzTGlzdC5hZGQoJ3RleHRJbnB1dE1hc2tfX3VubWFza2VkSW5wdXQnKVxyXG4gICAgdW5tYXNrSW5wdXQudmFsdWUgPSBpbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWRcclxuICAgIGlmIChpbnB1dElkKSB1bm1hc2tJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgYCR7aW5wdXRJZH0tdW5tYXNrZWRgKVxyXG4gICAgaWYgKGlucHV0TmFtZSkgdW5tYXNrSW5wdXQuc2V0QXR0cmlidXRlKCduYW1lJywgYCR7aW5wdXROYW1lfS11bm1hc2tlZGApXHJcblxyXG4gICAgaWYgKCFpc1dyYXBwZWQpIHtcclxuICAgICAgLy8gY29uZmlndXJlIHRoZSB3cmFwcGVyXHJcbiAgICAgIHdyYXAuc2V0QXR0cmlidXRlKCdjbGFzcycsICd0ZXh0SW5wdXRNYXNrX193cmFwJylcclxuICAgICAgd3JhcC5hcHBlbmRDaGlsZCh1bm1hc2tJbnB1dClcclxuICAgICAgd3JhcC5hcHBlbmRDaGlsZChpbnB1dClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gd3JhcFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW53cmFwIHRoZSBtYXNrZWQgaW5wdXQgYW5kIHJlbW92ZSB0aGUgdmFsdWUgY2hhbmdlZCBsaXN0ZW5lclxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtIVE1MU3BhbkVsZW1lbnR9IHRleHRJbnB1dCB0aGUgd3JhcHBlciBzcGFuIGluc3RhbmNlXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX3Vud3JhcCh0ZXh0SW5wdXQpIHtcclxuICAgIHRleHRJbnB1dC5yZW1vdmVDaGlsZChcclxuICAgICAgdGV4dElucHV0LnF1ZXJ5U2VsZWN0b3IoJy50ZXh0SW5wdXRNYXNrX191bm1hc2tlZElucHV0JylcclxuICAgIClcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IHRleHRJbnB1dC5xdWVyeVNlbGVjdG9yKCcudGV4dElucHV0TWFza19fdGV4dElucHV0JylcclxuICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fb25LZXlzdHJva2UpXHJcbiAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlwcmVzcycsIHRoaXMuX29uS2V5c3Ryb2tlKVxyXG4gICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFzdGUnLCB0aGlzLl9vbktleXN0cm9rZSlcclxuICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9vbkZvY3VzKVxyXG4gICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9vbkZvY3VzKVxyXG4gICAgZGVsZXRlIGlucHV0LmRhdGFzZXQudmFsdWVVbm1hc2tlZFxyXG4gICAgaWYgKCFpbnB1dC5kYXRhc2V0LmlzQ3VzdG9tUGF0dGVybikge1xyXG4gICAgICBpbnB1dC5yZW1vdmVBdHRyaWJ1dGUoJ3BhdHRlcm4nKVxyXG4gICAgICBkZWxldGUgaW5wdXQuZGF0YXNldC5pc0N1c3RvbVBhdHRlcm5cclxuICAgIH1cclxuXHJcbiAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc0Vycm9yKVxyXG5cclxuICAgIHRleHRJbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpbnB1dCwgdGV4dElucHV0KVxyXG4gICAgdGV4dElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGV4dElucHV0KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGVuIHRvIGV2ZXJ5IGtleXN0cm9rZSBvbiB0aGUgaW5wdXQgYW5kIHVwZGF0ZSB0aGUgbWFza2VkIGFuZCB0aGUgdW5tYXNrZWQgdmFsdWVcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGVcclxuICAgKlxyXG4gICAqIEBwcm90ZWN0ZWRcclxuICAgKi9cclxuICBfb25LZXlzdHJva2UoZSkge1xyXG4gICAgaWYgKGUuY3RybEtleSB8fCBlLnNoaWZ0S2V5IHx8IGUuYWx0S2V5IHx8IGUubWV0YUtleSkgcmV0dXJuXHJcbiAgICBpZihlLmtleUNvZGUgIT09IDEzKSBlLnByZXZlbnREZWZhdWx0KClcclxuICAgIFxyXG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCxcclxuICAgICAgbWFzayA9IGlucHV0LmRhdGFzZXQubWFzayB8fCB0aGlzLm9wdGlvbnMubWFzayxcclxuICAgICAgZXZlbnRUeXBlID0gZS50eXBlXHJcblxyXG4gICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuICAgIGlucHV0LnNldEN1c3RvbVZhbGlkaXR5KCcnKTtcclxuXHJcbiAgICBsZXQgdmFsdWUgPSBpbnB1dC52YWx1ZSxcclxuICAgICAga2V5Q29kZSA9IGUua2V5Q29kZSxcclxuICAgICAga2V5Q29udGVudCA9IGUua2V5IHx8IGUuY29kZS5yZXBsYWNlKC9bXjAtOV0vZywgJycpLFxyXG4gICAgICBrZXkgPSBrZXlDb250ZW50ID8gKGtleUNvbnRlbnQubGVuZ3RoID4gMSA/ICcnIDoga2V5Q29udGVudCkgOiAnJyxcclxuICAgICAgaW5zZXJ0UG9zaXRpb24gPSBmaW5kQ2FyZXRQb3NpdGlvbih2YWx1ZSwgbWFzayksXHJcbiAgICAgIG5ld1ZhbHVlLFxyXG4gICAgICB1bm1hc2tlZFZhbHVlLFxyXG4gICAgICBtYXNrRXJyb3IgPSBmYWxzZVxyXG5cclxuICAgIHN3aXRjaCAoZXZlbnRUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ3Bhc3RlJzpcclxuICAgICAgICBuZXdWYWx1ZSA9IG1hc2tJZk5vdE1hc2tlZChcclxuICAgICAgICAgIChlLmNsaXBib2FyZERhdGEgfHwgd2luZG93LmNsaXBib2FyZERhdGEpLmdldERhdGEoJ1RleHQnKSxcclxuICAgICAgICAgIG1hc2tcclxuICAgICAgICApXHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAna2V5dXAnOlxyXG4gICAgICAgIG5ld1ZhbHVlID0gdmFsdWVcclxuICAgICAgICBicmVha1xyXG4gICAgICBjYXNlICdrZXlwcmVzcyc6XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBpbnB1dC5zZWxlY3Rpb25TdGFydFxyXG4gICAgICAgIGlmIChzZWxlY3Rpb25TdGFydCAhPT0gaW5zZXJ0UG9zaXRpb24pIGluc2VydFBvc2l0aW9uID0gc2VsZWN0aW9uU3RhcnRcclxuXHJcbiAgICAgICAgbmV3VmFsdWUgPVxyXG4gICAgICAgICAgdmFsdWUuc3Vic3RyKDAsIGluc2VydFBvc2l0aW9uKSArIGtleSArIHZhbHVlLnN1YnN0cihpbnNlcnRQb3NpdGlvbilcclxuICAgICAgICBicmVha1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrXHJcbiAgICB9XHJcblxyXG4gICAgdW5tYXNrZWRWYWx1ZSA9IHVubWFzayhuZXdWYWx1ZSwgbWFzaylcclxuXHJcbiAgICBpZiAoWzM1LCAzNiwgMzcsIDM4LCAzOSwgNDBdLmluZGV4T2Yoa2V5Q29kZSkgPT09IC0xKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgaW5wdXQudmFsdWUgPSBTdHJpbmdNYXNrLm1hc2sodW5tYXNrZWRWYWx1ZSwgbWFzaywgZmFsc2UpXHJcbiAgICAgICAgaWYodGhpcy5fdmFsaWRhdGVJbnB1dChpbnB1dCkpIHtcclxuICAgICAgICAgIGlucHV0LmRhdGFzZXQudmFsdWVVbm1hc2tlZCA9IHVubWFza2VkVmFsdWVcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5kb2MucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgICAgYCMke2lucHV0LmdldEF0dHJpYnV0ZSgnaWQnKX0tdW5tYXNrZWRgXHJcbiAgICAgICAgICApLnZhbHVlID0gdW5tYXNrZWRWYWx1ZVxyXG4gICAgICAgICAgdGhpcy5fX2FwcGx5Q3NzQ2xhc3NTdGF0ZShpbnB1dCwgJ3N1Y2Nlc3MnKVxyXG4gICAgICAgICAgdGhpcy5fX2ZpcmVPblVwZGF0ZShpbnB1dC52YWx1ZSwgaW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkLCBpbnB1dClcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFza0Vycm9yID0gZmFsc2VcclxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICB0aGlzLl9fYXBwbHlDc3NDbGFzc1N0YXRlKGlucHV0LCAnZXJyb3InKVxyXG4gICAgICAgIHRoaXMuX19maXJlT25JbnZhbGlkKGVycm9yLCBpbnB1dClcclxuICAgICAgICBtYXNrRXJyb3IgPSB0cnVlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuX3VwZGF0ZUNhcmV0UG9zaXRpb24oaW5wdXQsIG1hc2spXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFtYXNrRXJyb3IpIHRoaXMuX3ZhbGlkYXRlSW5wdXQoaW5wdXQpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMaXN0ZW4gdG8gZm9jdXMgZXZlbnRzIG9uIHRoZSBpbnB1dCBhbmQgdXBkYXRlIHRoZSBjYXJldCBwb3NpdGlvblxyXG4gICAqIHdoZXJlIHRoZSBuZXh0IGNoYXIgc2hvdWxkIGJlIGluc2VydGVkIGFjY29yZGluZyB0byB0aGUgbWFza1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtGb2N1c0V2ZW50fSBlXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX29uRm9jdXMoZSkge1xyXG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldFxyXG4gICAgY29uc3QgbWFzayA9IGlucHV0LmRhdGFzZXQubWFzayB8fCB0aGlzLm9wdGlvbnMubWFza1xyXG4gICAgdGhpcy5fdXBkYXRlQ2FyZXRQb3NpdGlvbihpbnB1dCwgbWFzaylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgY2FyZXQgcG9zaXRpb24gb24gdGhlIGlucHV0IGJhc2VkIG9uIHRoZSBnaXZlbiBtYXNrXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGlucHV0IGluc3RhbmNlXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgIGJiaiBzdHJpbmdcclxuICAgKlxyXG4gICAqIEBwcm90ZWN0ZWRcclxuICAgKi9cclxuICBfdXBkYXRlQ2FyZXRQb3NpdGlvbihpbnB1dCwgbWFzaykge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gZmluZENhcmV0UG9zaXRpb24oaW5wdXQudmFsdWUsIG1hc2spXHJcbiAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHBvc2l0aW9uLCBwb3NpdGlvbilcclxuICAgIH0sIDApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmlnZ2VyIGBjaGVja1ZhbGlkaXR5YCBvbiB0aGUgaW5wdXRcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gaW5wdXRcclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHtCb29sZWFufSB0cnVlIHdoZW4gdmFsaWQgLCBmYWxzZSBvdGhlcndpc2VcclxuICAgKlxyXG4gICAqIEBwcm90ZWN0ZWRcclxuICAgKi9cclxuICBfdmFsaWRhdGVJbnB1dChpbnB1dCkge1xyXG4gICAgY29uc3QgaXNWYWxpZCA9IGlucHV0LmNoZWNrVmFsaWRpdHkoKVxyXG5cclxuICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgIHRoaXMuX19hcHBseUNzc0NsYXNzU3RhdGUoaW5wdXQsICdzdWNjZXNzJylcclxuICAgICAgaW5wdXQuc2V0Q3VzdG9tVmFsaWRpdHkoJycpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9fYXBwbHlDc3NDbGFzc1N0YXRlKGlucHV0LCAnZXJyb3InKVxyXG4gICAgICB0aGlzLl9fZmlyZU9uSW52YWxpZChpbnB1dC52YWxpZGF0aW9uTWVzc2FnZSwgaW5wdXQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWRcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgX19maXJlT25VcGRhdGUodmFsdWVNYXNrZWQsIHZhbHVlVW5tYXNrZWQsIGlucHV0KSB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLm9uVXBkYXRlKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5vblVwZGF0ZSh2YWx1ZU1hc2tlZCwgdmFsdWVVbm1hc2tlZCwgaW5wdXQpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIF9fZmlyZU9uSW52YWxpZChlcnJvciwgaW5wdXQpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMub25JbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5vbkludmFsaWQoZXJyb3IsIGlucHV0KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBfX2FwcGx5Q3NzQ2xhc3NTdGF0ZShpbnB1dCwgc3RhdGUpIHtcclxuICAgIGlmIChpbnB1dC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgfHwgaW5wdXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XHJcbiAgICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgIGlucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzdGF0ZSA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgICAgICBpbnB1dC5jbGFzc0xpc3QuYWRkKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzdGF0ZSA9PT0gJ2Vycm9yJykge1xyXG4gICAgICAgIGlucHV0LmNsYXNzTGlzdC5hZGQodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUZXh0SW5wdXRcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL1RleHRJbnB1dC9UZXh0SW5wdXQuanMiLCIvKlxyXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYXNpcy1pbnB1dC1tYXNraW5nIGxpYi5cclxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxyXG4gKlxyXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxyXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cclxuICovXHJcblxyXG5pbXBvcnQgU3RyaW5nTWFzayBmcm9tICdiYmotbWFza3Mvc3JjL1N0cmluZ01hc2snXHJcblxyXG5jb25zdCBTVVBQT1JURURfTUFTS1MgPSBbJ1gnLCAnYScsICdBJywgJzAnLCAneicsICdaJywgJ1UnXVxyXG4vKipcclxuICogV2hlbiB0cnVlICwgdGhlbiB0aGUgYnJvd3NlciBzdXBwb3J0cyBVbmljb2RlIFByb3BlcnR5IEVzY2FwZXNcclxuICogb3RoZXJ3aXNlIGl0IGlzIGZhbHNlIFxyXG4gKiBcclxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXJlZ2V4cC11bmljb2RlLXByb3BlcnR5LWVzY2FwZXN9XHJcbiAqL1xyXG5sZXQgSVNfVU5JQ09ERV9QUk9QRVJUWV9TVVBQT1JURUQgPSBmYWxzZVxyXG50cnkge1xyXG4gIGV2YWwoJy9cXFxccHtMfS91JylcclxuICBJU19VTklDT0RFX1BST1BFUlRZX1NVUFBPUlRFRCA9IHRydWVcclxufSBjYXRjaCAoZXJyKSB7XHJcbiAgSVNfVU5JQ09ERV9QUk9QRVJUWV9TVVBQT1JURUQgPSBmYWxzZVxyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIG1hc2tlZCB3aXRoIHRoZSBnaXZlbiBtYXNrIG9yIG5vdFxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgbWFza2VkIG9yIHVubWFza2VkIHZhbHVlXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrICBhIGJiaiBtYXNrXHJcbiAqXHJcbiAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgd2hlbiB0aGUgdmFsdWUgaXMgbWFza2VkIHdpdGggZ2l2ZW4gbWFzayAsIGZhbHNlIG90aGVyd2lzZVxyXG4gKi9cclxuY29uc3QgaXNNYXNrZWRWYWx1ZSA9ICh2YWx1ZSwgbWFzaykgPT4ge1xyXG4gIGlmICh0eXBlb2YgaXNNYXNrZWRWYWx1ZS5fX0NBQ0hFX18gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICBpc01hc2tlZFZhbHVlLl9fQ0FDSEVfXyA9IHt9XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYWNoZUtleSA9IGAke3ZhbHVlfS0ke21hc2t9YFxyXG5cclxuICBpZiAoIWlzTWFza2VkVmFsdWUuX19DQUNIRV9fW2NhY2hlS2V5XSkge1xyXG4gICAgY29uc3QgdW5tYXNrZWRWYWx1ZSA9IHVubWFzayh2YWx1ZSwgbWFzaylcclxuICAgIGlzTWFza2VkVmFsdWUuX19DQUNIRV9fW2NhY2hlS2V5XSA9XHJcbiAgICAgIHZhbHVlID09PSBTdHJpbmdNYXNrLm1hc2sodW5tYXNrZWRWYWx1ZSwgbWFzaylcclxuICB9XHJcblxyXG4gIHJldHVybiBpc01hc2tlZFZhbHVlLl9fQ0FDSEVfX1tjYWNoZUtleV1cclxufVxyXG5cclxuLyoqXHJcbiAqIE1hc2sgdGhlIGdpdmVuIHZhbHVlIHdpdGggdGhlIGdpdmVuIG1hc2sgaW4gY2FzZSB0aGUgdmFsdWUgaXMgbm90IGFscmVhZHkgbWFza2VkIHdpdGggdGhlXHJcbiAqIGdpdmVuIG1hc2tcclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlIG1hc2tlZCBvciB1bm1hc2tlZCB2YWx1ZVxyXG4gKiBAcGFyYW0ge1N0cmluZ30gbWFzayAgYSBiYmogbWFza1xyXG4gKlxyXG4gKiBAcmV0dXJuIHtTdHJpbmd9IGEgbWFza2VkIHZhbHVlXHJcbiAqL1xyXG5jb25zdCBtYXNrSWZOb3RNYXNrZWQgPSAodmFsdWUsIG1hc2spID0+IHtcclxuICBpZiAodHlwZW9mIG1hc2tJZk5vdE1hc2tlZC5fX0NBQ0hFX18gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICBtYXNrSWZOb3RNYXNrZWQuX19DQUNIRV9fID0ge31cclxuICB9XHJcblxyXG4gIGNvbnN0IGNhY2hlS2V5ID0gYCR7dmFsdWV9LSR7bWFza31gXHJcblxyXG4gIGlmICghbWFza0lmTm90TWFza2VkLl9fQ0FDSEVfX1tjYWNoZUtleV0pIHtcclxuICAgIGlmIChpc01hc2tlZFZhbHVlKHZhbHVlLCBtYXNrKSkge1xyXG4gICAgICBtYXNrSWZOb3RNYXNrZWQuX19DQUNIRV9fW2NhY2hlS2V5XSA9IHZhbHVlXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIG1hc2tJZk5vdE1hc2tlZC5fX0NBQ0hFX19bY2FjaGVLZXldID0gU3RyaW5nTWFzay5tYXNrKFxyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICBtYXNrLFxyXG4gICAgICAgICAgZmFsc2VcclxuICAgICAgICApXHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBtYXNrSWZOb3RNYXNrZWQuX19DQUNIRV9fW2NhY2hlS2V5XSA9IFN0cmluZ01hc2subWFzaygnJywgbWFzaylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG1hc2tJZk5vdE1hc2tlZC5fX0NBQ0hFX19bY2FjaGVLZXldXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmF0ZSBhIHJlZ2V4IHBhdHRlciBiYXNlZCBvbiB0aGUgZ2l2ZSB0YXNrXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrICBiYmogc3RyaW5nIG1hc2tcclxuICpcclxuICogQHJldHVybiB7U3RyaW5nfSByZWdleCBmb3IgdGhlIGdpdmUgbWFza1xyXG4gKi9cclxuY29uc3QgZ2VuZXJhdGVQYXR0ZXJuRnJvbU1hc2sgPSBtYXNrID0+IHtcclxuICBpZiAodHlwZW9mIGdlbmVyYXRlUGF0dGVybkZyb21NYXNrLl9fQ0FDSEVfXyA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgIGdlbmVyYXRlUGF0dGVybkZyb21NYXNrLl9fQ0FDSEVfXyA9IHt9XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYWNoZUtleSA9IG1hc2tcclxuXHJcbiAgaWYgKCFnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzay5fX0NBQ0hFX19bY2FjaGVLZXldKSB7XHJcbiAgICBjb25zdCBtYXNrQXNBcnJ5ID0gbWFzay5zcGxpdCgnJylcclxuICAgIGxldCByZWdleCA9ICcnXHJcbiAgICBtYXNrQXNBcnJ5LmZvckVhY2goYyA9PiB7XHJcbiAgICAgIHN3aXRjaCAoYykge1xyXG4gICAgICAgIGNhc2UgJ1gnOlxyXG4gICAgICAgICAgcmVnZXggKz0gJyhbXiAtfl0pJ1xyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBjYXNlICdhJzpcclxuICAgICAgICBjYXNlICdBJzpcclxuICAgICAgICAgIC8vIGh0dHBzOi8vbW90aGVyZWZmLmluL3JlZ2V4cHUjaW5wdXQ9dmFyK3JlZ2V4KyUzRCsvJTVDcCU3QkwlN0QvdSUzQiZ1bmljb2RlUHJvcGVydHlFc2NhcGU9MVxyXG4gICAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTUwMDMzL3JlZ3VsYXItZXhwcmVzc2lvbi10by1tYXRjaC1ub24tYXNjaWktY2hhcmFjdGVycyNhbnN3ZXItNDg5MDI3NjVcclxuICAgICAgICAgIHJlZ2V4ICs9IElTX1VOSUNPREVfUFJPUEVSVFlfU1VQUE9SVEVEXHJcbiAgICAgICAgICAgID8gJ1xcXFxwe0x9J1xyXG4gICAgICAgICAgICA6ICcoKD86W0EtWmEtelxceEFBXFx4QjVcXHhCQVxceEMwLVxceEQ2XFx4RDgtXFx4RjZcXHhGOC1cXHUwMkMxXFx1MDJDNi1cXHUwMkQxXFx1MDJFMC1cXHUwMkU0XFx1MDJFQ1xcdTAyRUVcXHUwMzcwLVxcdTAzNzRcXHUwMzc2XFx1MDM3N1xcdTAzN0EtXFx1MDM3RFxcdTAzN0ZcXHUwMzg2XFx1MDM4OC1cXHUwMzhBXFx1MDM4Q1xcdTAzOEUtXFx1MDNBMVxcdTAzQTMtXFx1MDNGNVxcdTAzRjctXFx1MDQ4MVxcdTA0OEEtXFx1MDUyRlxcdTA1MzEtXFx1MDU1NlxcdTA1NTlcXHUwNTYwLVxcdTA1ODhcXHUwNUQwLVxcdTA1RUFcXHUwNUVGLVxcdTA1RjJcXHUwNjIwLVxcdTA2NEFcXHUwNjZFXFx1MDY2RlxcdTA2NzEtXFx1MDZEM1xcdTA2RDVcXHUwNkU1XFx1MDZFNlxcdTA2RUVcXHUwNkVGXFx1MDZGQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTBcXHUwNzEyLVxcdTA3MkZcXHUwNzRELVxcdTA3QTVcXHUwN0IxXFx1MDdDQS1cXHUwN0VBXFx1MDdGNFxcdTA3RjVcXHUwN0ZBXFx1MDgwMC1cXHUwODE1XFx1MDgxQVxcdTA4MjRcXHUwODI4XFx1MDg0MC1cXHUwODU4XFx1MDg2MC1cXHUwODZBXFx1MDhBMC1cXHUwOEI0XFx1MDhCNi1cXHUwOEJEXFx1MDkwNC1cXHUwOTM5XFx1MDkzRFxcdTA5NTBcXHUwOTU4LVxcdTA5NjFcXHUwOTcxLVxcdTA5ODBcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJEXFx1MDlDRVxcdTA5RENcXHUwOUREXFx1MDlERi1cXHUwOUUxXFx1MDlGMFxcdTA5RjFcXHUwOUZDXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEFGOVxcdTBCMDUtXFx1MEIwQ1xcdTBCMEZcXHUwQjEwXFx1MEIxMy1cXHUwQjI4XFx1MEIyQS1cXHUwQjMwXFx1MEIzMlxcdTBCMzNcXHUwQjM1LVxcdTBCMzlcXHUwQjNEXFx1MEI1Q1xcdTBCNURcXHUwQjVGLVxcdTBCNjFcXHUwQjcxXFx1MEI4M1xcdTBCODUtXFx1MEI4QVxcdTBCOEUtXFx1MEI5MFxcdTBCOTItXFx1MEI5NVxcdTBCOTlcXHUwQjlBXFx1MEI5Q1xcdTBCOUVcXHUwQjlGXFx1MEJBM1xcdTBCQTRcXHUwQkE4LVxcdTBCQUFcXHUwQkFFLVxcdTBCQjlcXHUwQkQwXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRFxcdTBDNTgtXFx1MEM1QVxcdTBDNjBcXHUwQzYxXFx1MEM4MFxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ1NC1cXHUwRDU2XFx1MEQ1Ri1cXHUwRDYxXFx1MEQ3QS1cXHUwRDdGXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBFMDEtXFx1MEUzMFxcdTBFMzJcXHUwRTMzXFx1MEU0MC1cXHUwRTQ2XFx1MEU4MVxcdTBFODJcXHUwRTg0XFx1MEU4Ni1cXHUwRThBXFx1MEU4Qy1cXHUwRUEzXFx1MEVBNVxcdTBFQTctXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1XFx1MTA2NlxcdTEwNkUtXFx1MTA3MFxcdTEwNzUtXFx1MTA4MVxcdTEwOEVcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y1XFx1MTNGOC1cXHUxM0ZEXFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZGMS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEN1xcdTE3RENcXHUxODIwLVxcdTE4NzhcXHUxODgwLVxcdTE4ODRcXHUxODg3LVxcdTE4QThcXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTk1MC1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MUEwMC1cXHUxQTE2XFx1MUEyMC1cXHUxQTU0XFx1MUFBN1xcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzdEXFx1MUM4MC1cXHUxQzg4XFx1MUM5MC1cXHUxQ0JBXFx1MUNCRC1cXHUxQ0JGXFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YzXFx1MUNGNVxcdTFDRjZcXHUxQ0ZBXFx1MUQwMC1cXHUxREJGXFx1MUUwMC1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwNzFcXHUyMDdGXFx1MjA5MC1cXHUyMDlDXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxODNcXHUyMTg0XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNVxcdTMwMDZcXHUzMDMxLVxcdTMwMzVcXHUzMDNCXFx1MzAzQ1xcdTMwNDEtXFx1MzA5NlxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRlxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZFRlxcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYxRlxcdUE2MkFcXHVBNjJCXFx1QTY0MC1cXHVBNjZFXFx1QTY3Ri1cXHVBNjlEXFx1QTZBMC1cXHVBNkU1XFx1QTcxNy1cXHVBNzFGXFx1QTcyMi1cXHVBNzg4XFx1QTc4Qi1cXHVBN0JGXFx1QTdDMi1cXHVBN0M2XFx1QTdGNy1cXHVBODAxXFx1QTgwMy1cXHVBODA1XFx1QTgwNy1cXHVBODBBXFx1QTgwQy1cXHVBODIyXFx1QTg0MC1cXHVBODczXFx1QTg4Mi1cXHVBOEIzXFx1QThGMi1cXHVBOEY3XFx1QThGQlxcdUE4RkRcXHVBOEZFXFx1QTkwQS1cXHVBOTI1XFx1QTkzMC1cXHVBOTQ2XFx1QTk2MC1cXHVBOTdDXFx1QTk4NC1cXHVBOUIyXFx1QTlDRlxcdUE5RTAtXFx1QTlFNFxcdUE5RTYtXFx1QTlFRlxcdUE5RkEtXFx1QTlGRVxcdUFBMDAtXFx1QUEyOFxcdUFBNDAtXFx1QUE0MlxcdUFBNDQtXFx1QUE0QlxcdUFBNjAtXFx1QUE3NlxcdUFBN0FcXHVBQTdFLVxcdUFBQUZcXHVBQUIxXFx1QUFCNVxcdUFBQjZcXHVBQUI5LVxcdUFBQkRcXHVBQUMwXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFQVxcdUFBRjItXFx1QUFGNFxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI2N1xcdUFCNzAtXFx1QUJFMlxcdUFDMDAtXFx1RDdBM1xcdUQ3QjAtXFx1RDdDNlxcdUQ3Q0ItXFx1RDdGQlxcdUY5MDAtXFx1RkE2RFxcdUZBNzAtXFx1RkFEOVxcdUZCMDAtXFx1RkIwNlxcdUZCMTMtXFx1RkIxN1xcdUZCMURcXHVGQjFGLVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFNzAtXFx1RkU3NFxcdUZFNzYtXFx1RkVGQ1xcdUZGMjEtXFx1RkYzQVxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ118XFx1RDgwMFtcXHVEQzAwLVxcdURDMEJcXHVEQzBELVxcdURDMjZcXHVEQzI4LVxcdURDM0FcXHVEQzNDXFx1REMzRFxcdURDM0YtXFx1REM0RFxcdURDNTAtXFx1REM1RFxcdURDODAtXFx1RENGQVxcdURFODAtXFx1REU5Q1xcdURFQTAtXFx1REVEMFxcdURGMDAtXFx1REYxRlxcdURGMkQtXFx1REY0MFxcdURGNDItXFx1REY0OVxcdURGNTAtXFx1REY3NVxcdURGODAtXFx1REY5RFxcdURGQTAtXFx1REZDM1xcdURGQzgtXFx1REZDRl18XFx1RDgwMVtcXHVEQzAwLVxcdURDOURcXHVEQ0IwLVxcdURDRDNcXHVEQ0Q4LVxcdURDRkJcXHVERDAwLVxcdUREMjdcXHVERDMwLVxcdURENjNcXHVERTAwLVxcdURGMzZcXHVERjQwLVxcdURGNTVcXHVERjYwLVxcdURGNjddfFxcdUQ4MDJbXFx1REMwMC1cXHVEQzA1XFx1REMwOFxcdURDMEEtXFx1REMzNVxcdURDMzdcXHVEQzM4XFx1REMzQ1xcdURDM0YtXFx1REM1NVxcdURDNjAtXFx1REM3NlxcdURDODAtXFx1REM5RVxcdURDRTAtXFx1RENGMlxcdURDRjRcXHVEQ0Y1XFx1REQwMC1cXHVERDE1XFx1REQyMC1cXHVERDM5XFx1REQ4MC1cXHVEREI3XFx1RERCRVxcdUREQkZcXHVERTAwXFx1REUxMC1cXHVERTEzXFx1REUxNS1cXHVERTE3XFx1REUxOS1cXHVERTM1XFx1REU2MC1cXHVERTdDXFx1REU4MC1cXHVERTlDXFx1REVDMC1cXHVERUM3XFx1REVDOS1cXHVERUU0XFx1REYwMC1cXHVERjM1XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjcyXFx1REY4MC1cXHVERjkxXXxcXHVEODAzW1xcdURDMDAtXFx1REM0OFxcdURDODAtXFx1RENCMlxcdURDQzAtXFx1RENGMlxcdUREMDAtXFx1REQyM1xcdURGMDAtXFx1REYxQ1xcdURGMjdcXHVERjMwLVxcdURGNDVcXHVERkUwLVxcdURGRjZdfFxcdUQ4MDRbXFx1REMwMy1cXHVEQzM3XFx1REM4My1cXHVEQ0FGXFx1RENEMC1cXHVEQ0U4XFx1REQwMy1cXHVERDI2XFx1REQ0NFxcdURENTAtXFx1REQ3MlxcdURENzZcXHVERDgzLVxcdUREQjJcXHVEREMxLVxcdUREQzRcXHVERERBXFx1REREQ1xcdURFMDAtXFx1REUxMVxcdURFMTMtXFx1REUyQlxcdURFODAtXFx1REU4NlxcdURFODhcXHVERThBLVxcdURFOERcXHVERThGLVxcdURFOURcXHVERTlGLVxcdURFQThcXHVERUIwLVxcdURFREVcXHVERjA1LVxcdURGMENcXHVERjBGXFx1REYxMFxcdURGMTMtXFx1REYyOFxcdURGMkEtXFx1REYzMFxcdURGMzJcXHVERjMzXFx1REYzNS1cXHVERjM5XFx1REYzRFxcdURGNTBcXHVERjVELVxcdURGNjFdfFxcdUQ4MDVbXFx1REMwMC1cXHVEQzM0XFx1REM0Ny1cXHVEQzRBXFx1REM1RlxcdURDODAtXFx1RENBRlxcdURDQzRcXHVEQ0M1XFx1RENDN1xcdUREODAtXFx1RERBRVxcdURERDgtXFx1REREQlxcdURFMDAtXFx1REUyRlxcdURFNDRcXHVERTgwLVxcdURFQUFcXHVERUI4XFx1REYwMC1cXHVERjFBXXxcXHVEODA2W1xcdURDMDAtXFx1REMyQlxcdURDQTAtXFx1RENERlxcdURDRkZcXHVEREEwLVxcdUREQTdcXHVEREFBLVxcdURERDBcXHVEREUxXFx1RERFM1xcdURFMDBcXHVERTBCLVxcdURFMzJcXHVERTNBXFx1REU1MFxcdURFNUMtXFx1REU4OVxcdURFOURcXHVERUMwLVxcdURFRjhdfFxcdUQ4MDdbXFx1REMwMC1cXHVEQzA4XFx1REMwQS1cXHVEQzJFXFx1REM0MFxcdURDNzItXFx1REM4RlxcdUREMDAtXFx1REQwNlxcdUREMDhcXHVERDA5XFx1REQwQi1cXHVERDMwXFx1REQ0NlxcdURENjAtXFx1REQ2NVxcdURENjdcXHVERDY4XFx1REQ2QS1cXHVERDg5XFx1REQ5OFxcdURFRTAtXFx1REVGMl18XFx1RDgwOFtcXHVEQzAwLVxcdURGOTldfFxcdUQ4MDlbXFx1REM4MC1cXHVERDQzXXxbXFx1RDgwQ1xcdUQ4MUMtXFx1RDgyMFxcdUQ4NDAtXFx1RDg2OFxcdUQ4NkEtXFx1RDg2Q1xcdUQ4NkYtXFx1RDg3MlxcdUQ4NzQtXFx1RDg3OV1bXFx1REMwMC1cXHVERkZGXXxcXHVEODBEW1xcdURDMDAtXFx1REMyRV18XFx1RDgxMVtcXHVEQzAwLVxcdURFNDZdfFxcdUQ4MUFbXFx1REMwMC1cXHVERTM4XFx1REU0MC1cXHVERTVFXFx1REVEMC1cXHVERUVEXFx1REYwMC1cXHVERjJGXFx1REY0MC1cXHVERjQzXFx1REY2My1cXHVERjc3XFx1REY3RC1cXHVERjhGXXxcXHVEODFCW1xcdURFNDAtXFx1REU3RlxcdURGMDAtXFx1REY0QVxcdURGNTBcXHVERjkzLVxcdURGOUZcXHVERkUwXFx1REZFMVxcdURGRTNdfFxcdUQ4MjFbXFx1REMwMC1cXHVERkY3XXxcXHVEODIyW1xcdURDMDAtXFx1REVGMl18XFx1RDgyQ1tcXHVEQzAwLVxcdUREMUVcXHVERDUwLVxcdURENTJcXHVERDY0LVxcdURENjdcXHVERDcwLVxcdURFRkJdfFxcdUQ4MkZbXFx1REMwMC1cXHVEQzZBXFx1REM3MC1cXHVEQzdDXFx1REM4MC1cXHVEQzg4XFx1REM5MC1cXHVEQzk5XXxcXHVEODM1W1xcdURDMDAtXFx1REM1NFxcdURDNTYtXFx1REM5Q1xcdURDOUVcXHVEQzlGXFx1RENBMlxcdURDQTVcXHVEQ0E2XFx1RENBOS1cXHVEQ0FDXFx1RENBRS1cXHVEQ0I5XFx1RENCQlxcdURDQkQtXFx1RENDM1xcdURDQzUtXFx1REQwNVxcdUREMDctXFx1REQwQVxcdUREMEQtXFx1REQxNFxcdUREMTYtXFx1REQxQ1xcdUREMUUtXFx1REQzOVxcdUREM0ItXFx1REQzRVxcdURENDAtXFx1REQ0NFxcdURENDZcXHVERDRBLVxcdURENTBcXHVERDUyLVxcdURFQTVcXHVERUE4LVxcdURFQzBcXHVERUMyLVxcdURFREFcXHVERURDLVxcdURFRkFcXHVERUZDLVxcdURGMTRcXHVERjE2LVxcdURGMzRcXHVERjM2LVxcdURGNEVcXHVERjUwLVxcdURGNkVcXHVERjcwLVxcdURGODhcXHVERjhBLVxcdURGQThcXHVERkFBLVxcdURGQzJcXHVERkM0LVxcdURGQ0JdfFxcdUQ4MzhbXFx1REQwMC1cXHVERDJDXFx1REQzNy1cXHVERDNEXFx1REQ0RVxcdURFQzAtXFx1REVFQl18XFx1RDgzQVtcXHVEQzAwLVxcdURDQzRcXHVERDAwLVxcdURENDNcXHVERDRCXXxcXHVEODNCW1xcdURFMDAtXFx1REUwM1xcdURFMDUtXFx1REUxRlxcdURFMjFcXHVERTIyXFx1REUyNFxcdURFMjdcXHVERTI5LVxcdURFMzJcXHVERTM0LVxcdURFMzdcXHVERTM5XFx1REUzQlxcdURFNDJcXHVERTQ3XFx1REU0OVxcdURFNEJcXHVERTRELVxcdURFNEZcXHVERTUxXFx1REU1MlxcdURFNTRcXHVERTU3XFx1REU1OVxcdURFNUJcXHVERTVEXFx1REU1RlxcdURFNjFcXHVERTYyXFx1REU2NFxcdURFNjctXFx1REU2QVxcdURFNkMtXFx1REU3MlxcdURFNzQtXFx1REU3N1xcdURFNzktXFx1REU3Q1xcdURFN0VcXHVERTgwLVxcdURFODlcXHVERThCLVxcdURFOUJcXHVERUExLVxcdURFQTNcXHVERUE1LVxcdURFQTlcXHVERUFCLVxcdURFQkJdfFxcdUQ4NjlbXFx1REMwMC1cXHVERUQ2XFx1REYwMC1cXHVERkZGXXxcXHVEODZEW1xcdURDMDAtXFx1REYzNFxcdURGNDAtXFx1REZGRl18XFx1RDg2RVtcXHVEQzAwLVxcdURDMURcXHVEQzIwLVxcdURGRkZdfFxcdUQ4NzNbXFx1REMwMC1cXHVERUExXFx1REVCMC1cXHVERkZGXXxcXHVEODdBW1xcdURDMDAtXFx1REZFMF18XFx1RDg3RVtcXHVEQzAwLVxcdURFMURdKSknXHJcbiAgICAgICAgICBicmVha1xyXG4gICAgICAgIGNhc2UgJzAnOlxyXG4gICAgICAgICAgcmVnZXggKz0gJyhbMC05XSknXHJcbiAgICAgICAgICBicmVha1xyXG4gICAgICAgIGNhc2UgJ3onOlxyXG4gICAgICAgIGNhc2UgJ1onOlxyXG4gICAgICAgICAgcmVnZXggKz0gSVNfVU5JQ09ERV9QUk9QRVJUWV9TVVBQT1JURURcclxuICAgICAgICAgICAgPyAnKFswLTldfFxcXFxwe0x9KSdcclxuICAgICAgICAgICAgOiAnKFswLTldfCg/OltBLVphLXpcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MC1cXHUwNTg4XFx1MDVEMC1cXHUwNUVBXFx1MDVFRi1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODYtXFx1MEU4QVxcdTBFOEMtXFx1MEVBM1xcdTBFQTVcXHUwRUE3LVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RjEtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMVxcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTgzXFx1MjE4NFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNFRVxcdTJDRjJcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDVcXHUzMDA2XFx1MzAzMS1cXHUzMDM1XFx1MzAzQlxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkZcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUZcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFNVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdCRlxcdUE3QzItXFx1QTdDNlxcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QThGRVxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjdcXHVBQjcwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNDBcXHVERjQyLVxcdURGNDlcXHVERjUwLVxcdURGNzVcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMFxcdURFMTAtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzNVxcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNFxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJcXHVERDAwLVxcdUREMjNcXHVERjAwLVxcdURGMUNcXHVERjI3XFx1REYzMC1cXHVERjQ1XFx1REZFMC1cXHVERkY2XXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdUREMDMtXFx1REQyNlxcdURENDRcXHVERDUwLVxcdURENzJcXHVERDc2XFx1REQ4My1cXHVEREIyXFx1RERDMS1cXHVEREM0XFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERURFXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0RcXHVERjUwXFx1REY1RC1cXHVERjYxXXxcXHVEODA1W1xcdURDMDAtXFx1REMzNFxcdURDNDctXFx1REM0QVxcdURDNUZcXHVEQzgwLVxcdURDQUZcXHVEQ0M0XFx1RENDNVxcdURDQzdcXHVERDgwLVxcdUREQUVcXHVEREQ4LVxcdUREREJcXHVERTAwLVxcdURFMkZcXHVERTQ0XFx1REU4MC1cXHVERUFBXFx1REVCOFxcdURGMDAtXFx1REYxQV18XFx1RDgwNltcXHVEQzAwLVxcdURDMkJcXHVEQ0EwLVxcdURDREZcXHVEQ0ZGXFx1RERBMC1cXHVEREE3XFx1RERBQS1cXHVEREQwXFx1RERFMVxcdURERTNcXHVERTAwXFx1REUwQi1cXHVERTMyXFx1REUzQVxcdURFNTBcXHVERTVDLVxcdURFODlcXHVERTlEXFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMyRVxcdURDNDBcXHVEQzcyLVxcdURDOEZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzMFxcdURENDZcXHVERDYwLVxcdURENjVcXHVERDY3XFx1REQ2OFxcdURENkEtXFx1REQ4OVxcdUREOThcXHVERUUwLVxcdURFRjJdfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzldW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNDAtXFx1REY0M1xcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERTQwLVxcdURFN0ZcXHVERjAwLVxcdURGNEFcXHVERjUwXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFcXHVERkUzXXxcXHVEODIxW1xcdURDMDAtXFx1REZGN118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ1MC1cXHVERDUyXFx1REQ2NC1cXHVERDY3XFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OV18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXXxcXHVEODM4W1xcdUREMDAtXFx1REQyQ1xcdUREMzctXFx1REQzRFxcdURENEVcXHVERUMwLVxcdURFRUJdfFxcdUQ4M0FbXFx1REMwMC1cXHVEQ0M0XFx1REQwMC1cXHVERDQzXFx1REQ0Ql18XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXSkpJ1xyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBjYXNlICdVJzpcclxuICAgICAgICAgIHJlZ2V4ICs9IElTX1VOSUNPREVfUFJPUEVSVFlfU1VQUE9SVEVEXHJcbiAgICAgICAgICAgID8gJygoWzAtOV0pfChcXFxccyl8KFsuLC8jISQlXiYqOzp7fT0tX2B+KCldKXwoXFxcXHB7TH0pKSdcclxuICAgICAgICAgICAgOiAnKChbMC05XSl8KFxcXFxzKXwoWy4sLyMhJCVeJio7Ont9PS1fYH4oKV0pfCg/OltBLVphLXpcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MC1cXHUwNTg4XFx1MDVEMC1cXHUwNUVBXFx1MDVFRi1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4NjAtXFx1MDg2QVxcdTA4QTAtXFx1MDhCNFxcdTA4QjYtXFx1MDhCRFxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MDlGQ1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEE1OS1cXHUwQTVDXFx1MEE1RVxcdTBBNzItXFx1MEE3NFxcdTBBODUtXFx1MEE4RFxcdTBBOEYtXFx1MEE5MVxcdTBBOTMtXFx1MEFBOFxcdTBBQUEtXFx1MEFCMFxcdTBBQjJcXHUwQUIzXFx1MEFCNS1cXHUwQUI5XFx1MEFCRFxcdTBBRDBcXHUwQUUwXFx1MEFFMVxcdTBBRjlcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzRFxcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYxXFx1MEI3MVxcdTBCODNcXHUwQjg1LVxcdTBCOEFcXHUwQjhFLVxcdTBCOTBcXHUwQjkyLVxcdTBCOTVcXHUwQjk5XFx1MEI5QVxcdTBCOUNcXHUwQjlFXFx1MEI5RlxcdTBCQTNcXHUwQkE0XFx1MEJBOC1cXHUwQkFBXFx1MEJBRS1cXHUwQkI5XFx1MEJEMFxcdTBDMDUtXFx1MEMwQ1xcdTBDMEUtXFx1MEMxMFxcdTBDMTItXFx1MEMyOFxcdTBDMkEtXFx1MEMzOVxcdTBDM0RcXHUwQzU4LVxcdTBDNUFcXHUwQzYwXFx1MEM2MVxcdTBDODBcXHUwQzg1LVxcdTBDOENcXHUwQzhFLVxcdTBDOTBcXHUwQzkyLVxcdTBDQThcXHUwQ0FBLVxcdTBDQjNcXHUwQ0I1LVxcdTBDQjlcXHUwQ0JEXFx1MENERVxcdTBDRTBcXHUwQ0UxXFx1MENGMVxcdTBDRjJcXHUwRDA1LVxcdTBEMENcXHUwRDBFLVxcdTBEMTBcXHUwRDEyLVxcdTBEM0FcXHUwRDNEXFx1MEQ0RVxcdTBENTQtXFx1MEQ1NlxcdTBENUYtXFx1MEQ2MVxcdTBEN0EtXFx1MEQ3RlxcdTBEODUtXFx1MEQ5NlxcdTBEOUEtXFx1MERCMVxcdTBEQjMtXFx1MERCQlxcdTBEQkRcXHUwREMwLVxcdTBEQzZcXHUwRTAxLVxcdTBFMzBcXHUwRTMyXFx1MEUzM1xcdTBFNDAtXFx1MEU0NlxcdTBFODFcXHUwRTgyXFx1MEU4NFxcdTBFODYtXFx1MEU4QVxcdTBFOEMtXFx1MEVBM1xcdTBFQTVcXHUwRUE3LVxcdTBFQjBcXHUwRUIyXFx1MEVCM1xcdTBFQkRcXHUwRUMwLVxcdTBFQzRcXHUwRUM2XFx1MEVEQy1cXHUwRURGXFx1MEYwMFxcdTBGNDAtXFx1MEY0N1xcdTBGNDktXFx1MEY2Q1xcdTBGODgtXFx1MEY4Q1xcdTEwMDAtXFx1MTAyQVxcdTEwM0ZcXHUxMDUwLVxcdTEwNTVcXHUxMDVBLVxcdTEwNURcXHUxMDYxXFx1MTA2NVxcdTEwNjZcXHUxMDZFLVxcdTEwNzBcXHUxMDc1LVxcdTEwODFcXHUxMDhFXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNVxcdTEzRjgtXFx1MTNGRFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RjEtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxMVxcdTE3MjAtXFx1MTczMVxcdTE3NDAtXFx1MTc1MVxcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3ODAtXFx1MTdCM1xcdTE3RDdcXHUxN0RDXFx1MTgyMC1cXHUxODc4XFx1MTg4MC1cXHUxODg0XFx1MTg4Ny1cXHUxOEE4XFx1MThBQVxcdTE4QjAtXFx1MThGNVxcdTE5MDAtXFx1MTkxRVxcdTE5NTAtXFx1MTk2RFxcdTE5NzAtXFx1MTk3NFxcdTE5ODAtXFx1MTlBQlxcdTE5QjAtXFx1MTlDOVxcdTFBMDAtXFx1MUExNlxcdTFBMjAtXFx1MUE1NFxcdTFBQTdcXHUxQjA1LVxcdTFCMzNcXHUxQjQ1LVxcdTFCNEJcXHUxQjgzLVxcdTFCQTBcXHUxQkFFXFx1MUJBRlxcdTFCQkEtXFx1MUJFNVxcdTFDMDAtXFx1MUMyM1xcdTFDNEQtXFx1MUM0RlxcdTFDNUEtXFx1MUM3RFxcdTFDODAtXFx1MUM4OFxcdTFDOTAtXFx1MUNCQVxcdTFDQkQtXFx1MUNCRlxcdTFDRTktXFx1MUNFQ1xcdTFDRUUtXFx1MUNGM1xcdTFDRjVcXHUxQ0Y2XFx1MUNGQVxcdTFEMDAtXFx1MURCRlxcdTFFMDAtXFx1MUYxNVxcdTFGMTgtXFx1MUYxRFxcdTFGMjAtXFx1MUY0NVxcdTFGNDgtXFx1MUY0RFxcdTFGNTAtXFx1MUY1N1xcdTFGNTlcXHUxRjVCXFx1MUY1RFxcdTFGNUYtXFx1MUY3RFxcdTFGODAtXFx1MUZCNFxcdTFGQjYtXFx1MUZCQ1xcdTFGQkVcXHUxRkMyLVxcdTFGQzRcXHUxRkM2LVxcdTFGQ0NcXHUxRkQwLVxcdTFGRDNcXHUxRkQ2LVxcdTFGREJcXHUxRkUwLVxcdTFGRUNcXHUxRkYyLVxcdTFGRjRcXHUxRkY2LVxcdTFGRkNcXHUyMDcxXFx1MjA3RlxcdTIwOTAtXFx1MjA5Q1xcdTIxMDJcXHUyMTA3XFx1MjEwQS1cXHUyMTEzXFx1MjExNVxcdTIxMTktXFx1MjExRFxcdTIxMjRcXHUyMTI2XFx1MjEyOFxcdTIxMkEtXFx1MjEyRFxcdTIxMkYtXFx1MjEzOVxcdTIxM0MtXFx1MjEzRlxcdTIxNDUtXFx1MjE0OVxcdTIxNEVcXHUyMTgzXFx1MjE4NFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNFRVxcdTJDRjJcXHUyQ0YzXFx1MkQwMC1cXHUyRDI1XFx1MkQyN1xcdTJEMkRcXHUyRDMwLVxcdTJENjdcXHUyRDZGXFx1MkQ4MC1cXHUyRDk2XFx1MkRBMC1cXHUyREE2XFx1MkRBOC1cXHUyREFFXFx1MkRCMC1cXHUyREI2XFx1MkRCOC1cXHUyREJFXFx1MkRDMC1cXHUyREM2XFx1MkRDOC1cXHUyRENFXFx1MkREMC1cXHUyREQ2XFx1MkREOC1cXHUyRERFXFx1MkUyRlxcdTMwMDVcXHUzMDA2XFx1MzAzMS1cXHUzMDM1XFx1MzAzQlxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDlELVxcdTMwOUZcXHUzMEExLVxcdTMwRkFcXHUzMEZDLVxcdTMwRkZcXHUzMTA1LVxcdTMxMkZcXHUzMTMxLVxcdTMxOEVcXHUzMUEwLVxcdTMxQkFcXHUzMUYwLVxcdTMxRkZcXHUzNDAwLVxcdTREQjVcXHU0RTAwLVxcdTlGRUZcXHVBMDAwLVxcdUE0OENcXHVBNEQwLVxcdUE0RkRcXHVBNTAwLVxcdUE2MENcXHVBNjEwLVxcdUE2MUZcXHVBNjJBXFx1QTYyQlxcdUE2NDAtXFx1QTY2RVxcdUE2N0YtXFx1QTY5RFxcdUE2QTAtXFx1QTZFNVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTdCRlxcdUE3QzItXFx1QTdDNlxcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOEZEXFx1QThGRVxcdUE5MEEtXFx1QTkyNVxcdUE5MzAtXFx1QTk0NlxcdUE5NjAtXFx1QTk3Q1xcdUE5ODQtXFx1QTlCMlxcdUE5Q0ZcXHVBOUUwLVxcdUE5RTRcXHVBOUU2LVxcdUE5RUZcXHVBOUZBLVxcdUE5RkVcXHVBQTAwLVxcdUFBMjhcXHVBQTQwLVxcdUFBNDJcXHVBQTQ0LVxcdUFBNEJcXHVBQTYwLVxcdUFBNzZcXHVBQTdBXFx1QUE3RS1cXHVBQUFGXFx1QUFCMVxcdUFBQjVcXHVBQUI2XFx1QUFCOS1cXHVBQUJEXFx1QUFDMFxcdUFBQzJcXHVBQURCLVxcdUFBRERcXHVBQUUwLVxcdUFBRUFcXHVBQUYyLVxcdUFBRjRcXHVBQjAxLVxcdUFCMDZcXHVBQjA5LVxcdUFCMEVcXHVBQjExLVxcdUFCMTZcXHVBQjIwLVxcdUFCMjZcXHVBQjI4LVxcdUFCMkVcXHVBQjMwLVxcdUFCNUFcXHVBQjVDLVxcdUFCNjdcXHVBQjcwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdfFxcdUQ4MDBbXFx1REMwMC1cXHVEQzBCXFx1REMwRC1cXHVEQzI2XFx1REMyOC1cXHVEQzNBXFx1REMzQ1xcdURDM0RcXHVEQzNGLVxcdURDNERcXHVEQzUwLVxcdURDNURcXHVEQzgwLVxcdURDRkFcXHVERTgwLVxcdURFOUNcXHVERUEwLVxcdURFRDBcXHVERjAwLVxcdURGMUZcXHVERjJELVxcdURGNDBcXHVERjQyLVxcdURGNDlcXHVERjUwLVxcdURGNzVcXHVERjgwLVxcdURGOURcXHVERkEwLVxcdURGQzNcXHVERkM4LVxcdURGQ0ZdfFxcdUQ4MDFbXFx1REMwMC1cXHVEQzlEXFx1RENCMC1cXHVEQ0QzXFx1RENEOC1cXHVEQ0ZCXFx1REQwMC1cXHVERDI3XFx1REQzMC1cXHVERDYzXFx1REUwMC1cXHVERjM2XFx1REY0MC1cXHVERjU1XFx1REY2MC1cXHVERjY3XXxcXHVEODAyW1xcdURDMDAtXFx1REMwNVxcdURDMDhcXHVEQzBBLVxcdURDMzVcXHVEQzM3XFx1REMzOFxcdURDM0NcXHVEQzNGLVxcdURDNTVcXHVEQzYwLVxcdURDNzZcXHVEQzgwLVxcdURDOUVcXHVEQ0UwLVxcdURDRjJcXHVEQ0Y0XFx1RENGNVxcdUREMDAtXFx1REQxNVxcdUREMjAtXFx1REQzOVxcdUREODAtXFx1RERCN1xcdUREQkVcXHVEREJGXFx1REUwMFxcdURFMTAtXFx1REUxM1xcdURFMTUtXFx1REUxN1xcdURFMTktXFx1REUzNVxcdURFNjAtXFx1REU3Q1xcdURFODAtXFx1REU5Q1xcdURFQzAtXFx1REVDN1xcdURFQzktXFx1REVFNFxcdURGMDAtXFx1REYzNVxcdURGNDAtXFx1REY1NVxcdURGNjAtXFx1REY3MlxcdURGODAtXFx1REY5MV18XFx1RDgwM1tcXHVEQzAwLVxcdURDNDhcXHVEQzgwLVxcdURDQjJcXHVEQ0MwLVxcdURDRjJcXHVERDAwLVxcdUREMjNcXHVERjAwLVxcdURGMUNcXHVERjI3XFx1REYzMC1cXHVERjQ1XFx1REZFMC1cXHVERkY2XXxcXHVEODA0W1xcdURDMDMtXFx1REMzN1xcdURDODMtXFx1RENBRlxcdURDRDAtXFx1RENFOFxcdUREMDMtXFx1REQyNlxcdURENDRcXHVERDUwLVxcdURENzJcXHVERDc2XFx1REQ4My1cXHVEREIyXFx1RERDMS1cXHVEREM0XFx1REREQVxcdURERENcXHVERTAwLVxcdURFMTFcXHVERTEzLVxcdURFMkJcXHVERTgwLVxcdURFODZcXHVERTg4XFx1REU4QS1cXHVERThEXFx1REU4Ri1cXHVERTlEXFx1REU5Ri1cXHVERUE4XFx1REVCMC1cXHVERURFXFx1REYwNS1cXHVERjBDXFx1REYwRlxcdURGMTBcXHVERjEzLVxcdURGMjhcXHVERjJBLVxcdURGMzBcXHVERjMyXFx1REYzM1xcdURGMzUtXFx1REYzOVxcdURGM0RcXHVERjUwXFx1REY1RC1cXHVERjYxXXxcXHVEODA1W1xcdURDMDAtXFx1REMzNFxcdURDNDctXFx1REM0QVxcdURDNUZcXHVEQzgwLVxcdURDQUZcXHVEQ0M0XFx1RENDNVxcdURDQzdcXHVERDgwLVxcdUREQUVcXHVEREQ4LVxcdUREREJcXHVERTAwLVxcdURFMkZcXHVERTQ0XFx1REU4MC1cXHVERUFBXFx1REVCOFxcdURGMDAtXFx1REYxQV18XFx1RDgwNltcXHVEQzAwLVxcdURDMkJcXHVEQ0EwLVxcdURDREZcXHVEQ0ZGXFx1RERBMC1cXHVEREE3XFx1RERBQS1cXHVEREQwXFx1RERFMVxcdURERTNcXHVERTAwXFx1REUwQi1cXHVERTMyXFx1REUzQVxcdURFNTBcXHVERTVDLVxcdURFODlcXHVERTlEXFx1REVDMC1cXHVERUY4XXxcXHVEODA3W1xcdURDMDAtXFx1REMwOFxcdURDMEEtXFx1REMyRVxcdURDNDBcXHVEQzcyLVxcdURDOEZcXHVERDAwLVxcdUREMDZcXHVERDA4XFx1REQwOVxcdUREMEItXFx1REQzMFxcdURENDZcXHVERDYwLVxcdURENjVcXHVERDY3XFx1REQ2OFxcdURENkEtXFx1REQ4OVxcdUREOThcXHVERUUwLVxcdURFRjJdfFxcdUQ4MDhbXFx1REMwMC1cXHVERjk5XXxcXHVEODA5W1xcdURDODAtXFx1REQ0M118W1xcdUQ4MENcXHVEODFDLVxcdUQ4MjBcXHVEODQwLVxcdUQ4NjhcXHVEODZBLVxcdUQ4NkNcXHVEODZGLVxcdUQ4NzJcXHVEODc0LVxcdUQ4NzldW1xcdURDMDAtXFx1REZGRl18XFx1RDgwRFtcXHVEQzAwLVxcdURDMkVdfFxcdUQ4MTFbXFx1REMwMC1cXHVERTQ2XXxcXHVEODFBW1xcdURDMDAtXFx1REUzOFxcdURFNDAtXFx1REU1RVxcdURFRDAtXFx1REVFRFxcdURGMDAtXFx1REYyRlxcdURGNDAtXFx1REY0M1xcdURGNjMtXFx1REY3N1xcdURGN0QtXFx1REY4Rl18XFx1RDgxQltcXHVERTQwLVxcdURFN0ZcXHVERjAwLVxcdURGNEFcXHVERjUwXFx1REY5My1cXHVERjlGXFx1REZFMFxcdURGRTFcXHVERkUzXXxcXHVEODIxW1xcdURDMDAtXFx1REZGN118XFx1RDgyMltcXHVEQzAwLVxcdURFRjJdfFxcdUQ4MkNbXFx1REMwMC1cXHVERDFFXFx1REQ1MC1cXHVERDUyXFx1REQ2NC1cXHVERDY3XFx1REQ3MC1cXHVERUZCXXxcXHVEODJGW1xcdURDMDAtXFx1REM2QVxcdURDNzAtXFx1REM3Q1xcdURDODAtXFx1REM4OFxcdURDOTAtXFx1REM5OV18XFx1RDgzNVtcXHVEQzAwLVxcdURDNTRcXHVEQzU2LVxcdURDOUNcXHVEQzlFXFx1REM5RlxcdURDQTJcXHVEQ0E1XFx1RENBNlxcdURDQTktXFx1RENBQ1xcdURDQUUtXFx1RENCOVxcdURDQkJcXHVEQ0JELVxcdURDQzNcXHVEQ0M1LVxcdUREMDVcXHVERDA3LVxcdUREMEFcXHVERDBELVxcdUREMTRcXHVERDE2LVxcdUREMUNcXHVERDFFLVxcdUREMzlcXHVERDNCLVxcdUREM0VcXHVERDQwLVxcdURENDRcXHVERDQ2XFx1REQ0QS1cXHVERDUwXFx1REQ1Mi1cXHVERUE1XFx1REVBOC1cXHVERUMwXFx1REVDMi1cXHVERURBXFx1REVEQy1cXHVERUZBXFx1REVGQy1cXHVERjE0XFx1REYxNi1cXHVERjM0XFx1REYzNi1cXHVERjRFXFx1REY1MC1cXHVERjZFXFx1REY3MC1cXHVERjg4XFx1REY4QS1cXHVERkE4XFx1REZBQS1cXHVERkMyXFx1REZDNC1cXHVERkNCXXxcXHVEODM4W1xcdUREMDAtXFx1REQyQ1xcdUREMzctXFx1REQzRFxcdURENEVcXHVERUMwLVxcdURFRUJdfFxcdUQ4M0FbXFx1REMwMC1cXHVEQ0M0XFx1REQwMC1cXHVERDQzXFx1REQ0Ql18XFx1RDgzQltcXHVERTAwLVxcdURFMDNcXHVERTA1LVxcdURFMUZcXHVERTIxXFx1REUyMlxcdURFMjRcXHVERTI3XFx1REUyOS1cXHVERTMyXFx1REUzNC1cXHVERTM3XFx1REUzOVxcdURFM0JcXHVERTQyXFx1REU0N1xcdURFNDlcXHVERTRCXFx1REU0RC1cXHVERTRGXFx1REU1MVxcdURFNTJcXHVERTU0XFx1REU1N1xcdURFNTlcXHVERTVCXFx1REU1RFxcdURFNUZcXHVERTYxXFx1REU2MlxcdURFNjRcXHVERTY3LVxcdURFNkFcXHVERTZDLVxcdURFNzJcXHVERTc0LVxcdURFNzdcXHVERTc5LVxcdURFN0NcXHVERTdFXFx1REU4MC1cXHVERTg5XFx1REU4Qi1cXHVERTlCXFx1REVBMS1cXHVERUEzXFx1REVBNS1cXHVERUE5XFx1REVBQi1cXHVERUJCXXxcXHVEODY5W1xcdURDMDAtXFx1REVENlxcdURGMDAtXFx1REZGRl18XFx1RDg2RFtcXHVEQzAwLVxcdURGMzRcXHVERjQwLVxcdURGRkZdfFxcdUQ4NkVbXFx1REMwMC1cXHVEQzFEXFx1REMyMC1cXHVERkZGXXxcXHVEODczW1xcdURDMDAtXFx1REVBMVxcdURFQjAtXFx1REZGRl18XFx1RDg3QVtcXHVEQzAwLVxcdURGRTBdfFxcdUQ4N0VbXFx1REMwMC1cXHVERTFEXSkpJ1xyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmVnZXggKz0gYy5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXHJcbiAgICAgICAgICBicmVha1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIGdlbmVyYXRlUGF0dGVybkZyb21NYXNrLl9fQ0FDSEVfX1tjYWNoZUtleV0gPSByZWdleFxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGdlbmVyYXRlUGF0dGVybkZyb21NYXNrLl9fQ0FDSEVfX1tjYWNoZUtleV1cclxufVxyXG5cclxuLyoqXHJcbiAqIFVubWFzayB0aGUgZ2l2ZW4gdmFsdWVcclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IG1hc2tlZFZhbHVlIG1hc2tlZCBzdHJpbmdcclxuICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgIHRoZSB1c2VkIG1hc2sgdG8gcHJvZHVjZSB0aGUgbWFza2VkIHN0cmluZ1xyXG4gKi9cclxuY29uc3QgdW5tYXNrID0gKG1hc2tlZFZhbHVlLCBtYXNrKSA9PiB7XHJcbiAgaWYgKHR5cGVvZiB1bm1hc2suX19DQUNIRV9fID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgdW5tYXNrLl9fQ0FDSEVfXyA9IHt9XHJcbiAgfVxyXG5cclxuICBjb25zdCBjYWNoZUtleSA9IGAke21hc2tlZFZhbHVlfS0ke21hc2t9YFxyXG5cclxuICBpZiAoIXVubWFzay5fX0NBQ0hFX19bY2FjaGVLZXldKSB7XHJcbiAgICBjb25zdCBtYXNrQXNBcnJheSA9IG1hc2suc3BsaXQoJycpXHJcbiAgICBjb25zdCBtYXNrZWRWYWx1ZUFzQXJyYXkgPSBtYXNrZWRWYWx1ZS5zcGxpdCgnJylcclxuXHJcbiAgICBsZXQgdW5tYXNrZWQgPSAnJ1xyXG5cclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXNrZWRWYWx1ZUFzQXJyYXkubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGVsID0gbWFza2VkVmFsdWVBc0FycmF5W2luZGV4XVxyXG4gICAgICBjb25zdCBtYXNrID0gbWFza0FzQXJyYXlbaW5kZXhdXHJcbiAgICAgIGNvbnN0IGVsSGFzTWFzayA9IFNVUFBPUlRFRF9NQVNLUy5pbmRleE9mKG1hc2spID4gLTFcclxuICAgICAgaWYgKGVsSGFzTWFzaykge1xyXG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKFxyXG4gICAgICAgICAgZ2VuZXJhdGVQYXR0ZXJuRnJvbU1hc2sobWFzayksXHJcbiAgICAgICAgICBJU19VTklDT0RFX1BST1BFUlRZX1NVUFBPUlRFRCA/ICd1JyA6ICcnXHJcbiAgICAgICAgKVxyXG4gICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoZWwpKSB1bm1hc2tlZCArPSBlbFxyXG4gICAgICAgIGVsc2UgYnJlYWtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVubWFzay5fX0NBQ0hFX19bY2FjaGVLZXldID0gdW5tYXNrZWQudG9Mb2NhbGVMb3dlckNhc2UoKVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHVubWFzay5fX0NBQ0hFX19bY2FjaGVLZXldXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHaXZlbiB0aGUgbWFza2VkIHN0cmluZyAsIGZpbmQgdGhlIG5leHQgY2FyZXQgcG9zaXRpb24gZGVwZW5kaW5nIG9uXHJcbiAqIHdoYXQgaXMgbWlzc2luZyB0byBjb21wbGV0ZSB0aGUgbWFza1xyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gbWFza2VkVmFsdWUgbWFza2VkIHN0cmluZ1xyXG4gKiBAcGFyYW0ge1N0cmluZ30gbWFzayAgdGhlIHVzZWQgbWFzayB0byBwcm9kdWNlIHRoZSBtYXNrZWQgc3RyaW5nXHJcbiAqL1xyXG5jb25zdCBmaW5kQ2FyZXRQb3NpdGlvbiA9IChtYXNrZWRWYWx1ZSwgbWFzaykgPT4ge1xyXG4gIGlmICh0eXBlb2YgZmluZENhcmV0UG9zaXRpb24uX19DQUNIRV9fID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgZmluZENhcmV0UG9zaXRpb24uX19DQUNIRV9fID0ge31cclxuICB9XHJcblxyXG4gIGNvbnN0IGNhY2hlS2V5ID0gYCR7bWFza2VkVmFsdWV9LSR7bWFza31gXHJcbiAgaWYgKCFmaW5kQ2FyZXRQb3NpdGlvbi5fX0NBQ0hFX19bY2FjaGVLZXldKSB7XHJcbiAgICBjb25zdCBtYXNrQXNBcnJheSA9IG1hc2suc3BsaXQoJycpXHJcbiAgICBsZXQgbWFza2VkVmFsdWVBc0FycmF5ID0gbWFza2VkVmFsdWUuc3BsaXQoJycpXHJcbiAgICBpZiAobWFza2VkVmFsdWVBc0FycmF5Lmxlbmd0aCA8IG1hc2tBc0FycmF5Lmxlbmd0aCkge1xyXG4gICAgICBtYXNrZWRWYWx1ZUFzQXJyYXkgPSBtYXNrZWRWYWx1ZUFzQXJyYXkuY29uY2F0KFxyXG4gICAgICAgIG5ldyBBcnJheShtYXNrQXNBcnJheS5sZW5ndGggLSBtYXNrZWRWYWx1ZUFzQXJyYXkubGVuZ3RoKS5qb2luKCcgJykuc3BsaXQoJycpXHJcbiAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcG9zaXRpb24gPSAtMVxyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hc2tBc0FycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBlbCA9IG1hc2tBc0FycmF5W2luZGV4XVxyXG4gICAgICBpZiAoZWwgIT09IG1hc2tlZFZhbHVlQXNBcnJheVtpbmRleF0pIHtcclxuICAgICAgICAvLyBpZiAobWFza2VkVmFsdWVBc0FycmF5W2luZGV4XSA9PT0gJyAnKSByZXR1cm4gaW5kZXhcclxuICAgICAgICBpZiAoU1VQUE9SVEVEX01BU0tTLmluZGV4T2YoZWwpID4gLTEpIHtcclxuICAgICAgICAgIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKFxyXG4gICAgICAgICAgICBnZW5lcmF0ZVBhdHRlcm5Gcm9tTWFzayhlbCksXHJcbiAgICAgICAgICAgIElTX1VOSUNPREVfUFJPUEVSVFlfU1VQUE9SVEVEID8gJ3UnIDogJydcclxuICAgICAgICAgIClcclxuXHJcbiAgICAgICAgICBpZiAoIXBhdHRlcm4udGVzdChtYXNrZWRWYWx1ZUFzQXJyYXlbaW5kZXhdKSkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbiA9IGluZGV4XHJcbiAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZmluZENhcmV0UG9zaXRpb24uX19DQUNIRV9fW2NhY2hlS2V5XSA9XHJcbiAgICAgIHBvc2l0aW9uIDwgMCA/IG1hc2tlZFZhbHVlQXNBcnJheS5sZW5ndGggOiBwb3NpdGlvblxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbmRDYXJldFBvc2l0aW9uLl9fQ0FDSEVfX1tjYWNoZUtleV1cclxufVxyXG5cclxuZXhwb3J0IHtcclxuICBpc01hc2tlZFZhbHVlLFxyXG4gIG1hc2tJZk5vdE1hc2tlZCxcclxuICB1bm1hc2ssXHJcbiAgZmluZENhcmV0UG9zaXRpb24sXHJcbiAgZ2VuZXJhdGVQYXR0ZXJuRnJvbU1hc2ssXHJcbiAgSVNfVU5JQ09ERV9QUk9QRVJUWV9TVVBQT1JURUQsXHJcbn1cclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL1RleHRJbnB1dC90b29scy5qcyIsIi8qXHJcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJhc2lzLWlucHV0LW1hc2tpbmcgbGliLlxyXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XHJcbiAqXHJcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXHJcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxyXG4gKi9cclxuXHJcbmltcG9ydCBOdW1iZXJJbnB1dCBmcm9tICcuL051bWJlcklucHV0J1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTnVtYmVySW5wdXRcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL051bWJlcklucHV0L2luZGV4LmpzIiwiLypcclxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmFzaXMtaW5wdXQtbWFza2luZyBsaWIuXHJcbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cclxuICpcclxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcclxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IE51bWJlck1hc2sgZnJvbSAnYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrJ1xyXG5cclxuY29uc3QgY291bnREZWNpbWFscyA9IHZhbHVlID0+IHtcclxuICBpZiAodmFsdWUgJSAxICE9IDApIHtcclxuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLicpXHJcbiAgICBpZiAoc3BsaXQubGVuZ3RoID09PSAyKSByZXR1cm4gc3BsaXRbMV0ubGVuZ3RoXHJcbiAgfVxyXG4gIHJldHVybiAwXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgYE51bWJlcklucHV0YCB3aWxsIHdyYXAgdGV4dCBpbnB1dHMgYW5kIGFwcGx5IHRoZSBnaXZlbiBbYmJqIE51bWJlciBtYXNrXShodHRwczovL2dpdGh1Yi5jb20vQmFzaXNIdWIvYmJqLW1hc2tzI251bWJlci1tYXNrcylcclxuICpcclxuICogKipPcHRpb25zKipcclxuICpcclxuICogX09wdGlvbnMgY2FuIGJlIHBhc3NlZCB2aWEgZGF0YSBhdHRyaWJ1dGVzIC4gRm9yIGRhdGEgYXR0cmlidXRlcywgYXBwZW5kIHRoZSBvcHRpb24gbmFtZSB0byBkYXRhLSwgYXMgaW4gZGF0YS1tYXNrX1xyXG4gKlxyXG4gKiB8IE9wdGlvbiAgICB8IERlZmF1bHQgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcclxuICogfC0tLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XHJcbiAqIHwgbWFzayB8ICAgICAgICAgfCBUaGUgYmJqIG51bWJlciBtYXNrIEBzZWUgW0JCaiBOdW1iZXIgTWFza3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9CYXNpc0h1Yi9iYmotbWFza3MjbnVtYmVyLW1hc2tzKSB8XHJcbiAqIHwgbWluIHwgICAgICAgICB8IFRoZSBtYXhpbXVtIHZhbHVlIHRvIGFjY2VwdCBmb3IgdGhpcyBpbnB1dHxcclxuICogfCBtYXggfCAgICAgICAgIHwgVGhlIG1pbmltdW0gdmFsdWUgdG8gYWNjZXB0IGZvciB0aGlzIGlucHV0fFxyXG4gKiB8IHN0ZXAgfCAgICAgICAgIHwgQSBzdGVwcGluZyBpbnRlcnZhbCB0byB1c2Ugd2hlbiB1c2luZyB1cCBhbmQgZG93biBhcnJvd3MgdG8gYWRqdXN0IHRoZSB2YWx1ZSwgYXMgd2VsbCBhcyBmb3IgdmFsaWRhdGlvbnxcclxuICogfGdyb3VwaW5nLXNlcGFyYXRvciB8ICwgfCBhIGNoYXIgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIGEgZ3JvdXBpbmcgc2VwYXJhdG9yIHxcclxuICogfGRlY2ltYWwtc2VwYXJhdG9yIHwgLiB8IGEgY2hhciB3aGljaCB3aWxsIGJlIHVzZWQgYXMgYSBkZWNpbWFsIHNlcGFyYXRvciB8XHJcbiAqIHxmb3JjZS10cmFpbGluZy16ZXJvcyB8IGZhbHNlIHwgQWZmZWN0cyB0aGUgb3V0cHV0IGJ5IHN3aXRjaGluZyB0aGUgd2F5IGEgbWFzayB3aXRoIFwiI1wiIGNoYXJhY3RlcnMgaW4gdGhlIHRyYWlsaW5nIHBvc2l0aW9ucyBpcyBmaWxsZWQuIGZvciBleGFtcGxlLCB0aGUgZnVuY3Rpb24gTnVtYmVyTWFzay5tYXNrKC4xMDpcIiMuIyNcIikgcmV0dXJucyAuMTAgaW5zdGVhZCBvZiAuMXxcclxuICpcclxuICogIDxicj5cclxuICpcclxuICogKipFeGFtcGxlIDoqKlxyXG4gKiBgYGBodG1sXHJcbiAqICA8aW5wdXQgY2xhc3M9XCJiYmotbnVtYmVyLW1hc2tlZFwiIG5hbWU9XCJ0ZXN0XCIgaWQ9XCJ0ZXN0XCIgdmFsdWU9XCIxMjM0XCIgZGF0YS1tYXNrPVwiIyMsIyMwXCI+XHJcbiAqXHJcbiAqICA8c2NyaXB0PlxyXG4gKiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKGUpIHtcclxuICogICAgICBuZXcgQmFzaXMuSW5wdXRNYXNraW5nLk51bWJlcklucHV0KHtcclxuICpcclxuICogICAgICAgICAvLyBAcGFyYW0ge1N0cmluZ30gdmFsdWVNYXNrZWQgIG1hc2tlZCB2YWx1ZVxyXG4gKiAgICAgICAgIC8vIEBwYXJhbSB7TnVtYmVyfSB2YWx1ZVVubWFza2VkICBvcmlnaW5hbCB2YWx1ZVxyXG4gKiAgICAgICAgIC8vIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gaW5wdXQgdGhlIGFjdHVhbCBpbnB1dCBpbnN0YW5jZVxyXG4gKiAgICAgICAgIG9uVXBkYXRlOiAodmFsdWVNYXNrZWQsIHZhbHVlVW5tYXNrZWQsIGlucHV0LCBpc0FwcGxpZWQsIGlzSW5pdGlhbCkgPT4ge1xyXG4gKiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xyXG4gKiAgICAgICAgIH0sXHJcbiAqXHJcbiAqICAgICAgICAgLy8gQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBlcnJvciBsYXN0IG9jY3VycmVkIGVycm9yLiBjb3VsZCBiZSBtYXNrIGVycm9yIG9yIHZhbGlkYXRpb24gZXJyb3JcclxuICogICAgICAgICAvLyBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGlucHV0IHRoZSBhY3R1YWwgaW5wdXQgaW5zdGFuY2VcclxuICogICAgICAgICBvbkludmFsaWQ6IChlcnIgLCBpbnB1dCkgPT4ge1xyXG4gKiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xyXG4gKiAgICAgICAgIH1cclxuICogICAgICB9KVxyXG4gKiAgICB9KVxyXG4gKiAgPC9zY3JpcHQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxyXG4gKi9cclxuY2xhc3MgTnVtYmVySW5wdXQge1xyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdCBuZXcgTnVtYmVySW5wdXRcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7P09iamVjdH0gb3B0aW9ucyAtIFRoZSBpbnB1dCBvcHRpb25zLlxyXG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8U3RyaW5nfSBbb3B0aW9ucy5lbGVtZW50cz1cIi5iYmotbnVtYmVyLW1hc2tlZFwiXSAtIFRoZSBjbGFzcyBuYW1lIG9yIHRoZSBub2RlIHRvIHVzZVxyXG4gICAqIEBwYXJhbSB7SFRNTERvY3VtZW50fSBbb3B0aW9ucy5kb2N1bWVudD1kb2N1bWVudF0gLSBEb2N1bWVudCBpbnN0YW5jZSB0byB1c2VcclxuICAgKiBAcGFyYW0ge1N0cmluZ30gW29wdGlvbnMuY3NzQ2xhc3NFcnJvcj1cImJiai1tYXNrLWVycm9yXCJdIC0gQSBjc3MgY2xhc3MgdG8gYXR0YWNoIHRvIHRoZSBpbnB1dCB3aGVuIGl0IGlzIGludmFsaWRcclxuICAgKiBAcGFyYW0ge1N0cmluZ30gW29wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzPVwiYmJqLW1hc2stc3VjY2Vzc1wiXSAtIEEgY3NzIGNsYXNzIHRvIGF0dGFjaCB0byB0aGUgaW5wdXQgd2hlbiBpdCBpcyB2YWxpZCBhZnRlciB0aGUgdXNlciBpbnRlcmFjdGlvblxyXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLm9uVXBkYXRlPW51bGxdIC0gQSBjYWxsYmFjayB0byBiZSBjYWxsZWQgb24gdGhlIG5ldyBtYXNrZWQgdmFsdWUgaXMgc2V0XHJcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMub25JbnZhbGlkPW51bGxdIC0gQSBjYWxsYmFjayB0byBiZSBjYWxsZWQgb24gdGhlIGlucHV0IG9yIHRoZSBtYXNrIGlzIGludmFsaWRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHtcclxuICAgICAgLi4ue1xyXG4gICAgICAgIGVsZW1lbnRzOiAnLmJiai1udW1iZXItbWFza2VkJyxcclxuICAgICAgICBkb2M6IGRvY3VtZW50LFxyXG4gICAgICAgIGNzc0NsYXNzRXJyb3I6ICdiYmotbWFzay1lcnJvcicsXHJcbiAgICAgICAgY3NzQ2xhc3NTdWNjZXNzOiAnYmJqLW1hc2stc3VjY2VzcycsXHJcbiAgICAgICAgb25VcGRhdGU6IG51bGwsXHJcbiAgICAgICAgb25JbnZhbGlkOiBudWxsLFxyXG4gICAgICB9LFxyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2FjdHVhbElucHV0SGFuZGxlciA9IHRoaXMuX2FjdHVhbElucHV0SGFuZGxlci5iaW5kKHRoaXMpXHJcbiAgICB0aGlzLl91bm1hc2tlZElucHV0SGFuZGxlciA9IHRoaXMuX3VubWFza2VkSW5wdXRIYW5kbGVyLmJpbmQodGhpcylcclxuICAgIHRoaXMucmVmcmVzaCgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBjb21wb25lbnQgYW5kIHdyYXAgdGhlIGlucHV0IGVsZW1lbnRzIGZvciBtYXNraW5nIGluIGNhc2VcclxuICAgKiB0aGV5IGFyZSBub3Qgd3JhcHBlZCB5ZXRcclxuICAgKi9cclxuICByZWZyZXNoKCkge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPVxyXG4gICAgICB0eXBlb2YgdGhpcy5vcHRpb25zLmVsZW1lbnRzID09PSAnc3RyaW5nJ1xyXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmRvYy5xdWVyeVNlbGVjdG9yQWxsKHRoaXMub3B0aW9ucy5lbGVtZW50cylcclxuICAgICAgICA6IHRoaXMub3B0aW9ucy5lbGVtZW50c1xyXG4gICAgbGV0IGlucHV0LCBwYXJlbnRDbGFzc1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaW5wdXQgPSBlbGVtZW50c1tpXVxyXG4gICAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbiAgICAgICAgcGFyZW50Q2xhc3MgPSBpbnB1dC5wYXJlbnROb2RlLmdldEF0dHJpYnV0ZSgnY2xhc3MnKVxyXG5cclxuICAgICAgICBpZiAoIWlucHV0LmdldEF0dHJpYnV0ZSgnaWQnKSkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgICBgQkJqTWFza2luZzogSW5wdXQgaGFzIG5vIElELiBXaXRob3V0IGFuIElEIHRoZSBpbnB1dCBjYW5ub3QgYmUgbWFza2VkYCxcclxuICAgICAgICAgICAgaW5wdXRcclxuICAgICAgICAgIClcclxuICAgICAgICAgIGNvbnRpbnVlXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3ZSBkb24ndCBpbml0aWFsaXplIHRoZSBpbnB1dCdzIHdyYXAgdHdpY2VcclxuICAgICAgICBjb25zdCBpc1dyYXBwZWQgPVxyXG4gICAgICAgICAgcGFyZW50Q2xhc3MgJiYgcGFyZW50Q2xhc3MuaW5kZXhPZignbnVtYmVySW5wdXRNYXNrX193cmFwJykgPiAtMVxyXG4gICAgICAgIHRoaXMuX3dyYXAoaW5wdXQsIGlzV3JhcHBlZClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICBgQkJqTWFza2luZzogSW52YWxpZCBpbnB1dCBlbGVtZW50LiBUaGUgZWxlbWVudCB3aWxsIGJlIGlnbm9yZWRgLFxyXG4gICAgICAgICAgaW5wdXRcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVud3JhcCB0aGUgaW5wdXQgZWxlbWVudHMgYW5kIHJlbW92ZSBhdHRhY2hlZCBsaXN0ZW5lcnNcclxuICAgKi9cclxuICBkZXN0cm95KCkge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPVxyXG4gICAgICB0eXBlb2YgdGhpcy5vcHRpb25zLmVsZW1lbnRzID09PSAnc3RyaW5nJ1xyXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmRvYy5xdWVyeVNlbGVjdG9yQWxsKHRoaXMub3B0aW9ucy5lbGVtZW50cylcclxuICAgICAgICA6IHRoaXMub3B0aW9ucy5lbGVtZW50c1xyXG5cclxuICAgIGxldCBpbnB1dCwgcGFyZW50LCBwYXJlbnRDbGFzc1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaW5wdXQgPSBlbGVtZW50c1tpXVxyXG4gICAgICBwYXJlbnQgPSBpbnB1dC5wYXJlbnROb2RlXHJcbiAgICAgIHBhcmVudENsYXNzID0gcGFyZW50LmdldEF0dHJpYnV0ZSgnY2xhc3MnKVxyXG5cclxuICAgICAgaWYgKHBhcmVudENsYXNzICYmIHBhcmVudENsYXNzLmluZGV4T2YoJ251bWJlcklucHV0TWFza19fd3JhcCcpID4gLTEpIHtcclxuICAgICAgICB0aGlzLl91bndyYXAocGFyZW50KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgdGhlIG51bWJlciBtYXNraW5nIGlucHV0IHdyYXBwZXJcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7SFRNTElucHV0RWxlbWVudH0gYWN0dWFsSW5wdXQgdGhlIGlucHV0IGVsZW1lbnRcclxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzV3JhcHBlZCB3aGVuIHRydWUgdGhlIGlucHV0IGlzIGFscmVhZHkgd3JhcHBlZCBhbmQgd2UgbmVlZCB0byBhZGQgd2hhdCBpc1xyXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3Npbmcgb25seVxyXG4gICAqXHJcbiAgICogQHJldHVybnMge0hUTUxTcGFuRWxlbWVudH0gd3JhcHBlciBpbnN0YW5jZVxyXG4gICAqXHJcbiAgICogQHByb3RlY3RlZFxyXG4gICAqL1xyXG4gIF93cmFwKGFjdHVhbElucHV0LCBpc1dyYXBwZWQpIHtcclxuICAgIGNvbnN0IGFjdHVhbElucHV0SWQgPSBhY3R1YWxJbnB1dC5nZXRBdHRyaWJ1dGUoJ2lkJyksXHJcbiAgICAgIGFjdHVhbElucHV0TmFtZSA9IGFjdHVhbElucHV0LmdldEF0dHJpYnV0ZSgnbmFtZScpLFxyXG4gICAgICBhY3R1YWxJbnB1dFN0ZXAgPSBhY3R1YWxJbnB1dC5kYXRhc2V0LnN0ZXAgfHwgbnVsbCxcclxuICAgICAgYWN0dWFsSW5wdXRNYXggPSBhY3R1YWxJbnB1dC5kYXRhc2V0Lm1heCB8fCBudWxsLFxyXG4gICAgICBhY3R1YWxJbnB1dE1pbiA9IGFjdHVhbElucHV0LmRhdGFzZXQubWluIHx8IG51bGwsXHJcbiAgICAgIGFjdHVhbElucHV0R3JvdXBpbmdTZXBhcmF0b3IgPVxyXG4gICAgICAgIGFjdHVhbElucHV0LmRhdGFzZXQuZ3JvdXBpbmdTZXBhcmF0b3IgfHwgJywnLFxyXG4gICAgICBhY3R1YWxJbnB1dERlY2ltYWxTZXBhcmF0b3IgPSBhY3R1YWxJbnB1dC5kYXRhc2V0LmRlY2ltYWxTZXBhcmF0b3IgfHwgJy4nLFxyXG4gICAgICBhY3R1YWxJbnB1dEZvcmNlVHJhaWxpbmdaZXJvcyA9XHJcbiAgICAgICAgYWN0dWFsSW5wdXQuZGF0YXNldC5mb3JjZVRyYWlsaW5nWmVyb3MgfHwgbnVsbCxcclxuICAgICAgYWN0dWFsSW5wdXRNYXNrID0gYWN0dWFsSW5wdXQuZGF0YXNldC5tYXNrIHx8ICcnLFxyXG4gICAgICBhY3R1YWxJbnB1dENsYXNzZXMgPSBhY3R1YWxJbnB1dC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJyksXHJcbiAgICAgIGFjdHVhbElucHV0UmVxdWlyZWQgPSBhY3R1YWxJbnB1dC5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgfHwgbnVsbFxyXG5cclxuICAgIGxldCB3cmFwID0gbnVsbCxcclxuICAgICAgdW5tYXNrZWRJbnB1dCA9IG51bGxcclxuXHJcbiAgICBpZiAoIWlzV3JhcHBlZCkge1xyXG4gICAgICB3cmFwID0gdGhpcy5vcHRpb25zLmRvYy5jcmVhdGVFbGVtZW50KCdzcGFuJylcclxuICAgICAgdW5tYXNrZWRJbnB1dCA9IHRoaXMub3B0aW9ucy5kb2MuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSAvLyBoaWRkZW4gaW5wdXQgd2l0aCB0aGUgdW5tYXNrZWQgdmFsdWVzIGZvciBmb3Jtc1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd3JhcCA9IGFjdHVhbElucHV0LnBhcmVudE5vZGVcclxuICAgICAgdW5tYXNrZWRJbnB1dCA9IHdyYXAucXVlcnlTZWxlY3RvcignLm51bWJlcklucHV0TWFza19fdW5tYXNrZWRJbnB1dCcpXHJcbiAgICB9XHJcblxyXG4gICAgLy8gY29uZmlndXJlIHRoZSBhY3R1YWwgaW5wdXRcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBpZiAoIWlzV3JhcHBlZCkge1xyXG4gICAgICBhY3R1YWxJbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3cmFwLCBhY3R1YWxJbnB1dCkgLy8gbW92ZSB0aGUgaW5wdXQgb3V0c2lkZSB0aGUgd3JhcHBlclxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIShcclxuICAgICAgICAgIGFjdHVhbElucHV0Lmhhc0F0dHJpYnV0ZSgncmVhZG9ubHknKSB8fFxyXG4gICAgICAgICAgYWN0dWFsSW5wdXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBhY3R1YWxJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2FjdHVhbElucHV0SGFuZGxlcilcclxuICAgICAgICBhY3R1YWxJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgdGhpcy5fYWN0dWFsSW5wdXRIYW5kbGVyKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWN0dWFsSW5wdXQuZGF0YXNldC52YWx1ZVVubWFza2VkID0gYWN0dWFsSW5wdXQudmFsdWUgfHwgMFxyXG4gICAgYWN0dWFsSW5wdXQuZGF0YXNldC5ncm91cGluZ1NlcGFyYXRvciA9IGFjdHVhbElucHV0R3JvdXBpbmdTZXBhcmF0b3JcclxuICAgIGFjdHVhbElucHV0LmRhdGFzZXQuZGVjaW1hbFNlcGFyYXRvciA9IGFjdHVhbElucHV0RGVjaW1hbFNlcGFyYXRvclxyXG4gICAgYWN0dWFsSW5wdXQuZGF0YXNldC5mb3JjZVRyYWlsaW5nWmVyb3MgPSBhY3R1YWxJbnB1dEZvcmNlVHJhaWxpbmdaZXJvc1xyXG4gICAgYWN0dWFsSW5wdXQudmFsdWUgPSBOdW1iZXJNYXNrLm1hc2soXHJcbiAgICAgIGFjdHVhbElucHV0LmRhdGFzZXQudmFsdWVVbm1hc2tlZCxcclxuICAgICAgYWN0dWFsSW5wdXRNYXNrLFxyXG4gICAgICBhY3R1YWxJbnB1dEdyb3VwaW5nU2VwYXJhdG9yLFxyXG4gICAgICBhY3R1YWxJbnB1dERlY2ltYWxTZXBhcmF0b3IsXHJcbiAgICAgIGFjdHVhbElucHV0Rm9yY2VUcmFpbGluZ1plcm9zXHJcbiAgICApLnRyaW0oKVxyXG4gICAgYWN0dWFsSW5wdXQuY2xhc3NMaXN0LmFkZChcclxuICAgICAgJ251bWJlcklucHV0TWFza19fdGV4dElucHV0JyxcclxuICAgICAgdGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2Vzc1xyXG4gICAgKVxyXG5cclxuICAgIC8vIGNvbmZpZ3VyZSB0aGUgdW5tYXNrZWQgaW5wdXRcclxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHVubWFza2VkSW5wdXQudmFsdWUgPSBhY3R1YWxJbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWRcclxuICAgIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJylcclxuICAgIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpXHJcbiAgICB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBhY3R1YWxJbnB1dENsYXNzZXMpXHJcbiAgICBpZiAoYWN0dWFsSW5wdXRJZClcclxuICAgICAgdW5tYXNrZWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgYCR7YWN0dWFsSW5wdXRJZH0tdW5tYXNrZWRgKVxyXG4gICAgaWYgKGFjdHVhbElucHV0TmFtZSlcclxuICAgICAgdW5tYXNrZWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCBgJHthY3R1YWxJbnB1dE5hbWV9LXVubWFza2VkYClcclxuICAgIGlmIChhY3R1YWxJbnB1dFJlcXVpcmVkKSB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgncmVxdWlyZWQnLCAncmVxdWlyZWQnKVxyXG5cclxuICAgIGlmIChhY3R1YWxJbnB1dFN0ZXApIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCdzdGVwJywgYWN0dWFsSW5wdXRTdGVwKVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRlY2ltYWxzID0gY291bnREZWNpbWFscyh1bm1hc2tlZElucHV0LnZhbHVlKVxyXG4gICAgICBsZXQgc3RlcCA9ICcxJ1xyXG4gICAgICBpZiAoZGVjaW1hbHMgPiAwKSB7XHJcbiAgICAgICAgc3RlcCA9IGAuJHtBcnJheShkZWNpbWFscykuam9pbignMCcpfTFgXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCdzdGVwJywgc3RlcClcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYWN0dWFsSW5wdXRNaW4pIHVubWFza2VkSW5wdXQuc2V0QXR0cmlidXRlKCdtaW4nLCBhY3R1YWxJbnB1dE1pbilcclxuICAgIGlmIChhY3R1YWxJbnB1dE1heCkgdW5tYXNrZWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ21heCcsIGFjdHVhbElucHV0TWF4KVxyXG4gICAgdW5tYXNrZWRJbnB1dC5kYXRhc2V0LmlucHV0SWQgPSBhY3R1YWxJbnB1dElkXHJcbiAgICB1bm1hc2tlZElucHV0LmRhdGFzZXQubWFzayA9IGFjdHVhbElucHV0TWFza1xyXG4gICAgdW5tYXNrZWRJbnB1dC5kYXRhc2V0Lmdyb3VwaW5nU2VwYXJhdG9yID0gYWN0dWFsSW5wdXRHcm91cGluZ1NlcGFyYXRvclxyXG4gICAgdW5tYXNrZWRJbnB1dC5kYXRhc2V0LmRlY2ltYWxTZXBhcmF0b3IgPSBhY3R1YWxJbnB1dERlY2ltYWxTZXBhcmF0b3JcclxuICAgIGlmIChhY3R1YWxJbnB1dEZvcmNlVHJhaWxpbmdaZXJvcylcclxuICAgICAgdW5tYXNrZWRJbnB1dC5kYXRhc2V0LmZvcmNlVHJhaWxpbmdaZXJvcyA9IGFjdHVhbElucHV0Rm9yY2VUcmFpbGluZ1plcm9zXHJcblxyXG4gICAgaWYgKCFpc1dyYXBwZWQpIHtcclxuICAgICAgdW5tYXNrZWRJbnB1dC5jbGFzc0xpc3QuYWRkKCdudW1iZXJJbnB1dE1hc2tfX3VubWFza2VkSW5wdXQnKVxyXG4gICAgICB1bm1hc2tlZElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl91bm1hc2tlZElucHV0SGFuZGxlcilcclxuICAgICAgdW5tYXNrZWRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX3VubWFza2VkSW5wdXRIYW5kbGVyKVxyXG4gICAgICB1bm1hc2tlZElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgdGhpcy5fdW5tYXNrZWRJbnB1dEhhbmRsZXIpXHJcblxyXG4gICAgICAvLyBjb25maWd1cmUgdGhlIHdyYXBwZXJcclxuICAgICAgd3JhcC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ251bWJlcklucHV0TWFza19fd3JhcCcpXHJcbiAgICAgIHdyYXAuYXBwZW5kQ2hpbGQodW5tYXNrZWRJbnB1dClcclxuICAgICAgd3JhcC5hcHBlbmRDaGlsZChhY3R1YWxJbnB1dClcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWlzTmFOKE51bWJlcihhY3R1YWxJbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWQpKSkge1xyXG4gICAgICBpZiAodGhpcy5fdmFsaWRhdGVJbnB1dCh1bm1hc2tlZElucHV0LCBhY3R1YWxJbnB1dCkpIHtcclxuICAgICAgICB0aGlzLl9fZmlyZU9uVXBkYXRlKFxyXG4gICAgICAgICAgYWN0dWFsSW5wdXQudmFsdWUsXHJcbiAgICAgICAgICBhY3R1YWxJbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWQsXHJcbiAgICAgICAgICBhY3R1YWxJbnB1dFxyXG4gICAgICAgIClcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWN0dWFsSW5wdXQuY2xhc3NMaXN0LmFkZCh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gd3JhcFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW53cmFwIHRoZSBtYXNrZWQgaW5wdXQgYW5kIHJlbW92ZSB0aGUgdmFsdWUgY2hhbmdlZCBsaXN0ZW5lclxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtIVE1MU3BhbkVsZW1lbnR9IHRleHRJbnB1dCB0aGUgd3JhcHBlciBzcGFuIGluc3RhbmNlXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX3Vud3JhcCh0ZXh0SW5wdXQpIHtcclxuICAgIHRleHRJbnB1dC5yZW1vdmVDaGlsZChcclxuICAgICAgdGV4dElucHV0LnF1ZXJ5U2VsZWN0b3IoJy5udW1iZXJJbnB1dE1hc2tfX3VubWFza2VkSW5wdXQnKVxyXG4gICAgKVxyXG5cclxuICAgIGNvbnN0IGlucHV0ID0gdGV4dElucHV0LnF1ZXJ5U2VsZWN0b3IoJy5udW1iZXJJbnB1dE1hc2tfX3RleHRJbnB1dCcpXHJcbiAgICBpbnB1dC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2FjdHVhbElucHV0SGFuZGxlcilcclxuICAgIGlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCB0aGlzLl9hY3R1YWxJbnB1dEhhbmRsZXIpXHJcbiAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCdudW1iZXJJbnB1dE1hc2tfX3RleHRJbnB1dCcpXHJcbiAgICBpbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc0Vycm9yKVxyXG4gICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzKVxyXG4gICAgZGVsZXRlIGlucHV0LmRhdGFzZXQudmFsdWVVbm1hc2tlZFxyXG5cclxuICAgIHRleHRJbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpbnB1dCwgdGV4dElucHV0KVxyXG4gICAgdGV4dElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGV4dElucHV0KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGVuIHRvIGNsaWNrIGFuZCBmb2N1c2luIGV2ZW50IG9uIHRoZSBhY3R1YWwgaW5wdXQgYW5kIHRvZ2dsZSB0aGUgbnVtYmVyIGlucHV0XHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0V2ZW50fSBlXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX2FjdHVhbElucHV0SGFuZGxlcihlKSB7XHJcbiAgICBjb25zdCBhY3R1YWxJbnB1dCA9IGUudGFyZ2V0LFxyXG4gICAgICBhY3R1YWxJbnB1dElkID0gYWN0dWFsSW5wdXQuaWQsXHJcbiAgICAgIHVubWFza2VkSW5wdXQgPSB0aGlzLm9wdGlvbnMuZG9jLnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgYCMke2FjdHVhbElucHV0SWR9LXVubWFza2VkYFxyXG4gICAgICApXHJcblxyXG4gICAgYWN0dWFsSW5wdXQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJylcclxuICAgIGFjdHVhbElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKVxyXG5cclxuICAgIHVubWFza2VkSW5wdXQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpXHJcbiAgICB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdudW1iZXInKVxyXG4gICAgdGhpcy5fdmFsaWRhdGVJbnB1dCh1bm1hc2tlZElucHV0LCBhY3R1YWxJbnB1dClcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB1bm1hc2tlZElucHV0LmZvY3VzKClcclxuICAgICAgY29uc3QgbGVuZ3RoID0gU3RyaW5nKHVubWFza2VkSW5wdXQudmFsdWUpLmxlbmd0aFxyXG4gICAgICB1bm1hc2tlZElucHV0LnR5cGUgPSAndGV4dCdcclxuICAgICAgdW5tYXNrZWRJbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShsZW5ndGgsIGxlbmd0aClcclxuICAgICAgdW5tYXNrZWRJbnB1dC50eXBlID0gJ251bWJlcidcclxuICAgIH0sIDApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMaXN0ZW4gdG8gdGhlIHVubWFza2VkIGlucHV0IGtleWRvd24gYW5kIGZvY3Vzb3V0IGV2ZW50cyBhbmQgY2hlY2tcclxuICAgKiBpZiB0aGUgaW5wdXQgdmFsdWUgY2FuIGJlIG1hc2tlZCBvciBub3RcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGVcclxuICAgKlxyXG4gICAqIEBwcm90ZWN0ZWRcclxuICAgKi9cclxuICBfdW5tYXNrZWRJbnB1dEhhbmRsZXIoZSkge1xyXG4gICAgY29uc3QgdW5tYXNrZWRJbnB1dCA9IGUudGFyZ2V0LFxyXG4gICAgICBrZXlDb2RlID0gZS5rZXlDb2RlLFxyXG4gICAgICBtYXNrID0gdW5tYXNrZWRJbnB1dC5kYXRhc2V0Lm1hc2ssXHJcbiAgICAgIGdyb3VwaW5nU2VwYXJhdG9yID0gdW5tYXNrZWRJbnB1dC5kYXRhc2V0Lmdyb3VwaW5nU2VwYXJhdG9yLFxyXG4gICAgICBkZWNpbWFsU2VwYXJhdG9yID0gdW5tYXNrZWRJbnB1dC5kYXRhc2V0LmRlY2ltYWxTZXBhcmF0b3IsXHJcbiAgICAgIGZvcmNlVHJhaWxpbmdaZXJvcyA9IHVubWFza2VkSW5wdXQuZGF0YXNldC5mb3JjZVRyYWlsaW5nWmVyb3MsXHJcbiAgICAgIGFjdHVhbElucHV0SWQgPSB1bm1hc2tlZElucHV0LmRhdGFzZXQuaW5wdXRJZCxcclxuICAgICAgYWN0dWFsSW5wdXQgPSB0aGlzLm9wdGlvbnMuZG9jLnF1ZXJ5U2VsZWN0b3IoYCMke2FjdHVhbElucHV0SWR9YClcclxuXHJcbiAgICBsZXQgcmVzdG9yZSA9IGZhbHNlLFxyXG4gICAgICBhcHBseSA9IGZhbHNlLFxyXG4gICAgICBtYXNrZWRWYWx1ZSA9IGZhbHNlLFxyXG4gICAgICBpc1ZhbGlkID0gdGhpcy5fdmFsaWRhdGVJbnB1dCh1bm1hc2tlZElucHV0LCBhY3R1YWxJbnB1dClcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBtYXNrZWRWYWx1ZSA9IE51bWJlck1hc2subWFzayhcclxuICAgICAgICB1bm1hc2tlZElucHV0LnZhbHVlIHx8IDAsXHJcbiAgICAgICAgbWFzayxcclxuICAgICAgICBncm91cGluZ1NlcGFyYXRvcixcclxuICAgICAgICBkZWNpbWFsU2VwYXJhdG9yLFxyXG4gICAgICAgIGZvcmNlVHJhaWxpbmdaZXJvcyxcclxuICAgICAgICBmYWxzZVxyXG4gICAgICApLnRyaW0oKVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBtYXNrZWRWYWx1ZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuX19hcHBseUNzc0NsYXNzU3RhdGUodW5tYXNrZWRJbnB1dCwgYWN0dWFsSW5wdXQsICdlcnJvcicpXHJcbiAgICAgIHRoaXMuX19maXJlT25JbnZhbGlkKGUsIGFjdHVhbElucHV0KVxyXG4gICAgfVxyXG5cclxuICAgIHJlc3RvcmUgPSBbMTMsIDI3XS5pbmRleE9mKGtleUNvZGUpID4gLTEgfHwgZS50eXBlID09PSAnZm9jdXNvdXQnXHJcbiAgICBhcHBseSA9IG1hc2tlZFZhbHVlICYmIGlzVmFsaWRcclxuXHJcbiAgICBpZiAocmVzdG9yZSkge1xyXG4gICAgICB1bm1hc2tlZElucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzRXJyb3IpXHJcbiAgICAgIHVubWFza2VkSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzKVxyXG5cclxuICAgICAgdW5tYXNrZWRJbnB1dC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKVxyXG4gICAgICB1bm1hc2tlZElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKVxyXG5cclxuICAgICAgYWN0dWFsSW5wdXQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWhpZGRlbicpXHJcbiAgICAgIGFjdHVhbElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0JylcclxuXHJcbiAgICAgIGFjdHVhbElucHV0LmNsYXNzTGlzdC5hZGQodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuXHJcbiAgICAgIGlmIChhcHBseSkge1xyXG4gICAgICAgIGFjdHVhbElucHV0LnZhbHVlID0gbWFza2VkVmFsdWVcclxuICAgICAgICBhY3R1YWxJbnB1dC5kYXRhc2V0LnZhbHVlVW5tYXNrZWQgPSB1bm1hc2tlZElucHV0LnZhbHVlXHJcbiAgICAgICAgdGhpcy5fX2ZpcmVPblVwZGF0ZShtYXNrZWRWYWx1ZSwgdW5tYXNrZWRJbnB1dC52YWx1ZSwgYWN0dWFsSW5wdXQpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdW5tYXNrZWRJbnB1dC52YWx1ZSA9IGFjdHVhbElucHV0LmRhdGFzZXQudmFsdWVVbm1hc2tlZFxyXG4gICAgICAgIHRoaXMuX19hcHBseUNzc0NsYXNzU3RhdGUodW5tYXNrZWRJbnB1dCwgYWN0dWFsSW5wdXQsICdzdWNjZXNzJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlciBgY2hlY2tWYWxpZGl0eWAgb24gdGhlIGlucHV0XHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IHVubWFza2VkSW5wdXRcclxuICAgKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGFjdHVhbElucHV0XHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7Qm9vbGVhbn0gdHJ1ZSB3aGVuIHZhbGlkICwgZmFsc2Ugb3RoZXJ3aXNlXHJcbiAgICpcclxuICAgKiBAcHJvdGVjdGVkXHJcbiAgICovXHJcbiAgX3ZhbGlkYXRlSW5wdXQodW5tYXNrZWRJbnB1dCwgYWN0dWFsSW5wdXQpIHtcclxuICAgIGxldCBpc1ZhbGlkID0gdHJ1ZVxyXG4gICAgY29uc3QgdmFsdWUgPSBOdW1iZXIodW5tYXNrZWRJbnB1dC52YWx1ZSlcclxuICAgIGlmICh1bm1hc2tlZElucHV0LmdldEF0dHJpYnV0ZSgndHlwZScpID09PSAnaGlkZGVuJyAmJiAhaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgIGNvbnN0IG1heCA9IHVubWFza2VkSW5wdXQuZ2V0QXR0cmlidXRlKCdtYXgnKVxyXG4gICAgICBjb25zdCBtaW4gPSB1bm1hc2tlZElucHV0LmdldEF0dHJpYnV0ZSgnbWluJylcclxuICAgICAgY29uc3Qgc3RlcCA9IHVubWFza2VkSW5wdXQuZ2V0QXR0cmlidXRlKCdzdGVwJylcclxuXHJcbiAgICAgIGlmIChtaW4pIGlzVmFsaWQgPSBpc1ZhbGlkICYmIHZhbHVlID49IE51bWJlcihtaW4pXHJcbiAgICAgIGlmIChtYXgpIGlzVmFsaWQgPSBpc1ZhbGlkICYmIHZhbHVlIDw9IE51bWJlcihtYXgpXHJcblxyXG4gICAgICBpZiAoc3RlcClcclxuICAgICAgICBpc1ZhbGlkID1cclxuICAgICAgICAgIGlzVmFsaWQgJiYgY291bnREZWNpbWFscyhzdGVwKSA9PT0gY291bnREZWNpbWFscyh1bm1hc2tlZElucHV0LnZhbHVlKVxyXG4gICAgfSBlbHNlIGlzVmFsaWQgPSB1bm1hc2tlZElucHV0LmNoZWNrVmFsaWRpdHkoKVxyXG5cclxuICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgIHRoaXMuX19hcHBseUNzc0NsYXNzU3RhdGUodW5tYXNrZWRJbnB1dCwgYWN0dWFsSW5wdXQsICdzdWNjZXNzJylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX19hcHBseUNzc0NsYXNzU3RhdGUodW5tYXNrZWRJbnB1dCwgYWN0dWFsSW5wdXQsICdlcnJvcicpXHJcbiAgICAgIHRoaXMuX19maXJlT25JbnZhbGlkKFxyXG4gICAgICAgIHVubWFza2VkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgfHwgJ1ZhbGlkaXR5IGNoZWNrIGZhaWxzJyxcclxuICAgICAgICBhY3R1YWxJbnB1dFxyXG4gICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWRcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZU1hc2tlZCAgbWFza2VkIHZhbHVlXHJcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHZhbHVlVW5tYXNrZWQgIG9yaWdpbmFsIHZhbHVlXHJcbiAgICogQHBhcmFtIHtIVE1MSW5wdXRFbGVtZW50fSBpbnB1dCB0aGUgYWN0dWFsIGlucHV0IGluc3RhbmNlXHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIF9fZmlyZU9uVXBkYXRlKHZhbHVlTWFza2VkLCB2YWx1ZVVubWFza2VkLCBpbnB1dCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5vblVwZGF0ZSkge1xyXG4gICAgICB0aGlzLm9wdGlvbnMub25VcGRhdGUodmFsdWVNYXNrZWQsIHZhbHVlVW5tYXNrZWQsIGlucHV0KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSBlcnJvciBsYXN0IG9jY3VycmVkIGVycm9yLiBjb3VsZCBiZSBtYXNrIGVycm9yIG9yIHZhbGlkYXRpb24gZXJyb3JcclxuICAgKiBAcGFyYW0ge0hUTUxJbnB1dEVsZW1lbnR9IGlucHV0IHRoZSBhY3R1YWwgaW5wdXQgaW5zdGFuY2VcclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgX19maXJlT25JbnZhbGlkKGVycm9yLCBpbnB1dCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5vbkludmFsaWQpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLm9uSW52YWxpZChlcnJvciwgaW5wdXQpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIF9fYXBwbHlDc3NDbGFzc1N0YXRlKHVubWFza2VkSW5wdXQsIGFjdHVhbElucHV0LCBzdGF0ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICBhY3R1YWxJbnB1dC5oYXNBdHRyaWJ1dGUoJ3JlYWRvbmx5JykgfHxcclxuICAgICAgYWN0dWFsSW5wdXQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpXHJcbiAgICApIHtcclxuICAgICAgYWN0dWFsSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgICAgYWN0dWFsSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NTdWNjZXNzKVxyXG5cclxuICAgICAgdW5tYXNrZWRJbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc0Vycm9yKVxyXG4gICAgICB1bm1hc2tlZElucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzdGF0ZSA9PT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgYWN0dWFsSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgICAgICBhY3R1YWxJbnB1dC5jbGFzc0xpc3QuYWRkKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcblxyXG4gICAgICAgIHVubWFza2VkSW5wdXQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgICAgICB1bm1hc2tlZElucHV0LmNsYXNzTGlzdC5hZGQodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHN0YXRlID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgYWN0dWFsSW5wdXQuY2xhc3NMaXN0LmFkZCh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgICAgICBhY3R1YWxJbnB1dC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMub3B0aW9ucy5jc3NDbGFzc1N1Y2Nlc3MpXHJcblxyXG4gICAgICAgIHVubWFza2VkSW5wdXQuY2xhc3NMaXN0LmFkZCh0aGlzLm9wdGlvbnMuY3NzQ2xhc3NFcnJvcilcclxuICAgICAgICB1bm1hc2tlZElucHV0LmNsYXNzTGlzdC5yZW1vdmUodGhpcy5vcHRpb25zLmNzc0NsYXNzU3VjY2VzcylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTnVtYmVySW5wdXRcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL051bWJlcklucHV0L051bWJlcklucHV0LmpzIiwibW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFXzdfXztcblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyBleHRlcm5hbCB7XCJjb21tb25qc1wiOlwiYmJqLW1hc2tzL3NyYy9OdW1iZXJNYXNrXCIsXCJjb21tb25qczJcIjpcImJiai1tYXNrcy9zcmMvTnVtYmVyTWFza1wiLFwiYW1kXCI6XCJiYmotbWFza3Mvc3JjL051bWJlck1hc2tcIixcInJvb3RcIjpbXCJCQmpcIixcIk1hc2tzXCIsXCJOdW1iZXJNYXNrXCJdfVxuLy8gbW9kdWxlIGlkID0gN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwge1xuIFx0XHRcdFx0Y29uZmlndXJhYmxlOiBmYWxzZSxcbiBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4gXHRcdFx0XHRnZXQ6IGdldHRlclxuIFx0XHRcdH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDUpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIGVmZWY4N2EwMWMzZWQyMmNhMzU4IiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJiai1tYXNrcyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBOdW1iZXJNYXNrIGZyb20gJy4vTnVtYmVyTWFzaydcblxuZXhwb3J0IGRlZmF1bHQgTnVtYmVyTWFza1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL051bWJlck1hc2svaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IERhdGVNYXNrLCB7XG4gIGdldERheU9mWWVhcixcbiAgZ2V0V2Vla051bWJlcixcbiAgZ2V0V2Vla1N0YXJ0QnlMb2NhbGUsXG4gIElTX1RJTUVfUkVHRVgsXG4gIElTX0RBVEVfUkVHRVgsXG4gIGZpeFNob3J0SVNPLFxuICBnZXRUaW1lem9uZU9yT2Zmc2V0XG59IGZyb20gJy4vRGF0ZU1hc2snXG5cbmV4cG9ydCB7XG4gIGdldERheU9mWWVhcixcbiAgZ2V0V2Vla051bWJlcixcbiAgZ2V0V2Vla1N0YXJ0QnlMb2NhbGUsXG4gIElTX0RBVEVfUkVHRVgsXG4gIElTX1RJTUVfUkVHRVgsXG4gIGZpeFNob3J0SVNPLFxuICBnZXRUaW1lem9uZU9yT2Zmc2V0XG59XG5leHBvcnQgZGVmYXVsdCBEYXRlTWFza1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0RhdGVNYXNrL2luZGV4LmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJiai1tYXNrcyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCBTdHJpbmdNYXNrIGZyb20gJy4vU3RyaW5nTWFzaydcblxuZXhwb3J0IGRlZmF1bHQgU3RyaW5nTWFza1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL1N0cmluZ01hc2svaW5kZXguanMiLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYmJqLW1hc2tzIGxpYi5cbiAqIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuLyoqXG4gKiBOdW1iZXJNYXNrXG4gKlxuICogQSBqYXZhc2NyaXB0IGltcGxlbWVudGF0aW9uIGZvciBCQmogbnVtYmVycyBtYXNraW5nXG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgTnVtYmVyTWFzayB7XG4gIC8qKlxuICAgKiBNYXNrIHRoZSBnaXZlbiBudW1iZXIgd2l0aCB0aGUgZ2l2ZW4gbWFzayBhY2NvcmRpbmcgdG8gQkJqIHJ1bGVzXG4gICAqXG4gICAqIEBwYXJhbSB7TnVtYmVyfSBudW1iZXIgdGhlIG51bWJlciB0byBmb3JtYXRcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgdGhlIG1hc2sgdG8gdXNlIGZvciBmb3JtYXR0aW5nXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBbZ3JvdXBpbmdTZXBhcmF0b3I9LF0gLSBhIGNoYXIgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIGEgZ3JvdXBpbmcgc2VwYXJhdG9yXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBbZGVjaW1hbFNlcGFyYXRvcj0uXSAgLSBhIGNoYXIgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIGEgZGVjaW1hbCBzZXBhcmF0b3JcbiAgICogQHBhcmFtIHtCb29sZWFufSBbZm9yY2VUcmFpbGluZ1plcm9zPWZhbHNlXSAtIEFmZmVjdHMgdGhlIG91dHB1dCBieSBzd2l0Y2hpbmcgdGhlIHdheSBhIG1hc2sgd2l0aCBcIiNcIiBjaGFyYWN0ZXJzIGluIHRoZSB0cmFpbGluZyBwb3NpdGlvbnMgaXMgZmlsbGVkLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSwgdGhlIGZ1bmN0aW9uIGBOdW1iZXJNYXNrLm1hc2soLjEwOlwiIy4jI1wiKWAgcmV0dXJucyBgIC4xMGAgaW5zdGVhZCBvZiBgIC4xIGBcbiAgICogQHBhcmFtIHtCb29sZWFufSBbbG9vc2U9dHJ1ZV0gd2hlbiB0cnVlICwgZXJyb3JzIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIG1ldGhvZCB3aWxsIHRyeSBhdCBhcHBseSB0aGUgbWFza1xuICAgKiAgICAgICAgICAgICAgICBhbnl3YXkgLCBvdGhlcndpc2UgaXQgd2lsbCBzdG9wIGF0IGZpcnN0IGVycm9yIGFuZCB0aHJvdyBpdC5cbiAgICogXG4gICAqIEB0aHJvd3Mge01hc2tFcnJvcn0gb25seSBpZiBsb29zZSBpcyBkaXNhYmxlZFxuICAgKiBcbiAgICogQHJldHVybnMge1N0cmluZ30gdGhlIG1hc2tlZCBudW1iZXJcbiAgICovXG4gIHN0YXRpYyBtYXNrKFxuICAgIG51bWJlcixcbiAgICBtYXNrLFxuICAgIGdyb3VwaW5nU2VwYXJhdG9yID0gJywnLFxuICAgIGRlY2ltYWxTZXBhcmF0b3IgPSAnLicsXG4gICAgZm9yY2VUcmFpbGluZ1plcm9zID0gZmFsc2UsXG4gICAgbG9vc2UgPSB0cnVlXG4gICkge1xuICAgIGNvbnN0IG1hc2tMZW4gPSBtYXNrLmxlbmd0aFxuICAgIGlmICgwID09PSBtYXNrTGVuKSB7XG4gICAgICBpZiAobG9vc2UpIHJldHVybiBzdHJcbiAgICAgIC8vIGZyaWVuZGx5IHNpbGVudCBmYWlsXG4gICAgICBlbHNlXG4gICAgICAgIHRocm93IHtcbiAgICAgICAgICBuYW1lOiAnTWFza0Vycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiBgTWFza0Vycm9yOiBNYXNrIGlzIGVtcHR5YFxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gR2V0IG1hZ25pdHVkZSBhbmQgcHJlY2lzaW9uIG9mIE1BU0tcbiAgICBsZXQgbWFza0JlZm9yZURlY2ltYWwgPSAwXG4gICAgbGV0IG1hc2tBZnRlckRlY2ltYWwgPSAwXG4gICAgbGV0IGZvdW5kRGVjaW1hbCA9IGZhbHNlXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrTGVuOyArK2kpIHtcbiAgICAgIGNvbnN0IG0gPSBtYXNrLmNoYXJBdChpKVxuICAgICAgaWYgKG0gPT0gJzAnIHx8IG0gPT0gJyMnKSB7XG4gICAgICAgIGlmIChmb3VuZERlY2ltYWwpICsrbWFza0FmdGVyRGVjaW1hbFxuICAgICAgICBlbHNlICsrbWFza0JlZm9yZURlY2ltYWxcbiAgICAgIH0gZWxzZSBpZiAobSA9PSAnLicpIGZvdW5kRGVjaW1hbCA9IHRydWVcbiAgICB9XG5cbiAgICBsZXQgbnVtID0gTnVtYmVyTWFzay5fcm91bmQobnVtYmVyLCBtYXNrQWZ0ZXJEZWNpbWFsKVxuICAgIGxldCBieXRlcyA9IE51bWJlck1hc2suX3RvQ2hhckFycmF5KG51bSlcblxuICAgIC8vIEdldCBtYWduaXR1ZGUgYW5kIHByZWNpc2lvbiBvZiBOVU1CRVJcbiAgICBsZXQgaW5MZW4gPSBieXRlcy5sZW5ndGhcbiAgICBsZXQgbnVtQmVmb3JlRGVjaW1hbCA9IDBcbiAgICBsZXQgbnVtQWZ0ZXJEZWNpbWFsID0gMFxuICAgIGZvdW5kRGVjaW1hbCA9IGZhbHNlXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbkxlbjsgKytpKSB7XG4gICAgICBpZiAoYnl0ZXNbaV0gPT0gJy4nKSBmb3VuZERlY2ltYWwgPSB0cnVlXG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKGZvdW5kRGVjaW1hbCkgKytudW1BZnRlckRlY2ltYWxcbiAgICAgICAgZWxzZSArK251bUJlZm9yZURlY2ltYWxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhbHdheXMgaWdub3JlIG1hc2sgb3ZlcmZsb3dcbiAgICBpZiAobnVtQmVmb3JlRGVjaW1hbCA+IG1hc2tCZWZvcmVEZWNpbWFsKSB7XG4gICAgICBpZiAobG9vc2UpIHJldHVybiBudW1iZXIudG9TdHJpbmcoKVxuICAgICAgLy8gZnJpZW5kbHkgc2lsZW50IGZhaWxcbiAgICAgIGVsc2VcbiAgICAgICAgdGhyb3cge1xuICAgICAgICAgIG5hbWU6ICdNYXNrRXJyb3InLFxuICAgICAgICAgIG1lc3NhZ2U6IGBNYXNrRXJyb3I6IE51bWJlciBpcyB0b28gbGFyZ2UgZm9yIG1hc2tgXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByb3VuZCBpZiBtYXNrIGlzIGZvciBhIGxvd2VyIHByZWNpc2lvbiBudW1iZXJcbiAgICBpZiAobnVtQWZ0ZXJEZWNpbWFsID4gbWFza0FmdGVyRGVjaW1hbCkge1xuICAgICAgbnVtID0gTnVtYmVyTWFzay5fcm91bmQobnVtLCBtYXNrQWZ0ZXJEZWNpbWFsKVxuICAgICAgYnl0ZXMgPSBOdW1iZXJNYXNrLl90b0NoYXJBcnJheShudW0pXG4gICAgICBpbkxlbiA9IGJ5dGVzLmxlbmd0aFxuXG4gICAgICAvLyBHZXQgbmV3IG1hZ25pdHVkZSBhbmQgcHJlY2lzaW9uIG9mIE5VTUJFUlxuICAgICAgbnVtQmVmb3JlRGVjaW1hbCA9IDBcbiAgICAgIG51bUFmdGVyRGVjaW1hbCA9IDBcbiAgICAgIGZvdW5kRGVjaW1hbCA9IGZhbHNlXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluTGVuOyArK2kpIHtcbiAgICAgICAgaWYgKGJ5dGVzW2ldID09ICcuJykgZm91bmREZWNpbWFsID0gdHJ1ZVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpZiAoZm91bmREZWNpbWFsKSArK251bUFmdGVyRGVjaW1hbFxuICAgICAgICAgIGVsc2UgKytudW1CZWZvcmVEZWNpbWFsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gYWx3YXlzIGlnbm9yZSBtYXNrIG92ZXJmbG93XG4gICAgICBpZiAobnVtQmVmb3JlRGVjaW1hbCA+IG1hc2tCZWZvcmVEZWNpbWFsKSB7XG4gICAgICAgIGlmIChsb29zZSkgcmV0dXJuIG51bWJlci50b1N0cmluZygpXG4gICAgICAgIC8vIGZyaWVuZGx5IHNpbGVudCBmYWlsXG4gICAgICAgIGVsc2VcbiAgICAgICAgICB0aHJvdyB7XG4gICAgICAgICAgICBuYW1lOiAnTWFza0Vycm9yJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGBNYXNrRXJyb3I6IE51bWJlciBpcyB0b28gbGFyZ2UgZm9yIG1hc2tgXG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBmaWxsQnl0ZSA9ICcgJyxcbiAgICAgIGZsb2F0Qnl0ZSA9ICcgJ1xuICAgIGxldCBpblBvcyA9IDAsXG4gICAgICBvdXRQb3MgPSAwLFxuICAgICAgZmxvYXRQb3MgPSAwXG4gICAgaWYgKG1hc2suY2hhckF0KDApID09ICcqJykgZmlsbEJ5dGUgPSAnKidcblxuICAgIGNvbnN0IGZpbGxJbml0ID0gZmlsbEJ5dGVcbiAgICBjb25zdCBpc05lZ2F0aXZlID0gTnVtYmVyTWFzay5fZ2V0U2lnbihudW0pIDwgMFxuICAgIGxldCBlbWl0RGVjaW1hbCA9IGluTGVuID4gMCB8fCBtYXNrLmluZGV4T2YoJzAnKSA+PSAwXG4gICAgbGV0IGZvdW5kWmVybyA9IGZhbHNlXG4gICAgbGV0IGZvdW5kRGlnaXQgPSBmYWxzZVxuICAgIGxldCBjdXJyZW5jeSA9IGZhbHNlXG4gICAgZm91bmREZWNpbWFsID0gZmFsc2VcblxuICAgIGxldCByZXQgPSBuZXcgQXJyYXkobWFza0xlbilcblxuICAgIGZvciAobGV0IG1hc2tQb3MgPSAwOyBtYXNrUG9zIDwgbWFza0xlbjsgKyttYXNrUG9zKSB7XG4gICAgICBsZXQgbSA9IG1hc2suY2hhckF0KG1hc2tQb3MpXG4gICAgICBzd2l0Y2ggKG0pIHtcbiAgICAgICAgY2FzZSAnMCc6XG4gICAgICAgICAgLS1tYXNrQmVmb3JlRGVjaW1hbFxuICAgICAgICAgIGlmIChtYXNrQmVmb3JlRGVjaW1hbCA8IG51bUJlZm9yZURlY2ltYWwgJiYgaW5Qb3MgPCBpbkxlbikge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBieXRlc1tpblBvc11cbiAgICAgICAgICAgICsraW5Qb3NcbiAgICAgICAgICAgIGZvdW5kRGlnaXQgPSB0cnVlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJzAnXG4gICAgICAgICAgICBmb3VuZFplcm8gPSB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcjJzpcbiAgICAgICAgICAtLW1hc2tCZWZvcmVEZWNpbWFsXG4gICAgICAgICAgaWYgKG1hc2tCZWZvcmVEZWNpbWFsIDwgbnVtQmVmb3JlRGVjaW1hbCAmJiBpblBvcyA8IGluTGVuKSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGJ5dGVzW2luUG9zXVxuICAgICAgICAgICAgKytpblBvc1xuICAgICAgICAgICAgZm91bmREaWdpdCA9IHRydWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPVxuICAgICAgICAgICAgICBmb3VuZERlY2ltYWwgJiZcbiAgICAgICAgICAgICAgZm9yY2VUcmFpbGluZ1plcm9zICYmXG4gICAgICAgICAgICAgIE51bWJlck1hc2suX2dldFNpZ24obnVtKSAhPSAwXG4gICAgICAgICAgICAgICAgPyAnMCdcbiAgICAgICAgICAgICAgICA6IGZpbGxCeXRlXG4gICAgICAgICAgICBpZiAoIWZvdW5kRGVjaW1hbCkgZmxvYXRQb3MgPSBtYXNrUG9zXG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcsJzpcbiAgICAgICAgICBpZiAoZm91bmRaZXJvIHx8IGluUG9zID4gMCkgcmV0W291dFBvc10gPSBncm91cGluZ1NlcGFyYXRvclxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAgICAgaWYgKCFmb3VuZERlY2ltYWwpIGZsb2F0UG9zID0gbWFza1Bvc1xuICAgICAgICAgIH1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSBmbG9hdEJ5dGUgPSAnLSdcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgICAgfSBlbHNlIHJldFtvdXRQb3NdID0gaXNOZWdhdGl2ZSA/ICctJyA6IGZpbGxCeXRlXG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgIGlmICghZm91bmREaWdpdCAmJiBmbG9hdEJ5dGUgPT0gJyAnKSB7XG4gICAgICAgICAgICBmbG9hdEJ5dGUgPSBpc05lZ2F0aXZlID8gJy0nIDogJysnXG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgICAgICBmbG9hdFBvcyA9IGZvdW5kRGVjaW1hbCA/IC0xIDogbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSByZXRbb3V0UG9zXSA9IGlzTmVnYXRpdmUgPyAnLScgOiAnKydcbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnJCc6XG4gICAgICAgICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgICAgIGZsb2F0Qnl0ZSA9ICckJ1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmaWxsQnl0ZVxuICAgICAgICAgICAgZmxvYXRQb3MgPSBmb3VuZERlY2ltYWwgPyAtMSA6IG1hc2tQb3NcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSAnJCdcbiAgICAgICAgICB9XG4gICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIC8vIGNhc2UgJyYnOlxuICAgICAgICAvLyAgIGN1cnJlbmN5ID0gdHJ1ZVxuICAgICAgICAvLyAgIGlmICghZm91bmREaWdpdCAmJiBmbG9hdEJ5dGUgPT0gJyAnKSB7XG4gICAgICAgIC8vICAgICBmbG9hdEJ5dGUgPSAnJidcbiAgICAgICAgLy8gICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgLy8gICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgIC8vICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIHJldFtvdXRQb3NdID0gJyYnXG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgICsrb3V0UG9zXG4gICAgICAgIC8vICAgYnJlYWtcblxuICAgICAgICAvLyBjYXNlICdAJzpcbiAgICAgICAgLy8gICBjdXJyZW5jeSA9IHRydWVcbiAgICAgICAgLy8gICBpZiAoIWZvdW5kRGlnaXQgJiYgZmxvYXRCeXRlID09ICcgJykge1xuICAgICAgICAvLyAgICAgZmxvYXRCeXRlID0gJ0AnXG4gICAgICAgIC8vICAgICByZXRbb3V0UG9zXSA9IGZpbGxCeXRlXG4gICAgICAgIC8vICAgICBmbG9hdFBvcyA9IGZvdW5kRGVjaW1hbCA/IC0xIDogbWFza1Bvc1xuICAgICAgICAvLyAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICByZXRbb3V0UG9zXSA9ICdAJ1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gICArK291dFBvc1xuICAgICAgICAvLyAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnKCc6XG4gICAgICAgICAgaWYgKCFmb3VuZERpZ2l0ICYmIGZsb2F0Qnl0ZSA9PSAnICcpIHtcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSBmbG9hdEJ5dGUgPSAnKCdcbiAgICAgICAgICAgIHJldFtvdXRQb3NdID0gZmlsbEJ5dGVcbiAgICAgICAgICAgIGZsb2F0UG9zID0gZm91bmREZWNpbWFsID8gLTEgOiBtYXNrUG9zXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJygnXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9IGZvdW5kRGVjaW1hbCA/ICcgJyA6IGZpbGxCeXRlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcpJzpcbiAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSAnKSdcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0W291dFBvc10gPSBmb3VuZERlY2ltYWwgPyAnICcgOiBmaWxsQnl0ZVxuICAgICAgICAgIH1cbiAgICAgICAgICArK291dFBvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnQyc6XG4gICAgICAgICAgaWYgKG1hc2tQb3MgPCBtYXNrTGVuIC0gMSAmJiBtYXNrLmNoYXJBdChtYXNrUG9zICsgMSkgPT0gJ1InKSB7XG4gICAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdDJ1xuICAgICAgICAgICAgICByZXRbb3V0UG9zICsgMV0gPSAnUidcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJyAnXG4gICAgICAgICAgICAgIHJldFtvdXRQb3MgKyAxXSA9ICcgJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0UG9zICs9IDJcbiAgICAgICAgICAgICsrbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdDJ1xuICAgICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgaWYgKG1hc2tQb3MgPCBtYXNrTGVuIC0gMSAmJiBtYXNrLmNoYXJBdChtYXNrUG9zICsgMSkgPT0gJ1InKSB7XG4gICAgICAgICAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdDJ1xuICAgICAgICAgICAgICByZXRbb3V0UG9zICsgMV0gPSAnUidcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldFtvdXRQb3NdID0gJ0QnXG4gICAgICAgICAgICAgIHJldFtvdXRQb3MgKyAxXSA9ICdSJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0UG9zICs9IDJcbiAgICAgICAgICAgICsrbWFza1Bvc1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXRbb3V0UG9zXSA9ICdEJ1xuICAgICAgICAgICAgKytvdXRQb3NcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcqJzpcbiAgICAgICAgICByZXRbb3V0UG9zXSA9ICcqJ1xuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICcuJzpcbiAgICAgICAgICByZXRbb3V0UG9zXSA9IGVtaXREZWNpbWFsID8gZGVjaW1hbFNlcGFyYXRvciA6IGZpbGxCeXRlXG4gICAgICAgICAgZmlsbEJ5dGUgPSAnICdcbiAgICAgICAgICBmb3VuZERlY2ltYWwgPSB0cnVlXG4gICAgICAgICAgKytpblBvc1xuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBjYXNlICdCJzpcbiAgICAgICAgICByZXRbb3V0UG9zXSA9ICcgJ1xuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldFtvdXRQb3NdID0gbVxuICAgICAgICAgICsrb3V0UG9zXG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmxvYXRCeXRlICE9ICcgJykge1xuICAgICAgaWYgKGZsb2F0UG9zIDwgMCkgZmxvYXRQb3MgPSBvdXRQb3NcbiAgICAgIHdoaWxlIChmbG9hdFBvcyA+PSBtYXNrTGVuKSAtLWZsb2F0UG9zXG4gICAgICBpZiAocmV0W2Zsb2F0UG9zXSA9PSBmaWxsSW5pdCkgcmV0W2Zsb2F0UG9zXSA9IGZsb2F0Qnl0ZVxuICAgIH1cblxuICAgIHJldHVybiByZXQuam9pbignJylcbiAgfVxuXG4gIHN0YXRpYyBfc2hpZnQobnVtYmVyLCBwcmVjaXNpb24sIHJldmVyc2VTaGlmdCkge1xuICAgIGlmIChyZXZlcnNlU2hpZnQpIHByZWNpc2lvbiA9IC1wcmVjaXNpb25cbiAgICB2YXIgbnVtQXJyYXkgPSAoJycgKyBudW1iZXIpLnNwbGl0KCdlJylcbiAgICByZXR1cm4gKyhcbiAgICAgIG51bUFycmF5WzBdICtcbiAgICAgICdlJyArXG4gICAgICAobnVtQXJyYXlbMV0gPyArbnVtQXJyYXlbMV0gKyBwcmVjaXNpb24gOiBwcmVjaXNpb24pXG4gICAgKVxuICB9XG5cbiAgc3RhdGljIF9yb3VuZChudW1iZXIsIHByZWNpc2lvbikge1xuICAgIHJldHVybiBOdW1iZXJNYXNrLl9zaGlmdChcbiAgICAgIE1hdGgucm91bmQoTnVtYmVyTWFzay5fc2hpZnQobnVtYmVyLCBwcmVjaXNpb24sIGZhbHNlKSksXG4gICAgICBwcmVjaXNpb24sXG4gICAgICB0cnVlXG4gICAgKVxuICB9XG5cbiAgc3RhdGljIF90b0NoYXJBcnJheShudW1iZXIpIHtcbiAgICBjb25zdCBzaWdudW0gPSBOdW1iZXJNYXNrLl9nZXRTaWduKG51bWJlcilcbiAgICBsZXQgY2hhcnMgPSBbXVxuXG4gICAgaWYgKHNpZ251bSAhPT0gMCkge1xuICAgICAgbGV0IHN0cmluZyA9IHNpZ251bSA8IDAgPyBgJHstMSAqIG51bWJlci50b1N0cmluZygpfWAgOiBudW1iZXIudG9TdHJpbmcoKVxuXG4gICAgICBpZiAoc3RyaW5nLmxlbmd0aCA+IDEgJiYgc3RyaW5nLmNoYXJBdCgwKSA9PSAnMCcpXG4gICAgICAgIHN0cmluZyA9IHN0cmluZy5zdWJzdHJpbmcoMSlcblxuICAgICAgLy8gVGhlIHN0cmluZyBjb250YWlucyBvbmx5IFswLTldIGFuZCAnLidcbiAgICAgIGNoYXJzID0gc3RyaW5nLnNwbGl0KCcnKVxuICAgIH1cblxuICAgIHJldHVybiBjaGFyc1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNpZ24gb2YgYSBudW1iZXJcbiAgICpcbiAgICogQHBhcmFtIHtOdW1iZXJ9IHggbnVtYmVyXG4gICAqIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIHJlcHJlc2VudGluZyB0aGUgc2lnbiBvZiB0aGUgZ2l2ZW4gYXJndW1lbnQuXG4gICAqICAgICAgICAgICAgICAgICAgIElmIHRoZSBhcmd1bWVudCBpcyBhIHBvc2l0aXZlIG51bWJlciwgbmVnYXRpdmUgbnVtYmVyLCBwb3NpdGl2ZSB6ZXJvXG4gICAqICAgICAgICAgICAgICAgICAgIG9yIG5lZ2F0aXZlIHplcm8sIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiAxLCAtMSwgMCBvciAtMCByZXNwZWN0aXZlbHkuXG4gICAqICAgICAgICAgICAgICAgICAgIE90aGVyd2lzZSwgTmFOIGlzIHJldHVybmVkLlxuICAgKi9cbiAgc3RhdGljIF9nZXRTaWduKHgpIHtcbiAgICByZXR1cm4gKHggPiAwKSAtICh4IDwgMCkgfHwgK3hcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBOdW1iZXJNYXNrXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvTnVtYmVyTWFzay9OdW1iZXJNYXNrLmpzIiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGJiai1tYXNrcyBsaWIuXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB1dGNUb1pvbmVkVGltZSBmcm9tICdkYXRlLWZucy10ei91dGNUb1pvbmVkVGltZSdcbmltcG9ydCB7IGdldFdlZWtTdGFydEJ5TG9jYWxlIGFzIG9yaWdpbmFsR2V0V2Vla1N0YXJ0QnlMb2NhbGUgfSBmcm9tICd3ZWVrc3RhcnQnXG5cbmV4cG9ydCBjb25zdCBJU19USU1FX1JFR0VYID0gL14oMlswLTNdfFswMV1bMC05XSk6PyhbMC01XVswLTldKTo/KFswLTVdWzAtOV0pKFp8WystXSg/OjJbMC0zXXxbMDFdWzAtOV0pKD86Oj8oPzpbMC01XVswLTldKSk/KSQvXG5leHBvcnQgY29uc3QgSVNfREFURV9SRUdFWCA9IC9eKChbMTJdXFxkezN9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdXFxkfDNbMDFdKShafFsrLV0oPzoyWzAtM118WzAxXVswLTldKSg/Ojo/KD86WzAtNV1bMC05XSkpPykpJC9cblxuLyoqXG4gKiBGaW5kIG91dCB3aGVuIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgYmFzZWQgb24gdGhlIHBhc3NlZCBsb2NhbGVcbiAqXG4gKiBAcGFyYW0ge2xvY2FsZX0gbG9jYWxlXG4gKlxuICogQHJldHVybiB7TnVtYmVyfSBhIG51bWJlciAwID0gc3VuZGF5ICwgMSA9IG1vbmRheSAsIC4uLi5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFdlZWtTdGFydEJ5TG9jYWxlID0gbG9jYWxlID0+IHtcbiAgcmV0dXJuIG9yaWdpbmFsR2V0V2Vla1N0YXJ0QnlMb2NhbGUobG9jYWxlKVxufVxuXG4vKipcbiAqICBHZXQgZGF5IG51bWJlciBpbiB0aGUgeWVhciBvZiB0aGUgcGFzc2VkIGRhdGVcbiAqXG4gKiBAcGFyYW0ge0RhdGV9IGRhdGVcbiAqXG4gKiBAcmV0dXJuIHtOdW1iZXJ9IGRheSBudW1iZXJcbiAqL1xuZXhwb3J0IGNvbnN0IGdldERheU9mWWVhciA9IGRhdGUgPT4ge1xuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgMClcblxuICBjb25zdCBkaWZmID1cbiAgICBkYXRlIC1cbiAgICBzdGFydCArXG4gICAgKHN0YXJ0LmdldFRpbWV6b25lT2Zmc2V0KCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkpICogNjAgKiAxMDAwXG4gIGNvbnN0IG9uZURheSA9IDEwMDAgKiA2MCAqIDYwICogMjRcbiAgY29uc3QgZGF5ID0gTWF0aC5mbG9vcihkaWZmIC8gb25lRGF5KVxuXG4gIHJldHVybiBkYXlcbn1cblxuLyoqXG4gKiBUYWtlcyBpbmNvbXBsZXRlIGlzbyBzdHJpbmcgYW5kIHJldHVybiBhIGNvbXBsZXRlIG9uZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBkYXRlIGluY29tcGxldGUgaXNvIHN0cmluZ1xuICpcbiAqIEByZXR1cm4ge1N0cmluZ30gY29tcGxldGUgaXNvIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgZml4U2hvcnRJU08gPSBkYXRlID0+IHtcbiAgbGV0IHZhbHVlID0gZGF0ZVxuICBsZXQgb2Zmc2V0ID0gKHZhbHVlLm1hdGNoKC96JHxbK1xcLV1cXGRcXGQ6XFxkXFxkJC9pKSB8fCBbXSlbMF1cbiAgaWYgKCFvZmZzZXQpIHtcbiAgICBvZmZzZXQgPSAnWidcbiAgICB2YWx1ZSArPSBvZmZzZXRcbiAgfVxuXG4gIGlmIChJU19USU1FX1JFR0VYLnRlc3QodmFsdWUpKSB7XG4gICAgdmFsdWUgPSBgMTk3MC0wMS0wMVQke3ZhbHVlfWBcbiAgfSBlbHNlIGlmIChJU19EQVRFX1JFR0VYLnRlc3QodmFsdWUpKSB7XG4gICAgdmFsdWUgPSBgJHt2YWx1ZS5zcGxpdChvZmZzZXQpWzBdfVQwMDowMDowMCR7b2Zmc2V0fWBcbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxufVxuXG4vKipcbiAqIEdldCB0aGUgYnJvd3NlciB0aW1lem9uZSBuYW1lICwgaWYgbm90IHN1cHBvcnRlZCB0aGVuIHRoZSBicm93c2VyXG4gKiB0aW1lem9uZSBvZmZzZXQgZm9ybWF0dGVkXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSB0aW1lem9uZSBvZiBvZmZzZXRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRpbWV6b25lT3JPZmZzZXQgPSAoKSA9PiB7XG4gIGNvbnN0IHRpbWV6b25lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lXG4gIGlmICghdGltZXpvbmUpIHtcbiAgICBjb25zdCBwYWQgPSAobnVtYmVyLCBsZW5ndGgpID0+IHtcbiAgICAgIHZhciBzdHIgPSAnJyArIG51bWJlclxuICAgICAgd2hpbGUgKHN0ci5sZW5ndGggPCBsZW5ndGgpIHtcbiAgICAgICAgc3RyID0gJzAnICsgc3RyXG4gICAgICB9XG4gICAgICByZXR1cm4gc3RyXG4gICAgfVxuXG4gICAgbGV0IG9mZnNldCA9IG5ldyBEYXRlKCkuZ2V0VGltZXpvbmVPZmZzZXQoKVxuICAgIG9mZnNldCA9XG4gICAgICAob2Zmc2V0IDwgMCA/ICcrJyA6ICctJykgKyAvLyBOb3RlIHRoZSByZXZlcnNlZCBzaWduIVxuICAgICAgcGFkKHBhcnNlSW50KE1hdGguYWJzKG9mZnNldCAvIDYwKSksIDIpICtcbiAgICAgIHBhZChNYXRoLmFicyhvZmZzZXQgJSA2MCksIDIpXG5cbiAgICByZXR1cm4gb2Zmc2V0XG4gIH1cblxuICByZXR1cm4gdGltZXpvbmVcbn1cblxuLyoqXG4gKiBHZXQgdGhlIFdlZWsgTnVtYmVyIGluIHRoZSBwYXNzZWQgZGF0ZVxuICpcbiAqIEBwYXJhbSB7RGF0ZX0gZGF0ZSAtIERhdGUgb2JqZWN0XG4gKiBAcGFyYW0ge051bWJlcn0gd2Vla1N0YXJ0IEEgbnVtYmVyIHdoaWNoIGRlZmluZXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayAoMCAgPSBzdW5kYXkgLCAxID0gbW9uZGF5ICwgLi4uKVxuICpcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IHRoZSB3ZWVrIG51bWJlclxuICovXG5leHBvcnQgY29uc3QgZ2V0V2Vla051bWJlciA9IGZ1bmN0aW9uKGRhdGUsIHdlZWtTdGFydCkge1xuICBjb25zdCBkID0gbmV3IERhdGUoXG4gICAgRGF0ZS5VVEMoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKVxuICApXG4gIGNvbnN0IGRheU51bSA9IGQuZ2V0VVRDRGF5KCkgLSAod2Vla1N0YXJ0IC0gMSkgfHwgN1xuICBkLnNldFVUQ0RhdGUoZC5nZXRVVENEYXRlKCkgKyA0IC0gZGF5TnVtKVxuICBjb25zdCB5ZWFyU3RhcnQgPSBuZXcgRGF0ZShEYXRlLlVUQyhkLmdldFVUQ0Z1bGxZZWFyKCksIDAsIDEpKVxuICByZXR1cm4gTWF0aC5jZWlsKCgoZCAtIHllYXJTdGFydCkgLyA4NjQwMDAwMCArIDEpIC8gNylcbn1cblxuLyoqXG4gKiBEYXRlTWFza1xuICpcbiAqIEEgamF2YXNjcmlwdCBpbXBsZW1lbnRhdGlvbiBmb3IgQkJqIGRhdGVzIG1hc2tpbmdcbiAqXG4gKiBAYXV0aG9yIEh5eWFuIEFibyBGYWtoZXIgPGhhYm9mYWtoZXJAYmFzaXMuY29tPlxuICovXG5jbGFzcyBEYXRlTWFzayB7XG4gIC8qKlxuICAgKiBNYXNrIGRhdGVcbiAgICpcbiAgICogTWFzayB0aGUgcGFzc2VkIGRhdGUgd2l0aCB0aGUgcGFzc2VkIG1hc2tcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IGRhdGUgZGF0ZSBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbWFzayBtYXNrIGFzIGEgc3RyaW5nXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBbbG9jYWxlPUJyb3dzZXIncyBsb2NhbGVdIHRoZSBsYW5ndWFnZSB0byB1c2UgZXgoZW4tVVMpLiBkZWZhdWx0IGlzIHRvIHRoZSBzeXN0ZW0gbGFuZ3VhZ2VcbiAgICogQHBhcmFtIHtTdHJpbmd9IFt0aW1lem9uZT1TeXN0ZW0gdGltZXpvbmVdIHRoZSB0aW1lIHpvbmUgZGVzY3JpcHRvciAoZS5nLiBBbWVyaWNhL0xvc19BbmdlbGVzKS4gZGVmYXVsdCB0byB0aGUgc3lzdGVtXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lem9uZVxuICAgKlxuICAgKiBAcmV0dXJuIHtTdHJpbmd9IGEgZGF0ZSBtYXNrZWQgd2l0aCB0aGUgZ2l2ZW4gbWFza1xuICAgKi9cbiAgc3RhdGljIG1hc2soZGF0ZSwgbWFzaywgbG9jYWxlLCB0aW1lem9uZSkge1xuICAgIGlmICghZGF0ZSkgcmV0dXJuICcnXG4gICAgaWYgKCFtYXNrKSByZXR1cm4gZGF0ZVxuXG4gICAgdGltZXpvbmUgPSB0aW1lem9uZSB8fCBnZXRUaW1lem9uZU9yT2Zmc2V0KClcbiAgICBsb2NhbGUgPSBsb2NhbGUgfHwgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLmxvY2FsZSB8fCAnZW4tVVMnXG5cbiAgICAvLyBtYWtlIHN1cmUgd2UgaGF2ZSBhIGNvbXBsZXRlIGlzbyBzdHJpbmdcbiAgICBkYXRlID0gZGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBkYXRlIDogZml4U2hvcnRJU08oZGF0ZSlcblxuICAgIGNvbnN0IGRhdGVPYmplY3QgPSB1dGNUb1pvbmVkVGltZShkYXRlLCB0aW1lem9uZSlcbiAgICBjb25zdCB0cmFuc2xhdGlvbiA9IERhdGVNYXNrLl9idWlsZFRyYW5zbGF0aW9uKHtcbiAgICAgIHllYXI6IGRhdGVPYmplY3QuZ2V0RnVsbFllYXIoKSxcbiAgICAgIG1vbnRoOiBkYXRlT2JqZWN0LmdldE1vbnRoKCkgKyAxLFxuICAgICAgbW9udGhTaG9ydDogbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoW2xvY2FsZV0sIHsgbW9udGg6ICdzaG9ydCcgfSkuZm9ybWF0KFxuICAgICAgICBkYXRlT2JqZWN0XG4gICAgICApLFxuICAgICAgbW9udGhMb25nOiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChbbG9jYWxlXSwgeyBtb250aDogJ2xvbmcnIH0pLmZvcm1hdChcbiAgICAgICAgZGF0ZU9iamVjdFxuICAgICAgKSxcbiAgICAgIGRheTogZGF0ZU9iamVjdC5nZXREYXRlKCksXG4gICAgICBkYXlTaG9ydDogbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoW2xvY2FsZV0sIHsgd2Vla2RheTogJ3Nob3J0JyB9KS5mb3JtYXQoXG4gICAgICAgIGRhdGVPYmplY3RcbiAgICAgICksXG4gICAgICBkYXlMb25nOiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChbbG9jYWxlXSwgeyB3ZWVrZGF5OiAnbG9uZycgfSkuZm9ybWF0KFxuICAgICAgICBkYXRlT2JqZWN0XG4gICAgICApLFxuICAgICAgbWludXRlczogZGF0ZU9iamVjdC5nZXRNaW51dGVzKCksXG4gICAgICBzZWNvbmRzOiBkYXRlT2JqZWN0LmdldFNlY29uZHMoKSxcbiAgICAgIGdldCBob3VyczI0KCkge1xuICAgICAgICByZXR1cm4gZGF0ZU9iamVjdC5nZXRIb3VycygpXG4gICAgICB9LFxuICAgICAgZ2V0IGhvdXJzMTIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvdXJzMjQgJSAxMiB8fCAxMlxuICAgICAgfSxcbiAgICAgIGRheU9mWWVhcjogZ2V0RGF5T2ZZZWFyKGRhdGVPYmplY3QpLFxuICAgICAgZGF5T2ZXZWVrOiBkYXRlT2JqZWN0LmdldERheSgpICsgMSwgLy8gU3VuZGF5ID0gMSBpbiBCQmogYnV0IFN1bmRheSA9IDAgaW4gSlNcbiAgICAgIHdlZWtOdW1iZXI6IGdldFdlZWtOdW1iZXIoZGF0ZU9iamVjdCwgZ2V0V2Vla1N0YXJ0QnlMb2NhbGUobG9jYWxlKSksXG4gICAgICBsb2NhbGUsXG4gICAgICB0aW1lem9uZVxuICAgIH0pXG5cbiAgICBsZXQgcmVzdWx0ID0gbWFza1xuICAgIGZvciAodmFyIGsgaW4gdHJhbnNsYXRpb24pIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKG5ldyBSZWdFeHAoJyglJyArIGsgKyAnKScsICdnJyksIHRyYW5zbGF0aW9uW2tdKVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBtYXAgb2JqZWN0IHdoaWNoIGNvbnRhaW5zIGFsbCBwb3NzaWJsZSBmb3JtcyBvZiBtYXNrc1xuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0ZURldGFpbHMgZGF0ZVxuICAgKlxuICAgKiBAcmV0dXJuIHtPYmplY3R9IGZvcm1zIG1hc2tzXG4gICAqL1xuICBzdGF0aWMgX2J1aWxkVHJhbnNsYXRpb24oZGF0ZURldGFpbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLy8geWVhclxuICAgICAgWXo6IGRhdGVEZXRhaWxzLnllYXIudG9TdHJpbmcoKS5zdWJzdHIoLTIpLFxuICAgICAgWXM6IGRhdGVEZXRhaWxzLnllYXIsXG4gICAgICBZbDogZGF0ZURldGFpbHMueWVhcixcbiAgICAgIFlwOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGVEZXRhaWxzLnllYXIpLFxuICAgICAgWWQ6IGRhdGVEZXRhaWxzLnllYXIsXG4gICAgICBZOiBkYXRlRGV0YWlscy55ZWFyLFxuXG4gICAgICAvLyBtb250aFxuICAgICAgTXo6XG4gICAgICAgIFN0cmluZyhkYXRlRGV0YWlscy5tb250aCkubGVuZ3RoID09IDFcbiAgICAgICAgICA/ICcwJyArIGRhdGVEZXRhaWxzLm1vbnRoXG4gICAgICAgICAgOiBkYXRlRGV0YWlscy5tb250aCxcbiAgICAgIE1zOiBkYXRlRGV0YWlscy5tb250aFNob3J0LFxuICAgICAgTWw6IGRhdGVEZXRhaWxzLm1vbnRoTG9uZyxcbiAgICAgIE1wOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGVEZXRhaWxzLm1vbnRoKSxcbiAgICAgIE1kOiBkYXRlRGV0YWlscy5tb250aCxcbiAgICAgIE06IGRhdGVEZXRhaWxzLm1vbnRoLFxuXG4gICAgICAvLyBkYXlcbiAgICAgIER6OlxuICAgICAgICBTdHJpbmcoZGF0ZURldGFpbHMuZGF5KS5sZW5ndGggPT0gMVxuICAgICAgICAgID8gJzAnICsgZGF0ZURldGFpbHMuZGF5XG4gICAgICAgICAgOiBkYXRlRGV0YWlscy5kYXksXG4gICAgICBEczogZGF0ZURldGFpbHMuZGF5U2hvcnQsXG4gICAgICBEbDogZGF0ZURldGFpbHMuZGF5TG9uZyxcbiAgICAgIERwOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGVEZXRhaWxzLmRheSksXG4gICAgICBEZDogZGF0ZURldGFpbHMuZGF5LFxuICAgICAgRDogZGF0ZURldGFpbHMuZGF5LFxuXG4gICAgICAvLyBob3VyIDI0XG4gICAgICBIejpcbiAgICAgICAgU3RyaW5nKGRhdGVEZXRhaWxzLmhvdXJzMjQpLmxlbmd0aCA9PSAxXG4gICAgICAgICAgPyAnMCcgKyBkYXRlRGV0YWlscy5ob3VyczI0XG4gICAgICAgICAgOiBkYXRlRGV0YWlscy5ob3VyczI0LFxuICAgICAgSHM6IGRhdGVEZXRhaWxzLmhvdXJzMjQsXG4gICAgICBIbDogZGF0ZURldGFpbHMuaG91cnMyNCxcbiAgICAgIEhwOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGVEZXRhaWxzLmhvdXJzMjQpLFxuICAgICAgSGQ6IGRhdGVEZXRhaWxzLmhvdXJzMjQsXG4gICAgICBIOiBkYXRlRGV0YWlscy5ob3VyczI0LFxuXG4gICAgICAvLyBob3VyIDEyXG4gICAgICBoejpcbiAgICAgICAgU3RyaW5nKGRhdGVEZXRhaWxzLmhvdXJzMTIpLmxlbmd0aCA9PSAxXG4gICAgICAgICAgPyAnMCcgKyBkYXRlRGV0YWlscy5ob3VyczEyXG4gICAgICAgICAgOiBkYXRlRGV0YWlscy5ob3VyczEyLFxuICAgICAgaHM6IGRhdGVEZXRhaWxzLmhvdXJzMTIsXG4gICAgICBobDogZGF0ZURldGFpbHMuaG91cnMxMixcbiAgICAgIGhwOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGVEZXRhaWxzLmhvdXJzMTIpLFxuICAgICAgaGQ6IGRhdGVEZXRhaWxzLmhvdXJzMTIsXG4gICAgICBoOiBkYXRlRGV0YWlscy5ob3VyczEyLFxuXG4gICAgICAvLyBtaW51dGVzXG4gICAgICBtejpcbiAgICAgICAgU3RyaW5nKGRhdGVEZXRhaWxzLm1pbnV0ZXMpLmxlbmd0aCA9PSAxXG4gICAgICAgICAgPyAnMCcgKyBkYXRlRGV0YWlscy5taW51dGVzXG4gICAgICAgICAgOiBkYXRlRGV0YWlscy5taW51dGVzLFxuICAgICAgbXM6IGRhdGVEZXRhaWxzLm1pbnV0ZXMsXG4gICAgICBtbDogZGF0ZURldGFpbHMubWludXRlcyxcbiAgICAgIG1wOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGVEZXRhaWxzLm1pbnV0ZXMpLFxuICAgICAgbWQ6IGRhdGVEZXRhaWxzLm1pbnV0ZXMsXG4gICAgICBtOiBkYXRlRGV0YWlscy5taW51dGVzLFxuXG4gICAgICAvLyBzZWNvbmRzXG4gICAgICBzejpcbiAgICAgICAgU3RyaW5nKGRhdGVEZXRhaWxzLnNlY29uZHMpLmxlbmd0aCA9PSAxXG4gICAgICAgICAgPyAnMCcgKyBkYXRlRGV0YWlscy5zZWNvbmRzXG4gICAgICAgICAgOiBkYXRlRGV0YWlscy5zZWNvbmRzLFxuICAgICAgc3M6IGRhdGVEZXRhaWxzLnNlY29uZHMsXG4gICAgICBzbDogZGF0ZURldGFpbHMuc2Vjb25kcyxcbiAgICAgIHNwOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGVEZXRhaWxzLnNlY29uZHMpLFxuICAgICAgc2Q6IGRhdGVEZXRhaWxzLnNlY29uZHMsXG4gICAgICBzOiBkYXRlRGV0YWlscy5zZWNvbmRzLFxuXG4gICAgICAvLyBBTSAsIFBNXG4gICAgICBQUDogZGF0ZURldGFpbHMuaG91cnMyNCA+IDEyID8gJ1BNJyA6ICdQTScsXG4gICAgICBQOiBkYXRlRGV0YWlscy5ob3VyczI0ID4gMTIgPyAnUE0nIDogJ0FNJyxcbiAgICAgIHBwOiBkYXRlRGV0YWlscy5ob3VyczI0ID4gMTIgPyAncG0nIDogJ2FtJyxcbiAgICAgIHA6IGRhdGVEZXRhaWxzLmhvdXJzMjQgPiAxMiA/ICdwbScgOiAnYW0nLFxuXG4gICAgICAvLyBEYXkgb2YgWWVhclxuICAgICAgSno6XG4gICAgICAgIFN0cmluZyhkYXRlRGV0YWlscy5kYXlPZlllYXIpLmxlbmd0aCA9PSAxXG4gICAgICAgICAgPyAnMCcgKyBkYXRlRGV0YWlscy5kYXlPZlllYXJcbiAgICAgICAgICA6IGRhdGVEZXRhaWxzLmRheU9mWWVhcixcbiAgICAgIEpzOiBkYXRlRGV0YWlscy5kYXlPZlllYXIsXG4gICAgICBKbDogZGF0ZURldGFpbHMuZGF5T2ZZZWFyLFxuICAgICAgSmQ6IGRhdGVEZXRhaWxzLmRheU9mWWVhcixcbiAgICAgIEo6IGRhdGVEZXRhaWxzLmRheU9mWWVhcixcblxuICAgICAgLy8gRGF5IE9mIFdlZWtcbiAgICAgIFd6OlxuICAgICAgICBTdHJpbmcoZGF0ZURldGFpbHMuZGF5T2ZXZWVrKS5sZW5ndGggPT0gMVxuICAgICAgICAgID8gJzAnICsgZGF0ZURldGFpbHMuZGF5T2ZXZWVrXG4gICAgICAgICAgOiBkYXRlRGV0YWlscy5kYXlPZldlZWssXG4gICAgICBXczogZGF0ZURldGFpbHMuZGF5T2ZXZWVrLFxuICAgICAgV2w6IGRhdGVEZXRhaWxzLmRheU9mV2VlayxcbiAgICAgIFdwOiBTdHJpbmcuZnJvbUNoYXJDb2RlKGRhdGVEZXRhaWxzLmRheU9mV2VlayksXG4gICAgICBXZDogZGF0ZURldGFpbHMuZGF5T2ZXZWVrLFxuICAgICAgVzogZGF0ZURldGFpbHMuZGF5T2ZXZWVrLFxuXG4gICAgICAvLyB3ZWVrIG51bWJlclxuICAgICAgd3o6XG4gICAgICAgIFN0cmluZyhkYXRlRGV0YWlscy53ZWVrTnVtYmVyKS5sZW5ndGggPT0gMVxuICAgICAgICAgID8gJzAnICsgZGF0ZURldGFpbHMud2Vla051bWJlclxuICAgICAgICAgIDogZGF0ZURldGFpbHMud2Vla051bWJlcixcbiAgICAgIHdzOiBkYXRlRGV0YWlscy53ZWVrTnVtYmVyLFxuICAgICAgd2w6IGRhdGVEZXRhaWxzLndlZWtOdW1iZXIsXG4gICAgICB3cDogU3RyaW5nLmZyb21DaGFyQ29kZShkYXRlRGV0YWlscy53ZWVrTnVtYmVyKSxcbiAgICAgIHdkOiBkYXRlRGV0YWlscy53ZWVrTnVtYmVyLFxuICAgICAgdzogZGF0ZURldGFpbHMud2Vla051bWJlclxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRlTWFza1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL0RhdGVNYXNrL0RhdGVNYXNrLmpzIiwiaW1wb3J0IHsgZ2V0V2Vla1N0YXJ0QnlSZWdpb24sIGdldFdlZWtTdGFydEJ5TG9jYWxlIH0gZnJvbSAnLi9hcGkuanMnO1xuaW1wb3J0IGxhbmdSZWdpb25NYXAgZnJvbSAnLi9sYW5nUmVnaW9uTWFwLmpzJztcbmltcG9ydCByZWdpb25EYXlNYXAgZnJvbSAnLi9yZWdpb25EYXlNYXAuanMnO1xuXG5mdW5jdGlvbiBnZXRXZWVrU3RhcnRCeVJlZ2lvbiQxKHJlZ2lvbkNvZGUpIHtcbiAgICByZXR1cm4gZ2V0V2Vla1N0YXJ0QnlSZWdpb24ocmVnaW9uQ29kZSwgcmVnaW9uRGF5TWFwKTtcbn1cblxuZnVuY3Rpb24gZ2V0V2Vla1N0YXJ0QnlMb2NhbGUkMShsb2NhbGUpIHtcbiAgICByZXR1cm4gZ2V0V2Vla1N0YXJ0QnlMb2NhbGUobG9jYWxlLCBsYW5nUmVnaW9uTWFwLCByZWdpb25EYXlNYXApO1xufVxuXG5leHBvcnQgeyBnZXRXZWVrU3RhcnRCeVJlZ2lvbiQxIGFzIGdldFdlZWtTdGFydEJ5UmVnaW9uLCBnZXRXZWVrU3RhcnRCeUxvY2FsZSQxIGFzIGdldFdlZWtTdGFydEJ5TG9jYWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYWluLmpzLm1hcFxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvd2Vla3N0YXJ0L2Rpc3QvZXMtbW9kdWxlL21haW4uanNcbi8vIG1vZHVsZSBpZCA9IDE1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIiwiZnVuY3Rpb24gZ2V0V2Vla1N0YXJ0QnlSZWdpb24ocmVnaW9uQ29kZSwgcmVnaW9uRGF5TWFwKSB7XG4gICAgdmFyIGNvZGUgPSByZWdpb25EYXlNYXBbdHlwZW9mIHJlZ2lvbkNvZGUgPT09ICdzdHJpbmcnID8gcmVnaW9uQ29kZS50b1VwcGVyQ2FzZSgpIDogcmVnaW9uQ29kZV07XG4gICAgcmV0dXJuIHR5cGVvZiBjb2RlID09PSAnbnVtYmVyJyA/IGNvZGUgOiAxO1xufVxuXG5mdW5jdGlvbiBnZXRXZWVrU3RhcnRCeUxvY2FsZShsb2NhbGUsIGxhbmdSZWdpb25NYXAsIHJlZ2lvbkRheU1hcCkge1xuICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgdmFyIGRhdGEgPSBsb2NhbGUudG9Mb3dlckNhc2UoKS5zcGxpdCgvWy1fXS8pO1xuICAgICAgICB2YXIgbGFuZ3VhZ2UgPSBkYXRhWzBdO1xuICAgICAgICB2YXIgY291bnRyeTtcbiAgICAgICAgaWYgKGRhdGFbMV0gJiYgZGF0YVsxXS5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgICAgIGxhbmd1YWdlICs9IFwiX1wiICsgKGRhdGFbMV0pO1xuICAgICAgICAgICAgY291bnRyeSA9IGRhdGFbMl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb3VudHJ5ID0gZGF0YVsxXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvdW50cnkpIHtcbiAgICAgICAgICAgIGNvdW50cnkgPSBsYW5nUmVnaW9uTWFwW2xhbmd1YWdlXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY291bnRyeSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldFdlZWtTdGFydEJ5UmVnaW9uKGNvdW50cnkubWF0Y2goL15cXGQrJC8pID8gTnVtYmVyKGNvdW50cnkpIDogY291bnRyeSwgcmVnaW9uRGF5TWFwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gMTtcbn1cblxuZXhwb3J0IHsgZ2V0V2Vla1N0YXJ0QnlSZWdpb24sIGdldFdlZWtTdGFydEJ5TG9jYWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcGkuanMubWFwXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy93ZWVrc3RhcnQvZGlzdC9lcy1tb2R1bGUvYXBpLmpzXG4vLyBtb2R1bGUgaWQgPSAxNlxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsInZhciBsYW5nUmVnaW9uTWFwID0ge1xuICAgIGVuOiAnVVMnLFxuICAgIHpoOiAnQ04nLFxuICAgIHpoX2hhbnM6ICdDTicsXG4gICAgaGFuczogJ0NOJyxcbiAgICB3dXU6ICdDTicsXG4gICAgaHNuOiAnQ04nLFxuICAgIGhhazogJ0NOJyxcbiAgICBuYW46ICdDTicsXG4gICAgZ2FuOiAnQ04nLFxuICAgIGhpOiAnSU4nLFxuICAgIHRlOiAnSU4nLFxuICAgIG1yOiAnSU4nLFxuICAgIHRhOiAnSU4nLFxuICAgIGd1OiAnSU4nLFxuICAgIGtuOiAnSU4nLFxuICAgIG9yOiAnSU4nLFxuICAgIG1sOiAnSU4nLFxuICAgIHBhX2d1cnU6ICdJTicsXG4gICAgYmhvOiAnSU4nLFxuICAgIGF3YTogJ0lOJyxcbiAgICBhczogJ0lOJyxcbiAgICBtd3I6ICdJTicsXG4gICAgbWFpOiAnSU4nLFxuICAgIG1hZzogJ0lOJyxcbiAgICBiZ2M6ICdJTicsXG4gICAgaG5lOiAnSU4nLFxuICAgIGRjYzogJ0lOJyxcbiAgICBkejogJ0JUJyxcbiAgICB0bjogJ0JXJyxcbiAgICBhbTogJ0VUJyxcbiAgICBvbTogJ0VUJyxcbiAgICBxdWM6ICdHVCcsXG4gICAgaWQ6ICdJRCcsXG4gICAganY6ICdJRCcsXG4gICAgc3U6ICdJRCcsXG4gICAgbWFkOiAnSUQnLFxuICAgIG1zX2FyYWI6ICdJRCcsXG4gICAgZ2E6ICdJRScsXG4gICAgaGU6ICdJTCcsXG4gICAgamFtOiAnSk0nLFxuICAgIGphOiAnSlAnLFxuICAgIGttOiAnS0gnLFxuICAgIGtvOiAnS1InLFxuICAgIGxvOiAnTEEnLFxuICAgIG1oOiAnTUgnLFxuICAgIG15OiAnTU0nLFxuICAgIG10OiAnTVQnLFxuICAgIG5lOiAnTlAnLFxuICAgIGZpbDogJ1BIJyxcbiAgICBjZWI6ICdQSCcsXG4gICAgaWxvOiAnUEgnLFxuICAgIHVyOiAnUEsnLFxuICAgIHBhOiAnUEsnLFxuICAgIHBhX2FyYWI6ICdQSycsXG4gICAgYXJhYjogJ1BLJyxcbiAgICBsYWg6ICdQSycsXG4gICAgcHM6ICdQSycsXG4gICAgc2Q6ICdQSycsXG4gICAgc2RfYXJhYjogJ1BLJyxcbiAgICBza3I6ICdQSycsXG4gICAgZ246ICdQWScsXG4gICAgdGg6ICdUSCcsXG4gICAgdHRzOiAnVEgnLFxuICAgIGFlYjogJ1ROJyxcbiAgICB6aF9oYW50OiAnVFcnLFxuICAgIGhhbnQ6ICdUVycsXG4gICAgc206ICdXUycsXG4gICAgenU6ICdaQScsXG4gICAgc246ICdaVycsXG4gICAgYXJxOiAnRFonLFxuICAgIGFyOiAnRUcnLFxuICAgIGFyejogJ0VHJyxcbiAgICBmYTogJ0lSJyxcbiAgICBhel9hcmFiOiAnSVInLFxuICAgIGFyeTogJ01BJyxcbiAgICBibjogJ0JEJyxcbiAgICBya3Q6ICdCRCcsXG4gICAgZHY6ICdNVidcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxhbmdSZWdpb25NYXA7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYW5nUmVnaW9uTWFwLmpzLm1hcFxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9ub2RlX21vZHVsZXMvd2Vla3N0YXJ0L2Rpc3QvZXMtbW9kdWxlL2xhbmdSZWdpb25NYXAuanNcbi8vIG1vZHVsZSBpZCA9IDE3XG4vLyBtb2R1bGUgY2h1bmtzID0gMCAxIiwidmFyIHJlZ2lvbkRheU1hcCA9IHtcbiAgICBBRzogMCxcbiAgICBBVEc6IDAsXG4gICAgMjg6IDAsXG4gICAgQVI6IDAsXG4gICAgQVJHOiAwLFxuICAgIDMyOiAwLFxuICAgIEFTOiAwLFxuICAgIEFTTTogMCxcbiAgICAxNjogMCxcbiAgICBBVTogMCxcbiAgICBBVVM6IDAsXG4gICAgMzY6IDAsXG4gICAgQlI6IDAsXG4gICAgQlJBOiAwLFxuICAgIDc2OiAwLFxuICAgIEJTOiAwLFxuICAgIEJIUzogMCxcbiAgICA0NDogMCxcbiAgICBCVDogMCxcbiAgICBCVE46IDAsXG4gICAgNjQ6IDAsXG4gICAgQlc6IDAsXG4gICAgQldBOiAwLFxuICAgIDcyOiAwLFxuICAgIEJaOiAwLFxuICAgIEJMWjogMCxcbiAgICA4NDogMCxcbiAgICBDQTogMCxcbiAgICBDQU46IDAsXG4gICAgMTI0OiAwLFxuICAgIENOOiAwLFxuICAgIENITjogMCxcbiAgICAxNTY6IDAsXG4gICAgQ086IDAsXG4gICAgQ09MOiAwLFxuICAgIDE3MDogMCxcbiAgICBETTogMCxcbiAgICBETUE6IDAsXG4gICAgMjEyOiAwLFxuICAgIERPOiAwLFxuICAgIERPTTogMCxcbiAgICAyMTQ6IDAsXG4gICAgRVQ6IDAsXG4gICAgRVRIOiAwLFxuICAgIDIzMTogMCxcbiAgICBHVDogMCxcbiAgICBHVE06IDAsXG4gICAgMzIwOiAwLFxuICAgIEdVOiAwLFxuICAgIEdVTTogMCxcbiAgICAzMTY6IDAsXG4gICAgSEs6IDAsXG4gICAgSEtHOiAwLFxuICAgIDM0NDogMCxcbiAgICBITjogMCxcbiAgICBITkQ6IDAsXG4gICAgMzQwOiAwLFxuICAgIElEOiAwLFxuICAgIElETjogMCxcbiAgICAzNjA6IDAsXG4gICAgSUU6IDAsXG4gICAgSVJMOiAwLFxuICAgIDM3MjogMCxcbiAgICBJTDogMCxcbiAgICBJU1I6IDAsXG4gICAgMzc2OiAwLFxuICAgIElOOiAwLFxuICAgIElORDogMCxcbiAgICAzNTY6IDAsXG4gICAgSk06IDAsXG4gICAgSkFNOiAwLFxuICAgIDM4ODogMCxcbiAgICBKUDogMCxcbiAgICBKUE46IDAsXG4gICAgMzkyOiAwLFxuICAgIEtFOiAwLFxuICAgIEtFTjogMCxcbiAgICA0MDQ6IDAsXG4gICAgS0g6IDAsXG4gICAgS0hNOiAwLFxuICAgIDExNjogMCxcbiAgICBLUjogMCxcbiAgICBLT1I6IDAsXG4gICAgNDEwOiAwLFxuICAgIExBOiAwLFxuICAgIExBMDogMCxcbiAgICA0MTg6IDAsXG4gICAgTUg6IDAsXG4gICAgTUhMOiAwLFxuICAgIDU4NDogMCxcbiAgICBNTTogMCxcbiAgICBNTVI6IDAsXG4gICAgMTA0OiAwLFxuICAgIE1POiAwLFxuICAgIE1BQzogMCxcbiAgICA0NDY6IDAsXG4gICAgTVQ6IDAsXG4gICAgTUxUOiAwLFxuICAgIDQ3MDogMCxcbiAgICBNWDogMCxcbiAgICBNRVg6IDAsXG4gICAgNDg0OiAwLFxuICAgIE1aOiAwLFxuICAgIE1PWjogMCxcbiAgICA1MDg6IDAsXG4gICAgTkk6IDAsXG4gICAgTklDOiAwLFxuICAgIDU1ODogMCxcbiAgICBOUDogMCxcbiAgICBOUEw6IDAsXG4gICAgNTI0OiAwLFxuICAgIE5aOiAwLFxuICAgIE5aTDogMCxcbiAgICA1NTQ6IDAsXG4gICAgUEE6IDAsXG4gICAgUEFOOiAwLFxuICAgIDU5MTogMCxcbiAgICBQRTogMCxcbiAgICBQRVI6IDAsXG4gICAgNjA0OiAwLFxuICAgIFBIOiAwLFxuICAgIFBITDogMCxcbiAgICA2MDg6IDAsXG4gICAgUEs6IDAsXG4gICAgUEFLOiAwLFxuICAgIDU4NjogMCxcbiAgICBQUjogMCxcbiAgICBQUkk6IDAsXG4gICAgNjMwOiAwLFxuICAgIFBZOiAwLFxuICAgIFBSWTogMCxcbiAgICA2MDA6IDAsXG4gICAgU0E6IDAsXG4gICAgU0FVOiAwLFxuICAgIDY4MjogMCxcbiAgICBTRzogMCxcbiAgICBTR1A6IDAsXG4gICAgNzAyOiAwLFxuICAgIFNWOiAwLFxuICAgIFNMVjogMCxcbiAgICAyMjI6IDAsXG4gICAgVEg6IDAsXG4gICAgVEhBOiAwLFxuICAgIDc2NDogMCxcbiAgICBUTjogMCxcbiAgICBUVU46IDAsXG4gICAgNzg4OiAwLFxuICAgIFRUOiAwLFxuICAgIFRUTzogMCxcbiAgICA3ODA6IDAsXG4gICAgVFc6IDAsXG4gICAgVFdOOiAwLFxuICAgIDE1ODogMCxcbiAgICBVTTogMCxcbiAgICBVTUk6IDAsXG4gICAgNTgxOiAwLFxuICAgIFVTOiAwLFxuICAgIFVTQTogMCxcbiAgICA4NDA6IDAsXG4gICAgVkU6IDAsXG4gICAgVkVOOiAwLFxuICAgIDg2MjogMCxcbiAgICBWSTogMCxcbiAgICBWSVI6IDAsXG4gICAgODUwOiAwLFxuICAgIFdTOiAwLFxuICAgIFdTTTogMCxcbiAgICA4ODI6IDAsXG4gICAgWUU6IDAsXG4gICAgWUVNOiAwLFxuICAgIDg4NzogMCxcbiAgICBaQTogMCxcbiAgICBaQUY6IDAsXG4gICAgNzEwOiAwLFxuICAgIFpXOiAwLFxuICAgIFpXRTogMCxcbiAgICA3MTY6IDAsXG4gICAgQUU6IDYsXG4gICAgQVJFOiA2LFxuICAgIDc4NDogNixcbiAgICBBRjogNixcbiAgICBBRkc6IDYsXG4gICAgNDogNixcbiAgICBCSDogNixcbiAgICBCSFI6IDYsXG4gICAgNDg6IDYsXG4gICAgREo6IDYsXG4gICAgREpJOiA2LFxuICAgIDI2MjogNixcbiAgICBEWjogNixcbiAgICBEWkE6IDYsXG4gICAgMTI6IDYsXG4gICAgRUc6IDYsXG4gICAgRUdZOiA2LFxuICAgIDgxODogNixcbiAgICBJUTogNixcbiAgICBJUlE6IDYsXG4gICAgMzY4OiA2LFxuICAgIElSOiA2LFxuICAgIElSTjogNixcbiAgICAzNjQ6IDYsXG4gICAgSk86IDYsXG4gICAgSk9SOiA2LFxuICAgIDQwMDogNixcbiAgICBLVzogNixcbiAgICBLV1Q6IDYsXG4gICAgNDE0OiA2LFxuICAgIExZOiA2LFxuICAgIExCWTogNixcbiAgICA0MzQ6IDYsXG4gICAgTUE6IDYsXG4gICAgTUFSOiA2LFxuICAgIDUwNDogNixcbiAgICBPTTogNixcbiAgICBPTU46IDYsXG4gICAgNTEyOiA2LFxuICAgIFFBOiA2LFxuICAgIFFBVDogNixcbiAgICA2MzQ6IDYsXG4gICAgU0Q6IDYsXG4gICAgU0ROOiA2LFxuICAgIDcyOTogNixcbiAgICBTWTogNixcbiAgICBTWVI6IDYsXG4gICAgNzYwOiA2LFxuICAgIEJEOiA1LFxuICAgIEJHRDogNSxcbiAgICA1MDogNSxcbiAgICBNVjogNSxcbiAgICBNRFY6IDUsXG4gICAgNDYyOiA1XG59O1xuXG5leHBvcnQgZGVmYXVsdCByZWdpb25EYXlNYXA7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWdpb25EYXlNYXAuanMubWFwXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL25vZGVfbW9kdWxlcy93ZWVrc3RhcnQvZGlzdC9lcy1tb2R1bGUvcmVnaW9uRGF5TWFwLmpzXG4vLyBtb2R1bGUgaWQgPSAxOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5jb25zdCBpc051bWJlclJlZ2V4ID0gL15cXGQrJC9cbmNvbnN0IGlzV2hpdGVzcGFjZVJlZ2V4ID0gL1xccy9cbmNvbnN0IHB1bmN0dWF0aW9uTGlzdCA9ICchXCIjJCUmXFwnKCkqKywtLi86Ozw9Pj9AW11eX2B7fH1+J1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgaW4gbG93ZXIgY2FzZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqL1xuY29uc3QgaXNMb3dlckNhc2UgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyID09IHN0ci50b0xvd2VyQ2FzZSgpICYmIHN0ciAhPSBzdHIudG9VcHBlckNhc2UoKVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiBzdHJpbmcgaXMgaW4gdXBwZXIgY2FzZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqL1xuY29uc3QgaXNVcHBlckNhc2UgPSBzdHIgPT4ge1xuICByZXR1cm4gc3RyID09IHN0ci50b1VwcGVyQ2FzZSgpICYmIHN0ciAhPSBzdHIudG9Mb3dlckNhc2UoKVxufVxuXG5jb25zdCBwYXNzT3JUaHJvd0Vycm9yID0gKGxvb3NlLCByZXQsIGksIHN0cikgPT4ge1xuICBpZiAoIWxvb3NlKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQXQoaSlcbiAgICBjb25zdCBwb3MgPSBpICsgMVxuICAgIHRocm93IHtcbiAgICAgIG5hbWU6ICdTdHJpbmdNYXNrRXJyb3InLFxuICAgICAgbWVzc2FnZTogYFN0cmluZ01hc2tFcnJvcjogZXJyb3IgYXBwbHlpbmcgbWFzayBhdCBwb3NpdGlvbiBcIiR7cG9zfVwiICwgY2hhciBcIiR7Y2hhcn1cImAsXG4gICAgICBwb3MsXG4gICAgICBjaGFyXG4gICAgfVxuICB9IGVsc2UgcmV0W2ldID0gJyAnXG59XG5cbi8qKlxuICogTnVtYmVyTWFza1xuICpcbiAqIEEgamF2YXNjcmlwdCBpbXBsZW1lbnRhdGlvbiBmb3IgQkJqIG51bWJlcnMgbWFza2luZ1xuICpcbiAqIEBhdXRob3IgSHl5YW4gQWJvIEZha2hlciA8aGFib2Zha2hlckBiYXNpcy5jb20+XG4gKi9cbmNsYXNzIFN0cmluZ01hc2sge1xuICAvKipcbiAgICogTWFzayB0aGUgZ2l2ZW4gc3RyaW5nIHdpdGggdGhlIGdpdmVuIG1hc2sgYWNjb3JkaW5nIHRvIEJCaiBydWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gc3RyIHRoZSBzdHJpbmcgdG8gbWFza1xuICAgKiBAcGFyYW0ge1N0cmluZ30gbWFzayB0aGUgbWFzayB0byB1c2UgZm9yIGZvcm1hdHRpbmdcbiAgICogQHBhcmFtIHtCb29sZWFufSBbbG9vc2U9dHJ1ZV0gd2hlbiB0cnVlICwgZXJyb3JzIHdpbGwgYmUgaWdub3JlZCBhbmQgdGhlIG1ldGhvZCB3aWxsIHRyeSBhdCBhcHBseSB0aGUgbWFza1xuICAgKiAgICAgICAgICAgICAgICBhbnl3YXkgLCBvdGhlcndpc2UgaXQgd2lsbCBzdG9wIGF0IGZpcnN0IGVycm9yIGFuZCB0aHJvdyBpdC5cbiAgICogXG4gICAqIEB0aHJvd3Mge01hc2tJc1Rvb1Nob3J0RXJyb3J9XG4gICAqIEB0aHJvd3Mge1N0cmluZ01hc2tFcnJvcn1cbiAgICogQHRocm93cyB7TWFza0Vycm9yfVxuICAgKiBcbiAgICogQHJldHVybnMge1N0cmluZ30gdGhlIG1hc2tlZCBzdHJpbmdcbiAgICovXG4gIHN0YXRpYyBtYXNrKHN0ciwgbWFzaywgbG9vc2UgPSB0cnVlKSB7XG4gICAgc3RyID0gU3RyaW5nKHN0cilcbiAgICBtYXNrID0gU3RyaW5nKG1hc2spXG4gICAgY29uc3QgbWFza0xlbiA9IG1hc2subGVuZ3RoXG4gICAgY29uc3Qgc3RyTGVuID0gc3RyLmxlbmd0aFxuXG4gICAgaWYgKHN0ckxlbiA+IG1hc2tMZW4pIHtcbiAgICAgIGlmIChsb29zZSkgcmV0dXJuIHN0clxuICAgICAgLy8gZnJpZW5kbHkgc2lsZW50IGZhaWxcbiAgICAgIGVsc2VcbiAgICAgICAgdGhyb3cge1xuICAgICAgICAgIG5hbWU6ICdNYXNrSXNUb29TaG9ydEVycm9yJyxcbiAgICAgICAgICBtZXNzYWdlOiBgTWFza0lzVG9vU2hvcnRFcnJvcjogTWFzayBpcyBzaG9ydGVyIHRoYW4gdGhlIHBhc3NlZCBzdHJpbmdgXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXQgPSBuZXcgQXJyYXkobWFza0xlbilcbiAgICBsZXQgcG9zID0gMCAvLyB0byBrZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBzdHJcbiAgICBsZXQgbWFza0J5dGUgPSAnJ1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrTGVuOyBpKyspIHtcbiAgICAgIG1hc2tCeXRlID0gbWFzay5jaGFyQXQoaSlcbiAgICAgIHN3aXRjaCAobWFza0J5dGUpIHtcbiAgICAgICAgY2FzZSAnWCc6IC8vIG1hdGNoIGFueSBjaGFyYWN0ZXJcbiAgICAgICAgICByZXRbaV0gPSBwb3MgPCBzdHJMZW4gPyBzdHIuY2hhckF0KHBvcykgOiAnICdcbiAgICAgICAgICArK3Bvc1xuICAgICAgICAgIGJyZWFrXG5cbiAgICAgICAgY2FzZSAnQSc6IC8vIG1hdGNoIGxldHRlcjsgZm9yY2UgdXBwZXIgY2FzZVxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChpc1VwcGVyQ2FzZShieXRlKSkgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNMb3dlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGUudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgIGNhc2UgJ2EnOiAvLyBtYXRjaCBsZXR0ZXJcbiAgICAgICAgICBpZiAocG9zIDwgc3RyTGVuKSB7XG4gICAgICAgICAgICBjb25zdCBieXRlID0gc3RyLmNoYXJBdChwb3MpXG4gICAgICAgICAgICBpZiAoaXNVcHBlckNhc2UoYnl0ZSkgfHwgaXNMb3dlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGVcbiAgICAgICAgICAgIGVsc2UgcGFzc09yVGhyb3dFcnJvcihsb29zZSwgcmV0LCBpLCBzdHIpXG4gICAgICAgICAgfSBlbHNlIHJldFtpXSA9ICcgJ1xuICAgICAgICAgICsrcG9zXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnMCc6IC8vIG1hdGNoIGRpZ2l0XG4gICAgICAgICAgaWYgKHBvcyA8IHN0ckxlbikge1xuICAgICAgICAgICAgY29uc3QgYnl0ZSA9IHN0ci5jaGFyQXQocG9zKVxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyUmVnZXgudGVzdChieXRlKSkgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdaJzogLy8gbWF0Y2ggbGV0dGVyIG9yIGRpZ2l0OyBmb3JjZSB1cHBlciBjYXNlXG4gICAgICAgICAgaWYgKHBvcyA8IHN0ckxlbikge1xuICAgICAgICAgICAgY29uc3QgYnl0ZSA9IHN0ci5jaGFyQXQocG9zKVxuICAgICAgICAgICAgaWYgKGlzVXBwZXJDYXNlKGJ5dGUpIHx8IGlzTnVtYmVyUmVnZXgudGVzdChieXRlKSkgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNMb3dlckNhc2UoYnl0ZSkpIHJldFtpXSA9IGJ5dGUudG9VcHBlckNhc2UoKVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICd6JzogLy8gbWF0Y2ggbGV0dGVyIG9yIGRpZ2l0XG4gICAgICAgICAgaWYgKHBvcyA8IHN0ckxlbikge1xuICAgICAgICAgICAgY29uc3QgYnl0ZSA9IHN0ci5jaGFyQXQocG9zKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBpc1VwcGVyQ2FzZShieXRlKSB8fFxuICAgICAgICAgICAgICBpc0xvd2VyQ2FzZShieXRlKSB8fFxuICAgICAgICAgICAgICBpc051bWJlclJlZ2V4LnRlc3QoYnl0ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgcmV0W2ldID0gYnl0ZVxuICAgICAgICAgICAgZWxzZSBwYXNzT3JUaHJvd0Vycm9yKGxvb3NlLCByZXQsIGksIHN0cilcbiAgICAgICAgICB9IGVsc2UgcmV0W2ldID0gJyAnXG4gICAgICAgICAgKytwb3NcbiAgICAgICAgICBicmVha1xuXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnVSc6IC8vIG1hdGNoIGxldHRlciAoZm9yY2UgdXBwZXIgY2FzZSksIGRpZ2l0LCB3aGl0ZXNwYWNlIG9yIHB1bmN0dWF0aW9uLlxuICAgICAgICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IGJ5dGUgPSBzdHIuY2hhckF0KHBvcylcbiAgICAgICAgICAgIGlmIChpc0xvd2VyQ2FzZShieXRlKSkgcmV0W2ldID0gYnl0ZS50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgaXNVcHBlckNhc2UoYnl0ZSkgfHxcbiAgICAgICAgICAgICAgaXNOdW1iZXJSZWdleC50ZXN0KGJ5dGUpIHx8XG4gICAgICAgICAgICAgIGlzV2hpdGVzcGFjZVJlZ2V4LnRlc3QoYnl0ZSkgfHxcbiAgICAgICAgICAgICAgcHVuY3R1YXRpb25MaXN0LmluZGV4T2YoYnl0ZSkgPiAtMVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXRbaV0gPSBieXRlXG4gICAgICAgICAgICBlbHNlIHBhc3NPclRocm93RXJyb3IobG9vc2UsIHJldCwgaSwgc3RyKVxuICAgICAgICAgIH0gZWxzZSByZXRbaV0gPSAnICdcbiAgICAgICAgICArK3Bvc1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0W2ldID0gbWFza0J5dGVcbiAgICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwb3MgPCBzdHJMZW4pIHtcbiAgICAgIGlmICghbG9vc2UpIHtcbiAgICAgICAgdGhyb3cgeyBuYW1lOiAnTWFza0Vycm9yJywgbWVzc2FnZTogJ01hc2sgY2Fubm90IGJlIGFwcGxpZWQnIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmV0LmpvaW4oJycpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3RyaW5nTWFza1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL1N0cmluZ01hc2svU3RyaW5nTWFzay5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgVHlwZXMgZnJvbSAnLi9UeXBlcydcblxuZXhwb3J0IGRlZmF1bHQgVHlwZXNcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9UeXBlcy9pbmRleC5qcyIsIi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBiYmotbWFza3MgbGliLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuICpcbiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4gKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiAqL1xuXG5pbXBvcnQgTnVtYmVyTWFzayBmcm9tICcuLi9OdW1iZXJNYXNrJ1xuaW1wb3J0IERhdGVNYXNrIGZyb20gJy4uL0RhdGVNYXNrJ1xuaW1wb3J0IFN0cmluZ01hc2sgZnJvbSAnLi4vU3RyaW5nTWFzaydcblxuLyoqXG4gKiBUeXBlc1xuICpcbiAqIEJCaiBtYXNrcyBmYWN0b3J5XG4gKlxuICogQGF1dGhvciBIeXlhbiBBYm8gRmFraGVyIDxoYWJvZmFraGVyQGJhc2lzLmNvbT5cbiAqL1xuY2xhc3MgVHlwZXMge1xuICAvKipcbiAgICogTWFzayB0aGUgZ2l2ZW4gbnVtYmVyIHdpdGggdGhlIGdpdmVuIG1hc2sgYWNjb3JkaW5nIHRvIEJCaiBydWxlc1xuICAgKlxuICAgKiBAcGFyYW0ge051bWJlcn0gbnVtYmVyIHRoZSBudW1iZXIgdG8gZm9ybWF0XG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtYXNrIHRoZSBtYXNrIHRvIHVzZSBmb3IgZm9ybWF0dGluZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gW2dyb3VwaW5nU2VwYXJhdG9yPSxdIC0gYSBjaGFyIHdoaWNoIHdpbGwgYmUgdXNlZCBhcyBhIGdyb3VwaW5nIHNlcGFyYXRvclxuICAgKiBAcGFyYW0ge1N0cmluZ30gW2RlY2ltYWxTZXBhcmF0b3I9Ll0gIC0gYSBjaGFyIHdoaWNoIHdpbGwgYmUgdXNlZCBhcyBhIGRlY2ltYWwgc2VwYXJhdG9yXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2ZvcmNlVHJhaWxpbmdaZXJvcz1mYWxzZV0gLSBBZmZlY3RzIHRoZSBvdXRwdXQgYnkgc3dpdGNoaW5nIHRoZSB3YXkgYSBtYXNrIHdpdGggXCIjXCIgY2hhcmFjdGVycyBpbiB0aGUgdHJhaWxpbmcgcG9zaXRpb25zIGlzIGZpbGxlZC5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUsIHRoZSBmdW5jdGlvbiBgTnVtYmVyTWFzay5tYXNrKC4xMDpcIiMuIyNcIilgIHJldHVybnMgYCAuMTBgIGluc3RlYWQgb2YgYCAuMSBgXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2xvb3NlPXRydWVdIHdoZW4gdHJ1ZSAsIGVycm9ycyB3aWxsIGJlIGlnbm9yZWQgYW5kIHRoZSBtZXRob2Qgd2lsbCB0cnkgYXQgYXBwbHkgdGhlIG1hc2tcbiAgICogICAgICAgICAgICAgICAgYW55d2F5ICwgb3RoZXJ3aXNlIGl0IHdpbGwgc3RvcCBhdCBmaXJzdCBlcnJvciBhbmQgdGhyb3cgaXQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IHRoZSBtYXNrZWQgbnVtYmVyXG4gICAqL1xuICBzdGF0aWMgbnVtYmVyKFxuICAgIG51bWJlcixcbiAgICBtYXNrLFxuICAgIGdyb3VwaW5nU2VwYXJhdG9yID0gJywnLFxuICAgIGRlY2ltYWxTZXBhcmF0b3IgPSAnLicsXG4gICAgZm9yY2VUcmFpbGluZ1plcm9zID0gZmFsc2UsXG4gICAgbG9vc2UgPSB0cnVlXG4gICkge1xuICAgIHJldHVybiBOdW1iZXJNYXNrLm1hc2soXG4gICAgICBudW1iZXIsXG4gICAgICBtYXNrLFxuICAgICAgZ3JvdXBpbmdTZXBhcmF0b3IsXG4gICAgICBkZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgZm9yY2VUcmFpbGluZ1plcm9zLFxuICAgICAgbG9vc2VcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogTWFzayBhIGRhdGUgYWNjb3JkaW5nIHRvIGJiaiBtYXNraW5nIHJ1bGVzXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBkYXRlIGRhdGUgYXMgYSBzdHJpbmdcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgbWFzayBhcyBhIHN0cmluZ1xuICAgKiBAcGFyYW0ge1N0cmluZ30gW2xvY2FsZT1Ccm93c2VyJ3MgbG9jYWxlXSB0aGUgbGFuZ3VhZ2UgdG8gdXNlIGV4KGVuLVVTKS4gZGVmYXVsdCBpcyB0byB0aGUgc3lzdGVtIGxhbmd1YWdlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBbdGltZXpvbmU9U3lzdGVtIHRpbWV6b25lXSB0aGUgdGltZSB6b25lIGRlc2NyaXB0b3IgKGUuZy4gQW1lcmljYS9Mb3NfQW5nZWxlcykuIGRlZmF1bHQgdG8gdGhlIHN5c3RlbVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXpvbmVcbiAgICpcbiAgICogQHJldHVybiB7U3RyaW5nfSBudW1iZXIgbWFza2VkIHdpdGggdGhlIGdpdmVuIG1hc2tcbiAgICovXG4gIHN0YXRpYyBkYXRlKGRhdGUsIG1hc2ssIGxvY2FsZSwgdGltZXpvbmUpIHtcbiAgICByZXR1cm4gRGF0ZU1hc2subWFzayhkYXRlLCBtYXNrLCBsb2NhbGUsIHRpbWV6b25lKVxuICB9XG5cbiAgLyoqXG4gICAqIE1hc2sgdGhlIGdpdmVuIHN0cmluZyB3aXRoIHRoZSBnaXZlbiBtYXNrIGFjY29yZGluZyB0byBCQmogcnVsZXNcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHN0ciB0aGUgc3RyaW5nIHRvIG1hc2tcbiAgICogQHBhcmFtIHtTdHJpbmd9IG1hc2sgdGhlIG1hc2sgdG8gdXNlIGZvciBmb3JtYXR0aW5nXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2xvb3NlPXRydWVdIHdoZW4gdHJ1ZSAsIGVycm9ycyB3aWxsIGJlIGlnbm9yZWQgYW5kIHRoZSBtZXRob2Qgd2lsbCB0cnkgYXQgYXBwbHkgdGhlIG1hc2tcbiAgICogICAgICAgICAgICAgICAgYW55d2F5ICwgb3RoZXJ3aXNlIGl0IHdpbGwgc3RvcCBhdCBmaXJzdCBlcnJvciBhbmQgdGhyb3cgaXQuXG4gICAqXG4gICAqIEB0aHJvd3Mge01hc2tJc1Rvb1Nob3J0RXJyb3J9XG4gICAqIEB0aHJvd3Mge1N0cmluZ01hc2tFcnJvcn1cbiAgICogQHRocm93cyB7TWFza0Vycm9yfVxuICAgKlxuICAgKiBAcmV0dXJucyB7U3RyaW5nfSB0aGUgbWFza2VkIHN0cmluZ1xuICAgKi9cbiAgc3RhdGljIHN0cmluZyhzdHIsIG1hc2ssIGxvb3NlID0gdHJ1ZSkge1xuICAgIHJldHVybiBTdHJpbmdNYXNrLm1hc2soc3RyLCBtYXNrLCBsb29zZSlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBUeXBlc1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vc3JjL1R5cGVzL1R5cGVzLmpzIiwiLypcbiAqIEpTUyB2MC42IC0gSmF2YVNjcmlwdCBTdHlsZXNoZWV0c1xuICogaHR0cHM6Ly9naXRodWIuY29tL0JveDkvanNzXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDExLCBEYXZpZCBUYW5nXG4gKiBNSVQgTGljZW5zZWQgKGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwKVxuICovXG52YXIganNzID0gKGZ1bmN0aW9uKCkge1xuICAgIHZhciBhZGpTZWxBdHRyUmVnZXggPSAvKCg/OlxcLnwjKVteXFwuXFxzI10rKSgoPzpcXC58IylbXlxcLlxccyNdKykvZztcbiAgICB2YXIgZG91YmxlQ29sb25Qc2V1ZG9FbFJlZ2V4ID0gLyg6OikoYmVmb3JlfGFmdGVyfGZpcnN0LWxpbmV8Zmlyc3QtbGV0dGVyfHNlbGVjdGlvbikvO1xuICAgIHZhciBzaW5nbGVDb2xvblBzZXVkb0VsUmVnZXggPSAvKFteOl0pKDopKGJlZm9yZXxhZnRlcnxmaXJzdC1saW5lfGZpcnN0LWxldHRlcnxzZWxlY3Rpb24pLztcbiAgICB2YXIgc2luZ2xlQ29sb25Gb3JQc2V1ZG9FbGVtZW50czsgLy8gZmxhZyBmb3Igb2xkZXIgYnJvd3NlcnNcblxuICAgIGZ1bmN0aW9uIGdldFNlbGVjdG9yc0FuZFJ1bGVzKHNoZWV0KSB7XG4gICAgICAgIHZhciBydWxlcyA9IHNoZWV0LmNzc1J1bGVzIHx8IHNoZWV0LnJ1bGVzIHx8IFtdO1xuICAgICAgICB2YXIgcmVzdWx0cyA9IHt9O1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAvLyBPbGRlciBicm93c2VycyBhbmQgRkYgcmVwb3J0IHBzZXVkbyBlbGVtZW50IHNlbGVjdG9ycyBpbiBhbiBvdXRkYXRlZCBmb3JtYXRcbiAgICAgICAgICAgIHZhciBzZWxlY3RvclRleHQgPSB0b0RvdWJsZUNvbG9uUHNldWRvRWxlbWVudHMocnVsZXNbaV0uc2VsZWN0b3JUZXh0KTtcbiAgICAgICAgICAgIGlmICghcmVzdWx0c1tzZWxlY3RvclRleHRdKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0c1tzZWxlY3RvclRleHRdID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRzW3NlbGVjdG9yVGV4dF0ucHVzaCh7XG4gICAgICAgICAgICAgICAgc2hlZXQ6IHNoZWV0LFxuICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiBydWxlc1tpXS5zdHlsZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UnVsZXMoc2hlZXQsIHNlbGVjdG9yKSB7XG4gICAgICAgIHZhciBydWxlcyA9IHNoZWV0LmNzc1J1bGVzIHx8IHNoZWV0LnJ1bGVzIHx8IFtdO1xuICAgICAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgICAgICAvLyBCcm93c2VycyByZXBvcnQgc2VsZWN0b3JzIGluIGxvd2VyY2FzZVxuICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9yLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBzZWxlY3RvclRleHQgPSBydWxlc1tpXS5zZWxlY3RvclRleHQ7XG4gICAgICAgICAgICAvLyBOb3RlIC0gY2VydGFpbiBydWxlcyAoZS5nLiBAcnVsZXMpIGRvbid0IGhhdmUgc2VsZWN0b3JUZXh0XG4gICAgICAgICAgICBpZiAoc2VsZWN0b3JUZXh0ICYmIChzZWxlY3RvclRleHQgPT0gc2VsZWN0b3IgfHwgc2VsZWN0b3JUZXh0ID09IHN3YXBBZGpTZWxBdHRyKHNlbGVjdG9yKSB8fCBzZWxlY3RvclRleHQgPT0gc3dhcFBzZXVkb0VsU3ludGF4KHNlbGVjdG9yKSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBzaGVldDogc2hlZXQsXG4gICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogcnVsZXNbaV0uc3R5bGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRSdWxlKHNoZWV0LCBzZWxlY3Rvcikge1xuICAgICAgICB2YXIgcnVsZXMgPSBzaGVldC5jc3NSdWxlcyB8fCBzaGVldC5ydWxlcyB8fCBbXTtcbiAgICAgICAgdmFyIGluZGV4ID0gcnVsZXMubGVuZ3RoO1xuICAgICAgICB2YXIgcHNldWRvRWxlbWVudFJ1bGUgPSBhZGRQc2V1ZG9FbGVtZW50UnVsZShzaGVldCwgc2VsZWN0b3IsIHJ1bGVzLCBpbmRleCk7XG5cbiAgICAgICAgaWYgKCFwc2V1ZG9FbGVtZW50UnVsZSkge1xuICAgICAgICAgICAgYWRkUnVsZVRvU2hlZXQoc2hlZXQsIHNlbGVjdG9yLCBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaGVldDogc2hlZXQsXG4gICAgICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgICAgICBzdHlsZTogcnVsZXNbaW5kZXhdLnN0eWxlXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGFkZFJ1bGVUb1NoZWV0KHNoZWV0LCBzZWxlY3RvciwgaW5kZXgpIHtcbiAgICAgICAgaWYgKHNoZWV0Lmluc2VydFJ1bGUpIHtcbiAgICAgICAgICAgIHNoZWV0Lmluc2VydFJ1bGUoc2VsZWN0b3IgKyAnIHsgfScsIGluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNoZWV0LmFkZFJ1bGUoc2VsZWN0b3IsIG51bGwsIGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZXMgc2luZ2xlIGNvbG9uIHN5bnRheCBmb3Igb2xkZXIgYnJvd3NlcnMgYW5kIGJ1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD05NDk2NTFcbiAgICBmdW5jdGlvbiBhZGRQc2V1ZG9FbGVtZW50UnVsZShzaGVldCwgc2VsZWN0b3IsIHJ1bGVzLCBpbmRleCkge1xuICAgICAgICB2YXIgZG91YmxlQ29sb25TZWxlY3RvcjtcbiAgICAgICAgdmFyIHNpbmdsZUNvbG9uU2VsZWN0b3I7XG5cbiAgICAgICAgaWYgKGRvdWJsZUNvbG9uUHNldWRvRWxSZWdleC5leGVjKHNlbGVjdG9yKSkge1xuICAgICAgICAgICAgZG91YmxlQ29sb25TZWxlY3RvciA9IHNlbGVjdG9yO1xuICAgICAgICAgICAgc2luZ2xlQ29sb25TZWxlY3RvciA9IHRvU2luZ2xlQ29sb25Qc2V1ZG9FbGVtZW50cyhzZWxlY3Rvcik7XG4gICAgICAgIH0gZWxzZSBpZiAoc2luZ2xlQ29sb25Qc2V1ZG9FbFJlZ2V4LmV4ZWMoc2VsZWN0b3IpKSB7XG4gICAgICAgICAgICBkb3VibGVDb2xvblNlbGVjdG9yID0gdG9Eb3VibGVDb2xvblBzZXVkb0VsZW1lbnRzKHNlbGVjdG9yKTtcbiAgICAgICAgICAgIHNpbmdsZUNvbG9uU2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gTm90IGRlYWxpbmcgd2l0aCBhIHBzZXVkbyBlbGVtZW50XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXNpbmdsZUNvbG9uRm9yUHNldWRvRWxlbWVudHMpIHtcbiAgICAgICAgICAgIC8vIEFzc3VtZSBtb2Rlcm4gYnJvd3NlciBhbmQgdGhlbiBjaGVjayBpZiBzdWNjZXNzZnVsXG4gICAgICAgICAgICBhZGRSdWxlVG9TaGVldChzaGVldCwgZG91YmxlQ29sb25TZWxlY3RvciwgaW5kZXgpO1xuICAgICAgICAgICAgaWYgKHJ1bGVzLmxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgICAgICAgICAgIHNpbmdsZUNvbG9uRm9yUHNldWRvRWxlbWVudHMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzaW5nbGVDb2xvbkZvclBzZXVkb0VsZW1lbnRzKSB7XG4gICAgICAgICAgICBhZGRSdWxlVG9TaGVldChzaGVldCwgc2luZ2xlQ29sb25TZWxlY3RvciwgaW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9Eb3VibGVDb2xvblBzZXVkb0VsZW1lbnRzKHNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiBzZWxlY3Rvci5yZXBsYWNlKHNpbmdsZUNvbG9uUHNldWRvRWxSZWdleCwgZnVuY3Rpb24gKG1hdGNoLCBzdWJtYXRjaDEsIHN1Ym1hdGNoMiwgc3VibWF0Y2gzKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VibWF0Y2gxICsgJzo6JyArIHN1Ym1hdGNoMztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9TaW5nbGVDb2xvblBzZXVkb0VsZW1lbnRzKHNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiBzZWxlY3Rvci5yZXBsYWNlKGRvdWJsZUNvbG9uUHNldWRvRWxSZWdleCwgZnVuY3Rpb24obWF0Y2gsIHN1Ym1hdGNoMSwgc3VibWF0Y2gyKSB7XG4gICAgICAgICAgICByZXR1cm4gJzonICsgc3VibWF0Y2gyO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZVJ1bGUocnVsZSkge1xuICAgICAgICB2YXIgc2hlZXQgPSBydWxlLnNoZWV0O1xuICAgICAgICBpZiAoc2hlZXQuZGVsZXRlUnVsZSkge1xuICAgICAgICAgICAgc2hlZXQuZGVsZXRlUnVsZShydWxlLmluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChzaGVldC5yZW1vdmVSdWxlKSB7XG4gICAgICAgICAgICBzaGVldC5yZW1vdmVSdWxlKHJ1bGUuaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0ZW5kKGRlc3QsIHNyYykge1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc3JjKSB7XG4gICAgICAgICAgICBpZiAoIXNyYy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgZGVzdFtrZXldID0gc3JjW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWdncmVnYXRlU3R5bGVzKHJ1bGVzKSB7XG4gICAgICAgIHZhciBhZ2dyZWdhdGUgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZXh0ZW5kKGFnZ3JlZ2F0ZSwgZGVjbGFyZWRQcm9wZXJ0aWVzKHJ1bGVzW2ldLnN0eWxlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFnZ3JlZ2F0ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZWNsYXJlZFByb3BlcnRpZXMoc3R5bGUpIHtcbiAgICAgICAgdmFyIGRlY2xhcmVkID0ge307XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGRlY2xhcmVkW3N0eWxlW2ldXSA9IHN0eWxlW3RvQ2FtZWxDYXNlKHN0eWxlW2ldKV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlY2xhcmVkO1xuICAgIH1cblxuICAgIC8vIElFOSBzdG9yZXMgcnVsZXMgd2l0aCBhdHRyaWJ1dGVzIChjbGFzc2VzIG9yIElEJ3MpIGFkamFjZW50IGluIHRoZSBvcHBvc2l0ZSBvcmRlciBhcyBkZWZpbmVkXG4gICAgLy8gY2F1c2luZyB0aGVtIHRvIG5vdCBiZSBmb3VuZCwgc28gdGhpcyBtZXRob2Qgc3dhcHMgWyN8Ll1zZWwxWyN8Ll1zZWwyIHRvIGJlY29tZSBbI3wuXXNlbDJbI3wuXXNlbDFcbiAgICBmdW5jdGlvbiBzd2FwQWRqU2VsQXR0cihzZWxlY3Rvcikge1xuICAgICAgICB2YXIgc3dhcCA9ICcnO1xuICAgICAgICB2YXIgbGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgIFxuICAgICAgICB3aGlsZSAoKG1hdGNoID0gYWRqU2VsQXR0clJlZ2V4LmV4ZWMoc2VsZWN0b3IpKSAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2hbMF0gPT09ICcnKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgc3dhcCArPSBzZWxlY3Rvci5zdWJzdHJpbmcobGFzdEluZGV4LCBtYXRjaC5pbmRleCk7XG4gICAgICAgICAgICBzd2FwICs9IHNlbGVjdG9yLnN1YnN0cihtYXRjaC5pbmRleCArIG1hdGNoWzFdLmxlbmd0aCwgbWF0Y2hbMl0ubGVuZ3RoKTtcbiAgICAgICAgICAgIHN3YXAgKz0gc2VsZWN0b3Iuc3Vic3RyKG1hdGNoLmluZGV4LCBtYXRjaFsxXS5sZW5ndGgpO1xuICAgICAgICAgICAgbGFzdEluZGV4ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgc3dhcCArPSBzZWxlY3Rvci5zdWJzdHIobGFzdEluZGV4KTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBzd2FwO1xuICAgIH07XG5cbiAgICAvLyBGRiBhbmQgb2xkZXIgYnJvd3NlcnMgc3RvcmUgcnVsZXMgd2l0aCBwc2V1ZG8gZWxlbWVudHMgdXNpbmcgc2luZ2xlLWNvbG9uIHN5bnRheFxuICAgIGZ1bmN0aW9uIHN3YXBQc2V1ZG9FbFN5bnRheChzZWxlY3Rvcikge1xuICAgICAgICBpZiAoZG91YmxlQ29sb25Qc2V1ZG9FbFJlZ2V4LmV4ZWMoc2VsZWN0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9TaW5nbGVDb2xvblBzZXVkb0VsZW1lbnRzKHNlbGVjdG9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0b3I7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0U3R5bGVQcm9wZXJ0aWVzKHJ1bGUsIHByb3BlcnRpZXMpIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IHByb3BlcnRpZXNba2V5XTtcbiAgICAgICAgICAgIHZhciBpbXBvcnRhbnRJbmRleCA9IHZhbHVlLmluZGV4T2YoJyAhaW1wb3J0YW50Jyk7XG5cbiAgICAgICAgICAgIC8vIE1vZGVybiBicm93c2VycyBzZWVtIHRvIGhhbmRsZSBvdmVycmlkZXMgZmluZSwgYnV0IElFOSBkb2Vzbid0XG4gICAgICAgICAgICBydWxlLnN0eWxlLnJlbW92ZVByb3BlcnR5KGtleSk7IFxuICAgICAgICAgICAgaWYgKGltcG9ydGFudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgIHJ1bGUuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCB2YWx1ZS5zdWJzdHIoMCwgaW1wb3J0YW50SW5kZXgpLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJ1bGUuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0NhbWVsQ2FzZShzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8tKFthLXpdKS9nLCBmdW5jdGlvbiAobWF0Y2gsIHN1Ym1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VibWF0Y2gudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtQ2FtZWxDYXNlZFByb3BlcnR5TmFtZXMob2xkUHJvcHMpIHtcbiAgICAgICAgdmFyIG5ld1Byb3BzID0ge307XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBvbGRQcm9wcykge1xuICAgICAgICAgICAgbmV3UHJvcHNbdW5DYW1lbENhc2Uoa2V5KV0gPSBvbGRQcm9wc1trZXldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdQcm9wcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1bkNhbWVsQ2FzZShzdHIpIHtcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW0EtWl0pL2csIGZ1bmN0aW9uKG1hdGNoLCBzdWJtYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuICctJyArIHN1Ym1hdGNoLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciBKc3MgPSBmdW5jdGlvbihkb2MpIHtcbiAgICAgICAgdGhpcy5kb2MgPSBkb2M7XG4gICAgICAgIHRoaXMuaGVhZCA9IHRoaXMuZG9jLmhlYWQgfHwgdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICAgICAgdGhpcy5zaGVldHMgPSB0aGlzLmRvYy5zdHlsZVNoZWV0cyB8fCBbXTtcbiAgICB9O1xuXG4gICAgSnNzLnByb3RvdHlwZSA9IHtcbiAgICAgICAgLy8gUmV0dXJucyBKU1MgcnVsZXMgKHNlbGVjdG9yIGlzIG9wdGlvbmFsKVxuICAgICAgICBnZXQ6IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGVmYXVsdFNoZWV0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFnZ3JlZ2F0ZVN0eWxlcyhnZXRSdWxlcyh0aGlzLmRlZmF1bHRTaGVldCwgc2VsZWN0b3IpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBydWxlcyA9IGdldFNlbGVjdG9yc0FuZFJ1bGVzKHRoaXMuZGVmYXVsdFNoZWV0KTtcbiAgICAgICAgICAgIGZvciAoc2VsZWN0b3IgaW4gcnVsZXMpIHtcbiAgICAgICAgICAgICAgICBydWxlc1tzZWxlY3Rvcl0gPSBhZ2dyZWdhdGVTdHlsZXMocnVsZXNbc2VsZWN0b3JdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBydWxlcztcbiAgICAgICAgfSxcbiAgICAgICAgLy8gUmV0dXJucyBhbGwgcnVsZXMgKHNlbGVjdG9yIGlzIHJlcXVpcmVkKVxuICAgICAgICBnZXRBbGw6IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gICAgICAgICAgICB2YXIgcHJvcGVydGllcyA9IHt9O1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnNoZWV0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGV4dGVuZChwcm9wZXJ0aWVzLCBhZ2dyZWdhdGVTdHlsZXMoZ2V0UnVsZXModGhpcy5zaGVldHNbaV0sIHNlbGVjdG9yKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIEFkZHMgSlNTIHJ1bGVzIGZvciB0aGUgc2VsZWN0b3IgYmFzZWQgb24gdGhlIGdpdmVuIHByb3BlcnRpZXNcbiAgICAgICAgc2V0OiBmdW5jdGlvbihzZWxlY3RvciwgcHJvcGVydGllcykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRTaGVldCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFNoZWV0ID0gdGhpcy5fY3JlYXRlU2hlZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHByb3BlcnRpZXMgPSB0cmFuc2Zvcm1DYW1lbENhc2VkUHJvcGVydHlOYW1lcyhwcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIHZhciBydWxlcyA9IGdldFJ1bGVzKHRoaXMuZGVmYXVsdFNoZWV0LCBzZWxlY3Rvcik7XG4gICAgICAgICAgICBpZiAoIXJ1bGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJ1bGVzID0gW2FkZFJ1bGUodGhpcy5kZWZhdWx0U2hlZXQsIHNlbGVjdG9yKV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgc2V0U3R5bGVQcm9wZXJ0aWVzKHJ1bGVzW2ldLCBwcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgLy8gUmVtb3ZlcyBKU1MgcnVsZXMgKHNlbGVjdG9yIGlzIG9wdGlvbmFsKVxuICAgICAgICByZW1vdmU6IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGVmYXVsdFNoZWV0KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW1vdmVTaGVldCh0aGlzLmRlZmF1bHRTaGVldCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGVmYXVsdFNoZWV0O1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBydWxlcyA9IGdldFJ1bGVzKHRoaXMuZGVmYXVsdFNoZWV0LCBzZWxlY3Rvcik7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJ1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlUnVsZShydWxlc1tpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcnVsZXMubGVuZ3RoO1xuICAgICAgICB9LFxuICAgICAgICBfY3JlYXRlU2hlZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHN0eWxlTm9kZSA9IHRoaXMuZG9jLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgICAgICBzdHlsZU5vZGUudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAgICAgICBzdHlsZU5vZGUucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICAgICAgdGhpcy5oZWFkLmFwcGVuZENoaWxkKHN0eWxlTm9kZSk7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGVOb2RlLnNoZWV0O1xuICAgICAgICB9LFxuICAgICAgICBfcmVtb3ZlU2hlZXQ6IGZ1bmN0aW9uKHNoZWV0KSB7XG4gICAgICAgICAgICB2YXIgbm9kZSA9IHNoZWV0Lm93bmVyTm9kZTtcbiAgICAgICAgICAgIG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB2YXIgZXhwb3J0cyA9IG5ldyBKc3MoZG9jdW1lbnQpO1xuICAgIGV4cG9ydHMuZm9yRG9jdW1lbnQgPSBmdW5jdGlvbihkb2MpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBKc3MoZG9jKTtcbiAgICB9O1xuICAgIHJldHVybiBleHBvcnRzO1xufSkoKTtcblxudHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbW9kdWxlLmV4cG9ydHMgJiYgKG1vZHVsZS5leHBvcnRzID0ganNzKTsgLy8gQ29tbW9uSlMgc3VwcG9ydCIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LmFycmF5LmZvci1lYWNoJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZXMvX2NvcmUnKS5BcnJheS5mb3JFYWNoO1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczcuYXJyYXkuaW5jbHVkZXMnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLkFycmF5LmluY2x1ZGVzO1xuIiwicmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYubnVtYmVyLmlzLWludGVnZXInKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk51bWJlci5pc0ludGVnZXI7XG4iLCJyZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzNi5zdHJpbmcuc3RhcnRzLXdpdGgnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLlN0cmluZy5zdGFydHNXaXRoO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKHR5cGVvZiBpdCAhPSAnZnVuY3Rpb24nKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uIScpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gMjIuMS4zLjMxIEFycmF5LnByb3RvdHlwZVtAQHVuc2NvcGFibGVzXVxudmFyIFVOU0NPUEFCTEVTID0gcmVxdWlyZSgnLi9fd2tzJykoJ3Vuc2NvcGFibGVzJyk7XG52YXIgQXJyYXlQcm90byA9IEFycmF5LnByb3RvdHlwZTtcbmlmIChBcnJheVByb3RvW1VOU0NPUEFCTEVTXSA9PSB1bmRlZmluZWQpIHJlcXVpcmUoJy4vX2hpZGUnKShBcnJheVByb3RvLCBVTlNDT1BBQkxFUywge30pO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIEFycmF5UHJvdG9bVU5TQ09QQUJMRVNdW2tleV0gPSB0cnVlO1xufTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGFuIG9iamVjdCEnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIGZhbHNlIC0+IEFycmF5I2luZGV4T2Zcbi8vIHRydWUgIC0+IEFycmF5I2luY2x1ZGVzXG52YXIgdG9JT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8taW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi9fdG8tYWJzb2x1dGUtaW5kZXgnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSU9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlO1xuICAgIC8vIEFycmF5I2luZGV4T2YgaWdub3JlcyBob2xlcywgQXJyYXkjaW5jbHVkZXMgLSBub3RcbiAgICB9IGVsc2UgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSB7XG4gICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDtcbiAgICB9IHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gIH07XG59O1xuIiwiLy8gMCAtPiBBcnJheSNmb3JFYWNoXG4vLyAxIC0+IEFycmF5I21hcFxuLy8gMiAtPiBBcnJheSNmaWx0ZXJcbi8vIDMgLT4gQXJyYXkjc29tZVxuLy8gNCAtPiBBcnJheSNldmVyeVxuLy8gNSAtPiBBcnJheSNmaW5kXG4vLyA2IC0+IEFycmF5I2ZpbmRJbmRleFxudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIElPYmplY3QgPSByZXF1aXJlKCcuL19pb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIGFzYyA9IHJlcXVpcmUoJy4vX2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUWVBFLCAkY3JlYXRlKSB7XG4gIHZhciBJU19NQVAgPSBUWVBFID09IDE7XG4gIHZhciBJU19GSUxURVIgPSBUWVBFID09IDI7XG4gIHZhciBJU19TT01FID0gVFlQRSA9PSAzO1xuICB2YXIgSVNfRVZFUlkgPSBUWVBFID09IDQ7XG4gIHZhciBJU19GSU5EX0lOREVYID0gVFlQRSA9PSA2O1xuICB2YXIgTk9fSE9MRVMgPSBUWVBFID09IDUgfHwgSVNfRklORF9JTkRFWDtcbiAgdmFyIGNyZWF0ZSA9ICRjcmVhdGUgfHwgYXNjO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0KSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCgkdGhpcyk7XG4gICAgdmFyIHNlbGYgPSBJT2JqZWN0KE8pO1xuICAgIHZhciBmID0gY3R4KGNhbGxiYWNrZm4sIHRoYXQsIDMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChzZWxmLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgcmVzdWx0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsLCByZXM7XG4gICAgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIGlmIChOT19IT0xFUyB8fCBpbmRleCBpbiBzZWxmKSB7XG4gICAgICB2YWwgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlcyA9IGYodmFsLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSByZXN1bHRbaW5kZXhdID0gcmVzOyAgIC8vIG1hcFxuICAgICAgICBlbHNlIGlmIChyZXMpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIHRydWU7ICAgICAgICAgICAgIC8vIHNvbWVcbiAgICAgICAgICBjYXNlIDU6IHJldHVybiB2YWw7ICAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgLy8gZmluZEluZGV4XG4gICAgICAgICAgY2FzZSAyOiByZXN1bHQucHVzaCh2YWwpOyAgICAgICAgLy8gZmlsdGVyXG4gICAgICAgIH0gZWxzZSBpZiAoSVNfRVZFUlkpIHJldHVybiBmYWxzZTsgLy8gZXZlcnlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIElTX0ZJTkRfSU5ERVggPyAtMSA6IElTX1NPTUUgfHwgSVNfRVZFUlkgPyBJU19FVkVSWSA6IHJlc3VsdDtcbiAgfTtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi9faXMtYXJyYXknKTtcbnZhciBTUEVDSUVTID0gcmVxdWlyZSgnLi9fd2tzJykoJ3NwZWNpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWwpIHtcbiAgdmFyIEM7XG4gIGlmIChpc0FycmF5KG9yaWdpbmFsKSkge1xuICAgIEMgPSBvcmlnaW5hbC5jb25zdHJ1Y3RvcjtcbiAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgIGlmICh0eXBlb2YgQyA9PSAnZnVuY3Rpb24nICYmIChDID09PSBBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgaWYgKGlzT2JqZWN0KEMpKSB7XG4gICAgICBDID0gQ1tTUEVDSUVTXTtcbiAgICAgIGlmIChDID09PSBudWxsKSBDID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSByZXR1cm4gQyA9PT0gdW5kZWZpbmVkID8gQXJyYXkgOiBDO1xufTtcbiIsIi8vIDkuNC4yLjMgQXJyYXlTcGVjaWVzQ3JlYXRlKG9yaWdpbmFsQXJyYXksIGxlbmd0aClcbnZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuL19hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsLCBsZW5ndGgpIHtcbiAgcmV0dXJuIG5ldyAoc3BlY2llc0NvbnN0cnVjdG9yKG9yaWdpbmFsKSkobGVuZ3RoKTtcbn07XG4iLCJ2YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwoaXQpLnNsaWNlKDgsIC0xKTtcbn07XG4iLCJ2YXIgY29yZSA9IG1vZHVsZS5leHBvcnRzID0geyB2ZXJzaW9uOiAnMi42LjknIH07XG5pZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwiLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuICBhRnVuY3Rpb24oZm4pO1xuICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZm47XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwiLy8gNy4yLjEgUmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudClcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PSB1bmRlZmluZWQpIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uICBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIGlzID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGlzID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgY29yZSA9IHJlcXVpcmUoJy4vX2NvcmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBjdHggPSByZXF1aXJlKCcuL19jdHgnKTtcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcblxudmFyICRleHBvcnQgPSBmdW5jdGlvbiAodHlwZSwgbmFtZSwgc291cmNlKSB7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GO1xuICB2YXIgSVNfR0xPQkFMID0gdHlwZSAmICRleHBvcnQuRztcbiAgdmFyIElTX1NUQVRJQyA9IHR5cGUgJiAkZXhwb3J0LlM7XG4gIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7XG4gIHZhciBJU19CSU5EID0gdHlwZSAmICRleHBvcnQuQjtcbiAgdmFyIHRhcmdldCA9IElTX0dMT0JBTCA/IGdsb2JhbCA6IElTX1NUQVRJQyA/IGdsb2JhbFtuYW1lXSB8fCAoZ2xvYmFsW25hbWVdID0ge30pIDogKGdsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcbiAgdmFyIGV4cG9ydHMgPSBJU19HTE9CQUwgPyBjb3JlIDogY29yZVtuYW1lXSB8fCAoY29yZVtuYW1lXSA9IHt9KTtcbiAgdmFyIGV4cFByb3RvID0gZXhwb3J0c1tQUk9UT1RZUEVdIHx8IChleHBvcnRzW1BST1RPVFlQRV0gPSB7fSk7XG4gIHZhciBrZXksIG93biwgb3V0LCBleHA7XG4gIGlmIChJU19HTE9CQUwpIHNvdXJjZSA9IG5hbWU7XG4gIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG4gICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBwYXNzZWRcbiAgICBvdXQgPSAob3duID8gdGFyZ2V0IDogc291cmNlKVtrZXldO1xuICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgZXhwID0gSVNfQklORCAmJiBvd24gPyBjdHgob3V0LCBnbG9iYWwpIDogSVNfUFJPVE8gJiYgdHlwZW9mIG91dCA9PSAnZnVuY3Rpb24nID8gY3R4KEZ1bmN0aW9uLmNhbGwsIG91dCkgOiBvdXQ7XG4gICAgLy8gZXh0ZW5kIGdsb2JhbFxuICAgIGlmICh0YXJnZXQpIHJlZGVmaW5lKHRhcmdldCwga2V5LCBvdXQsIHR5cGUgJiAkZXhwb3J0LlUpO1xuICAgIC8vIGV4cG9ydFxuICAgIGlmIChleHBvcnRzW2tleV0gIT0gb3V0KSBoaWRlKGV4cG9ydHMsIGtleSwgZXhwKTtcbiAgICBpZiAoSVNfUFJPVE8gJiYgZXhwUHJvdG9ba2V5XSAhPSBvdXQpIGV4cFByb3RvW2tleV0gPSBvdXQ7XG4gIH1cbn07XG5nbG9iYWwuY29yZSA9IGNvcmU7XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgXG5tb2R1bGUuZXhwb3J0cyA9ICRleHBvcnQ7XG4iLCJ2YXIgTUFUQ0ggPSByZXF1aXJlKCcuL193a3MnKSgnbWF0Y2gnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEtFWSkge1xuICB2YXIgcmUgPSAvLi87XG4gIHRyeSB7XG4gICAgJy8uLydbS0VZXShyZSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0cnkge1xuICAgICAgcmVbTUFUQ0hdID0gZmFsc2U7XG4gICAgICByZXR1cm4gIScvLi8nW0tFWV0ocmUpO1xuICAgIH0gY2F0Y2ggKGYpIHsgLyogZW1wdHkgKi8gfVxuICB9IHJldHVybiB0cnVlO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ25hdGl2ZS1mdW5jdGlvbi10by1zdHJpbmcnLCBGdW5jdGlvbi50b1N0cmluZyk7XG4iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxudmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG4gID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5pZiAodHlwZW9mIF9fZyA9PSAnbnVtYmVyJykgX19nID0gZ2xvYmFsOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG4iLCJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG59O1xuIiwidmFyIGRQID0gcmVxdWlyZSgnLi9fb2JqZWN0LWRwJyk7XG52YXIgY3JlYXRlRGVzYyA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSAhcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSAmJiAhcmVxdWlyZSgnLi9fZmFpbHMnKShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdkaXYnKSwgJ2EnLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KS5hICE9IDc7XG59KTtcbiIsIi8vIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgYW5kIG5vbi1lbnVtZXJhYmxlIG9sZCBWOCBzdHJpbmdzXG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdCgneicpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApID8gT2JqZWN0IDogZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBjb2YoaXQpID09ICdTdHJpbmcnID8gaXQuc3BsaXQoJycpIDogT2JqZWN0KGl0KTtcbn07XG4iLCIvLyA3LjIuMiBJc0FycmF5KGFyZ3VtZW50KVxudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjb2YoYXJnKSA9PSAnQXJyYXknO1xufTtcbiIsIi8vIDIwLjEuMi4zIE51bWJlci5pc0ludGVnZXIobnVtYmVyKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0ludGVnZXIoaXQpIHtcbiAgcmV0dXJuICFpc09iamVjdChpdCkgJiYgaXNGaW5pdGUoaXQpICYmIGZsb29yKGl0KSA9PT0gaXQ7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCIvLyA3LjIuOCBJc1JlZ0V4cChhcmd1bWVudClcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4vX2lzLW9iamVjdCcpO1xudmFyIGNvZiA9IHJlcXVpcmUoJy4vX2NvZicpO1xudmFyIE1BVENIID0gcmVxdWlyZSgnLi9fd2tzJykoJ21hdGNoJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgaXNSZWdFeHA7XG4gIHJldHVybiBpc09iamVjdChpdCkgJiYgKChpc1JlZ0V4cCA9IGl0W01BVENIXSkgIT09IHVuZGVmaW5lZCA/ICEhaXNSZWdFeHAgOiBjb2YoaXQpID09ICdSZWdFeHAnKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZhbHNlO1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcbiAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcbiAgICB2YWx1ZTogdmFsdWVcbiAgfTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgaGlkZSA9IHJlcXVpcmUoJy4vX2hpZGUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuL19oYXMnKTtcbnZhciBTUkMgPSByZXF1aXJlKCcuL191aWQnKSgnc3JjJyk7XG52YXIgJHRvU3RyaW5nID0gcmVxdWlyZSgnLi9fZnVuY3Rpb24tdG8tc3RyaW5nJyk7XG52YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcbnZhciBUUEwgPSAoJycgKyAkdG9TdHJpbmcpLnNwbGl0KFRPX1NUUklORyk7XG5cbnJlcXVpcmUoJy4vX2NvcmUnKS5pbnNwZWN0U291cmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiAkdG9TdHJpbmcuY2FsbChpdCk7XG59O1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWwsIHNhZmUpIHtcbiAgdmFyIGlzRnVuY3Rpb24gPSB0eXBlb2YgdmFsID09ICdmdW5jdGlvbic7XG4gIGlmIChpc0Z1bmN0aW9uKSBoYXModmFsLCAnbmFtZScpIHx8IGhpZGUodmFsLCAnbmFtZScsIGtleSk7XG4gIGlmIChPW2tleV0gPT09IHZhbCkgcmV0dXJuO1xuICBpZiAoaXNGdW5jdGlvbikgaGFzKHZhbCwgU1JDKSB8fCBoaWRlKHZhbCwgU1JDLCBPW2tleV0gPyAnJyArIE9ba2V5XSA6IFRQTC5qb2luKFN0cmluZyhrZXkpKSk7XG4gIGlmIChPID09PSBnbG9iYWwpIHtcbiAgICBPW2tleV0gPSB2YWw7XG4gIH0gZWxzZSBpZiAoIXNhZmUpIHtcbiAgICBkZWxldGUgT1trZXldO1xuICAgIGhpZGUoTywga2V5LCB2YWwpO1xuICB9IGVsc2UgaWYgKE9ba2V5XSkge1xuICAgIE9ba2V5XSA9IHZhbDtcbiAgfSBlbHNlIHtcbiAgICBoaWRlKE8sIGtleSwgdmFsKTtcbiAgfVxuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG59KShGdW5jdGlvbi5wcm90b3R5cGUsIFRPX1NUUklORywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIHRoaXNbU1JDXSB8fCAkdG9TdHJpbmcuY2FsbCh0aGlzKTtcbn0pO1xuIiwidmFyIGNvcmUgPSByZXF1aXJlKCcuL19jb3JlJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi9fZ2xvYmFsJyk7XG52YXIgU0hBUkVEID0gJ19fY29yZS1qc19zaGFyZWRfXyc7XG52YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCAoZ2xvYmFsW1NIQVJFRF0gPSB7fSk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiBjb3JlLnZlcnNpb24sXG4gIG1vZGU6IHJlcXVpcmUoJy4vX2xpYnJhcnknKSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDE5IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuL19mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChtZXRob2QsIGFyZykge1xuICByZXR1cm4gISFtZXRob2QgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNhbGxcbiAgICBhcmcgPyBtZXRob2QuY2FsbChudWxsLCBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0sIDEpIDogbWV0aG9kLmNhbGwobnVsbCk7XG4gIH0pO1xufTtcbiIsIi8vIGhlbHBlciBmb3IgU3RyaW5nI3tzdGFydHNXaXRoLCBlbmRzV2l0aCwgaW5jbHVkZXN9XG52YXIgaXNSZWdFeHAgPSByZXF1aXJlKCcuL19pcy1yZWdleHAnKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0aGF0LCBzZWFyY2hTdHJpbmcsIE5BTUUpIHtcbiAgaWYgKGlzUmVnRXhwKHNlYXJjaFN0cmluZykpIHRocm93IFR5cGVFcnJvcignU3RyaW5nIycgKyBOQU1FICsgXCIgZG9lc24ndCBhY2NlcHQgcmVnZXghXCIpO1xuICByZXR1cm4gU3RyaW5nKGRlZmluZWQodGhhdCkpO1xufTtcbiIsInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIGluZGV4ID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG59O1xuIiwiLy8gNy4xLjQgVG9JbnRlZ2VyXG52YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXNOYU4oaXQgPSAraXQpID8gMCA6IChpdCA+IDAgPyBmbG9vciA6IGNlaWwpKGl0KTtcbn07XG4iLCIvLyB0byBpbmRleGVkIG9iamVjdCwgdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gSU9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwiLy8gNy4xLjE1IFRvTGVuZ3RoXG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID4gMCA/IG1pbih0b0ludGVnZXIoaXQpLCAweDFmZmZmZmZmZmZmZmZmKSA6IDA7IC8vIHBvdygyLCA1MykgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCIvLyA3LjEuMTMgVG9PYmplY3QoYXJndW1lbnQpXG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBPYmplY3QoZGVmaW5lZChpdCkpO1xufTtcbiIsIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsInZhciBpZCA9IDA7XG52YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG59O1xuIiwidmFyIHN0b3JlID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ3drcycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLlN5bWJvbDtcbnZhciBVU0VfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xuXG52YXIgJGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBzdG9yZVtuYW1lXSB8fCAoc3RvcmVbbmFtZV0gPVxuICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7XG59O1xuXG4kZXhwb3J0cy5zdG9yZSA9IHN0b3JlO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbnZhciAkZm9yRWFjaCA9IHJlcXVpcmUoJy4vX2FycmF5LW1ldGhvZHMnKSgwKTtcbnZhciBTVFJJQ1QgPSByZXF1aXJlKCcuL19zdHJpY3QtbWV0aG9kJykoW10uZm9yRWFjaCwgdHJ1ZSk7XG5cbiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogIVNUUklDVCwgJ0FycmF5Jywge1xuICAvLyAyMi4xLjMuMTAgLyAxNS40LjQuMTggQXJyYXkucHJvdG90eXBlLmZvckVhY2goY2FsbGJhY2tmbiBbLCB0aGlzQXJnXSlcbiAgZm9yRWFjaDogZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZm9yRWFjaCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHNbMV0pO1xuICB9XG59KTtcbiIsIi8vIDIwLjEuMi4zIE51bWJlci5pc0ludGVnZXIobnVtYmVyKVxudmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcblxuJGV4cG9ydCgkZXhwb3J0LlMsICdOdW1iZXInLCB7IGlzSW50ZWdlcjogcmVxdWlyZSgnLi9faXMtaW50ZWdlcicpIH0pO1xuIiwiLy8gMjEuMS4zLjE4IFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aChzZWFyY2hTdHJpbmcgWywgcG9zaXRpb24gXSlcbid1c2Ugc3RyaWN0JztcbnZhciAkZXhwb3J0ID0gcmVxdWlyZSgnLi9fZXhwb3J0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuL190by1sZW5ndGgnKTtcbnZhciBjb250ZXh0ID0gcmVxdWlyZSgnLi9fc3RyaW5nLWNvbnRleHQnKTtcbnZhciBTVEFSVFNfV0lUSCA9ICdzdGFydHNXaXRoJztcbnZhciAkc3RhcnRzV2l0aCA9ICcnW1NUQVJUU19XSVRIXTtcblxuJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiByZXF1aXJlKCcuL19mYWlscy1pcy1yZWdleHAnKShTVEFSVFNfV0lUSCksICdTdHJpbmcnLCB7XG4gIHN0YXJ0c1dpdGg6IGZ1bmN0aW9uIHN0YXJ0c1dpdGgoc2VhcmNoU3RyaW5nIC8qICwgcG9zaXRpb24gPSAwICovKSB7XG4gICAgdmFyIHRoYXQgPSBjb250ZXh0KHRoaXMsIHNlYXJjaFN0cmluZywgU1RBUlRTX1dJVEgpO1xuICAgIHZhciBpbmRleCA9IHRvTGVuZ3RoKE1hdGgubWluKGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCB0aGF0Lmxlbmd0aCkpO1xuICAgIHZhciBzZWFyY2ggPSBTdHJpbmcoc2VhcmNoU3RyaW5nKTtcbiAgICByZXR1cm4gJHN0YXJ0c1dpdGhcbiAgICAgID8gJHN0YXJ0c1dpdGguY2FsbCh0aGF0LCBzZWFyY2gsIGluZGV4KVxuICAgICAgOiB0aGF0LnNsaWNlKGluZGV4LCBpbmRleCArIHNlYXJjaC5sZW5ndGgpID09PSBzZWFyY2g7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzXG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyICRpbmNsdWRlcyA9IHJlcXVpcmUoJy4vX2FycmF5LWluY2x1ZGVzJykodHJ1ZSk7XG5cbiRleHBvcnQoJGV4cG9ydC5QLCAnQXJyYXknLCB7XG4gIGluY2x1ZGVzOiBmdW5jdGlvbiBpbmNsdWRlcyhlbCAvKiAsIGZyb21JbmRleCA9IDAgKi8pIHtcbiAgICByZXR1cm4gJGluY2x1ZGVzKHRoaXMsIGVsLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuXG5yZXF1aXJlKCcuL19hZGQtdG8tdW5zY29wYWJsZXMnKSgnaW5jbHVkZXMnKTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qKlxuICogW1JlY3Vyc2l2ZWx5IHBhcnNlcyBhIHN0cmluZ2lmaWVkIEpTT05dXG4gKiBAcGFyYW0gIHtbdHlwZV19IGpzb25TdHJpbmcgW3N0cmluZ2lmaWVkIGpzb24gdG8gcGFyc2VdXG4gKiBAcmV0dXJuIHtbdHlwZV19ICAgICAgICAgICAgW25vcm1hbGl6ZWQgSmF2YXNjcmlwdCBvYmplY3RdXG4gKi9cbmZ1bmN0aW9uIGRlZXBQYXJzZUpzb24oanNvblN0cmluZykge1xuICAvLyBpZiBub3Qgc3RyaW5naWZpZWQganNvbiByYXRoZXIgYSBzaW1wbGUgc3RyaW5nIHZhbHVlIHRoZW4gSlNPTi5wYXJzZSB3aWxsIHRocm93IGVycm9yXG4gIC8vIG90aGVyd2lzZSBjb250aW51ZSByZWN1cnNpb25cbiAgaWYgKHR5cGVvZiBqc29uU3RyaW5nID09PSAnc3RyaW5nJykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGVlcFBhcnNlSnNvbihKU09OLnBhcnNlKGpzb25TdHJpbmcpKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBqc29uU3RyaW5nO1xuICAgIH1cbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGpzb25TdHJpbmcpKSB7XG4gICAgLy8gaWYgYW4gYXJyYXkgaXMgcmVjZWl2ZWQsIG1hcCBvdmVyIHRoZSBhcnJheSBhbmQgZGVlcFBhcnNlIGVhY2ggdmFsdWVcbiAgICByZXR1cm4ganNvblN0cmluZy5tYXAodmFsID0+IGRlZXBQYXJzZUpzb24odmFsKSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGpzb25TdHJpbmcgPT09ICdvYmplY3QnICYmIGpzb25TdHJpbmcgIT09IG51bGwpIHtcbiAgICAvLyBpZiBhbiBvYmplY3QgaXMgcmVjZWl2ZWQgdGhlbiBkZWVwUGFyc2UgZWFjaCBlbGVtZW50IGluIHRoZSBvYmplY3RcbiAgICAvLyB0eXBlb2YgbnVsbCByZXR1cm5zICdvYmplY3QnIHRvbywgc28gd2UgaGF2ZSB0byBlbGltaW5hdGUgdGhhdFxuICAgIHJldHVybiBPYmplY3Qua2V5cyhqc29uU3RyaW5nKS5yZWR1Y2UoKG9iaiwga2V5KSA9PiB7XG4gICAgICBvYmpba2V5XSA9IGRlZXBQYXJzZUpzb24oanNvblN0cmluZ1trZXldKTtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSwge30pO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSByZXR1cm4gd2hhdGV2ZXIgd2FzIHJlY2VpdmVkXG4gICAgcmV0dXJuIGpzb25TdHJpbmc7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7IGRlZXBQYXJzZUpzb24gfTtcbiIsImlmKCFnbG9iYWxbXCJCQmpcIl0pIGdsb2JhbFtcIkJCalwiXSA9IHt9O1xubW9kdWxlLmV4cG9ydHMgPSBnbG9iYWxbXCJCQmpcIl1bXCJNYXNrc1wiXSA9IHJlcXVpcmUoXCItIUQ6XFxcXEdpdGh1YlxcXFxCQmpHcmlkRXhXaWRnZXRcXFxcY2xpZW50XFxcXG5vZGVfbW9kdWxlc1xcXFxiYWJlbC1sb2FkZXJcXFxcbGliXFxcXGluZGV4LmpzPz9yZWYtLTQhLlxcXFxiYmotbWFza3MuanNcIik7IiwiaWYoIWdsb2JhbFtcIkJhc2lzXCJdKSBnbG9iYWxbXCJCYXNpc1wiXSA9IHt9O1xubW9kdWxlLmV4cG9ydHMgPSBnbG9iYWxbXCJCYXNpc1wiXVtcIkFnR3JpZENvbXBvbmVudHNcIl0gPSByZXF1aXJlKFwiLSFEOlxcXFxHaXRodWJcXFxcQkJqR3JpZEV4V2lkZ2V0XFxcXGNsaWVudFxcXFxub2RlX21vZHVsZXNcXFxcYmFiZWwtbG9hZGVyXFxcXGxpYlxcXFxpbmRleC5qcz8/cmVmLS00IS5cXFxcYmFzaXMtYWdncmlkLWNvbXBvbmVudHMuanNcIik7IiwiaWYoIWdsb2JhbFtcIkJhc2lzXCJdKSBnbG9iYWxbXCJCYXNpc1wiXSA9IHt9O1xubW9kdWxlLmV4cG9ydHMgPSBnbG9iYWxbXCJCYXNpc1wiXVtcIklucHV0TWFza2luZ1wiXSA9IHJlcXVpcmUoXCItIUQ6XFxcXEdpdGh1YlxcXFxCQmpHcmlkRXhXaWRnZXRcXFxcY2xpZW50XFxcXG5vZGVfbW9kdWxlc1xcXFxiYWJlbC1sb2FkZXJcXFxcbGliXFxcXGluZGV4LmpzPz9yZWYtLTQhLlxcXFxiYXNpcy1pbnB1dC1tYXNraW5nLmpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gZ2xvYmFsW1wianNzXCJdID0gcmVxdWlyZShcIi0hRDpcXFxcR2l0aHViXFxcXEJCakdyaWRFeFdpZGdldFxcXFxjbGllbnRcXFxcbm9kZV9tb2R1bGVzXFxcXGJhYmVsLWxvYWRlclxcXFxsaWJcXFxcaW5kZXguanM/P3JlZi0tNCEuXFxcXGpzcy5qc1wiKTsiLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuL2ZsYXRwaWNrci5jc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWQgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXMuanNcIikoY29udGVudCwgb3B0aW9ucyk7XG5cbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuXG5pZihtb2R1bGUuaG90KSB7XG5cdG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi4vLi4vcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vZmxhdHBpY2tyLmNzc1wiLCBmdW5jdGlvbigpIHtcblx0XHR2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9mbGF0cGlja3IuY3NzXCIpO1xuXG5cdFx0aWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG5cblx0XHR2YXIgbG9jYWxzID0gKGZ1bmN0aW9uKGEsIGIpIHtcblx0XHRcdHZhciBrZXksIGlkeCA9IDA7XG5cblx0XHRcdGZvcihrZXkgaW4gYSkge1xuXHRcdFx0XHRpZighYiB8fCBhW2tleV0gIT09IGJba2V5XSkgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRpZHgrKztcblx0XHRcdH1cblxuXHRcdFx0Zm9yKGtleSBpbiBiKSBpZHgtLTtcblxuXHRcdFx0cmV0dXJuIGlkeCA9PT0gMDtcblx0XHR9KGNvbnRlbnQubG9jYWxzLCBuZXdDb250ZW50LmxvY2FscykpO1xuXG5cdFx0aWYoIWxvY2FscykgdGhyb3cgbmV3IEVycm9yKCdBYm9ydGluZyBDU1MgSE1SIGR1ZSB0byBjaGFuZ2VkIGNzcy1tb2R1bGVzIGxvY2Fscy4nKTtcblxuXHRcdHVwZGF0ZShuZXdDb250ZW50KTtcblx0fSk7XG5cblx0bW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59IiwiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIFN5bWJvbCA9IHJvb3QuU3ltYm9sO1xuXG5leHBvcnQgZGVmYXVsdCBTeW1ib2w7XG4iLCIvKipcbiAqIEEgZmFzdGVyIGFsdGVybmF0aXZlIHRvIGBGdW5jdGlvbiNhcHBseWAsIHRoaXMgZnVuY3Rpb24gaW52b2tlcyBgZnVuY2BcbiAqIHdpdGggdGhlIGB0aGlzYCBiaW5kaW5nIG9mIGB0aGlzQXJnYCBhbmQgdGhlIGFyZ3VtZW50cyBvZiBgYXJnc2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZS5cbiAqIEBwYXJhbSB7Kn0gdGhpc0FyZyBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtBcnJheX0gYXJncyBUaGUgYXJndW1lbnRzIHRvIGludm9rZSBgZnVuY2Agd2l0aC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXN1bHQgb2YgYGZ1bmNgLlxuICovXG5mdW5jdGlvbiBhcHBseShmdW5jLCB0aGlzQXJnLCBhcmdzKSB7XG4gIHN3aXRjaCAoYXJncy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZyk7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFyZ3NbMF0pO1xuICAgIGNhc2UgMjogcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICBjYXNlIDM6IHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gIH1cbiAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFwcGx5O1xuIiwiaW1wb3J0IGJhc2VUaW1lcyBmcm9tICcuL19iYXNlVGltZXMuanMnO1xuaW1wb3J0IGlzQXJndW1lbnRzIGZyb20gJy4vaXNBcmd1bWVudHMuanMnO1xuaW1wb3J0IGlzQXJyYXkgZnJvbSAnLi9pc0FycmF5LmpzJztcbmltcG9ydCBpc0J1ZmZlciBmcm9tICcuL2lzQnVmZmVyLmpzJztcbmltcG9ydCBpc0luZGV4IGZyb20gJy4vX2lzSW5kZXguanMnO1xuaW1wb3J0IGlzVHlwZWRBcnJheSBmcm9tICcuL2lzVHlwZWRBcnJheS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgZW51bWVyYWJsZSBwcm9wZXJ0eSBuYW1lcyBvZiB0aGUgYXJyYXktbGlrZSBgdmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5oZXJpdGVkIFNwZWNpZnkgcmV0dXJuaW5nIGluaGVyaXRlZCBwcm9wZXJ0eSBuYW1lcy5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TGlrZUtleXModmFsdWUsIGluaGVyaXRlZCkge1xuICB2YXIgaXNBcnIgPSBpc0FycmF5KHZhbHVlKSxcbiAgICAgIGlzQXJnID0gIWlzQXJyICYmIGlzQXJndW1lbnRzKHZhbHVlKSxcbiAgICAgIGlzQnVmZiA9ICFpc0FyciAmJiAhaXNBcmcgJiYgaXNCdWZmZXIodmFsdWUpLFxuICAgICAgaXNUeXBlID0gIWlzQXJyICYmICFpc0FyZyAmJiAhaXNCdWZmICYmIGlzVHlwZWRBcnJheSh2YWx1ZSksXG4gICAgICBza2lwSW5kZXhlcyA9IGlzQXJyIHx8IGlzQXJnIHx8IGlzQnVmZiB8fCBpc1R5cGUsXG4gICAgICByZXN1bHQgPSBza2lwSW5kZXhlcyA/IGJhc2VUaW1lcyh2YWx1ZS5sZW5ndGgsIFN0cmluZykgOiBbXSxcbiAgICAgIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XG5cbiAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgaWYgKChpbmhlcml0ZWQgfHwgaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwga2V5KSkgJiZcbiAgICAgICAgIShza2lwSW5kZXhlcyAmJiAoXG4gICAgICAgICAgIC8vIFNhZmFyaSA5IGhhcyBlbnVtZXJhYmxlIGBhcmd1bWVudHMubGVuZ3RoYCBpbiBzdHJpY3QgbW9kZS5cbiAgICAgICAgICAga2V5ID09ICdsZW5ndGgnIHx8XG4gICAgICAgICAgIC8vIE5vZGUuanMgMC4xMCBoYXMgZW51bWVyYWJsZSBub24taW5kZXggcHJvcGVydGllcyBvbiBidWZmZXJzLlxuICAgICAgICAgICAoaXNCdWZmICYmIChrZXkgPT0gJ29mZnNldCcgfHwga2V5ID09ICdwYXJlbnQnKSkgfHxcbiAgICAgICAgICAgLy8gUGhhbnRvbUpTIDIgaGFzIGVudW1lcmFibGUgbm9uLWluZGV4IHByb3BlcnRpZXMgb24gdHlwZWQgYXJyYXlzLlxuICAgICAgICAgICAoaXNUeXBlICYmIChrZXkgPT0gJ2J1ZmZlcicgfHwga2V5ID09ICdieXRlTGVuZ3RoJyB8fCBrZXkgPT0gJ2J5dGVPZmZzZXQnKSkgfHxcbiAgICAgICAgICAgLy8gU2tpcCBpbmRleCBwcm9wZXJ0aWVzLlxuICAgICAgICAgICBpc0luZGV4KGtleSwgbGVuZ3RoKVxuICAgICAgICApKSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXJyYXlMaWtlS2V5cztcbiIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1hcGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGl0ZXJhdGVlXG4gKiBzaG9ydGhhbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXldIFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBhcnJheU1hcChhcnJheSwgaXRlcmF0ZWUpIHtcbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBhcnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFycmF5TWFwO1xuIiwiaW1wb3J0IGJhc2VBc3NpZ25WYWx1ZSBmcm9tICcuL19iYXNlQXNzaWduVmFsdWUuanMnO1xuaW1wb3J0IGVxIGZyb20gJy4vZXEuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEFzc2lnbnMgYHZhbHVlYCB0byBga2V5YCBvZiBgb2JqZWN0YCBpZiB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgbm90IGVxdWl2YWxlbnRcbiAqIHVzaW5nIFtgU2FtZVZhbHVlWmVyb2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLXNhbWV2YWx1ZXplcm8pXG4gKiBmb3IgZXF1YWxpdHkgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGFzc2lnbi5cbiAqL1xuZnVuY3Rpb24gYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHZhciBvYmpWYWx1ZSA9IG9iamVjdFtrZXldO1xuICBpZiAoIShoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBlcShvYmpWYWx1ZSwgdmFsdWUpKSB8fFxuICAgICAgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgIShrZXkgaW4gb2JqZWN0KSkpIHtcbiAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBhc3NpZ25WYWx1ZTtcbiIsImltcG9ydCBkZWZpbmVQcm9wZXJ0eSBmcm9tICcuL19kZWZpbmVQcm9wZXJ0eS5qcyc7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYGFzc2lnblZhbHVlYCBhbmQgYGFzc2lnbk1lcmdlVmFsdWVgIHdpdGhvdXRcbiAqIHZhbHVlIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIG1vZGlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYXNzaWduLlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gYXNzaWduLlxuICovXG5mdW5jdGlvbiBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgPT0gJ19fcHJvdG9fXycgJiYgZGVmaW5lUHJvcGVydHkpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eShvYmplY3QsIGtleSwge1xuICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsXG4gICAgICAnZW51bWVyYWJsZSc6IHRydWUsXG4gICAgICAndmFsdWUnOiB2YWx1ZSxcbiAgICAgICd3cml0YWJsZSc6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VBc3NpZ25WYWx1ZTtcbiIsImltcG9ydCBTeW1ib2wgZnJvbSAnLi9fU3ltYm9sLmpzJztcbmltcG9ydCBnZXRSYXdUYWcgZnJvbSAnLi9fZ2V0UmF3VGFnLmpzJztcbmltcG9ydCBvYmplY3RUb1N0cmluZyBmcm9tICcuL19vYmplY3RUb1N0cmluZy5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBudWxsVGFnID0gJ1tvYmplY3QgTnVsbF0nLFxuICAgIHVuZGVmaW5lZFRhZyA9ICdbb2JqZWN0IFVuZGVmaW5lZF0nO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1Ub1N0cmluZ1RhZyA9IFN5bWJvbCA/IFN5bWJvbC50b1N0cmluZ1RhZyA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0VGFnYCB3aXRob3V0IGZhbGxiYWNrcyBmb3IgYnVnZ3kgZW52aXJvbm1lbnRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGB0b1N0cmluZ1RhZ2AuXG4gKi9cbmZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZFRhZyA6IG51bGxUYWc7XG4gIH1cbiAgcmV0dXJuIChzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKVxuICAgID8gZ2V0UmF3VGFnKHZhbHVlKVxuICAgIDogb2JqZWN0VG9TdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlR2V0VGFnO1xuIiwiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3RMaWtlIGZyb20gJy4vaXNPYmplY3RMaWtlLmpzJztcblxuLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGFyZ3NUYWcgPSAnW29iamVjdCBBcmd1bWVudHNdJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0FyZ3VtZW50c2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gYGFyZ3VtZW50c2Agb2JqZWN0LFxuICovXG5mdW5jdGlvbiBiYXNlSXNBcmd1bWVudHModmFsdWUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gYXJnc1RhZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUlzQXJndW1lbnRzO1xuIiwiaW1wb3J0IGlzRnVuY3Rpb24gZnJvbSAnLi9pc0Z1bmN0aW9uLmpzJztcbmltcG9ydCBpc01hc2tlZCBmcm9tICcuL19pc01hc2tlZC5qcyc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5pbXBvcnQgdG9Tb3VyY2UgZnJvbSAnLi9fdG9Tb3VyY2UuanMnO1xuXG4vKipcbiAqIFVzZWQgdG8gbWF0Y2ggYFJlZ0V4cGBcbiAqIFtzeW50YXggY2hhcmFjdGVyc10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtcGF0dGVybnMpLlxuICovXG52YXIgcmVSZWdFeHBDaGFyID0gL1tcXFxcXiQuKis/KClbXFxde318XS9nO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaG9zdCBjb25zdHJ1Y3RvcnMgKFNhZmFyaSkuICovXG52YXIgcmVJc0hvc3RDdG9yID0gL15cXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXF0kLztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBpZiBhIG1ldGhvZCBpcyBuYXRpdmUuICovXG52YXIgcmVJc05hdGl2ZSA9IFJlZ0V4cCgnXicgK1xuICBmdW5jVG9TdHJpbmcuY2FsbChoYXNPd25Qcm9wZXJ0eSkucmVwbGFjZShyZVJlZ0V4cENoYXIsICdcXFxcJCYnKVxuICAucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXFxcXCgpfCBmb3IgLis/KD89XFxcXFxcXSkvZywgJyQxLio/JykgKyAnJCdcbik7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uaXNOYXRpdmVgIHdpdGhvdXQgYmFkIHNoaW0gY2hlY2tzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLFxuICogIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzTmF0aXZlKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpIHx8IGlzTWFza2VkKHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcGF0dGVybiA9IGlzRnVuY3Rpb24odmFsdWUpID8gcmVJc05hdGl2ZSA6IHJlSXNIb3N0Q3RvcjtcbiAgcmV0dXJuIHBhdHRlcm4udGVzdCh0b1NvdXJjZSh2YWx1ZSkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlSXNOYXRpdmU7XG4iLCJpbXBvcnQgYmFzZUdldFRhZyBmcm9tICcuL19iYXNlR2V0VGFnLmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcbmltcG9ydCBpc09iamVjdExpa2UgZnJvbSAnLi9pc09iamVjdExpa2UuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZGF0YVZpZXdUYWcgPSAnW29iamVjdCBEYXRhVmlld10nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBpZGVudGlmeSBgdG9TdHJpbmdUYWdgIHZhbHVlcyBvZiB0eXBlZCBhcnJheXMuICovXG52YXIgdHlwZWRBcnJheVRhZ3MgPSB7fTtcbnR5cGVkQXJyYXlUYWdzW2Zsb2F0MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbZmxvYXQ2NFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50OFRhZ10gPSB0eXBlZEFycmF5VGFnc1tpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbaW50MzJUYWddID0gdHlwZWRBcnJheVRhZ3NbdWludDhUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQ4Q2xhbXBlZFRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50MTZUYWddID1cbnR5cGVkQXJyYXlUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xudHlwZWRBcnJheVRhZ3NbYXJnc1RhZ10gPSB0eXBlZEFycmF5VGFnc1thcnJheVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbYXJyYXlCdWZmZXJUYWddID0gdHlwZWRBcnJheVRhZ3NbYm9vbFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZGF0YVZpZXdUYWddID0gdHlwZWRBcnJheVRhZ3NbZGF0ZVRhZ10gPVxudHlwZWRBcnJheVRhZ3NbZXJyb3JUYWddID0gdHlwZWRBcnJheVRhZ3NbZnVuY1RhZ10gPVxudHlwZWRBcnJheVRhZ3NbbWFwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW251bWJlclRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbb2JqZWN0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3JlZ2V4cFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc2V0VGFnXSA9IHR5cGVkQXJyYXlUYWdzW3N0cmluZ1RhZ10gPVxudHlwZWRBcnJheVRhZ3Nbd2Vha01hcFRhZ10gPSBmYWxzZTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc1R5cGVkQXJyYXlgIHdpdGhvdXQgTm9kZS5qcyBvcHRpbWl6YXRpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdHlwZWQgYXJyYXksIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJlxuICAgIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgISF0eXBlZEFycmF5VGFnc1tiYXNlR2V0VGFnKHZhbHVlKV07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VJc1R5cGVkQXJyYXk7XG4iLCJpbXBvcnQgaXNQcm90b3R5cGUgZnJvbSAnLi9faXNQcm90b3R5cGUuanMnO1xuaW1wb3J0IG5hdGl2ZUtleXMgZnJvbSAnLi9fbmF0aXZlS2V5cy5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ua2V5c2Agd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5cyhvYmplY3QpIHtcbiAgaWYgKCFpc1Byb3RvdHlwZShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXMob2JqZWN0KTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gW107XG4gIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSAmJiBrZXkgIT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZUtleXM7XG4iLCJpbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5pbXBvcnQgaXNQcm90b3R5cGUgZnJvbSAnLi9faXNQcm90b3R5cGUuanMnO1xuaW1wb3J0IG5hdGl2ZUtleXNJbiBmcm9tICcuL19uYXRpdmVLZXlzSW4uanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmtleXNJbmAgd2hpY2ggZG9lc24ndCB0cmVhdCBzcGFyc2UgYXJyYXlzIGFzIGRlbnNlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICovXG5mdW5jdGlvbiBiYXNlS2V5c0luKG9iamVjdCkge1xuICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICByZXR1cm4gbmF0aXZlS2V5c0luKG9iamVjdCk7XG4gIH1cbiAgdmFyIGlzUHJvdG8gPSBpc1Byb3RvdHlwZShvYmplY3QpLFxuICAgICAgcmVzdWx0ID0gW107XG5cbiAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgIGlmICghKGtleSA9PSAnY29uc3RydWN0b3InICYmIChpc1Byb3RvIHx8ICFoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkpKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlS2V5c0luO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5wcm9wZXJ0eU9mYCB3aXRob3V0IHN1cHBvcnQgZm9yIGRlZXAgcGF0aHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGFjY2Vzc29yIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUHJvcGVydHlPZihvYmplY3QpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGtleSkge1xuICAgIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBiYXNlUHJvcGVydHlPZjtcbiIsImltcG9ydCBpZGVudGl0eSBmcm9tICcuL2lkZW50aXR5LmpzJztcbmltcG9ydCBvdmVyUmVzdCBmcm9tICcuL19vdmVyUmVzdC5qcyc7XG5pbXBvcnQgc2V0VG9TdHJpbmcgZnJvbSAnLi9fc2V0VG9TdHJpbmcuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLnJlc3RgIHdoaWNoIGRvZXNuJ3QgdmFsaWRhdGUgb3IgY29lcmNlIGFyZ3VtZW50cy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUmVzdChmdW5jLCBzdGFydCkge1xuICByZXR1cm4gc2V0VG9TdHJpbmcob3ZlclJlc3QoZnVuYywgc3RhcnQsIGlkZW50aXR5KSwgZnVuYyArICcnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVJlc3Q7XG4iLCJpbXBvcnQgY29uc3RhbnQgZnJvbSAnLi9jb25zdGFudC5qcyc7XG5pbXBvcnQgZGVmaW5lUHJvcGVydHkgZnJvbSAnLi9fZGVmaW5lUHJvcGVydHkuanMnO1xuaW1wb3J0IGlkZW50aXR5IGZyb20gJy4vaWRlbnRpdHkuanMnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBzZXRUb1N0cmluZ2Agd2l0aG91dCBzdXBwb3J0IGZvciBob3QgbG9vcCBzaG9ydGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gbW9kaWZ5LlxuICogQHBhcmFtIHtGdW5jdGlvbn0gc3RyaW5nIFRoZSBgdG9TdHJpbmdgIHJlc3VsdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyBgZnVuY2AuXG4gKi9cbnZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkgPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuYywgJ3RvU3RyaW5nJywge1xuICAgICdjb25maWd1cmFibGUnOiB0cnVlLFxuICAgICdlbnVtZXJhYmxlJzogZmFsc2UsXG4gICAgJ3ZhbHVlJzogY29uc3RhbnQoc3RyaW5nKSxcbiAgICAnd3JpdGFibGUnOiB0cnVlXG4gIH0pO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgYmFzZVNldFRvU3RyaW5nO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy50aW1lc2Agd2l0aG91dCBzdXBwb3J0IGZvciBpdGVyYXRlZSBzaG9ydGhhbmRzXG4gKiBvciBtYXggYXJyYXkgbGVuZ3RoIGNoZWNrcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtudW1iZXJ9IG4gVGhlIG51bWJlciBvZiB0aW1lcyB0byBpbnZva2UgYGl0ZXJhdGVlYC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHJlc3VsdHMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VUaW1lcyhuLCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IEFycmF5KG4pO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbikge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShpbmRleCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVRpbWVzO1xuIiwiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuaW1wb3J0IGFycmF5TWFwIGZyb20gJy4vX2FycmF5TWFwLmpzJztcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheS5qcyc7XG5pbXBvcnQgaXNTeW1ib2wgZnJvbSAnLi9pc1N5bWJvbC5qcyc7XG5cbi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIElORklOSVRZID0gMSAvIDA7XG5cbi8qKiBVc2VkIHRvIGNvbnZlcnQgc3ltYm9scyB0byBwcmltaXRpdmVzIGFuZCBzdHJpbmdzLiAqL1xudmFyIHN5bWJvbFByb3RvID0gU3ltYm9sID8gU3ltYm9sLnByb3RvdHlwZSA6IHVuZGVmaW5lZCxcbiAgICBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvID8gc3ltYm9sUHJvdG8udG9TdHJpbmcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udG9TdHJpbmdgIHdoaWNoIGRvZXNuJ3QgY29udmVydCBudWxsaXNoXG4gKiB2YWx1ZXMgdG8gZW1wdHkgc3RyaW5ncy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHZhbHVlKSB7XG4gIC8vIEV4aXQgZWFybHkgZm9yIHN0cmluZ3MgdG8gYXZvaWQgYSBwZXJmb3JtYW5jZSBoaXQgaW4gc29tZSBlbnZpcm9ubWVudHMuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgLy8gUmVjdXJzaXZlbHkgY29udmVydCB2YWx1ZXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICByZXR1cm4gYXJyYXlNYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyAnJztcbiAgfVxuICBpZiAoaXNTeW1ib2wodmFsdWUpKSB7XG4gICAgcmV0dXJuIHN5bWJvbFRvU3RyaW5nID8gc3ltYm9sVG9TdHJpbmcuY2FsbCh2YWx1ZSkgOiAnJztcbiAgfVxuICB2YXIgcmVzdWx0ID0gKHZhbHVlICsgJycpO1xuICByZXR1cm4gKHJlc3VsdCA9PSAnMCcgJiYgKDEgLyB2YWx1ZSkgPT0gLUlORklOSVRZKSA/ICctMCcgOiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VUb1N0cmluZztcbiIsIi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8udW5hcnlgIHdpdGhvdXQgc3VwcG9ydCBmb3Igc3RvcmluZyBtZXRhZGF0YS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2FwIGFyZ3VtZW50cyBmb3IuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBjYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJhc2VVbmFyeShmdW5jKSB7XG4gIHJldHVybiBmdW5jdGlvbih2YWx1ZSkge1xuICAgIHJldHVybiBmdW5jKHZhbHVlKTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYmFzZVVuYXJ5O1xuIiwiaW1wb3J0IGFycmF5TWFwIGZyb20gJy4vX2FycmF5TWFwLmpzJztcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy52YWx1ZXNgIGFuZCBgXy52YWx1ZXNJbmAgd2hpY2ggY3JlYXRlcyBhblxuICogYXJyYXkgb2YgYG9iamVjdGAgcHJvcGVydHkgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3BlcnR5IG5hbWVzXG4gKiBvZiBgcHJvcHNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VWYWx1ZXMob2JqZWN0LCBwcm9wcykge1xuICByZXR1cm4gYXJyYXlNYXAocHJvcHMsIGZ1bmN0aW9uKGtleSkge1xuICAgIHJldHVybiBvYmplY3Rba2V5XTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGJhc2VWYWx1ZXM7XG4iLCJpbXBvcnQgYXNzaWduVmFsdWUgZnJvbSAnLi9fYXNzaWduVmFsdWUuanMnO1xuaW1wb3J0IGJhc2VBc3NpZ25WYWx1ZSBmcm9tICcuL19iYXNlQXNzaWduVmFsdWUuanMnO1xuXG4vKipcbiAqIENvcGllcyBwcm9wZXJ0aWVzIG9mIGBzb3VyY2VgIHRvIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gc291cmNlIFRoZSBvYmplY3QgdG8gY29weSBwcm9wZXJ0aWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgaWRlbnRpZmllcnMgdG8gY29weS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0PXt9XSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyB0by5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvcGllZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBjb3B5T2JqZWN0KHNvdXJjZSwgcHJvcHMsIG9iamVjdCwgY3VzdG9taXplcikge1xuICB2YXIgaXNOZXcgPSAhb2JqZWN0O1xuICBvYmplY3QgfHwgKG9iamVjdCA9IHt9KTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhciBrZXkgPSBwcm9wc1tpbmRleF07XG5cbiAgICB2YXIgbmV3VmFsdWUgPSBjdXN0b21pemVyXG4gICAgICA/IGN1c3RvbWl6ZXIob2JqZWN0W2tleV0sIHNvdXJjZVtrZXldLCBrZXksIG9iamVjdCwgc291cmNlKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3VmFsdWUgPSBzb3VyY2Vba2V5XTtcbiAgICB9XG4gICAgaWYgKGlzTmV3KSB7XG4gICAgICBiYXNlQXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIG5ld1ZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY29weU9iamVjdDtcbiIsImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuXG4vKiogVXNlZCB0byBkZXRlY3Qgb3ZlcnJlYWNoaW5nIGNvcmUtanMgc2hpbXMuICovXG52YXIgY29yZUpzRGF0YSA9IHJvb3RbJ19fY29yZS1qc19zaGFyZWRfXyddO1xuXG5leHBvcnQgZGVmYXVsdCBjb3JlSnNEYXRhO1xuIiwiaW1wb3J0IGJhc2VSZXN0IGZyb20gJy4vX2Jhc2VSZXN0LmpzJztcbmltcG9ydCBpc0l0ZXJhdGVlQ2FsbCBmcm9tICcuL19pc0l0ZXJhdGVlQ2FsbC5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIGxpa2UgYF8uYXNzaWduYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXNzaWduZXIgVGhlIGZ1bmN0aW9uIHRvIGFzc2lnbiB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBhc3NpZ25lciBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQXNzaWduZXIoYXNzaWduZXIpIHtcbiAgcmV0dXJuIGJhc2VSZXN0KGZ1bmN0aW9uKG9iamVjdCwgc291cmNlcykge1xuICAgIHZhciBpbmRleCA9IC0xLFxuICAgICAgICBsZW5ndGggPSBzb3VyY2VzLmxlbmd0aCxcbiAgICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA+IDEgPyBzb3VyY2VzW2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkLFxuICAgICAgICBndWFyZCA9IGxlbmd0aCA+IDIgPyBzb3VyY2VzWzJdIDogdW5kZWZpbmVkO1xuXG4gICAgY3VzdG9taXplciA9IChhc3NpZ25lci5sZW5ndGggPiAzICYmIHR5cGVvZiBjdXN0b21pemVyID09ICdmdW5jdGlvbicpXG4gICAgICA/IChsZW5ndGgtLSwgY3VzdG9taXplcilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHNvdXJjZXNbMF0sIHNvdXJjZXNbMV0sIGd1YXJkKSkge1xuICAgICAgY3VzdG9taXplciA9IGxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiBjdXN0b21pemVyO1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9XG4gICAgb2JqZWN0ID0gT2JqZWN0KG9iamVjdCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBzb3VyY2UgPSBzb3VyY2VzW2luZGV4XTtcbiAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgYXNzaWduZXIob2JqZWN0LCBzb3VyY2UsIGluZGV4LCBjdXN0b21pemVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUFzc2lnbmVyO1xuIiwiaW1wb3J0IGVxIGZyb20gJy4vZXEuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgYnkgYF8uZGVmYXVsdHNgIHRvIGN1c3RvbWl6ZSBpdHMgYF8uYXNzaWduSW5gIHVzZSB0byBhc3NpZ24gcHJvcGVydGllc1xuICogb2Ygc291cmNlIG9iamVjdHMgdG8gdGhlIGRlc3RpbmF0aW9uIG9iamVjdCBmb3IgYWxsIGRlc3RpbmF0aW9uIHByb3BlcnRpZXNcbiAqIHRoYXQgcmVzb2x2ZSB0byBgdW5kZWZpbmVkYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSBvYmpWYWx1ZSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXG4gKiBAcGFyYW0geyp9IHNyY1ZhbHVlIFRoZSBzb3VyY2UgdmFsdWUuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGFzc2lnbi5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIHBhcmVudCBvYmplY3Qgb2YgYG9ialZhbHVlYC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSB2YWx1ZSB0byBhc3NpZ24uXG4gKi9cbmZ1bmN0aW9uIGN1c3RvbURlZmF1bHRzQXNzaWduSW4ob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXksIG9iamVjdCkge1xuICBpZiAob2JqVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgKGVxKG9ialZhbHVlLCBvYmplY3RQcm90b1trZXldKSAmJiAhaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpKSB7XG4gICAgcmV0dXJuIHNyY1ZhbHVlO1xuICB9XG4gIHJldHVybiBvYmpWYWx1ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbjtcbiIsImltcG9ydCBnZXROYXRpdmUgZnJvbSAnLi9fZ2V0TmF0aXZlLmpzJztcblxudmFyIGRlZmluZVByb3BlcnR5ID0gKGZ1bmN0aW9uKCkge1xuICB0cnkge1xuICAgIHZhciBmdW5jID0gZ2V0TmF0aXZlKE9iamVjdCwgJ2RlZmluZVByb3BlcnR5Jyk7XG4gICAgZnVuYyh7fSwgJycsIHt9KTtcbiAgICByZXR1cm4gZnVuYztcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZVByb3BlcnR5O1xuIiwiaW1wb3J0IGJhc2VQcm9wZXJ0eU9mIGZyb20gJy4vX2Jhc2VQcm9wZXJ0eU9mLmpzJztcblxuLyoqIFVzZWQgdG8gbWFwIGNoYXJhY3RlcnMgdG8gSFRNTCBlbnRpdGllcy4gKi9cbnZhciBodG1sRXNjYXBlcyA9IHtcbiAgJyYnOiAnJmFtcDsnLFxuICAnPCc6ICcmbHQ7JyxcbiAgJz4nOiAnJmd0OycsXG4gICdcIic6ICcmcXVvdDsnLFxuICBcIidcIjogJyYjMzk7J1xufTtcblxuLyoqXG4gKiBVc2VkIGJ5IGBfLmVzY2FwZWAgdG8gY29udmVydCBjaGFyYWN0ZXJzIHRvIEhUTUwgZW50aXRpZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIGVzY2FwZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVzY2FwZWQgY2hhcmFjdGVyLlxuICovXG52YXIgZXNjYXBlSHRtbENoYXIgPSBiYXNlUHJvcGVydHlPZihodG1sRXNjYXBlcyk7XG5cbmV4cG9ydCBkZWZhdWx0IGVzY2FwZUh0bWxDaGFyO1xuIiwiLyoqIFVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuICovXG52YXIgc3RyaW5nRXNjYXBlcyA9IHtcbiAgJ1xcXFwnOiAnXFxcXCcsXG4gIFwiJ1wiOiBcIidcIixcbiAgJ1xcbic6ICduJyxcbiAgJ1xccic6ICdyJyxcbiAgJ1xcdTIwMjgnOiAndTIwMjgnLFxuICAnXFx1MjAyOSc6ICd1MjAyOSdcbn07XG5cbi8qKlxuICogVXNlZCBieSBgXy50ZW1wbGF0ZWAgdG8gZXNjYXBlIGNoYXJhY3RlcnMgZm9yIGluY2x1c2lvbiBpbiBjb21waWxlZCBzdHJpbmcgbGl0ZXJhbHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjaHIgVGhlIG1hdGNoZWQgY2hhcmFjdGVyIHRvIGVzY2FwZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVzY2FwZWQgY2hhcmFjdGVyLlxuICovXG5mdW5jdGlvbiBlc2NhcGVTdHJpbmdDaGFyKGNocikge1xuICByZXR1cm4gJ1xcXFwnICsgc3RyaW5nRXNjYXBlc1tjaHJdO1xufVxuXG5leHBvcnQgZGVmYXVsdCBlc2NhcGVTdHJpbmdDaGFyO1xuIiwiLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBnbG9iYWxgIGZyb20gTm9kZS5qcy4gKi9cbnZhciBmcmVlR2xvYmFsID0gdHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwgJiYgZ2xvYmFsLk9iamVjdCA9PT0gT2JqZWN0ICYmIGdsb2JhbDtcblxuZXhwb3J0IGRlZmF1bHQgZnJlZUdsb2JhbDtcbiIsImltcG9ydCBiYXNlSXNOYXRpdmUgZnJvbSAnLi9fYmFzZUlzTmF0aXZlLmpzJztcbmltcG9ydCBnZXRWYWx1ZSBmcm9tICcuL19nZXRWYWx1ZS5qcyc7XG5cbi8qKlxuICogR2V0cyB0aGUgbmF0aXZlIGZ1bmN0aW9uIGF0IGBrZXlgIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IFRoZSBrZXkgb2YgdGhlIG1ldGhvZCB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgZnVuY3Rpb24gaWYgaXQncyBuYXRpdmUsIGVsc2UgYHVuZGVmaW5lZGAuXG4gKi9cbmZ1bmN0aW9uIGdldE5hdGl2ZShvYmplY3QsIGtleSkge1xuICB2YXIgdmFsdWUgPSBnZXRWYWx1ZShvYmplY3QsIGtleSk7XG4gIHJldHVybiBiYXNlSXNOYXRpdmUodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldE5hdGl2ZTtcbiIsImltcG9ydCBvdmVyQXJnIGZyb20gJy4vX292ZXJBcmcuanMnO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBnZXRQcm90b3R5cGUgPSBvdmVyQXJnKE9iamVjdC5nZXRQcm90b3R5cGVPZiwgT2JqZWN0KTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0UHJvdG90eXBlO1xuIiwiaW1wb3J0IFN5bWJvbCBmcm9tICcuL19TeW1ib2wuanMnO1xuXG4vKiogVXNlZCBmb3IgYnVpbHQtaW4gbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGVcbiAqIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgbmF0aXZlT2JqZWN0VG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgc3ltVG9TdHJpbmdUYWcgPSBTeW1ib2wgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlR2V0VGFnYCB3aGljaCBpZ25vcmVzIGBTeW1ib2wudG9TdHJpbmdUYWdgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSByYXcgYHRvU3RyaW5nVGFnYC5cbiAqL1xuZnVuY3Rpb24gZ2V0UmF3VGFnKHZhbHVlKSB7XG4gIHZhciBpc093biA9IGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsIHN5bVRvU3RyaW5nVGFnKSxcbiAgICAgIHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcblxuICB0cnkge1xuICAgIHZhbHVlW3N5bVRvU3RyaW5nVGFnXSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgdW5tYXNrZWQgPSB0cnVlO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIHZhciByZXN1bHQgPSBuYXRpdmVPYmplY3RUb1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgaWYgKHVubWFza2VkKSB7XG4gICAgaWYgKGlzT3duKSB7XG4gICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB0YWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ107XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFJhd1RhZztcbiIsIi8qKlxuICogR2V0cyB0aGUgdmFsdWUgYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb2JqZWN0XSBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGdldFZhbHVlKG9iamVjdCwga2V5KSB7XG4gIHJldHVybiBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdFtrZXldO1xufVxuXG5leHBvcnQgZGVmYXVsdCBnZXRWYWx1ZTtcbiIsIi8qKiBVc2VkIGFzIHJlZmVyZW5jZXMgZm9yIHZhcmlvdXMgYE51bWJlcmAgY29uc3RhbnRzLiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMuICovXG52YXIgcmVJc1VpbnQgPSAvXig/OjB8WzEtOV1cXGQqKSQvO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBpbmRleC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD1NQVhfU0FGRV9JTlRFR0VSXSBUaGUgdXBwZXIgYm91bmRzIG9mIGEgdmFsaWQgaW5kZXguXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGluZGV4LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSW5kZXgodmFsdWUsIGxlbmd0aCkge1xuICB2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuXG4gIHJldHVybiAhIWxlbmd0aCAmJlxuICAgICh0eXBlID09ICdudW1iZXInIHx8XG4gICAgICAodHlwZSAhPSAnc3ltYm9sJyAmJiByZUlzVWludC50ZXN0KHZhbHVlKSkpICYmXG4gICAgICAgICh2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDwgbGVuZ3RoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNJbmRleDtcbiIsImltcG9ydCBlcSBmcm9tICcuL2VxLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcbmltcG9ydCBpc0luZGV4IGZyb20gJy4vX2lzSW5kZXguanMnO1xuaW1wb3J0IGlzT2JqZWN0IGZyb20gJy4vaXNPYmplY3QuanMnO1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gYXJndW1lbnRzIGFyZSBmcm9tIGFuIGl0ZXJhdGVlIGNhbGwuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSB2YWx1ZSBhcmd1bWVudC5cbiAqIEBwYXJhbSB7Kn0gaW5kZXggVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBpbmRleCBvciBrZXkgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IG9iamVjdCBUaGUgcG90ZW50aWFsIGl0ZXJhdGVlIG9iamVjdCBhcmd1bWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXJndW1lbnRzIGFyZSBmcm9tIGFuIGl0ZXJhdGVlIGNhbGwsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0l0ZXJhdGVlQ2FsbCh2YWx1ZSwgaW5kZXgsIG9iamVjdCkge1xuICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIHR5cGUgPSB0eXBlb2YgaW5kZXg7XG4gIGlmICh0eXBlID09ICdudW1iZXInXG4gICAgICAgID8gKGlzQXJyYXlMaWtlKG9iamVjdCkgJiYgaXNJbmRleChpbmRleCwgb2JqZWN0Lmxlbmd0aCkpXG4gICAgICAgIDogKHR5cGUgPT0gJ3N0cmluZycgJiYgaW5kZXggaW4gb2JqZWN0KVxuICAgICAgKSB7XG4gICAgcmV0dXJuIGVxKG9iamVjdFtpbmRleF0sIHZhbHVlKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzSXRlcmF0ZWVDYWxsO1xuIiwiaW1wb3J0IGNvcmVKc0RhdGEgZnJvbSAnLi9fY29yZUpzRGF0YS5qcyc7XG5cbi8qKiBVc2VkIHRvIGRldGVjdCBtZXRob2RzIG1hc3F1ZXJhZGluZyBhcyBuYXRpdmUuICovXG52YXIgbWFza1NyY0tleSA9IChmdW5jdGlvbigpIHtcbiAgdmFyIHVpZCA9IC9bXi5dKyQvLmV4ZWMoY29yZUpzRGF0YSAmJiBjb3JlSnNEYXRhLmtleXMgJiYgY29yZUpzRGF0YS5rZXlzLklFX1BST1RPIHx8ICcnKTtcbiAgcmV0dXJuIHVpZCA/ICgnU3ltYm9sKHNyYylfMS4nICsgdWlkKSA6ICcnO1xufSgpKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYGZ1bmNgIGhhcyBpdHMgc291cmNlIG1hc2tlZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGlzIG1hc2tlZCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc01hc2tlZChmdW5jKSB7XG4gIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgKG1hc2tTcmNLZXkgaW4gZnVuYyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzTWFza2VkO1xuIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBsaWtlbHkgYSBwcm90b3R5cGUgb2JqZWN0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvdG90eXBlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzUHJvdG90eXBlKHZhbHVlKSB7XG4gIHZhciBDdG9yID0gdmFsdWUgJiYgdmFsdWUuY29uc3RydWN0b3IsXG4gICAgICBwcm90byA9ICh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlKSB8fCBvYmplY3RQcm90bztcblxuICByZXR1cm4gdmFsdWUgPT09IHByb3RvO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc1Byb3RvdHlwZTtcbiIsImltcG9ydCBvdmVyQXJnIGZyb20gJy4vX292ZXJBcmcuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlS2V5cyA9IG92ZXJBcmcoT2JqZWN0LmtleXMsIE9iamVjdCk7XG5cbmV4cG9ydCBkZWZhdWx0IG5hdGl2ZUtleXM7XG4iLCIvKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZVxuICogW2BPYmplY3Qua2V5c2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzcuMC8jc2VjLW9iamVjdC5rZXlzKVxuICogZXhjZXB0IHRoYXQgaXQgaW5jbHVkZXMgaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZnVuY3Rpb24gbmF0aXZlS2V5c0luKG9iamVjdCkge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIGlmIChvYmplY3QgIT0gbnVsbCkge1xuICAgIGZvciAodmFyIGtleSBpbiBPYmplY3Qob2JqZWN0KSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbmF0aXZlS2V5c0luO1xuIiwiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZVByb2Nlc3MgPSBtb2R1bGVFeHBvcnRzICYmIGZyZWVHbG9iYWwucHJvY2VzcztcblxuLyoqIFVzZWQgdG8gYWNjZXNzIGZhc3RlciBOb2RlLmpzIGhlbHBlcnMuICovXG52YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgLy8gVXNlIGB1dGlsLnR5cGVzYCBmb3IgTm9kZS5qcyAxMCsuXG4gICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICBpZiAodHlwZXMpIHtcbiAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG5cbiAgICAvLyBMZWdhY3kgYHByb2Nlc3MuYmluZGluZygndXRpbCcpYCBmb3IgTm9kZS5qcyA8IDEwLlxuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IG5vZGVVdGlsO1xuIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlXG4gKiBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ29udmVydHMgYHZhbHVlYCB0byBhIHN0cmluZyB1c2luZyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0VG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG9iamVjdFRvU3RyaW5nO1xuIiwiLyoqXG4gKiBDcmVhdGVzIGEgdW5hcnkgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIGl0cyBhcmd1bWVudCB0cmFuc2Zvcm1lZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gd3JhcC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgYXJndW1lbnQgdHJhbnNmb3JtLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG92ZXJBcmcoZnVuYywgdHJhbnNmb3JtKSB7XG4gIHJldHVybiBmdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4gZnVuYyh0cmFuc2Zvcm0oYXJnKSk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IG92ZXJBcmc7XG4iLCJpbXBvcnQgYXBwbHkgZnJvbSAnLi9fYXBwbHkuanMnO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlUmVzdGAgd2hpY2ggdHJhbnNmb3JtcyB0aGUgcmVzdCBhcnJheS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHRyYW5zZm9ybSBUaGUgcmVzdCBhcnJheSB0cmFuc2Zvcm0uXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gb3ZlclJlc3QoZnVuYywgc3RhcnQsIHRyYW5zZm9ybSkge1xuICBzdGFydCA9IG5hdGl2ZU1heChzdGFydCA9PT0gdW5kZWZpbmVkID8gKGZ1bmMubGVuZ3RoIC0gMSkgOiBzdGFydCwgMCk7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgYXJncyA9IGFyZ3VtZW50cyxcbiAgICAgICAgaW5kZXggPSAtMSxcbiAgICAgICAgbGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gc3RhcnQsIDApLFxuICAgICAgICBhcnJheSA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgYXJyYXlbaW5kZXhdID0gYXJnc1tzdGFydCArIGluZGV4XTtcbiAgICB9XG4gICAgaW5kZXggPSAtMTtcbiAgICB2YXIgb3RoZXJBcmdzID0gQXJyYXkoc3RhcnQgKyAxKTtcbiAgICB3aGlsZSAoKytpbmRleCA8IHN0YXJ0KSB7XG4gICAgICBvdGhlckFyZ3NbaW5kZXhdID0gYXJnc1tpbmRleF07XG4gICAgfVxuICAgIG90aGVyQXJnc1tzdGFydF0gPSB0cmFuc2Zvcm0oYXJyYXkpO1xuICAgIHJldHVybiBhcHBseShmdW5jLCB0aGlzLCBvdGhlckFyZ3MpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBvdmVyUmVzdDtcbiIsIi8qKiBVc2VkIHRvIG1hdGNoIHRlbXBsYXRlIGRlbGltaXRlcnMuICovXG52YXIgcmVFc2NhcGUgPSAvPCUtKFtcXHNcXFNdKz8pJT4vZztcblxuZXhwb3J0IGRlZmF1bHQgcmVFc2NhcGU7XG4iLCIvKiogVXNlZCB0byBtYXRjaCB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLiAqL1xudmFyIHJlRXZhbHVhdGUgPSAvPCUoW1xcc1xcU10rPyklPi9nO1xuXG5leHBvcnQgZGVmYXVsdCByZUV2YWx1YXRlO1xuIiwiLyoqIFVzZWQgdG8gbWF0Y2ggdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbnZhciByZUludGVycG9sYXRlID0gLzwlPShbXFxzXFxTXSs/KSU+L2c7XG5cbmV4cG9ydCBkZWZhdWx0IHJlSW50ZXJwb2xhdGU7XG4iLCJpbXBvcnQgZnJlZUdsb2JhbCBmcm9tICcuL19mcmVlR2xvYmFsLmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBzZWxmYC4gKi9cbnZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYgJiYgc2VsZi5PYmplY3QgPT09IE9iamVjdCAmJiBzZWxmO1xuXG4vKiogVXNlZCBhcyBhIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIG9iamVjdC4gKi9cbnZhciByb290ID0gZnJlZUdsb2JhbCB8fCBmcmVlU2VsZiB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXG5leHBvcnQgZGVmYXVsdCByb290O1xuIiwiaW1wb3J0IGJhc2VTZXRUb1N0cmluZyBmcm9tICcuL19iYXNlU2V0VG9TdHJpbmcuanMnO1xuaW1wb3J0IHNob3J0T3V0IGZyb20gJy4vX3Nob3J0T3V0LmpzJztcblxuLyoqXG4gKiBTZXRzIHRoZSBgdG9TdHJpbmdgIG1ldGhvZCBvZiBgZnVuY2AgdG8gcmV0dXJuIGBzdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBzdHJpbmcgVGhlIGB0b1N0cmluZ2AgcmVzdWx0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAqL1xudmFyIHNldFRvU3RyaW5nID0gc2hvcnRPdXQoYmFzZVNldFRvU3RyaW5nKTtcblxuZXhwb3J0IGRlZmF1bHQgc2V0VG9TdHJpbmc7XG4iLCIvKiogVXNlZCB0byBkZXRlY3QgaG90IGZ1bmN0aW9ucyBieSBudW1iZXIgb2YgY2FsbHMgd2l0aGluIGEgc3BhbiBvZiBtaWxsaXNlY29uZHMuICovXG52YXIgSE9UX0NPVU5UID0gODAwLFxuICAgIEhPVF9TUEFOID0gMTY7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVOb3cgPSBEYXRlLm5vdztcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCdsbCBzaG9ydCBvdXQgYW5kIGludm9rZSBgaWRlbnRpdHlgIGluc3RlYWRcbiAqIG9mIGBmdW5jYCB3aGVuIGl0J3MgY2FsbGVkIGBIT1RfQ09VTlRgIG9yIG1vcmUgdGltZXMgaW4gYEhPVF9TUEFOYFxuICogbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byByZXN0cmljdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHNob3J0YWJsZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gc2hvcnRPdXQoZnVuYykge1xuICB2YXIgY291bnQgPSAwLFxuICAgICAgbGFzdENhbGxlZCA9IDA7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIHZhciBzdGFtcCA9IG5hdGl2ZU5vdygpLFxuICAgICAgICByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xuXG4gICAgbGFzdENhbGxlZCA9IHN0YW1wO1xuICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY291bnQgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gZnVuYy5hcHBseSh1bmRlZmluZWQsIGFyZ3VtZW50cyk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHNob3J0T3V0O1xuIiwiLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgZGVjb21waWxlZCBzb3VyY2Ugb2YgZnVuY3Rpb25zLiAqL1xudmFyIGZ1bmNUb1N0cmluZyA9IGZ1bmNQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBDb252ZXJ0cyBgZnVuY2AgdG8gaXRzIHNvdXJjZSBjb2RlLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICogQHJldHVybnMge3N0cmluZ30gUmV0dXJucyB0aGUgc291cmNlIGNvZGUuXG4gKi9cbmZ1bmN0aW9uIHRvU291cmNlKGZ1bmMpIHtcbiAgaWYgKGZ1bmMgIT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZnVuY1RvU3RyaW5nLmNhbGwoZnVuYyk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChmdW5jICsgJycpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZGVmYXVsdCB0b1NvdXJjZTtcbiIsImltcG9ydCBjb3B5T2JqZWN0IGZyb20gJy4vX2NvcHlPYmplY3QuanMnO1xuaW1wb3J0IGNyZWF0ZUFzc2lnbmVyIGZyb20gJy4vX2NyZWF0ZUFzc2lnbmVyLmpzJztcbmltcG9ydCBrZXlzSW4gZnJvbSAnLi9rZXlzSW4uanMnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIGxpa2UgYF8uYXNzaWduSW5gIGV4Y2VwdCB0aGF0IGl0IGFjY2VwdHMgYGN1c3RvbWl6ZXJgXG4gKiB3aGljaCBpcyBpbnZva2VkIHRvIHByb2R1Y2UgdGhlIGFzc2lnbmVkIHZhbHVlcy4gSWYgYGN1c3RvbWl6ZXJgIHJldHVybnNcbiAqIGB1bmRlZmluZWRgLCBhc3NpZ25tZW50IGlzIGhhbmRsZWQgYnkgdGhlIG1ldGhvZCBpbnN0ZWFkLiBUaGUgYGN1c3RvbWl6ZXJgXG4gKiBpcyBpbnZva2VkIHdpdGggZml2ZSBhcmd1bWVudHM6IChvYmpWYWx1ZSwgc3JjVmFsdWUsIGtleSwgb2JqZWN0LCBzb3VyY2UpLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBvYmplY3RgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBhbGlhcyBleHRlbmRXaXRoXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBkZXN0aW5hdGlvbiBvYmplY3QuXG4gKiBAcGFyYW0gey4uLk9iamVjdH0gc291cmNlcyBUaGUgc291cmNlIG9iamVjdHMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBhc3NpZ25lZCB2YWx1ZXMuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICogQHNlZSBfLmFzc2lnbldpdGhcbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gY3VzdG9taXplcihvYmpWYWx1ZSwgc3JjVmFsdWUpIHtcbiAqICAgcmV0dXJuIF8uaXNVbmRlZmluZWQob2JqVmFsdWUpID8gc3JjVmFsdWUgOiBvYmpWYWx1ZTtcbiAqIH1cbiAqXG4gKiB2YXIgZGVmYXVsdHMgPSBfLnBhcnRpYWxSaWdodChfLmFzc2lnbkluV2l0aCwgY3VzdG9taXplcik7XG4gKlxuICogZGVmYXVsdHMoeyAnYSc6IDEgfSwgeyAnYic6IDIgfSwgeyAnYSc6IDMgfSk7XG4gKiAvLyA9PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAqL1xudmFyIGFzc2lnbkluV2l0aCA9IGNyZWF0ZUFzc2lnbmVyKGZ1bmN0aW9uKG9iamVjdCwgc291cmNlLCBzcmNJbmRleCwgY3VzdG9taXplcikge1xuICBjb3B5T2JqZWN0KHNvdXJjZSwga2V5c0luKHNvdXJjZSksIG9iamVjdCwgY3VzdG9taXplcik7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgYXNzaWduSW5XaXRoO1xuIiwiaW1wb3J0IGFwcGx5IGZyb20gJy4vX2FwcGx5LmpzJztcbmltcG9ydCBiYXNlUmVzdCBmcm9tICcuL19iYXNlUmVzdC5qcyc7XG5pbXBvcnQgaXNFcnJvciBmcm9tICcuL2lzRXJyb3IuanMnO1xuXG4vKipcbiAqIEF0dGVtcHRzIHRvIGludm9rZSBgZnVuY2AsIHJldHVybmluZyBlaXRoZXIgdGhlIHJlc3VsdCBvciB0aGUgY2F1Z2h0IGVycm9yXG4gKiBvYmplY3QuIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgdG8gYGZ1bmNgIHdoZW4gaXQncyBpbnZva2VkLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhdHRlbXB0LlxuICogQHBhcmFtIHsuLi4qfSBbYXJnc10gVGhlIGFyZ3VtZW50cyB0byBpbnZva2UgYGZ1bmNgIHdpdGguXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgYGZ1bmNgIHJlc3VsdCBvciBlcnJvciBvYmplY3QuXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIEF2b2lkIHRocm93aW5nIGVycm9ycyBmb3IgaW52YWxpZCBzZWxlY3RvcnMuXG4gKiB2YXIgZWxlbWVudHMgPSBfLmF0dGVtcHQoZnVuY3Rpb24oc2VsZWN0b3IpIHtcbiAqICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xuICogfSwgJz5fPicpO1xuICpcbiAqIGlmIChfLmlzRXJyb3IoZWxlbWVudHMpKSB7XG4gKiAgIGVsZW1lbnRzID0gW107XG4gKiB9XG4gKi9cbnZhciBhdHRlbXB0ID0gYmFzZVJlc3QoZnVuY3Rpb24oZnVuYywgYXJncykge1xuICB0cnkge1xuICAgIHJldHVybiBhcHBseShmdW5jLCB1bmRlZmluZWQsIGFyZ3MpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGlzRXJyb3IoZSkgPyBlIDogbmV3IEVycm9yKGUpO1xuICB9XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgYXR0ZW1wdDtcbiIsIi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBgdmFsdWVgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMi40LjBcbiAqIEBjYXRlZ29yeSBVdGlsXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byByZXR1cm4gZnJvbSB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgY29uc3RhbnQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3RzID0gXy50aW1lcygyLCBfLmNvbnN0YW50KHsgJ2EnOiAxIH0pKTtcbiAqXG4gKiBjb25zb2xlLmxvZyhvYmplY3RzKTtcbiAqIC8vID0+IFt7ICdhJzogMSB9LCB7ICdhJzogMSB9XVxuICpcbiAqIGNvbnNvbGUubG9nKG9iamVjdHNbMF0gPT09IG9iamVjdHNbMV0pO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBjb25zdGFudCh2YWx1ZSkge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb25zdGFudDtcbiIsIi8qKlxuICogUGVyZm9ybXMgYVxuICogW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBvYmplY3QgPSB7ICdhJzogMSB9O1xuICogdmFyIG90aGVyID0geyAnYSc6IDEgfTtcbiAqXG4gKiBfLmVxKG9iamVjdCwgb2JqZWN0KTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmVxKG9iamVjdCwgb3RoZXIpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmVxKCdhJywgJ2EnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmVxKCdhJywgT2JqZWN0KCdhJykpO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmVxKE5hTiwgTmFOKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gZXEodmFsdWUsIG90aGVyKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgKHZhbHVlICE9PSB2YWx1ZSAmJiBvdGhlciAhPT0gb3RoZXIpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBlcTtcbiIsImltcG9ydCBlc2NhcGVIdG1sQ2hhciBmcm9tICcuL19lc2NhcGVIdG1sQ2hhci5qcyc7XG5pbXBvcnQgdG9TdHJpbmcgZnJvbSAnLi90b1N0cmluZy5qcyc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIEhUTUwgZW50aXRpZXMgYW5kIEhUTUwgY2hhcmFjdGVycy4gKi9cbnZhciByZVVuZXNjYXBlZEh0bWwgPSAvWyY8PlwiJ10vZyxcbiAgICByZUhhc1VuZXNjYXBlZEh0bWwgPSBSZWdFeHAocmVVbmVzY2FwZWRIdG1sLnNvdXJjZSk7XG5cbi8qKlxuICogQ29udmVydHMgdGhlIGNoYXJhY3RlcnMgXCImXCIsIFwiPFwiLCBcIj5cIiwgJ1wiJywgYW5kIFwiJ1wiIGluIGBzdHJpbmdgIHRvIHRoZWlyXG4gKiBjb3JyZXNwb25kaW5nIEhUTUwgZW50aXRpZXMuXG4gKlxuICogKipOb3RlOioqIE5vIG90aGVyIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQuIFRvIGVzY2FwZSBhZGRpdGlvbmFsXG4gKiBjaGFyYWN0ZXJzIHVzZSBhIHRoaXJkLXBhcnR5IGxpYnJhcnkgbGlrZSBbX2hlX10oaHR0cHM6Ly9tdGhzLmJlL2hlKS5cbiAqXG4gKiBUaG91Z2ggdGhlIFwiPlwiIGNoYXJhY3RlciBpcyBlc2NhcGVkIGZvciBzeW1tZXRyeSwgY2hhcmFjdGVycyBsaWtlXG4gKiBcIj5cIiBhbmQgXCIvXCIgZG9uJ3QgbmVlZCBlc2NhcGluZyBpbiBIVE1MIGFuZCBoYXZlIG5vIHNwZWNpYWwgbWVhbmluZ1xuICogdW5sZXNzIHRoZXkncmUgcGFydCBvZiBhIHRhZyBvciB1bnF1b3RlZCBhdHRyaWJ1dGUgdmFsdWUuIFNlZVxuICogW01hdGhpYXMgQnluZW5zJ3MgYXJ0aWNsZV0oaHR0cHM6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2FtYmlndW91cy1hbXBlcnNhbmRzKVxuICogKHVuZGVyIFwic2VtaS1yZWxhdGVkIGZ1biBmYWN0XCIpIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogV2hlbiB3b3JraW5nIHdpdGggSFRNTCB5b3Ugc2hvdWxkIGFsd2F5c1xuICogW3F1b3RlIGF0dHJpYnV0ZSB2YWx1ZXNdKGh0dHA6Ly93b25rby5jb20vcG9zdC9odG1sLWVzY2FwaW5nKSB0byByZWR1Y2VcbiAqIFhTUyB2ZWN0b3JzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBTdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgc3RyaW5nIHRvIGVzY2FwZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGVzY2FwZWQgc3RyaW5nLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmVzY2FwZSgnZnJlZCwgYmFybmV5LCAmIHBlYmJsZXMnKTtcbiAqIC8vID0+ICdmcmVkLCBiYXJuZXksICZhbXA7IHBlYmJsZXMnXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZShzdHJpbmcpIHtcbiAgc3RyaW5nID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgcmV0dXJuIChzdHJpbmcgJiYgcmVIYXNVbmVzY2FwZWRIdG1sLnRlc3Qoc3RyaW5nKSlcbiAgICA/IHN0cmluZy5yZXBsYWNlKHJlVW5lc2NhcGVkSHRtbCwgZXNjYXBlSHRtbENoYXIpXG4gICAgOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGVzY2FwZTtcbiIsIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgZmlyc3QgYXJndW1lbnQgaXQgcmVjZWl2ZXMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ2EnOiAxIH07XG4gKlxuICogY29uc29sZS5sb2coXy5pZGVudGl0eShvYmplY3QpID09PSBvYmplY3QpO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBpZGVudGl0eSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlkZW50aXR5O1xuIiwiaW1wb3J0IGJhc2VJc0FyZ3VtZW50cyBmcm9tICcuL19iYXNlSXNBcmd1bWVudHMuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBVc2VkIGZvciBidWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBCdWlsdC1pbiB2YWx1ZSByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgbGlrZWx5IGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBgYXJndW1lbnRzYCBvYmplY3QsXG4gKiAgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcmd1bWVudHMoWzEsIDIsIDNdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA/IGJhc2VJc0FyZ3VtZW50cyA6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdjYWxsZWUnKSAmJlxuICAgICFwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCAnY2FsbGVlJyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpc0FyZ3VtZW50cztcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQXJyYXkoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJyYXkoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheSgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNBcnJheShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG5leHBvcnQgZGVmYXVsdCBpc0FycmF5O1xuIiwiaW1wb3J0IGlzRnVuY3Rpb24gZnJvbSAnLi9pc0Z1bmN0aW9uLmpzJztcbmltcG9ydCBpc0xlbmd0aCBmcm9tICcuL2lzTGVuZ3RoLmpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLiBBIHZhbHVlIGlzIGNvbnNpZGVyZWQgYXJyYXktbGlrZSBpZiBpdCdzXG4gKiBub3QgYSBmdW5jdGlvbiBhbmQgaGFzIGEgYHZhbHVlLmxlbmd0aGAgdGhhdCdzIGFuIGludGVnZXIgZ3JlYXRlciB0aGFuIG9yXG4gKiBlcXVhbCB0byBgMGAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGFycmF5LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5TGlrZShbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNBcnJheUxpa2UoZG9jdW1lbnQuYm9keS5jaGlsZHJlbik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZSgnYWJjJyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNBcnJheUxpa2UodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgaXNMZW5ndGgodmFsdWUubGVuZ3RoKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzQXJyYXlMaWtlO1xuIiwiaW1wb3J0IHJvb3QgZnJvbSAnLi9fcm9vdC5qcyc7XG5pbXBvcnQgc3R1YkZhbHNlIGZyb20gJy4vc3R1YkZhbHNlLmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gcm9vdC5CdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qIEJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVJc0J1ZmZlciA9IEJ1ZmZlciA/IEJ1ZmZlci5pc0J1ZmZlciA6IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlci5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMy4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGJ1ZmZlciwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBCdWZmZXIoMikpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNCdWZmZXIobmV3IFVpbnQ4QXJyYXkoMikpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQnVmZmVyID0gbmF0aXZlSXNCdWZmZXIgfHwgc3R1YkZhbHNlO1xuXG5leHBvcnQgZGVmYXVsdCBpc0J1ZmZlcjtcbiIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5pbXBvcnQgaXNQbGFpbk9iamVjdCBmcm9tICcuL2lzUGxhaW5PYmplY3QuanMnO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgZG9tRXhjVGFnID0gJ1tvYmplY3QgRE9NRXhjZXB0aW9uXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGFuIGBFcnJvcmAsIGBFdmFsRXJyb3JgLCBgUmFuZ2VFcnJvcmAsIGBSZWZlcmVuY2VFcnJvcmAsXG4gKiBgU3ludGF4RXJyb3JgLCBgVHlwZUVycm9yYCwgb3IgYFVSSUVycm9yYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gZXJyb3Igb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNFcnJvcihuZXcgRXJyb3IpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNFcnJvcihFcnJvcik7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0Vycm9yKHZhbHVlKSB7XG4gIGlmICghaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gIHJldHVybiB0YWcgPT0gZXJyb3JUYWcgfHwgdGFnID09IGRvbUV4Y1RhZyB8fFxuICAgICh0eXBlb2YgdmFsdWUubWVzc2FnZSA9PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUubmFtZSA9PSAnc3RyaW5nJyAmJiAhaXNQbGFpbk9iamVjdCh2YWx1ZSkpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBpc0Vycm9yO1xuIiwiaW1wb3J0IGJhc2VHZXRUYWcgZnJvbSAnLi9fYmFzZUdldFRhZy5qcyc7XG5pbXBvcnQgaXNPYmplY3QgZnJvbSAnLi9pc09iamVjdC5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhc3luY1RhZyA9ICdbb2JqZWN0IEFzeW5jRnVuY3Rpb25dJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBnZW5UYWcgPSAnW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0nLFxuICAgIHByb3h5VGFnID0gJ1tvYmplY3QgUHJveHldJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYEZ1bmN0aW9uYCBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjEuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBmdW5jdGlvbiwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oXyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gVGhlIHVzZSBvZiBgT2JqZWN0I3RvU3RyaW5nYCBhdm9pZHMgaXNzdWVzIHdpdGggdGhlIGB0eXBlb2ZgIG9wZXJhdG9yXG4gIC8vIGluIFNhZmFyaSA5IHdoaWNoIHJldHVybnMgJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5cyBhbmQgb3RoZXIgY29uc3RydWN0b3JzLlxuICB2YXIgdGFnID0gYmFzZUdldFRhZyh2YWx1ZSk7XG4gIHJldHVybiB0YWcgPT0gZnVuY1RhZyB8fCB0YWcgPT0gZ2VuVGFnIHx8IHRhZyA9PSBhc3luY1RhZyB8fCB0YWcgPT0gcHJveHlUYWc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzRnVuY3Rpb247XG4iLCIvKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciB2YXJpb3VzIGBOdW1iZXJgIGNvbnN0YW50cy4gKi9cbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGFycmF5LWxpa2UgbGVuZ3RoLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBpcyBsb29zZWx5IGJhc2VkIG9uXG4gKiBbYFRvTGVuZ3RoYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9sZW5ndGgpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4wLjBcbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgbGVuZ3RoLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNMZW5ndGgoMyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0xlbmd0aChOdW1iZXIuTUlOX1ZBTFVFKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0xlbmd0aChJbmZpbml0eSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNMZW5ndGgoJzMnKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiZcbiAgICB2YWx1ZSA+IC0xICYmIHZhbHVlICUgMSA9PSAwICYmIHZhbHVlIDw9IE1BWF9TQUZFX0lOVEVHRVI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzTGVuZ3RoO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyB0aGVcbiAqIFtsYW5ndWFnZSB0eXBlXShodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtZWNtYXNjcmlwdC1sYW5ndWFnZS10eXBlcylcbiAqIG9mIGBPYmplY3RgLiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDAuMS4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc09iamVjdCh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdChbMSwgMiwgM10pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoXy5ub29wKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmICh0eXBlID09ICdvYmplY3QnIHx8IHR5cGUgPT0gJ2Z1bmN0aW9uJyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzT2JqZWN0O1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZS4gQSB2YWx1ZSBpcyBvYmplY3QtbGlrZSBpZiBpdCdzIG5vdCBgbnVsbGBcbiAqIGFuZCBoYXMgYSBgdHlwZW9mYCByZXN1bHQgb2YgXCJvYmplY3RcIi5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBvYmplY3QtbGlrZSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZSh7fSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc09iamVjdExpa2UoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShfLm5vb3ApO1xuICogLy8gPT4gZmFsc2VcbiAqXG4gKiBfLmlzT2JqZWN0TGlrZShudWxsKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGlzT2JqZWN0TGlrZTtcbiIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGdldFByb3RvdHlwZSBmcm9tICcuL19nZXRQcm90b3R5cGUuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIGZ1bmNQcm90byA9IEZ1bmN0aW9uLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIHJlc29sdmUgdGhlIGRlY29tcGlsZWQgc291cmNlIG9mIGZ1bmN0aW9ucy4gKi9cbnZhciBmdW5jVG9TdHJpbmcgPSBmdW5jUHJvdG8udG9TdHJpbmc7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBVc2VkIHRvIGluZmVyIHRoZSBgT2JqZWN0YCBjb25zdHJ1Y3Rvci4gKi9cbnZhciBvYmplY3RDdG9yU3RyaW5nID0gZnVuY1RvU3RyaW5nLmNhbGwoT2JqZWN0KTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHBsYWluIG9iamVjdCwgdGhhdCBpcywgYW4gb2JqZWN0IGNyZWF0ZWQgYnkgdGhlXG4gKiBgT2JqZWN0YCBjb25zdHJ1Y3RvciBvciBvbmUgd2l0aCBhIGBbW1Byb3RvdHlwZV1dYCBvZiBgbnVsbGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAwLjguMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkgfHwgYmFzZUdldFRhZyh2YWx1ZSkgIT0gb2JqZWN0VGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBwcm90byA9IGdldFByb3RvdHlwZSh2YWx1ZSk7XG4gIGlmIChwcm90byA9PT0gbnVsbCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBDdG9yID0gaGFzT3duUHJvcGVydHkuY2FsbChwcm90bywgJ2NvbnN0cnVjdG9yJykgJiYgcHJvdG8uY29uc3RydWN0b3I7XG4gIHJldHVybiB0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IgaW5zdGFuY2VvZiBDdG9yICYmXG4gICAgZnVuY1RvU3RyaW5nLmNhbGwoQ3RvcikgPT0gb2JqZWN0Q3RvclN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNQbGFpbk9iamVjdDtcbiIsImltcG9ydCBiYXNlR2V0VGFnIGZyb20gJy4vX2Jhc2VHZXRUYWcuanMnO1xuaW1wb3J0IGlzT2JqZWN0TGlrZSBmcm9tICcuL2lzT2JqZWN0TGlrZS5qcyc7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzeW1ib2xUYWcgPSAnW29iamVjdCBTeW1ib2xdJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgYFN5bWJvbGAgcHJpbWl0aXZlIG9yIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHN5bWJvbCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzU3ltYm9sKFN5bWJvbC5pdGVyYXRvcik7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1N5bWJvbCgnYWJjJyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N5bWJvbCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzeW1ib2wnIHx8XG4gICAgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gc3ltYm9sVGFnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgaXNTeW1ib2w7XG4iLCJpbXBvcnQgYmFzZUlzVHlwZWRBcnJheSBmcm9tICcuL19iYXNlSXNUeXBlZEFycmF5LmpzJztcbmltcG9ydCBiYXNlVW5hcnkgZnJvbSAnLi9fYmFzZVVuYXJ5LmpzJztcbmltcG9ydCBub2RlVXRpbCBmcm9tICcuL19ub2RlVXRpbC5qcyc7XG5cbi8qIE5vZGUuanMgaGVscGVyIHJlZmVyZW5jZXMuICovXG52YXIgbm9kZUlzVHlwZWRBcnJheSA9IG5vZGVVdGlsICYmIG5vZGVVdGlsLmlzVHlwZWRBcnJheTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGEgdHlwZWQgYXJyYXkuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSAzLjAuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSB0eXBlZCBhcnJheSwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzVHlwZWRBcnJheShuZXcgVWludDhBcnJheSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkoW10pO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzVHlwZWRBcnJheSA9IG5vZGVJc1R5cGVkQXJyYXkgPyBiYXNlVW5hcnkobm9kZUlzVHlwZWRBcnJheSkgOiBiYXNlSXNUeXBlZEFycmF5O1xuXG5leHBvcnQgZGVmYXVsdCBpc1R5cGVkQXJyYXk7XG4iLCJpbXBvcnQgYXJyYXlMaWtlS2V5cyBmcm9tICcuL19hcnJheUxpa2VLZXlzLmpzJztcbmltcG9ydCBiYXNlS2V5cyBmcm9tICcuL19iYXNlS2V5cy5qcyc7XG5pbXBvcnQgaXNBcnJheUxpa2UgZnJvbSAnLi9pc0FycmF5TGlrZS5qcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gKlxuICogKipOb3RlOioqIE5vbi1vYmplY3QgdmFsdWVzIGFyZSBjb2VyY2VkIHRvIG9iamVjdHMuIFNlZSB0aGVcbiAqIFtFUyBzcGVjXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy1vYmplY3Qua2V5cylcbiAqIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHN0YXRpY1xuICogQHNpbmNlIDAuMS4wXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcy5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogICB0aGlzLmIgPSAyO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gKlxuICogXy5rZXlzKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICpcbiAqIF8ua2V5cygnaGknKTtcbiAqIC8vID0+IFsnMCcsICcxJ11cbiAqL1xuZnVuY3Rpb24ga2V5cyhvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCkgOiBiYXNlS2V5cyhvYmplY3QpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBrZXlzO1xuIiwiaW1wb3J0IGFycmF5TGlrZUtleXMgZnJvbSAnLi9fYXJyYXlMaWtlS2V5cy5qcyc7XG5pbXBvcnQgYmFzZUtleXNJbiBmcm9tICcuL19iYXNlS2V5c0luLmpzJztcbmltcG9ydCBpc0FycmF5TGlrZSBmcm9tICcuL2lzQXJyYXlMaWtlLmpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKiBAZXhhbXBsZVxuICpcbiAqIGZ1bmN0aW9uIEZvbygpIHtcbiAqICAgdGhpcy5hID0gMTtcbiAqICAgdGhpcy5iID0gMjtcbiAqIH1cbiAqXG4gKiBGb28ucHJvdG90eXBlLmMgPSAzO1xuICpcbiAqIF8ua2V5c0luKG5ldyBGb28pO1xuICogLy8gPT4gWydhJywgJ2InLCAnYyddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIGtleXNJbihvYmplY3QpIHtcbiAgcmV0dXJuIGlzQXJyYXlMaWtlKG9iamVjdCkgPyBhcnJheUxpa2VLZXlzKG9iamVjdCwgdHJ1ZSkgOiBiYXNlS2V5c0luKG9iamVjdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGtleXNJbjtcbiIsIi8qKlxuICogVGhpcyBtZXRob2QgcmV0dXJucyBgZmFsc2VgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAc2luY2UgNC4xMy4wXG4gKiBAY2F0ZWdvcnkgVXRpbFxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy50aW1lcygyLCBfLnN0dWJGYWxzZSk7XG4gKiAvLyA9PiBbZmFsc2UsIGZhbHNlXVxuICovXG5mdW5jdGlvbiBzdHViRmFsc2UoKSB7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgc3R1YkZhbHNlO1xuIiwiaW1wb3J0IGFzc2lnbkluV2l0aCBmcm9tICcuL2Fzc2lnbkluV2l0aC5qcyc7XG5pbXBvcnQgYXR0ZW1wdCBmcm9tICcuL2F0dGVtcHQuanMnO1xuaW1wb3J0IGJhc2VWYWx1ZXMgZnJvbSAnLi9fYmFzZVZhbHVlcy5qcyc7XG5pbXBvcnQgY3VzdG9tRGVmYXVsdHNBc3NpZ25JbiBmcm9tICcuL19jdXN0b21EZWZhdWx0c0Fzc2lnbkluLmpzJztcbmltcG9ydCBlc2NhcGVTdHJpbmdDaGFyIGZyb20gJy4vX2VzY2FwZVN0cmluZ0NoYXIuanMnO1xuaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi9pc0Vycm9yLmpzJztcbmltcG9ydCBpc0l0ZXJhdGVlQ2FsbCBmcm9tICcuL19pc0l0ZXJhdGVlQ2FsbC5qcyc7XG5pbXBvcnQga2V5cyBmcm9tICcuL2tleXMuanMnO1xuaW1wb3J0IHJlSW50ZXJwb2xhdGUgZnJvbSAnLi9fcmVJbnRlcnBvbGF0ZS5qcyc7XG5pbXBvcnQgdGVtcGxhdGVTZXR0aW5ncyBmcm9tICcuL3RlbXBsYXRlU2V0dGluZ3MuanMnO1xuaW1wb3J0IHRvU3RyaW5nIGZyb20gJy4vdG9TdHJpbmcuanMnO1xuXG4vKiogVXNlZCB0byBtYXRjaCBlbXB0eSBzdHJpbmcgbGl0ZXJhbHMgaW4gY29tcGlsZWQgdGVtcGxhdGUgc291cmNlLiAqL1xudmFyIHJlRW1wdHlTdHJpbmdMZWFkaW5nID0gL1xcYl9fcCBcXCs9ICcnOy9nLFxuICAgIHJlRW1wdHlTdHJpbmdNaWRkbGUgPSAvXFxiKF9fcCBcXCs9KSAnJyBcXCsvZyxcbiAgICByZUVtcHR5U3RyaW5nVHJhaWxpbmcgPSAvKF9fZVxcKC4qP1xcKXxcXGJfX3RcXCkpIFxcK1xcbicnOy9nO1xuXG4vKipcbiAqIFVzZWQgdG8gbWF0Y2hcbiAqIFtFUyB0ZW1wbGF0ZSBkZWxpbWl0ZXJzXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi83LjAvI3NlYy10ZW1wbGF0ZS1saXRlcmFsLWxleGljYWwtY29tcG9uZW50cykuXG4gKi9cbnZhciByZUVzVGVtcGxhdGUgPSAvXFwkXFx7KFteXFxcXH1dKig/OlxcXFwuW15cXFxcfV0qKSopXFx9L2c7XG5cbi8qKiBVc2VkIHRvIGVuc3VyZSBjYXB0dXJpbmcgb3JkZXIgb2YgdGVtcGxhdGUgZGVsaW1pdGVycy4gKi9cbnZhciByZU5vTWF0Y2ggPSAvKCReKS87XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHVuZXNjYXBlZCBjaGFyYWN0ZXJzIGluIGNvbXBpbGVkIHN0cmluZyBsaXRlcmFscy4gKi9cbnZhciByZVVuZXNjYXBlZFN0cmluZyA9IC9bJ1xcblxcclxcdTIwMjhcXHUyMDI5XFxcXF0vZztcblxuLyoqIFVzZWQgZm9yIGJ1aWx0LWluIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29tcGlsZWQgdGVtcGxhdGUgZnVuY3Rpb24gdGhhdCBjYW4gaW50ZXJwb2xhdGUgZGF0YSBwcm9wZXJ0aWVzXG4gKiBpbiBcImludGVycG9sYXRlXCIgZGVsaW1pdGVycywgSFRNTC1lc2NhcGUgaW50ZXJwb2xhdGVkIGRhdGEgcHJvcGVydGllcyBpblxuICogXCJlc2NhcGVcIiBkZWxpbWl0ZXJzLCBhbmQgZXhlY3V0ZSBKYXZhU2NyaXB0IGluIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXJzLiBEYXRhXG4gKiBwcm9wZXJ0aWVzIG1heSBiZSBhY2Nlc3NlZCBhcyBmcmVlIHZhcmlhYmxlcyBpbiB0aGUgdGVtcGxhdGUuIElmIGEgc2V0dGluZ1xuICogb2JqZWN0IGlzIGdpdmVuLCBpdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYF8udGVtcGxhdGVTZXR0aW5nc2AgdmFsdWVzLlxuICpcbiAqICoqTm90ZToqKiBJbiB0aGUgZGV2ZWxvcG1lbnQgYnVpbGQgYF8udGVtcGxhdGVgIHV0aWxpemVzXG4gKiBbc291cmNlVVJMc10oaHR0cDovL3d3dy5odG1sNXJvY2tzLmNvbS9lbi90dXRvcmlhbHMvZGV2ZWxvcGVydG9vbHMvc291cmNlbWFwcy8jdG9jLXNvdXJjZXVybClcbiAqIGZvciBlYXNpZXIgZGVidWdnaW5nLlxuICpcbiAqIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHByZWNvbXBpbGluZyB0ZW1wbGF0ZXMgc2VlXG4gKiBbbG9kYXNoJ3MgY3VzdG9tIGJ1aWxkcyBkb2N1bWVudGF0aW9uXShodHRwczovL2xvZGFzaC5jb20vY3VzdG9tLWJ1aWxkcykuXG4gKlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gQ2hyb21lIGV4dGVuc2lvbiBzYW5kYm94ZXMgc2VlXG4gKiBbQ2hyb21lJ3MgZXh0ZW5zaW9ucyBkb2N1bWVudGF0aW9uXShodHRwczovL2RldmVsb3Blci5jaHJvbWUuY29tL2V4dGVuc2lvbnMvc2FuZGJveGluZ0V2YWwpLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBzaW5jZSAwLjEuMFxuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBTdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc3RyaW5nPScnXSBUaGUgdGVtcGxhdGUgc3RyaW5nLlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zPXt9XSBUaGUgb3B0aW9ucyBvYmplY3QuXG4gKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuZXNjYXBlPV8udGVtcGxhdGVTZXR0aW5ncy5lc2NhcGVdXG4gKiAgVGhlIEhUTUwgXCJlc2NhcGVcIiBkZWxpbWl0ZXIuXG4gKiBAcGFyYW0ge1JlZ0V4cH0gW29wdGlvbnMuZXZhbHVhdGU9Xy50ZW1wbGF0ZVNldHRpbmdzLmV2YWx1YXRlXVxuICogIFRoZSBcImV2YWx1YXRlXCIgZGVsaW1pdGVyLlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zLmltcG9ydHM9Xy50ZW1wbGF0ZVNldHRpbmdzLmltcG9ydHNdXG4gKiAgQW4gb2JqZWN0IHRvIGltcG9ydCBpbnRvIHRoZSB0ZW1wbGF0ZSBhcyBmcmVlIHZhcmlhYmxlcy5cbiAqIEBwYXJhbSB7UmVnRXhwfSBbb3B0aW9ucy5pbnRlcnBvbGF0ZT1fLnRlbXBsYXRlU2V0dGluZ3MuaW50ZXJwb2xhdGVdXG4gKiAgVGhlIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuc291cmNlVVJMPSd0ZW1wbGF0ZVNvdXJjZXNbbl0nXVxuICogIFRoZSBzb3VyY2VVUkwgb2YgdGhlIGNvbXBpbGVkIHRlbXBsYXRlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRpb25zLnZhcmlhYmxlPSdvYmonXVxuICogIFRoZSBkYXRhIG9iamVjdCB2YXJpYWJsZSBuYW1lLlxuICogQHBhcmFtLSB7T2JqZWN0fSBbZ3VhcmRdIEVuYWJsZXMgdXNlIGFzIGFuIGl0ZXJhdGVlIGZvciBtZXRob2RzIGxpa2UgYF8ubWFwYC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgY29tcGlsZWQgdGVtcGxhdGUgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIC8vIFVzZSB0aGUgXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlciB0byBjcmVhdGUgYSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIDwlPSB1c2VyICU+IScpO1xuICogY29tcGlsZWQoeyAndXNlcic6ICdmcmVkJyB9KTtcbiAqIC8vID0+ICdoZWxsbyBmcmVkISdcbiAqXG4gKiAvLyBVc2UgdGhlIEhUTUwgXCJlc2NhcGVcIiBkZWxpbWl0ZXIgdG8gZXNjYXBlIGRhdGEgcHJvcGVydHkgdmFsdWVzLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPGI+PCUtIHZhbHVlICU+PC9iPicpO1xuICogY29tcGlsZWQoeyAndmFsdWUnOiAnPHNjcmlwdD4nIH0pO1xuICogLy8gPT4gJzxiPiZsdDtzY3JpcHQmZ3Q7PC9iPidcbiAqXG4gKiAvLyBVc2UgdGhlIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXIgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0IGFuZCBnZW5lcmF0ZSBIVE1MLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgXy5mb3JFYWNoKHVzZXJzLCBmdW5jdGlvbih1c2VyKSB7ICU+PGxpPjwlLSB1c2VyICU+PC9saT48JSB9KTsgJT4nKTtcbiAqIGNvbXBpbGVkKHsgJ3VzZXJzJzogWydmcmVkJywgJ2Jhcm5leSddIH0pO1xuICogLy8gPT4gJzxsaT5mcmVkPC9saT48bGk+YmFybmV5PC9saT4nXG4gKlxuICogLy8gVXNlIHRoZSBpbnRlcm5hbCBgcHJpbnRgIGZ1bmN0aW9uIGluIFwiZXZhbHVhdGVcIiBkZWxpbWl0ZXJzLlxuICogdmFyIGNvbXBpbGVkID0gXy50ZW1wbGF0ZSgnPCUgcHJpbnQoXCJoZWxsbyBcIiArIHVzZXIpOyAlPiEnKTtcbiAqIGNvbXBpbGVkKHsgJ3VzZXInOiAnYmFybmV5JyB9KTtcbiAqIC8vID0+ICdoZWxsbyBiYXJuZXkhJ1xuICpcbiAqIC8vIFVzZSB0aGUgRVMgdGVtcGxhdGUgbGl0ZXJhbCBkZWxpbWl0ZXIgYXMgYW4gXCJpbnRlcnBvbGF0ZVwiIGRlbGltaXRlci5cbiAqIC8vIERpc2FibGUgc3VwcG9ydCBieSByZXBsYWNpbmcgdGhlIFwiaW50ZXJwb2xhdGVcIiBkZWxpbWl0ZXIuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyAkeyB1c2VyIH0hJyk7XG4gKiBjb21waWxlZCh7ICd1c2VyJzogJ3BlYmJsZXMnIH0pO1xuICogLy8gPT4gJ2hlbGxvIHBlYmJsZXMhJ1xuICpcbiAqIC8vIFVzZSBiYWNrc2xhc2hlcyB0byB0cmVhdCBkZWxpbWl0ZXJzIGFzIHBsYWluIHRleHQuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCc8JT0gXCJcXFxcPCUtIHZhbHVlICVcXFxcPlwiICU+Jyk7XG4gKiBjb21waWxlZCh7ICd2YWx1ZSc6ICdpZ25vcmVkJyB9KTtcbiAqIC8vID0+ICc8JS0gdmFsdWUgJT4nXG4gKlxuICogLy8gVXNlIHRoZSBgaW1wb3J0c2Agb3B0aW9uIHRvIGltcG9ydCBgalF1ZXJ5YCBhcyBganFgLlxuICogdmFyIHRleHQgPSAnPCUganEuZWFjaCh1c2VycywgZnVuY3Rpb24odXNlcikgeyAlPjxsaT48JS0gdXNlciAlPjwvbGk+PCUgfSk7ICU+JztcbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUodGV4dCwgeyAnaW1wb3J0cyc6IHsgJ2pxJzogalF1ZXJ5IH0gfSk7XG4gKiBjb21waWxlZCh7ICd1c2Vycyc6IFsnZnJlZCcsICdiYXJuZXknXSB9KTtcbiAqIC8vID0+ICc8bGk+ZnJlZDwvbGk+PGxpPmJhcm5leTwvbGk+J1xuICpcbiAqIC8vIFVzZSB0aGUgYHNvdXJjZVVSTGAgb3B0aW9uIHRvIHNwZWNpZnkgYSBjdXN0b20gc291cmNlVVJMIGZvciB0aGUgdGVtcGxhdGUuXG4gKiB2YXIgY29tcGlsZWQgPSBfLnRlbXBsYXRlKCdoZWxsbyA8JT0gdXNlciAlPiEnLCB7ICdzb3VyY2VVUkwnOiAnL2Jhc2ljL2dyZWV0aW5nLmpzdCcgfSk7XG4gKiBjb21waWxlZChkYXRhKTtcbiAqIC8vID0+IEZpbmQgdGhlIHNvdXJjZSBvZiBcImdyZWV0aW5nLmpzdFwiIHVuZGVyIHRoZSBTb3VyY2VzIHRhYiBvciBSZXNvdXJjZXMgcGFuZWwgb2YgdGhlIHdlYiBpbnNwZWN0b3IuXG4gKlxuICogLy8gVXNlIHRoZSBgdmFyaWFibGVgIG9wdGlvbiB0byBlbnN1cmUgYSB3aXRoLXN0YXRlbWVudCBpc24ndCB1c2VkIGluIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hpIDwlPSBkYXRhLnVzZXIgJT4hJywgeyAndmFyaWFibGUnOiAnZGF0YScgfSk7XG4gKiBjb21waWxlZC5zb3VyY2U7XG4gKiAvLyA9PiBmdW5jdGlvbihkYXRhKSB7XG4gKiAvLyAgIHZhciBfX3QsIF9fcCA9ICcnO1xuICogLy8gICBfX3AgKz0gJ2hpICcgKyAoKF9fdCA9ICggZGF0YS51c2VyICkpID09IG51bGwgPyAnJyA6IF9fdCkgKyAnISc7XG4gKiAvLyAgIHJldHVybiBfX3A7XG4gKiAvLyB9XG4gKlxuICogLy8gVXNlIGN1c3RvbSB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLlxuICogXy50ZW1wbGF0ZVNldHRpbmdzLmludGVycG9sYXRlID0gL3t7KFtcXHNcXFNdKz8pfX0vZztcbiAqIHZhciBjb21waWxlZCA9IF8udGVtcGxhdGUoJ2hlbGxvIHt7IHVzZXIgfX0hJyk7XG4gKiBjb21waWxlZCh7ICd1c2VyJzogJ211c3RhY2hlJyB9KTtcbiAqIC8vID0+ICdoZWxsbyBtdXN0YWNoZSEnXG4gKlxuICogLy8gVXNlIHRoZSBgc291cmNlYCBwcm9wZXJ0eSB0byBpbmxpbmUgY29tcGlsZWQgdGVtcGxhdGVzIGZvciBtZWFuaW5nZnVsXG4gKiAvLyBsaW5lIG51bWJlcnMgaW4gZXJyb3IgbWVzc2FnZXMgYW5kIHN0YWNrIHRyYWNlcy5cbiAqIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICdqc3QuanMnKSwgJ1xcXG4gKiAgIHZhciBKU1QgPSB7XFxcbiAqICAgICBcIm1haW5cIjogJyArIF8udGVtcGxhdGUobWFpblRleHQpLnNvdXJjZSArICdcXFxuICogICB9O1xcXG4gKiAnKTtcbiAqL1xuZnVuY3Rpb24gdGVtcGxhdGUoc3RyaW5nLCBvcHRpb25zLCBndWFyZCkge1xuICAvLyBCYXNlZCBvbiBKb2huIFJlc2lnJ3MgYHRtcGxgIGltcGxlbWVudGF0aW9uXG4gIC8vIChodHRwOi8vZWpvaG4ub3JnL2Jsb2cvamF2YXNjcmlwdC1taWNyby10ZW1wbGF0aW5nLylcbiAgLy8gYW5kIExhdXJhIERva3Rvcm92YSdzIGRvVC5qcyAoaHR0cHM6Ly9naXRodWIuY29tL29sYWRvL2RvVCkuXG4gIHZhciBzZXR0aW5ncyA9IHRlbXBsYXRlU2V0dGluZ3MuaW1wb3J0cy5fLnRlbXBsYXRlU2V0dGluZ3MgfHwgdGVtcGxhdGVTZXR0aW5ncztcblxuICBpZiAoZ3VhcmQgJiYgaXNJdGVyYXRlZUNhbGwoc3RyaW5nLCBvcHRpb25zLCBndWFyZCkpIHtcbiAgICBvcHRpb25zID0gdW5kZWZpbmVkO1xuICB9XG4gIHN0cmluZyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gIG9wdGlvbnMgPSBhc3NpZ25JbldpdGgoe30sIG9wdGlvbnMsIHNldHRpbmdzLCBjdXN0b21EZWZhdWx0c0Fzc2lnbkluKTtcblxuICB2YXIgaW1wb3J0cyA9IGFzc2lnbkluV2l0aCh7fSwgb3B0aW9ucy5pbXBvcnRzLCBzZXR0aW5ncy5pbXBvcnRzLCBjdXN0b21EZWZhdWx0c0Fzc2lnbkluKSxcbiAgICAgIGltcG9ydHNLZXlzID0ga2V5cyhpbXBvcnRzKSxcbiAgICAgIGltcG9ydHNWYWx1ZXMgPSBiYXNlVmFsdWVzKGltcG9ydHMsIGltcG9ydHNLZXlzKTtcblxuICB2YXIgaXNFc2NhcGluZyxcbiAgICAgIGlzRXZhbHVhdGluZyxcbiAgICAgIGluZGV4ID0gMCxcbiAgICAgIGludGVycG9sYXRlID0gb3B0aW9ucy5pbnRlcnBvbGF0ZSB8fCByZU5vTWF0Y2gsXG4gICAgICBzb3VyY2UgPSBcIl9fcCArPSAnXCI7XG5cbiAgLy8gQ29tcGlsZSB0aGUgcmVnZXhwIHRvIG1hdGNoIGVhY2ggZGVsaW1pdGVyLlxuICB2YXIgcmVEZWxpbWl0ZXJzID0gUmVnRXhwKFxuICAgIChvcHRpb25zLmVzY2FwZSB8fCByZU5vTWF0Y2gpLnNvdXJjZSArICd8JyArXG4gICAgaW50ZXJwb2xhdGUuc291cmNlICsgJ3wnICtcbiAgICAoaW50ZXJwb2xhdGUgPT09IHJlSW50ZXJwb2xhdGUgPyByZUVzVGVtcGxhdGUgOiByZU5vTWF0Y2gpLnNvdXJjZSArICd8JyArXG4gICAgKG9wdGlvbnMuZXZhbHVhdGUgfHwgcmVOb01hdGNoKS5zb3VyY2UgKyAnfCQnXG4gICwgJ2cnKTtcblxuICAvLyBVc2UgYSBzb3VyY2VVUkwgZm9yIGVhc2llciBkZWJ1Z2dpbmcuXG4gIC8vIFRoZSBzb3VyY2VVUkwgZ2V0cyBpbmplY3RlZCBpbnRvIHRoZSBzb3VyY2UgdGhhdCdzIGV2YWwtZWQsIHNvIGJlIGNhcmVmdWxcbiAgLy8gd2l0aCBsb29rdXAgKGluIGNhc2Ugb2YgZS5nLiBwcm90b3R5cGUgcG9sbHV0aW9uKSwgYW5kIHN0cmlwIG5ld2xpbmVzIGlmIGFueS5cbiAgLy8gQSBuZXdsaW5lIHdvdWxkbid0IGJlIGEgdmFsaWQgc291cmNlVVJMIGFueXdheSwgYW5kIGl0J2QgZW5hYmxlIGNvZGUgaW5qZWN0aW9uLlxuICB2YXIgc291cmNlVVJMID0gaGFzT3duUHJvcGVydHkuY2FsbChvcHRpb25zLCAnc291cmNlVVJMJylcbiAgICA/ICgnLy8jIHNvdXJjZVVSTD0nICtcbiAgICAgICAob3B0aW9ucy5zb3VyY2VVUkwgKyAnJykucmVwbGFjZSgvW1xcclxcbl0vZywgJyAnKSArXG4gICAgICAgJ1xcbicpXG4gICAgOiAnJztcblxuICBzdHJpbmcucmVwbGFjZShyZURlbGltaXRlcnMsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGVWYWx1ZSwgaW50ZXJwb2xhdGVWYWx1ZSwgZXNUZW1wbGF0ZVZhbHVlLCBldmFsdWF0ZVZhbHVlLCBvZmZzZXQpIHtcbiAgICBpbnRlcnBvbGF0ZVZhbHVlIHx8IChpbnRlcnBvbGF0ZVZhbHVlID0gZXNUZW1wbGF0ZVZhbHVlKTtcblxuICAgIC8vIEVzY2FwZSBjaGFyYWN0ZXJzIHRoYXQgY2FuJ3QgYmUgaW5jbHVkZWQgaW4gc3RyaW5nIGxpdGVyYWxzLlxuICAgIHNvdXJjZSArPSBzdHJpbmcuc2xpY2UoaW5kZXgsIG9mZnNldCkucmVwbGFjZShyZVVuZXNjYXBlZFN0cmluZywgZXNjYXBlU3RyaW5nQ2hhcik7XG5cbiAgICAvLyBSZXBsYWNlIGRlbGltaXRlcnMgd2l0aCBzbmlwcGV0cy5cbiAgICBpZiAoZXNjYXBlVmFsdWUpIHtcbiAgICAgIGlzRXNjYXBpbmcgPSB0cnVlO1xuICAgICAgc291cmNlICs9IFwiJyArXFxuX19lKFwiICsgZXNjYXBlVmFsdWUgKyBcIikgK1xcbidcIjtcbiAgICB9XG4gICAgaWYgKGV2YWx1YXRlVmFsdWUpIHtcbiAgICAgIGlzRXZhbHVhdGluZyA9IHRydWU7XG4gICAgICBzb3VyY2UgKz0gXCInO1xcblwiICsgZXZhbHVhdGVWYWx1ZSArIFwiO1xcbl9fcCArPSAnXCI7XG4gICAgfVxuICAgIGlmIChpbnRlcnBvbGF0ZVZhbHVlKSB7XG4gICAgICBzb3VyY2UgKz0gXCInICtcXG4oKF9fdCA9IChcIiArIGludGVycG9sYXRlVmFsdWUgKyBcIikpID09IG51bGwgPyAnJyA6IF9fdCkgK1xcbidcIjtcbiAgICB9XG4gICAgaW5kZXggPSBvZmZzZXQgKyBtYXRjaC5sZW5ndGg7XG5cbiAgICAvLyBUaGUgSlMgZW5naW5lIGVtYmVkZGVkIGluIEFkb2JlIHByb2R1Y3RzIG5lZWRzIGBtYXRjaGAgcmV0dXJuZWQgaW5cbiAgICAvLyBvcmRlciB0byBwcm9kdWNlIHRoZSBjb3JyZWN0IGBvZmZzZXRgIHZhbHVlLlxuICAgIHJldHVybiBtYXRjaDtcbiAgfSk7XG5cbiAgc291cmNlICs9IFwiJztcXG5cIjtcblxuICAvLyBJZiBgdmFyaWFibGVgIGlzIG5vdCBzcGVjaWZpZWQgd3JhcCBhIHdpdGgtc3RhdGVtZW50IGFyb3VuZCB0aGUgZ2VuZXJhdGVkXG4gIC8vIGNvZGUgdG8gYWRkIHRoZSBkYXRhIG9iamVjdCB0byB0aGUgdG9wIG9mIHRoZSBzY29wZSBjaGFpbi5cbiAgLy8gTGlrZSB3aXRoIHNvdXJjZVVSTCwgd2UgdGFrZSBjYXJlIHRvIG5vdCBjaGVjayB0aGUgb3B0aW9uJ3MgcHJvdG90eXBlLFxuICAvLyBhcyB0aGlzIGNvbmZpZ3VyYXRpb24gaXMgYSBjb2RlIGluamVjdGlvbiB2ZWN0b3IuXG4gIHZhciB2YXJpYWJsZSA9IGhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ3ZhcmlhYmxlJykgJiYgb3B0aW9ucy52YXJpYWJsZTtcbiAgaWYgKCF2YXJpYWJsZSkge1xuICAgIHNvdXJjZSA9ICd3aXRoIChvYmopIHtcXG4nICsgc291cmNlICsgJ1xcbn1cXG4nO1xuICB9XG4gIC8vIENsZWFudXAgY29kZSBieSBzdHJpcHBpbmcgZW1wdHkgc3RyaW5ncy5cbiAgc291cmNlID0gKGlzRXZhbHVhdGluZyA/IHNvdXJjZS5yZXBsYWNlKHJlRW1wdHlTdHJpbmdMZWFkaW5nLCAnJykgOiBzb3VyY2UpXG4gICAgLnJlcGxhY2UocmVFbXB0eVN0cmluZ01pZGRsZSwgJyQxJylcbiAgICAucmVwbGFjZShyZUVtcHR5U3RyaW5nVHJhaWxpbmcsICckMTsnKTtcblxuICAvLyBGcmFtZSBjb2RlIGFzIHRoZSBmdW5jdGlvbiBib2R5LlxuICBzb3VyY2UgPSAnZnVuY3Rpb24oJyArICh2YXJpYWJsZSB8fCAnb2JqJykgKyAnKSB7XFxuJyArXG4gICAgKHZhcmlhYmxlXG4gICAgICA/ICcnXG4gICAgICA6ICdvYmogfHwgKG9iaiA9IHt9KTtcXG4nXG4gICAgKSArXG4gICAgXCJ2YXIgX190LCBfX3AgPSAnJ1wiICtcbiAgICAoaXNFc2NhcGluZ1xuICAgICAgID8gJywgX19lID0gXy5lc2NhcGUnXG4gICAgICAgOiAnJ1xuICAgICkgK1xuICAgIChpc0V2YWx1YXRpbmdcbiAgICAgID8gJywgX19qID0gQXJyYXkucHJvdG90eXBlLmpvaW47XFxuJyArXG4gICAgICAgIFwiZnVuY3Rpb24gcHJpbnQoKSB7IF9fcCArPSBfX2ouY2FsbChhcmd1bWVudHMsICcnKSB9XFxuXCJcbiAgICAgIDogJztcXG4nXG4gICAgKSArXG4gICAgc291cmNlICtcbiAgICAncmV0dXJuIF9fcFxcbn0nO1xuXG4gIHZhciByZXN1bHQgPSBhdHRlbXB0KGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBGdW5jdGlvbihpbXBvcnRzS2V5cywgc291cmNlVVJMICsgJ3JldHVybiAnICsgc291cmNlKVxuICAgICAgLmFwcGx5KHVuZGVmaW5lZCwgaW1wb3J0c1ZhbHVlcyk7XG4gIH0pO1xuXG4gIC8vIFByb3ZpZGUgdGhlIGNvbXBpbGVkIGZ1bmN0aW9uJ3Mgc291cmNlIGJ5IGl0cyBgdG9TdHJpbmdgIG1ldGhvZCBvclxuICAvLyB0aGUgYHNvdXJjZWAgcHJvcGVydHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgaW5saW5pbmcgY29tcGlsZWQgdGVtcGxhdGVzLlxuICByZXN1bHQuc291cmNlID0gc291cmNlO1xuICBpZiAoaXNFcnJvcihyZXN1bHQpKSB7XG4gICAgdGhyb3cgcmVzdWx0O1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRlbXBsYXRlO1xuIiwiaW1wb3J0IGVzY2FwZSBmcm9tICcuL2VzY2FwZS5qcyc7XG5pbXBvcnQgcmVFc2NhcGUgZnJvbSAnLi9fcmVFc2NhcGUuanMnO1xuaW1wb3J0IHJlRXZhbHVhdGUgZnJvbSAnLi9fcmVFdmFsdWF0ZS5qcyc7XG5pbXBvcnQgcmVJbnRlcnBvbGF0ZSBmcm9tICcuL19yZUludGVycG9sYXRlLmpzJztcblxuLyoqXG4gKiBCeSBkZWZhdWx0LCB0aGUgdGVtcGxhdGUgZGVsaW1pdGVycyB1c2VkIGJ5IGxvZGFzaCBhcmUgbGlrZSB0aG9zZSBpblxuICogZW1iZWRkZWQgUnVieSAoRVJCKSBhcyB3ZWxsIGFzIEVTMjAxNSB0ZW1wbGF0ZSBzdHJpbmdzLiBDaGFuZ2UgdGhlXG4gKiBmb2xsb3dpbmcgdGVtcGxhdGUgc2V0dGluZ3MgdG8gdXNlIGFsdGVybmF0aXZlIGRlbGltaXRlcnMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cbnZhciB0ZW1wbGF0ZVNldHRpbmdzID0ge1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGRldGVjdCBgZGF0YWAgcHJvcGVydHkgdmFsdWVzIHRvIGJlIEhUTUwtZXNjYXBlZC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgKi9cbiAgJ2VzY2FwZSc6IHJlRXNjYXBlLFxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGRldGVjdCBjb2RlIHRvIGJlIGV2YWx1YXRlZC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7UmVnRXhwfVxuICAgKi9cbiAgJ2V2YWx1YXRlJzogcmVFdmFsdWF0ZSxcblxuICAvKipcbiAgICogVXNlZCB0byBkZXRlY3QgYGRhdGFgIHByb3BlcnR5IHZhbHVlcyB0byBpbmplY3QuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnRlbXBsYXRlU2V0dGluZ3NcbiAgICogQHR5cGUge1JlZ0V4cH1cbiAgICovXG4gICdpbnRlcnBvbGF0ZSc6IHJlSW50ZXJwb2xhdGUsXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gcmVmZXJlbmNlIHRoZSBkYXRhIG9iamVjdCBpbiB0aGUgdGVtcGxhdGUgdGV4dC5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgJ3ZhcmlhYmxlJzogJycsXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gaW1wb3J0IHZhcmlhYmxlcyBpbnRvIHRoZSBjb21waWxlZCB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8udGVtcGxhdGVTZXR0aW5nc1xuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgJ2ltcG9ydHMnOiB7XG5cbiAgICAvKipcbiAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgYGxvZGFzaGAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAbWVtYmVyT2YgXy50ZW1wbGF0ZVNldHRpbmdzLmltcG9ydHNcbiAgICAgKiBAdHlwZSB7RnVuY3Rpb259XG4gICAgICovXG4gICAgJ18nOiB7ICdlc2NhcGUnOiBlc2NhcGUgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCB0ZW1wbGF0ZVNldHRpbmdzO1xuIiwiaW1wb3J0IGJhc2VUb1N0cmluZyBmcm9tICcuL19iYXNlVG9TdHJpbmcuanMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBzdHJpbmcuIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBmb3IgYG51bGxgXG4gKiBhbmQgYHVuZGVmaW5lZGAgdmFsdWVzLiBUaGUgc2lnbiBvZiBgLTBgIGlzIHByZXNlcnZlZC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGNvbnZlcnRlZCBzdHJpbmcuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udG9TdHJpbmcobnVsbCk7XG4gKiAvLyA9PiAnJ1xuICpcbiAqIF8udG9TdHJpbmcoLTApO1xuICogLy8gPT4gJy0wJ1xuICpcbiAqIF8udG9TdHJpbmcoWzEsIDIsIDNdKTtcbiAqIC8vID0+ICcxLDIsMydcbiAqL1xuZnVuY3Rpb24gdG9TdHJpbmcodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09IG51bGwgPyAnJyA6IGJhc2VUb1N0cmluZyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRvU3RyaW5nO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBcIi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogR2VuZXJpYyBTdHlsZXNcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuYWctZ3JpZCwgYWctZ3JpZC1hbmd1bGFyLCBhZy1ncmlkLW5nMiwgYWctZ3JpZC1wb2x5bWVyLCBhZy1ncmlkLWF1cmVsaWEge1xcbiAgZGlzcGxheTogYmxvY2s7IH1cXG5cXG4uYWctaGlkZGVuIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxcblxcbi5hZy1pbnZpc2libGUge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cXG5cXG4uYWctZmFkZWQge1xcbiAgb3BhY2l0eTogMC4zOyB9XFxuXFxuLmFnLXdpZHRoLWhhbGYge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XFxuXFxuLmFnLXVuc2VsZWN0YWJsZSB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAtbW96LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7IH1cXG5cXG4uYWctc2VsZWN0YWJsZSB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7XFxuICAtbW96LXVzZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7XFxuICAtbXMtdXNlci1zZWxlY3Q6IHRleHQgIWltcG9ydGFudDtcXG4gIHVzZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7IH1cXG5cXG4uYWctc2VsZWN0LWFnZy1mdW5jLXBvcHVwIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxcblxcbi5hZy1pbnB1dC13cmFwcGVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gIGZsZXg6IDEgMSBhdXRvO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG5cXG4uYWctc2hha2UtbGVmdC10by1yaWdodCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IGFsdGVybmF0ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzO1xcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjJzO1xcbiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYWctc2hha2UtbGVmdC10by1yaWdodDtcXG4gIGFuaW1hdGlvbi1uYW1lOiBhZy1zaGFrZS1sZWZ0LXRvLXJpZ2h0OyB9XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIGFnLXNoYWtlLWxlZnQtdG8tcmlnaHQge1xcbiAgZnJvbSB7XFxuICAgIHBhZGRpbmctbGVmdDogNnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHg7IH1cXG4gIHRvIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAycHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDZweDsgfSB9XFxuXFxuQGtleWZyYW1lcyBhZy1zaGFrZS1sZWZ0LXRvLXJpZ2h0IHtcXG4gIGZyb20ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcXG4gICAgcGFkZGluZy1yaWdodDogMnB4OyB9XFxuICB0byB7XFxuICAgIHBhZGRpbmctbGVmdDogMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7IH0gfVxcblxcbi5hZy1yb290LXdyYXBwZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuICAuYWctcm9vdC13cmFwcGVyLmFnLWxheW91dC1ub3JtYWwge1xcbiAgICBoZWlnaHQ6IDEwMCU7IH1cXG4gIC5hZy1yb290LXdyYXBwZXIgLmFnLXdhdGVybWFyayB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAxMHB4O1xcbiAgICByaWdodDogMjVweDtcXG4gICAgb3BhY2l0eTogMC41O1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZS1vdXQgM3M7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZS1vdXQgM3M7IH1cXG4gICAgLmFnLXJvb3Qtd3JhcHBlciAuYWctd2F0ZXJtYXJrOmJlZm9yZSB7XFxuICAgICAgY29udGVudDogJyc7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0S1BITjJaeUIzYVdSMGFEMGlORGswY0hnaUlHaGxhV2RvZEQwaU1qTTVjSGdpSUhacFpYZENiM2c5SWpBZ01DQTBPVFFnTWpNNUlpQjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lQZ29nSUNBZ1BDRXRMU0JIWlc1bGNtRjBiM0k2SUZOclpYUmphQ0EwTnk0eElDZzBOVFF5TWlrZ0xTQm9kSFJ3T2k4dmQzZDNMbUp2YUdWdGFXRnVZMjlrYVc1bkxtTnZiUzl6YTJWMFkyZ2dMUzArQ2lBZ0lDQThkR2wwYkdVK1RHOW5iend2ZEdsMGJHVStDaUFnSUNBOFpHVnpZejVEY21WaGRHVmtJSGRwZEdnZ1UydGxkR05vTGp3dlpHVnpZejRLSUNBZ0lEeGtaV1p6UGdvZ0lDQWdJQ0FnSUR4d1lYUm9JR1E5SWswd0xqWXhNamcwT1Rrek1Td3hNRGdnVERBdU5qRXlPRFE1T1RNeExEWTNMalExT1RZek56UWdUREF1TmpFeU9EUTVPVE14TERZM0xqUTFPVFl6TnpRZ1F6QXVOakV5T0RRNU9UTXhMRFl5TGpFd01EWTFNellnTXk0ME56RTRNek0zT0N3MU55NHhORGczTkRneklEZ3VNVEV5T0RRNU9UTXNOVFF1TkRZNU1qVTJOQ0JNT1RndU16QTJOREkxTERJdU16azFPVGN4TlRjZ1REazRMak13TmpReU5Td3lMak01TlRrM01UVTNJRU14TURJdU9UUTNORFF4TEMwd0xqSTRNelV5TURNMU9DQXhNRGd1TmpZMU5EQTVMQzB3TGpJNE16VXlNRE0xT0NBeE1UTXVNekEyTkRJMUxESXVNemsxT1RjeE5UY2dUREV4TXk0ek1EWTBNalVzTWk0ek9UVTVOekUxTnlCTU1qQXpMalVzTlRRdU5EWTVNalUyTkNCTU1qQXpMalVzTlRRdU5EWTVNalUyTkNCRE1qQTRMakUwTVRBeE5pdzFOeTR4TkRnM05EZ3pJREl4TVN3Mk1pNHhNREEyTlRNMklESXhNU3cyTnk0ME5UazJNemMwSUV3eU1URXNNVE00SUV3eE9ERXNNVE00SUV3eE9EQXVPVGszTURReExEa3pMams1T1RrNU9UZ2dUREU0TUM0NU9UWXdNeklzT1RNdU9UazVPVGs1T1NCRE1UZ3dMams1TlRRM05TdzROUzQzTVRZeE1qSTJJREUzTkM0eU56azVNRGtzTnprdU1EQXhNREE0TnlBeE5qVXVPVGsyTURNeUxEYzVMakF3TVRBd09EY2dUREV5TWl3M09DNDVPVGs1T1RrNUlFTXhNVE11TnpFMU56STVMRGM0TGprNU9UazVPVGtnTVRBM0xEZzFMamN4TlRjeU9EWWdNVEEzTERrekxqazVPVGs1T1RrZ1RERXdOeXd4TXpZdU1ERTFOakl6SUV3eE1EY3NNVE0yTGpBeE5UWXlNeUJETVRBM0xERTBOQzR5T1RrNE9UVWdNVEV6TGpjeE5UY3lPU3d4TlRFdU1ERTFOakl6SURFeU1pd3hOVEV1TURFMU5qSXpJRXd4Tmpnc01UVXhMakF4TlRZeU15Qk1NVFk0TERFMk15QkRNVFk0TERFMk5DNDJOVFk0TlRRZ01UWTJMalkxTmpnMU5Dd3hOallnTVRZMUxERTJOaUJNTVRJd0xERTJOaUJNTVRJd0xERTNPU0JNTVRZMUxqazVOakF6TWl3eE56a2dUREUyTlM0NU9UWXdNeklzTVRjNExqazVOemczTnlCRE1UYzBMakkzT1RRM05Dd3hOemd1T1RrM09EYzNJREU0TUM0NU9UUTROaXd4TnpJdU1qZ3pORFF5SURFNE1DNDVPVFl3TXpJc01UWTBJRXd4T0RFc01UVXdMamsyTURVMU5DQk1NakV4TERFMU1DNDVOakExTlRRZ1RESXhNU3d4TnpFdU5qQTJNakEzSUV3eU1URXNNVGN4TGpZd05qSXdOeUJETWpFeExERTNOaTQ1TmpVeE9URWdNakE0TGpFME1UQXhOaXd4T0RFdU9URTNNRGsySURJd015NDFMREU0TkM0MU9UWTFPRGdnVERFeE15NHpNRFkwTWpVc01qTTJMalkyT1RnM015Qk1NVEV6TGpNd05qUXlOU3d5TXpZdU5qWTVPRGN6SUVNeE1EZ3VOalkxTkRBNUxESXpPUzR6TkRrek5qVWdNVEF5TGprME56UTBNU3d5TXprdU16UTVNelkxSURrNExqTXdOalF5TlN3eU16WXVOalk1T0RjeklFdzRMakV4TWpnME9Ua3pMREU0TkM0MU9UWTFPRGdnVERndU1URXlPRFE1T1RNc01UZzBMalU1TmpVNE9DQkRNeTQwTnpFNE16TTNPQ3d4T0RFdU9URTNNRGsySURBdU5qRXlPRFE1T1RNeExERTNOaTQ1TmpVeE9URWdNQzQyTVRJNE5EazVNekVzTVRjeExqWXdOakl3TnlCTU1DNDJNVEk0TkRrNU16RXNNVEl4SUV3eU55d3hNakVnVERJM0xERXpOaUJETWpjc01UUTBMakk0TkRJM01TQXpNeTQzTVRVM01qZzNMREUxTVNBME1pd3hOVEVnVERReUxERTFNU0JNTVRBd0xERTFNU0JNTVRBd0xEazBJRU14TURBc09EVXVOekUxTnpJNE9DQTVNeTR5T0RReU56RXlMRGM1SURnMUxEYzVJRXd5Tnl3M09TQk1NamNzT1RJZ1REZzBMRGt5SUVNNE5TNDJOVFk0TlRReUxEa3lJRGczTERrekxqTTBNekUwTlRnZ09EY3NPVFVnVERnM0xEazFJRXc0Tnl3eE1EZ2dUREF1TmpFeU9EUTVPVE14TERFd09DQmFJaUJwWkQwaWNHRjBhQzB4SWo0OEwzQmhkR2crQ2lBZ0lDQThMMlJsWm5NK0NpQWdJQ0E4WnlCcFpEMGlVM2x0WW05c2N5SWdjM1J5YjJ0bFBTSnViMjVsSWlCemRISnZhMlV0ZDJsa2RHZzlJakVpSUdacGJHdzlJbTV2Ym1VaUlHWnBiR3d0Y25Wc1pUMGlaWFpsYm05a1pDSStDaUFnSUNBZ0lDQWdQR2NnYVdROUlreHZaMjhpUGdvZ0lDQWdJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5ORGMzTERVMUlFdzBPVFFzTlRVZ1REUTVOQ3d4TlRFZ1REUXpOU3d4TlRFZ1F6UXlOaTQzTVRVM01qa3NNVFV4SURReU1Dd3hORFF1TWpnME1qY3hJRFF5TUN3eE16WWdURFF5TUN3NU5pQkROREl3TERnM0xqY3hOVGN5T0RnZ05ESTJMamN4TlRjeU9TdzRNU0EwTXpVc09ERWdURFF6TlN3NE1TQk1ORGMzTERneElFdzBOemNzTlRVZ1dpQk5ORFF3TERrNElFTTBNemd1TXpRek1UUTJMRGs0SURRek55dzVPUzR6TkRNeE5EVTRJRFF6Tnl3eE1ERWdURFF6Tnl3eE16RWdRelF6Tnl3eE16SXVOalUyT0RVMElEUXpPQzR6TkRNeE5EWXNNVE0wSURRME1Dd3hNelFnVERRM055d3hNelFnVERRM055dzVPQ0JNTkRRd0xEazRJRm9pSUdsa1BTSmtJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0NpQWdJQ0FnSUNBZ0lDQWdJRHhuSUdsa1BTSnBJaUIwY21GdWMyWnZjbTA5SW5SeVlXNXpiR0YwWlNnek9UWXVNREF3TURBd0xDQTFOUzR3TURBd01EQXBJajRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh3YjJ4NVoyOXVJR2xrUFNKUVlYUm9MVFlpSUdacGJHdzlJaU5HUmtaR1JrWWlJSEJ2YVc1MGN6MGlNQ0F5TmlBeE55QXlOaUF4TnlBNU5pQXdJRGsySWo0OEwzQnZiSGxuYjI0K0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOGNHOXNlV2R2YmlCcFpEMGlVR0YwYUMwM0lpQm1hV3hzUFNJalJURXhSakl5SWlCd2IybHVkSE05SWpBZ01TNHhNelk0Tmpnek9HVXRNVE1nTVRjZ01TNHhNelk0Tmpnek9HVXRNVE1nTVRjZ01UY2dNQ0F4TnlJK1BDOXdiMng1WjI5dVBnb2dJQ0FnSUNBZ0lDQWdJQ0E4TDJjK0NpQWdJQ0FnSUNBZ0lDQWdJRHh3WVhSb0lHUTlJazB6TXpFc01UVXhJRXd6TkRnc01UVXhJRXd6TkRnc01UQXhJRXd6TkRnc01UQXhJRU16TkRnc09Ua3VNelF6TVRRMU9DQXpORGt1TXpRek1UUTJMRGs0SURNMU1TdzVPQ0JNTXpnNUxEazRJRXd6T0Rrc09ERWdURE0wTml3NE1TQk1NelEyTERneElFTXpNemN1TnpFMU56STVMRGd4SURNek1TdzROeTQzTVRVM01qZzRJRE16TVN3NU5pQk1Nek14TERFMU1TQmFJaUJwWkQwaWNpSWdabWxzYkQwaUkwWkdSa1pHUmlJK1BDOXdZWFJvUGdvZ0lDQWdJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5NekkwTERnMklFd3pNalFzTnpZZ1RETXlOQ3czTmlCRE16STBMRFkzTGpjeE5UY3lPRGdnTXpFM0xqSTROREkzTVN3Mk1TQXpNRGtzTmpFZ1RESTBPU3cyTVNCTU1qUTVMRFl4SUVNeU5EQXVOekUxTnpJNUxEWXhJREl6TkN3Mk55NDNNVFUzTWpnNElESXpOQ3czTmlCTU1qTTBMREV6TmlCTU1qTTBMREV6TmlCRE1qTTBMREUwTkM0eU9EUXlOekVnTWpRd0xqY3hOVGN5T1N3eE5URWdNalE1TERFMU1TQk1NekE1TERFMU1TQk1NekE1TERFMU1TQkRNekUzTGpJNE5ESTNNU3d4TlRFZ016STBMREUwTkM0eU9EUXlOekVnTXpJMExERXpOaUJNTXpJMExERXdNQ0JNTWpnM0xERXdNQ0JNTWpnM0xERXhOeUJNTXpBM0xERXhOeUJNTXpBM0xERXpNU0JNTXpBM0xERXpNU0JETXpBM0xERXpNaTQyTlRZNE5UUWdNekExTGpZMU5qZzFOQ3d4TXpRZ016QTBMREV6TkNCTU1qVTBMREV6TkNCTU1qVTBMREV6TkNCRE1qVXlMak0wTXpFME5pd3hNelFnTWpVeExERXpNaTQyTlRZNE5UUWdNalV4TERFek1TQk1NalV4TERneElFd3lOVEVzT0RFZ1F6STFNU3czT1M0ek5ETXhORFU0SURJMU1pNHpORE14TkRZc056Z2dNalUwTERjNElFd3pNRFFzTnpnZ1RETXdOQ3czT0NCRE16QTFMalkxTmpnMU5DdzNPQ0F6TURjc056a3VNelF6TVRRMU9DQXpNRGNzT0RFZ1RETXdOeXc0TmlCTU16STBMRGcySUZvaUlHbGtQU0pISWlCbWFXeHNQU0lqUmtaR1JrWkdJajQ4TDNCaGRHZytDaUFnSUNBZ0lDQWdJQ0FnSUR4bklHbGtQU0poWnlJK0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOFp5QnBaRDBpUTI5dFltbHVaV1F0VTJoaGNHVWlQZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4dFlYTnJJR2xrUFNKdFlYTnJMVElpSUdacGJHdzlJbmRvYVhSbElqNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BIVnpaU0I0YkdsdWF6cG9jbVZtUFNJamNHRjBhQzB4SWo0OEwzVnpaVDRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBOEwyMWhjMnMrQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BIVnpaU0JtYVd4c1BTSWpSVEV4UmpJeUlpQjRiR2x1YXpwb2NtVm1QU0lqY0dGMGFDMHhJajQ4TDNWelpUNEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZaejRLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHh5WldOMElHbGtQU0puSWlCbWFXeHNQU0lqUlRFeFJqSXlJaUI0UFNJeE1qQWlJSGs5SWpreUlpQjNhV1IwYUQwaU5EZ2lJR2hsYVdkb2REMGlORFlpSUhKNFBTSXpJajQ4TDNKbFkzUStDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5OREFzTVRJeElFdzROeXd4TWpFZ1REZzNMREV6T0NCTU5ETXNNVE00SUV3ME15d3hNemdnUXpReExqTTBNekUwTlRnc01UTTRJRFF3TERFek5pNDJOVFk0TlRRZ05EQXNNVE0xSUV3ME1Dd3hNakVnV2lJZ2FXUTlJa052YldKcGJtVmtMVk5vWVhCbElpQm1hV3hzUFNJalJURXhSakl5SWo0OEwzQmhkR2crQ2lBZ0lDQWdJQ0FnSUNBZ0lEd3ZaejRLSUNBZ0lDQWdJQ0E4TDJjK0NpQWdJQ0E4TDJjK0Nqd3ZjM1puUGc9PSk7XFxuICAgICAgLXdlYmtpdC1maWx0ZXI6IGludmVydCg1MCUpO1xcbiAgICAgIGZpbHRlcjogaW52ZXJ0KDUwJSk7XFxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDExMHB4IDYwcHg7XFxuICAgICAgZGlzcGxheTogYmxvY2s7XFxuICAgICAgaGVpZ2h0OiA2MHB4O1xcbiAgICAgIHdpZHRoOiAxMTBweDsgfVxcbiAgICAuYWctcm9vdC13cmFwcGVyIC5hZy13YXRlcm1hcmsgLmFnLXdhdGVybWFyay10ZXh0IHtcXG4gICAgICBvcGFjaXR5OiAwLjU7XFxuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgICAgZm9udC1mYW1pbHk6IEltcGFjdDtcXG4gICAgICBmb250LXNpemU6IDE5cHg7IH1cXG5cXG4uYWctcm9vdC13cmFwcGVyLWJvZHkge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxcbiAgLmFnLXJvb3Qtd3JhcHBlci1ib2R5LmFnLWxheW91dC1ub3JtYWwge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIG1pbi1oZWlnaHQ6IDA7IH1cXG5cXG4uYWctcm9vdCB7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxcbiAgLmFnLXJvb3QuYWctbGF5b3V0LW5vcm1hbCwgLmFnLXJvb3QuYWctbGF5b3V0LWF1dG8taGVpZ2h0IHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgd2lkdGg6IDA7IH1cXG4gIC5hZy1yb290LmFnLWxheW91dC1ub3JtYWwge1xcbiAgICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFZpZXdwb3J0c1xcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctaGVhZGVyLXZpZXdwb3J0LFxcbi5hZy1mbG9hdGluZy10b3Atdmlld3BvcnQsXFxuLmFnLWJvZHktdmlld3BvcnQsXFxuLmFnLXBpbm5lZC1sZWZ0LWNvbHMtdmlld3BvcnQsXFxuLmFnLWNlbnRlci1jb2xzLXZpZXdwb3J0LFxcbi5hZy1waW5uZWQtcmlnaHQtY29scy12aWV3cG9ydCxcXG4uYWctZmxvYXRpbmctYm90dG9tLXZpZXdwb3J0LFxcbi5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXZpZXdwb3J0LFxcbi5hZy12aXJ0dWFsLWxpc3Qtdmlld3BvcnQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWluLXdpZHRoOiAwcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gIGZsZXg6IDEgMSBhdXRvOyB9XFxuXFxuLmFnLWJvZHktdmlld3BvcnQge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7IH1cXG4gIC5hZy1ib2R5LXZpZXdwb3J0LmFnLWxheW91dC1ub3JtYWwge1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cXG4gIC5hZy1ib2R5LXZpZXdwb3J0Om5vdCguYWctbGF5b3V0LXByaW50KS5hZy1mb3JjZS12ZXJ0aWNhbC1zY3JvbGwge1xcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cXG5cXG4uYWctcGlubmVkLWxlZnQtY29scy12aWV3cG9ydCwgLmFnLXBpbm5lZC1yaWdodC1jb2xzLXZpZXdwb3J0IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDEwMDA7XFxuICAtbXMtZmxleC1wb3NpdGl2ZTogMTAwMDtcXG4gIGZsZXgtZ3JvdzogMTAwMDsgfVxcblxcbi5hZy1jZW50ZXItY29scy12aWV3cG9ydCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93LXg6IGF1dG87IH1cXG5cXG4uYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC12aWV3cG9ydCB7XFxuICBvdmVyZmxvdy14OiBzY3JvbGw7IH1cXG5cXG4uYWctdmlydHVhbC1saXN0LXZpZXdwb3J0IHtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIENvbnRhaW5lcnNcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLWhlYWRlci1jb250YWluZXIsXFxuLmFnLWZsb2F0aW5nLXRvcC1jb250YWluZXIsXFxuLmFnLWJvZHktY29udGFpbmVyLFxcbi5hZy1waW5uZWQtcmlnaHQtY29scy1jb250YWluZXIsXFxuLmFnLWNlbnRlci1jb2xzLWNvbnRhaW5lcixcXG4uYWctcGlubmVkLWxlZnQtY29scy1jb250YWluZXIsXFxuLmFnLWZsb2F0aW5nLWJvdHRvbS1jb250YWluZXIsXFxuLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtY29udGFpbmVyLFxcbi5hZy1mdWxsLXdpZHRoLWNvbnRhaW5lcixcXG4uYWctZmxvYXRpbmctYm90dG9tLWZ1bGwtd2lkdGgtY29udGFpbmVyLFxcbi5hZy12aXJ0dWFsLWxpc3QtY29udGFpbmVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcblxcbi5hZy1oZWFkZXItY29udGFpbmVyLCAuYWctZmxvYXRpbmctdG9wLWNvbnRhaW5lciwgLmFnLWZsb2F0aW5nLWJvdHRvbS1jb250YWluZXIge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcblxcbi5hZy1ib2R5LXZpZXdwb3J0IC5hZy1jZW50ZXItY29scy1jbGlwcGVyIHtcXG4gIG1pbi1oZWlnaHQ6IDEwMCU7IH1cXG5cXG4uYWctYm9keS12aWV3cG9ydC5hZy1sYXlvdXQtYXV0by1oZWlnaHQgLmFnLWNlbnRlci1jb2xzLWNsaXBwZXIsIC5hZy1ib2R5LXZpZXdwb3J0LmFnLWxheW91dC1hdXRvLWhlaWdodCAuYWctY2VudGVyLWNvbHMtY29udGFpbmVyIHtcXG4gIG1pbi1oZWlnaHQ6IDUwcHg7IH1cXG5cXG4uYWctYm9keS12aWV3cG9ydCAuYWctY2VudGVyLWNvbHMtY29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGJsb2NrOyB9XFxuXFxuLmFnLWJvZHktdmlld3BvcnQuYWctbGF5b3V0LXByaW50IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAtbXMtZmxleDogbm9uZTtcXG4gIGZsZXg6IG5vbmU7IH1cXG4gIC5hZy1ib2R5LXZpZXdwb3J0LmFnLWxheW91dC1wcmludCAuYWctY2VudGVyLWNvbHMtY2xpcHBlciB7XFxuICAgIG1pbi13aWR0aDogMTAwJTsgfVxcblxcbi5hZy1waW5uZWQtcmlnaHQtY29scy1jb250YWluZXIge1xcbiAgZGlzcGxheTogYmxvY2s7IH1cXG5cXG4uYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC1jb250YWluZXIge1xcbiAgaGVpZ2h0OiAxMDAlOyB9XFxuXFxuLmFnLWZ1bGwtd2lkdGgtY29udGFpbmVyLFxcbi5hZy1mbG9hdGluZy10b3AtZnVsbC13aWR0aC1jb250YWluZXIsXFxuLmFnLWZsb2F0aW5nLWJvdHRvbS1mdWxsLXdpZHRoLWNvbnRhaW5lciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDBweDtcXG4gIGxlZnQ6IDBweDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XFxuXFxuLmFnLWZ1bGwtd2lkdGgtY29udGFpbmVyIHtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLWZsb2F0aW5nLWJvdHRvbS1mdWxsLXdpZHRoLWNvbnRhaW5lciwgLmFnLWZsb2F0aW5nLXRvcC1mdWxsLXdpZHRoLWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG5cXG4uYWctdmlydHVhbC1saXN0LWNvbnRhaW5lciB7XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBTY3JvbGxlcnNcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLWNlbnRlci1jb2xzLWNsaXBwZXIge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gIC1tcy1mbGV4OiAxO1xcbiAgZmxleDogMTtcXG4gIG1pbi13aWR0aDogMDtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG5cXG4uYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCB7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcblxcbi5hZy1sYXlvdXQtcHJpbnQgLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwge1xcbiAgZGlzcGxheTogbm9uZTsgfVxcblxcbi5hZy1ob3Jpem9udGFsLWxlZnQtc3BhY2VyLCAuYWctaG9yaXpvbnRhbC1yaWdodC1zcGFjZXIge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDtcXG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAxMDAwO1xcbiAgZmxleC1ncm93OiAxMDAwO1xcbiAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9XFxuICAuYWctaG9yaXpvbnRhbC1sZWZ0LXNwYWNlci5hZy1zY3JvbGxlci1jb3JuZXIsIC5hZy1ob3Jpem9udGFsLXJpZ2h0LXNwYWNlci5hZy1zY3JvbGxlci1jb3JuZXIge1xcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIEhlYWRlcnNcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLWhlYWRlciwgLmFnLXBpbm5lZC1sZWZ0LWhlYWRlciwgLmFnLXBpbm5lZC1yaWdodC1oZWFkZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgLmFnLWhlYWRlciAuYWctaGVhZGVyLWNlbGwtc29ydGFibGUsIC5hZy1waW5uZWQtbGVmdC1oZWFkZXIgLmFnLWhlYWRlci1jZWxsLXNvcnRhYmxlLCAuYWctcGlubmVkLXJpZ2h0LWhlYWRlciAuYWctaGVhZGVyLWNlbGwtc29ydGFibGUge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cXG5cXG4uYWctaGVhZGVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuXFxuLmFnLWhlYWRlci1pY29uIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4OyB9XFxuXFxuLmFnLXBpbm5lZC1sZWZ0LWhlYWRlciB7XFxuICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4uYWctcGlubmVkLXJpZ2h0LWhlYWRlciB7XFxuICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4uYWctaGVhZGVyLXJvdyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuXFxuLmFnLWhlYWRlci1vdmVybGF5IHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XFxuXFxuLmFnLWhlYWRlci1jZWxsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cXG5cXG4uYWctaGVhZGVyLWdyb3VwLWNlbGwtbGFiZWwsIC5hZy1oZWFkZXItY2VsbC1sYWJlbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtbXMtZmxleDogMSAxIGF1dG87XFxuICBmbGV4OiAxIDEgYXV0bztcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIGhlaWdodDogMTAwJTsgfVxcblxcbi5hZy1oZWFkZXItY2VsbC1sYWJlbCAuYWctaGVhZGVyLWNlbGwtdGV4dCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuXFxuLmFnLW51bWVyaWMtaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1sYWJlbCB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XFxuXFxuLmFnLWhlYWRlci1ncm91cC10ZXh0IHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG5cXG4uYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IDE7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogNHB4OyB9XFxuXFxuLmFnLWhlYWRlci1leHBhbmQtaWNvbiB7XFxuICBwYWRkaW5nLWxlZnQ6IDRweDsgfVxcblxcbi5hZy1oZWFkZXItc2VsZWN0LWFsbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGxpbmUtaGVpZ2h0OiAxOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBDb2x1bW5zXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1jb2x1bW4tbW92aW5nIC5hZy1jZWxsIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbGVmdCAwLjJzO1xcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjJzOyB9XFxuXFxuLmFnLWNvbHVtbi1tb3ZpbmcgLmFnLWhlYWRlci1jZWxsIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbGVmdCAwLjJzO1xcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjJzOyB9XFxuXFxuLmFnLWNvbHVtbi1tb3ZpbmcgLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbGVmdCAwLjJzLCB3aWR0aCAwLjJzO1xcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjJzLCB3aWR0aCAwLjJzOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBDb2x1bW4gUGFuZWxcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLWNvbHVtbi1wYW5lbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgZmxleDogMSAxIGF1dG87IH1cXG5cXG4uYWctY29sdW1uLXNlbGVjdC1wYW5lbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICAtd2Via2l0LWJveC1mbGV4OiA0O1xcbiAgLW1zLWZsZXgtcG9zaXRpdmU6IDQ7XFxuICBmbGV4LWdyb3c6IDQ7XFxuICAtbXMtZmxleC1uZWdhdGl2ZTogMTtcXG4gIGZsZXgtc2hyaW5rOiAxO1xcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDA7XFxuICBmbGV4LWJhc2lzOiAwOyB9XFxuICAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgLW1zLWZsZXg6IG5vbmU7XFxuICAgIGZsZXg6IG5vbmU7IH1cXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwgLmFnLWNvbHVtbi1uYW1lLWZpbHRlciB7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgZmxleDogMSAxIGF1dG87IH1cXG4gICAgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwgLmFnLXByaW1hcnktY29scy1maWx0ZXItd3JhcHBlciB7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgZmxleDogMSAxIGF1dG87IH1cXG4gICAgICAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCAuYWctcHJpbWFyeS1jb2xzLWZpbHRlci13cmFwcGVyIGlucHV0IHtcXG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XFxuICAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctcHJpbWFyeS1jb2xzLWxpc3QtcGFuZWwge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICBvdmVyZmxvdzogYXV0bzsgfVxcblxcbi5hZy1jb2x1bW4tZHJvcCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG4gIC5hZy1jb2x1bW4tZHJvcCAuYWctY29sdW1uLWRyb3AtbGlzdCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWxpc3QgLmFnLWNvbHVtbi1kcm9wLWNlbGwge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgICAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWxpc3QgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtdGV4dCB7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuXFxuLmFnLWNvbHVtbi1kcm9wLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtbXMtZmxleDogMSAxIDBweDtcXG4gIGZsZXg6IDEgMSAwO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7XFxuICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XFxuICAuYWctY29sdW1uLWRyb3AuYWctY29sdW1uLWRyb3AtdmVydGljYWwgPiBkaXYge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gIC5hZy1jb2x1bW4tZHJvcC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCAuYWctY29sdW1uLWRyb3AtbGlzdCB7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoO1xcbiAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxO1xcbiAgICBmbGV4LWdyb3c6IDE7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgb3ZlcmZsb3cteDogYXV0bzsgfVxcbiAgLmFnLWNvbHVtbi1kcm9wLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsIC5hZy1jb2x1bW4tZHJvcC1lbXB0eS1tZXNzYWdlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7IH1cXG5cXG4uYWctY29sdW1uLWRyb3AuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogUm93c1xcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctcm93LWFuaW1hdGlvbiAuYWctcm93IHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDAuNHMsIGhlaWdodCAwLjRzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMsIG9wYWNpdHkgMC4ycywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IHRvcCAwLjRzLCBoZWlnaHQgMC40cywgYmFja2dyb3VuZC1jb2xvciAwLjFzLCBvcGFjaXR5IDAuMnMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cywgdG9wIDAuNHMsIGhlaWdodCAwLjRzLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMsIG9wYWNpdHkgMC4ycztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzLCB0b3AgMC40cywgaGVpZ2h0IDAuNHMsIGJhY2tncm91bmQtY29sb3IgMC4xcywgb3BhY2l0eSAwLjJzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzOyB9XFxuXFxuLmFnLXJvdy1uby1hbmltYXRpb24gLmFnLXJvdyB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xcztcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xczsgfVxcblxcbi5hZy1yb3cge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLXJvdy1wb3NpdGlvbi1hYnNvbHV0ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cXG5cXG4uYWctcm93LXBvc2l0aW9uLXJlbGF0aXZlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcblxcbi5hZy1mdWxsLXdpZHRoLXJvdyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxcblxcbi5hZy1yb3ctaW5saW5lLWVkaXRpbmcge1xcbiAgei1pbmRleDogMTsgfVxcblxcbi5hZy1yb3ctZHJhZ2dpbmcge1xcbiAgei1pbmRleDogMjsgfVxcblxcbi5hZy1zdHViLWNlbGwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIENlbGxzXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1jZWxsIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG5cXG4uYWctY2VsbC13cmFwcGVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7IH1cXG4gIC5hZy1jZWxsLXdyYXBwZXIuYWctcm93LWdyb3VwIHtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XFxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XFxuICAuYWctY2VsbC13cmFwcGVyIC5hZy1jZWxsLXZhbHVlLCAuYWctY2VsbC13cmFwcGVyIC5hZy1ncm91cC12YWx1ZSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XFxuXFxuLmFnLWZ1bGwtd2lkdGgtcm93LmFnLXJvdy1ncm91cCAuYWctY2VsbC13cmFwcGVyIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcblxcbi5hZy1jZWxsLXdpdGgtaGVpZ2h0IHtcXG4gIGhlaWdodDogMTAwJTsgfVxcblxcbi5hZy1ncm91cC1jZWxsLWVudGlyZS1yb3cge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLWZvb3Rlci1jZWxsLWVudGlyZS1yb3cge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcge1xcbiAgei1pbmRleDogMTsgfVxcbiAgLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcgLmFnLWNlbGwtZWRpdC1pbnB1dCwgLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcgLmFnLWlucHV0LXdyYXBwZXIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBGaWx0ZXJzXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1zZXQtZmlsdGVyLWl0ZW0ge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcblxcbi5hZy1maWx0ZXIgLmFnLWZpbHRlci1jaGVja2JveCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcblxcbi5hZy1maWx0ZXIgLmFnLWZpbHRlci1ib2R5LXdyYXBwZXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cXG5cXG4uYWctZmlsdGVyIC5hZy1maWx0ZXItZmlsdGVyIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtbXMtZmxleDogMSAxIGF1dG87XFxuICBmbGV4OiAxIDEgYXV0bzsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogRmxvYXRpbmcgRmlsdGVyXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1mbG9hdGluZy1maWx0ZXItZnVsbC1ib2R5IC5hZy1yZWFjdC1jb250YWluZXIsIC5hZy1mbG9hdGluZy1maWx0ZXItYm9keSAuYWctcmVhY3QtY29udGFpbmVyIHtcXG4gIGhlaWdodDogMTAwJTsgfVxcblxcbi5hZy1mbG9hdGluZy1maWx0ZXItYm9keSB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtbXMtZmxleDogMSAxIGF1dG87XFxuICBmbGV4OiAxIDEgYXV0bztcXG4gIGhlaWdodDogMTAwJTsgfVxcbiAgLmFnLWZsb2F0aW5nLWZpbHRlci1ib2R5IGlucHV0IHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAxcHgpOyB9XFxuXFxuLmFnLWZsb2F0aW5nLWZpbHRlci1mdWxsLWJvZHkge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJTsgfVxcbiAgLmFnLWZsb2F0aW5nLWZpbHRlci1mdWxsLWJvZHkgPiBkaXYge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgIGZsZXg6IDEgMSBhdXRvOyB9XFxuICAuYWctZmxvYXRpbmctZmlsdGVyLWZ1bGwtYm9keSBpbnB1dCB7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgd2lkdGg6IDEwMCU7IH1cXG4gIC5hZy1mbG9hdGluZy1maWx0ZXItZnVsbC1ib2R5IGlucHV0W3R5cGU9XFxcInJhbmdlXFxcIl0ge1xcbiAgICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4uYWctZmxvYXRpbmctZmlsdGVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxcblxcbi5hZy1mbG9hdGluZy1maWx0ZXItaW5wdXQge1xcbiAgd2lkdGg6IDEwMCU7IH1cXG5cXG4uYWctZmxvYXRpbmctZmlsdGVyLWlucHV0Oi1tb3otcmVhZC1vbmx5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7IH1cXG5cXG4uYWctZmxvYXRpbmctZmlsdGVyLWlucHV0OnJlYWQtb25seSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyB9XFxuXFxuLmFnLWZsb2F0aW5nLWZpbHRlci1tZW51IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cXG5cXG4uYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbiB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAtbXMtZmxleDogbm9uZTtcXG4gIGZsZXg6IG5vbmU7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIERyYWcgJiBEcm9wXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1kbmQtZ2hvc3Qge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBiYWNrZ3JvdW5kOiAjZTVlNWU1O1xcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XFxuICBjdXJzb3I6IG1vdmU7XFxuICBmb250LWZhbWlseTogXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcGFkZGluZzogM3B4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgei1pbmRleDogMTA7IH1cXG5cXG4uYWctZG5kLWdob3N0LWljb24ge1xcbiAgcGFkZGluZzogMnB4OyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBPdmVybGF5XFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1vdmVybGF5IHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGxlZnQ6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLW92ZXJsYXktcGFuZWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLW92ZXJsYXktd3JhcHBlciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAtbXMtZmxleDogbm9uZTtcXG4gIGZsZXg6IG5vbmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XFxuICAuYWctb3ZlcmxheS13cmFwcGVyLmFnLW92ZXJsYXktbG9hZGluZy13cmFwcGVyIHtcXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDsgfVxcblxcbi5hZy1vdmVybGF5LW5vLXJvd3Mtd3JhcHBlci5hZy1sYXlvdXQtYXV0by1oZWlnaHQge1xcbiAgcGFkZGluZy10b3A6IDMwcHg7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFBvcHVwXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1wb3B1cCA+IGRpdiB7XFxuICB6LWluZGV4OiA1OyB9XFxuXFxuLmFnLXBvcHVwLWJhY2tkcm9wIHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGxlZnQ6IDA7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMTAwJTsgfVxcblxcbi5hZy1wb3B1cC1lZGl0b3Ige1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHotaW5kZXg6IDE7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFZpcnR1YWwgTGlzdHNcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLXZpcnR1YWwtbGlzdC1pdGVtIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuICAuYWctdmlydHVhbC1saXN0LWl0ZW0gc3BhbjplbXB0eTpub3QoLmFnLWljb24pIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogRmxvYXRpbmcgVG9wIGFuZCBCb3R0b21cXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLWZsb2F0aW5nLXRvcCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7IH1cXG5cXG4uYWctcGlubmVkLWxlZnQtZmxvYXRpbmctdG9wIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBtaW4td2lkdGg6IDBweDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDEwMDA7XFxuICAtbXMtZmxleC1wb3NpdGl2ZTogMTAwMDtcXG4gIGZsZXgtZ3JvdzogMTAwMDsgfVxcblxcbi5hZy1waW5uZWQtcmlnaHQtZmxvYXRpbmctdG9wIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBtaW4td2lkdGg6IDBweDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDEwMDA7XFxuICAtbXMtZmxleC1wb3NpdGl2ZTogMTAwMDtcXG4gIGZsZXgtZ3JvdzogMTAwMDsgfVxcblxcbi5hZy1mbG9hdGluZy1ib3R0b20ge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4OyB9XFxuXFxuLmFnLXBpbm5lZC1sZWZ0LWZsb2F0aW5nLWJvdHRvbSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbWluLXdpZHRoOiAwcHg7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxMDAwO1xcbiAgLW1zLWZsZXgtcG9zaXRpdmU6IDEwMDA7XFxuICBmbGV4LWdyb3c6IDEwMDA7IH1cXG5cXG4uYWctcGlubmVkLXJpZ2h0LWZsb2F0aW5nLWJvdHRvbSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbWluLXdpZHRoOiAwcHg7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxMDAwO1xcbiAgLW1zLWZsZXgtcG9zaXRpdmU6IDEwMDA7XFxuICBmbGV4LWdyb3c6IDEwMDA7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIERpYWxvZ1xcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctZGlhbG9nLCAuYWctcGFuZWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuICAuYWctZGlhbG9nIC5hZy10aXRsZS1iYXIsIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgZmxleDogbm9uZTtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAgIC5hZy1kaWFsb2cgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLXRpdGxlLCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLXRpdGxlIHtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICBmbGV4OiAxIDEgYXV0bzsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zLCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cXG4gICAgICAuYWctZGlhbG9nIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b24sIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uIHtcXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcbiAgLmFnLWRpYWxvZyAuYWctcGFuZWwtY29udGVudC13cmFwcGVyLCAuYWctcGFuZWwgLmFnLXBhbmVsLWNvbnRlbnQtd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuICAgIC5hZy1kaWFsb2cgLmFnLXBhbmVsLWNvbnRlbnQtd3JhcHBlciA+IGRpdiwgLmFnLXBhbmVsIC5hZy1wYW5lbC1jb250ZW50LXdyYXBwZXIgPiBkaXYge1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIGhlaWdodDogMTAwJTsgfVxcblxcbi5hZy1kaWFsb2cge1xcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XFxuICAuYWctZGlhbG9nIC5hZy1yZXNpemVyIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgei1pbmRleDogMTsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy1yZXNpemVyLmFnLXJlc2l6ZXItdG9wTGVmdCB7XFxuICAgICAgdG9wOiAwO1xcbiAgICAgIGxlZnQ6IDA7XFxuICAgICAgaGVpZ2h0OiA1cHg7XFxuICAgICAgd2lkdGg6IDVweDtcXG4gICAgICBjdXJzb3I6IG53c2UtcmVzaXplOyB9XFxuICAgIC5hZy1kaWFsb2cgLmFnLXJlc2l6ZXIuYWctcmVzaXplci10b3Age1xcbiAgICAgIHRvcDogMDtcXG4gICAgICBsZWZ0OiA1cHg7XFxuICAgICAgcmlnaHQ6IDVweDtcXG4gICAgICBoZWlnaHQ6IDVweDtcXG4gICAgICBjdXJzb3I6IG5zLXJlc2l6ZTsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy1yZXNpemVyLmFnLXJlc2l6ZXItdG9wUmlnaHQge1xcbiAgICAgIHRvcDogMDtcXG4gICAgICByaWdodDogMDtcXG4gICAgICBoZWlnaHQ6IDVweDtcXG4gICAgICB3aWR0aDogNXB4O1xcbiAgICAgIGN1cnNvcjogbmVzdy1yZXNpemU7IH1cXG4gICAgLmFnLWRpYWxvZyAuYWctcmVzaXplci5hZy1yZXNpemVyLXJpZ2h0IHtcXG4gICAgICB0b3A6IDVweDtcXG4gICAgICByaWdodDogMDtcXG4gICAgICBib3R0b206IDVweDtcXG4gICAgICB3aWR0aDogNXB4O1xcbiAgICAgIGN1cnNvcjogZXctcmVzaXplOyB9XFxuICAgIC5hZy1kaWFsb2cgLmFnLXJlc2l6ZXIuYWctcmVzaXplci1ib3R0b21SaWdodCB7XFxuICAgICAgYm90dG9tOiAwO1xcbiAgICAgIHJpZ2h0OiAwO1xcbiAgICAgIGhlaWdodDogNXB4O1xcbiAgICAgIHdpZHRoOiA1cHg7XFxuICAgICAgY3Vyc29yOiBud3NlLXJlc2l6ZTsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy1yZXNpemVyLmFnLXJlc2l6ZXItYm90dG9tIHtcXG4gICAgICBib3R0b206IDA7XFxuICAgICAgbGVmdDogNXB4O1xcbiAgICAgIHJpZ2h0OiA1cHg7XFxuICAgICAgaGVpZ2h0OiA1cHg7XFxuICAgICAgY3Vyc29yOiBucy1yZXNpemU7IH1cXG4gICAgLmFnLWRpYWxvZyAuYWctcmVzaXplci5hZy1yZXNpemVyLWJvdHRvbUxlZnQge1xcbiAgICAgIGJvdHRvbTogMDtcXG4gICAgICBsZWZ0OiAwO1xcbiAgICAgIGhlaWdodDogNXB4O1xcbiAgICAgIHdpZHRoOiA1cHg7XFxuICAgICAgY3Vyc29yOiBuZXN3LXJlc2l6ZTsgfVxcbiAgICAuYWctZGlhbG9nIC5hZy1yZXNpemVyLmFnLXJlc2l6ZXItbGVmdCB7XFxuICAgICAgbGVmdDogMDtcXG4gICAgICB0b3A6IDVweDtcXG4gICAgICBib3R0b206IDVweDtcXG4gICAgICB3aWR0aDogNXB4O1xcbiAgICAgIGN1cnNvcjogZXctcmVzaXplOyB9XFxuICAuYWctZGlhbG9nIC5hZy1tZXNzYWdlLWJveCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XFxuICAgIC5hZy1kaWFsb2cgLmFnLW1lc3NhZ2UtYm94IC5hZy1tZXNzYWdlLWJveC1jb250ZW50IHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLmFnLWRpYWxvZyAuYWctbWVzc2FnZS1ib3ggLmFnLW1lc3NhZ2UtYm94LWJ1dHRvbi1iYXIge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogVG9vbHRpcFxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctdG9vbHRpcCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHotaW5kZXg6IDk5OTk5OyB9XFxuXFxuLmFnLWNoYXJ0LXRvb2x0aXAge1xcbiAgZGlzcGxheTogdGFibGU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgei1pbmRleDogOTk5OTk7XFxuICBmb250OiAxMnB4IFZlcmRhbmEsIHNhbnMtc2VyaWY7XFxuICBjb2xvcjogYmxhY2s7XFxuICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoMywgMywgMywgMC43KSwgMC41dmggMC41dmggMXZoIHJnYmEoMywgMywgMywgMC4yNSk7XFxuICBib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoMywgMywgMywgMC43KSwgMC41dmggMC41dmggMXZoIHJnYmEoMywgMywgMywgMC4yNSk7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOSk7XFxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSk7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCB0cmFuc2Zvcm0sIC13ZWJraXQtdHJhbnNmb3JtOyB9XFxuICAuYWctY2hhcnQtdG9vbHRpcC52aXNpYmxlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XFxuICAuYWctY2hhcnQtdG9vbHRpcCAudGl0bGUge1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgcGFkZGluZzogN3B4O1xcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XFxuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XFxuICAgIGNvbG9yOiB3aGl0ZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODg4ODsgfVxcbiAgLmFnLWNoYXJ0LXRvb2x0aXAgLmNvbnRlbnQge1xcbiAgICBwYWRkaW5nOiA3cHg7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIEFuaW1hdGlvbnNcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLXZhbHVlLXNsaWRlLW91dCB7XFxuICBtYXJnaW4tcmlnaHQ6IDVweDtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgM3MsIG1hcmdpbi1yaWdodCAzcztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgM3MsIG1hcmdpbi1yaWdodCAzcztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcXG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7IH1cXG5cXG4uYWctdmFsdWUtc2xpZGUtb3V0LWVuZCB7XFxuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XFxuICBvcGFjaXR5OiAwOyB9XFxuXFxuLmFnLW9wYWNpdHktemVybyB7XFxuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIE1lbnVcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiovXFxuLmFnLW1lbnUge1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gIHVzZXItc2VsZWN0OiBub25lOyB9XFxuXFxuLmFnLW1lbnUtY29sdW1uLXNlbGVjdC13cmFwcGVyIHtcXG4gIGhlaWdodDogMjY1cHg7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIHdpZHRoOiAyMDBweDsgfVxcblxcbi5hZy1tZW51LWxpc3Qge1xcbiAgZGlzcGxheTogdGFibGU7IH1cXG5cXG4uYWctbWVudS1vcHRpb24sIC5hZy1tZW51LXNlcGFyYXRvciB7XFxuICBkaXNwbGF5OiB0YWJsZS1yb3c7IH1cXG4gIC5hZy1tZW51LW9wdGlvbiA+IHNwYW4sIC5hZy1tZW51LXNlcGFyYXRvciA+IHNwYW4ge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuXFxuLmFnLW1lbnUtb3B0aW9uLXRleHQge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcblxcbi5hZy1tZW51LWNvbHVtbi1zZWxlY3Qtd3JhcHBlciAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCB7XFxuICBoZWlnaHQ6IDEwMCU7IH1cXG5cXG4vKipcXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxcbiAqIFJpY2ggU2VsZWN0XFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1yaWNoLXNlbGVjdCB7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBvdXRsaW5lOiBub25lOyB9XFxuICAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LXZhbHVlIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3QtdmFsdWUgPiBzcGFuIHtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICBmbGV4OiAxIDEgYXV0bzsgfVxcbiAgICAgIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3QtdmFsdWUgPiBzcGFuLmFnLWljb24ge1xcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMjtcXG4gICAgICAgIC1tcy1mbGV4LW9yZGVyOiAxO1xcbiAgICAgICAgb3JkZXI6IDE7XFxuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IG5vbmU7XFxuICAgICAgICBmbGV4OiBub25lOyB9XFxuICAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LWxpc3QgLmFnLXZpcnR1YWwtbGlzdC1pdGVtIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4OyB9XFxuICAgIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3QtbGlzdCAuYWctdmlydHVhbC1saXN0LWl0ZW0gLmFnLXJpY2gtc2VsZWN0LXJvdyB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBQYWdpbmF0aW9uXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4qL1xcbi5hZy1wYWdpbmctcGFuZWwge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XFxuXFxuLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIC5hZy1kaXNhYmxlZCB7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XFxuICAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctcGFnaW5nLWJ1dHRvbiB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbiAgICAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctcGFnaW5nLWJ1dHRvbiBidXR0b24ge1xcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogVG9vbCBQYW5lbFxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctdG9vbC1wYW5lbC13cmFwcGVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB3aWR0aDogMjAwcHg7IH1cXG4gIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci10b29scGFuZWwtaGVhZGVyIHtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuXFxuLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbixcXG4uYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICBmbGV4LXdyYXA6IG5vd3JhcDtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxcbiAgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLFxcbiAgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwLFxcbiAgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLFxcbiAgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cXG5cXG4uYWctY29sdW1uLXNlbGVjdC1jaGVja2JveCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDsgfVxcblxcbi5hZy10b29sLXBhbmVsLWhvcml6b250YWwtcmVzaXplIHtcXG4gIGN1cnNvcjogY29sLXJlc2l6ZTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHdpZHRoOiA1cHg7XFxuICB6LWluZGV4OiAxOyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbC1wYW5lbC1ob3Jpem9udGFsLXJlc2l6ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgzcHgpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDNweCk7IH1cXG5cXG4uYWctbHRyIC5hZy10b29sLXBhbmVsLWhvcml6b250YWwtcmVzaXplIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpOyB9XFxuXFxuLmxvYWRpbmctZmlsdGVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwYWRkaW5nOiA1cHg7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDM0cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIHotaW5kZXg6IDE7IH1cXG5cXG4uYWctZGV0YWlscy1yb3cge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG5cXG4uYWctZGV0YWlscy1ncmlkIHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxMDAlOyB9XFxuXFxuLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XFxuXFxuLmFnLWNlbGwtbGFiZWwtY29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcXG4gIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgd2lkdGg6IDEwMCU7IH1cXG5cXG4uYWctbnVtZXJpYy1oZWFkZXIgLmFnLWNlbGwtbGFiZWwtY29udGFpbmVyIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XFxuXFxuLyoqXFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gKiBTaWRlIEJhclxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctc2lkZS1iYXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XFxuICAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyBkaXYgYnV0dG9uIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcbiAgICAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyBkaXYgYnV0dG9uIHNwYW46bm90KC5hZy1pY29uKSB7XFxuICAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHRiO1xcbiAgICAgIC1tcy13cml0aW5nLW1vZGU6IHRiO1xcbiAgICAgIHdyaXRpbmctbW9kZTogdGI7XFxuICAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyO1xcbiAgICAgIC1tcy13cml0aW5nLW1vZGU6IHRiLWxyO1xcbiAgICAgIHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IH1cXG4gIC5hZy1zaWRlLWJhciAucGFuZWwtY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDE4MHB4OyB9XFxuICAuYWctc2lkZS1iYXIuZnVsbC13aWR0aCAucGFuZWwtY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDIwMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyBidXR0b24gc3Bhbjpub3QoLmFnLWljb24pIHtcXG4gIC13ZWJraXQtd3JpdGluZy1tb2RlOiB0Yi1ybDtcXG4gIC1tcy13cml0aW5nLW1vZGU6IHRiLXJsO1xcbiAgd3JpdGluZy1tb2RlOiB0Yi1ybDtcXG4gIC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDtcXG4gIC1tcy13cml0aW5nLW1vZGU6IHRiLXJsO1xcbiAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogU3RhdHVzIEJhclxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctc3RhdHVzLWJhciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgLmFnLXN0YXR1cy1iYXIgLmFnLXN0YXR1cy1wYW5lbCB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxcblxcbi5hZy1zdGF0dXMtYmFyLWxlZnQge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cXG5cXG4uYWctc3RhdHVzLWJhci1jZW50ZXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cXG5cXG4uYWctc3RhdHVzLWJhci1yaWdodCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxcblxcbi8qKlxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICogV2lkZ2V0c1xcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuKi9cXG4uYWctZ3JvdXAtY29tcG9uZW50IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtbXMtZmxleDogMSAxIDEwMCU7XFxuICBmbGV4OiAxIDEgMTAwJTsgfVxcbiAgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhciB7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtY29tcG9uZW50LXRvb2xiYXIge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxcbiAgICAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIC5hZy1ncm91cC1zdWJncm91cCB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdHJldGNoO1xcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cXG4gIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWl0ZW0ge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgZmxleDogMSAxIGF1dG87XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gIC5hZy1ncm91cC1jb21wb25lbnQuYWctZGlzYWJsZWQgLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIge1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcbiAgLmFnLWdyb3VwLWNvbXBvbmVudC5hZy1jb2xsYXBzZWQgLmFnLWdyb3VwLWNvbXBvbmVudC10b29sYmFyLCAuYWctZ3JvdXAtY29tcG9uZW50LmFnLWNvbGxhcHNlZCAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciB7XFxuICAgIGRpc3BsYXk6IG5vbmU7IH1cXG5cXG4uYWctdG9nZ2xlLWJ1dHRvbiAuYWctaW5wdXQtd3JhcHBlciAuYWctaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHJpZ2h0IDAuM3M7XFxuICB0cmFuc2l0aW9uOiByaWdodCAwLjNzO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtMXB4OyB9XFxuXFxuLmFnLWlucHV0LWZpZWxkIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gIC5hZy1pbnB1dC1maWVsZCBpbnB1dCwgLmFnLWlucHV0LWZpZWxkIHNlbGVjdCwgLmFnLWlucHV0LWZpZWxkIHRleHRhcmVhIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICBmbGV4OiAxIDEgYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIG1pbi13aWR0aDogMDsgfVxcblxcbi5hZy1yYW5nZS1maWVsZCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcblxcbi5hZy1waWNrZXItZmllbGQgPiAuYWctd3JhcHBlciwgLmFnLXNsaWRlciA+IC5hZy13cmFwcGVyLCAuYWctYW5nbGUtc2VsZWN0ID4gLmFnLXdyYXBwZXIge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7IH1cXG4gIC5hZy1waWNrZXItZmllbGQgPiAuYWctd3JhcHBlciA+IGRpdiwgLmFnLXNsaWRlciA+IC5hZy13cmFwcGVyID4gZGl2LCAuYWctYW5nbGUtc2VsZWN0ID4gLmFnLXdyYXBwZXIgPiBkaXYge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgIGZsZXg6IDEgMSBhdXRvOyB9XFxuXFxuLmFnLWFuZ2xlLXNlbGVjdCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1wYXJlbnQtY2lyY2xlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbiAgLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1jaGlsZC1jaXJjbGUge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cXG5cXG4uYWctcGlja2VyLWZpZWxkIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAuYWctcGlja2VyLWZpZWxkID4gLmFnLXdyYXBwZXIgPiBidXR0b24ge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgbWFyZ2luOiAwOyB9XFxuXFxuLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoO1xcbiAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XFxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG5cXG4uYWctY29sb3ItcGlja2VyIGJ1dHRvbiB7XFxuICBjdXJzb3I6IHBvaW50ZXI7IH1cXG5cXG4uYWctbGFiZWxlZC5hZy1sYWJlbC1hbGlnbi1yaWdodCBsYWJlbCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAyO1xcbiAgLW1zLWZsZXgtb3JkZXI6IDE7XFxuICBvcmRlcjogMTsgfVxcblxcbi5hZy1sYWJlbGVkLmFnLWxhYmVsLWFsaWduLXJpZ2h0ID4gZGl2IHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAtbXMtZmxleDogbm9uZTtcXG4gIGZsZXg6IG5vbmU7IH1cXG5cXG4uYWctbGFiZWxlZC5hZy1sYWJlbC1hbGlnbi10b3Age1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cXG4gIC5hZy1sYWJlbGVkLmFnLWxhYmVsLWFsaWduLXRvcCA+IGRpdiB7XFxuICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2g7XFxuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cXG5cXG4uYWctY29sb3ItcGFuZWwge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tY29sb3Ige1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxcbiAgLmFnLWNvbG9yLXBhbmVsIC5hZy1maWxsIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0b3A6IDA7XFxuICAgIGxlZnQ6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3R0b206IDA7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tdmFsIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWRyYWdnZXIge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0taHVlIHtcXG4gICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgcmlnaHQgdG9wLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgzJSwgI2ZmMDAwMCksIGNvbG9yLXN0b3AoMTclLCAjZmZmZjAwKSwgY29sb3Itc3RvcCgzMyUsICMwMGZmMDApLCBjb2xvci1zdG9wKDUwJSwgIzAwZmZmZiksIGNvbG9yLXN0b3AoNjclLCAjMDAwMGZmKSwgY29sb3Itc3RvcCg4MyUsICNmZjAwZmYpLCB0bygjZmYwMDAwKSk7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjZmYwMDAwIDMlLCAjZmZmZjAwIDE3JSwgIzAwZmYwMCAzMyUsICMwMGZmZmYgNTAlLCAjMDAwMGZmIDY3JSwgI2ZmMDBmZiA4MyUsICNmZjAwMDAgMTAwJSk7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tYWxwaGEge1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0taHVlLWJhY2tncm91bmQge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWFscGhhLWJhY2tncm91bmQge1xcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbShyZ2JhKDAsIDAsIDAsIDApKSwgdG8oYmxhY2spKTtcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDApLCBibGFjayk7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctaHVlLWFscGhhIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXNsaWRlciB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cXG4gIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tdGV4dC12YWx1ZSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuICAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRleHQtdmFsdWU6Zm9jdXMge1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBvdXRsaW5lLW9mZnNldDogMDsgfVxcbiAgLmFnLWNvbG9yLXBhbmVsIC5hZy1yZWNlbnQtY29sb3JzIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4OyB9XFxuICAgIC5hZy1jb2xvci1wYW5lbCAuYWctcmVjZW50LWNvbG9ycyA+IGRpdiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xIHtcXG4gIHBhZGRpbmctbGVmdDogMTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xIHtcXG4gIHBhZGRpbmctbGVmdDogMTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yIHtcXG4gIHBhZGRpbmctbGVmdDogMjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yIHtcXG4gIHBhZGRpbmctbGVmdDogMjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zIHtcXG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zIHtcXG4gIHBhZGRpbmctbGVmdDogMzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00IHtcXG4gIHBhZGRpbmctbGVmdDogNDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00IHtcXG4gIHBhZGRpbmctbGVmdDogNDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC01IHtcXG4gIHBhZGRpbmctbGVmdDogNTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC01IHtcXG4gIHBhZGRpbmctbGVmdDogNTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC02IHtcXG4gIHBhZGRpbmctbGVmdDogNjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNiB7XFxuICBwYWRkaW5nLXJpZ2h0OiA2MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC02IHtcXG4gIHBhZGRpbmctbGVmdDogNjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNiB7XFxuICBwYWRkaW5nLXJpZ2h0OiA2MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC03IHtcXG4gIHBhZGRpbmctbGVmdDogNzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA3MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC03IHtcXG4gIHBhZGRpbmctbGVmdDogNzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA3MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC04IHtcXG4gIHBhZGRpbmctbGVmdDogODBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC04IHtcXG4gIHBhZGRpbmctbGVmdDogODBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtOCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC05IHtcXG4gIHBhZGRpbmctbGVmdDogOTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA5MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC05IHtcXG4gIHBhZGRpbmctbGVmdDogOTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtOSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA5MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMCB7XFxuICBwYWRkaW5nLWxlZnQ6IDEwMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTAge1xcbiAgcGFkZGluZy1sZWZ0OiAxMDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTAge1xcbiAgcGFkZGluZy1yaWdodDogMTAwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTExIHtcXG4gIHBhZGRpbmctbGVmdDogMTEwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTExIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDExMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMSB7XFxuICBwYWRkaW5nLWxlZnQ6IDExMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTIge1xcbiAgcGFkZGluZy1sZWZ0OiAxMjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTIge1xcbiAgcGFkZGluZy1yaWdodDogMTIwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEyIHtcXG4gIHBhZGRpbmctbGVmdDogMTIwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEyIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDEyMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDEzMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTMge1xcbiAgcGFkZGluZy1sZWZ0OiAxMzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTMge1xcbiAgcGFkZGluZy1yaWdodDogMTMwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE0IHtcXG4gIHBhZGRpbmctbGVmdDogMTQwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE0MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE0MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTUge1xcbiAgcGFkZGluZy1sZWZ0OiAxNTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTUge1xcbiAgcGFkZGluZy1yaWdodDogMTUwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE1IHtcXG4gIHBhZGRpbmctbGVmdDogMTUwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE1IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNiB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTYge1xcbiAgcGFkZGluZy1sZWZ0OiAxNjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTYge1xcbiAgcGFkZGluZy1yaWdodDogMTYwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE3IHtcXG4gIHBhZGRpbmctbGVmdDogMTcwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE3IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE3MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNyB7XFxuICBwYWRkaW5nLWxlZnQ6IDE3MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTgge1xcbiAgcGFkZGluZy1sZWZ0OiAxODBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTgge1xcbiAgcGFkZGluZy1yaWdodDogMTgwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE4IHtcXG4gIHBhZGRpbmctbGVmdDogMTgwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE4IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE4MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xOSB7XFxuICBwYWRkaW5nLWxlZnQ6IDE5MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xOSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxOTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTkge1xcbiAgcGFkZGluZy1sZWZ0OiAxOTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTkge1xcbiAgcGFkZGluZy1yaWdodDogMTkwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIwIHtcXG4gIHBhZGRpbmctbGVmdDogMjAwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIwIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIwMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMCB7XFxuICBwYWRkaW5nLWxlZnQ6IDIwMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyMDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjEge1xcbiAgcGFkZGluZy1sZWZ0OiAyMTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjEge1xcbiAgcGFkZGluZy1yaWdodDogMjEwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIxIHtcXG4gIHBhZGRpbmctbGVmdDogMjEwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIxIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIxMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMiB7XFxuICBwYWRkaW5nLWxlZnQ6IDIyMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyMjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjIge1xcbiAgcGFkZGluZy1sZWZ0OiAyMjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjIge1xcbiAgcGFkZGluZy1yaWdodDogMjIwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIzIHtcXG4gIHBhZGRpbmctbGVmdDogMjMwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIzMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMyB7XFxuICBwYWRkaW5nLWxlZnQ6IDIzMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyMzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjQge1xcbiAgcGFkZGluZy1sZWZ0OiAyNDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjQge1xcbiAgcGFkZGluZy1yaWdodDogMjQwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI0IHtcXG4gIHBhZGRpbmctbGVmdDogMjQwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI0MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNSB7XFxuICBwYWRkaW5nLWxlZnQ6IDI1MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyNTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjUge1xcbiAgcGFkZGluZy1sZWZ0OiAyNTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjUge1xcbiAgcGFkZGluZy1yaWdodDogMjUwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI2IHtcXG4gIHBhZGRpbmctbGVmdDogMjYwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI2IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI2MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNiB7XFxuICBwYWRkaW5nLWxlZnQ6IDI2MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyNjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjcge1xcbiAgcGFkZGluZy1sZWZ0OiAyNzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjcge1xcbiAgcGFkZGluZy1yaWdodDogMjcwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI3IHtcXG4gIHBhZGRpbmctbGVmdDogMjcwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI3IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI3MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yOCB7XFxuICBwYWRkaW5nLWxlZnQ6IDI4MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yOCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyODBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjgge1xcbiAgcGFkZGluZy1sZWZ0OiAyODBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjgge1xcbiAgcGFkZGluZy1yaWdodDogMjgwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI5IHtcXG4gIHBhZGRpbmctbGVmdDogMjkwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI5IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDI5MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yOSB7XFxuICBwYWRkaW5nLWxlZnQ6IDI5MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yOSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyOTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzAge1xcbiAgcGFkZGluZy1sZWZ0OiAzMDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzAge1xcbiAgcGFkZGluZy1yaWdodDogMzAwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMwIHtcXG4gIHBhZGRpbmctbGVmdDogMzAwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMwIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDMwMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMSB7XFxuICBwYWRkaW5nLWxlZnQ6IDMxMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzMTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzEge1xcbiAgcGFkZGluZy1sZWZ0OiAzMTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzEge1xcbiAgcGFkZGluZy1yaWdodDogMzEwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMyIHtcXG4gIHBhZGRpbmctbGVmdDogMzIwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMyIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDMyMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMiB7XFxuICBwYWRkaW5nLWxlZnQ6IDMyMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMiB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzMjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzMge1xcbiAgcGFkZGluZy1sZWZ0OiAzMzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzMge1xcbiAgcGFkZGluZy1yaWdodDogMzMwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMzIHtcXG4gIHBhZGRpbmctbGVmdDogMzMwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDMzMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDM0MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzNDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzQge1xcbiAgcGFkZGluZy1sZWZ0OiAzNDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzQge1xcbiAgcGFkZGluZy1yaWdodDogMzQwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM1IHtcXG4gIHBhZGRpbmctbGVmdDogMzUwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM1IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDM1MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNSB7XFxuICBwYWRkaW5nLWxlZnQ6IDM1MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzNTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzYge1xcbiAgcGFkZGluZy1sZWZ0OiAzNjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzYge1xcbiAgcGFkZGluZy1yaWdodDogMzYwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM2IHtcXG4gIHBhZGRpbmctbGVmdDogMzYwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM2IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDM2MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNyB7XFxuICBwYWRkaW5nLWxlZnQ6IDM3MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzNzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzcge1xcbiAgcGFkZGluZy1sZWZ0OiAzNzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzcge1xcbiAgcGFkZGluZy1yaWdodDogMzcwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM4IHtcXG4gIHBhZGRpbmctbGVmdDogMzgwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM4IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDM4MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zOCB7XFxuICBwYWRkaW5nLWxlZnQ6IDM4MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zOCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAzODBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzkge1xcbiAgcGFkZGluZy1sZWZ0OiAzOTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzkge1xcbiAgcGFkZGluZy1yaWdodDogMzkwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM5IHtcXG4gIHBhZGRpbmctbGVmdDogMzkwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM5IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDM5MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0MDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDAge1xcbiAgcGFkZGluZy1sZWZ0OiA0MDBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDAge1xcbiAgcGFkZGluZy1yaWdodDogNDAwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQxIHtcXG4gIHBhZGRpbmctbGVmdDogNDEwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQxIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQxMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MSB7XFxuICBwYWRkaW5nLWxlZnQ6IDQxMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0MTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDIge1xcbiAgcGFkZGluZy1sZWZ0OiA0MjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDIge1xcbiAgcGFkZGluZy1yaWdodDogNDIwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQyIHtcXG4gIHBhZGRpbmctbGVmdDogNDIwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQyIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQyMHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MyB7XFxuICBwYWRkaW5nLWxlZnQ6IDQzMHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0MzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDMge1xcbiAgcGFkZGluZy1sZWZ0OiA0MzBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDMge1xcbiAgcGFkZGluZy1yaWdodDogNDMwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ0IHtcXG4gIHBhZGRpbmctbGVmdDogNDQwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ0MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ0MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0NDBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDUge1xcbiAgcGFkZGluZy1sZWZ0OiA0NTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDUge1xcbiAgcGFkZGluZy1yaWdodDogNDUwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ1IHtcXG4gIHBhZGRpbmctbGVmdDogNDUwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ1IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ1MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NiB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ2MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NiB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0NjBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDYge1xcbiAgcGFkZGluZy1sZWZ0OiA0NjBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDYge1xcbiAgcGFkZGluZy1yaWdodDogNDYwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ3IHtcXG4gIHBhZGRpbmctbGVmdDogNDcwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ3IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ3MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NyB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ3MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0NzBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDgge1xcbiAgcGFkZGluZy1sZWZ0OiA0ODBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDgge1xcbiAgcGFkZGluZy1yaWdodDogNDgwcHg7IH1cXG5cXG4uYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ4IHtcXG4gIHBhZGRpbmctbGVmdDogNDgwcHg7IH1cXG5cXG4uYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ4IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ4MHB4OyB9XFxuXFxuLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00OSB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ5MHB4OyB9XFxuXFxuLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00OSB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0OTBweDsgfVxcblxcbi5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDkge1xcbiAgcGFkZGluZy1sZWZ0OiA0OTBweDsgfVxcblxcbi5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDkge1xcbiAgcGFkZGluZy1yaWdodDogNDkwcHg7IH1cXG5cXG4uYWctbHRyIHtcXG4gIGRpcmVjdGlvbjogbHRyOyB9XFxuICAuYWctbHRyIC5hZy1ib2R5LCAuYWctbHRyIC5hZy1mbG9hdGluZy10b3AsIC5hZy1sdHIgLmFnLWZsb2F0aW5nLWJvdHRvbSwgLmFnLWx0ciAuYWctaGVhZGVyLCAuYWctbHRyIC5hZy1ib2R5LXZpZXdwb3J0LCAuYWctbHRyIC5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsIHtcXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cXG4gIC5hZy1sdHIgLmFnLWhlYWRlci1jZWxsLXJlc2l6ZSB7XFxuICAgIHJpZ2h0OiAtNHB4OyB9XFxuICAuYWctbHRyIC5hZy1waW5uZWQtcmlnaHQtaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1yZXNpemUge1xcbiAgICBsZWZ0OiAtNHB4OyB9XFxuXFxuLmFnLXJ0bCB7XFxuICBkaXJlY3Rpb246IHJ0bDsgfVxcbiAgLmFnLXJ0bCAuYWctYm9keSwgLmFnLXJ0bCAuYWctZmxvYXRpbmctdG9wLCAuYWctcnRsIC5hZy1mbG9hdGluZy1ib3R0b20sIC5hZy1ydGwgLmFnLWhlYWRlciwgLmFnLXJ0bCAuYWctYm9keS12aWV3cG9ydCwgLmFnLXJ0bCAuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cXG4gIC5hZy1ydGwgLmFnLWhlYWRlci1jZWxsLXJlc2l6ZSB7XFxuICAgIGxlZnQ6IC00cHg7IH1cXG4gIC5hZy1ydGwgLmFnLXBpbm5lZC1sZWZ0LWhlYWRlciAuYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcXG4gICAgcmlnaHQ6IC00cHg7IH1cXG5cXG5AbWVkaWEgcHJpbnQge1xcbiAgLmFnLWJvZHktdmlld3BvcnQge1xcbiAgICBkaXNwbGF5OiBibG9jazsgfVxcbiAgLmFnLXJvdyB7XFxuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfSB9XFxuXFxuLmFnLWJvZHkgLmFnLXBpbm5lZC1sZWZ0LWNvbHMtdmlld3BvcnQsIC5hZy1ib2R5IC5hZy1ib2R5LXZpZXdwb3J0LCAuYWctYm9keSAuYWctcGlubmVkLXJpZ2h0LWNvbHMtdmlld3BvcnQge1xcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XFxuXFxuLmFnLWNoYXJ0IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlOyB9XFxuICAuYWctY2hhcnQgLmFnLWNoYXJ0LWNvbXBvbmVudHMtd3JhcHBlciB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuICAgIC5hZy1jaGFydCAuYWctY2hhcnQtY29tcG9uZW50cy13cmFwcGVyIC5hZy1jaGFydC1jYW52YXMtd3JhcHBlciB7XFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cXG4gICAgICAuYWctY2hhcnQgLmFnLWNoYXJ0LWNvbXBvbmVudHMtd3JhcHBlciAuYWctY2hhcnQtY2FudmFzLXdyYXBwZXIgY2FudmFzIHtcXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XFxuICAgIC5hZy1jaGFydCAuYWctY2hhcnQtY29tcG9uZW50cy13cmFwcGVyIC5hZy1jaGFydC1tZW51IHtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgdG9wOiAxMHB4O1xcbiAgICAgIHJpZ2h0OiAyMHB4O1xcbiAgICAgIHdpZHRoOiAyNHB4O1xcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cXG4gIC5hZy1jaGFydDpub3QoLmFnLWhhcy1tZW51KTpob3ZlciAuYWctY2hhcnQtbWVudSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7IH1cXG4gIC5hZy1jaGFydCAuYWctY2hhcnQtZG9ja2VkLWNvbnRhaW5lciB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgd2lkdGg6IDA7XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBtaW4td2lkdGggMC40cztcXG4gICAgdHJhbnNpdGlvbjogbWluLXdpZHRoIDAuNHM7IH1cXG4gICAgLmFnLWNoYXJ0IC5hZy1jaGFydC1kb2NrZWQtY29udGFpbmVyIC5hZy1wYW5lbCB7XFxuICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgMCAxcHg7IH1cXG5cXG4uYWctY2hhcnQtdGFiYmVkLW1lbnUgPiBkaXYge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIG92ZXJmbG93OiBoaWRkZW47IH1cXG5cXG4uYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLXRhYi1oZWFkZXIge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgZmxleDogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG5cXG4uYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLXRhYi1ib2R5IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxcbiAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy10YWItYm9keSA+IGRpdiB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBvdmVyZmxvdy15OiBhdXRvOyB9XFxuXFxuLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyB7XFxuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cXG4gIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIge1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgaGVpZ2h0OiAzMHB4O1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctbmF2LWNhcmQtc2VsZWN0b3Ige1xcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBkaXN0cmlidXRlO1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XFxuICAgICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1uYXYtY2FyZC1zZWxlY3RvciAuYWctbmF2LWNhcmQtaXRlbSB7XFxuICAgICAgICAgIG9wYWNpdHk6IDAuMjsgfVxcbiAgICAgICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1uYXYtY2FyZC1zZWxlY3RvciAuYWctbmF2LWNhcmQtaXRlbS5hZy1zZWxlY3RlZCB7XFxuICAgICAgICAgICAgb3BhY2l0eTogMTsgfVxcbiAgICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLWNoYXJ0LXNldHRpbmdzLXByZXYtYnRuLCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1jaGFydC1zZXR0aW5ncy1uZXh0LWJ0biB7XFxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgICAgICAgICBmbGV4OiBub25lOyB9XFxuICAgICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1jaGFydC1zZXR0aW5ncy1wcmV2LWJ0biBidXR0b24sIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLWNoYXJ0LXNldHRpbmdzLW5leHQtYnRuIGJ1dHRvbiB7XFxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgICAgdG9wOiAwO1xcbiAgICAgICAgICBsZWZ0OiAwO1xcbiAgICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICAgIG9wYWNpdHk6IDA7IH1cXG4gICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS1jaGFydHMtY29udGFpbmVyIHtcXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87IH1cXG4gICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLWNoYXJ0cy1jb250YWluZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciB7XFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgICB0b3A6IDA7XFxuICAgICAgICBsZWZ0OiAwO1xcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XFxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XFxuICAgICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLWNoYXJ0cy1jb250YWluZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctZ3JvdXAtY29tcG9uZW50IHtcXG4gICAgICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgICAgICAgICAgIGZsZXg6IG5vbmU7IH1cXG4gICAgICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktY2hhcnRzLWNvbnRhaW5lciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgICAgICAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cXG4gICAgICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS1jaGFydHMtY29udGFpbmVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsIHtcXG4gICAgICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgICAgICAgICAtbXMtZmxleDogbm9uZTtcXG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IG5vbmU7IH1cXG4gICAgICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLXdyYXBwZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktY2hhcnRzLWNvbnRhaW5lciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyLmFnLWFuaW1hdGluZywgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS1jaGFydHMtY29udGFpbmVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIuYWctYW5pbWF0aW5nIHtcXG4gICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDAuM3M7XFxuICAgICAgICAgIHRyYW5zaXRpb246IGxlZnQgMC4zcztcXG4gICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XFxuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OyB9XFxuICAgICAgICAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy13cmFwcGVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLWNoYXJ0cy1jb250YWluZXIgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWwge1xcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cXG4gICAgICAgICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3Mtd3JhcHBlciAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS1jaGFydHMtY29udGFpbmVyIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsIGNhbnZhcyB7XFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cXG5cXG4uYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LWRhdGEtd3JhcHBlciwgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1mb3JtYXQtd3JhcHBlciB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cXG4gIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtZGF0YS13cmFwcGVyID4gZGl2LCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LWZvcm1hdC13cmFwcGVyID4gZGl2IHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmctYm90dG9tOiAycHg7IH1cXG4gICAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1kYXRhLXdyYXBwZXIgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCksIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtZm9ybWF0LXdyYXBwZXIgPiBkaXY6bm90KDpmaXJzdC1jaGlsZCkge1xcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cXG5cXG4uYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LWZvcm1hdC13cmFwcGVyIHtcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxcbiAgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1mb3JtYXQtd3JhcHBlciAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1zdWJncm91cCB7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxcblxcbi5hZy1jaGFydCAuYWctY2hhcnQtbWVudSB7XFxuICBvcGFjaXR5OiAwO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cXG4gIC5hZy1jaGFydCAuYWctY2hhcnQtbWVudSA+IHNwYW4ge1xcbiAgICBvcGFjaXR5OiAwLjU7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIHdpZHRoOiAyNHB4O1xcbiAgICBoZWlnaHQ6IDI0cHg7XFxuICAgIG1hcmdpbjogMnB4IDA7XFxuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxcbiAgICAuYWctY2hhcnQgLmFnLWNoYXJ0LW1lbnUgPiBzcGFuOmhvdmVyIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7IH1cXG5cXG4uYWctY2hhcnQgLmFnLWNoYXJ0LWRvY2tlZC1jb250YWluZXIge1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgd2lkdGg6IDA7IH1cXG5cXG4uYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLXRhYi1ib2R5IHtcXG4gIHBhZGRpbmc6IDA7IH1cXG5cXG4uYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIHtcXG4gIHBhZGRpbmc6IDAgMTBweDtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cXG4gIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLW5hdi1jYXJkLXNlbGVjdG9yIHtcXG4gICAgcGFkZGluZzogMCAxMHB4OyB9XFxuICAgIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLW5hdi1jYXJkLXNlbGVjdG9yIC5hZy1uYXYtY2FyZC1pdGVtIHtcXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cXG5cXG5cIiIsIm1vZHVsZS5leHBvcnRzID0gXCJAY2hhcnNldCBcXFwiVVRGLThcXFwiO1xcbkBmb250LWZhY2Uge1xcbiAgZm9udC1mYW1pbHk6IFxcXCJhZ0dyaWRCYWxoYW1cXFwiO1xcbiAgc3JjOiB1cmwoXFxcImRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3VDFNdk1nOFNCbE1BQUFDOEFBQUFZR050WVhBWFZ0SzZBQUFCSEFBQUFGUm5ZWE53QUFBQUVBQUFBWEFBQUFBSVoyeDVacU11eTNnQUFBRjRBQUFiREdobFlXUVZvbU9YQUFBY2hBQUFBRFpvYUdWaEI4SUQrUUFBSEx3QUFBQWthRzEwZU5ZQUluWUFBQnpnQUFBQTRHeHZZMkhFbUw0YUFBQWR3QUFBQUhKdFlYaHdBRVVBbFFBQUhqUUFBQUFnYm1GdFpaUVh4S1FBQUI1VUFBQUJrbkJ2YzNRQUF3QUFBQUFmNkFBQUFDQUFBd1AyQVpBQUJRQUFBcGtDekFBQUFJOENtUUxNQUFBQjZ3QXpBUWtBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQURwTXdQQS84QUFRQVBBQUVBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQURBQUFBQXdBQUFCd0FBUUFEQUFBQUhBQURBQUVBQUFBY0FBUUFPQUFBQUFvQUNBQUNBQUlBQVFBZzZUUC8vZi8vQUFBQUFBQWc2UUQvL2YvL0FBSC80eGNFQUFNQUFRQUFBQUFBQUFBQUFBQUFBUUFCLy84QUR3QUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBREFELy8vd1BCQTRFQUp3QlFBRzRBQUFFZUFSY1dGUllVQnhRSERnRUhCaU1HSWljaUp5NEJKeVkxSmpRM05EYytBVGMyTXpZeUZ6SUZJZ1lIQmdjT0FSY1VGeDRCRnhZWEZqSTNOamMrQVRjMk56WTBKeVluTGdFbkppTWlCZ2NHSXdFak5TRVZIZ0VYRmdZSERnRVZJVFV6RlNFME5qYytBU2N1QVNjMUlRTWtQbHdDQVFFQkFRSmNQa2xKU1pKSlNVazlYUUlCQVFFQkFsdytTVWxKa2tsSi9nVWxPZ0VCQVFFQkFRTUNOU1JKU1VxU1NrbEpKRFVDQXdFQkFRRURBalVrU1VoSmtVbElTUUhnUVA4QUFYVVpFQW9ZSjFZQkFFRCtnQVliTFdRZ0xtSUNBWUFEZ0FKY1BrbEpTWkpKU1VrK1hBSUJBUUVCQWx3K1NVbEpra2xKU1Q1Y0FnRUJBVUU0SmtoSlNaSkpTVWtrTlFJREFRRUJBUU1DTlNSSlNVcVNTa2xKSkRVQ0F3RUJBZjhBUUFNZ1Fpc2NSQmNpUFJwQWdDWk1HQ2RISHlsSE5FVUFBUUJUQUJNRHJRTnRBQ2NBQUJNWEJ5YzNIZ0VYQnlFUkJ5YzNIZ0VYQnljUklTYzNIZ0VYQnljM0lSRTNIZ0VYQnljM0Z4SE5TaTZXbGd3V0RFb0JFMGt1bHlaTEppNUpBUk5LTGlWTUpaWXVTdjd0U1F3V0RKZVhMa2tCb0VrdWw1Y01GZ3hKQVJOS0xwWWxUQ1V1U3Y3dFNTNG1TeWFYTGtuKzdVb01GZ3lXbGk1S0FSTUFBQUVCS1FDWkF0Y0M1d0FLQUFBQkJ5YzNIZ0VYQnljUkl3SGdpUzdYTm1zMkxvbEFBbXlKTGRjMmF6WXRpZjR0QUFNQWdBQkFBNEFEUUFBYkFEY0FSZ0FBQVNJSERnRUhCaFVVRng0QkZ4WXpNamMrQVRjMk5UUW5MZ0VuSmdjeUZ4NEJGeFlWRkFjT0FRY0dJeUluTGdFbkpqVTBOejRCTnpZVE54NEJGd2NYQnljSEp6Y25OeGNDQUU5R1Jta2VIaDRlYVVaR1QwOUdSbWtlSGg0ZWFVWkdUMEk3T2xjWkdSa1pWem83UWtJN09sY1pHUmtaVnpvN1Fxa01GZ3lxcWk2cHFTNnFxaTZwQTBBZUhtbEdSazlQUmtacEhoNGVIbWxHUms5UFJrWnBIaDVBR1JsWE9qdENRanM2VnhrWkdSbFhPanRDUWpzNlZ4a1ovdTJxREJZTXFha3VxcW91cWFrdXFnQURBTlVBbFFNckF1c0FCQUFKQUEwQUFCTXpFU01STnpNUkl4RVRNeEVqMVlDQTczaDQ3M2g0QWpmK1hnR2l0UDJxQWxiK3F2OEFBQU1BQVAvQUJBQUR3QUFQQUNBQUtBQUFCU0VpSmpVUk5EWXpJVElXRlJFVUJnTWhJZ1lWRVJRV015RXlOalVSTkNZakJ3RW5OeGNCSGdFRFNQMXdUR3hzVEFLUVRHeHNTdjF0TFVGQkxRS1RMVUZBTGd6K1ZOQXpuUUY1RFJwQWJFd0NrRXhzYkV6OWNFeHNBN2xCTGYxdExrQkFMZ0tUTFVIMy9sUFJOSjBCZUEwYUFBTUFBUC9BQkFBRHdBQVBBQ0FBSkFBQUJTRWlKalVSTkRZeklUSVdGUkVVQmdNaElnWVZFUlFXTXlFeU5qVVJOQ1lqQXlFMUlRTkkvWEJNYkd4TUFwQk1iR3hLL1cwdFFVRXRBcE10UVVBdUpmMjJBa3BBYkV3Q2tFeHNiRXo5Y0V4c0E3bEJMZjF0TGtCQUxnS1RMVUgrSWtvQUFnQUEvOEFFQUFQQUFBOEFJQUFBQVRJV0ZSRVVCaU1oSWlZMUVUUTJNd1VoSWdZVkVSUVdNeUV5TmpVUk5DWWpBMGhNYkd4TS9YQk1iR3hNQXBMOWJTMUJRUzBDa3kxQlFDNER3R3hNL1hCTWJHeE1BcEJNYkVkQkxmMXRMa0JBTGdLVExVRUFBQUFEQUhNQVNBT05BemdBQmdBS0FCWUFBQWtCQnhjSkFpRTNGeUVGTUFZVkZCWXpNalkxTkNZQy9mNVZQR2IrOXdGRkFVWDk3OHpNL21nQ1RGVXlJeU15VlFHTkFhczhadjczL3JzQlJjM05RR3NxSXpJeUl5cHJBQUFBQUFJQXdBQ2dBY0FDNEFBREFBY0FBQ1VoRVNFSEVUTVJBY0QvQUFFQXdJQ2dBa0JBL2tBQndBQUVBTUFBb0FOQUF1QUFBd0FIQUFzQUR3QUFKU01STXhNakVUTVRJeEV6QVNNUk13SEFRRURBUUVEQVFFRDl3RUJBb0FKQS9jQUNRUDNBQWtEOXdBSkFBQUFBQUFFQlhnQ3BBcUlDMXdBSEFBQUJCeGNIQ1FFZUFRS2k2ZWt0L3VrQkZ3c1hBcW5wNlM0QkZ3RVhEQllBQXdDZ0FFQURZQU5BQUJBQUlBQXpBQUFsSXlJbU5SRTBOanNCTWhZVkVSUUdJeE1oSWdZVkVSUVdNeUV5TmpVUk5DWUJJendCTlJFME5qTWhPZ0V6RlNFaUJoVVJBcjc3UTJCZ1EvdERYMTlEQmY3OUp6YzNKd0VESnpjMy9mZEJYME1CbWdFQ0FmNWRKalpBWDBRQk9rTmdZRVAreGtSZkFrQTRKdjY3SnpjM0p3RkZKamorQUFFRUFnSVhRMTlBTmliOTNBQUFBQUFCQVNrQTZRTFhBcGNBRGdBQUFUY2VBUmNIRndjbkJ5YzNKemNYQWdDcERCWU1xcW91cWFrdXFxb3VxUUh0cWd3V0RLbXBMcXFxTHFtcExxb0FBQUFBQlFCQUFBQUR3QU9BQUNVQU1nQS9BRXNBVVFBQUFUNEJOVFFtSXlJR0ZSUVdNekkyTnhjSExnRWpJZ1lWRkJZek1qWTFOQ1luTndFek5RRUhJaVkxTkRZek1oWVZGQVlqRVNJbU5UUTJNeklXRlJRR0l3RWlKalUwTmpNeUZoVVVCZ2tCRndFMUl3R1dDQWhwU2twcGFVb1VKUkZwYVJFbEZFcHBhVXBLYVFnSWFnRTZodjNXb3lVME5DVWxOVFVsSlRRMEpTVTFOU1VCRFFrTkRRa0pEUTBCTWY3eldRRTZoZ0tERVNVVVNtbHBTa3BwQ0FocWFnZ0lhVXBLYVdsS0ZDVVJhZjdITFFJcEVEVWxKVFEwSlNVMS9lYzBKU1UxTlNVbE5BRlFEUWtKRFEwSkNRMEJxZjd6V1FFNUxRQUFCd0NHQUZZRGVnTXFBQXNBRHdBYkFDZ0FMQUE0QUR3QUFEY2lCaFVVRmpNeU5qVTBKZ1UxSVJVRElnWVZGQll6TWpZMU5DWUhNaFlWRkFZaklpWTFORFl6QlNFMUlRRXlGaFVVQmlNaUpqVTBOZ1VoTlNIR0dpWW1HaHNsSlFLWi9lYWFHaVltR2hzbEpSc1NHUmtTRVJrWkVRSUovcEVCYi8zM0d5VWxHeG9tSmdMTy9lWUNHdFltR2hzbEpSc2FKbXRWVlFHVkpob2FKaVlhR2lZVkdSSVNHUmtTRWhsV1ZnRS9KUnNhSmlZYUd5VnFWUUFBQUFFQktRQ1pBdGNDNXdBS0FBQUJOeDRCRndjbk54Y1JNd0lnaVF3V0ROZlhMb2xBQVJTSkN4Y0wxOWN0aVFIVEFBRUJYZ0NwQXFJQzF3QU1BQUFKQVNjM0p6Y1dGeDRCRnhZWEFxTCs2UzNwNlMwakl5TkZJeU1qQWNEKzZTN3A2UzRqSXlOR0lpTWpBQUFBQUFVQVF3QnpBNzBERFFBc0FFb0FhQUJ6QUgwQUFBRStBVGM2QVRNV0Z4NEJGeFlYTUFZSERnRUhGd2NuQmdjR0ppY21KeTRCSnk0Qkp6QTJOejRCTnljM0Z3Y09BUThCRmhjZUFSY1dOejRCTnljT0FTTWlKeTRCSnlZMU5EWTNKd0UrQVQ4QkppY3VBU2NtQnc0QkJ4YytBVE15Rng0QkZ4WVZGQVlIRndFT0FSVVVGak15TmpjbkJUNEJOVFFtSXlJR0J3RXFMMmcyQndRSFNFTkNjaTB0R3prdUVDUVRQaTFMT1VCQWdENDlOU2xFR1FvUENpVWJGemNnUGkxS0NqRk9HQUVkTnplSlRFeElDeFlLSFJ4RUppOG9LVDBTRVJjVk1BSEJNVTBZQVJnbktHVTdPejRwVUNVa0hFUW1MaWtwUFJFU0dCVXEvcDBNRGw1Q0dDMFQzZ0VMRFE1ZVFoa3NFd0xFRnhzQ0FoZ1hVams0UkhZd0VSNE5QaTFMSEEwTUNCVVZKaDVLTEJFaUdGTWtIellXUGkxSlVTRlpOd0pGTlRVL0J3Y1hCQWdGSFJVWUVoSThLU2t1SmtRY01mNlpJVm8zQWpndUxrRVNFZ0VCRXhFakZSY1JFajBwS0M4bFJSd3FBUWdUTEJsQ1hnNE4zYkFUTFJoRFhRNE1BQVFBUXdDWkE3MEM5Z0FrQUVNQVlBQnZBQUFCRmhjZUFSY1dGekFHQndZSERnRW5KaWN1QVNjdUFTY3dOamMyTno0Qk56WTNPZ0V6QndZSERnRUhCZzhCRmhjZUFSY1dOelkzUGdFM05qOEJKaWN1QVNjbUl4Y3lGeDRCRnhZVkZBY09BUWNHSXlJbkxnRW5KalUwTno0Qk56WXpGelUwSmlNaUJoMEJGQll6TWpZMUFnbElRMEp5TFMwYk9TNDZUazZvVTFSRktVUVpDZzhLSlJzZ0tTcGdOVFUzQndRSEVUczROMkFuSmhnQkhUYzNpVXhNU0NvbEprQWFHaElCR0Njb1pUczdQZ2d0S0NjN0VSSVNFVHNuS0MwdEtDYzdFUklTRVRzbktDMmdYa0pDWGw1Q1FsNEM5Z0lZRjFJNU9FUjJNRDBqSkJBVkZESWVTaXdSSWhoVEpDc2pJeklPRGdKQUFoSVRRQzBzTmdKRk5UVS9Cd2NYRFJZV095TWpLQU00TGkxQ0VoRWZFUkU3SnlndExTZ25PeElSRVJJN0p5Z3RMU2duT3hFUjJBRkNYbDVDQWtKZVhrSUFBZ0RBQUtBRFFBTUFBQnNBTXdBQUFRWUhEZ0VIQmdjT0FSMEJCelEySnpRbUp5WW5MZ0VuSmljMUlRVVVGaGNXRng0QkZ4WVhGVGMxTmpjK0FUYzJOejRCTlFOQUFSWVZRU1VtSUFRRXdBSUNCUU1oSlNaQUZoVUJBb0Q5d0FRRUlTVW1RQllWQVVBQkZoVkJKU1lnQkFRQ3VpQWZIejhnSUNJRkN3WjFrRUtEUWdZS0JDSWhJa0FlSHgxR1FBY09CaUloSWtBZUh4MkdNRllnSHg4L0lDQWlCZzRIQUFBQUFnRDFBS2tEQ3dMWEFBY0FDd0FBQVFjWEJ3a0JIZ0VsRVNNUkF3dnA2UzMrNlFFWEN4ZitOVUFDcWVucExnRVhBUmNNRmd2K0FBSUFBQUFBREFEQUFNQURRQUxBQUFNQUJ3QUxBQThBRXdBWEFCc0FId0FqQUNjQUt3QXZBQUFsSXpVekZ5TTFNeGNqTlRNWEl6VXpKU00xTXhjak5UTVhJelV6RnlNMU15VWpOVE1YSXpVekZ5TTFNeGNqTlRNQkFFQkF3RUJBd0VCQXdFQkEvY0JBUU1CQVFNQkFRTUJBUVAzQVFFREFRRURBUUVEQVFFREFnSUNBZ0lDQWdFQ0FnSUNBZ0lDQVFJQ0FnSUNBZ0lBQUFBZ0FQLy8vQThFRGdRQW5BRkFBVkFCWUFGd0FZQUJrQUdnQUFBRWVBUmNXRlJZVUJ4UUhEZ0VIQmlNR0lpY2lKeTRCSnlZMUpqUTNORGMrQVRjMk16WXlGeklGSWdZSEJnY09BUmNVRng0QkZ4WVhGakkzTmpjK0FUYzJOelkwSnlZbkxnRW5KaU1pQmdjR0l4TWpOVE1GSVRVaEpTTTFNd1VoTlNFbEl6VXpCU0UxSVFNa1Bsd0NBUUVCQVFKY1BrbEpTWkpKU1VrOVhRSUJBUUVCQWx3K1NVbEpra2xKL2dVbE9nRUJBUUVCQVFNQ05TUkpTVXFTU2tsSkpEVUNBd0VCQVFFREFqVWtTVWhKa1VsSVNlQ0FnQUdBL3NBQlFQNkFnSUFCZ1A3QUFVRCtBSUNBQWdEK1FBSEFBNEFDWEQ1SlNVbVNTVWxKUGx3Q0FRRUJBUUpjUGtsSlNaSkpTVWsrWEFJQkFRRkJPQ1pJU1VtU1NVbEpKRFVDQXdFQkFRRURBalVrU1VsS2trcEpTU1ExQWdNQkFRSDk0RUJBUUVCQVFFQkFRRUJBQUFBQUFBUUFRd0RJQTcwQ3VBQWtBRTBBWUFCd0FBQUJGaGNlQVJjV0Z6QUdCd1lIRGdFSEJpY21KeTRCSnlZbk1EWTNOamMrQVRjMk16b0JCeUlHQndZSERnRUhCZ2N3RmhjV0Z4NEJOelkzTmpjK0FUYzJOekFtSnlZbkxnRW5KaU1xQVNNWEhnRVZGQVlIRGdFbkxnRW5ORFkzUGdFekJ3NEJCd1lXRnhZMk56WW1KeTRCSXdJSlFFSkJkUzh3SFVJN0tTOHZZekl5TURzNU9tWXBLUmxGUHlFbEpVNG9LQ2NIQkFvTkdRd3VNQzlWSXlNVkh4OHFORFJ2T0RneEtpZ29TQjBkRWg4ZkhpVWtUeW9wS0FZRUJoSkdpeGdaTUh3MFBHY0NHUndrVWpvVEkwZ1dHeG92UFl3ZUd5QXdGeUFvQXJnQkRBdzVMeTlJZlNrZEVoRVJBUUVEQkJBUE95MHRQb0VxRnc0UEVRUUVRQUVCQXdzTEt5RWhMajhjS0JVVkVRSUNCd1lORFN3ZUhpYy9IUndURWhRRkJCMENSVlFnUFJRbUJnVUZUVUVpUWhZYURFQUJDUmtnWEEwUkJ5VWlYQXNHQWdBQ0FQVUFxUU1MQXRjQURBQVFBQUFKQVNjM0p6Y1dGeDRCRnhZWEV5TVJNd0k1L3VrdDZla3RJeU1pUmlNakk5SkFRQUhBL3VrdTZla3VJeU1qUmlJakkvOEFBZ0FBQUFBQ0FIa0Frd09IQXUwQUN3QVdBQUFCQnlFVklSY0hDUUVlQVJjRkZ6Y25JVFVoTnljT0FRSTBRQUdUL20xQWpmN1NBUzRqUnlQK29OTXlnQUh1L2hLQU1qVnBBbUJBd0VDTkFTMEJMU05ISTZEVE00QkFnRE0xYVFBQUFBZ0FZQUFnQTZBRFlBQURBQWtBRHdBVEFCY0FIUUFqQUNjQUFDVWpFVE1uQnljM0hnRUZCeWMzSGdFM0lUVWhCU0UxSVRjSEp6Y2VBU1VISnpjZUFRVWpFVE1DSUVCQWM4MHR6UXNYQWFzdHpTMHpaNGIvQUFFQS9jRC9BQUVBVFMzTkxUTm5BZFBOTGMwTEYvN2VRRUFnQVFBZ3pTM05DeGVyTGMwdE0yZk5RRUJBWUMzTkxUTm5iYzB0elFzWGl3RUFBQUFDQVBFQXNRTVBBczhBQndBT0FBQVRId0VuTnljSEp5VXZBUmNIRnpmeEE5OUhkRk4xUndJZUE5OUhkRk4xQVpQZkEwZDFVM1JIV3Q4RFIzVlRkQUFBQXdEQUFPQURRQUtnQUFNQUJ3QUxBQUFsSVRVaE5TRTFJVFVoTlNFRFFQMkFBb0Q5Z0FLQS9ZQUNnT0JBZ0VDQVFBQUFBQUlBeXdDS0F6VUM5Z0FIQUE4QUFDVXZBUmNIRnpjWEV4OEJKemNuQnljQjJnVGVSM1JUZFVkTUJONUhkRk4xUjdqZUJFaDFVM1ZIQWhEZUJFaDFVM1ZIQUFBQUFnQ0FBV0FEZ0FJZ0FBTUFCd0FBQVNFMUlRVVZJVFVEZ1AwQUF3RDlRQUtBQVdEQVFFQkFBQUVCWGdDcEFxSUMxd0FNQUFBSkFTYzNKemNXRng0QkZ4WVhBcUwrNlMzcDZTMGpJeU5GSXlNakFjRCs2UzdwNlM0akl5TkdJaU1qQUFBQUFBSUFRQUNnQThBQzRBQUtBQllBQUFFM0hnRVhCeWMzRnhFekFTTVJCeWMzSGdFWEJ5Y1JBVUdRREJjTTRPQXZrRUlCd0VLUUwrQTRjRGd2a0FFWWhnc1dDOUxTTElZQnlQM0FBY2lHTE5JMGFUVXNodjQ0QUFBR0FIWUFRQU9MQTBzQUhBQXlBRUVBVXdCaUFHNEFBQUVXRng0QkZ4WUhCZ2NPQVNjbUp5WW5MZ0UzTmpjMk56NEJOellYQndZSERnRUhCaGNXRng0Qk56WTNOaWN1QVNjbUJ4Y1dCdzRCQndZbkxnRXZBUUVlQVFFV056NEJOelkzTmlZbkJnY09BUWNHQnhNeUZoOEJBU1luSmpZM05qYzZBUWNHQnc0QkJ3WVhBUzRCQndJR1lsVlZhdzROTFNkT1RiZGRYa2N2SGg0WENBZ2NHU2NtWHpjM09RcFRSMGhhQ2dzbktGTlR1VlZWTFNVS0NWaEpTVnp6SXdnSVRVQkJUaHcwR0NnQmd3WUwvdGdvS1NwSkhCc01DQUVKSVNBaFFTRWdJVU1oUUIwcC9uMGxCUVl5T0RoWUJBb0dNQ29xTndvS0RnRUdFU0lTQTBzQ05UV2taV1JnVkRjM0pSVVVReXM1T241QVFEb3lLaWs2RUJBQlFBRXRMWXhWVkZGVExTMEVLaXRjVEZWVmp5OHVBYzFBU2tsN0pTWUlBaEVORmdHRENoVCtyUXdGQlNjZ0h5a2VQUjBnSVNGQklTQWhBZFlSRUJiK2ZFRkxUSUl1TFFaQUFoa1pUVEF2TGdFRkJRVUJBQUFBQUFNQWdBQXdBNEFEVUFBV0FDSUFOZ0FBQVRRbUl5SUdGU01pQmhVUkZCWXpJVEkyTlJFMEppTUZNaFlWRkFZaklpWTFORFlCSVNJbU5SRTBOanNCRlNFMU16SVdGUkVVQmdLQU9FaElPSUExUzBzMUFnQTFTMHMxL3dBU0dSa1NFaGtaQVJMK0FCb21KaHBBQVlCQUdpWW1BdkFZU0VnWVN6WCtRRFZMU3pVQndEVkxFUmdSRVJnWUVSRVkvWkVtR2dIQUdpYUFnQ1lhL2tBYUpnQUFBQUFDQUhBQU1BT1FBMUFBS0FCQUFBQUJKekEyTno0QkZ6Y21OejRCTnpZeEZoY2VBUmNXRnc0QkJ3NEJKd2NlQVJjV0JnOEJKd2NuTndFT0FSOEJCeVlHQndFK0FUYzJKaWMzTUJZM0p6QUdNUUZabFFZUElYRXdaUWtRRUN3VUZDVWtKVWtsSlNRRkN3VWFSU3BxQVFFQ0F5Z3ZHSnJwTGVrQkNCRWFDaENnTUdJVEFTRUNCQUllQndlYU9pVGFBUUZIbFNjVkxROEpZeHdkSFM0UER5VWxKRW9sSkNVSERnY2pMd2RuQ1FFYk0yQVlESnJxTHVrQnRnNG1EeGVmREFJZS90OENBd0lhVml5YUVTclpBUUFBQ2dBLy8vOER3UU9CQUNjQU93QkhBR0VBWndCdUFIc0FoZ0NNQUpJQUFBRWVBUmNXRlJZVUJ4UUhEZ0VIQmlNR0lpY2lKeTRCSnlZMUpqUTNORGMrQVRjMk16WXlGeklUSVJFV014WTJOelkzUGdFM05qYytBU2MwSndFVUZoVWVBUmN5RmpNMUl3RUhKemNlQVJjSEp4VU9BUWNqRndjbk54NEJGd2NXTmpjMUJSUVdGVE0xSndZVUJ6TTFJemNxQVNNaUJnY1VCaFV6TlRNbEZUTTBKalV1QVNjaUppVUdJZ2NWTXpjbUlpTVZNd01rUGx3Q0FRRUJBUUpjUGtsSlNaSkpTVWs5WFFJQkFRRUJBbHcrU1VsSmtrbEpxUDI2UFQwOWVqMDlQU1ExQWdJQ0FRRUJBdno4QVFJMUpBZ1FDSHdDUVFrdVZ4WXJGaTRKQVZ3L2R3b3VWbFlNRmd3TFVZSUIvYndCZm4wQkFYOTl2eGd1RnlVNkFRRjhRZ0hIZlFFQ05TUUlFUDd6SVVFZ2dzTWdRU0dDQTRBQ1hENUpTVW1TU1VsSlBsd0NBUUVCQVFKY1BrbEpTWkpKU1VrK1hBSUJBUUgvQVAyOEFnRUJBUUlDQWpVa1BUMDhlajA5UFA0OENSRUlKRFVDQVg0QkZnb3VWaFVzRlM0S2N6OWZBZ2t1VjFjTUZnd0tBUjFGYzFRaFFDQ0J3aUZBSVlML09DWVlNQmxCZjM4SkVRa2tOUUlCQWdFQmY0QUJnUUFBQWdDZ0FHQURZQU1nQUFzQUZ3QUFBU0VWSVJFakVTRTFJUkV6QnhFaEZTRVJNeEVoTlNFUkFtQUJBUDhBd1A4QUFRREFnUDhBQVFCQUFRRC9BQUlnd1A4QUFRREFBUUJBL3dCQS93QUJBRUFCQUFBQUFRRmVBS2tDb2dMWEFBY0FBQUVIRndjSkFSNEJBcUxwNlMzKzZRRVhDeGNDcWVucExnRVhBUmNNRmdBQ0FBRC93QVFBQThBQUd3QTNBQUFCSWdjT0FRY0dGUlFYSGdFWEZqTXlOejRCTnpZMU5DY3VBU2NtQnpJWEhnRVhGaFVVQnc0QkJ3WWpJaWN1QVNjbU5UUTNQZ0UzTmdJQWFsMWRpeWtvS0NtTFhWMXFhbDFkaXlrb0tDbUxYVjFxWFZGU2VpTWpJeU42VWxGZFhWRlNlaU1qSXlONlVsRUR3Q2dwaTExZGFtcGRYWXNwS0NncGkxMWRhbXBkWFlzcEtFQWpJM3BTVVYxZFVWSjZJeU1qSTNwU1VWMWRVVko2SXlNQUF3QUEvOEFFQUFQQUFCc0FOd0JUQUFBQklnY09BUWNHRlJRWEhnRVhGak15Tno0Qk56WTFOQ2N1QVNjbUJ6SVhIZ0VYRmhVVUJ3NEJCd1lqSWljdUFTY21OVFEzUGdFM05nRVVCdzRCQndZaklpY3VBU2NtTlRRM1BnRTNOak15Rng0QkZ4WUNBR3BkWFlzcEtDZ3BpMTFkYW1wZFhZc3BLQ2dwaTExZGFsMVJVbm9qSXlNamVsSlJYVjFSVW5vakl5TWplbEpSQVowWkdWYzZPMEpDT3pwWEdSa1pHVmM2TzBKQ096cFhHUmtEd0NncGkxMWRhbXBkWFlzcEtDZ3BpMTFkYW1wZFhZc3BLRUFqSTNwU1VWMWRVVko2SXlNakkzcFNVVjFkVVZKNkl5UCtRRUk3T2xjWkdSa1pWem83UWtJN09sY1pHUmtaVnpvN0FBQUFBQUlBZVFDVEE0Y0M3UUFPQUJrQUFBa0JKemNoTlNFbk54WVhIZ0VYRmlVWElSVWhCeGMzSnc0QkE0ZiswbzFBL20wQmswQ05KaVlsVENVbS9zYUEvaElCN29BeTA5TU1HZ0hBL3RPTlFNQkFqU1VtSmtzbUpYcUFRSUF6MDlNTkdRQUFBQUFDQUlBQVFBT0FBMEFBRGdBWkFBQUJFU0VSSXhFVUZqTWhNalkxRVNNRk54Y0hKemNYRVRNUk1RTXIvYXBWTWlNQ1ZpTXlWZjhBYmp6VjFUeHVWZ0hBL3RVQksvN1ZJekl5SXdFckhXNDgxZFU4YmdHZC9tTUFBUURwQVI0REZ3SmlBQWNBQUFrQ054YzNIZ0VERi83cC91a3U2ZWtNRmdJMS91a0JGeTNwNlFzWEFBQUJBVjRBcVFLaUF0Y0FCd0FBQVFjWEJ3a0JIZ0VDb3VucExmN3BBUmNMRndLcDZla3VBUmNCRnd3V0FBRUJYZ0NwQXFJQzF3QU1BQUFKQVNjM0p6Y1dGeDRCRnhZWEFxTCs2UzNwNlMwakl5TkZJeU1qQWNEKzZTN3A2UzRqSXlOR0lpTWpBQUFBQUFFQTZRRWVBeGNDWWdBTEFBQUJCeWNISndFV0Z4NEJGeFlERnk3cDZTNEJGeU1qSWtZakl3RkxMZW5wTFFFWEl5TWpSU01qQUFBQUFRRHBBTzRERndLU0FBY0FBQWtCSnpjWEFSNEJBeGYraWJjdWlRRkpEQllDWmY2SnR5MkpBVWtMRndBQkFWNEFxUUtpQXRjQURBQUFDUUVuTnljM0ZoY2VBUmNXRndLaS91a3Q2ZWt0SXlNalJTTWpJd0hBL3VrdTZla3VJeU1qUmlJakl3QUFBQUFCQU1BQm9BTkFBZUFBQXdBQUV5RVZJY0FDZ1AyQUFlQkFBQUFBQVFEcEFSNERGd0ppQUFjQUFBa0NOeGMzSGdFREYvN3AvdWt1NmVrTUZnSTEvdWtCRnkzcDZRc1hBQUFCQUFBQUFRQUFFa3ZoZVY4UFBQVUFDd1FBQUFBQUFObEJqNDBBQUFBQTJVR1BqUUFBLzhBRUFBUEFBQUFBQ0FBQ0FBQUFBQUFBQUFFQUFBUEEvOEFBQUFRQUFBQUFBQVFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUE0QkFBQUFBQUFBQUFBQUFBQUFnQUFBQVFBQUQ4RUFBQlRCQUFCS1FRQUFJQUVBQURWQkFBQUFBUUFBQUFFQUFBQUJBQUFjd1FBQU1BRUFBREFCQUFCWGdRQUFLQUVBQUVwQkFBQVFBUUFBSVlFQUFFcEJBQUJYZ1FBQUVNRUFBQkRCQUFBd0FRQUFQVUVBQURBQkFBQVB3UUFBRU1FQUFEMUJBQUFlUVFBQUdBRUFBRHhCQUFBd0FRQUFNc0VBQUNBQkFBQlhnUUFBRUFFQUFCMkJBQUFnQVFBQUhBRUFBQS9CQUFBb0FRQUFWNEVBQUFBQkFBQUFBUUFBSGtFQUFDQUJBQUE2UVFBQVY0RUFBRmVCQUFBNlFRQUFPa0VBQUZlQkFBQXdBUUFBT2tBQUFBQUFBb0FGQUFlQU1JQkJnRWVBWXdCcUFIcUFpUUNXQUtHQXBvQ3ZBTFNBeDREUGdPMkJCSUVLZ1JJQlFnRnJnWUNCaUFHYWdjTUI3WUgyZ2dJQ0ZJSWNnaU1DSzRJd2dqZ0NRd0p4QW9VQ253TFZBdCtDNVFMNmd4cURKd015QXplRFBRTkVnMHVEVVFOWWcxd0RZWUFBQUFCQUFBQU9BQ1RBQXdBQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0N1QUFFQUFBQUFBQUVBQ0FBQUFBRUFBQUFBQUFJQUJ3QnBBQUVBQUFBQUFBTUFDQUE1QUFFQUFBQUFBQVFBQ0FCK0FBRUFBQUFBQUFVQUN3QVlBQUVBQUFBQUFBWUFDQUJSQUFFQUFBQUFBQW9BR2dDV0FBTUFBUVFKQUFFQUVBQUlBQU1BQVFRSkFBSUFEZ0J3QUFNQUFRUUpBQU1BRUFCQkFBTUFBUVFKQUFRQUVBQ0dBQU1BQVFRSkFBVUFGZ0FqQUFNQUFRUUpBQVlBRUFCWkFBTUFBUVFKQUFvQU5BQ3dRV2RDWVd4b1lXMEFRUUJuQUVJQVlRQnNBR2dBWVFCdFZtVnljMmx2YmlBeExqQUFWZ0JsQUhJQWN3QnBBRzhBYmdBZ0FERUFMZ0F3UVdkQ1lXeG9ZVzBBUVFCbkFFSUFZUUJzQUdnQVlRQnRRV2RDWVd4b1lXMEFRUUJuQUVJQVlRQnNBR2dBWVFCdFVtVm5kV3hoY2dCU0FHVUFad0IxQUd3QVlRQnlRV2RDWVd4b1lXMEFRUUJuQUVJQVlRQnNBR2dBWVFCdFJtOXVkQ0JuWlc1bGNtRjBaV1FnWW5rZ1NXTnZUVzl2Ymk0QVJnQnZBRzRBZEFBZ0FHY0FaUUJ1QUdVQWNnQmhBSFFBWlFCa0FDQUFZZ0I1QUNBQVNRQmpBRzhBVFFCdkFHOEFiZ0F1QUFBQUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT09XFxcIikgZm9ybWF0KFxcXCJ0cnVldHlwZVxcXCIpO1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxcblxcbi5hZy10aGVtZS1iYWxoYW0tZGFyayB7XFxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7XFxuICBjb2xvcjogI0Y1RjVGNTtcXG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBzYW5zLXNlcmlmO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGxpbmUtaGVpZ2h0OiAxOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdGhlbWUtYmFsaGFtLWRhcmsuYWctZG5kLWdob3N0LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwuYWctY2VsbC1pbmxpbmUtZWRpdGluZywgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLmFnLXBvcHVwLWVkaXRvciwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zZWxlY3QtYWdnLWZ1bmMtcG9wdXAsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdGFiLWhlYWRlciAuYWctdGFiIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XFxuICAgIG1hcmdpbjogNHB4O1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICBwYWRkaW5nOiA0cHggOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1oZWFkZXIgLmFnLXRhYi5hZy10YWItc2VsZWN0ZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2O1xcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwQjBGRjtcXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMyZDM0MzY7XFxuICAgIGJvcmRlci1jb2xvcjogIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIGxhYmVsIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrICoge1xcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgKjpmb2N1cywgLmFnLXRoZW1lLWJhbGhhbS1kYXJrICogKjpiZWZvcmUsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAqICo6YWZ0ZXIge1xcbiAgICAgIG91dGxpbmU6IG5vbmU7XFxuICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWIge1xcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMyB7XFxuICAgIHBhZGRpbmctbGVmdDogNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTEycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTY4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTk2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxOTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMjI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjUycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDIwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMCB7XFxuICAgIHBhZGRpbmctbGVmdDogMjgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEwIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTExIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMiB7XFxuICAgIHBhZGRpbmctbGVmdDogMjQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMyB7XFxuICAgIHBhZGRpbmctbGVmdDogMzY0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEzIHtcXG4gICAgcGFkZGluZy1yaWdodDogMzY0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM5MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDM5MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNiB7XFxuICAgIHBhZGRpbmctbGVmdDogNDQ4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE2IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDQ4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ3NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ3NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMzYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1MDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDM4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xOSB7XFxuICAgIHBhZGRpbmctbGVmdDogNTMycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE5IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTMycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMSB7XFxuICAgIHBhZGRpbmctbGVmdDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1ODhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1ODhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMiB7XFxuICAgIHBhZGRpbmctbGVmdDogNjE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIyIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY0NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY0NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctbGVmdDogNDgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2NzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2NzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDUwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDUwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctbGVmdDogNzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI1IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDcyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctbGVmdDogNTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3NTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3NTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNzg0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI4IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzg0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDgxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctbGVmdDogNjAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDYyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctbGVmdDogODY4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMxIHtcXG4gICAgcGFkZGluZy1yaWdodDogODY4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg5NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg5NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctbGVmdDogNjYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5MjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5MjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctbGVmdDogOTUycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM0IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTUycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctbGVmdDogNzIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTAwOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctbGVmdDogNzQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDM2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTAzNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNzYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM4IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDY0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM4IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTA2NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zOSB7XFxuICAgIHBhZGRpbmctbGVmdDogNzgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM5IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDkycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM5IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTA5MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctbGVmdDogODAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQwIHtcXG4gICAgcGFkZGluZy1yaWdodDogODAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQwIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTEyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctbGVmdDogODIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1yaWdodDogODIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTQ4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTE0OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MiB7XFxuICAgIHBhZGRpbmctbGVmdDogODQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQyIHtcXG4gICAgcGFkZGluZy1yaWdodDogODQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTc2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTE3NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctbGVmdDogODYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQzIHtcXG4gICAgcGFkZGluZy1yaWdodDogODYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQzIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTIwNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctbGVmdDogODgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1yaWdodDogODgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjMycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTIzMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NSB7XFxuICAgIHBhZGRpbmctbGVmdDogOTAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ1IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ1IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTI2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctbGVmdDogOTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ2IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjg4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ2IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTI4OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctbGVmdDogOTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMzE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTMxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00OCB7XFxuICAgIHBhZGRpbmctbGVmdDogOTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ4IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMzQ0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ4IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTM0NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctbGVmdDogOTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ5IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMzcycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ5IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTM3MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwgLmFnLWljb24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2hlY2tib3gsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmFkaW8tYnV0dG9uLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvZ2dsZS1idXR0b24ge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoZWNrYm94IGxhYmVsLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJhZGlvLWJ1dHRvbiBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b2dnbGUtYnV0dG9uIGxhYmVsIHtcXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoZWNrYm94IGxhYmVsOmVtcHR5LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJhZGlvLWJ1dHRvbiBsYWJlbDplbXB0eSwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b2dnbGUtYnV0dG9uIGxhYmVsOmVtcHR5IHtcXG4gICAgICAgIG1hcmdpbjogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoZWNrYm94Om5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmFkaW8tYnV0dG9uOm5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9nZ2xlLWJ1dHRvbjpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsIHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1sZWFmLWluZGVudCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctY2VsbCB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LmFnLWNlbGwtZmlyc3QtcmlnaHQtcGlubmVkLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctY2VsbDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtZmlyc3QtcmlnaHQtcGlubmVkIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctcm93LmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNlbGw6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLWxhc3QtbGVmdC1waW5uZWQge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWxlYWYtaW5kZW50IHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2VsbCB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3cuYWctY2VsbC1maXJzdC1yaWdodC1waW5uZWQsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1maXJzdC1yaWdodC1waW5uZWQge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1yb3cuYWctY2VsbC1sYXN0LWxlZnQtcGlubmVkLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2VsbDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZCB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdmFsdWUtY2hhbmdlLWRlbHRhIHtcXG4gICAgcGFkZGluZy1yaWdodDogMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXZhbHVlLWNoYW5nZS1kZWx0YS11cCB7XFxuICAgIGNvbG9yOiAjNDNhMDQ3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXZhbHVlLWNoYW5nZS1kZWx0YS1kb3duIHtcXG4gICAgY29sb3I6ICNlNTM5MzU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdmFsdWUtY2hhbmdlLXZhbHVlIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlci1yYWRpdXM6IDFweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxcHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDFweDtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXZhbHVlLWNoYW5nZS12YWx1ZS1oaWdobGlnaHQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAxNjAsIDEzMywgMC41KTtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xczsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0Om5vdChbdHlwZV0pLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZWxcXFwiXSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXSB7XFxuICAgIGJvcmRlci13aWR0aDogMXB4O1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6ICNlY2YwZjE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0Om5vdChbdHlwZV0pOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZWxcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl06ZGlzYWJsZWQge1xcbiAgICAgIGNvbG9yOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuMzgpO1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDgsIDQ2LCA0NiwgMC4zKTtcXG4gICAgICBib3JkZXItY29sb3I6IHJnYmEoMjM2LCAyNDAsIDI0MSwgMC4zKTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJyYW5nZVxcXCJdIHtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhIHtcXG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogI2VjZjBmMTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWlucHV0LXdyYXBwZXIgdGV4dGFyZWE6ZGlzYWJsZWQge1xcbiAgICAgIGNvbG9yOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuMzgpO1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDgsIDQ2LCA0NiwgMC4zKTtcXG4gICAgICBib3JkZXItY29sb3I6IHJnYmEoMjM2LCAyNDAsIDI0MSwgMC4zKTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZjIwO1xcbiAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjY0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGlubmVkLXJpZ2h0LWhlYWRlciB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1waW5uZWQtbGVmdC1oZWFkZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1yb3cge1xcbiAgICBib3JkZXI6IG5vbmU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93IHtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjNDI0MjQyO1xcbiAgICBib3JkZXItd2lkdGg6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3c6bm90KC5hZy1yb3ctZmlyc3QpIHtcXG4gICAgICBib3JkZXItd2lkdGg6IDFweCAwIDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3cuYWctcm93LWxhc3Qge1xcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3ctb2RkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI2MmMyZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3ctZXZlbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaG9yaXpvbnRhbC1sZWZ0LXNwYWNlciB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ob3Jpem9udGFsLWxlZnQtc3BhY2VyLmFnLXNjcm9sbGVyLWNvcm5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhvcml6b250YWwtcmlnaHQtc3BhY2VyIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaG9yaXpvbnRhbC1yaWdodC1zcGFjZXIuYWctc2Nyb2xsZXItY29ybmVyIHtcXG4gICAgICBib3JkZXItbGVmdDogbm9uZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3ctaG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q0NzQ5OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW51bWVyaWMtY2VsbCB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1jZWxsLWxhYmVsIC5hZy1oZWFkZXItaWNvbiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIG9wYWNpdHk6IDAuODc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaGVhZGVyLWNlbGwsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjNDI0MjQyO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XFxuICAgIGJvcmRlci13aWR0aDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1jZWxsLmFnLWhlYWRlci1jZWxsLW1vdmluZyxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItZ3JvdXAtY2VsbC5hZy1oZWFkZXItY2VsbC1tb3Zpbmcge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItY2VsbDpub3QoLmFnLWhlYWRlci1ncm91cC1jZWxsLW5vLWdyb3VwKSxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpub3QoLmFnLWhlYWRlci1ncm91cC1jZWxsLW5vLWdyb3VwKSB7XFxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1yb3c6Zmlyc3QtY2hpbGQgLmFnLWhlYWRlci1jZWxsLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1yb3c6Zmlyc3QtY2hpbGQgLmFnLWhlYWRlci1ncm91cC1jZWxsIHtcXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1oZWFkZXItY2VsbC1yZXNpemUge1xcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaGVhZGVyLXNlbGVjdC1hbGwge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbCB7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDExcHg7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LWRyYWcge1xcbiAgICBjdXJzb3I6IG1vdmU7XFxuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xcbiAgICBjdXJzb3I6IGdyYWI7XFxuICAgIG1pbi13aWR0aDogMjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3ctZHJhZ2dpbmcsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LWRyYWdnaW5nIC5hZy1yb3ctZHJhZyB7XFxuICAgIGN1cnNvcjogbW92ZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJhZyB7XFxuICAgIGN1cnNvcjogbW92ZTtcXG4gICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XFxuICAgIGN1cnNvcjogZ3JhYjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3ctZHJhZ2dpbmcge1xcbiAgICBvcGFjaXR5OiAwLjU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1oYXMtZm9jdXMgLmFnLWNlbGwtZm9jdXM6bm90KC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkKSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1oYXMtZm9jdXMgLmFnLWNlbGwtZm9jdXMuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1jZWxsLWZvY3VzLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwuYWctY2VsbC1yYW5nZS1oYW5kbGUsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1oYXMtZm9jdXMgLmFnLWNlbGwtZm9jdXM6bm90KC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkKSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1oYXMtZm9jdXMgLmFnLWNlbGwtZm9jdXMuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jZWxsLWZvY3VzLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwuYWctY2VsbC1yYW5nZS1oYW5kbGUge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBCMEZGO1xcbiAgICBvdXRsaW5lOiBpbml0aWFsOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1jZWxsLXJlc2l6ZSB7XFxuICAgIHdpZHRoOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudSB7XFxuICAgIGJhY2tncm91bmQ6ICMyZDM0MzY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUgLmFnLW1lbnUtbGlzdCB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcXG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XFxuICAgICAgd2lkdGg6IDEwMCU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1hY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzZDQ3NDk7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1kaXNhYmxlZCB7XFxuICAgICAgb3BhY2l0eTogMC41OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudSAuYWctbWVudS1vcHRpb24tdGV4dCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLWljb24ge1xcbiAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcXG4gICAgICBtaW4td2lkdGg6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1zaG9ydGN1dCB7XFxuICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1tZW51IC5hZy1tZW51LXNlcGFyYXRvciB7XFxuICAgICAgaGVpZ2h0OiA4cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUgLmFnLW1lbnUtc2VwYXJhdG9yID4gc3BhbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB3aWR0aCUzRCcxJyUyMGhlaWdodCUzRCc4cHgnJTIwdmlld0JveCUzRCcwJTIwMCUyMDElMjA4cHgnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUzRSUzQ2xpbmUlMjB4MSUzRCcwJyUyMHkxJTNEJzRweCclMjB4MiUzRCcxJyUyMHkyJTNEJzRweCclMjBzdHJva2Utd2lkdGglM0QnMSclMjBzdHJva2UlM0QnJTIzNDI0MjQyJyUyRiUzRSUzQyUyRnN2ZyUzRVxcXCIpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudSAuYWctbWVudS1vcHRpb24tcG9wdXAtcG9pbnRlciB7XFxuICAgICAgd2lkdGg6IDI0cHg7XFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsuYWctZG5kLWdob3N0IHtcXG4gICAgYmFja2dyb3VuZDogIzJkMzQzNjtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjY0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDAgOHB4O1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyay5hZy1kbmQtZ2hvc3Qgc3BhbixcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrLmFnLWRuZC1naG9zdCBkaXYge1xcbiAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICBtYXJnaW46IDA7XFxuICAgICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsuYWctZG5kLWdob3N0IC5hZy1kbmQtZ2hvc3QtaWNvbiB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxuICAgICAgb3BhY2l0eTogMC44NzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItaGVhZGVyIHtcXG4gICAgYmFja2dyb3VuZDogIzFjMWYyMDtcXG4gICAgbWluLXdpZHRoOiAyMjBweDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1oZWFkZXIgLmFnLXRhYiB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgICAgaGVpZ2h0OiAxNnB4O1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgICAgICAgZmxleDogbm9uZTtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1ib2R5IHtcXG4gICAgcGFkZGluZzogMnB4IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0IHtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1ib2R5IC5hZy1tZW51LWxpc3QgPiBkaXY6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcXG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0ID4gZGl2Omxhc3QtY2hpbGQgPiBzcGFuIHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0ID4gZGl2Omxhc3QtY2hpbGQgPiAuYWctbWVudS1vcHRpb24tcG9wdXAtcG9pbnRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1maWx0ZXItc2VsZWN0LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctZmlsdGVyLWJvZHkge1xcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1maWx0ZXItYm9keSB7XFxuICAgIG1hcmdpbi10b3A6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1maWx0ZXItZmlsdGVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1maWx0ZXItc2VsZWN0IHtcXG4gICAgbWFyZ2luOiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIGlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0ge1xcbiAgICBtYXJnaW46IDAgM3B4IDAgNnB4O1xcbiAgICB3aWR0aDogMTJweDtcXG4gICAgaGVpZ2h0OiAxN3B4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItbGlzdCB7XFxuICAgIGhlaWdodDogMTY4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1zZXQtZmlsdGVyLWl0ZW0ge1xcbiAgICBoZWlnaHQ6IDI4cHg7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctc2V0LWZpbHRlci1pdGVtID4gZGl2LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctc2V0LWZpbHRlci1pdGVtID4gc3BhbiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlciAuYWctZmlsdGVyLWhlYWRlci1jb250YWluZXI6bnRoLWNoaWxkKDIpIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyIC5hZy1maWx0ZXItYXBwbHktcGFuZWwge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1hcHBseS1wYW5lbCBidXR0b24ge1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1hcHBseS1wYW5lbCBidXR0b24gKyBidXR0b24ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4ge1xcbiAgICBoZWlnaHQ6IDE2cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tbGFiZWwsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWxhYmVsLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLWdyb3VwLWljb25zIHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLXByaW1hcnktY29scy1saXN0LXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgIHBhZGRpbmctdG9wOiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1wcmltYXJ5LWNvbHMtbGlzdC1wYW5lbCA+IGRpdiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi5hZy10b29scGFuZWwtYWRkLWdyb3VwLWluZGVudCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgaGVpZ2h0OiAzMnB4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCA+IGRpdiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgIG1hcmdpbjogMCA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wcmltYXJ5LWNvbHMtaGVhZGVyLXBhbmVsIC5hZy1maWx0ZXItYm9keSB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCB7XFxuICAgICAgd2lkdGg6IDEwMCU7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlIHtcXG4gICAgICAgIGNvbG9yOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuNjQpO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAgICAgLW1zLWZsZXg6IGF1dG87XFxuICAgICAgICAgICAgICAgIGZsZXg6IGF1dG87XFxuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XFxuICAgICAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XFxuICAgICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciB7XFxuICAgICAgICAgIHBhZGRpbmc6IDAgNXB4OyB9XFxuICAgICAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci10b29scGFuZWwtaW5zdGFuY2UgLmFnLWZpbHRlci10b29scGFuZWwtaGVhZGVyID4gZGl2IHtcXG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci1ib2R5LXdyYXBwZXIge1xcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci1haXIge1xcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xcbiAgICAgICAgcGFkZGluZzogNHB4IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLXBpdm90LW1vZGUtcGFuZWwge1xcbiAgICAgIGhlaWdodDogMzJweDtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgICAgICAgZmxleDogbm9uZTsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1waXZvdC1tb2RlLXBhbmVsIC5hZy1waXZvdC1tb2RlLXNlbGVjdCB7XFxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwge1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzcHg7XFxuICAgICAgcGFkZGluZy10b3A6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgICBwYWRkaW5nOiA0cHggMDtcXG4gICAgICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1lbXB0eS1tZXNzYWdlIHtcXG4gICAgICAgIGNvbG9yOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuMzgpO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBzYW5zLXNlcmlmO1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xcbiAgICAgICAgcGFkZGluZy1yaWdodDogNHB4O1xcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1saXN0IHtcXG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICAgIG1hcmdpbi10b3A6IDRweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCA+IGRpdiA+IDpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3A6bGFzdC1jaGlsZCB7XFxuICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW51bWVyaWMtaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1sYWJlbCAuYWctaGVhZGVyLWljb24ge1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGFnaW5nLXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgIGNvbG9yOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuNjQpO1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIHBhZGRpbmc6IDAgMTJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhZ2luZy1wYW5lbCA+IHNwYW4ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLWljb24ge1xcbiAgICB3aWR0aDogMTZweDtcXG4gICAgaGVpZ2h0OiAxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24gYnV0dG9uIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctcGFnaW5nLWJ1dHRvbi5hZy1kaXNhYmxlZCAuYWctaWNvbiB7XFxuICAgIGNvbG9yOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuMzgpO1xcbiAgICBvcGFjaXR5OiAwLjM4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24uYWctZGlzYWJsZWQgYnV0dG9uIHtcXG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgc3BhbiB7XFxuICAgIG1hcmdpbjogMCA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm93LXNlbGVjdGVkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTg4MDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS10b3AsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLXRvcCB7XFxuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogIzAwQjBGRjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1yaWdodCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtcmlnaHQge1xcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzAwQjBGRjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1ib3R0b20sIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWJvdHRvbSB7XFxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwQjBGRjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1sZWZ0LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1sZWZ0IHtcXG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogIzAwQjBGRjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE3NiwgMjU1LCAwLjIpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtcmFuZ2UtY2hhcnQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDUsIDE2NiwgMjU1LCAwLjUpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtcmFuZ2UtY2hhcnQuYWctY2VsbC1yYW5nZS1jaGFydC1jYXRlZ29yeSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNiwgMTc3LCA3NCwgMC41KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTE6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTc2LCAyNTUsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0yOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE3NiwgMjU1LCAwLjQpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMzpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNzYsIDI1NSwgMC41KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTQ6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTc2LCAyNTUsIDAuNik7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC10b3AsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC10b3Age1xcbiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICMwMEIwRkY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLXRvcC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC10b3AuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkIHtcXG4gICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICMwZjBmMGY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLXJpZ2h0IHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggZGFzaGVkICMwMEIwRkY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLXJpZ2h0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLXJpZ2h0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggZGFzaGVkICMwZjBmMGY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1ib3R0b20sIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1ib3R0b20ge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICMwMEIwRkY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbS5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1ib3R0b20uYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICMwZjBmMGY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0LCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtbGVmdCB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggZGFzaGVkICMwMEIwRkY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLWxlZnQuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtbGVmdC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggZGFzaGVkICMwZjBmMGY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsbC1oYW5kbGUsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmFuZ2UtaGFuZGxlIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB3aWR0aDogNnB4O1xcbiAgICBoZWlnaHQ6IDZweDtcXG4gICAgYm90dG9tOiAtMXB4O1xcbiAgICByaWdodDogLTFweDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjBGRjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1maWxsLWhhbmRsZSB7XFxuICAgIGN1cnNvcjogY2VsbDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yYW5nZS1oYW5kbGUge1xcbiAgICBjdXJzb3I6IG53c2UtcmVzaXplOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwuYWctY2VsbC1pbmxpbmUtZWRpdGluZyB7XFxuICAgIHBhZGRpbmc6IDEycHg7XFxuICAgIGhlaWdodDogNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC5hZy1wb3B1cC1lZGl0b3Ige1xcbiAgICBiYWNrZ3JvdW5kOiAjMmQzNDM2O1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFmMjA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcG9wdXAtZWRpdG9yIHtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBvcHVwLWVkaXRvciAuYWctbGFyZ2UtdGV4dGFyZWEgdGV4dGFyZWEge1xcbiAgICAgIGhlaWdodDogYXV0bztcXG4gICAgICBwYWRkaW5nOiAxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJpY2gtc2VsZWN0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWYyMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC1saXN0IHtcXG4gICAgICB3aWR0aDogMjAwcHg7XFxuICAgICAgaGVpZ2h0OiAxODJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC12YWx1ZSB7XFxuICAgICAgcGFkZGluZzogMCA0cHggMCAxMnB4O1xcbiAgICAgIGhlaWdodDogMjhweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJpY2gtc2VsZWN0IC5hZy12aXJ0dWFsLWxpc3QtaXRlbSB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIGhlaWdodDogMjhweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmljaC1zZWxlY3QgLmFnLXZpcnR1YWwtbGlzdC1pdGVtOmhvdmVyIHtcXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzZDQ3NDk7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3Qtcm93IHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3Qtcm93LXNlbGVjdGVkIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1ODgwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24gYnV0dG9uIHtcXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB3aWR0aDogMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zZWxlY3Rpb24tY2hlY2tib3g6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2VsZWN0aW9uLWNoZWNrYm94Om5vdCguYWctaGlkZGVuKSArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtZXhwYW5kZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWV4cGFuZGVkOm5vdCguYWctaGlkZGVuKSArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29udHJhY3RlZDpub3QoLmFnLWhpZGRlbikgfiAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29udHJhY3RlZDpub3QoLmFnLWhpZGRlbikgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNoZWNrYm94Om5vdCguYWctaW52aXNpYmxlKSB+IC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jaGVja2JveDpub3QoLmFnLWludmlzaWJsZSkgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSkge1xcbiAgICBtYXJnaW4tbGVmdDogMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zZWxlY3Rpb24tY2hlY2tib3g6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1leHBhbmRlZDpub3QoLmFnLWhpZGRlbikgfiAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbnRyYWN0ZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jaGVja2JveDpub3QoLmFnLWludmlzaWJsZSkgfiAuYWctZ3JvdXAtY2hlY2tib3gge1xcbiAgICBtYXJnaW4tbGVmdDogMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jaGlsZC1jb3VudCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2VsZWN0aW9uLWNoZWNrYm94IHNwYW4ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFmMjA7XFxuICAgIGhlaWdodDogMjhweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1ncm91cCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXBpdm90IHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXNtYWxsLWxlZnQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1zbWFsbC1yaWdodCB7XFxuICAgICAgbWFyZ2luOiAwIDRweDtcXG4gICAgICBvcGFjaXR5OiAwLjY0OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctY29sdW1uLWRyb3AtZW1wdHktbWVzc2FnZSB7XFxuICAgICAgb3BhY2l0eTogMC4zODsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgYmFja2dyb3VuZDogIzMyMzkzYztcXG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcXG4gICAgbWluLWhlaWdodDogMTZweDtcXG4gICAgcGFkZGluZzogMCAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLXRleHQge1xcbiAgICAgIG1hcmdpbjogMCA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbiB7XFxuICAgICAgbWluLXdpZHRoOiAxNnB4O1xcbiAgICAgIG1hcmdpbjogMCAycHg7XFxuICAgICAgb3BhY2l0eTogMC42NDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC1idXR0b246aG92ZXIge1xcbiAgICAgICAgb3BhY2l0eTogMC44NzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcmFnIHtcXG4gICAgICBtYXJnaW4tbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWFyZ2luLXRvcDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXNlbGVjdC1hZ2ctZnVuYy1wb3B1cCB7XFxuICAgIGJhY2tncm91bmQ6ICMyZDM0MzY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgYmFja2dyb3VuZDogIzJkMzQzNjtcXG4gICAgaGVpZ2h0OiA3MHB4O1xcbiAgICBwYWRkaW5nOiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2VsZWN0LWFnZy1mdW5jLXBvcHVwIC5hZy12aXJ0dWFsLWxpc3QtaXRlbSB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXNldC1maWx0ZXItbGlzdCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudS1jb2x1bW4tc2VsZWN0LXdyYXBwZXIge1xcbiAgICB3aWR0aDogYXV0bzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCA+IC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgbWFyZ2luLXRvcDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLWRhdGEtY2hhbmdlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIsIDE2MCwgMTMzLCAwLjUpICFpbXBvcnRhbnQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1kYXRhLWNoYW5nZWQtYW5pbWF0aW9uIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxcztcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxczsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3ctc3R1YiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc3R1Yi1jZWxsIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICBwYWRkaW5nLXRvcDogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc3R1Yi1jZWxsIC5hZy1sb2FkaW5nLWljb24ge1xcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNwaW47XFxuICAgICAgICAgICAgICBhbmltYXRpb24tbmFtZTogc3BpbjtcXG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XFxuICAgICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XFxuXFxuQC13ZWJraXQta2V5ZnJhbWVzIHNwaW4ge1xcbiAgZnJvbSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cXG4gIHRvIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxcblxcbkBrZXlmcmFtZXMgc3BpbiB7XFxuICBmcm9tIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxcbiAgdG8ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc3R1Yi1jZWxsIC5hZy1sb2FkaW5nLXRleHQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgICAgbWFyZ2luLXRvcDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZsb2F0aW5nLXRvcCB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZsb2F0aW5nLWJvdHRvbSB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZsb2F0aW5nLXRvcCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1mbG9hdGluZy1ib3R0b20ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmxvYXRpbmctdG9wIC5hZy1yb3csIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmxvYXRpbmctYm90dG9tIC5hZy1yb3cge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc3RhdHVzLWJhciB7XFxuICAgIGJhY2tncm91bmQ6ICMyZDM0MzY7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XFxuICAgIGNvbG9yOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIDAuMzgpO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFxcXCJTZWdvZSBVSVxcXCIsIFJvYm90bywgT3h5Z2VuLVNhbnMsIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBzYW5zLXNlcmlmO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbmFtZS12YWx1ZS12YWx1ZSB7XFxuICAgIGNvbG9yOiAjRjVGNUY1OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXN0YXR1cy1iYXItY2VudGVyIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW5hbWUtdmFsdWUge1xcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gICAgcGFkZGluZy1ib3R0b206IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1kZXRhaWxzLXJvdyB7XFxuICAgIHBhZGRpbmc6IDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctb3ZlcmxheS1sb2FkaW5nLXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciB7XFxuICAgIGJhY2tncm91bmQ6ICMyZDM0MzY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIHBhZGRpbmc6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zaWRlLWJhciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFmMjA7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIHtcXG4gICAgICBwYWRkaW5nLXRvcDogMTZweDtcXG4gICAgICBiYWNrZ3JvdW5kOiAjMmQzNDM2O1xcbiAgICAgIHdpZHRoOiAyMHB4O1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyAuYWctc2lkZS1idXR0b24gYnV0dG9uIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgY29sb3I6ICNGNUY1RjU7XFxuICAgICAgICBwYWRkaW5nOiA4cHggMCA4cHggMDtcXG4gICAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgbWluLWhlaWdodDogNzJweDtcXG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4IDAgMXB4IDA7XFxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogY2VudGVyO1xcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XFxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIC5hZy1zZWxlY3RlZCBidXR0b24ge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWYyMDtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcHg7XFxuICAgICAgICBib3JkZXItY29sb3I6ICM0MjQyNDI7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zaWRlLWJhciAuYWctcGFuZWwtY29udGFpbmVyIHtcXG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctc2lkZS1iYXIuZnVsbC13aWR0aCAuYWctcGFuZWwtY29udGFpbmVyIHtcXG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1zaWRlLWJhciAuYWctY29sdW1uLWRyb3Age1xcbiAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcHJpbWFyeS1jb2xzLWZpbHRlci13cmFwcGVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMzQzNjtcXG4gICAgcGFkZGluZzogMHB4O1xcbiAgICBib3JkZXI6IDAgc29saWQgIzRmNGY0ZjtcXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMXB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50LmFnLWRpc2FibGVkID4gLmFnLWdyb3VwLWNvbXBvbmVudC1sYWJlbCAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbXBvbmVudC5hZy1kaXNhYmxlZCA+IC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgICBvcGFjaXR5OiAwLjU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZS1iYXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxYzFmMjA7XFxuICAgICAgaGVpZ2h0OiAxNnB4O1xcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgICBoZWlnaHQ6IDI2cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jb21wb25lbnQ6bm90KC5hZy1jb2xsYXBzaWJsZSkgPiBkaXYge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50Om5vdCguYWctY29sbGFwc2libGUpID4gLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZS1iYXIge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICAgIHBhZGRpbmc6IDRweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50Om5vdCguYWctY29sbGFwc2libGUpID4gLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZS1iYXIgLmFnLWNvbHVtbi1ncm91cC1pY29ucyB7XFxuICAgICAgICBkaXNwbGF5OiBub25lOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1jb21wb25lbnQtdG9vbGJhciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI4MmYzMDtcXG4gICAgICBwYWRkaW5nOiA0cHg7XFxuICAgICAgYm9yZGVyOiAwIHNvbGlkICM0MjQyNDI7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jb21wb25lbnQgPiAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgICBwYWRkaW5nOiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWl0ZW0ge1xcbiAgICAgIG1hcmdpbjogMnB4IDA7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtaXRlbSAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLWJhciB7XFxuICAgICAgICBoZWlnaHQ6IDE4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbGFiZWxlZCBsYWJlbCB7XFxuICAgIG1hcmdpbi1yaWdodDogNHB4O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWxhYmVsZWQuYWctbGFiZWwtYWxpZ24tdG9wIGxhYmVsIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXNsaWRlciA+IC5hZy13cmFwcGVyID4gZGl2Om5vdCg6Zmlyc3Qtb2YtdHlwZSksIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctYW5nbGUtc2VsZWN0ID4gLmFnLXdyYXBwZXIgPiBkaXY6bm90KDpmaXJzdC1vZi10eXBlKSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctYW5nbGUtc2VsZWN0IC5hZy1hbmdsZS1zZWxlY3QtZmllbGQgLmFnLXBhcmVudC1jaXJjbGUge1xcbiAgICB3aWR0aDogMjRweDtcXG4gICAgaGVpZ2h0OiAyNHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjkpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjkpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1jaGlsZC1jaXJjbGUge1xcbiAgICB0b3A6IDRweDtcXG4gICAgbGVmdDogMTJweDtcXG4gICAgd2lkdGg6IDZweDtcXG4gICAgaGVpZ2h0OiA2cHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YzRjNGM7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9nZ2xlLWJ1dHRvbiAuYWctaW5wdXQtd3JhcHBlciB7XFxuICAgIGhlaWdodDogMTZweDtcXG4gICAgd2lkdGg6IDQwcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlY2YwZjE7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwMHJlbTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvZ2dsZS1idXR0b24gLmFnLWlucHV0LXdyYXBwZXIgLmFnLWljb24ge1xcbiAgICAgIHdpZHRoOiAxNnB4O1xcbiAgICAgIGhlaWdodDogMTZweDtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWNmMGYxO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcXG4gICAgICByaWdodDogY2FsYygxMDAlIC0gMTZweCk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9nZ2xlLWJ1dHRvbi5hZy1zZWxlY3RlZCAuYWctaW5wdXQtd3JhcHBlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMEIwRkY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy10b2dnbGUtYnV0dG9uLmFnLXNlbGVjdGVkIC5hZy1pbnB1dC13cmFwcGVyIC5hZy1pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiAjMmQzNDM2O1xcbiAgICAgIHJpZ2h0OiAtMXB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGlja2VyID4gLmFnLXdyYXBwZXIgPiBkaXYge1xcbiAgICAgIHdpZHRoOiAxNnB4O1xcbiAgICAgIGhlaWdodDogMTZweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIGJ1dHRvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMzQzNjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIGJ1dHRvbjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNkNDc0OTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1kaWFsb2cuYWctY29sb3ItZGlhbG9nIHtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIHtcXG4gICAgcGFkZGluZzogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWNvbG9yIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRvb2xzIHtcXG4gICAgICBwYWRkaW5nOiAxMHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXNhdCB7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20od2hpdGUpLCB0byhyZ2JhKDIwNCwgMTU0LCAxMjksIDApKSk7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSwgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tdmFsIHtcXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBmcm9tKGJsYWNrKSwgdG8ocmdiYSgyMDQsIDE1NCwgMTI5LCAwKSkpO1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGJsYWNrLCByZ2JhKDIwNCwgMTU0LCAxMjksIDApKTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1kcmFnZ2VyIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgICAgIGhlaWdodDogMTJweDtcXG4gICAgICB3aWR0aDogMTJweDtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcXG4gICAgICBiYWNrZ3JvdW5kOiBibGFjaztcXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XFxuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWh1ZS1iYWNrZ3JvdW5kIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tYWxwaGEtYmFja2dyb3VuZCB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLWh1ZS1hbHBoYSB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gICAgICBoZWlnaHQ6IDExcHg7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXNsaWRlciB7XFxuICAgICAgbWFyZ2luLXRvcDogLTEycHg7XFxuICAgICAgd2lkdGg6IDEzcHg7XFxuICAgICAgaGVpZ2h0OiAxM3B4O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEzcHg7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4zNyk7XFxuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRleHQtdmFsdWUge1xcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcbiAgICAgIGNvbG9yOiAjMzMzOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRleHQtdmFsdWU6Zm9jdXMge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZDc3ZTQ7XFxuICAgICAgcGFkZGluZzogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sb3ItcGFuZWwgLmFnLXJlY2VudC1jb2xvcnMgPiBkaXYge1xcbiAgICAgIG1hcmdpbjogMCAzcHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbG9yLXBhbmVsIC5hZy1yZWNlbnQtY29sb3JzID4gZGl2OmZpcnN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2xvci1wYW5lbCAuYWctcmVjZW50LWNvbG9ycyA+IGRpdjpsYXN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrLmFnLXBvcHVwID4gZGl2Om5vdCguYWctdG9vbHRpcC1jdXN0b20pIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDVweCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGFuZWwge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQzNDM2O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAgIC5hZy1kcmFnZ2luZy1yYW5nZS1oYW5kbGUgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYW5lbC5hZy1kaWFsb2csIC5hZy1kcmFnZ2luZy1maWxsLWhhbmRsZSAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsLmFnLWRpYWxvZyB7XFxuICAgICAgb3BhY2l0eTogMC43O1xcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWYyMDtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzVjNWM1YztcXG4gICAgICBjb2xvcjogcmdiYSgyNDUsIDI0NSwgMjQ1LCAwLjY0KTtcXG4gICAgICBoZWlnaHQ6IDMycHg7XFxuICAgICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uIHtcXG4gICAgICAgIGhlaWdodDogMjBweDtcXG4gICAgICAgIHdpZHRoOiAyMHB4O1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuICAgICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b24gLmFnLWljb24ge1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICAgICAgZm9udC1zaXplOiAyMHB4OyB9XFxuICAgICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b246aG92ZXIsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbi5hZy1oYXMtcG9wdXAge1xcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDQwNTA1OyB9XFxuICAgICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b246bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcGFuZWwgLmFnLW1lc3NhZ2UtYm94IC5hZy1tZXNzYWdlLWJveC1idXR0b24tYmFyIHtcXG4gICAgICBoZWlnaHQ6IDMwcHg7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFjMWYyMDtcXG4gICAgICBwYWRkaW5nOiAycHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBhbmVsIC5hZy1tZXNzYWdlLWJveCAuYWctbWVzc2FnZS1ib3gtYnV0dG9uLWJhciBidXR0b24ge1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2x0aXAge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZjIwO1xcbiAgICBjb2xvcjogI0Y1RjVGNTtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICBwYWRkaW5nOiA1cHg7XFxuICAgIGJvcmRlci13aWR0aDogMXB4O1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6ICMzNDM5M2I7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxcztcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxczsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2x0aXAuYWctdG9vbHRpcC1oaWRpbmcge1xcbiAgICAgIG9wYWNpdHk6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2hhcnQgLmFnLWNoYXJ0LW1lbnUge1xcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICAgIGJhY2tncm91bmQ6ICMyZDM0MzY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGFydCAuYWctY2hhcnQtbWVudSA+IHNwYW46aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNjE5MWE7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIge1xcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWwge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICAgIG1hcmdpbjogNXB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsOm50aC1jaGlsZCgybiArIDIpOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbDpudGgtY2hpbGQoM24gKyAxKSB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbDpudGgtY2hpbGQoM24pIHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbC5hZy1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLWNvbG9yOiAjMDBCMEZGOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctbmF2LWNhcmQtc2VsZWN0b3IgLmFnLW5hdi1jYXJkLWl0ZW0ge1xcbiAgICBjb2xvcjogI0Y1RjVGNTtcXG4gICAgZm9udC1zaXplOiAxMHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1uYXYtYmFyIC5hZy1uYXYtY2FyZC1zZWxlY3RvciAuYWctbmF2LWNhcmQtaXRlbS5hZy1zZWxlY3RlZCB7XFxuICAgICAgY29sb3I6ICMwMEIwRkY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LWZvcm1hdCAuYWctY2hhcnQtZm9ybWF0LXdyYXBwZXIgLmFnLWdyb3VwLWl0ZW0ge1xcbiAgICBtYXJnaW46IDQuOHB4IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbiB7XFxuICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiYWdHcmlkQmFsaGFtXFxcIjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgY29sb3I6ICNlY2YwZjE7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XFxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1hZ2dyZWdhdGlvbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDBcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tYXJyb3dzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1hc2M6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNhbmNlbDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY2hhcnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA0XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDdcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY29sb3ItcGlja2VyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwOFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jb2x1bW46YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA5XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNvbHVtbnM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNvbnRyYWN0ZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBCXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNvcHk6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBDXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNyb3NzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jdXQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBFXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWRhdGE6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBGXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWRlc2M6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTEwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWV4cGFuZGVkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1leWUtc2xhc2g6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTEyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWV5ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tZmlsdGVyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxNFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1maXJzdDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTVcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tZ3JpcDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tZ3JvdXA6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE4XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWxhc3Q6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE5XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWxlZnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWxvYWRpbmc6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFCXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLW1heGltaXplOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1tZW51OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1taW5pbWl6ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MUVcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tbWludXM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFGXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLW5leHQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLW5vbmU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIxXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLW5vdC1hbGxvd2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1wYXN0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tcGluOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyNFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1waXZvdDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjVcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tcGx1czpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tcHJldmlvdXM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vZmY6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI4XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjlcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tcmlnaHQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXNhdmU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJCXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXNtYWxsLWRvd246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJDXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXNtYWxsLWxlZnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJEXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXNtYWxsLXJpZ2h0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyRVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1zbWFsbC11cDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tdGljazpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzBcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tdHJlZS1jbG9zZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMxXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXRyZWUtaW5kZXRlcm1pbmF0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzJcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tdHJlZS1vcGVuOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkzM1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY2hlY2tib3gtdW5jaGVja2VkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMzQzNjtcXG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZC1yZWFkb25seSxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtcmVhZG9ubHksXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQtcmVhZG9ubHkge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICBvcGFjaXR5OiAwLjM4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZCB7XFxuICAgIGNvbG9yOiAjMDBCMEZGOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkLXJlYWRvbmx5OmJlZm9yZSB7XFxuICAgICAgY29udGVudDogXFxcIlxcXFxFOTA1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtcmVhZG9ubHk6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZC1yZWFkb25seTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDdcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWdyb3VwLWV4cGFuZGVkIC5hZy1pY29uLWNvbnRyYWN0ZWQ6ZW1wdHk6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXJvdy1kcmFnOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxNlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcmlnaHQtYXJyb3c6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vbiB7XFxuICAgIGNvbG9yOiAjMDBCMEZGOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJpZ2h0LWFycm93OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLW51bWVyaWMtY2VsbCB7XFxuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY2hlY2tib3g6bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXJhZGlvLWJ1dHRvbjpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9nZ2xlLWJ1dHRvbjpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsIHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcXG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1waXZvdC1tb2RlLXBhbmVsIC5hZy1waXZvdC1tb2RlLXNlbGVjdCB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWVtcHR5LW1lc3NhZ2Uge1xcbiAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLXNlbGVjdC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLWdyb3VwLWljb25zLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi5hZy10b29scGFuZWwtYWRkLWdyb3VwLWluZGVudCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAyNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1oZWFkZXItc2VsZWN0LWFsbCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWV4cGFuZGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctZ3JvdXAtY29udHJhY3RlZCB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggKyAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSwgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctZ3JvdXAtY2hlY2tib3ggKyAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctZ3JvdXAtY2hlY2tib3ggKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWV4cGFuZGVkICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWV4cGFuZGVkICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSkge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGluaXRpYWw7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWNoZWNrYm94ICsgLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1ncm91cC1jaGVja2JveCArIC5hZy1ncm91cC1jaGVja2JveCxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctZ3JvdXAtZXhwYW5kZWQgKyAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQgKyAuYWctZ3JvdXAtY2hlY2tib3gge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGluaXRpYWw7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWdyb3VwLWNoaWxkLWNvdW50IHtcXG4gICAgICBtYXJnaW4tbGVmdDogdW5zZXQ7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1ncm91cCxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCAuYWctaWNvbi1waXZvdCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbiB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZXQtZmlsdGVyLWl0ZW0gPiBkaXYsIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zZXQtZmlsdGVyLWl0ZW0gPiBzcGFuIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1yZXNpemU6OmFmdGVyIHtcXG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zaWRlLWJhciAuYWctcGFuZWwtY29udGFpbmVyIHtcXG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1zaWRlLWJhci5mdWxsLXdpZHRoIC5hZy1wYW5lbC1jb250YWluZXIge1xcbiAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLnNhc3MtdmFyaWFibGVzOjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICd7IFxcXCJhdXRvU2l6ZVBhZGRpbmdcXFwiOiBcXFwiMTJweFxcXCIsIFxcXCJoZWFkZXJIZWlnaHRcXFwiOiBcXFwiMzJweFxcXCIsIFxcXCJncm91cFBhZGRpbmdTaXplXFxcIjogXFxcIjI4cHhcXFwiLCBcXFwiZm9vdGVyUGFkZGluZ0FkZGl0aW9uXFxcIjogXFxcIjE2cHhcXFwiLCBcXFwidmlydHVhbEl0ZW1IZWlnaHRcXFwiOiBcXFwiMjhweFxcXCIsIFxcXCJhZ2dGdW5jUG9wdXBIZWlnaHRcXFwiOiBcXFwiOThweFxcXCIsIFxcXCJjaGVja2JveEluZGVudFdpZHRoXFxcIjogXFxcIjIwcHhcXFwiLCBcXFwibGVhZk5vZGVQYWRkaW5nXFxcIjogXFxcIjEycHhcXFwiLCBcXFwicm93SGVpZ2h0XFxcIjogXFxcIjI4cHhcXFwiLCBcXFwiZ3JpZFNpemVcXFwiOiBcXFwiNHB4XFxcIiwgXFxcImljb25TaXplXFxcIjogXFxcIjE2cHhcXFwiIH0nO1xcbiAgICBkaXNwbGF5OiBub25lOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtaGlnaGxpZ2h0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjBGRiAhaW1wb3J0YW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1jZWxsLXJlc2l6ZTo6YWZ0ZXIge1xcbiAgICBoZWlnaHQ6IDgwJTtcXG4gICAgbWFyZ2luLXRvcDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWhlYWRlci1jZWxsOjphZnRlcixcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctaGVhZGVyLWdyb3VwLWNlbGw6OmFmdGVyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSg2NiwgNjYsIDY2LCAwLjUpO1xcbiAgICBjb250ZW50OiBcXFwiIFxcXCI7XFxuICAgIGhlaWdodDogMTZweDtcXG4gICAgbWFyZ2luLXRvcDogOHB4O1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRleHQtaW5kZW50OiAtMjAwMHB4O1xcbiAgICB0b3A6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbHRyIC5hZy1oZWFkZXItY2VsbDo6YWZ0ZXIsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWx0ciAuYWctaGVhZGVyLWdyb3VwLWNlbGw6OmFmdGVyIHtcXG4gICAgcmlnaHQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1oZWFkZXItY2VsbDo6YWZ0ZXIsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctaGVhZGVyLWdyb3VwLWNlbGw6OmFmdGVyIHtcXG4gICAgbGVmdDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsLmFnLWNvbHVtbi1kcm9wIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1sdHIgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwuYWctY29sdW1uLWRyb3AuYWctd2lkdGgtaGFsZjpmaXJzdC1jaGlsZCB7XFxuICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwuYWctY29sdW1uLWRyb3AuYWctd2lkdGgtaGFsZjpmaXJzdC1jaGlsZCB7XFxuICAgIGJvcmRlci1sZWZ0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJvdyB7XFxuICAgIGJvcmRlci1jb2xvcjogIzVjNWM1YzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yb3ctc2VsZWN0ZWQge1xcbiAgICBib3JkZXItY29sb3I6ICMwMDU4ODA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLWRyb3AtY2VsbCB7XFxuICAgIG1pbi1oZWlnaHQ6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbiB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xcbiAgICAgIG1hcmdpbi10b3A6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtYnV0dG9uOmhvdmVyIHtcXG4gICAgICBvcGFjaXR5OiAxOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC10ZXh0IHtcXG4gICAgICBtYXJnaW4tbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWMxZjIwO1xcbiAgICBoZWlnaHQ6IDMycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLXRleHQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcm9vdCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIHtcXG4gICAgICBtaW4taGVpZ2h0OiAyMHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCB7XFxuICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcXG4gICAgICBwYWRkaW5nLXRvcDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctc2lkZS1iYXIsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXJ0bCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctcnRsIC5hZy1pY29uLWV4cGFuZGVkLFxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1ydGwgLmFnLWljb24tY29udHJhY3RlZCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLW1lbnUtb3B0aW9uIHtcXG4gICAgaGVpZ2h0OiAyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCxcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIHtcXG4gICAgaGVpZ2h0OiAyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1oZWFkZXIge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzQyNDI0MjsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1oZWFkZXIgLmFnLXRhYiB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogLTJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXRhYi1oZWFkZXIgLmFnLXRhYi5hZy10YWItc2VsZWN0ZWQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7XFxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctdGFiLWJvZHksXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLXBvcHVwLWVkaXRvcixcXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctbWVudSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7XFxuICAgIGNvbG9yOiAjRjVGNUY1OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwuYWctY2VsbC1pbmxpbmUtZWRpdGluZyB7XFxuICAgIGhlaWdodDogMjhweDtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1kZXRhaWxzLXJvdyB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctb3ZlcmxheS1sb2FkaW5nLXdyYXBwZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDM0MzY7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICAgIGNvbG9yOiAjRjVGNUY1O1xcbiAgICBwYWRkaW5nOiAxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMTpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNzYsIDI1NSwgMC4zKTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTI6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTc2LCAyNTUsIDAuNCk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0zOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE3NiwgMjU1LCAwLjUpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtNDpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNzYsIDI1NSwgMC42KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1yaWNoLXNlbGVjdC12YWx1ZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgLmFnLWZpbHRlci1hcHBseS1wYW5lbCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDI0MjQyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgaW5wdXQsXFxuICAuYWctdGhlbWUtYmFsaGFtLWRhcmsgc2VsZWN0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI2MmMyZTtcXG4gICAgY29sb3I6ICNGNUY1RjU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctZmlsdGVyLXRvb2xwYW5lbC1ib2R5IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzJkMzQzNjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS1kYXJrIC5hZy1hbmdsZS1zZWxlY3QgLmFnLWFuZ2xlLXNlbGVjdC1maWVsZCAuYWctcGFyZW50LWNpcmNsZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0tZGFyayAuYWctYW5nbGUtc2VsZWN0IC5hZy1hbmdsZS1zZWxlY3QtZmllbGQgLmFnLWNoaWxkLWNpcmNsZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YzRjNGM7IH1cXG5cXG5cIiIsIm1vZHVsZS5leHBvcnRzID0gXCJAY2hhcnNldCBcXFwiVVRGLThcXFwiO1xcbkBmb250LWZhY2Uge1xcbiAgZm9udC1mYW1pbHk6IFxcXCJhZ0dyaWRCYWxoYW1cXFwiO1xcbiAgc3JjOiB1cmwoXFxcImRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3VDFNdk1nOFNCbE1BQUFDOEFBQUFZR050WVhBWFZ0SzZBQUFCSEFBQUFGUm5ZWE53QUFBQUVBQUFBWEFBQUFBSVoyeDVacU11eTNnQUFBRjRBQUFiREdobFlXUVZvbU9YQUFBY2hBQUFBRFpvYUdWaEI4SUQrUUFBSEx3QUFBQWthRzEwZU5ZQUluWUFBQnpnQUFBQTRHeHZZMkhFbUw0YUFBQWR3QUFBQUhKdFlYaHdBRVVBbFFBQUhqUUFBQUFnYm1GdFpaUVh4S1FBQUI1VUFBQUJrbkJ2YzNRQUF3QUFBQUFmNkFBQUFDQUFBd1AyQVpBQUJRQUFBcGtDekFBQUFJOENtUUxNQUFBQjZ3QXpBUWtBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQURwTXdQQS84QUFRQVBBQUVBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQURBQUFBQXdBQUFCd0FBUUFEQUFBQUhBQURBQUVBQUFBY0FBUUFPQUFBQUFvQUNBQUNBQUlBQVFBZzZUUC8vZi8vQUFBQUFBQWc2UUQvL2YvL0FBSC80eGNFQUFNQUFRQUFBQUFBQUFBQUFBQUFBUUFCLy84QUR3QUJBQUFBQUFBQUFBQUFBZ0FBTnprQkFBQUFBQUVBQUFBQUFBQUFBQUFDQUFBM09RRUFBQUFBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBREFELy8vd1BCQTRFQUp3QlFBRzRBQUFFZUFSY1dGUllVQnhRSERnRUhCaU1HSWljaUp5NEJKeVkxSmpRM05EYytBVGMyTXpZeUZ6SUZJZ1lIQmdjT0FSY1VGeDRCRnhZWEZqSTNOamMrQVRjMk56WTBKeVluTGdFbkppTWlCZ2NHSXdFak5TRVZIZ0VYRmdZSERnRVZJVFV6RlNFME5qYytBU2N1QVNjMUlRTWtQbHdDQVFFQkFRSmNQa2xKU1pKSlNVazlYUUlCQVFFQkFsdytTVWxKa2tsSi9nVWxPZ0VCQVFFQkFRTUNOU1JKU1VxU1NrbEpKRFVDQXdFQkFRRURBalVrU1VoSmtVbElTUUhnUVA4QUFYVVpFQW9ZSjFZQkFFRCtnQVliTFdRZ0xtSUNBWUFEZ0FKY1BrbEpTWkpKU1VrK1hBSUJBUUVCQWx3K1NVbEpra2xKU1Q1Y0FnRUJBVUU0SmtoSlNaSkpTVWtrTlFJREFRRUJBUU1DTlNSSlNVcVNTa2xKSkRVQ0F3RUJBZjhBUUFNZ1Fpc2NSQmNpUFJwQWdDWk1HQ2RISHlsSE5FVUFBUUJUQUJNRHJRTnRBQ2NBQUJNWEJ5YzNIZ0VYQnlFUkJ5YzNIZ0VYQnljUklTYzNIZ0VYQnljM0lSRTNIZ0VYQnljM0Z4SE5TaTZXbGd3V0RFb0JFMGt1bHlaTEppNUpBUk5LTGlWTUpaWXVTdjd0U1F3V0RKZVhMa2tCb0VrdWw1Y01GZ3hKQVJOS0xwWWxUQ1V1U3Y3dFNTNG1TeWFYTGtuKzdVb01GZ3lXbGk1S0FSTUFBQUVCS1FDWkF0Y0M1d0FLQUFBQkJ5YzNIZ0VYQnljUkl3SGdpUzdYTm1zMkxvbEFBbXlKTGRjMmF6WXRpZjR0QUFNQWdBQkFBNEFEUUFBYkFEY0FSZ0FBQVNJSERnRUhCaFVVRng0QkZ4WXpNamMrQVRjMk5UUW5MZ0VuSmdjeUZ4NEJGeFlWRkFjT0FRY0dJeUluTGdFbkpqVTBOejRCTnpZVE54NEJGd2NYQnljSEp6Y25OeGNDQUU5R1Jta2VIaDRlYVVaR1QwOUdSbWtlSGg0ZWFVWkdUMEk3T2xjWkdSa1pWem83UWtJN09sY1pHUmtaVnpvN1Fxa01GZ3lxcWk2cHFTNnFxaTZwQTBBZUhtbEdSazlQUmtacEhoNGVIbWxHUms5UFJrWnBIaDVBR1JsWE9qdENRanM2VnhrWkdSbFhPanRDUWpzNlZ4a1ovdTJxREJZTXFha3VxcW91cWFrdXFnQURBTlVBbFFNckF1c0FCQUFKQUEwQUFCTXpFU01STnpNUkl4RVRNeEVqMVlDQTczaDQ3M2g0QWpmK1hnR2l0UDJxQWxiK3F2OEFBQU1BQVAvQUJBQUR3QUFQQUNBQUtBQUFCU0VpSmpVUk5EWXpJVElXRlJFVUJnTWhJZ1lWRVJRV015RXlOalVSTkNZakJ3RW5OeGNCSGdFRFNQMXdUR3hzVEFLUVRHeHNTdjF0TFVGQkxRS1RMVUZBTGd6K1ZOQXpuUUY1RFJwQWJFd0NrRXhzYkV6OWNFeHNBN2xCTGYxdExrQkFMZ0tUTFVIMy9sUFJOSjBCZUEwYUFBTUFBUC9BQkFBRHdBQVBBQ0FBSkFBQUJTRWlKalVSTkRZeklUSVdGUkVVQmdNaElnWVZFUlFXTXlFeU5qVVJOQ1lqQXlFMUlRTkkvWEJNYkd4TUFwQk1iR3hLL1cwdFFVRXRBcE10UVVBdUpmMjJBa3BBYkV3Q2tFeHNiRXo5Y0V4c0E3bEJMZjF0TGtCQUxnS1RMVUgrSWtvQUFnQUEvOEFFQUFQQUFBOEFJQUFBQVRJV0ZSRVVCaU1oSWlZMUVUUTJNd1VoSWdZVkVSUVdNeUV5TmpVUk5DWWpBMGhNYkd4TS9YQk1iR3hNQXBMOWJTMUJRUzBDa3kxQlFDNER3R3hNL1hCTWJHeE1BcEJNYkVkQkxmMXRMa0JBTGdLVExVRUFBQUFEQUhNQVNBT05BemdBQmdBS0FCWUFBQWtCQnhjSkFpRTNGeUVGTUFZVkZCWXpNalkxTkNZQy9mNVZQR2IrOXdGRkFVWDk3OHpNL21nQ1RGVXlJeU15VlFHTkFhczhadjczL3JzQlJjM05RR3NxSXpJeUl5cHJBQUFBQUFJQXdBQ2dBY0FDNEFBREFBY0FBQ1VoRVNFSEVUTVJBY0QvQUFFQXdJQ2dBa0JBL2tBQndBQUVBTUFBb0FOQUF1QUFBd0FIQUFzQUR3QUFKU01STXhNakVUTVRJeEV6QVNNUk13SEFRRURBUUVEQVFFRDl3RUJBb0FKQS9jQUNRUDNBQWtEOXdBSkFBQUFBQUFFQlhnQ3BBcUlDMXdBSEFBQUJCeGNIQ1FFZUFRS2k2ZWt0L3VrQkZ3c1hBcW5wNlM0QkZ3RVhEQllBQXdDZ0FFQURZQU5BQUJBQUlBQXpBQUFsSXlJbU5SRTBOanNCTWhZVkVSUUdJeE1oSWdZVkVSUVdNeUV5TmpVUk5DWUJJendCTlJFME5qTWhPZ0V6RlNFaUJoVVJBcjc3UTJCZ1EvdERYMTlEQmY3OUp6YzNKd0VESnpjMy9mZEJYME1CbWdFQ0FmNWRKalpBWDBRQk9rTmdZRVAreGtSZkFrQTRKdjY3SnpjM0p3RkZKamorQUFFRUFnSVhRMTlBTmliOTNBQUFBQUFCQVNrQTZRTFhBcGNBRGdBQUFUY2VBUmNIRndjbkJ5YzNKemNYQWdDcERCWU1xcW91cWFrdXFxb3VxUUh0cWd3V0RLbXBMcXFxTHFtcExxb0FBQUFBQlFCQUFBQUR3QU9BQUNVQU1nQS9BRXNBVVFBQUFUNEJOVFFtSXlJR0ZSUVdNekkyTnhjSExnRWpJZ1lWRkJZek1qWTFOQ1luTndFek5RRUhJaVkxTkRZek1oWVZGQVlqRVNJbU5UUTJNeklXRlJRR0l3RWlKalUwTmpNeUZoVVVCZ2tCRndFMUl3R1dDQWhwU2twcGFVb1VKUkZwYVJFbEZFcHBhVXBLYVFnSWFnRTZodjNXb3lVME5DVWxOVFVsSlRRMEpTVTFOU1VCRFFrTkRRa0pEUTBCTWY3eldRRTZoZ0tERVNVVVNtbHBTa3BwQ0FocWFnZ0lhVXBLYVdsS0ZDVVJhZjdITFFJcEVEVWxKVFEwSlNVMS9lYzBKU1UxTlNVbE5BRlFEUWtKRFEwSkNRMEJxZjd6V1FFNUxRQUFCd0NHQUZZRGVnTXFBQXNBRHdBYkFDZ0FMQUE0QUR3QUFEY2lCaFVVRmpNeU5qVTBKZ1UxSVJVRElnWVZGQll6TWpZMU5DWUhNaFlWRkFZaklpWTFORFl6QlNFMUlRRXlGaFVVQmlNaUpqVTBOZ1VoTlNIR0dpWW1HaHNsSlFLWi9lYWFHaVltR2hzbEpSc1NHUmtTRVJrWkVRSUovcEVCYi8zM0d5VWxHeG9tSmdMTy9lWUNHdFltR2hzbEpSc2FKbXRWVlFHVkpob2FKaVlhR2lZVkdSSVNHUmtTRWhsV1ZnRS9KUnNhSmlZYUd5VnFWUUFBQUFFQktRQ1pBdGNDNXdBS0FBQUJOeDRCRndjbk54Y1JNd0lnaVF3V0ROZlhMb2xBQVJTSkN4Y0wxOWN0aVFIVEFBRUJYZ0NwQXFJQzF3QU1BQUFKQVNjM0p6Y1dGeDRCRnhZWEFxTCs2UzNwNlMwakl5TkZJeU1qQWNEKzZTN3A2UzRqSXlOR0lpTWpBQUFBQUFVQVF3QnpBNzBERFFBc0FFb0FhQUJ6QUgwQUFBRStBVGM2QVRNV0Z4NEJGeFlYTUFZSERnRUhGd2NuQmdjR0ppY21KeTRCSnk0Qkp6QTJOejRCTnljM0Z3Y09BUThCRmhjZUFSY1dOejRCTnljT0FTTWlKeTRCSnlZMU5EWTNKd0UrQVQ4QkppY3VBU2NtQnc0QkJ4YytBVE15Rng0QkZ4WVZGQVlIRndFT0FSVVVGak15TmpjbkJUNEJOVFFtSXlJR0J3RXFMMmcyQndRSFNFTkNjaTB0R3prdUVDUVRQaTFMT1VCQWdENDlOU2xFR1FvUENpVWJGemNnUGkxS0NqRk9HQUVkTnplSlRFeElDeFlLSFJ4RUppOG9LVDBTRVJjVk1BSEJNVTBZQVJnbktHVTdPejRwVUNVa0hFUW1MaWtwUFJFU0dCVXEvcDBNRGw1Q0dDMFQzZ0VMRFE1ZVFoa3NFd0xFRnhzQ0FoZ1hVams0UkhZd0VSNE5QaTFMSEEwTUNCVVZKaDVLTEJFaUdGTWtIellXUGkxSlVTRlpOd0pGTlRVL0J3Y1hCQWdGSFJVWUVoSThLU2t1SmtRY01mNlpJVm8zQWpndUxrRVNFZ0VCRXhFakZSY1JFajBwS0M4bFJSd3FBUWdUTEJsQ1hnNE4zYkFUTFJoRFhRNE1BQVFBUXdDWkE3MEM5Z0FrQUVNQVlBQnZBQUFCRmhjZUFSY1dGekFHQndZSERnRW5KaWN1QVNjdUFTY3dOamMyTno0Qk56WTNPZ0V6QndZSERnRUhCZzhCRmhjZUFSY1dOelkzUGdFM05qOEJKaWN1QVNjbUl4Y3lGeDRCRnhZVkZBY09BUWNHSXlJbkxnRW5KalUwTno0Qk56WXpGelUwSmlNaUJoMEJGQll6TWpZMUFnbElRMEp5TFMwYk9TNDZUazZvVTFSRktVUVpDZzhLSlJzZ0tTcGdOVFUzQndRSEVUczROMkFuSmhnQkhUYzNpVXhNU0NvbEprQWFHaElCR0Njb1pUczdQZ2d0S0NjN0VSSVNFVHNuS0MwdEtDYzdFUklTRVRzbktDMmdYa0pDWGw1Q1FsNEM5Z0lZRjFJNU9FUjJNRDBqSkJBVkZESWVTaXdSSWhoVEpDc2pJeklPRGdKQUFoSVRRQzBzTmdKRk5UVS9Cd2NYRFJZV095TWpLQU00TGkxQ0VoRWZFUkU3SnlndExTZ25PeElSRVJJN0p5Z3RMU2duT3hFUjJBRkNYbDVDQWtKZVhrSUFBZ0RBQUtBRFFBTUFBQnNBTXdBQUFRWUhEZ0VIQmdjT0FSMEJCelEySnpRbUp5WW5MZ0VuSmljMUlRVVVGaGNXRng0QkZ4WVhGVGMxTmpjK0FUYzJOejRCTlFOQUFSWVZRU1VtSUFRRXdBSUNCUU1oSlNaQUZoVUJBb0Q5d0FRRUlTVW1RQllWQVVBQkZoVkJKU1lnQkFRQ3VpQWZIejhnSUNJRkN3WjFrRUtEUWdZS0JDSWhJa0FlSHgxR1FBY09CaUloSWtBZUh4MkdNRllnSHg4L0lDQWlCZzRIQUFBQUFnRDFBS2tEQ3dMWEFBY0FDd0FBQVFjWEJ3a0JIZ0VsRVNNUkF3dnA2UzMrNlFFWEN4ZitOVUFDcWVucExnRVhBUmNNRmd2K0FBSUFBQUFBREFEQUFNQURRQUxBQUFNQUJ3QUxBQThBRXdBWEFCc0FId0FqQUNjQUt3QXZBQUFsSXpVekZ5TTFNeGNqTlRNWEl6VXpKU00xTXhjak5UTVhJelV6RnlNMU15VWpOVE1YSXpVekZ5TTFNeGNqTlRNQkFFQkF3RUJBd0VCQXdFQkEvY0JBUU1CQVFNQkFRTUJBUVAzQVFFREFRRURBUUVEQVFFREFnSUNBZ0lDQWdFQ0FnSUNBZ0lDQVFJQ0FnSUNBZ0lBQUFBZ0FQLy8vQThFRGdRQW5BRkFBVkFCWUFGd0FZQUJrQUdnQUFBRWVBUmNXRlJZVUJ4UUhEZ0VIQmlNR0lpY2lKeTRCSnlZMUpqUTNORGMrQVRjMk16WXlGeklGSWdZSEJnY09BUmNVRng0QkZ4WVhGakkzTmpjK0FUYzJOelkwSnlZbkxnRW5KaU1pQmdjR0l4TWpOVE1GSVRVaEpTTTFNd1VoTlNFbEl6VXpCU0UxSVFNa1Bsd0NBUUVCQVFKY1BrbEpTWkpKU1VrOVhRSUJBUUVCQWx3K1NVbEpra2xKL2dVbE9nRUJBUUVCQVFNQ05TUkpTVXFTU2tsSkpEVUNBd0VCQVFFREFqVWtTVWhKa1VsSVNlQ0FnQUdBL3NBQlFQNkFnSUFCZ1A3QUFVRCtBSUNBQWdEK1FBSEFBNEFDWEQ1SlNVbVNTVWxKUGx3Q0FRRUJBUUpjUGtsSlNaSkpTVWsrWEFJQkFRRkJPQ1pJU1VtU1NVbEpKRFVDQXdFQkFRRURBalVrU1VsS2trcEpTU1ExQWdNQkFRSDk0RUJBUUVCQVFFQkFRRUJBQUFBQUFBUUFRd0RJQTcwQ3VBQWtBRTBBWUFCd0FBQUJGaGNlQVJjV0Z6QUdCd1lIRGdFSEJpY21KeTRCSnlZbk1EWTNOamMrQVRjMk16b0JCeUlHQndZSERnRUhCZ2N3RmhjV0Z4NEJOelkzTmpjK0FUYzJOekFtSnlZbkxnRW5KaU1xQVNNWEhnRVZGQVlIRGdFbkxnRW5ORFkzUGdFekJ3NEJCd1lXRnhZMk56WW1KeTRCSXdJSlFFSkJkUzh3SFVJN0tTOHZZekl5TURzNU9tWXBLUmxGUHlFbEpVNG9LQ2NIQkFvTkdRd3VNQzlWSXlNVkh4OHFORFJ2T0RneEtpZ29TQjBkRWg4ZkhpVWtUeW9wS0FZRUJoSkdpeGdaTUh3MFBHY0NHUndrVWpvVEkwZ1dHeG92UFl3ZUd5QXdGeUFvQXJnQkRBdzVMeTlJZlNrZEVoRVJBUUVEQkJBUE95MHRQb0VxRnc0UEVRUUVRQUVCQXdzTEt5RWhMajhjS0JVVkVRSUNCd1lORFN3ZUhpYy9IUndURWhRRkJCMENSVlFnUFJRbUJnVUZUVUVpUWhZYURFQUJDUmtnWEEwUkJ5VWlYQXNHQWdBQ0FQVUFxUU1MQXRjQURBQVFBQUFKQVNjM0p6Y1dGeDRCRnhZWEV5TVJNd0k1L3VrdDZla3RJeU1pUmlNakk5SkFRQUhBL3VrdTZla3VJeU1qUmlJakkvOEFBZ0FBQUFBQ0FIa0Frd09IQXUwQUN3QVdBQUFCQnlFVklSY0hDUUVlQVJjRkZ6Y25JVFVoTnljT0FRSTBRQUdUL20xQWpmN1NBUzRqUnlQK29OTXlnQUh1L2hLQU1qVnBBbUJBd0VDTkFTMEJMU05ISTZEVE00QkFnRE0xYVFBQUFBZ0FZQUFnQTZBRFlBQURBQWtBRHdBVEFCY0FIUUFqQUNjQUFDVWpFVE1uQnljM0hnRUZCeWMzSGdFM0lUVWhCU0UxSVRjSEp6Y2VBU1VISnpjZUFRVWpFVE1DSUVCQWM4MHR6UXNYQWFzdHpTMHpaNGIvQUFFQS9jRC9BQUVBVFMzTkxUTm5BZFBOTGMwTEYvN2VRRUFnQVFBZ3pTM05DeGVyTGMwdE0yZk5RRUJBWUMzTkxUTm5iYzB0elFzWGl3RUFBQUFDQVBFQXNRTVBBczhBQndBT0FBQVRId0VuTnljSEp5VXZBUmNIRnpmeEE5OUhkRk4xUndJZUE5OUhkRk4xQVpQZkEwZDFVM1JIV3Q4RFIzVlRkQUFBQXdEQUFPQURRQUtnQUFNQUJ3QUxBQUFsSVRVaE5TRTFJVFVoTlNFRFFQMkFBb0Q5Z0FLQS9ZQUNnT0JBZ0VDQVFBQUFBQUlBeXdDS0F6VUM5Z0FIQUE4QUFDVXZBUmNIRnpjWEV4OEJKemNuQnljQjJnVGVSM1JUZFVkTUJONUhkRk4xUjdqZUJFaDFVM1ZIQWhEZUJFaDFVM1ZIQUFBQUFnQ0FBV0FEZ0FJZ0FBTUFCd0FBQVNFMUlRVVZJVFVEZ1AwQUF3RDlRQUtBQVdEQVFFQkFBQUVCWGdDcEFxSUMxd0FNQUFBSkFTYzNKemNXRng0QkZ4WVhBcUwrNlMzcDZTMGpJeU5GSXlNakFjRCs2UzdwNlM0akl5TkdJaU1qQUFBQUFBSUFRQUNnQThBQzRBQUtBQllBQUFFM0hnRVhCeWMzRnhFekFTTVJCeWMzSGdFWEJ5Y1JBVUdRREJjTTRPQXZrRUlCd0VLUUwrQTRjRGd2a0FFWWhnc1dDOUxTTElZQnlQM0FBY2lHTE5JMGFUVXNodjQ0QUFBR0FIWUFRQU9MQTBzQUhBQXlBRUVBVXdCaUFHNEFBQUVXRng0QkZ4WUhCZ2NPQVNjbUp5WW5MZ0UzTmpjMk56NEJOellYQndZSERnRUhCaGNXRng0Qk56WTNOaWN1QVNjbUJ4Y1dCdzRCQndZbkxnRXZBUUVlQVFFV056NEJOelkzTmlZbkJnY09BUWNHQnhNeUZoOEJBU1luSmpZM05qYzZBUWNHQnc0QkJ3WVhBUzRCQndJR1lsVlZhdzROTFNkT1RiZGRYa2N2SGg0WENBZ2NHU2NtWHpjM09RcFRSMGhhQ2dzbktGTlR1VlZWTFNVS0NWaEpTVnp6SXdnSVRVQkJUaHcwR0NnQmd3WUwvdGdvS1NwSkhCc01DQUVKSVNBaFFTRWdJVU1oUUIwcC9uMGxCUVl5T0RoWUJBb0dNQ29xTndvS0RnRUdFU0lTQTBzQ05UV2taV1JnVkRjM0pSVVVReXM1T241QVFEb3lLaWs2RUJBQlFBRXRMWXhWVkZGVExTMEVLaXRjVEZWVmp5OHVBYzFBU2tsN0pTWUlBaEVORmdHRENoVCtyUXdGQlNjZ0h5a2VQUjBnSVNGQklTQWhBZFlSRUJiK2ZFRkxUSUl1TFFaQUFoa1pUVEF2TGdFRkJRVUJBQUFBQUFNQWdBQXdBNEFEVUFBV0FDSUFOZ0FBQVRRbUl5SUdGU01pQmhVUkZCWXpJVEkyTlJFMEppTUZNaFlWRkFZaklpWTFORFlCSVNJbU5SRTBOanNCRlNFMU16SVdGUkVVQmdLQU9FaElPSUExUzBzMUFnQTFTMHMxL3dBU0dSa1NFaGtaQVJMK0FCb21KaHBBQVlCQUdpWW1BdkFZU0VnWVN6WCtRRFZMU3pVQndEVkxFUmdSRVJnWUVSRVkvWkVtR2dIQUdpYUFnQ1lhL2tBYUpnQUFBQUFDQUhBQU1BT1FBMUFBS0FCQUFBQUJKekEyTno0QkZ6Y21OejRCTnpZeEZoY2VBUmNXRnc0QkJ3NEJKd2NlQVJjV0JnOEJKd2NuTndFT0FSOEJCeVlHQndFK0FUYzJKaWMzTUJZM0p6QUdNUUZabFFZUElYRXdaUWtRRUN3VUZDVWtKVWtsSlNRRkN3VWFSU3BxQVFFQ0F5Z3ZHSnJwTGVrQkNCRWFDaENnTUdJVEFTRUNCQUllQndlYU9pVGFBUUZIbFNjVkxROEpZeHdkSFM0UER5VWxKRW9sSkNVSERnY2pMd2RuQ1FFYk0yQVlESnJxTHVrQnRnNG1EeGVmREFJZS90OENBd0lhVml5YUVTclpBUUFBQ2dBLy8vOER3UU9CQUNjQU93QkhBR0VBWndCdUFIc0FoZ0NNQUpJQUFBRWVBUmNXRlJZVUJ4UUhEZ0VIQmlNR0lpY2lKeTRCSnlZMUpqUTNORGMrQVRjMk16WXlGeklUSVJFV014WTJOelkzUGdFM05qYytBU2MwSndFVUZoVWVBUmN5RmpNMUl3RUhKemNlQVJjSEp4VU9BUWNqRndjbk54NEJGd2NXTmpjMUJSUVdGVE0xSndZVUJ6TTFJemNxQVNNaUJnY1VCaFV6TlRNbEZUTTBKalV1QVNjaUppVUdJZ2NWTXpjbUlpTVZNd01rUGx3Q0FRRUJBUUpjUGtsSlNaSkpTVWs5WFFJQkFRRUJBbHcrU1VsSmtrbEpxUDI2UFQwOWVqMDlQU1ExQWdJQ0FRRUJBdno4QVFJMUpBZ1FDSHdDUVFrdVZ4WXJGaTRKQVZ3L2R3b3VWbFlNRmd3TFVZSUIvYndCZm4wQkFYOTl2eGd1RnlVNkFRRjhRZ0hIZlFFQ05TUUlFUDd6SVVFZ2dzTWdRU0dDQTRBQ1hENUpTVW1TU1VsSlBsd0NBUUVCQVFKY1BrbEpTWkpKU1VrK1hBSUJBUUgvQVAyOEFnRUJBUUlDQWpVa1BUMDhlajA5UFA0OENSRUlKRFVDQVg0QkZnb3VWaFVzRlM0S2N6OWZBZ2t1VjFjTUZnd0tBUjFGYzFRaFFDQ0J3aUZBSVlML09DWVlNQmxCZjM4SkVRa2tOUUlCQWdFQmY0QUJnUUFBQWdDZ0FHQURZQU1nQUFzQUZ3QUFBU0VWSVJFakVTRTFJUkV6QnhFaEZTRVJNeEVoTlNFUkFtQUJBUDhBd1A4QUFRREFnUDhBQVFCQUFRRC9BQUlnd1A4QUFRREFBUUJBL3dCQS93QUJBRUFCQUFBQUFRRmVBS2tDb2dMWEFBY0FBQUVIRndjSkFSNEJBcUxwNlMzKzZRRVhDeGNDcWVucExnRVhBUmNNRmdBQ0FBRC93QVFBQThBQUd3QTNBQUFCSWdjT0FRY0dGUlFYSGdFWEZqTXlOejRCTnpZMU5DY3VBU2NtQnpJWEhnRVhGaFVVQnc0QkJ3WWpJaWN1QVNjbU5UUTNQZ0UzTmdJQWFsMWRpeWtvS0NtTFhWMXFhbDFkaXlrb0tDbUxYVjFxWFZGU2VpTWpJeU42VWxGZFhWRlNlaU1qSXlONlVsRUR3Q2dwaTExZGFtcGRYWXNwS0NncGkxMWRhbXBkWFlzcEtFQWpJM3BTVVYxZFVWSjZJeU1qSTNwU1VWMWRVVko2SXlNQUF3QUEvOEFFQUFQQUFCc0FOd0JUQUFBQklnY09BUWNHRlJRWEhnRVhGak15Tno0Qk56WTFOQ2N1QVNjbUJ6SVhIZ0VYRmhVVUJ3NEJCd1lqSWljdUFTY21OVFEzUGdFM05nRVVCdzRCQndZaklpY3VBU2NtTlRRM1BnRTNOak15Rng0QkZ4WUNBR3BkWFlzcEtDZ3BpMTFkYW1wZFhZc3BLQ2dwaTExZGFsMVJVbm9qSXlNamVsSlJYVjFSVW5vakl5TWplbEpSQVowWkdWYzZPMEpDT3pwWEdSa1pHVmM2TzBKQ096cFhHUmtEd0NncGkxMWRhbXBkWFlzcEtDZ3BpMTFkYW1wZFhZc3BLRUFqSTNwU1VWMWRVVko2SXlNakkzcFNVVjFkVVZKNkl5UCtRRUk3T2xjWkdSa1pWem83UWtJN09sY1pHUmtaVnpvN0FBQUFBQUlBZVFDVEE0Y0M3UUFPQUJrQUFBa0JKemNoTlNFbk54WVhIZ0VYRmlVWElSVWhCeGMzSnc0QkE0ZiswbzFBL20wQmswQ05KaVlsVENVbS9zYUEvaElCN29BeTA5TU1HZ0hBL3RPTlFNQkFqU1VtSmtzbUpYcUFRSUF6MDlNTkdRQUFBQUFDQUlBQVFBT0FBMEFBRGdBWkFBQUJFU0VSSXhFVUZqTWhNalkxRVNNRk54Y0hKemNYRVRNUk1RTXIvYXBWTWlNQ1ZpTXlWZjhBYmp6VjFUeHVWZ0hBL3RVQksvN1ZJekl5SXdFckhXNDgxZFU4YmdHZC9tTUFBUURwQVI0REZ3SmlBQWNBQUFrQ054YzNIZ0VERi83cC91a3U2ZWtNRmdJMS91a0JGeTNwNlFzWEFBQUJBVjRBcVFLaUF0Y0FCd0FBQVFjWEJ3a0JIZ0VDb3VucExmN3BBUmNMRndLcDZla3VBUmNCRnd3V0FBRUJYZ0NwQXFJQzF3QU1BQUFKQVNjM0p6Y1dGeDRCRnhZWEFxTCs2UzNwNlMwakl5TkZJeU1qQWNEKzZTN3A2UzRqSXlOR0lpTWpBQUFBQUFFQTZRRWVBeGNDWWdBTEFBQUJCeWNISndFV0Z4NEJGeFlERnk3cDZTNEJGeU1qSWtZakl3RkxMZW5wTFFFWEl5TWpSU01qQUFBQUFRRHBBTzRERndLU0FBY0FBQWtCSnpjWEFSNEJBeGYraWJjdWlRRkpEQllDWmY2SnR5MkpBVWtMRndBQkFWNEFxUUtpQXRjQURBQUFDUUVuTnljM0ZoY2VBUmNXRndLaS91a3Q2ZWt0SXlNalJTTWpJd0hBL3VrdTZla3VJeU1qUmlJakl3QUFBQUFCQU1BQm9BTkFBZUFBQXdBQUV5RVZJY0FDZ1AyQUFlQkFBQUFBQVFEcEFSNERGd0ppQUFjQUFBa0NOeGMzSGdFREYvN3AvdWt1NmVrTUZnSTEvdWtCRnkzcDZRc1hBQUFCQUFBQUFRQUFFa3ZoZVY4UFBQVUFDd1FBQUFBQUFObEJqNDBBQUFBQTJVR1BqUUFBLzhBRUFBUEFBQUFBQ0FBQ0FBQUFBQUFBQUFFQUFBUEEvOEFBQUFRQUFBQUFBQVFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUE0QkFBQUFBQUFBQUFBQUFBQUFnQUFBQVFBQUQ4RUFBQlRCQUFCS1FRQUFJQUVBQURWQkFBQUFBUUFBQUFFQUFBQUJBQUFjd1FBQU1BRUFBREFCQUFCWGdRQUFLQUVBQUVwQkFBQVFBUUFBSVlFQUFFcEJBQUJYZ1FBQUVNRUFBQkRCQUFBd0FRQUFQVUVBQURBQkFBQVB3UUFBRU1FQUFEMUJBQUFlUVFBQUdBRUFBRHhCQUFBd0FRQUFNc0VBQUNBQkFBQlhnUUFBRUFFQUFCMkJBQUFnQVFBQUhBRUFBQS9CQUFBb0FRQUFWNEVBQUFBQkFBQUFBUUFBSGtFQUFDQUJBQUE2UVFBQVY0RUFBRmVCQUFBNlFRQUFPa0VBQUZlQkFBQXdBUUFBT2tBQUFBQUFBb0FGQUFlQU1JQkJnRWVBWXdCcUFIcUFpUUNXQUtHQXBvQ3ZBTFNBeDREUGdPMkJCSUVLZ1JJQlFnRnJnWUNCaUFHYWdjTUI3WUgyZ2dJQ0ZJSWNnaU1DSzRJd2dqZ0NRd0p4QW9VQ253TFZBdCtDNVFMNmd4cURKd015QXplRFBRTkVnMHVEVVFOWWcxd0RZWUFBQUFCQUFBQU9BQ1RBQXdBQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0N1QUFFQUFBQUFBQUVBQ0FBQUFBRUFBQUFBQUFJQUJ3QnBBQUVBQUFBQUFBTUFDQUE1QUFFQUFBQUFBQVFBQ0FCK0FBRUFBQUFBQUFVQUN3QVlBQUVBQUFBQUFBWUFDQUJSQUFFQUFBQUFBQW9BR2dDV0FBTUFBUVFKQUFFQUVBQUlBQU1BQVFRSkFBSUFEZ0J3QUFNQUFRUUpBQU1BRUFCQkFBTUFBUVFKQUFRQUVBQ0dBQU1BQVFRSkFBVUFGZ0FqQUFNQUFRUUpBQVlBRUFCWkFBTUFBUVFKQUFvQU5BQ3dRV2RDWVd4b1lXMEFRUUJuQUVJQVlRQnNBR2dBWVFCdFZtVnljMmx2YmlBeExqQUFWZ0JsQUhJQWN3QnBBRzhBYmdBZ0FERUFMZ0F3UVdkQ1lXeG9ZVzBBUVFCbkFFSUFZUUJzQUdnQVlRQnRRV2RDWVd4b1lXMEFRUUJuQUVJQVlRQnNBR2dBWVFCdFVtVm5kV3hoY2dCU0FHVUFad0IxQUd3QVlRQnlRV2RDWVd4b1lXMEFRUUJuQUVJQVlRQnNBR2dBWVFCdFJtOXVkQ0JuWlc1bGNtRjBaV1FnWW5rZ1NXTnZUVzl2Ymk0QVJnQnZBRzRBZEFBZ0FHY0FaUUJ1QUdVQWNnQmhBSFFBWlFCa0FDQUFZZ0I1QUNBQVNRQmpBRzhBVFFCdkFHOEFiZ0F1QUFBQUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT09XFxcIikgZm9ybWF0KFxcXCJ0cnVldHlwZVxcXCIpO1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxcblxcbi5hZy10aGVtZS1iYWxoYW0ge1xcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG4gIGNvbG9yOiAjMDAwO1xcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgbGluZS1oZWlnaHQ6IDE7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRoZW1lLWJhbGhhbS5hZy1kbmQtZ2hvc3QsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwuYWctY2VsbC1pbmxpbmUtZWRpdGluZywgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC5hZy1wb3B1cC1lZGl0b3IsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNlbGVjdC1hZ2ctZnVuYy1wb3B1cCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1oZWFkZXIgLmFnLXRhYiB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xcbiAgICBtYXJnaW46IDRweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgcGFkZGluZzogNHB4IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWhlYWRlciAuYWctdGFiLmFnLXRhYi1zZWxlY3RlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwOTFFQTtcXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHdoaXRlO1xcbiAgICBib3JkZXItY29sb3I6ICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gbGFiZWwge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtICoge1xcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtICo6Zm9jdXMsIC5hZy10aGVtZS1iYWxoYW0gKiAqOmJlZm9yZSwgLmFnLXRoZW1lLWJhbGhhbSAqICo6YWZ0ZXIge1xcbiAgICAgIG91dGxpbmU6IG5vbmU7XFxuICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiIHtcXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogODRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00IHtcXG4gICAgcGFkZGluZy1yaWdodDogODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDExMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC01IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC01IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTY4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC02IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTY4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC03IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE5NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE5NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC04IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC04IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjUycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC05IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjUycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMCB7XFxuICAgIHBhZGRpbmctbGVmdDogMjAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDIwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTExIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyMjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTExIHtcXG4gICAgcGFkZGluZy1yaWdodDogMjIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMSB7XFxuICAgIHBhZGRpbmctbGVmdDogMzA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMzM2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMyB7XFxuICAgIHBhZGRpbmctbGVmdDogMjYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM2NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMjgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMzkycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDM5MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMzIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ0OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzNDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNyB7XFxuICAgIHBhZGRpbmctbGVmdDogNDc2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ3NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDM2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1MDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMzgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDM4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDUzMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIwIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMCB7XFxuICAgIHBhZGRpbmctbGVmdDogNTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1ODhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTg4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMiB7XFxuICAgIHBhZGRpbmctbGVmdDogNDQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIzIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMyB7XFxuICAgIHBhZGRpbmctbGVmdDogNjQ0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY0NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2NzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1yaWdodDogNjcycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctbGVmdDogNTAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDUwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI2IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctbGVmdDogNzI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDcyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3NTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzU2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNTYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc4NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3ODRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTI5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI5IHtcXG4gICAgcGFkZGluZy1yaWdodDogNTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctbGVmdDogODEycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDYwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1yaWdodDogODQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctbGVmdDogNjIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDYyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg2OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4NjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTMyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMyIHtcXG4gICAgcGFkZGluZy1yaWdodDogNjQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctbGVmdDogODk2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg5NnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDY2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5MjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1yaWdodDogOTI0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctbGVmdDogNjgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDY4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk1MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM1IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctbGVmdDogOTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwMDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTAzNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMDM2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNzYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDc2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwNjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM4IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTA2NHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDc4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMzkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDkycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0zOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwOTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQwIHtcXG4gICAgcGFkZGluZy1yaWdodDogODAwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTEyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctbGVmdDogODIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDgyMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDExNDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTE0OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4NDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTc2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExNzZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQzIHtcXG4gICAgcGFkZGluZy1yaWdodDogODYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTIwNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMjA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctbGVmdDogODgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg4MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEyMzJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTIzMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDkwMHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5MDBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjYwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyNjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5MjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ2IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTI4OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMjg4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctbGVmdDogOTQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk0MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEzMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTMxNnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk2MHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA5NjBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMzQ0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00OCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEzNDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA5ODBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ5IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTgwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTM3MnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMzcycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwgLmFnLWljb24ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoZWNrYm94LCAuYWctdGhlbWUtYmFsaGFtIC5hZy1yYWRpby1idXR0b24sIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvZ2dsZS1idXR0b24ge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGVja2JveCBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmFkaW8tYnV0dG9uIGxhYmVsLCAuYWctdGhlbWUtYmFsaGFtIC5hZy10b2dnbGUtYnV0dG9uIGxhYmVsIHtcXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGVja2JveCBsYWJlbDplbXB0eSwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmFkaW8tYnV0dG9uIGxhYmVsOmVtcHR5LCAuYWctdGhlbWUtYmFsaGFtIC5hZy10b2dnbGUtYnV0dG9uIGxhYmVsOmVtcHR5IHtcXG4gICAgICAgIG1hcmdpbjogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGVja2JveDpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1yYWRpby1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9nZ2xlLWJ1dHRvbjpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsIHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LWdyb3VwLWxlYWYtaW5kZW50IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctY2VsbCB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXJvdy5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1maXJzdC1yaWdodC1waW5uZWQge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctcm93LmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1sYXN0LWxlZnQtcGlubmVkIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtbGVhZi1pbmRlbnQge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDI4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY2VsbCB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctcm93LmFnLWNlbGwtZmlyc3QtcmlnaHQtcGlubmVkLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNlbGw6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1yb3cuYWctY2VsbC1sYXN0LWxlZnQtcGlubmVkLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNlbGw6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLWxhc3QtbGVmdC1waW5uZWQge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXZhbHVlLWNoYW5nZS1kZWx0YS11cCB7XFxuICAgIGNvbG9yOiAjNDNhMDQ3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEtZG93biB7XFxuICAgIGNvbG9yOiAjZTUzOTM1OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy12YWx1ZS1jaGFuZ2UtdmFsdWUge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyLXJhZGl1czogMXB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDFweDtcXG4gICAgcGFkZGluZy1yaWdodDogMXB4O1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMXM7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMXM7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXZhbHVlLWNoYW5nZS12YWx1ZS1oaWdobGlnaHQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAxNjAsIDEzMywgMC41KTtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xczsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl0sXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXSB7XFxuICAgIGJvcmRlci13aWR0aDogMXB4O1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6ICM5NUE1QTY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl06ZGlzYWJsZWQge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlYmViZWI7XFxuICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OSwgMTY1LCAxNjYsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJyYW5nZVxcXCJdIHtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYSB7XFxuICAgIGJvcmRlci13aWR0aDogMXB4O1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6ICM5NUE1QTY7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYTpkaXNhYmxlZCB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ViZWJlYjtcXG4gICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ5LCAxNjUsIDE2NiwgMC4zKTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmNztcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1waW5uZWQtcmlnaHQtaGVhZGVyIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1waW5uZWQtbGVmdC1oZWFkZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItcm93IHtcXG4gICAgYm9yZGVyOiBub25lOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3cge1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6ICNCREMzQzc7XFxuICAgIGJvcmRlci13aWR0aDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3c6bm90KC5hZy1yb3ctZmlyc3QpIHtcXG4gICAgICBib3JkZXItd2lkdGg6IDFweCAwIDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LmFnLXJvdy1sYXN0IHtcXG4gICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvdy1vZGQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmZGZlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3ctZXZlbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ob3Jpem9udGFsLWxlZnQtc3BhY2VyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ob3Jpem9udGFsLWxlZnQtc3BhY2VyLmFnLXNjcm9sbGVyLWNvcm5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ob3Jpem9udGFsLXJpZ2h0LXNwYWNlciB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ob3Jpem9udGFsLXJpZ2h0LXNwYWNlci5hZy1zY3JvbGxlci1jb3JuZXIge1xcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3ctaG92ZXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUNGMEYxOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1udW1lcmljLWNlbGwge1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWNlbGwtbGFiZWwgLmFnLWhlYWRlci1pY29uIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgb3BhY2l0eTogMC44NzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWNlbGwsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItZ3JvdXAtY2VsbCB7XFxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICAgIGJvcmRlci1jb2xvcjogI0JEQzNDNztcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbiAgICBib3JkZXItd2lkdGg6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWNlbGwuYWctaGVhZGVyLWNlbGwtbW92aW5nLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItZ3JvdXAtY2VsbC5hZy1oZWFkZXItY2VsbC1tb3Zpbmcge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1jZWxsOm5vdCguYWctaGVhZGVyLWdyb3VwLWNlbGwtbm8tZ3JvdXApLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpub3QoLmFnLWhlYWRlci1ncm91cC1jZWxsLW5vLWdyb3VwKSB7XFxuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItcm93OmZpcnN0LWNoaWxkIC5hZy1oZWFkZXItY2VsbCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLXJvdzpmaXJzdC1jaGlsZCAuYWctaGVhZGVyLWdyb3VwLWNlbGwge1xcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1oZWFkZXItY2VsbC1yZXNpemUge1xcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1zZWxlY3QtYWxsIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsIHtcXG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcXG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgIHBhZGRpbmctbGVmdDogMTFweDtcXG4gICAgcGFkZGluZy1yaWdodDogMTFweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LWRyYWcge1xcbiAgICBjdXJzb3I6IG1vdmU7XFxuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xcbiAgICBjdXJzb3I6IGdyYWI7XFxuICAgIG1pbi13aWR0aDogMjhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LWRyYWdnaW5nLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3ctZHJhZ2dpbmcgLmFnLXJvdy1kcmFnIHtcXG4gICAgY3Vyc29yOiBtb3ZlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJhZyB7XFxuICAgIGN1cnNvcjogbW92ZTtcXG4gICAgY3Vyc29yOiAtd2Via2l0LWdyYWI7XFxuICAgIGN1cnNvcjogZ3JhYjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LWRyYWdnaW5nIHtcXG4gICAgb3BhY2l0eTogMC41OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWhhcy1mb2N1cyAuYWctY2VsbC1mb2N1czpub3QoLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1oYXMtZm9jdXMgLmFnLWNlbGwtZm9jdXMuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctY2VsbC1mb2N1cy5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsLmFnLWNlbGwtcmFuZ2UtaGFuZGxlLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWhhcy1mb2N1cyAuYWctY2VsbC1mb2N1czpub3QoLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1oYXMtZm9jdXMgLmFnLWNlbGwtZm9jdXMuYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY2VsbC1mb2N1cy5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsLmFnLWNlbGwtcmFuZ2UtaGFuZGxlIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwOTFFQTtcXG4gICAgb3V0bGluZTogaW5pdGlhbDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcXG4gICAgd2lkdGg6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbWVudSB7XFxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbWVudSAuYWctbWVudS1saXN0IHtcXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcXG4gICAgICB3aWR0aDogMTAwJTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1hY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFQ0YwRjE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbWVudSAuYWctbWVudS1vcHRpb24tZGlzYWJsZWQge1xcbiAgICAgIG9wYWNpdHk6IDAuNTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi10ZXh0IHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLWljb24ge1xcbiAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcXG4gICAgICBtaW4td2lkdGg6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbWVudSAuYWctbWVudS1vcHRpb24tc2hvcnRjdXQge1xcbiAgICAgIHBhZGRpbmctbGVmdDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUgLmFnLW1lbnUtc2VwYXJhdG9yIHtcXG4gICAgICBoZWlnaHQ6IDhweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUgLmFnLW1lbnUtc2VwYXJhdG9yID4gc3BhbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB3aWR0aCUzRCcxJyUyMGhlaWdodCUzRCc4cHgnJTIwdmlld0JveCUzRCcwJTIwMCUyMDElMjA4cHgnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUzRSUzQ2xpbmUlMjB4MSUzRCcwJyUyMHkxJTNEJzRweCclMjB4MiUzRCcxJyUyMHkyJTNEJzRweCclMjBzdHJva2Utd2lkdGglM0QnMSclMjBzdHJva2UlM0QnJTIzQkRDM0M3JyUyRiUzRSUzQyUyRnN2ZyUzRVxcXCIpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLXBvcHVwLXBvaW50ZXIge1xcbiAgICAgIHdpZHRoOiAyNHB4O1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbS5hZy1kbmQtZ2hvc3Qge1xcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDAgOHB4O1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0uYWctZG5kLWdob3N0IHNwYW4sXFxuICAgIC5hZy10aGVtZS1iYWxoYW0uYWctZG5kLWdob3N0IGRpdiB7XFxuICAgICAgaGVpZ2h0OiAxMDAlO1xcbiAgICAgIG1hcmdpbjogMDtcXG4gICAgICBwYWRkaW5nOiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0uYWctZG5kLWdob3N0IC5hZy1kbmQtZ2hvc3QtaWNvbiB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxuICAgICAgb3BhY2l0eTogMC44NzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWhlYWRlciB7XFxuICAgIGJhY2tncm91bmQ6ICNmNWY3Zjc7XFxuICAgIG1pbi13aWR0aDogMjIwcHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWhlYWRlciAuYWctdGFiIHtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gICAgICBoZWlnaHQ6IDE2cHg7XFxuICAgICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgICAgLW1zLWZsZXg6IG5vbmU7XFxuICAgICAgICAgICAgICBmbGV4OiBub25lO1xcbiAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1ib2R5IHtcXG4gICAgcGFkZGluZzogMnB4IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCA+IGRpdjpmaXJzdC1jaGlsZCA+IHNwYW4ge1xcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0ID4gZGl2Omxhc3QtY2hpbGQgPiBzcGFuIHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWJvZHkgLmFnLW1lbnUtbGlzdCA+IGRpdjpsYXN0LWNoaWxkID4gLmFnLW1lbnUtb3B0aW9uLXBvcHVwLXBvaW50ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1zZWxlY3QsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctZmlsdGVyLWJvZHkge1xcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctZmlsdGVyLWJvZHkge1xcbiAgICBtYXJnaW4tdG9wOiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgLmFnLWZpbHRlci1maWx0ZXIge1xcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1maWx0ZXItc2VsZWN0IHtcXG4gICAgbWFyZ2luOiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJyYWRpb1xcXCJdIHtcXG4gICAgbWFyZ2luOiAwIDNweCAwIDZweDtcXG4gICAgd2lkdGg6IDEycHg7XFxuICAgIGhlaWdodDogMTdweDtcXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1zZXQtZmlsdGVyLWxpc3Qge1xcbiAgICBoZWlnaHQ6IDE2OHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItaXRlbSB7XFxuICAgIGhlaWdodDogMjhweDtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctc2V0LWZpbHRlci1pdGVtID4gZGl2LCAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItaXRlbSA+IHNwYW4ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1maWx0ZXItaGVhZGVyLWNvbnRhaW5lcjpudGgtY2hpbGQoMikge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1maWx0ZXItYXBwbHktcGFuZWwge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyIC5hZy1maWx0ZXItYXBwbHktcGFuZWwgYnV0dG9uIHtcXG4gICAgICBsaW5lLWhlaWdodDogMS41OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbHRlciAuYWctZmlsdGVyLWFwcGx5LXBhbmVsIGJ1dHRvbiArIGJ1dHRvbiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIHtcXG4gICAgaGVpZ2h0OiAxNnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLXNlbGVjdC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tbGFiZWwsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi1ncm91cCAuYWctY29sdW1uLWdyb3VwLWljb25zLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWxhYmVsLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4gLmFnLWNvbHVtbi1ncm91cC1pY29ucyB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctcHJpbWFyeS1jb2xzLWxpc3QtcGFuZWwge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgcGFkZGluZy10b3A6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1wcmltYXJ5LWNvbHMtbGlzdC1wYW5lbCA+IGRpdiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4uYWctdG9vbHBhbmVsLWFkZC1ncm91cC1pbmRlbnQge1xcbiAgICBtYXJnaW4tbGVmdDogMjRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCB7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCA+IGRpdiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgIG1hcmdpbjogMCA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCAuYWctZmlsdGVyLWJvZHkge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciB7XFxuICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCB7XFxuICAgICAgd2lkdGg6IDEwMCU7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCAuYWctZmlsdGVyLXRvb2xwYW5lbC1pbnN0YW5jZSB7XFxuICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgICAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgICAgIC1tcy1mbGV4OiBhdXRvO1xcbiAgICAgICAgICAgICAgICBmbGV4OiBhdXRvO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gICAgICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAtbXMtZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xcbiAgICAgICAgICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci10b29scGFuZWwtaW5zdGFuY2UgLmFnLWZpbHRlci10b29scGFuZWwtaGVhZGVyIHtcXG4gICAgICAgICAgcGFkZGluZzogMCA1cHg7IH1cXG4gICAgICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci10b29scGFuZWwtaW5zdGFuY2UgLmFnLWZpbHRlci10b29scGFuZWwtaGVhZGVyID4gZGl2IHtcXG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItYm9keS13cmFwcGVyIHtcXG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCAuYWctZmlsdGVyLWFpciB7XFxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XFxuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XFxuICAgICAgICBwYWRkaW5nOiA0cHggMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLXBpdm90LW1vZGUtcGFuZWwge1xcbiAgICAgIGhlaWdodDogMzJweDtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgICAgICAgZmxleDogbm9uZTsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctcGl2b3QtbW9kZS1wYW5lbCAuYWctcGl2b3QtbW9kZS1zZWxlY3Qge1xcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICBtYXJnaW4tbGVmdDogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgICAgcGFkZGluZy1ib3R0b206IDNweDtcXG4gICAgICBwYWRkaW5nLXRvcDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgICBwYWRkaW5nOiA0cHggMDtcXG4gICAgICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCAuYWctY29sdW1uLWRyb3AtZW1wdHktbWVzc2FnZSB7XFxuICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgICAgICBmb250LXNpemU6IDEycHg7XFxuICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcXG4gICAgICAgIG1hcmdpbi10b3A6IDRweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWxpc3Qge1xcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCA+IGRpdiA+IDpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wOmxhc3QtY2hpbGQge1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbnVtZXJpYy1oZWFkZXIgLmFnLWhlYWRlci1jZWxsLWxhYmVsIC5hZy1oZWFkZXItaWNvbiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFnaW5nLXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuICAgIHBhZGRpbmc6IDAgMTJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYWdpbmctcGFuZWwgPiBzcGFuIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctaWNvbiB7XFxuICAgIHdpZHRoOiAxNnB4O1xcbiAgICBoZWlnaHQ6IDE2cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24gYnV0dG9uIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICB0b3A6IDA7XFxuICAgIHJpZ2h0OiAwO1xcbiAgICBib3R0b206IDA7XFxuICAgIGxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgLmFnLXBhZ2luZy1idXR0b24uYWctZGlzYWJsZWQgLmFnLWljb24ge1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcXG4gICAgb3BhY2l0eTogMC4zODsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctcGFnaW5nLWJ1dHRvbi5hZy1kaXNhYmxlZCBidXR0b24ge1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhZ2luZy1wYWdlLXN1bW1hcnktcGFuZWwgc3BhbiB7XFxuICAgIG1hcmdpbjogMCA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvdy1zZWxlY3RlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNiN2U0ZmY7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCksIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkge1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtdG9wLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtdG9wIHtcXG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAjMDA5MUVBOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1yaWdodCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLXJpZ2h0IHtcXG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDkxRUE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWJvdHRvbSwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWJvdHRvbSB7XFxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwOTFFQTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtbGVmdCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWxlZnQge1xcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjMDA5MUVBOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE0NSwgMjM0LCAwLjIpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLXJhbmdlLWNoYXJ0IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDg4LCAyNTUsIDAuMSk7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtcmFuZ2UtY2hhcnQuYWctY2VsbC1yYW5nZS1jaGFydC1jYXRlZ29yeSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyNTUsIDEzMiwgMC4xKTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0xOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE0NSwgMjM0LCAwLjMpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTI6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTQ1LCAyMzQsIDAuNCk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMzpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNDUsIDIzNCwgMC41KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC00Om5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE0NSwgMjM0LCAwLjYpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLXRvcCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC10b3Age1xcbiAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkICMwMDkxRUE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC10b3AuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLXRvcC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgIzg2OTE5ODsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodCB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCAjMDA5MUVBOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtcmlnaHQuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLXJpZ2h0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggZGFzaGVkICM4NjkxOTg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzAwOTFFQTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLWJvdHRvbS5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjODY5MTk4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLXNlbGVjdGlvbi1maWxsLWxlZnQsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtbGVmdCB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggZGFzaGVkICMwMDkxRUE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBkYXNoZWQgIzg2OTE5ODsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsbC1oYW5kbGUsIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJhbmdlLWhhbmRsZSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDZweDtcXG4gICAgaGVpZ2h0OiA2cHg7XFxuICAgIGJvdHRvbTogLTFweDtcXG4gICAgcmlnaHQ6IC0xcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDkxRUE7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZpbGwtaGFuZGxlIHtcXG4gICAgY3Vyc29yOiBjZWxsOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yYW5nZS1oYW5kbGUge1xcbiAgICBjdXJzb3I6IG53c2UtcmVzaXplOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcge1xcbiAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICBoZWlnaHQ6IDQwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwuYWctY2VsbC1pbmxpbmUtZWRpdGluZywgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC5hZy1wb3B1cC1lZGl0b3Ige1xcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2Y3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wb3B1cC1lZGl0b3Ige1xcbiAgICBwYWRkaW5nOiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBvcHVwLWVkaXRvciAuYWctbGFyZ2UtdGV4dGFyZWEgdGV4dGFyZWEge1xcbiAgICAgIGhlaWdodDogYXV0bztcXG4gICAgICBwYWRkaW5nOiAxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yaWNoLXNlbGVjdCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3Zjc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LWxpc3Qge1xcbiAgICAgIHdpZHRoOiAyMDBweDtcXG4gICAgICBoZWlnaHQ6IDE4MnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC12YWx1ZSB7XFxuICAgICAgcGFkZGluZzogMCA0cHggMCAxMnB4O1xcbiAgICAgIGhlaWdodDogMjhweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yaWNoLXNlbGVjdCAuYWctdmlydHVhbC1saXN0LWl0ZW0ge1xcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcXG4gICAgICBoZWlnaHQ6IDI4cHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yaWNoLXNlbGVjdCAuYWctdmlydHVhbC1saXN0LWl0ZW06aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0VDRjBGMTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yaWNoLXNlbGVjdCAuYWctcmljaC1zZWxlY3Qtcm93IHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LXJvdy1zZWxlY3RlZCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2I3ZTRmZjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1mbG9hdGluZy1maWx0ZXItYnV0dG9uIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24gYnV0dG9uIHtcXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAgICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGJvcmRlcjogMDtcXG4gICAgaGVpZ2h0OiAxNnB4O1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgICB3aWR0aDogMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2VsZWN0aW9uLWNoZWNrYm94Om5vdCguYWctaGlkZGVuKSB+IC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1zZWxlY3Rpb24tY2hlY2tib3g6bm90KC5hZy1oaWRkZW4pICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtZXhwYW5kZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1leHBhbmRlZDpub3QoLmFnLWhpZGRlbikgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jb250cmFjdGVkOm5vdCguYWctaGlkZGVuKSB+IC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29udHJhY3RlZDpub3QoLmFnLWhpZGRlbikgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jaGVja2JveDpub3QoLmFnLWludmlzaWJsZSkgfiAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNoZWNrYm94Om5vdCguYWctaW52aXNpYmxlKSArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zZWxlY3Rpb24tY2hlY2tib3g6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtZXhwYW5kZWQ6bm90KC5hZy1oaWRkZW4pIH4gLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29udHJhY3RlZDpub3QoLmFnLWhpZGRlbikgfiAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jaGVja2JveDpub3QoLmFnLWludmlzaWJsZSkgfiAuYWctZ3JvdXAtY2hlY2tib3gge1xcbiAgICBtYXJnaW4tbGVmdDogMTJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY2hpbGQtY291bnQge1xcbiAgICBtYXJnaW4tbGVmdDogMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggc3BhbiB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3Zjc7XFxuICAgIGhlaWdodDogMjhweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tZ3JvdXAsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tcGl2b3Qge1xcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXNtYWxsLWxlZnQsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tc21hbGwtcmlnaHQge1xcbiAgICAgIG1hcmdpbjogMCA0cHg7XFxuICAgICAgb3BhY2l0eTogMC41NDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1jb2x1bW4tZHJvcC1lbXB0eS1tZXNzYWdlIHtcXG4gICAgICBvcGFjaXR5OiAwLjM4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgYmFja2dyb3VuZDogI2RkZTRlNjtcXG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcXG4gICAgbWluLWhlaWdodDogMTZweDtcXG4gICAgcGFkZGluZzogMCAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC10ZXh0IHtcXG4gICAgICBtYXJnaW46IDAgNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtYnV0dG9uIHtcXG4gICAgICBtaW4td2lkdGg6IDE2cHg7XFxuICAgICAgbWFyZ2luOiAwIDJweDtcXG4gICAgICBvcGFjaXR5OiAwLjU0OyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC1idXR0b246aG92ZXIge1xcbiAgICAgICAgb3BhY2l0eTogMC44NzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJhZyB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtdmVydGljYWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwge1xcbiAgICBtYXJnaW4tdG9wOiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNlbGVjdC1hZ2ctZnVuYy1wb3B1cCB7XFxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XFxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgICBoZWlnaHQ6IDcwcHg7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2VsZWN0LWFnZy1mdW5jLXBvcHVwIC5hZy12aXJ0dWFsLWxpc3QtaXRlbSB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcbiAgICAgIHBhZGRpbmctbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zZXQtZmlsdGVyLWxpc3QsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1tZW51LWNvbHVtbi1zZWxlY3Qtd3JhcHBlciB7XFxuICAgIHdpZHRoOiBhdXRvOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCA+IC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgbWFyZ2luLXRvcDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1kYXRhLWNoYW5nZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyLCAxNjAsIDEzMywgMC41KSAhaW1wb3J0YW50OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLWRhdGEtY2hhbmdlZC1hbmltYXRpb24ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yb3ctc3R1YiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXN0dWItY2VsbCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcXG4gICAgcGFkZGluZy10b3A6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zdHViLWNlbGwgLmFnLWxvYWRpbmctaWNvbiB7XFxuICAgICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc3BpbjtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzcGluO1xcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XFxuICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcXG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XFxuICAgICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7IH1cXG5cXG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XFxuICBmcm9tIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxcbiAgdG8ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XFxuXFxuQGtleWZyYW1lcyBzcGluIHtcXG4gIGZyb20ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XFxuICB0byB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc3R1Yi1jZWxsIC5hZy1sb2FkaW5nLXRleHQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgICAgbWFyZ2luLXRvcDogNHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1mbG9hdGluZy10b3Age1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmxvYXRpbmctYm90dG9tIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWZsb2F0aW5nLXRvcCwgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmxvYXRpbmctYm90dG9tIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1mbG9hdGluZy10b3AgLmFnLXJvdywgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmxvYXRpbmctYm90dG9tIC5hZy1yb3cge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXN0YXR1cy1iYXIge1xcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XFxuICAgIHBhZGRpbmctbGVmdDogMTZweDtcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbmFtZS12YWx1ZS12YWx1ZSB7XFxuICAgIGNvbG9yOiAjMDAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zdGF0dXMtYmFyLWNlbnRlciB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbmFtZS12YWx1ZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICAgIG1hcmdpbi1yaWdodDogNHB4O1xcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1kZXRhaWxzLXJvdyB7XFxuICAgIHBhZGRpbmc6IDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW92ZXJsYXktbG9hZGluZy13cmFwcGVyIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1vdmVybGF5LWxvYWRpbmctY2VudGVyIHtcXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAgIHBhZGRpbmc6IDRweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2lkZS1iYXIge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2Y3O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMge1xcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xcbiAgICAgIHdpZHRoOiAyMHB4O1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgLmFnLXNpZGUtYnV0dG9uIGJ1dHRvbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGJvcmRlcjogMDtcXG4gICAgICAgIGNvbG9yOiAjMDAwO1xcbiAgICAgICAgcGFkZGluZzogOHB4IDAgOHB4IDA7XFxuICAgICAgICB3aWR0aDogMTAwJTtcXG4gICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgIG1pbi1oZWlnaHQ6IDcycHg7XFxuICAgICAgICBib3JkZXItd2lkdGg6IDFweCAwIDFweCAwO1xcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teDogY2VudGVyO1xcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgLmFnLXNlbGVjdGVkIGJ1dHRvbiB7XFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2Y3O1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFweDtcXG4gICAgICAgIGJvcmRlci1jb2xvcjogI0JEQzNDNzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1zaWRlLWJhciAuYWctcGFuZWwtY29udGFpbmVyIHtcXG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNpZGUtYmFyLmZ1bGwtd2lkdGggLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXNpZGUtYmFyIC5hZy1jb2x1bW4tZHJvcCB7XFxuICAgICAgbWluLWhlaWdodDogNTBweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcHJpbWFyeS1jb2xzLWZpbHRlci13cmFwcGVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbXBvbmVudCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XFxuICAgIHBhZGRpbmc6IDBweDtcXG4gICAgYm9yZGVyOiAwIHNvbGlkICNjYmQwZDM7XFxuICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jb21wb25lbnQuYWctZGlzYWJsZWQgPiAuYWctZ3JvdXAtY29tcG9uZW50LWxhYmVsIC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUsIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbXBvbmVudC5hZy1kaXNhYmxlZCA+IC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgICBvcGFjaXR5OiAwLjU7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllZWVmO1xcbiAgICAgIGhlaWdodDogMTZweDtcXG4gICAgICBmb250LXNpemU6IDEycHg7XFxuICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIiwgUm9ib3RvLCBPeHlnZW4tU2FucywgVWJ1bnR1LCBDYW50YXJlbGwsIFxcXCJIZWx2ZXRpY2EgTmV1ZVxcXCIsIHNhbnMtc2VyaWY7XFxuICAgICAgaGVpZ2h0OiAyNnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbXBvbmVudDpub3QoLmFnLWNvbGxhcHNpYmxlKSA+IGRpdiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29tcG9uZW50Om5vdCguYWctY29sbGFwc2libGUpID4gLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZS1iYXIge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICAgIHBhZGRpbmc6IDRweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWdyb3VwLWNvbXBvbmVudDpub3QoLmFnLWNvbGxhcHNpYmxlKSA+IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWNvbXBvbmVudC10b29sYmFyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmNWY1O1xcbiAgICAgIHBhZGRpbmc6IDRweDtcXG4gICAgICBib3JkZXI6IDAgc29saWQgI0JEQzNDNzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1jb21wb25lbnQgPiAuYWctZ3JvdXAtY29tcG9uZW50LWNvbnRhaW5lciB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgICBwYWRkaW5nOiA0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1pdGVtIHtcXG4gICAgICBtYXJnaW46IDJweCAwOyB9XFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1pdGVtIC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIHtcXG4gICAgICAgIGhlaWdodDogMThweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbGFiZWxlZCBsYWJlbCB7XFxuICAgIG1hcmdpbi1yaWdodDogNHB4O1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sYWJlbGVkLmFnLWxhYmVsLWFsaWduLXRvcCBsYWJlbCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDJweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctc2xpZGVyID4gLmFnLXdyYXBwZXIgPiBkaXY6bm90KDpmaXJzdC1vZi10eXBlKSwgLmFnLXRoZW1lLWJhbGhhbSAuYWctYW5nbGUtc2VsZWN0ID4gLmFnLXdyYXBwZXIgPiBkaXY6bm90KDpmaXJzdC1vZi10eXBlKSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1wYXJlbnQtY2lyY2xlIHtcXG4gICAgd2lkdGg6IDI0cHg7XFxuICAgIGhlaWdodDogMjRweDtcXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC45KTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC45KTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctYW5nbGUtc2VsZWN0IC5hZy1hbmdsZS1zZWxlY3QtZmllbGQgLmFnLWNoaWxkLWNpcmNsZSB7XFxuICAgIHRvcDogNHB4O1xcbiAgICBsZWZ0OiAxMnB4O1xcbiAgICB3aWR0aDogNnB4O1xcbiAgICBoZWlnaHQ6IDZweDtcXG4gICAgbWFyZ2luLWxlZnQ6IC0zcHg7XFxuICAgIG1hcmdpbi10b3A6IC00cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRjNGM0YzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9nZ2xlLWJ1dHRvbiAuYWctaW5wdXQtd3JhcHBlciB7XFxuICAgIGhlaWdodDogMTZweDtcXG4gICAgd2lkdGg6IDQwcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjN0Y4QzhEO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MDByZW07IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9nZ2xlLWJ1dHRvbiAuYWctaW5wdXQtd3JhcHBlciAuYWctaWNvbiB7XFxuICAgICAgd2lkdGg6IDE2cHg7XFxuICAgICAgaGVpZ2h0OiAxNnB4O1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3RjhDOEQ7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xcbiAgICAgIHJpZ2h0OiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9nZ2xlLWJ1dHRvbi5hZy1zZWxlY3RlZCAuYWctaW5wdXQtd3JhcHBlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDkxRUE7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9nZ2xlLWJ1dHRvbi5hZy1zZWxlY3RlZCAuYWctaW5wdXQtd3JhcHBlciAuYWctaWNvbiB7XFxuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XFxuICAgICAgcmlnaHQ6IC0xcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyID4gZGl2IHtcXG4gICAgICB3aWR0aDogMTZweDtcXG4gICAgICBoZWlnaHQ6IDE2cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGlja2VyID4gLmFnLXdyYXBwZXIgYnV0dG9uIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1waWNrZXIgPiAuYWctd3JhcHBlciBidXR0b246aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFQ0YwRjE7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWRpYWxvZy5hZy1jb2xvci1kaWFsb2cge1xcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIHtcXG4gICAgcGFkZGluZzogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1jb2xvciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tdG9vbHMge1xcbiAgICAgIHBhZGRpbmc6IDEwcHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXNhdCB7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20od2hpdGUpLCB0byhyZ2JhKDIwNCwgMTU0LCAxMjksIDApKSk7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSwgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXZhbCB7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbShibGFjayksIHRvKHJnYmEoMjA0LCAxNTQsIDEyOSwgMCkpKTtcXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCBibGFjaywgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWRyYWdnZXIge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XFxuICAgICAgaGVpZ2h0OiAxMnB4O1xcbiAgICAgIHdpZHRoOiAxMnB4O1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xcbiAgICAgIGJhY2tncm91bmQ6IGJsYWNrO1xcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcXG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWh1ZS1iYWNrZ3JvdW5kIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWFscGhhLWJhY2tncm91bmQge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1wYW5lbCAuYWctaHVlLWFscGhhIHtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcbiAgICAgIGhlaWdodDogMTFweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXNsaWRlciB7XFxuICAgICAgbWFyZ2luLXRvcDogLTEycHg7XFxuICAgICAgd2lkdGg6IDEzcHg7XFxuICAgICAgaGVpZ2h0OiAxM3B4O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEzcHg7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4zNyk7XFxuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS10ZXh0LXZhbHVlIHtcXG4gICAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcXG4gICAgICBjb2xvcjogIzMzMzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tdGV4dC12YWx1ZTpmb2N1cyB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzBkNzdlNDtcXG4gICAgICBwYWRkaW5nOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sb3ItcGFuZWwgLmFnLXJlY2VudC1jb2xvcnMgPiBkaXYge1xcbiAgICAgIG1hcmdpbjogMCAzcHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2xvci1wYW5lbCAuYWctcmVjZW50LWNvbG9ycyA+IGRpdjpmaXJzdC1jaGlsZCB7XFxuICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbG9yLXBhbmVsIC5hZy1yZWNlbnQtY29sb3JzID4gZGl2Omxhc3QtY2hpbGQge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtLmFnLXBvcHVwID4gZGl2Om5vdCguYWctdG9vbHRpcC1jdXN0b20pIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDVweCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhbmVsIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gICAgLmFnLWRyYWdnaW5nLXJhbmdlLWhhbmRsZSAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbC5hZy1kaWFsb2csIC5hZy1kcmFnZ2luZy1maWxsLWhhbmRsZSAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbC5hZy1kaWFsb2cge1xcbiAgICAgIG9wYWNpdHk6IDAuNztcXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2Y3O1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkY2RlO1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgICAgIGhlaWdodDogMzJweDtcXG4gICAgICBmb250LXNpemU6IDEycHg7XFxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcXFwiU2Vnb2UgVUlcXFwiLCBSb2JvdG8sIE94eWdlbi1TYW5zLCBVYnVudHUsIENhbnRhcmVsbCwgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XFxuICAgICAgcGFkZGluZzogNXB4IDEwcHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uIHtcXG4gICAgICAgIGhlaWdodDogMjBweDtcXG4gICAgICAgIHdpZHRoOiAyMHB4O1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuICAgICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uIC5hZy1pY29uIHtcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbjpob3ZlciwgLmFnLXRoZW1lLWJhbGhhbSAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbi5hZy1oYXMtcG9wdXAge1xcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDdlMGUyOyB9XFxuICAgICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1wYW5lbCAuYWctbWVzc2FnZS1ib3ggLmFnLW1lc3NhZ2UtYm94LWJ1dHRvbi1iYXIge1xcbiAgICAgIGhlaWdodDogMzBweDtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2Y3O1xcbiAgICAgIHBhZGRpbmc6IDJweDsgfVxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXBhbmVsIC5hZy1tZXNzYWdlLWJveCAuYWctbWVzc2FnZS1ib3gtYnV0dG9uLWJhciBidXR0b24ge1xcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy10b29sdGlwIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NiZDBkMztcXG4gICAgY29sb3I6ICMwMDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgcGFkZGluZzogNXB4O1xcbiAgICBib3JkZXItd2lkdGg6IDFweDtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjY2JkMGQzO1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXM7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbHRpcC5hZy10b29sdGlwLWhpZGluZyB7XFxuICAgICAgb3BhY2l0eTogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hhcnQgLmFnLWNoYXJ0LW1lbnUge1xcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICAgIGJhY2tncm91bmQ6IHdoaXRlOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoYXJ0IC5hZy1jaGFydC1tZW51ID4gc3Bhbjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIge1xcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgICBtYXJnaW46IDVweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWw6bnRoLWNoaWxkKDJuICsgMik6bm90KDpsYXN0LWNoaWxkKSB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbDpudGgtY2hpbGQoM24gKyAxKSB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWw6bnRoLWNoaWxkKDNuKSB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsLmFnLXNlbGVjdGVkIHtcXG4gICAgICBib3JkZXItY29sb3I6ICMwMDkxRUE7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctbmF2LWNhcmQtc2VsZWN0b3IgLmFnLW5hdi1jYXJkLWl0ZW0ge1xcbiAgICBjb2xvcjogIzAwMDtcXG4gICAgZm9udC1zaXplOiAxMHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctbmF2LWNhcmQtc2VsZWN0b3IgLmFnLW5hdi1jYXJkLWl0ZW0uYWctc2VsZWN0ZWQge1xcbiAgICAgIGNvbG9yOiAjMDA5MUVBOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtZm9ybWF0IC5hZy1jaGFydC1mb3JtYXQtd3JhcHBlciAuYWctZ3JvdXAtaXRlbSB7XFxuICAgIG1hcmdpbjogNC44cHggMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbiB7XFxuICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiYWdHcmlkQmFsaGFtXFxcIjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgY29sb3I6ICM3RjhDOEQ7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XFxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tYWdncmVnYXRpb246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1hcnJvd3M6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAxXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1hc2M6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jYW5jZWw6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAzXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGFydDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDRcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2hlY2tib3gtdW5jaGVja2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwN1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY29sb3ItcGlja2VyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwOFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY29sdW1uOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwOVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY29sdW1uczpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MEFcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNvbnRyYWN0ZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBCXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jb3B5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY3Jvc3M6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBEXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jdXQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBFXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1kYXRhOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tZGVzYzpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTBcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWV4cGFuZGVkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tZXllLXNsYXNoOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tZXllOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxM1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tZmlsdGVyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxNFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tZmlyc3Q6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1ncmlwOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxNlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tZ3JvdXA6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxOFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tbGFzdDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTlcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWxlZnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1sb2FkaW5nOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQlxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tbWF4aW1pemU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFDXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1tZW51OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tbWluaW1pemU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFFXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1taW51czpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MUZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLW5leHQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1ub25lOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tbm90LWFsbG93ZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1wYXN0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXBpbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjRcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXBpdm90OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyNVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tcGx1czpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXByZXZpb3VzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyN1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tcmFkaW8tYnV0dG9uLW9mZjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjhcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjlcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXJpZ2h0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tc2F2ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkJcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXNtYWxsLWRvd246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJDXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1zbWFsbC1sZWZ0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tc21hbGwtcmlnaHQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJFXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1zbWFsbC11cDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXRpY2s6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi10cmVlLWNsb3NlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzFcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXRyZWUtaW5kZXRlcm1pbmF0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzJcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLXRyZWUtb3BlbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzNcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbiAgICBsaW5lLWhlaWdodDogMTZweDtcXG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZC1yZWFkb25seSxcXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLXJlYWRvbmx5LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZC1yZWFkb25seSB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIG9wYWNpdHk6IDAuMzg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZCB7XFxuICAgIGNvbG9yOiAjMDA5MUVBOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZC1yZWFkb25seTpiZWZvcmUge1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNVxcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tY2hlY2tib3gtaW5kZXRlcm1pbmF0ZS1yZWFkb25seTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDZcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZC1yZWFkb25seTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDdcXFwiOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ncm91cC1leHBhbmRlZCAuYWctaWNvbi1jb250cmFjdGVkOmVtcHR5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkzM1xcXCI7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWljb24tcm93LWRyYWc6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmlnaHQtYXJyb3c6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaWNvbi1yYWRpby1idXR0b24tb24ge1xcbiAgICBjb2xvcjogIzAwOTFFQTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcmlnaHQtYXJyb3c6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1udW1lcmljLWNlbGwge1xcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jaGVja2JveDpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXJhZGlvLWJ1dHRvbjpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvZ2dsZS1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLXBpdm90LW1vZGUtcGFuZWwgLmFnLXBpdm90LW1vZGUtc2VsZWN0IHtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWVtcHR5LW1lc3NhZ2Uge1xcbiAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLWdyb3VwLWljb25zIHtcXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLmFnLXRvb2xwYW5lbC1hZGQtZ3JvdXAtaW5kZW50IHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1oZWFkZXItc2VsZWN0LWFsbCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWV4cGFuZGVkLFxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94ICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1jaGVja2JveCArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWV4cGFuZGVkICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQgKyAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQgKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSkge1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGluaXRpYWw7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCArIC5hZy1ncm91cC1jaGVja2JveCxcXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94ICsgLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctZ3JvdXAtZXhwYW5kZWQgKyAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkICsgLmFnLWdyb3VwLWNoZWNrYm94IHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctZ3JvdXAtY2hpbGQtY291bnQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiB1bnNldDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwge1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7IH1cXG4gICAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tZ3JvdXAsXFxuICAgICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXBpdm90IHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbiB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2V0LWZpbHRlci1pdGVtID4gZGl2LCAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNldC1maWx0ZXItaXRlbSA+IHNwYW4ge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctaGVhZGVyIC5hZy1oZWFkZXItY2VsbC1yZXNpemU6OmFmdGVyIHtcXG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNCREMzQzc7XFxuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctc2lkZS1iYXIgLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1ydGwgLmFnLXNpZGUtYmFyLmZ1bGwtd2lkdGggLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLnNhc3MtdmFyaWFibGVzOjphZnRlciB7XFxuICAgIGNvbnRlbnQ6ICd7IFxcXCJhdXRvU2l6ZVBhZGRpbmdcXFwiOiBcXFwiMTJweFxcXCIsIFxcXCJoZWFkZXJIZWlnaHRcXFwiOiBcXFwiMzJweFxcXCIsIFxcXCJncm91cFBhZGRpbmdTaXplXFxcIjogXFxcIjI4cHhcXFwiLCBcXFwiZm9vdGVyUGFkZGluZ0FkZGl0aW9uXFxcIjogXFxcIjE2cHhcXFwiLCBcXFwidmlydHVhbEl0ZW1IZWlnaHRcXFwiOiBcXFwiMjhweFxcXCIsIFxcXCJhZ2dGdW5jUG9wdXBIZWlnaHRcXFwiOiBcXFwiOThweFxcXCIsIFxcXCJjaGVja2JveEluZGVudFdpZHRoXFxcIjogXFxcIjIwcHhcXFwiLCBcXFwibGVhZk5vZGVQYWRkaW5nXFxcIjogXFxcIjEycHhcXFwiLCBcXFwicm93SGVpZ2h0XFxcIjogXFxcIjI4cHhcXFwiLCBcXFwiZ3JpZFNpemVcXFwiOiBcXFwiNHB4XFxcIiwgXFxcImljb25TaXplXFxcIjogXFxcIjE2cHhcXFwiIH0nO1xcbiAgICBkaXNwbGF5OiBub25lOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLWhpZ2hsaWdodCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDkxRUEgIWltcG9ydGFudDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctaGVhZGVyLWNlbGwtcmVzaXplOjphZnRlciB7XFxuICAgIGhlaWdodDogODAlO1xcbiAgICBtYXJnaW4tdG9wOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1jZWxsOjphZnRlcixcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWhlYWRlci1ncm91cC1jZWxsOjphZnRlciB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMTg5LCAxOTUsIDE5OSwgMC41KTtcXG4gICAgY29udGVudDogXFxcIiBcXFwiO1xcbiAgICBoZWlnaHQ6IDE2cHg7XFxuICAgIG1hcmdpbi10b3A6IDhweDtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB0ZXh0LWluZGVudDogLTIwMDBweDtcXG4gICAgdG9wOiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1sdHIgLmFnLWhlYWRlci1jZWxsOjphZnRlcixcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWx0ciAuYWctaGVhZGVyLWdyb3VwLWNlbGw6OmFmdGVyIHtcXG4gICAgcmlnaHQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctaGVhZGVyLWNlbGw6OmFmdGVyLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDo6YWZ0ZXIge1xcbiAgICBsZWZ0OiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsLmFnLWNvbHVtbi1kcm9wIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI0JEQzNDNztcXG4gICAgYm9yZGVyLWJvdHRvbTogMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbHRyIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsLmFnLWNvbHVtbi1kcm9wLmFnLXdpZHRoLWhhbGY6Zmlyc3QtY2hpbGQge1xcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctY29sdW1uLWRyb3AtaG9yaXpvbnRhbC5hZy1jb2x1bW4tZHJvcC5hZy13aWR0aC1oYWxmOmZpcnN0LWNoaWxkIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJvdyB7XFxuICAgIGJvcmRlci1jb2xvcjogI2Q5ZGNkZTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm93LXNlbGVjdGVkIHtcXG4gICAgYm9yZGVyLWNvbG9yOiAjYjdlNGZmOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWluLWhlaWdodDogMjRweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbiB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xcbiAgICAgIG1hcmdpbi10b3A6IDJweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbjpob3ZlciB7XFxuICAgICAgb3BhY2l0eTogMTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY29sdW1uLWRyb3AtdmVydGljYWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwge1xcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyb3AtY2VsbC10ZXh0IHtcXG4gICAgICBtYXJnaW4tbGVmdDogOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjdmNztcXG4gICAgaGVpZ2h0OiAzMnB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtdGV4dCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcm9vdCB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNCREMzQzc7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAsXFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIHtcXG4gICAgICBtaW4taGVpZ2h0OiAyMHB4OyB9XFxuICAgIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3Age1xcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XFxuICAgICAgcGFkZGluZy10b3A6IDhweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcnRsIC5hZy1zaWRlLWJhcixcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctaWNvbi1leHBhbmRlZCxcXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXJ0bCAuYWctaWNvbi1jb250cmFjdGVkIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLW1lbnUtb3B0aW9uIHtcXG4gICAgaGVpZ2h0OiAyOHB4OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAsXFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4ge1xcbiAgICBoZWlnaHQ6IDIwcHg7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1oZWFkZXIge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgICAuYWctdGhlbWUtYmFsaGFtIC5hZy10YWItaGVhZGVyIC5hZy10YWIge1xcbiAgICAgIG1hcmdpbi1ib3R0b206IC0ycHg7IH1cXG4gICAgLmFnLXRoZW1lLWJhbGhhbSAuYWctdGFiLWhlYWRlciAuYWctdGFiLmFnLXRhYi1zZWxlY3RlZCB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLXRhYi1ib2R5LFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctcG9wdXAtZWRpdG9yLFxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctbWVudSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbiAgICBjb2xvcjogIzAwMDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC5hZy1jZWxsLWlubGluZS1lZGl0aW5nIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcbiAgICBwYWRkaW5nOiAwOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1kZXRhaWxzLXJvdyB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1vdmVybGF5LWxvYWRpbmctd3JhcHBlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctb3ZlcmxheS1sb2FkaW5nLWNlbnRlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRDM0M3O1xcbiAgICBjb2xvcjogIzAwMDtcXG4gICAgcGFkZGluZzogMTZweDsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC0xOm5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE0NSwgMjM0LCAwLjMpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLTI6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTQ1LCAyMzQsIDAuNCk7IH1cXG4gIC5hZy10aGVtZS1iYWxoYW0gLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMzpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxNDUsIDIzNCwgMC41KTsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctY2VsbC1yYW5nZS1zZWxlY3RlZC00Om5vdCguYWctY2VsbC1mb2N1cykge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDE0NSwgMjM0LCAwLjYpOyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1yaWNoLXNlbGVjdC12YWx1ZSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQkRDM0M3OyB9XFxuICAuYWctdGhlbWUtYmFsaGFtIC5hZy1maWx0ZXItYXBwbHktcGFuZWwge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0JEQzNDNzsgfVxcbiAgLmFnLXRoZW1lLWJhbGhhbSAuYWctZmlsdGVyLXRvb2xwYW5lbC1ib2R5IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IH1cXG5cXG5cIiIsIm1vZHVsZS5leHBvcnRzID0gXCJAY2hhcnNldCBcXFwiVVRGLThcXFwiO1xcbkBmb250LWZhY2Uge1xcbiAgZm9udC1mYW1pbHk6IFxcXCJhZ0dyaWRNYXRlcmlhbFxcXCI7XFxuICBzcmM6IHVybChcXFwiZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtdHRmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdUMU12TWc4U0JsTUFBQUM4QUFBQVlHTnRZWEFYVnRLNkFBQUJIQUFBQUZSbllYTndBQUFBRUFBQUFYQUFBQUFJWjJ4NVp2Wk5CQmdBQUFGNEFBQVJXR2hsWVdRVmFXTjNBQUFTMEFBQUFEWm9hR1ZoQjRrRCtRQUFFd2dBQUFBa2FHMTBlTllBSnA4QUFCTXNBQUFBNEd4dlkyRjlTSGpNQUFBVURBQUFBSEp0WVhod0FFSUFXUUFBRklBQUFBQWdibUZ0WlZtOHEzRUFBQlNnQUFBQnFuQnZjM1FBQXdBQUFBQVdUQUFBQUNBQUF3UDJBWkFBQlFBQUFwa0N6QUFBQUk4Q21RTE1BQUFCNndBekFRa0FBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBRHBNd1BBLzhBQVFBUEFBRUFBQUFBQkFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBREFBQUFBd0FBQUJ3QUFRQURBQUFBSEFBREFBRUFBQUFjQUFRQU9BQUFBQW9BQ0FBQ0FBSUFBUUFnNlRQLy9mLy9BQUFBQUFBZzZRRC8vZi8vQUFILzR4Y0VBQU1BQVFBQUFBQUFBQUFBQUFBQUFRQUIvLzhBRHdBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBRUFBQUFBQUFBQUFBQUNBQUEzT1FFQUFBQUFBUUFBQUFBQUFBQUFBQUlBQURjNUFRQUFBQUFCQVFBQWF3TUFBeFVBQ3dBQUFTRVZDUUVWSVRVaE55Y2hBd0QrQUFFVi91c0NBUDdWMXRZQkt3TVZWZjhBL3dCVmdOWFZBQUFBQUFRQU9mLzVBOGNEaHdBSUFBOEFGd0FmQUFBQk16VXpKd2N6RlRFSEl6VUhGelV6SlNjVkl4VXpGVGNGSXhVakZ6Y2pOUUdycW5MSHgzSTVjc2ZIY2dKVngzSnl4LzZPcW5MSHgzSUNUbkxIeDNJNWNzZkhjbFhIY3FweXg0NXl4OGR5QUFBQkFLc0Fhd05WQXhVQUNRQUFFeGMzRVRNUkZ6Y0pBYXM4N2xidVBQNnIvcXNCd0R6dS9ma0NCKzg5QVZYK3F3QUNBRlVBRlFPckEyc0FIQUFvQUFBQklnY09BUWNHRlJRWEhnRVhGak15Tno0Qk56WTFOQ2N1QVNjbUl4TUhKd2NuTnljM0Z6Y1hCd0lBV0U1T2RDRWlJaUYwVGs1WVdFNU9kQ0VpSWlGMFRrNVkxVHlabVR5Wm1UeVptVHlaQTJzaUlYUk9UbGhZVGs1MElTSWlJWFJPVGxoWVRrNTBJU0w5dkR5Wm1UeVptVHlabVR5WkFBQUFBd0RWQUpVREt3THJBQVFBQ1FBTkFBQVRNeEVqRVRjekVTTVJFek1SSTlXQWdPOTRlTzk0ZUFJMy9sNEJvclQ5cWdKVy9xci9BQUFDQUlBQVFBT0FBMEFBRHdBV0FBQUJJU0lHRlJFVUZqTWhNalkxRVRRbUFTYzNGd0VYQVFNci9hb2pNaklqQWxZak1qTCtYZFk4bWdGRVBQNkFBMEF5SS8ycUl6SXlJd0pXSXpMOXE5VThtUUZFUFA2QUFBQUFBZ0NBQUVBRGdBTkFBQThBRXdBQUFTRWlCaFVSRkJZeklUSTJOUkUwSmdNaE5TRURLLzJxSXpJeUl3SldJekl5ZWY1V0Fhb0RRRElqL2Fvak1qSWpBbFlqTXY1VlZnQUFBZ0NBQUVBRGdBTkFBQU1BRXdBQUFSRWhFU1VoSWdZVkVSUVdNeUV5TmpVUk5DWURLLzJxQWxiOXFpTXlNaU1DVmlNeU1nTHIvYW9DVmxVeUkvMnFJekl5SXdKV0l6SUFBd0J6QUVnRGpRTTRBQVlBQ2dBV0FBQUpBUWNYQ1FJaE54Y2hCVEFHRlJRV016STJOVFFtQXYzK1ZUeG0vdmNCUlFGRi9lL016UDVvQWt4Vk1pTWpNbFVCalFHclBHYis5LzY3QVVYTnpVQnJLaU15TWlNcWF3QUFBQUFDQUtzQWF3RlZBeFVBQXdBSEFBQWxJeEV6TlJVak5RRlZxcXFxYXdIL3ExZFhBQUFKQUtzQWF3TlZBeFVBQXdBSUFBd0FFQUFWQUJrQUhnQWlBQ1lBQUJNek5TTUJNelVqRlNFek5TTTFNelVqQlRNMUl4VUJGVE0xQlRNMUl4VUJNelVqRVRNMUk2dXFxZ0VBcXFyL0FLcXFxcW9CQUtxcUFRQ3EvbGFxcWdFQXFxcXFxZ0pycXYxV3FxcXFWcXFxcXFvQnFxcXFxcXFxL3dDcS9sYXFBQUFBQUFFQllnREFBcDRDd0FBR0FBQUJKd2tCTnljM0FwNDgvd0FCQUR6RHd3S0VQUDhBL3dBOHhNUUFBQUFBQXdCci8rc0RsUU9WQUFnQUdRQWRBQUFCSVNJR0ZSRXpFU0VYSVNJR0ZSRVVGak1oTWpZMUVUUW1JeEVoRVNFQ3dQNEFJekpWQWdDQS9pc2tNaklrQWRVak1qSWovaXNCMVFPVk1pUDlxd0pWVlRJay9hc2pNaklqQWxVa012MVZBbFVBQUFFQTFRQ1ZBeXNDNndBTUFBQUJKd2NuQnhjSEZ6Y1hOeWMzQXlzODcrODg3Kzg4Nys4ODcrOENyenp2N3p6djd6enY3enp2N3dBQUJRQlZBQlVEcXdOckFDVUFNZ0EvQUVzQVVRQUFBVDRCTlRRbUl5SUdGUlFXTXpJMk54Y0hMZ0VqSWdZVkZCWXpNalkxTkNZbk53RXpOUUVISWlZMU5EWXpNaFlWRkFZakVTSW1OVFEyTXpJV0ZSUUdJd0VpSmpVME5qTXlGaFVVQmdrQkZ3RTFJd0diQ0Foa1IwZGtaRWNUSXhCbFpSQWpFMGRrWkVkSFpBZ0laUUVyZ1Azd215TXlNaU1qTWpJakl6SXlJeU15TWlNQkFBa01EQWtKREF3Qkl2OEFWUUVyZ0FKNkVDTVRSMlJrUjBka0NBaGxaUWdJWkVkSFpHUkhFeU1RWmY3Vkt3SVBEekVrSkRFeEpDUXgvZ0F4SkNReE1TUWtNUUZBREFrSkRBd0pDUXdCbGY4QVZRRXFLd0FBQndDWEFMOERhUUxCQUF3QUVBQWRBQ0VBTFFBNkFENEFBQk1pQmhVVUZqTXlOalUwSmlNRk5TRVZBeUlHRlJRV016STJOVFFtSXdVaE5TRUZNaFlWRkFZaklpWTFORFkzTWhZVkZBWWpJaVkxTkRZekJTRTFJY0lTR1JrU0Voa1pFZ0tuL2RkK0Voa1pFaElaR1JJQjB2NnNBVlQrTGcwVEV3ME5FeE1ORWhrWkVoSVpHUklDcC8zWEFpa0JGUmtTRVJvYUVSSVpWVlpXQVNzWkVoSVpHUklTR1ZWVkN4TU5EUk1URFEwVDRSb1JFaGtaRWhFYVZsVUFBQUFCQUtzQWF3TlZBeFVBQ1FBQUFTY0hFU01SSndjSkFRTlZQTzVXN2p3QlZRRlZBY0E4N2dJSC9mbnZQZjZyQVZVQUFBQUFBUUZpQU1BQ25nTEFBQVlBQUFFSEZ3Y1hDUUVCbmp6RHd6d0JBUDhBQXNBOHhNUThBUUFCQUFBQUFBQUJBSk1BeHdOdEFya0FSd0FBQVM0Qkl5SUdCeWMrQVRNeUZ4NEJGeFlYRGdFSEp6NEJOeU1PQVFjbkl4Y09BU01pSmljakhnRXpNalkzRnc0Qkl5SW5MZ0VuSmljK0FUY1hEZ0VITXljK0FUTXlGaGN6QXFNS1hEMGlQUlpQSzJNMlBqazVYeVFsRlJoWU9VOFNHQVZFQkEwSUsxQkdCQWtGSWpVSlJBcGNQaE1qRUVnaFJ5WStPVGxmSkNVVkV6NG9YZ1VHQW9ZcERTUVZJalFKUkFIZE9rOGFGMDhaSEJNU1FpNHROejVsSVU4U0xSb01GUWtxUmdFQktSODZVQWdJU0EwT0V4SkNMaTAzTUZRZ1hnb1VDeW9ORUNnZkFBQURBSk1BeHdOdEFya0FIQUFwQURVQUFBRWlCdzRCQndZSEZoY2VBUmNXTXpJM1BnRTNOamNtSnk0Qkp5WWpFU0ltTlRRMk16SVdGUlFHSXhFaUJoVVVGak15TmpVMEpnSUFQams1WHlRbEZSVWxKRjg1T1Q0K09UbGZKQ1VWRlNVa1h6azVQa1ZoWVVWRllXRkZLVHM3S1NrN093SzVFeEpDTGkwM055MHVRaElURXhKQ0xpMDNOeTB1UWhJVC9tRmhSVVZoWVVWRllRRUtPeWtwT3pzcEtUc0FBQU1BZ0FEQUE0QUN3QUFFQUFnQURBQUFKVE0xSXhVQkZTRTFBU0UxSVFHcnFxcisxUU1BL1lBQ0FQNEF3RlZWQWdCVlZmN1ZWZ0FBQWdEM0FNQURDUUxBQUFVQUNnQUFKU2MzSndrQkFUTVJJeEVEQ2NURVBQOEFBUUQrS2xaVy9NVEVQUDhBL3dBQ0FQNEFBZ0FBQUFBQ0FLc0JRQU5WQWtBQUF3QUlBQUFCSVJVaEJTRTFJUlVEVmYxV0FxcjlWZ0txL1ZZQ1FGV3JWVlVBQUFZQWpnQ2tBM0lDM0FBSEFBd0FFd0FYQUJzQUlRQUFBU0VVQmlzQk5URWxGU0UxSVNjeUZoVWhOU0VCSXpVek5TTTFNeWNqTkRZekZRSlZBUjFETDZzQkhmN2pBUjF5TDBQK0FBR08vdVJ5Y25KeTVISkRMd0VWTDBKeDVISnk0MEl2Y2YzSWNYSnljaTlDY1FBQUFBQUNBSk1BeHdOdEFya0FIQUFwQUFBQklnY09BUWNHQnhZWEhnRVhGak15Tno0Qk56WTNKaWN1QVNjbUl4RWlKalUwTmpNeUZoVVVCaU1DQUQ0NU9WOGtKUlVWSlNSZk9UaytQams1WHlRbEZSVWxKRjg1T1Q1RllXRkZSV0ZoUlFLNUV4SkNMaTAzTnkwdVFoSVRFeEpDTGkwM055MHVRaElUL21GaFJVVmhZVVZGWVFBQ0FQY0F3QU1KQXNBQUJnQUtBQUFURndjWENRRUhKVE1SSS9mRXhEd0JBUDhBUEFHOFZsWUNoTVRFUEFFQUFRQThQUDRBQUFBQUFBRUFxd0JyQTFVREZRQUpBQUFCSVRjbkNRRTNKeUUxQTFYOStlODkvcXNCVlR6dUFnY0I2KzQ4L3F2K3F6enVWZ0FBQUFBQ0FPUUFwQU1jQXR3QUhBQW1BQUFCTnhjSE14VWpIZ0VYQnljVkl6VUhKemNqTlRNbk54NEJGelV6RlFjek56VW5Jd2NWSGdFQ09XaFFhSk9UR2pRYVVHaHlhRkJvazVOb1VCbzBHbkpvWGtORFhrTVJJUUpKYUZCb2NobzBHbEJvazVOb1VHaHlhRkFhTkJxVGsvdERYa05EWGhFaEFBQUJBSUFDNndPQUEwQUFBd0FBRXlFVklZQURBUDBBQTBCVkFBQUFBd0NBQU1BRGdBTEFBQU1BQndBTEFBQTNJVFVoTlNFMUlUVVZJVFdBQXdEOUFBTUEvUUFEQU1CVmdGYlZWVlVBQVFFQUFFQURBQUNWQUFNQUFDVWhGU0VCQUFJQS9nQ1ZWUUFBQUFFQTFRR1ZBeXNCNndBRUFBQVRJUlVoTmRVQ1Z2MnFBZXRXVmdBQkFXSUF3QUtlQXNBQUJnQUFBUWNYQnhjSkFRR2VQTVBEUEFFQS93QUN3RHpFeER3QkFBRUFBQUFBQUFNQWdBREFBNEFDd0FBREFBY0FDd0FBTnlFMUlSRVZJVFVCSVRVaGdBSUEvZ0FEQVAwQUF3RDlBTUJWQWF0VlZmN1ZWZ0FEQUZVQUZRT3JBMnNBSEFBckFEb0FBQUVpQnc0QkJ3WVZGQmNlQVJjV016STNQZ0UzTmpVMEp5NEJKeVlqQVRRM1BnRTNOak15RmhjQkxnRTFBU0ltSndFZUFSVVVCdzRCQndZakFnQllUazUwSVNJaUlYUk9UbGhZVGs1MElTSWlJWFJPVGxqK3F4b2JYVDQrUnp0cksvNGlJaVlCVlR0ckt3SGVJaVlhRzEwK1BrY0RheUloZEU1T1dGaE9UblFoSWlJaGRFNU9XRmhPVG5RaEl2NVZSejQrWFJzYUppTCtJaXRyTy82ckppSUIzaXRyTzBjK1BsMGJHZ0FBQUFBREFJRC82d09BQTVVQUdBQWtBQ3dBQUFFakxnRWpJZ1lISXlJR0ZSRVVGak1oTWpZMUVUUW1JekVoTWhZVkZBWWpJaVkxTkRZQklSRXpGU0UxTXdNcnN3MUJLaXBCRGJNak1qSWpBbFlqTWpJai90VVNHUmtTRWhrWkFUMzlxbFlCcWxZRFFDVXdNQ1V5SS8xVkl6SXlJd0tySXpJWkVoRVpHUkVTR2YwQUFxdUFnQUFDQUswQWJ3TlRBeEVBQlFBU0FBQWxCeWMzSGdFVEFRY25CeGNISnpjWE55YzNBV09PS0k0S0ZNWUJOQjhlOXo1WTlsZzlleDRlL1k0b2pnb1VBZ3IrekI0ZWV6MVk5bGcrOXg0ZkFBQUFBQWtBT2YvNUE4Y0Rod0FQQUJNQUZ3QWdBQ1FBTGdBeUFEWUFPZ0FBQlNFaUpqVVJORFl6SVRJV0ZSRVVCZ0VqRlRNQklSRWhKUWNYQnljM0hnRVhKeU1WTXlVSEp3Y25OeDRCRnpFQkl4VXpKU01WTXpjakZUTURWZjFXTDBOREx3S3FMME5EL2RHcXFnSUEvamtCeC83Y1FrSXBhV2tLRlFyY3Fxb0IrQ2hCUWlocUdqVWEvZ2lxcWdFZDVPVGpxcW9IUXk4Q3FpOURReS85Vmk5REFSeXFBWTcrY3JOQ1FTaHBhZ29VQ3R1ck1TaEJRU2hwR2pVYUFaYXFxcXFxcWdBQUFBQUJBTlVBbFFNckF1c0FDd0FBQVNFUkl4RWhOU0VSTXhFaEF5di9BRmIvQUFFQVZnRUFBWlgvQUFFQVZnRUEvd0FBQUFBQUFRRmlBTUFDbmdMQUFBWUFBQUVuQ1FFM0p6Y0NuanovQUFFQVBNUERBb1E4L3dEL0FEekV4QUFBQUFBQ0FGVUFGUU9yQTJzQUhBQTVBQUFCSWdjT0FRY0dGUlFYSGdFWEZqTXlOejRCTnpZMU5DY3VBU2NtSXhFaUp5NEJKeVkxTkRjK0FUYzJNeklYSGdFWEZoVVVCdzRCQndZakFnQllUazUwSVNJaUlYUk9UbGhZVGs1MElTSWlJWFJPVGxoSFBqNWRHeG9hRzEwK1BrZEhQajVkR3hvYUcxMCtQa2NEYXlJaGRFNU9XRmhPVG5RaElpSWhkRTVPV0ZoT1RuUWhJdjBBR2h0ZFBqNUhSejQrWFJzYUdodGRQajVIUno0K1hSc2FBQU1BVlFBVkE2c0Rhd0FjQURrQVZnQUFBU0lIRGdFSEJoVVVGeDRCRnhZek1qYytBVGMyTlRRbkxnRW5KaU0xSWdjT0FRY0dGUlFYSGdFWEZqTXlOejRCTnpZMU5DY3VBU2NtSXhFaUp5NEJKeVkxTkRjK0FUYzJNeklYSGdFWEZoVVVCdzRCQndZakFnQXNKeWM2RVJBUUVUb25KeXdzSnljNkVSQVFFVG9uSnl4WVRrNTBJU0lpSVhST1RsaFlUazUwSVNJaUlYUk9UbGhIUGo1ZEd4b2FHMTArUGtkSFBqNWRHeG9hRzEwK1BrY0NsUkFST2ljbkxDd25Kem9SRUJBUk9pY25MQ3duSnpvUkVOWWlJWFJPVGxoWVRrNTBJU0lpSVhST1RsaFlUazUwSVNMOUFCb2JYVDQrUjBjK1BsMGJHaG9iWFQ0K1IwYytQbDBiR2dBQkFLc0Fhd05WQXhVQUNRQUFBUWNYSVJVaEJ4Y0pBUUlBUE83OStRSUg3andCVmY2ckF4VTg3bGJ1UEFGVkFWVUFBQUFBQWdDQUFFQURnQU5BQUE0QUdRQUFBUkVoRVNNUkZCWXpJVEkyTlJFakJUY1hCeWMzRnhFekVURURLLzJxVlRJakFsWWpNbFgvQUc0ODFkVThibFlCd1A3VkFTdisxU015TWlNQkt4MXVQTlhWUEc0Qm5mNWpBQUVCS3dGVkF0VUNLd0FEQUFBQkZ6Y2hBU3ZWMWY1V0FpdlcxZ0FCQVpVQTZ3SnJBcFVBQXdBQUFRY1hFUUpyMXRZQ2xkWFZBYW9BQVFHVkFPc0Nhd0tWQUFNQUFDVTNKeEVCbGRiVzY5WFYvbFlBQUFFQkt3RlZBdFVDS3dBREFBQUJOeGNoQVN2VjFmNVdBVlhXMWdBQkFJa0FvZ04zQXQ0QUJnQUFBU2NIRndFbkFRRjNzanp1QWdBOC9qd0JHN0k5N2dJQVBQNDlBQUFBQUFFQllnREFBcDRDd0FBR0FBQUJCeGNIRndrQkFaNDh3OE04QVFEL0FBTEFQTVRFUEFFQUFRQUFBQUFBQVFEVkFaVURLd0hyQUFRQUFCTWhGU0UxMVFKVy9hb0I2MVpXQUFFQkFBRWlBd0FDWGdBRkFBQUJCeWNIQ1FFQ3hNVEVQQUVBQVFBQ1hzUERQUDhBQVFBQUFBQUJBQUFBQVFBQWNGQnpFVjhQUFBVQUN3UUFBQUFBQU5sQmozMEFBQUFBMlVHUGZRQUEvK3NEeHdPVkFBQUFDQUFDQUFBQUFBQUFBQUVBQUFQQS84QUFBQVFBQUFBQUFBUEhBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQTRCQUFBQUFBQUFBQUFBQUFBQWdBQUFBUUFBUUFFQUFBNUJBQUFxd1FBQUZVRUFBRFZCQUFBZ0FRQUFJQUVBQUNBQkFBQWN3UUFBS3NFQUFDckJBQUJZZ1FBQUdzRUFBRFZCQUFBVlFRQUFKY0VBQUNyQkFBQllnUUFBSk1FQUFDVEJBQUFnQVFBQVBjRUFBQ3JCQUFBamdRQUFKTUVBQUQzQkFBQXF3UUFBT1FFQUFDQUJBQUFnQVFBQVFBRUFBRFZCQUFCWWdRQUFJQUVBQUJWQkFBQWdBUUFBSzBFQUFBNUJBQUExUVFBQVdJRUFBQlZCQUFBVlFRQUFLc0VBQUNBQkFBQkt3UUFBWlVFQUFHVkJBQUJLd1FBQUlrRUFBRmlCQUFBMVFRQUFRQUFBQUFBQUFvQUZBQWVBRG9BYkFDRUFNZ0E1QUVRQVRRQldBR0dBWmdCMkFIdUFpQUNQQUswQXhJRExBTkNBNjRFQUFRY0JEZ0VUZ1NHQk1nRTVBVCtCVG9GU0FWZ0JXNEZmQVdTQmF3R0RBWk9CbllHMkFieUJ3Z0hZQWZnQi9vSUpnZzBDRUlJVUFoZUNIUUlpZ2lZQ0t3QUFBQUJBQUFBT0FCWEFBa0FBQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQ3VBQUVBQUFBQUFBRUFDZ0FBQUFFQUFBQUFBQUlBQndCN0FBRUFBQUFBQUFNQUNnQS9BQUVBQUFBQUFBUUFDZ0NRQUFFQUFBQUFBQVVBQ3dBZUFBRUFBQUFBQUFZQUNnQmRBQUVBQUFBQUFBb0FHZ0N1QUFNQUFRUUpBQUVBRkFBS0FBTUFBUVFKQUFJQURnQ0NBQU1BQVFRSkFBTUFGQUJKQUFNQUFRUUpBQVFBRkFDYUFBTUFBUVFKQUFVQUZnQXBBQU1BQVFRSkFBWUFGQUJuQUFNQUFRUUpBQW9BTkFESVFXZE5ZWFJsY21saGJBQkJBR2NBVFFCaEFIUUFaUUJ5QUdrQVlRQnNWbVZ5YzJsdmJpQXhMakFBVmdCbEFISUFjd0JwQUc4QWJnQWdBREVBTGdBd1FXZE5ZWFJsY21saGJBQkJBR2NBVFFCaEFIUUFaUUJ5QUdrQVlRQnNRV2ROWVhSbGNtbGhiQUJCQUdjQVRRQmhBSFFBWlFCeUFHa0FZUUJzVW1WbmRXeGhjZ0JTQUdVQVp3QjFBR3dBWVFCeVFXZE5ZWFJsY21saGJBQkJBR2NBVFFCaEFIUUFaUUJ5QUdrQVlRQnNSbTl1ZENCblpXNWxjbUYwWldRZ1lua2dTV052VFc5dmJpNEFSZ0J2QUc0QWRBQWdBR2NBWlFCdUFHVUFjZ0JoQUhRQVpRQmtBQ0FBWWdCNUFDQUFTUUJqQUc4QVRRQnZBRzhBYmdBdUFBQUFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PVxcXCIpIGZvcm1hdChcXFwidHJ1ZXR5cGVcXFwiKTtcXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICBmb250LXN0eWxlOiBub3JtYWw7IH1cXG5cXG4uYWctdGhlbWUtbWF0ZXJpYWwge1xcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XFxuICBmb250LWZhbWlseTogXFxcIlJvYm90b1xcXCIsIHNhbnMtc2VyaWY7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgZm9udC1zaXplOiAxM3B4O1xcbiAgbGluZS1oZWlnaHQ6IDE7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdGFiLWhlYWRlciAuYWctdGFiLmFnLXRhYi1zZWxlY3RlZCB7XFxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjM2Y1MWI1OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgbGFiZWwge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgKiB7XFxuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAqOmZvY3VzLCAuYWctdGhlbWUtbWF0ZXJpYWwgKiAqOmJlZm9yZSwgLmFnLXRoZW1lLW1hdGVyaWFsICogKjphZnRlciB7XFxuICAgICAgb3V0bGluZTogbm9uZTtcXG4gICAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRhYiB7XFxuICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMiB7XFxuICAgIHBhZGRpbmctbGVmdDogNTJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDUycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zIHtcXG4gICAgcGFkZGluZy1yaWdodDogNzhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTI2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMjZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTA0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMDRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTY4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNjhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTMwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMzBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjEwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMTBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTU2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNiB7XFxuICAgIHBhZGRpbmctbGVmdDogMjUycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTYge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNTJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTgycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxODJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNyB7XFxuICAgIHBhZGRpbmctbGVmdDogMjk0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyOTRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMjA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtOCB7XFxuICAgIHBhZGRpbmctbGVmdDogMzM2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMzZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjM0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMzRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMzc4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNzhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI2MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDI2MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMCB7XFxuICAgIHBhZGRpbmctbGVmdDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEwIHtcXG4gICAgcGFkZGluZy1yaWdodDogNDIwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTExIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyODZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyODZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ2MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xMSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ2MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xMiB7XFxuICAgIHBhZGRpbmctbGVmdDogMzEycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMzEycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1MDRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MDRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMzOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMzOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xMyB7XFxuICAgIHBhZGRpbmctbGVmdDogNTQ2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTEzIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTQ2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAzNjRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNjRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU4OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU4OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xNSB7XFxuICAgIHBhZGRpbmctbGVmdDogMzkwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1yaWdodDogMzkwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA2MzBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MzBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTYge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQxNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xNiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQxNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xNiB7XFxuICAgIHBhZGRpbmctbGVmdDogNjcycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE2IHtcXG4gICAgcGFkZGluZy1yaWdodDogNjcycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTE3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA0NDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA0NDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDcxNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0xNyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDcxNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0xOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNDY4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1yaWdodDogNDY4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiA3NTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMTgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA3NTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMTkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQ5NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0xOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDQ5NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0xOSB7XFxuICAgIHBhZGRpbmctbGVmdDogNzk4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTE5IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzk4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1MjBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjAge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1MjBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjAge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDg0MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDg0MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yMSB7XFxuICAgIHBhZGRpbmctbGVmdDogNTQ2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1yaWdodDogNTQ2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA4ODJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4ODJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDU3MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0yMiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDU3MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC0yMiB7XFxuICAgIHBhZGRpbmctbGVmdDogOTI0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTIyIHtcXG4gICAgcGFkZGluZy1yaWdodDogOTI0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTIzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiA1OThweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtMjMge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA1OThweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMjMge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDk2NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC0yMyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDk2NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNCB7XFxuICAgIHBhZGRpbmctbGVmdDogNjI0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1yaWdodDogNjI0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTAwOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNSB7XFxuICAgIHBhZGRpbmctbGVmdDogNjUwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI1IHtcXG4gICAgcGFkZGluZy1yaWdodDogNjUwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDUwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI1IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTA1MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNiB7XFxuICAgIHBhZGRpbmctbGVmdDogNjc2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI2IHtcXG4gICAgcGFkZGluZy1yaWdodDogNjc2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDkycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI2IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTA5MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yNyB7XFxuICAgIHBhZGRpbmctbGVmdDogNzAycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzAycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTM0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTEzNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yOCB7XFxuICAgIHBhZGRpbmctbGVmdDogNzI4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI4IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzI4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTc2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI4IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTE3NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0yOSB7XFxuICAgIHBhZGRpbmctbGVmdDogNzU0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTI5IHtcXG4gICAgcGFkZGluZy1yaWdodDogNzU0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjE4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTI5IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTIxOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMCB7XFxuICAgIHBhZGRpbmctbGVmdDogNzgwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1yaWdodDogNzgwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjYwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMwIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTI2MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMSB7XFxuICAgIHBhZGRpbmctbGVmdDogODA2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMxIHtcXG4gICAgcGFkZGluZy1yaWdodDogODA2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMzAycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMxIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTMwMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMiB7XFxuICAgIHBhZGRpbmctbGVmdDogODMycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMyIHtcXG4gICAgcGFkZGluZy1yaWdodDogODMycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMyIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMzQ0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMyIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTM0NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zMyB7XFxuICAgIHBhZGRpbmctbGVmdDogODU4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1yaWdodDogODU4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMzg2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTMzIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTM4NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNCB7XFxuICAgIHBhZGRpbmctbGVmdDogODg0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM0IHtcXG4gICAgcGFkZGluZy1yaWdodDogODg0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNDI4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTQyOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNSB7XFxuICAgIHBhZGRpbmctbGVmdDogOTEwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM1IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTEwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM1IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNDcwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM1IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTQ3MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNiB7XFxuICAgIHBhZGRpbmctbGVmdDogOTM2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTM2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNTEycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM2IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTUxMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zNyB7XFxuICAgIHBhZGRpbmctbGVmdDogOTYycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTYycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNTU0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTU1NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zOCB7XFxuICAgIHBhZGRpbmctbGVmdDogOTg4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTM4IHtcXG4gICAgcGFkZGluZy1yaWdodDogOTg4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM4IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNTk2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTM4IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTU5NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC0zOSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTAxNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC0zOSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwMTRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzkge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE2MzhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtMzkge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNjM4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQwIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMDQwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQwIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTA0MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTY4MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE2ODBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDEge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEwNjZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDEge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMDY2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxNzIycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQxIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTcyMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00MiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTA5MnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00MiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEwOTJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDIge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE3NjRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDIge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNzY0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQzIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTE4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQzIHtcXG4gICAgcGFkZGluZy1yaWdodDogMTExOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctbGVmdDogMTgwNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00MyB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE4MDZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDExNDRweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDQge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMTQ0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxODQ4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ0IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTg0OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00NSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTE3MHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00NSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDExNzBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDUge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDE4OTBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxODkwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ2IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMTk2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ2IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTE5NnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctbGVmdDogMTkzMnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00NiB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDE5MzJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDcge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDEyMjJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2xwYW5lbC1pbmRlbnQtNDcge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMjIycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxOTc0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yb3ctZ3JvdXAtaW5kZW50LTQ3IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTk3NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctdG9vbHBhbmVsLWluZGVudC00OCB7XFxuICAgIHBhZGRpbmctbGVmdDogMTI0OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctdG9vbHBhbmVsLWluZGVudC00OCB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDEyNDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDgge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDIwMTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1pbmRlbnQtNDgge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMDE2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy10b29scGFuZWwtaW5kZW50LTQ5IHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMjc0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29scGFuZWwtaW5kZW50LTQ5IHtcXG4gICAgcGFkZGluZy1yaWdodDogMTI3NHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctcm93LWdyb3VwLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctbGVmdDogMjA1OHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LWdyb3VwLWluZGVudC00OSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDIwNThweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsIC5hZy1pY29uIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNoZWNrYm94LCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJhZGlvLWJ1dHRvbiwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b2dnbGUtYnV0dG9uIHtcXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGVja2JveCBsYWJlbCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yYWRpby1idXR0b24gbGFiZWwsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9nZ2xlLWJ1dHRvbiBsYWJlbCB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGVja2JveCBsYWJlbDplbXB0eSwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yYWRpby1idXR0b24gbGFiZWw6ZW1wdHksIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9nZ2xlLWJ1dHRvbiBsYWJlbDplbXB0eSB7XFxuICAgICAgICBtYXJnaW46IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGVja2JveDpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJhZGlvLWJ1dHRvbjpub3QoLmFnLWxhYmVsLWFsaWduLWxlZnQpIGxhYmVsLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvZ2dsZS1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1yb3ctZ3JvdXAtbGVhZi1pbmRlbnQge1xcbiAgICBtYXJnaW4tbGVmdDogNDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLWNlbGwge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLWNlbGw6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLWZpcnN0LXJpZ2h0LXBpbm5lZCB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sdHIgLmFnLXJvdy5hZy1jZWxsLWxhc3QtbGVmdC1waW5uZWQsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1jZWxsOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1sYXN0LWxlZnQtcGlubmVkIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXJvdy1ncm91cC1sZWFmLWluZGVudCB7XFxuICAgIG1hcmdpbi1yaWdodDogNDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNlbGwge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LmFnLWNlbGwtZmlyc3QtcmlnaHQtcGlubmVkLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY2VsbDpub3QoLmFnLWNlbGwtZm9jdXMpLmFnLWNlbGwtZmlyc3QtcmlnaHQtcGlubmVkIHtcXG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctcm93LmFnLWNlbGwtbGFzdC1sZWZ0LXBpbm5lZCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNlbGw6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLWxhc3QtbGVmdC1waW5uZWQge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXZhbHVlLWNoYW5nZS1kZWx0YSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEtdXAge1xcbiAgICBjb2xvcjogIzQzYTA0NzsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy12YWx1ZS1jaGFuZ2UtZGVsdGEtZG93biB7XFxuICAgIGNvbG9yOiAjZTUzOTM1OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXZhbHVlLWNoYW5nZS12YWx1ZSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXItcmFkaXVzOiAxcHg7XFxuICAgIHBhZGRpbmctbGVmdDogMXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcHg7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxcztcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxczsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy12YWx1ZS1jaGFuZ2UtdmFsdWUtaGlnaGxpZ2h0IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYWNjMTtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XFxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xczsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0Om5vdChbdHlwZV0pLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZWxcXFwiXSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0sXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XFxuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xcbiAgICBib3JkZXItd2lkdGg6IDA7XFxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKTpmb2N1cyxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXTpmb2N1cyxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOmZvY3VzLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl06Zm9jdXMsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06Zm9jdXMsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdOmZvY3VzIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzNmNTFiNTtcXG4gICAgICBvdXRsaW5lOiBub25lOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXQ6bm90KFt0eXBlXSk6Oi1tb3otcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl06Oi1tb3otcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6LW1vei1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRlbFxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZVxcXCJdOjotbW96LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXTo6LW1vei1wbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0Om5vdChbdHlwZV0pOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZWxcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXTotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKTo6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJudW1iZXJcXFwiXTo6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl06Oi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXTo6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwiZGF0ZXRpbWUtbG9jYWxcXFwiXTo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXQ6bm90KFt0eXBlXSk6OnBsYWNlaG9sZGVyLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdOjpwbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOjpwbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRlbFxcXCJdOjpwbGFjZWhvbGRlcixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXTo6cGxhY2Vob2xkZXIsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdOjpwbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0Om5vdChbdHlwZV0pOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGV4dFxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwibnVtYmVyXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJ0ZWxcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGV0aW1lLWxvY2FsXFxcIl06ZGlzYWJsZWQge1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dDpub3QoW3R5cGVdKTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcInRleHRcXFwiXTpkaXNhYmxlZCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcIm51bWJlclxcXCJdOmRpc2FibGVkLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgaW5wdXRbdHlwZT1cXFwidGVsXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl06ZGlzYWJsZWQsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJkYXRldGltZS1sb2NhbFxcXCJdOmRpc2FibGVkIHtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIGlucHV0W3R5cGU9XFxcImRhdGVcXFwiXSB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciBpbnB1dFt0eXBlPVxcXCJyYW5nZVxcXCJdIHtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XFxuICAgIGJvcmRlci13aWR0aDogMDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNlMmUyZTI7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhOmZvY3VzIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzNmNTFiNTtcXG4gICAgICBvdXRsaW5lOiBub25lOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaW5wdXQtd3JhcHBlciB0ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgdGV4dGFyZWE6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgdGV4dGFyZWE6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pbnB1dC13cmFwcGVyIHRleHRhcmVhOmRpc2FibGVkIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWlucHV0LXdyYXBwZXIgdGV4dGFyZWE6ZGlzYWJsZWQge1xcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiUm9ib3RvXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGlubmVkLXJpZ2h0LWhlYWRlciB7XFxuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1waW5uZWQtbGVmdC1oZWFkZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1yb3cge1xcbiAgICBib3JkZXI6IG5vbmU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcm93IHtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZTJlMmUyO1xcbiAgICBib3JkZXItd2lkdGg6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yb3c6bm90KC5hZy1yb3ctZmlyc3QpIHtcXG4gICAgICBib3JkZXItd2lkdGg6IDFweCAwIDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yb3cuYWctcm93LWxhc3Qge1xcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ob3Jpem9udGFsLWxlZnQtc3BhY2VyIHtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhvcml6b250YWwtbGVmdC1zcGFjZXIuYWctc2Nyb2xsZXItY29ybmVyIHtcXG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaG9yaXpvbnRhbC1yaWdodC1zcGFjZXIge1xcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ob3Jpem9udGFsLXJpZ2h0LXNwYWNlci5hZy1zY3JvbGxlci1jb3JuZXIge1xcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJvdy1ob3ZlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbnVtZXJpYy1jZWxsIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWNlbGwtbGFiZWwgLmFnLWhlYWRlci1pY29uIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgb3BhY2l0eTogMC44NzsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItY2VsbCxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWdyb3VwLWNlbGwge1xcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICBib3JkZXItY29sb3I6ICNlMmUyZTI7XFxuICAgIHBhZGRpbmctbGVmdDogMjRweDtcXG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcXG4gICAgYm9yZGVyLXdpZHRoOiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWNlbGwuYWctaGVhZGVyLWNlbGwtbW92aW5nLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1ncm91cC1jZWxsLmFnLWhlYWRlci1jZWxsLW1vdmluZyB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1jZWxsOm5vdCguYWctaGVhZGVyLWdyb3VwLWNlbGwtbm8tZ3JvdXApLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1ncm91cC1jZWxsOm5vdCguYWctaGVhZGVyLWdyb3VwLWNlbGwtbm8tZ3JvdXApIHtcXG4gICAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLXJvdzpmaXJzdC1jaGlsZCAuYWctaGVhZGVyLWNlbGwsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLXJvdzpmaXJzdC1jaGlsZCAuYWctaGVhZGVyLWdyb3VwLWNlbGwge1xcbiAgICBib3JkZXItdG9wLXdpZHRoOiAwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1ncm91cC1jZWxsOm5vdCguYWctY29sdW1uLXJlc2l6aW5nKSArIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpob3ZlciwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItZ3JvdXAtY2VsbDpub3QoLmFnLWNvbHVtbi1yZXNpemluZykgKyAuYWctaGVhZGVyLWdyb3VwLWNlbGwuYWctY29sdW1uLXJlc2l6aW5nLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItY2VsbDpub3QoLmFnLWNvbHVtbi1yZXNpemluZykgKyAuYWctaGVhZGVyLWNlbGw6aG92ZXIsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1jZWxsOm5vdCguYWctY29sdW1uLXJlc2l6aW5nKSArIC5hZy1oZWFkZXItY2VsbC5hZy1jb2x1bW4tcmVzaXppbmcsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1ncm91cC1jZWxsOmZpcnN0LW9mLXR5cGU6aG92ZXIsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1ncm91cC1jZWxsOmZpcnN0LW9mLXR5cGUuYWctY29sdW1uLXJlc2l6aW5nLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItY2VsbDpmaXJzdC1vZi10eXBlOmhvdmVyLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItY2VsbDpmaXJzdC1vZi10eXBlLmFnLWNvbHVtbi1yZXNpemluZyB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaGVhZGVyLWNlbGwtcmVzaXplIHtcXG4gICAgY3Vyc29yOiBjb2wtcmVzaXplOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1zZWxlY3QtYWxsIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwge1xcbiAgICBsaW5lLWhlaWdodDogNDZweDtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gICAgcGFkZGluZy1sZWZ0OiAyM3B4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyM3B4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJvdy1kcmFnIHtcXG4gICAgY3Vyc29yOiBtb3ZlO1xcbiAgICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcXG4gICAgY3Vyc29yOiBncmFiO1xcbiAgICBtaW4td2lkdGg6IDQycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcm93LWRyYWdnaW5nLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJvdy1kcmFnZ2luZyAuYWctcm93LWRyYWcge1xcbiAgICBjdXJzb3I6IG1vdmU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLWRyYWcge1xcbiAgICBjdXJzb3I6IG1vdmU7XFxuICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xcbiAgICBjdXJzb3I6IGdyYWI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcm93LWRyYWdnaW5nIHtcXG4gICAgb3BhY2l0eTogMC41OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzOm5vdCguYWctY2VsbC1yYW5nZS1zZWxlY3RlZCksXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctY2VsbC1mb2N1cy5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsLmFnLWNlbGwtcmFuZ2UtaGFuZGxlLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzOm5vdCguYWctY2VsbC1yYW5nZS1zZWxlY3RlZCksXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctaGFzLWZvY3VzIC5hZy1jZWxsLWZvY3VzLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY2VsbC1mb2N1cy5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsLmFnLWNlbGwtcmFuZ2UtaGFuZGxlIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzNmNTFiNTtcXG4gICAgb3V0bGluZTogaW5pdGlhbDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItY2VsbC1yZXNpemUge1xcbiAgICB3aWR0aDogMTZweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1tZW51IHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgIHBhZGRpbmc6IDhweDtcXG4gICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW1lbnUgLmFnLW1lbnUtbGlzdCB7XFxuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XFxuICAgICAgd2lkdGg6IDEwMCU7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1hY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1kaXNhYmxlZCB7XFxuICAgICAgb3BhY2l0eTogMC41OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbWVudSAuYWctbWVudS1vcHRpb24tdGV4dCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLWljb24ge1xcbiAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gICAgICBtaW4td2lkdGg6IDM0cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1tZW51IC5hZy1tZW51LW9wdGlvbi1zaG9ydGN1dCB7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbWVudSAuYWctbWVudS1zZXBhcmF0b3Ige1xcbiAgICAgIGhlaWdodDogMTZweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbWVudSAuYWctbWVudS1zZXBhcmF0b3IgPiBzcGFuIHtcXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcXFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyUyMHdpZHRoJTNEJzEnJTIwaGVpZ2h0JTNEJzE2cHgnJTIwdmlld0JveCUzRCcwJTIwMCUyMDElMjAxNnB4JyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclM0UlM0NsaW5lJTIweDElM0QnMCclMjB5MSUzRCc4cHgnJTIweDIlM0QnMSclMjB5MiUzRCc4cHgnJTIwc3Ryb2tlLXdpZHRoJTNEJzEnJTIwc3Ryb2tlJTNEJyUyM0UyRTJFMiclMkYlM0UlM0MlMkZzdmclM0VcXFwiKTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW1lbnUgLmFnLW1lbnUtb3B0aW9uLXBvcHVwLXBvaW50ZXIge1xcbiAgICAgIHdpZHRoOiAzNHB4O1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsLmFnLWRuZC1naG9zdCB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgICBmb250LXdlaWdodDogNzAwO1xcbiAgICBmb250LXNpemU6IDEycHg7XFxuICAgIGZvbnQtZmFtaWx5OiBcXFwiUm9ib3RvXFxcIiwgc2Fucy1zZXJpZjtcXG4gICAgaGVpZ2h0OiA1NnB4ICFpbXBvcnRhbnQ7XFxuICAgIGxpbmUtaGVpZ2h0OiA1NnB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIHBhZGRpbmc6IDAgMTZweDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbC5hZy1kbmQtZ2hvc3Qgc3BhbixcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsLmFnLWRuZC1naG9zdCBkaXYge1xcbiAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICBtYXJnaW46IDA7XFxuICAgICAgcGFkZGluZzogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwuYWctZG5kLWdob3N0IC5hZy1kbmQtZ2hvc3QtaWNvbiB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICAgICAgb3BhY2l0eTogMC44NzsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10YWItaGVhZGVyIHtcXG4gICAgYmFja2dyb3VuZDogI2VlZTtcXG4gICAgbWluLXdpZHRoOiAyMjBweDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRhYi1oZWFkZXIgLmFnLXRhYiB7XFxuICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICAgICAgaGVpZ2h0OiAzMnB4O1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgICAgICAgZmxleDogbm9uZTtcXG4gICAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRhYi1ib2R5IHtcXG4gICAgcGFkZGluZzogNHB4IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0IHtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRhYi1ib2R5IC5hZy1tZW51LWxpc3QgPiBkaXY6Zmlyc3QtY2hpbGQgPiBzcGFuIHtcXG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0ID4gZGl2Omxhc3QtY2hpbGQgPiBzcGFuIHtcXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10YWItYm9keSAuYWctbWVudS1saXN0ID4gZGl2Omxhc3QtY2hpbGQgPiAuYWctbWVudS1vcHRpb24tcG9wdXAtcG9pbnRlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIC5hZy1maWx0ZXItc2VsZWN0LCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLWJvZHkge1xcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIC5hZy1maWx0ZXItYm9keSB7XFxuICAgIG1hcmdpbi10b3A6IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIC5hZy1maWx0ZXItZmlsdGVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIC5hZy1maWx0ZXItc2VsZWN0IHtcXG4gICAgbWFyZ2luOiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIGlucHV0W3R5cGU9XFxcInJhZGlvXFxcIl0ge1xcbiAgICBtYXJnaW46IDAgM3B4IDAgNnB4O1xcbiAgICB3aWR0aDogMTJweDtcXG4gICAgaGVpZ2h0OiAxN3B4O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJ0ZXh0XFxcIl0sXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciBpbnB1dFt0eXBlPVxcXCJkYXRlXFxcIl0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1maWx0ZXIgLmFnLXNldC1maWx0ZXItbGlzdCB7XFxuICAgIGhlaWdodDogMjQwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIC5hZy1zZXQtZmlsdGVyLWl0ZW0ge1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctc2V0LWZpbHRlci1pdGVtID4gZGl2LCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctc2V0LWZpbHRlci1pdGVtID4gc3BhbiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLWhlYWRlci1jb250YWluZXI6bnRoLWNoaWxkKDIpIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIC5hZy1maWx0ZXItYXBwbHktcGFuZWwge1xcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIHBhZGRpbmctdG9wOiAxNnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsdGVyIC5hZy1maWx0ZXItYXBwbHktcGFuZWwgYnV0dG9uIHtcXG4gICAgICBsaW5lLWhlaWdodDogMS41O1xcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAgICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgIGJvcmRlcjogMDtcXG4gICAgICBjb2xvcjogIzNmNTFiNTtcXG4gICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XFxuICAgICAgbWFyZ2luOiAwO1xcbiAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbHRlciAuYWctZmlsdGVyLWFwcGx5LXBhbmVsIGJ1dHRvbiArIGJ1dHRvbiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4ge1xcbiAgICBoZWlnaHQ6IDMycHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tbGFiZWwsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWdyb3VwIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLXNlbGVjdC1wYW5lbCAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uIC5hZy1jb2x1bW4tc2VsZWN0LWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXRvb2wtcGFuZWwtY29sdW1uLWxhYmVsLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLWdyb3VwLWljb25zIHtcXG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLXByaW1hcnktY29scy1saXN0LXBhbmVsIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1wcmltYXJ5LWNvbHMtbGlzdC1wYW5lbCA+IGRpdiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbi5hZy10b29scGFuZWwtYWRkLWdyb3VwLWluZGVudCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXByaW1hcnktY29scy1oZWFkZXItcGFuZWwge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgaGVpZ2h0OiA1NnB4O1xcbiAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcHJpbWFyeS1jb2xzLWhlYWRlci1wYW5lbCA+IGRpdiB7XFxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgIG1hcmdpbjogMCA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wcmltYXJ5LWNvbHMtaGVhZGVyLXBhbmVsIC5hZy1maWx0ZXItYm9keSB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIge1xcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWZpbHRlci1wYW5lbCB7XFxuICAgICAgd2lkdGg6IDEwMCU7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlIHtcXG4gICAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpO1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcXG4gICAgICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAgICAgLW1zLWZsZXg6IGF1dG87XFxuICAgICAgICAgICAgICAgIGZsZXg6IGF1dG87XFxuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgICAgICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgIC1tcy1mbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XFxuICAgICAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XFxuICAgICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctZmlsdGVyLXBhbmVsIC5hZy1maWx0ZXItdG9vbHBhbmVsLWluc3RhbmNlIC5hZy1maWx0ZXItdG9vbHBhbmVsLWhlYWRlciB7XFxuICAgICAgICAgIHBhZGRpbmc6IDAgNXB4OyB9XFxuICAgICAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci10b29scGFuZWwtaW5zdGFuY2UgLmFnLWZpbHRlci10b29scGFuZWwtaGVhZGVyID4gZGl2IHtcXG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci1ib2R5LXdyYXBwZXIge1xcbiAgICAgICAgcGFkZGluZy10b3A6IDVweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1maWx0ZXItcGFuZWwgLmFnLWZpbHRlci1haXIge1xcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xcbiAgICAgICAgcGFkZGluZzogOHB4IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLXBpdm90LW1vZGUtcGFuZWwge1xcbiAgICAgIGhlaWdodDogNTZweDtcXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAgIC1tcy1mbGV4OiBub25lO1xcbiAgICAgICAgICAgICAgZmxleDogbm9uZTsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1waXZvdC1tb2RlLXBhbmVsIC5hZy1waXZvdC1tb2RlLXNlbGVjdCB7XFxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gICAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwge1xcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyO1xcbiAgICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XFxuICAgICAgcGFkZGluZy10b3A6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIHtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgICBwYWRkaW5nOiA4cHggMDtcXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcCAuYWctY29sdW1uLWRyb3AtZW1wdHktbWVzc2FnZSB7XFxuICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjM4KTtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICBmb250LXNpemU6IDEycHg7XFxuICAgICAgICBmb250LWZhbWlseTogXFxcIlJvYm90b1xcXCIsIHNhbnMtc2VyaWY7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDM0cHg7XFxuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctY29sdW1uLWRyb3AgLmFnLWNvbHVtbi1kcm9wLWxpc3Qge1xcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wID4gZGl2ID4gOmZpcnN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9vbC1wYW5lbC13cmFwcGVyIC5hZy1jb2x1bW4tZHJvcDpsYXN0LWNoaWxkIHtcXG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbnVtZXJpYy1oZWFkZXIgLmFnLWhlYWRlci1jZWxsLWxhYmVsIC5hZy1oZWFkZXItaWNvbiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYWdpbmctcGFuZWwge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XFxuICAgIGhlaWdodDogNTZweDtcXG4gICAgcGFkZGluZzogMCAyNHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFnaW5nLXBhbmVsID4gc3BhbiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDMycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctaWNvbiB7XFxuICAgIHdpZHRoOiAxOHB4O1xcbiAgICBoZWlnaHQ6IDE4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctcGFnaW5nLWJ1dHRvbiBidXR0b24ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHRvcDogMDtcXG4gICAgcmlnaHQ6IDA7XFxuICAgIGJvdHRvbTogMDtcXG4gICAgbGVmdDogMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYWdpbmctcGFnZS1zdW1tYXJ5LXBhbmVsIC5hZy1wYWdpbmctYnV0dG9uLmFnLWRpc2FibGVkIC5hZy1pY29uIHtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XFxuICAgIG9wYWNpdHk6IDAuMzg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCAuYWctcGFnaW5nLWJ1dHRvbi5hZy1kaXNhYmxlZCBidXR0b24ge1xcbiAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFnaW5nLXBhZ2Utc3VtbWFyeS1wYW5lbCBzcGFuIHtcXG4gICAgbWFyZ2luOiAwIDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yb3ctc2VsZWN0ZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCksIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKSB7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLXRvcCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtdG9wIHtcXG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAjM2Y1MWI1OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLXJpZ2h0LCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1yYW5nZS1zaW5nbGUtY2VsbCkuYWctY2VsbC1yYW5nZS1yaWdodCB7XFxuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjM2Y1MWI1OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWJvdHRvbSwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZDpub3QoLmFnLWNlbGwtcmFuZ2Utc2luZ2xlLWNlbGwpLmFnLWNlbGwtcmFuZ2UtYm90dG9tIHtcXG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjM2Y1MWI1OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWxlZnQsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLXJhbmdlLXNpbmdsZS1jZWxsKS5hZy1jZWxsLXJhbmdlLWxlZnQge1xcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjM2Y1MWI1OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLWZvY3VzKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIyLCAxMzQsIDIwMywgMC4xKTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQ6bm90KC5hZy1jZWxsLWZvY3VzKS5hZy1jZWxsLXJhbmdlLWNoYXJ0IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDg4LCAyNTUsIDAuMSk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkOm5vdCguYWctY2VsbC1mb2N1cykuYWctY2VsbC1yYW5nZS1jaGFydC5hZy1jZWxsLXJhbmdlLWNoYXJ0LWNhdGVnb3J5IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDI1NSwgMTMyLCAwLjEpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMTpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjIsIDEzNCwgMjAzLCAwLjIpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMjpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjIsIDEzNCwgMjAzLCAwLjMpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtMzpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjIsIDEzNCwgMjAzLCAwLjQpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQtNDpub3QoLmFnLWNlbGwtZm9jdXMpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjIsIDEzNCwgMjAzLCAwLjUpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtdG9wLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtdG9wIHtcXG4gICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAjM2Y1MWI1OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC10b3AuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtdG9wLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCAjYWZhZmFmOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtcmlnaHQsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodCB7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCAjM2Y1MWI1OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1zZWxlY3Rpb24tZmlsbC1yaWdodC5hZy1jZWxsLmFnLWNlbGwtcmFuZ2Utc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IGRhc2hlZCAjYWZhZmFmOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjM2Y1MWI1OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1ib3R0b20uYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWZpbGwtYm90dG9tLmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCB7XFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAjYWZhZmFmOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWx0ciAuYWctc2VsZWN0aW9uLWZpbGwtbGVmdCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWxlZnQge1xcbiAgICBib3JkZXItbGVmdDogMXB4IGRhc2hlZCAjM2Y1MWI1OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1zZWxlY3Rpb24tZmlsbC1sZWZ0LmFnLWNlbGwuYWctY2VsbC1yYW5nZS1zZWxlY3RlZCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1maWxsLWxlZnQuYWctY2VsbC5hZy1jZWxsLXJhbmdlLXNlbGVjdGVkIHtcXG4gICAgICBib3JkZXItbGVmdDogMXB4IGRhc2hlZCAjYWZhZmFmOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWZpbGwtaGFuZGxlLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJhbmdlLWhhbmRsZSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgd2lkdGg6IDZweDtcXG4gICAgaGVpZ2h0OiA2cHg7XFxuICAgIGJvdHRvbTogLTFweDtcXG4gICAgcmlnaHQ6IC0xcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMzZjUxYjU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmlsbC1oYW5kbGUge1xcbiAgICBjdXJzb3I6IGNlbGw7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmFuZ2UtaGFuZGxlIHtcXG4gICAgY3Vyc29yOiBud3NlLXJlc2l6ZTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLmFnLWNlbGwtaW5saW5lLWVkaXRpbmcge1xcbiAgICBwYWRkaW5nOiAyNHB4O1xcbiAgICBoZWlnaHQ6IDcycHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbC5hZy1jZWxsLWlubGluZS1lZGl0aW5nLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNlbGwuYWctcG9wdXAtZWRpdG9yIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgIHBhZGRpbmc6IDhweDtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wb3B1cC1lZGl0b3Ige1xcbiAgICBwYWRkaW5nOiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcG9wdXAtZWRpdG9yIC5hZy1sYXJnZS10ZXh0YXJlYSB0ZXh0YXJlYSB7XFxuICAgICAgaGVpZ2h0OiBhdXRvO1xcbiAgICAgIHBhZGRpbmc6IDI0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmljaC1zZWxlY3Qge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LWxpc3Qge1xcbiAgICAgIHdpZHRoOiAyMDBweDtcXG4gICAgICBoZWlnaHQ6IDMxMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmljaC1zZWxlY3QgLmFnLXJpY2gtc2VsZWN0LXZhbHVlIHtcXG4gICAgICBwYWRkaW5nOiAwIDhweCAwIDI0cHg7XFxuICAgICAgaGVpZ2h0OiA0OHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcmljaC1zZWxlY3QgLmFnLXZpcnR1YWwtbGlzdC1pdGVtIHtcXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgICAgaGVpZ2h0OiA0OHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yaWNoLXNlbGVjdCAuYWctdmlydHVhbC1saXN0LWl0ZW06aG92ZXIge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC1yb3cge1xcbiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJpY2gtc2VsZWN0IC5hZy1yaWNoLXNlbGVjdC1yb3ctc2VsZWN0ZWQge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbHRyIC5hZy1mbG9hdGluZy1maWx0ZXItYnV0dG9uIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZmxvYXRpbmctZmlsdGVyLWJ1dHRvbiBidXR0b24ge1xcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxuICAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgYm9yZGVyOiAwO1xcbiAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIHBhZGRpbmc6IDA7XFxuICAgIHdpZHRoOiAxOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNlbGVjdGlvbi1jaGVja2JveDpub3QoLmFnLWhpZGRlbikgfiAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3g6bm90KC5hZy1oaWRkZW4pICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1leHBhbmRlZDpub3QoLmFnLWhpZGRlbikgfiAuYWctY2VsbC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtZXhwYW5kZWQ6bm90KC5hZy1oaWRkZW4pICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jb250cmFjdGVkOm5vdCguYWctaGlkZGVuKSB+IC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jb250cmFjdGVkOm5vdCguYWctaGlkZGVuKSArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY2hlY2tib3g6bm90KC5hZy1pbnZpc2libGUpIH4gLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNoZWNrYm94Om5vdCguYWctaW52aXNpYmxlKSArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNlbGVjdGlvbi1jaGVja2JveDpub3QoLmFnLWhpZGRlbikgfiAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWV4cGFuZGVkOm5vdCguYWctaGlkZGVuKSB+IC5hZy1ncm91cC1jaGVja2JveCxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29udHJhY3RlZDpub3QoLmFnLWhpZGRlbikgfiAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNoZWNrYm94Om5vdCguYWctaW52aXNpYmxlKSB+IC5hZy1ncm91cC1jaGVja2JveCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNoaWxkLWNvdW50IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggc3BhbiB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcXG4gICAgaGVpZ2h0OiA0OHB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLWdyb3VwLFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tcGl2b3Qge1xcbiAgICAgIG1hcmdpbi1yaWdodDogMjRweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tc21hbGwtbGVmdCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1pY29uLXNtYWxsLXJpZ2h0IHtcXG4gICAgICBtYXJnaW46IDAgOHB4O1xcbiAgICAgIG9wYWNpdHk6IDAuNTQ7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIC5hZy1jb2x1bW4tZHJvcC1lbXB0eS1tZXNzYWdlIHtcXG4gICAgICBvcGFjaXR5OiAwLjM4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwge1xcbiAgICBiYWNrZ3JvdW5kOiAjZTJlMmUyO1xcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xcbiAgICBtaW4taGVpZ2h0OiAzMnB4O1xcbiAgICBwYWRkaW5nOiAwIDRweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtdGV4dCB7XFxuICAgICAgbWFyZ2luOiAwIDhweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1kcm9wLWNlbGwgLmFnLWNvbHVtbi1kcm9wLWNlbGwtYnV0dG9uIHtcXG4gICAgICBtaW4td2lkdGg6IDMycHg7XFxuICAgICAgbWFyZ2luOiAwIDRweDtcXG4gICAgICBvcGFjaXR5OiAwLjU0OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIC5hZy1jb2x1bW4tZHJvcC1jZWxsLWJ1dHRvbjpob3ZlciB7XFxuICAgICAgICBvcGFjaXR5OiAwLjg3OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sdW1uLWRyb3AtY2VsbCAuYWctY29sdW1uLWRyYWcge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbHVtbi1kcm9wLXZlcnRpY2FsIC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWFyZ2luLXRvcDogOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNlbGVjdC1hZ2ctZnVuYy1wb3B1cCB7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgIGhlaWdodDogMTQwcHg7XFxuICAgIHBhZGRpbmc6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zZWxlY3QtYWdnLWZ1bmMtcG9wdXAgLmFnLXZpcnR1YWwtbGlzdC1pdGVtIHtcXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNldC1maWx0ZXItbGlzdCxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbWVudS1jb2x1bW4tc2VsZWN0LXdyYXBwZXIge1xcbiAgICB3aWR0aDogYXV0bzsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2x1bW4tZHJvcC12ZXJ0aWNhbCA+IC5hZy1jb2x1bW4tZHJvcC1jZWxsIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgbWFyZ2luLXRvcDogMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLWRhdGEtY2hhbmdlZCB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGFjYzEgIWltcG9ydGFudDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jZWxsLWRhdGEtY2hhbmdlZC1hbmltYXRpb24ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXN0dWItY2VsbCB7XFxuICAgIHBhZGRpbmctbGVmdDogMjRweDtcXG4gICAgcGFkZGluZy10b3A6IDhweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXN0dWItY2VsbCAuYWctbG9hZGluZy1pY29uIHtcXG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzcGluO1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6IHNwaW47XFxuICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xcbiAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICAgICAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG4gICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsgfVxcblxcbkAtd2Via2l0LWtleWZyYW1lcyBzcGluIHtcXG4gIGZyb20ge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XFxuICB0byB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cXG5cXG5Aa2V5ZnJhbWVzIHNwaW4ge1xcbiAgZnJvbSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cXG4gIHRvIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXN0dWItY2VsbCAuYWctbG9hZGluZy10ZXh0IHtcXG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xcbiAgICAgIG1hcmdpbi10b3A6IDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1mbG9hdGluZy10b3Age1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1mbG9hdGluZy1ib3R0b20ge1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UyZTJlMjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zdGF0dXMtYmFyIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gICAgZm9udC1mYW1pbHk6IFxcXCJSb2JvdG9cXFwiLCBzYW5zLXNlcmlmO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbmFtZS12YWx1ZS12YWx1ZSB7XFxuICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXN0YXR1cy1iYXItY2VudGVyIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW5hbWUtdmFsdWUge1xcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gICAgcGFkZGluZy10b3A6IDE2cHg7XFxuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWRldGFpbHMtcm93IHtcXG4gICAgcGFkZGluZzogNDBweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1vdmVybGF5LWxvYWRpbmctd3JhcHBlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1vdmVybGF5LWxvYWRpbmctY2VudGVyIHtcXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgIHBhZGRpbmc6IDhweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XFxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIHtcXG4gICAgICBwYWRkaW5nLXRvcDogMzJweDtcXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICAgIHdpZHRoOiAyMnB4O1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyAuYWctc2lkZS1idXR0b24gYnV0dG9uIHtcXG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICAgICAgYm9yZGVyOiAwO1xcbiAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XFxuICAgICAgICBwYWRkaW5nOiAxNnB4IDAgMTZweCAwO1xcbiAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICBtYXJnaW46IDA7XFxuICAgICAgICBtaW4taGVpZ2h0OiAxNDRweDtcXG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4IDAgMXB4IDA7XFxuICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogY2VudGVyO1xcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XFxuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIC5hZy1zZWxlY3RlZCBidXR0b24ge1xcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcHg7XFxuICAgICAgICBib3JkZXItY29sb3I6ICNlMmUyZTI7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciAuYWctcGFuZWwtY29udGFpbmVyIHtcXG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIuZnVsbC13aWR0aCAuYWctcGFuZWwtY29udGFpbmVyIHtcXG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciAuYWctY29sdW1uLWRyb3Age1xcbiAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcHJpbWFyeS1jb2xzLWZpbHRlci13cmFwcGVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29tcG9uZW50IHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZmRmZDtcXG4gICAgcGFkZGluZzogMHB4O1xcbiAgICBib3JkZXI6IDAgc29saWQgI2VmZWZlZjtcXG4gICAgYm9yZGVyLXRvcC13aWR0aDogMXB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29tcG9uZW50LmFnLWRpc2FibGVkID4gLmFnLWdyb3VwLWNvbXBvbmVudC1sYWJlbCAuYWctZ3JvdXAtY29tcG9uZW50LXRpdGxlLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudC5hZy1kaXNhYmxlZCA+IC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgICBvcGFjaXR5OiAwLjU7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1jb21wb25lbnQgLmFnLWdyb3VwLWNvbXBvbmVudC10aXRsZS1iYXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XFxuICAgICAgaGVpZ2h0OiAxOHB4O1xcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcXG4gICAgICBmb250LWZhbWlseTogXFxcIlJvYm90b1xcXCIsIHNhbnMtc2VyaWY7XFxuICAgICAgaGVpZ2h0OiAyNnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29tcG9uZW50Om5vdCguYWctY29sbGFwc2libGUpID4gZGl2IHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudDpub3QoLmFnLWNvbGxhcHNpYmxlKSA+IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIHtcXG4gICAgICBtYXJnaW4tbGVmdDogMDtcXG4gICAgICBwYWRkaW5nOiA4cHg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudDpub3QoLmFnLWNvbGxhcHNpYmxlKSA+IC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIC5hZy1jb2x1bW4tZ3JvdXAtaWNvbnMge1xcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtY29tcG9uZW50LXRvb2xiYXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XFxuICAgICAgcGFkZGluZzogOHB4O1xcbiAgICAgIGJvcmRlcjogMCBzb2xpZCAjZTJlMmUyOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29tcG9uZW50ID4gLmFnLWdyb3VwLWNvbXBvbmVudC1jb250YWluZXIge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbiAgICAgIHBhZGRpbmc6IDhweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWdyb3VwLWNvbXBvbmVudCAuYWctZ3JvdXAtaXRlbSB7XFxuICAgICAgbWFyZ2luOiA0cHggMDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctZ3JvdXAtY29tcG9uZW50IC5hZy1ncm91cC1pdGVtIC5hZy1ncm91cC1jb21wb25lbnQtdGl0bGUtYmFyIHtcXG4gICAgICAgIGhlaWdodDogMThweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1sYWJlbGVkIGxhYmVsIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctbGFiZWxlZC5hZy1sYWJlbC1hbGlnbi10b3AgbGFiZWwge1xcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2xpZGVyID4gLmFnLXdyYXBwZXIgPiBkaXY6bm90KDpmaXJzdC1vZi10eXBlKSwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1hbmdsZS1zZWxlY3QgPiAuYWctd3JhcHBlciA+IGRpdjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctYW5nbGUtc2VsZWN0IC5hZy1hbmdsZS1zZWxlY3QtZmllbGQgLmFnLXBhcmVudC1jaXJjbGUge1xcbiAgICB3aWR0aDogMjRweDtcXG4gICAgaGVpZ2h0OiAyNHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjkpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjkpO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWFuZ2xlLXNlbGVjdCAuYWctYW5nbGUtc2VsZWN0LWZpZWxkIC5hZy1jaGlsZC1jaXJjbGUge1xcbiAgICB0b3A6IDRweDtcXG4gICAgbGVmdDogMTJweDtcXG4gICAgd2lkdGg6IDZweDtcXG4gICAgaGVpZ2h0OiA2cHg7XFxuICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xcbiAgICBtYXJnaW4tdG9wOiAtNHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0YzRjNGM7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9nZ2xlLWJ1dHRvbiAuYWctaW5wdXQtd3JhcHBlciB7XFxuICAgIGhlaWdodDogMThweDtcXG4gICAgd2lkdGg6IDQwcHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwMHJlbTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXRvZ2dsZS1idXR0b24gLmFnLWlucHV0LXdyYXBwZXIgLmFnLWljb24ge1xcbiAgICAgIHdpZHRoOiAxOHB4O1xcbiAgICAgIGhlaWdodDogMThweDtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcXG4gICAgICByaWdodDogY2FsYygxMDAlIC0gMThweCk7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctdG9nZ2xlLWJ1dHRvbi5hZy1zZWxlY3RlZCAuYWctaW5wdXQtd3JhcHBlciB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjQwODE7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b2dnbGUtYnV0dG9uLmFnLXNlbGVjdGVkIC5hZy1pbnB1dC13cmFwcGVyIC5hZy1pY29uIHtcXG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgICAgIHJpZ2h0OiAtMXB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGlja2VyID4gLmFnLXdyYXBwZXIgPiBkaXYge1xcbiAgICAgIHdpZHRoOiAxOHB4O1xcbiAgICAgIGhlaWdodDogMThweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIGJ1dHRvbiB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBpY2tlciA+IC5hZy13cmFwcGVyIGJ1dHRvbjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1kaWFsb2cuYWctY29sb3ItZGlhbG9nIHtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIHtcXG4gICAgcGFkZGluZzogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWNvbG9yIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRvb2xzIHtcXG4gICAgICBwYWRkaW5nOiAxMHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXNhdCB7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20od2hpdGUpLCB0byhyZ2JhKDIwNCwgMTU0LCAxMjksIDApKSk7XFxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSwgcmdiYSgyMDQsIDE1NCwgMTI5LCAwKSk7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tdmFsIHtcXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBmcm9tKGJsYWNrKSwgdG8ocmdiYSgyMDQsIDE1NCwgMTI5LCAwKSkpO1xcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIGJsYWNrLCByZ2JhKDIwNCwgMTU0LCAxMjksIDApKTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1zcGVjdHJ1bS1kcmFnZ2VyIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgICAgIGhlaWdodDogMTJweDtcXG4gICAgICB3aWR0aDogMTJweDtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcXG4gICAgICBiYWNrZ3JvdW5kOiBibGFjaztcXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XFxuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLWh1ZS1iYWNrZ3JvdW5kIHtcXG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1wYW5lbCAuYWctc3BlY3RydW0tYWxwaGEtYmFja2dyb3VuZCB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLWh1ZS1hbHBoYSB7XFxuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gICAgICBoZWlnaHQ6IDExcHg7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXNsaWRlciB7XFxuICAgICAgbWFyZ2luLXRvcDogLTEycHg7XFxuICAgICAgd2lkdGg6IDEzcHg7XFxuICAgICAgaGVpZ2h0OiAxM3B4O1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEzcHg7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4zNyk7XFxuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMzcpOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRleHQtdmFsdWUge1xcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xcbiAgICAgIGNvbG9yOiAjMzMzOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXNwZWN0cnVtLXRleHQtdmFsdWU6Zm9jdXMge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZDc3ZTQ7XFxuICAgICAgcGFkZGluZzogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY29sb3ItcGFuZWwgLmFnLXJlY2VudC1jb2xvcnMgPiBkaXYge1xcbiAgICAgIG1hcmdpbjogMCAzcHg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNvbG9yLXBhbmVsIC5hZy1yZWNlbnQtY29sb3JzID4gZGl2OmZpcnN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jb2xvci1wYW5lbCAuYWctcmVjZW50LWNvbG9ycyA+IGRpdjpsYXN0LWNoaWxkIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsLmFnLXBvcHVwID4gZGl2Om5vdCguYWctdG9vbHRpcC1jdXN0b20pIHtcXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiA1cHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDVweCA1cHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMyk7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFuZWwge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlMmUyOyB9XFxuICAgIC5hZy1kcmFnZ2luZy1yYW5nZS1oYW5kbGUgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYW5lbC5hZy1kaWFsb2csIC5hZy1kcmFnZ2luZy1maWxsLWhhbmRsZSAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhbmVsLmFnLWRpYWxvZyB7XFxuICAgICAgb3BhY2l0eTogMC43O1xcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZjZmNmYztcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgICBoZWlnaHQ6IDU2cHg7XFxuICAgICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgZm9udC1mYW1pbHk6IFxcXCJSb2JvdG9cXFwiLCBzYW5zLXNlcmlmO1xcbiAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcXG4gICAgICBwYWRkaW5nOiA1cHggMTBweDsgfVxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcGFuZWwgLmFnLXRpdGxlLWJhciAuYWctdGl0bGUtYmFyLWJ1dHRvbnMgLmFnLWJ1dHRvbiB7XFxuICAgICAgICBoZWlnaHQ6IDIwcHg7XFxuICAgICAgICB3aWR0aDogMjBweDtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uIC5hZy1pY29uIHtcXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDsgfVxcbiAgICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uOmhvdmVyLCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhbmVsIC5hZy10aXRsZS1iYXIgLmFnLXRpdGxlLWJhci1idXR0b25zIC5hZy1idXR0b24uYWctaGFzLXBvcHVwIHtcXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxcbiAgICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYW5lbCAuYWctdGl0bGUtYmFyIC5hZy10aXRsZS1iYXItYnV0dG9ucyAuYWctYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXBhbmVsIC5hZy1tZXNzYWdlLWJveCAuYWctbWVzc2FnZS1ib3gtYnV0dG9uLWJhciB7XFxuICAgICAgaGVpZ2h0OiAzMHB4O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgICAgcGFkZGluZzogMnB4OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1wYW5lbCAuYWctbWVzc2FnZS1ib3ggLmFnLW1lc3NhZ2UtYm94LWJ1dHRvbi1iYXIgYnV0dG9uIHtcXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sdGlwIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUzNTM1MztcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgcGFkZGluZzogNXB4O1xcbiAgICBib3JkZXItd2lkdGg6IDFweDtcXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcXG4gICAgYm9yZGVyLWNvbG9yOiAjZWJlYmViO1xcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXM7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy10b29sdGlwLmFnLXRvb2x0aXAtaGlkaW5nIHtcXG4gICAgICBvcGFjaXR5OiAwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNoYXJ0IC5hZy1jaGFydC1tZW51IHtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hhcnQgLmFnLWNoYXJ0LW1lbnUgPiBzcGFuOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1ncm91cC1jb21wb25lbnQtY29udGFpbmVyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2hhcnQtdGFiYmVkLW1lbnUgLmFnLWNoYXJ0LXNldHRpbmdzIC5hZy1jaGFydC1zZXR0aW5ncy1taW5pLXdyYXBwZXIgLmFnLWNoYXJ0LW1pbmktdGh1bWJuYWlsIHtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgICBtYXJnaW46IDVweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbWluaS13cmFwcGVyIC5hZy1jaGFydC1taW5pLXRodW1ibmFpbDpudGgtY2hpbGQoMm4gKyAyKTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWw6bnRoLWNoaWxkKDNuICsgMSkge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWw6bnRoLWNoaWxkKDNuKSB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW1pbmktd3JhcHBlciAuYWctY2hhcnQtbWluaS10aHVtYm5haWwuYWctc2VsZWN0ZWQge1xcbiAgICAgIGJvcmRlci1jb2xvcjogIzNmNTFiNTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1jaGFydC10YWJiZWQtbWVudSAuYWctY2hhcnQtc2V0dGluZ3MgLmFnLWNoYXJ0LXNldHRpbmdzLW5hdi1iYXIgLmFnLW5hdi1jYXJkLXNlbGVjdG9yIC5hZy1uYXYtY2FyZC1pdGVtIHtcXG4gICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XFxuICAgIGZvbnQtc2l6ZTogMTFweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1zZXR0aW5ncyAuYWctY2hhcnQtc2V0dGluZ3MtbmF2LWJhciAuYWctbmF2LWNhcmQtc2VsZWN0b3IgLmFnLW5hdi1jYXJkLWl0ZW0uYWctc2VsZWN0ZWQge1xcbiAgICAgIGNvbG9yOiAjM2Y1MWI1OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWNoYXJ0LXRhYmJlZC1tZW51IC5hZy1jaGFydC1mb3JtYXQgLmFnLWNoYXJ0LWZvcm1hdC13cmFwcGVyIC5hZy1ncm91cC1pdGVtIHtcXG4gICAgbWFyZ2luOiA5LjZweCAwOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24ge1xcbiAgICAvKiB1c2UgIWltcG9ydGFudCB0byBwcmV2ZW50IGlzc3VlcyB3aXRoIGJyb3dzZXIgZXh0ZW5zaW9ucyB0aGF0IGNoYW5nZSBmb250cyAqL1xcbiAgICBmb250LWZhbWlseTogXFxcImFnR3JpZE1hdGVyaWFsXFxcIjtcXG4gICAgc3BlYWs6IG5vbmU7XFxuICAgIGZvbnQtc2l6ZTogMThweDtcXG4gICAgY29sb3I6ICMzMzM7XFxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XFxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1hZ2dyZWdhdGlvbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDBcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tYXJyb3dzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1hc2M6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTAyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNhbmNlbDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDNcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hhcnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA0XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA1XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA2XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MDdcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY29sb3ItcGlja2VyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwOFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jb2x1bW46YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA5XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNvbHVtbnM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNvbnRyYWN0ZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBCXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNvcHk6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBDXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNyb3NzOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jdXQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBFXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWRhdGE6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTBGXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWRlc2M6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTEwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWV4cGFuZGVkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxMVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1leWUtc2xhc2g6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTEyXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWV5ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTNcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tZmlsdGVyOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxNFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1maXJzdDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTVcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tZ3JpcDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTZcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tZ3JvdXA6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWluZGV0ZXJtaW5hdGU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE4XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWxhc3Q6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTE5XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWxlZnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWxvYWRpbmc6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFCXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLW1heGltaXplOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQ1xcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1tZW51OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxRFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1taW5pbWl6ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MUVcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tbWludXM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTFGXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLW5leHQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIwXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLW5vbmU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTIxXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLW5vdC1hbGxvd2VkOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyMlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1wYXN0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjNcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcGluOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyNFxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1waXZvdDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjVcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcGx1czpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjZcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcHJldmlvdXM6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vZmY6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTI4XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vbjpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MjlcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcmlnaHQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJBXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXNhdmU6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJCXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXNtYWxsLWRvd246YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJDXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXNtYWxsLWxlZnQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTJEXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXNtYWxsLXJpZ2h0OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkyRVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1zbWFsbC11cDpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkZcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tdGljazpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzBcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tdHJlZS1jbG9zZWQ6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTMxXFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXRyZWUtaW5kZXRlcm1pbmF0ZTpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MzJcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tdHJlZS1vcGVuOmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkzM1xcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtdW5jaGVja2VkIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQtcmVhZG9ubHksXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLXJlYWRvbmx5LFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtdW5jaGVja2VkLXJlYWRvbmx5IHtcXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XFxuICAgICAgb3BhY2l0eTogMC4zODsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQge1xcbiAgICBjb2xvcjogI2ZmNDA4MTsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtY2hlY2tlZC1yZWFkb25seTpiZWZvcmUge1xcbiAgICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLXJlYWRvbmx5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkwNlxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC11bmNoZWNrZWQtcmVhZG9ubHk6YmVmb3JlIHtcXG4gICAgY29udGVudDogXFxcIlxcXFxFOTA3XFxcIjsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ncm91cC1leHBhbmRlZCAuYWctaWNvbi1jb250cmFjdGVkOmVtcHR5OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkzM1xcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1yb3ctZHJhZzpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MTZcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJpZ2h0LWFycm93OmJlZm9yZSB7XFxuICAgIGNvbnRlbnQ6IFxcXCJcXFxcRTkxQVxcXCI7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1yYWRpby1idXR0b24tb24ge1xcbiAgICBjb2xvcjogI2ZmNDA4MTsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1yaWdodC1hcnJvdzpiZWZvcmUge1xcbiAgICBjb250ZW50OiBcXFwiXFxcXEU5MkFcXFwiOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1udW1lcmljLWNlbGwge1xcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNoZWNrYm94Om5vdCguYWctbGFiZWwtYWxpZ24tbGVmdCkgbGFiZWwsIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1yYWRpby1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCwgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvZ2dsZS1idXR0b246bm90KC5hZy1sYWJlbC1hbGlnbi1sZWZ0KSBsYWJlbCB7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXRvb2wtcGFuZWwtd3JhcHBlciAuYWctcGl2b3QtbW9kZS1wYW5lbCAuYWctcGl2b3QtbW9kZS1zZWxlY3Qge1xcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy10b29sLXBhbmVsLXdyYXBwZXIgLmFnLWNvbHVtbi1kcm9wIC5hZy1jb2x1bW4tZHJvcC1lbXB0eS1tZXNzYWdlIHtcXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAzMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1zZWxlY3QtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4tZ3JvdXAgLmFnLWNvbHVtbi1ncm91cC1pY29ucyxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLXNlbGVjdC1jaGVja2JveCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNvbHVtbi1zZWxlY3QtcGFuZWwgLmFnLWNvbHVtbi10b29sLXBhbmVsLWNvbHVtbiAuYWctY29sdW1uLWdyb3VwLWljb25zIHtcXG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jb2x1bW4tc2VsZWN0LXBhbmVsIC5hZy1jb2x1bW4tdG9vbC1wYW5lbC1jb2x1bW4uYWctdG9vbHBhbmVsLWFkZC1ncm91cC1pbmRlbnQge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xcbiAgICAgIG1hcmdpbi1yaWdodDogMzRweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctaGVhZGVyLXNlbGVjdC1hbGwge1xcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNHB4O1xcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWNoZWNrYm94LFxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCxcXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWdyb3VwLWNvbnRyYWN0ZWQge1xcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2VsZWN0aW9uLWNoZWNrYm94ICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1zZWxlY3Rpb24tY2hlY2tib3ggKyAuYWctZ3JvdXAtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94ICsgLmFnLWNlbGwtdmFsdWU6bm90KDplbXB0eSksXFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWdyb3VwLWNoZWNrYm94ICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1leHBhbmRlZCArIC5hZy1ncm91cC12YWx1ZTpub3QoOmVtcHR5KSxcXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtY29udHJhY3RlZCArIC5hZy1jZWxsLXZhbHVlOm5vdCg6ZW1wdHkpLFxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkICsgLmFnLWdyb3VwLXZhbHVlOm5vdCg6ZW1wdHkpIHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsOyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLXNlbGVjdGlvbi1jaGVja2JveCArIC5hZy1ncm91cC1jaGVja2JveCxcXG4gICAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctZ3JvdXAtY2hlY2tib3ggKyAuYWctZ3JvdXAtY2hlY2tib3gsXFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWdyb3VwLWV4cGFuZGVkICsgLmFnLWdyb3VwLWNoZWNrYm94LFxcbiAgICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1jb250cmFjdGVkICsgLmFnLWdyb3VwLWNoZWNrYm94IHtcXG4gICAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1ncm91cC1jaGlsZC1jb3VudCB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xcbiAgICAgIG1hcmdpbi1yaWdodDogMnB4OyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1jb2x1bW4tZHJvcC1ob3Jpem9udGFsIHtcXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OyB9XFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tZ3JvdXAsXFxuICAgICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWNvbHVtbi1kcm9wLWhvcml6b250YWwgLmFnLWljb24tcGl2b3Qge1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWZsb2F0aW5nLWZpbHRlci1idXR0b24ge1xcbiAgICAgIG1hcmdpbi1yaWdodDogMjRweDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2V0LWZpbHRlci1pdGVtID4gZGl2LCAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2V0LWZpbHRlci1pdGVtID4gc3BhbiB7XFxuICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1ydGwgLmFnLWhlYWRlciAuYWctaGVhZGVyLWNlbGwtcmVzaXplOjphZnRlciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTJlMmUyO1xcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2lkZS1iYXIgLmFnLXBhbmVsLWNvbnRhaW5lciB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTJlMmUyO1xcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXJ0bCAuYWctc2lkZS1iYXIuZnVsbC13aWR0aCAuYWctcGFuZWwtY29udGFpbmVyIHtcXG4gICAgICBib3JkZXItbGVmdDogMDsgfVxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5zYXNzLXZhcmlhYmxlczo6YWZ0ZXIge1xcbiAgICBjb250ZW50OiAneyBcXFwiYXV0b1NpemVQYWRkaW5nXFxcIjogXFxcIjI0cHhcXFwiLCBcXFwiaGVhZGVySGVpZ2h0XFxcIjogXFxcIjU2cHhcXFwiLCBcXFwiZ3JvdXBQYWRkaW5nU2l6ZVxcXCI6IFxcXCI0MnB4XFxcIiwgXFxcImZvb3RlclBhZGRpbmdBZGRpdGlvblxcXCI6IFxcXCIzMnB4XFxcIiwgXFxcInZpcnR1YWxJdGVtSGVpZ2h0XFxcIjogXFxcIjQwcHhcXFwiLCBcXFwiYWdnRnVuY1BvcHVwSGVpZ2h0XFxcIjogXFxcIjE0MHB4XFxcIiwgXFxcImNoZWNrYm94SW5kZW50V2lkdGhcXFwiOiBcXFwiMjZweFxcXCIsIFxcXCJsZWFmTm9kZVBhZGRpbmdcXFwiOiBcXFwiMjRweFxcXCIsIFxcXCJyb3dIZWlnaHRcXFwiOiBcXFwiNDhweFxcXCIsIFxcXCJncmlkU2l6ZVxcXCI6IFxcXCI4cHhcXFwiLCBcXFwiaWNvblNpemVcXFwiOiBcXFwiMThweFxcXCIgfSc7XFxuICAgIGRpc3BsYXk6IG5vbmU7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1jaGVja2VkLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LWNoZWNrZWQtcmVhZG9ubHksXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tY2hlY2tib3gtdW5jaGVja2VkLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LXVuY2hlY2tlZC1yZWFkb25seSxcXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctaWNvbi1jaGVja2JveC1pbmRldGVybWluYXRlLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtcmVhZG9ubHksXFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWljb24tcmFkaW8tYnV0dG9uLW9uLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1pY29uLXJhZGlvLWJ1dHRvbi1vZmYge1xcbiAgICBoZWlnaHQ6IDI0cHg7XFxuICAgIHdpZHRoOiAyNHB4O1xcbiAgICBmb250LXNpemU6IDI0cHg7XFxuICAgIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLWhlYWRlci1jZWxsLFxcbiAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1oZWFkZXItZ3JvdXAtY2VsbCB7XFxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbC1oaWdobGlnaHQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNlNGVjICFpbXBvcnRhbnQ7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctY2VsbC1oaWdobGlnaHQtYW5pbWF0aW9uIHtcXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLW1lbnUtb3B0aW9uIHtcXG4gICAgaGVpZ2h0OiAzOHB4OyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNpZGUtYmFyIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMDtcXG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xcbiAgICBib3JkZXItdG9wOiAwOyB9XFxuICAgIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctc2lkZS1iYXIgLmFnLXNpZGUtYnV0dG9ucyBidXR0b24ge1xcbiAgICAgIGJvcmRlcjogMDtcXG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcXG4gICAgICBmb250LWZhbWlseTogXFxcIlJvYm90b1xcXCIsIHNhbnMtc2VyaWY7XFxuICAgICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIC5hZy1zaWRlLWJ1dHRvbiBidXR0b24ge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICAgIGJvcmRlci13aWR0aDogMDsgfVxcbiAgICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXNpZGUtYmFyIC5hZy1zaWRlLWJ1dHRvbnMgLmFnLXNlbGVjdGVkIGJ1dHRvbiB7XFxuICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjM2Y1MWI1O1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XFxuICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XFxuICAgICAgcGFkZGluZy1sZWZ0OiAxcHg7IH1cXG4gICAgLmFnLXRoZW1lLW1hdGVyaWFsIC5hZy1zaWRlLWJhciAuYWctZmlsdGVyLXRvb2xwYW5lbC1ib2R5IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XFxuICAuYWctdGhlbWUtbWF0ZXJpYWwgLmFnLXN0YXR1cy1iYXIge1xcbiAgICBib3JkZXItdG9wLXdpZHRoOiAxcHg7IH1cXG4gIC5hZy10aGVtZS1tYXRlcmlhbCAuYWctcnRsIC5hZy1zaWRlLWJhciAuYWctc2lkZS1idXR0b25zIC5hZy1zZWxlY3RlZCBidXR0b24ge1xcbiAgICBib3JkZXItbGVmdDogMDtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctbGVmdDogMDtcXG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzNmNTFiNTtcXG4gICAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcHg7IH1cXG5cXG5cIiIsIm1vZHVsZS5leHBvcnRzID0gXCIuZmxhdHBpY2tyLWNhbGVuZGFyIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgb3BhY2l0eTogMDtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBwYWRkaW5nOiAwO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTtcXG4gIGRpcmVjdGlvbjogbHRyO1xcbiAgYm9yZGVyOiAwO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMzA3Ljg3NXB4O1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgLW1zLXRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xcbiAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2LCAtMXB4IDAgMCAjZTZlNmU2LCAwIDFweCAwICNlNmU2ZTYsIDAgLTFweCAwICNlNmU2ZTYsIDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMXB4IDAgMCAjZTZlNmU2LCAtMXB4IDAgMCAjZTZlNmU2LCAwIDFweCAwICNlNmU2ZTYsIDAgLTFweCAwICNlNmU2ZTYsIDAgM3B4IDEzcHggcmdiYSgwLDAsMCwwLjA4KTtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5vcGVuLFxcbi5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5lIHtcXG4gIG9wYWNpdHk6IDE7XFxuICBtYXgtaGVpZ2h0OiA2NDBweDtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIub3BlbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB6LWluZGV4OiA5OTk5OTtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5hbmltYXRlLm9wZW4ge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IGZwRmFkZUluRG93biAzMDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICAgICAgICAgIGFuaW1hdGlvbjogZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmUge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0b3A6IDJweDtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5zdGF0aWMge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiBjYWxjKDEwMCUgKyAycHgpO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpYy5vcGVuIHtcXG4gIHotaW5kZXg6IDk5OTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMSkgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rNykge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5tdWx0aU1vbnRoIC5mbGF0cGlja3ItZGF5cyAuZGF5Q29udGFpbmVyOm50aC1jaGlsZChuKzIpIC5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bnRoLWNoaWxkKDduKzEpIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTJweCAwIDAgI2U2ZTZlNiwgNXB4IDAgMCAjZTZlNmU2O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAtMnB4IDAgMCAjZTZlNmU2LCA1cHggMCAwICNlNmU2ZTY7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXIsXFxuLmZsYXRwaWNrci1jYWxlbmRhciAuaGFzVGltZSAuZGF5Q29udGFpbmVyIHtcXG4gIGJvcmRlci1ib3R0b206IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXIge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIuc2hvd1RpbWVJbnB1dC5oYXNUaW1lIC5mbGF0cGlja3ItdGltZSB7XFxuICBoZWlnaHQ6IDQwcHg7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2U2ZTZlNjtcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhci5ub0NhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1lIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuLmZsYXRwaWNrci1jYWxlbmRhcjpiZWZvcmUsXFxuLmZsYXRwaWNrci1jYWxlbmRhcjphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgaGVpZ2h0OiAwO1xcbiAgd2lkdGg6IDA7XFxuICBsZWZ0OiAyMnB4O1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLnJpZ2h0TW9zdDpiZWZvcmUsXFxuLmZsYXRwaWNrci1jYWxlbmRhci5yaWdodE1vc3Q6YWZ0ZXIge1xcbiAgbGVmdDogYXV0bztcXG4gIHJpZ2h0OiAyMnB4O1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZSB7XFxuICBib3JkZXItd2lkdGg6IDVweDtcXG4gIG1hcmdpbjogMCAtNXB4O1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyOmFmdGVyIHtcXG4gIGJvcmRlci13aWR0aDogNHB4O1xcbiAgbWFyZ2luOiAwIC00cHg7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YmVmb3JlLFxcbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXIge1xcbiAgYm90dG9tOiAxMDAlO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiAjZTZlNmU2O1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmFmdGVyIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNmZmY7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3JlLFxcbi5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXIge1xcbiAgdG9wOiAxMDAlO1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmJlZm9yZSB7XFxuICBib3JkZXItdG9wLWNvbG9yOiAjZTZlNmU2O1xcbn1cXG4uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmFmdGVyIHtcXG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmY7XFxufVxcbi5mbGF0cGlja3ItY2FsZW5kYXI6Zm9jdXMge1xcbiAgb3V0bGluZTogMDtcXG59XFxuLmZsYXRwaWNrci13cmFwcGVyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuLmZsYXRwaWNrci1tb250aHMge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbW9udGgge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjkpO1xcbiAgZmlsbDogcmdiYSgwLDAsMCwwLjkpO1xcbiAgaGVpZ2h0OiAzNHB4O1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAtd2Via2l0LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7XFxufVxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCxcXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGgge1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgaGVpZ2h0OiAzNHB4O1xcbiAgcGFkZGluZzogMTBweDtcXG4gIHotaW5kZXg6IDM7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjkpO1xcbiAgZmlsbDogcmdiYSgwLDAsMCwwLjkpO1xcbn1cXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLWRpc2FibGVkLFxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItZGlzYWJsZWQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIGksXFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIGkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgsXFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoIHtcXG4vKlxcbiAgICAgIC8qcnRsOmJlZ2luOmlnbm9yZSovXFxuLypcXG4gICAgICAqL1xcbiAgbGVmdDogMDtcXG4vKlxcbiAgICAgIC8qcnRsOmVuZDppZ25vcmUqL1xcbi8qXFxuICAgICAgKi9cXG59XFxuLypcXG4gICAgICAvKnJ0bDpiZWdpbjppZ25vcmUqL1xcbi8qXFxuICAgICAgLypydGw6ZW5kOmlnbm9yZSovXFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1uZXh0LW1vbnRoLFxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCB7XFxuLypcXG4gICAgICAvKnJ0bDpiZWdpbjppZ25vcmUqL1xcbi8qXFxuICAgICAgKi9cXG4gIHJpZ2h0OiAwO1xcbi8qXFxuICAgICAgLypydGw6ZW5kOmlnbm9yZSovXFxuLypcXG4gICAgICAqL1xcbn1cXG4vKlxcbiAgICAgIC8qcnRsOmJlZ2luOmlnbm9yZSovXFxuLypcXG4gICAgICAvKnJ0bDplbmQ6aWdub3JlKi9cXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGg6aG92ZXIsXFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVyIHtcXG4gIGNvbG9yOiAjOTU5ZWE5O1xcbn1cXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGg6aG92ZXIgc3ZnLFxcbi5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3ZlciBzdmcge1xcbiAgZmlsbDogI2Y2NDc0NztcXG59XFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZyxcXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggc3ZnIHtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgaGVpZ2h0OiAxNHB4O1xcbn1cXG4uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnIHBhdGgsXFxuLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyBwYXRoIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogZmlsbCAwLjFzO1xcbiAgdHJhbnNpdGlvbjogZmlsbCAwLjFzO1xcbiAgZmlsbDogaW5oZXJpdDtcXG59XFxuLm51bUlucHV0V3JhcHBlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQsXFxuLm51bUlucHV0V3JhcHBlciBzcGFuIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuLm51bUlucHV0V3JhcHBlciBpbnB1dCB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLm51bUlucHV0V3JhcHBlciBpbnB1dDo6LW1zLWNsZWFyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXFxuLm51bUlucHV0V3JhcHBlciBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XFxuICBtYXJnaW46IDA7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgc3BhbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMDtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgcGFkZGluZzogMCA0cHggMCAycHg7XFxuICBoZWlnaHQ6IDUwJTtcXG4gIGxpbmUtaGVpZ2h0OiA1MCU7XFxuICBvcGFjaXR5OiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjE1KTtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG59XFxuLm51bUlucHV0V3JhcHBlciBzcGFuOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLm51bUlucHV0V3JhcHBlciBzcGFuOmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgc3BhbjphZnRlciB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcCB7XFxuICB0b3A6IDA7XFxuICBib3JkZXItYm90dG9tOiAwO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlciB7XFxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO1xcbiAgdG9wOiAyNiU7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd24ge1xcbiAgdG9wOiA1MCU7XFxufVxcbi5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXIge1xcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTtcXG4gIHRvcDogNDAlO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3ZnIHtcXG4gIHdpZHRoOiBpbmhlcml0O1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3ZnIHBhdGgge1xcbiAgZmlsbDogcmdiYSgwLDAsMCwwLjUpO1xcbn1cXG4ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XFxufVxcbi5udW1JbnB1dFdyYXBwZXI6aG92ZXIgc3BhbiB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgge1xcbiAgZm9udC1zaXplOiAxMzUlO1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogNzUlO1xcbiAgbGVmdDogMTIuNSU7XFxuICBwYWRkaW5nOiA3LjQ4cHggMCAwIDA7XFxuICBsaW5lLWhlaWdodDogMTtcXG4gIGhlaWdodDogMzRweDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcXG59XFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoIHtcXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbWFyZ2luLWxlZnQ6IDAuNWNoO1xcbiAgcGFkZGluZzogMDtcXG59XFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHtcXG4gIHdpZHRoOiA2Y2g7XFxuICB3aWR0aDogN2NoXFxcXDA7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlciB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsMCwwLDAuOSk7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVyIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMCwwLDAsMC45KTtcXG59XFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBjdXJzb3I6IHRleHQ7XFxuICBwYWRkaW5nOiAwIDAgMCAwLjVjaDtcXG4gIG1hcmdpbjogMDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgYm9yZGVyOiAwO1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG4gIHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcXG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcXG59XFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyOmZvY3VzIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF0sXFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyW2Rpc2FibGVkXTpob3ZlciB7XFxuICBmb250LXNpemU6IDEwMCU7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHMge1xcbiAgYXBwZWFyYW5jZTogbWVudWxpc3Q7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBoZWlnaHQ6IGF1dG87XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gIG1hcmdpbjogLTFweCAwIDAgMDtcXG4gIG91dGxpbmU6IG5vbmU7XFxuICBwYWRkaW5nOiAwIDAgMCAwLjVjaDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZW51bGlzdDtcXG4gIC1tb3otYXBwZWFyYW5jZTogbWVudWxpc3Q7XFxuICB3aWR0aDogYXV0bztcXG59XFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6Zm9jdXMsXFxuLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6YWN0aXZlIHtcXG4gIG91dGxpbmU6IG5vbmU7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XFxufVxcbi5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gIG91dGxpbmU6IG5vbmU7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG4uZmxhdHBpY2tyLXdlZWtkYXlzIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBoZWlnaHQ6IDI4cHg7XFxufVxcbi5mbGF0cGlja3Itd2Vla2RheXMgLmZsYXRwaWNrci13ZWVrZGF5Y29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gIC13ZWJraXQtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMTtcXG4gICAgICAgICAgZmxleDogMTtcXG59XFxuc3Bhbi5mbGF0cGlja3Itd2Vla2RheSB7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxuICBmb250LXNpemU6IDkwJTtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC41NCk7XFxuICBsaW5lLWhlaWdodDogMTtcXG4gIG1hcmdpbjogMDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gIC13ZWJraXQtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMTtcXG4gICAgICAgICAgZmxleDogMTtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxufVxcbi5kYXlDb250YWluZXIsXFxuLmZsYXRwaWNrci13ZWVrcyB7XFxuICBwYWRkaW5nOiAxcHggMCAwIDA7XFxufVxcbi5mbGF0cGlja3ItZGF5cyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxuICB3aWR0aDogMzA3Ljg3NXB4O1xcbn1cXG4uZmxhdHBpY2tyLWRheXM6Zm9jdXMge1xcbiAgb3V0bGluZTogMDtcXG59XFxuLmRheUNvbnRhaW5lciB7XFxuICBwYWRkaW5nOiAwO1xcbiAgb3V0bGluZTogMDtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICB3aWR0aDogMzA3Ljg3NXB4O1xcbiAgbWluLXdpZHRoOiAzMDcuODc1cHg7XFxuICBtYXgtd2lkdGg6IDMwNy44NzVweDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAtbXMtZmxleC1wYWNrOiBqdXN0aWZ5O1xcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4uZGF5Q29udGFpbmVyICsgLmRheUNvbnRhaW5lciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggMCAwICNlNmU2ZTY7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IC0xcHggMCAwICNlNmU2ZTY7XFxufVxcbi5mbGF0cGlja3ItZGF5IHtcXG4gIGJhY2tncm91bmQ6IG5vbmU7XFxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IDE1MHB4O1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgY29sb3I6ICMzOTM5Mzk7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgd2lkdGg6IDE0LjI4NTcxNDMlO1xcbiAgLXdlYmtpdC1mbGV4LWJhc2lzOiAxNC4yODU3MTQzJTtcXG4gICAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogMTQuMjg1NzE0MyU7XFxuICAgICAgICAgIGZsZXgtYmFzaXM6IDE0LjI4NTcxNDMlO1xcbiAgbWF4LXdpZHRoOiAzOXB4O1xcbiAgaGVpZ2h0OiAzOXB4O1xcbiAgbGluZS1oZWlnaHQ6IDM5cHg7XFxuICBtYXJnaW46IDA7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5mbGF0cGlja3ItZGF5LmluUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LmluUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LmluUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkudG9kYXkuaW5SYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkudG9kYXkuaW5SYW5nZSxcXG4uZmxhdHBpY2tyLWRheTpob3ZlcixcXG4uZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6aG92ZXIsXFxuLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmhvdmVyLFxcbi5mbGF0cGlja3ItZGF5OmZvY3VzLFxcbi5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpmb2N1cyxcXG4uZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6Zm9jdXMge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgb3V0bGluZTogMDtcXG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7XFxuICBib3JkZXItY29sb3I6ICNlNmU2ZTY7XFxufVxcbi5mbGF0cGlja3ItZGF5LnRvZGF5IHtcXG4gIGJvcmRlci1jb2xvcjogIzk1OWVhOTtcXG59XFxuLmZsYXRwaWNrci1kYXkudG9kYXk6aG92ZXIsXFxuLmZsYXRwaWNrci1kYXkudG9kYXk6Zm9jdXMge1xcbiAgYm9yZGVyLWNvbG9yOiAjOTU5ZWE5O1xcbiAgYmFja2dyb3VuZDogIzk1OWVhOTtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZCxcXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmluUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5pblJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmluUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6Zm9jdXMsXFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpmb2N1cyxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpmb2N1cyxcXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpob3ZlcixcXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmhvdmVyLFxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmhvdmVyLFxcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnByZXZNb250aERheSxcXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnByZXZNb250aERheSxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5wcmV2TW9udGhEYXksXFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQubmV4dE1vbnRoRGF5LFxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UubmV4dE1vbnRoRGF5LFxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLm5leHRNb250aERheSB7XFxuICBiYWNrZ3JvdW5kOiAjNTY5ZmY3O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgY29sb3I6ICNmZmY7XFxuICBib3JkZXItY29sb3I6ICM1NjlmZjc7XFxufVxcbi5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2Uge1xcbiAgYm9yZGVyLXJhZGl1czogNTBweCAwIDAgNTBweDtcXG59XFxuLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuZW5kUmFuZ2UsXFxuLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5lbmRSYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5lbmRSYW5nZSB7XFxuICBib3JkZXItcmFkaXVzOiAwIDUwcHggNTBweCAwO1xcbn1cXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSxcXG4uZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpLFxcbi5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTEwcHggMCAwICM1NjlmZjc7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IC0xMHB4IDAgMCAjNTY5ZmY3O1xcbn1cXG4uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLmVuZFJhbmdlLFxcbi5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZSxcXG4uZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XFxufVxcbi5mbGF0cGlja3ItZGF5LmluUmFuZ2Uge1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTVweCAwIDAgI2U2ZTZlNiwgNXB4IDAgMCAjZTZlNmU2O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAtNXB4IDAgMCAjZTZlNmU2LCA1cHggMCAwICNlNmU2ZTY7XFxufVxcbi5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZCxcXG4uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQ6aG92ZXIsXFxuLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LFxcbi5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheSxcXG4uZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLFxcbi5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQucHJldk1vbnRoRGF5LFxcbi5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQubmV4dE1vbnRoRGF5IHtcXG4gIGNvbG9yOiByZ2JhKDU3LDU3LDU3LDAuMyk7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcbi5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZCxcXG4uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQ6aG92ZXIge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gIGNvbG9yOiByZ2JhKDU3LDU3LDU3LDAuMSk7XFxufVxcbi5mbGF0cGlja3ItZGF5LndlZWsuc2VsZWN0ZWQge1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogLTVweCAwIDAgIzU2OWZmNywgNXB4IDAgMCAjNTY5ZmY3O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAtNXB4IDAgMCAjNTY5ZmY3LCA1cHggMCAwICM1NjlmZjc7XFxufVxcbi5mbGF0cGlja3ItZGF5LmhpZGRlbiB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5yYW5nZU1vZGUgLmZsYXRwaWNrci1kYXkge1xcbiAgbWFyZ2luLXRvcDogMXB4O1xcbn1cXG4uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHtcXG4gIGZsb2F0OiBsZWZ0O1xcbn1cXG4uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla3Mge1xcbiAgcGFkZGluZzogMCAxMnB4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAxcHggMCAwICNlNmU2ZTY7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDFweCAwIDAgI2U2ZTZlNjtcXG59XFxuLmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtkYXkge1xcbiAgZmxvYXQ6IG5vbmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xcbn1cXG4uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheSxcXG4uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheTpob3ZlciB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiBub25lO1xcbiAgY29sb3I6IHJnYmEoNTcsNTcsNTcsMC4zKTtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgYm9yZGVyOiBub25lO1xcbn1cXG4uZmxhdHBpY2tyLWlubmVyQ29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4uZmxhdHBpY2tyLXJDb250YWluZXIge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgcGFkZGluZzogMDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG59XFxuLmZsYXRwaWNrci10aW1lIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIG91dGxpbmU6IDA7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGhlaWdodDogMDtcXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgbWF4LWhlaWdodDogNDBweDtcXG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG59XFxuLmZsYXRwaWNrci10aW1lOmFmdGVyIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgZGlzcGxheTogdGFibGU7XFxuICBjbGVhcjogYm90aDtcXG59XFxuLmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gIC13ZWJraXQtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMTtcXG4gICAgICAgICAgZmxleDogMTtcXG4gIHdpZHRoOiA0MCU7XFxuICBoZWlnaHQ6IDQwcHg7XFxuICBmbG9hdDogbGVmdDtcXG59XFxuLmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVyIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICMzOTM5Mzk7XFxufVxcbi5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVyIHtcXG4gIGJvcmRlci10b3AtY29sb3I6ICMzOTM5Mzk7XFxufVxcbi5mbGF0cGlja3ItdGltZS5oYXNTZWNvbmRzIC5udW1JbnB1dFdyYXBwZXIge1xcbiAgd2lkdGg6IDI2JTtcXG59XFxuLmZsYXRwaWNrci10aW1lLnRpbWUyNGhyIC5udW1JbnB1dFdyYXBwZXIge1xcbiAgd2lkdGg6IDQ5JTtcXG59XFxuLmZsYXRwaWNrci10aW1lIGlucHV0IHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbiAgYm9yZGVyOiAwO1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBoZWlnaHQ6IGluaGVyaXQ7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gIGNvbG9yOiAjMzkzOTM5O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcXG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcXG59XFxuLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1ob3VyIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLW1pbnV0ZSxcXG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQuZmxhdHBpY2tyLXNlY29uZCB7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXMge1xcbiAgb3V0bGluZTogMDtcXG4gIGJvcmRlcjogMDtcXG59XFxuLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItdGltZS1zZXBhcmF0b3IsXFxuLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG0ge1xcbiAgaGVpZ2h0OiBpbmhlcml0O1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gIGNvbG9yOiAjMzkzOTM5O1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICB3aWR0aDogMiU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XFxufVxcbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtIHtcXG4gIG91dGxpbmU6IDA7XFxuICB3aWR0aDogMTglO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLmZsYXRwaWNrci10aW1lIGlucHV0OmhvdmVyLFxcbi5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmhvdmVyLFxcbi5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1cyxcXG4uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiAjZWVlO1xcbn1cXG4uZmxhdHBpY2tyLWlucHV0W3JlYWRvbmx5XSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBmcEZhZGVJbkRvd24ge1xcbiAgZnJvbSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XFxuICB9XFxuICB0byB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIGZwRmFkZUluRG93biB7XFxuICBmcm9tIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcXG4gIH1cXG4gIHRvIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICB9XFxufVxcblwiIiwibW9kdWxlLmV4cG9ydHMgPSBcIi8qXFxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cXG4qXFxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXFxuKi9cXG5cXG4uZ3ctYWxpZ25tZW50LWNlbGwtcmlnaHQsXFxuLmd3LWFsaWdubWVudC1jZWxsLXJpZ2h0IC5hZy1jZWxsLXZhbHVlIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgICAgZmxleDogMTtcXG59XFxuXFxuLmd3LWFsaWdubWVudC1jZWxsLWNlbnRlcixcXG4uZ3ctYWxpZ25tZW50LWNlbGwtY2VudGVyIC5hZy1jZWxsLXZhbHVlIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMTtcXG4gICAgICAgICAgICBmbGV4OiAxO1xcbn1cXG5cXG4uZ3ctYWxpZ25tZW50LWhlYWRlci1yaWdodCAuYWctaGVhZGVyLWNlbGwtbGFiZWwge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyAgICBcXG59XFxuXFxuLmd3LWFsaWdubWVudC1oZWFkZXItY2VudGVyIC5hZy1oZWFkZXItY2VsbC1sYWJlbCB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuXFxuLmd3LWFsaWdubWVudC1oZWFkZXItcmlnaHQgLmFnLWNlbGwtbGFiZWwtY29udGFpbmVyLFxcbi5ndy1hbGlnbm1lbnQtaGVhZGVyLWNlbnRlciAuYWctY2VsbC1sYWJlbC1jb250YWluZXIge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG59XCIiLCIvKlxuXHRNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuXHRBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4qL1xuXG52YXIgc3R5bGVzSW5Eb20gPSB7fTtcblxudmFyXHRtZW1vaXplID0gZnVuY3Rpb24gKGZuKSB7XG5cdHZhciBtZW1vO1xuXG5cdHJldHVybiBmdW5jdGlvbiAoKSB7XG5cdFx0aWYgKHR5cGVvZiBtZW1vID09PSBcInVuZGVmaW5lZFwiKSBtZW1vID0gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblx0XHRyZXR1cm4gbWVtbztcblx0fTtcbn07XG5cbnZhciBpc09sZElFID0gbWVtb2l6ZShmdW5jdGlvbiAoKSB7XG5cdC8vIFRlc3QgZm9yIElFIDw9IDkgYXMgcHJvcG9zZWQgYnkgQnJvd3NlcmhhY2tzXG5cdC8vIEBzZWUgaHR0cDovL2Jyb3dzZXJoYWNrcy5jb20vI2hhY2stZTcxZDg2OTJmNjUzMzQxNzNmZWU3MTVjMjIyY2I4MDVcblx0Ly8gVGVzdHMgZm9yIGV4aXN0ZW5jZSBvZiBzdGFuZGFyZCBnbG9iYWxzIGlzIHRvIGFsbG93IHN0eWxlLWxvYWRlclxuXHQvLyB0byBvcGVyYXRlIGNvcnJlY3RseSBpbnRvIG5vbi1zdGFuZGFyZCBlbnZpcm9ubWVudHNcblx0Ly8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay1jb250cmliL3N0eWxlLWxvYWRlci9pc3N1ZXMvMTc3XG5cdHJldHVybiB3aW5kb3cgJiYgZG9jdW1lbnQgJiYgZG9jdW1lbnQuYWxsICYmICF3aW5kb3cuYXRvYjtcbn0pO1xuXG52YXIgZ2V0VGFyZ2V0ID0gZnVuY3Rpb24gKHRhcmdldCkge1xuICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xufTtcblxudmFyIGdldEVsZW1lbnQgPSAoZnVuY3Rpb24gKGZuKSB7XG5cdHZhciBtZW1vID0ge307XG5cblx0cmV0dXJuIGZ1bmN0aW9uKHRhcmdldCkge1xuICAgICAgICAgICAgICAgIC8vIElmIHBhc3NpbmcgZnVuY3Rpb24gaW4gb3B0aW9ucywgdGhlbiB1c2UgaXQgZm9yIHJlc29sdmUgXCJoZWFkXCIgZWxlbWVudC5cbiAgICAgICAgICAgICAgICAvLyBVc2VmdWwgZm9yIFNoYWRvdyBSb290IHN0eWxlIGkuZVxuICAgICAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgICAgICAvLyAgIGluc2VydEludG86IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjZm9vXCIpLnNoYWRvd1Jvb3QgfVxuICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuXHRcdFx0dmFyIHN0eWxlVGFyZ2V0ID0gZ2V0VGFyZ2V0LmNhbGwodGhpcywgdGFyZ2V0KTtcblx0XHRcdC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG5cdFx0XHRpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Ly8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcblx0XHRcdFx0XHQvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuXHRcdFx0XHRcdHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG5cdFx0XHRcdH0gY2F0Y2goZSkge1xuXHRcdFx0XHRcdHN0eWxlVGFyZ2V0ID0gbnVsbDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0bWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG5cdFx0fVxuXHRcdHJldHVybiBtZW1vW3RhcmdldF1cblx0fTtcbn0pKCk7XG5cbnZhciBzaW5nbGV0b24gPSBudWxsO1xudmFyXHRzaW5nbGV0b25Db3VudGVyID0gMDtcbnZhclx0c3R5bGVzSW5zZXJ0ZWRBdFRvcCA9IFtdO1xuXG52YXJcdGZpeFVybHMgPSByZXF1aXJlKFwiLi91cmxzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGxpc3QsIG9wdGlvbnMpIHtcblx0aWYgKHR5cGVvZiBERUJVRyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBERUJVRykge1xuXHRcdGlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwib2JqZWN0XCIpIHRocm93IG5ldyBFcnJvcihcIlRoZSBzdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudFwiKTtcblx0fVxuXG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG5cdG9wdGlvbnMuYXR0cnMgPSB0eXBlb2Ygb3B0aW9ucy5hdHRycyA9PT0gXCJvYmplY3RcIiA/IG9wdGlvbnMuYXR0cnMgOiB7fTtcblxuXHQvLyBGb3JjZSBzaW5nbGUtdGFnIHNvbHV0aW9uIG9uIElFNi05LCB3aGljaCBoYXMgYSBoYXJkIGxpbWl0IG9uIHRoZSAjIG9mIDxzdHlsZT5cblx0Ly8gdGFncyBpdCB3aWxsIGFsbG93IG9uIGEgcGFnZVxuXHRpZiAoIW9wdGlvbnMuc2luZ2xldG9uICYmIHR5cGVvZiBvcHRpb25zLnNpbmdsZXRvbiAhPT0gXCJib29sZWFuXCIpIG9wdGlvbnMuc2luZ2xldG9uID0gaXNPbGRJRSgpO1xuXG5cdC8vIEJ5IGRlZmF1bHQsIGFkZCA8c3R5bGU+IHRhZ3MgdG8gdGhlIDxoZWFkPiBlbGVtZW50XG4gICAgICAgIGlmICghb3B0aW9ucy5pbnNlcnRJbnRvKSBvcHRpb25zLmluc2VydEludG8gPSBcImhlYWRcIjtcblxuXHQvLyBCeSBkZWZhdWx0LCBhZGQgPHN0eWxlPiB0YWdzIHRvIHRoZSBib3R0b20gb2YgdGhlIHRhcmdldFxuXHRpZiAoIW9wdGlvbnMuaW5zZXJ0QXQpIG9wdGlvbnMuaW5zZXJ0QXQgPSBcImJvdHRvbVwiO1xuXG5cdHZhciBzdHlsZXMgPSBsaXN0VG9TdHlsZXMobGlzdCwgb3B0aW9ucyk7XG5cblx0YWRkU3R5bGVzVG9Eb20oc3R5bGVzLCBvcHRpb25zKTtcblxuXHRyZXR1cm4gZnVuY3Rpb24gdXBkYXRlIChuZXdMaXN0KSB7XG5cdFx0dmFyIG1heVJlbW92ZSA9IFtdO1xuXG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBpdGVtID0gc3R5bGVzW2ldO1xuXHRcdFx0dmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF07XG5cblx0XHRcdGRvbVN0eWxlLnJlZnMtLTtcblx0XHRcdG1heVJlbW92ZS5wdXNoKGRvbVN0eWxlKTtcblx0XHR9XG5cblx0XHRpZihuZXdMaXN0KSB7XG5cdFx0XHR2YXIgbmV3U3R5bGVzID0gbGlzdFRvU3R5bGVzKG5ld0xpc3QsIG9wdGlvbnMpO1xuXHRcdFx0YWRkU3R5bGVzVG9Eb20obmV3U3R5bGVzLCBvcHRpb25zKTtcblx0XHR9XG5cblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IG1heVJlbW92ZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIGRvbVN0eWxlID0gbWF5UmVtb3ZlW2ldO1xuXG5cdFx0XHRpZihkb21TdHlsZS5yZWZzID09PSAwKSB7XG5cdFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIGRvbVN0eWxlLnBhcnRzW2pdKCk7XG5cblx0XHRcdFx0ZGVsZXRlIHN0eWxlc0luRG9tW2RvbVN0eWxlLmlkXTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG59O1xuXG5mdW5jdGlvbiBhZGRTdHlsZXNUb0RvbSAoc3R5bGVzLCBvcHRpb25zKSB7XG5cdGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIGl0ZW0gPSBzdHlsZXNbaV07XG5cdFx0dmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF07XG5cblx0XHRpZihkb21TdHlsZSkge1xuXHRcdFx0ZG9tU3R5bGUucmVmcysrO1xuXG5cdFx0XHRmb3IodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0ZG9tU3R5bGUucGFydHNbal0oaXRlbS5wYXJ0c1tqXSk7XG5cdFx0XHR9XG5cblx0XHRcdGZvcig7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGRvbVN0eWxlLnBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSwgb3B0aW9ucykpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YXIgcGFydHMgPSBbXTtcblxuXHRcdFx0Zm9yKHZhciBqID0gMDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0cGFydHMucHVzaChhZGRTdHlsZShpdGVtLnBhcnRzW2pdLCBvcHRpb25zKSk7XG5cdFx0XHR9XG5cblx0XHRcdHN0eWxlc0luRG9tW2l0ZW0uaWRdID0ge2lkOiBpdGVtLmlkLCByZWZzOiAxLCBwYXJ0czogcGFydHN9O1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBsaXN0VG9TdHlsZXMgKGxpc3QsIG9wdGlvbnMpIHtcblx0dmFyIHN0eWxlcyA9IFtdO1xuXHR2YXIgbmV3U3R5bGVzID0ge307XG5cblx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIGl0ZW0gPSBsaXN0W2ldO1xuXHRcdHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuXHRcdHZhciBjc3MgPSBpdGVtWzFdO1xuXHRcdHZhciBtZWRpYSA9IGl0ZW1bMl07XG5cdFx0dmFyIHNvdXJjZU1hcCA9IGl0ZW1bM107XG5cdFx0dmFyIHBhcnQgPSB7Y3NzOiBjc3MsIG1lZGlhOiBtZWRpYSwgc291cmNlTWFwOiBzb3VyY2VNYXB9O1xuXG5cdFx0aWYoIW5ld1N0eWxlc1tpZF0pIHN0eWxlcy5wdXNoKG5ld1N0eWxlc1tpZF0gPSB7aWQ6IGlkLCBwYXJ0czogW3BhcnRdfSk7XG5cdFx0ZWxzZSBuZXdTdHlsZXNbaWRdLnBhcnRzLnB1c2gocGFydCk7XG5cdH1cblxuXHRyZXR1cm4gc3R5bGVzO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQgKG9wdGlvbnMsIHN0eWxlKSB7XG5cdHZhciB0YXJnZXQgPSBnZXRFbGVtZW50KG9wdGlvbnMuaW5zZXJ0SW50bylcblxuXHRpZiAoIXRhcmdldCkge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0SW50bycgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuXHR9XG5cblx0dmFyIGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wID0gc3R5bGVzSW5zZXJ0ZWRBdFRvcFtzdHlsZXNJbnNlcnRlZEF0VG9wLmxlbmd0aCAtIDFdO1xuXG5cdGlmIChvcHRpb25zLmluc2VydEF0ID09PSBcInRvcFwiKSB7XG5cdFx0aWYgKCFsYXN0U3R5bGVFbGVtZW50SW5zZXJ0ZWRBdFRvcCkge1xuXHRcdFx0dGFyZ2V0Lmluc2VydEJlZm9yZShzdHlsZSwgdGFyZ2V0LmZpcnN0Q2hpbGQpO1xuXHRcdH0gZWxzZSBpZiAobGFzdFN0eWxlRWxlbWVudEluc2VydGVkQXRUb3AubmV4dFNpYmxpbmcpIHtcblx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoc3R5bGUsIGxhc3RTdHlsZUVsZW1lbnRJbnNlcnRlZEF0VG9wLm5leHRTaWJsaW5nKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcblx0XHR9XG5cdFx0c3R5bGVzSW5zZXJ0ZWRBdFRvcC5wdXNoKHN0eWxlKTtcblx0fSBlbHNlIGlmIChvcHRpb25zLmluc2VydEF0ID09PSBcImJvdHRvbVwiKSB7XG5cdFx0dGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcblx0fSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucy5pbnNlcnRBdCA9PT0gXCJvYmplY3RcIiAmJiBvcHRpb25zLmluc2VydEF0LmJlZm9yZSkge1xuXHRcdHZhciBuZXh0U2libGluZyA9IGdldEVsZW1lbnQob3B0aW9ucy5pbnNlcnRJbnRvICsgXCIgXCIgKyBvcHRpb25zLmluc2VydEF0LmJlZm9yZSk7XG5cdFx0dGFyZ2V0Lmluc2VydEJlZm9yZShzdHlsZSwgbmV4dFNpYmxpbmcpO1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIltTdHlsZSBMb2FkZXJdXFxuXFxuIEludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAnaW5zZXJ0QXQnICgnb3B0aW9ucy5pbnNlcnRBdCcpIGZvdW5kLlxcbiBNdXN0IGJlICd0b3AnLCAnYm90dG9tJywgb3IgT2JqZWN0LlxcbiAoaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9zdHlsZS1sb2FkZXIjaW5zZXJ0YXQpXFxuXCIpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudCAoc3R5bGUpIHtcblx0aWYgKHN0eWxlLnBhcmVudE5vZGUgPT09IG51bGwpIHJldHVybiBmYWxzZTtcblx0c3R5bGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZSk7XG5cblx0dmFyIGlkeCA9IHN0eWxlc0luc2VydGVkQXRUb3AuaW5kZXhPZihzdHlsZSk7XG5cdGlmKGlkeCA+PSAwKSB7XG5cdFx0c3R5bGVzSW5zZXJ0ZWRBdFRvcC5zcGxpY2UoaWR4LCAxKTtcblx0fVxufVxuXG5mdW5jdGlvbiBjcmVhdGVTdHlsZUVsZW1lbnQgKG9wdGlvbnMpIHtcblx0dmFyIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuXG5cdG9wdGlvbnMuYXR0cnMudHlwZSA9IFwidGV4dC9jc3NcIjtcblxuXHRhZGRBdHRycyhzdHlsZSwgb3B0aW9ucy5hdHRycyk7XG5cdGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zLCBzdHlsZSk7XG5cblx0cmV0dXJuIHN0eWxlO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMaW5rRWxlbWVudCAob3B0aW9ucykge1xuXHR2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO1xuXG5cdG9wdGlvbnMuYXR0cnMudHlwZSA9IFwidGV4dC9jc3NcIjtcblx0b3B0aW9ucy5hdHRycy5yZWwgPSBcInN0eWxlc2hlZXRcIjtcblxuXHRhZGRBdHRycyhsaW5rLCBvcHRpb25zLmF0dHJzKTtcblx0aW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMsIGxpbmspO1xuXG5cdHJldHVybiBsaW5rO1xufVxuXG5mdW5jdGlvbiBhZGRBdHRycyAoZWwsIGF0dHJzKSB7XG5cdE9iamVjdC5rZXlzKGF0dHJzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcblx0XHRlbC5zZXRBdHRyaWJ1dGUoa2V5LCBhdHRyc1trZXldKTtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIGFkZFN0eWxlIChvYmosIG9wdGlvbnMpIHtcblx0dmFyIHN0eWxlLCB1cGRhdGUsIHJlbW92ZSwgcmVzdWx0O1xuXG5cdC8vIElmIGEgdHJhbnNmb3JtIGZ1bmN0aW9uIHdhcyBkZWZpbmVkLCBydW4gaXQgb24gdGhlIGNzc1xuXHRpZiAob3B0aW9ucy50cmFuc2Zvcm0gJiYgb2JqLmNzcykge1xuXHQgICAgcmVzdWx0ID0gb3B0aW9ucy50cmFuc2Zvcm0ob2JqLmNzcyk7XG5cblx0ICAgIGlmIChyZXN1bHQpIHtcblx0ICAgIFx0Ly8gSWYgdHJhbnNmb3JtIHJldHVybnMgYSB2YWx1ZSwgdXNlIHRoYXQgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgY3NzLlxuXHQgICAgXHQvLyBUaGlzIGFsbG93cyBydW5uaW5nIHJ1bnRpbWUgdHJhbnNmb3JtYXRpb25zIG9uIHRoZSBjc3MuXG5cdCAgICBcdG9iai5jc3MgPSByZXN1bHQ7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgXHQvLyBJZiB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uIHJldHVybnMgYSBmYWxzeSB2YWx1ZSwgZG9uJ3QgYWRkIHRoaXMgY3NzLlxuXHQgICAgXHQvLyBUaGlzIGFsbG93cyBjb25kaXRpb25hbCBsb2FkaW5nIG9mIGNzc1xuXHQgICAgXHRyZXR1cm4gZnVuY3Rpb24oKSB7XG5cdCAgICBcdFx0Ly8gbm9vcFxuXHQgICAgXHR9O1xuXHQgICAgfVxuXHR9XG5cblx0aWYgKG9wdGlvbnMuc2luZ2xldG9uKSB7XG5cdFx0dmFyIHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKys7XG5cblx0XHRzdHlsZSA9IHNpbmdsZXRvbiB8fCAoc2luZ2xldG9uID0gY3JlYXRlU3R5bGVFbGVtZW50KG9wdGlvbnMpKTtcblxuXHRcdHVwZGF0ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgZmFsc2UpO1xuXHRcdHJlbW92ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZSwgc3R5bGVJbmRleCwgdHJ1ZSk7XG5cblx0fSBlbHNlIGlmIChcblx0XHRvYmouc291cmNlTWFwICYmXG5cdFx0dHlwZW9mIFVSTCA9PT0gXCJmdW5jdGlvblwiICYmXG5cdFx0dHlwZW9mIFVSTC5jcmVhdGVPYmplY3RVUkwgPT09IFwiZnVuY3Rpb25cIiAmJlxuXHRcdHR5cGVvZiBVUkwucmV2b2tlT2JqZWN0VVJMID09PSBcImZ1bmN0aW9uXCIgJiZcblx0XHR0eXBlb2YgQmxvYiA9PT0gXCJmdW5jdGlvblwiICYmXG5cdFx0dHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIlxuXHQpIHtcblx0XHRzdHlsZSA9IGNyZWF0ZUxpbmtFbGVtZW50KG9wdGlvbnMpO1xuXHRcdHVwZGF0ZSA9IHVwZGF0ZUxpbmsuYmluZChudWxsLCBzdHlsZSwgb3B0aW9ucyk7XG5cdFx0cmVtb3ZlID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0cmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKTtcblxuXHRcdFx0aWYoc3R5bGUuaHJlZikgVVJMLnJldm9rZU9iamVjdFVSTChzdHlsZS5ocmVmKTtcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdHN0eWxlID0gY3JlYXRlU3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuXHRcdHVwZGF0ZSA9IGFwcGx5VG9UYWcuYmluZChudWxsLCBzdHlsZSk7XG5cdFx0cmVtb3ZlID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0cmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlKTtcblx0XHR9O1xuXHR9XG5cblx0dXBkYXRlKG9iaik7XG5cblx0cmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlIChuZXdPYmopIHtcblx0XHRpZiAobmV3T2JqKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdG5ld09iai5jc3MgPT09IG9iai5jc3MgJiZcblx0XHRcdFx0bmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiZcblx0XHRcdFx0bmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcFxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0dXBkYXRlKG9iaiA9IG5ld09iaik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlbW92ZSgpO1xuXHRcdH1cblx0fTtcbn1cblxudmFyIHJlcGxhY2VUZXh0ID0gKGZ1bmN0aW9uICgpIHtcblx0dmFyIHRleHRTdG9yZSA9IFtdO1xuXG5cdHJldHVybiBmdW5jdGlvbiAoaW5kZXgsIHJlcGxhY2VtZW50KSB7XG5cdFx0dGV4dFN0b3JlW2luZGV4XSA9IHJlcGxhY2VtZW50O1xuXG5cdFx0cmV0dXJuIHRleHRTdG9yZS5maWx0ZXIoQm9vbGVhbikuam9pbignXFxuJyk7XG5cdH07XG59KSgpO1xuXG5mdW5jdGlvbiBhcHBseVRvU2luZ2xldG9uVGFnIChzdHlsZSwgaW5kZXgsIHJlbW92ZSwgb2JqKSB7XG5cdHZhciBjc3MgPSByZW1vdmUgPyBcIlwiIDogb2JqLmNzcztcblxuXHRpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuXHRcdHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IHJlcGxhY2VUZXh0KGluZGV4LCBjc3MpO1xuXHR9IGVsc2Uge1xuXHRcdHZhciBjc3NOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKTtcblx0XHR2YXIgY2hpbGROb2RlcyA9IHN0eWxlLmNoaWxkTm9kZXM7XG5cblx0XHRpZiAoY2hpbGROb2Rlc1tpbmRleF0pIHN0eWxlLnJlbW92ZUNoaWxkKGNoaWxkTm9kZXNbaW5kZXhdKTtcblxuXHRcdGlmIChjaGlsZE5vZGVzLmxlbmd0aCkge1xuXHRcdFx0c3R5bGUuaW5zZXJ0QmVmb3JlKGNzc05vZGUsIGNoaWxkTm9kZXNbaW5kZXhdKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3R5bGUuYXBwZW5kQ2hpbGQoY3NzTm9kZSk7XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIGFwcGx5VG9UYWcgKHN0eWxlLCBvYmopIHtcblx0dmFyIGNzcyA9IG9iai5jc3M7XG5cdHZhciBtZWRpYSA9IG9iai5tZWRpYTtcblxuXHRpZihtZWRpYSkge1xuXHRcdHN0eWxlLnNldEF0dHJpYnV0ZShcIm1lZGlhXCIsIG1lZGlhKVxuXHR9XG5cblx0aWYoc3R5bGUuc3R5bGVTaGVldCkge1xuXHRcdHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcblx0fSBlbHNlIHtcblx0XHR3aGlsZShzdHlsZS5maXJzdENoaWxkKSB7XG5cdFx0XHRzdHlsZS5yZW1vdmVDaGlsZChzdHlsZS5maXJzdENoaWxkKTtcblx0XHR9XG5cblx0XHRzdHlsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcblx0fVxufVxuXG5mdW5jdGlvbiB1cGRhdGVMaW5rIChsaW5rLCBvcHRpb25zLCBvYmopIHtcblx0dmFyIGNzcyA9IG9iai5jc3M7XG5cdHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuXG5cdC8qXG5cdFx0SWYgY29udmVydFRvQWJzb2x1dGVVcmxzIGlzbid0IGRlZmluZWQsIGJ1dCBzb3VyY2VtYXBzIGFyZSBlbmFibGVkXG5cdFx0YW5kIHRoZXJlIGlzIG5vIHB1YmxpY1BhdGggZGVmaW5lZCB0aGVuIGxldHMgdHVybiBjb252ZXJ0VG9BYnNvbHV0ZVVybHNcblx0XHRvbiBieSBkZWZhdWx0LiAgT3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIGNvbnZlcnRUb0Fic29sdXRlVXJscyBvcHRpb25cblx0XHRkaXJlY3RseVxuXHQqL1xuXHR2YXIgYXV0b0ZpeFVybHMgPSBvcHRpb25zLmNvbnZlcnRUb0Fic29sdXRlVXJscyA9PT0gdW5kZWZpbmVkICYmIHNvdXJjZU1hcDtcblxuXHRpZiAob3B0aW9ucy5jb252ZXJ0VG9BYnNvbHV0ZVVybHMgfHwgYXV0b0ZpeFVybHMpIHtcblx0XHRjc3MgPSBmaXhVcmxzKGNzcyk7XG5cdH1cblxuXHRpZiAoc291cmNlTWFwKSB7XG5cdFx0Ly8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjY2MDM4NzVcblx0XHRjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiICsgYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSArIFwiICovXCI7XG5cdH1cblxuXHR2YXIgYmxvYiA9IG5ldyBCbG9iKFtjc3NdLCB7IHR5cGU6IFwidGV4dC9jc3NcIiB9KTtcblxuXHR2YXIgb2xkU3JjID0gbGluay5ocmVmO1xuXG5cdGxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cblx0aWYob2xkU3JjKSBVUkwucmV2b2tlT2JqZWN0VVJMKG9sZFNyYyk7XG59XG4iLCJcbi8qKlxuICogV2hlbiBzb3VyY2UgbWFwcyBhcmUgZW5hYmxlZCwgYHN0eWxlLWxvYWRlcmAgdXNlcyBhIGxpbmsgZWxlbWVudCB3aXRoIGEgZGF0YS11cmkgdG9cbiAqIGVtYmVkIHRoZSBjc3Mgb24gdGhlIHBhZ2UuIFRoaXMgYnJlYWtzIGFsbCByZWxhdGl2ZSB1cmxzIGJlY2F1c2Ugbm93IHRoZXkgYXJlIHJlbGF0aXZlIHRvIGFcbiAqIGJ1bmRsZSBpbnN0ZWFkIG9mIHRoZSBjdXJyZW50IHBhZ2UuXG4gKlxuICogT25lIHNvbHV0aW9uIGlzIHRvIG9ubHkgdXNlIGZ1bGwgdXJscywgYnV0IHRoYXQgbWF5IGJlIGltcG9zc2libGUuXG4gKlxuICogSW5zdGVhZCwgdGhpcyBmdW5jdGlvbiBcImZpeGVzXCIgdGhlIHJlbGF0aXZlIHVybHMgdG8gYmUgYWJzb2x1dGUgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHBhZ2UgbG9jYXRpb24uXG4gKlxuICogQSBydWRpbWVudGFyeSB0ZXN0IHN1aXRlIGlzIGxvY2F0ZWQgYXQgYHRlc3QvZml4VXJscy5qc2AgYW5kIGNhbiBiZSBydW4gdmlhIHRoZSBgbnBtIHRlc3RgIGNvbW1hbmQuXG4gKlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzcykge1xuICAvLyBnZXQgY3VycmVudCBsb2NhdGlvblxuICB2YXIgbG9jYXRpb24gPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5sb2NhdGlvbjtcblxuICBpZiAoIWxvY2F0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiZml4VXJscyByZXF1aXJlcyB3aW5kb3cubG9jYXRpb25cIik7XG4gIH1cblxuXHQvLyBibGFuayBvciBudWxsP1xuXHRpZiAoIWNzcyB8fCB0eXBlb2YgY3NzICE9PSBcInN0cmluZ1wiKSB7XG5cdCAgcmV0dXJuIGNzcztcbiAgfVxuXG4gIHZhciBiYXNlVXJsID0gbG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyBsb2NhdGlvbi5ob3N0O1xuICB2YXIgY3VycmVudERpciA9IGJhc2VVcmwgKyBsb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC9cXC9bXlxcL10qJC8sIFwiL1wiKTtcblxuXHQvLyBjb252ZXJ0IGVhY2ggdXJsKC4uLilcblx0Lypcblx0VGhpcyByZWd1bGFyIGV4cHJlc3Npb24gaXMganVzdCBhIHdheSB0byByZWN1cnNpdmVseSBtYXRjaCBicmFja2V0cyB3aXRoaW5cblx0YSBzdHJpbmcuXG5cblx0IC91cmxcXHMqXFwoICA9IE1hdGNoIG9uIHRoZSB3b3JkIFwidXJsXCIgd2l0aCBhbnkgd2hpdGVzcGFjZSBhZnRlciBpdCBhbmQgdGhlbiBhIHBhcmVuc1xuXHQgICAoICA9IFN0YXJ0IGEgY2FwdHVyaW5nIGdyb3VwXG5cdCAgICAgKD86ICA9IFN0YXJ0IGEgbm9uLWNhcHR1cmluZyBncm91cFxuXHQgICAgICAgICBbXikoXSAgPSBNYXRjaCBhbnl0aGluZyB0aGF0IGlzbid0IGEgcGFyZW50aGVzZXNcblx0ICAgICAgICAgfCAgPSBPUlxuXHQgICAgICAgICBcXCggID0gTWF0Y2ggYSBzdGFydCBwYXJlbnRoZXNlc1xuXHQgICAgICAgICAgICAgKD86ICA9IFN0YXJ0IGFub3RoZXIgbm9uLWNhcHR1cmluZyBncm91cHNcblx0ICAgICAgICAgICAgICAgICBbXikoXSsgID0gTWF0Y2ggYW55dGhpbmcgdGhhdCBpc24ndCBhIHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICAgICAgfCAgPSBPUlxuXHQgICAgICAgICAgICAgICAgIFxcKCAgPSBNYXRjaCBhIHN0YXJ0IHBhcmVudGhlc2VzXG5cdCAgICAgICAgICAgICAgICAgICAgIFteKShdKiAgPSBNYXRjaCBhbnl0aGluZyB0aGF0IGlzbid0IGEgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICAgICBcXCkgID0gTWF0Y2ggYSBlbmQgcGFyZW50aGVzZXNcblx0ICAgICAgICAgICAgICkgID0gRW5kIEdyb3VwXG4gICAgICAgICAgICAgICpcXCkgPSBNYXRjaCBhbnl0aGluZyBhbmQgdGhlbiBhIGNsb3NlIHBhcmVuc1xuICAgICAgICAgICkgID0gQ2xvc2Ugbm9uLWNhcHR1cmluZyBncm91cFxuICAgICAgICAgICogID0gTWF0Y2ggYW55dGhpbmdcbiAgICAgICApICA9IENsb3NlIGNhcHR1cmluZyBncm91cFxuXHQgXFwpICA9IE1hdGNoIGEgY2xvc2UgcGFyZW5zXG5cblx0IC9naSAgPSBHZXQgYWxsIG1hdGNoZXMsIG5vdCB0aGUgZmlyc3QuICBCZSBjYXNlIGluc2Vuc2l0aXZlLlxuXHQgKi9cblx0dmFyIGZpeGVkQ3NzID0gY3NzLnJlcGxhY2UoL3VybFxccypcXCgoKD86W14pKF18XFwoKD86W14pKF0rfFxcKFteKShdKlxcKSkqXFwpKSopXFwpL2dpLCBmdW5jdGlvbihmdWxsTWF0Y2gsIG9yaWdVcmwpIHtcblx0XHQvLyBzdHJpcCBxdW90ZXMgKGlmIHRoZXkgZXhpc3QpXG5cdFx0dmFyIHVucXVvdGVkT3JpZ1VybCA9IG9yaWdVcmxcblx0XHRcdC50cmltKClcblx0XHRcdC5yZXBsYWNlKC9eXCIoLiopXCIkLywgZnVuY3Rpb24obywgJDEpeyByZXR1cm4gJDE7IH0pXG5cdFx0XHQucmVwbGFjZSgvXicoLiopJyQvLCBmdW5jdGlvbihvLCAkMSl7IHJldHVybiAkMTsgfSk7XG5cblx0XHQvLyBhbHJlYWR5IGEgZnVsbCB1cmw/IG5vIGNoYW5nZVxuXHRcdGlmICgvXigjfGRhdGE6fGh0dHA6XFwvXFwvfGh0dHBzOlxcL1xcL3xmaWxlOlxcL1xcL1xcL3xcXHMqJCkvaS50ZXN0KHVucXVvdGVkT3JpZ1VybCkpIHtcblx0XHQgIHJldHVybiBmdWxsTWF0Y2g7XG5cdFx0fVxuXG5cdFx0Ly8gY29udmVydCB0aGUgdXJsIHRvIGEgZnVsbCB1cmxcblx0XHR2YXIgbmV3VXJsO1xuXG5cdFx0aWYgKHVucXVvdGVkT3JpZ1VybC5pbmRleE9mKFwiLy9cIikgPT09IDApIHtcblx0XHQgIFx0Ly9UT0RPOiBzaG91bGQgd2UgYWRkIHByb3RvY29sP1xuXHRcdFx0bmV3VXJsID0gdW5xdW90ZWRPcmlnVXJsO1xuXHRcdH0gZWxzZSBpZiAodW5xdW90ZWRPcmlnVXJsLmluZGV4T2YoXCIvXCIpID09PSAwKSB7XG5cdFx0XHQvLyBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZSB0byB0aGUgYmFzZSB1cmxcblx0XHRcdG5ld1VybCA9IGJhc2VVcmwgKyB1bnF1b3RlZE9yaWdVcmw7IC8vIGFscmVhZHkgc3RhcnRzIHdpdGggJy8nXG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIHBhdGggc2hvdWxkIGJlIHJlbGF0aXZlIHRvIGN1cnJlbnQgZGlyZWN0b3J5XG5cdFx0XHRuZXdVcmwgPSBjdXJyZW50RGlyICsgdW5xdW90ZWRPcmlnVXJsLnJlcGxhY2UoL15cXC5cXC8vLCBcIlwiKTsgLy8gU3RyaXAgbGVhZGluZyAnLi8nXG5cdFx0fVxuXG5cdFx0Ly8gc2VuZCBiYWNrIHRoZSBmaXhlZCB1cmwoLi4uKVxuXHRcdHJldHVybiBcInVybChcIiArIEpTT04uc3RyaW5naWZ5KG5ld1VybCkgKyBcIilcIjtcblx0fSk7XG5cblx0Ly8gc2VuZCBiYWNrIHRoZSBmaXhlZCBjc3Ncblx0cmV0dXJuIGZpeGVkQ3NzO1xufTtcbiIsInZhciBnO1xuXG4vLyBUaGlzIHdvcmtzIGluIG5vbi1zdHJpY3QgbW9kZVxuZyA9IChmdW5jdGlvbigpIHtcblx0cmV0dXJuIHRoaXM7XG59KSgpO1xuXG50cnkge1xuXHQvLyBUaGlzIHdvcmtzIGlmIGV2YWwgaXMgYWxsb3dlZCAoc2VlIENTUClcblx0ZyA9IGcgfHwgbmV3IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKTtcbn0gY2F0Y2ggKGUpIHtcblx0Ly8gVGhpcyB3b3JrcyBpZiB0aGUgd2luZG93IHJlZmVyZW5jZSBpcyBhdmFpbGFibGVcblx0aWYgKHR5cGVvZiB3aW5kb3cgPT09IFwib2JqZWN0XCIpIGcgPSB3aW5kb3c7XG59XG5cbi8vIGcgY2FuIHN0aWxsIGJlIHVuZGVmaW5lZCwgYnV0IG5vdGhpbmcgdG8gZG8gYWJvdXQgaXQuLi5cbi8vIFdlIHJldHVybiB1bmRlZmluZWQsIGluc3RlYWQgb2Ygbm90aGluZyBoZXJlLCBzbyBpdCdzXG4vLyBlYXNpZXIgdG8gaGFuZGxlIHRoaXMgY2FzZS4gaWYoIWdsb2JhbCkgeyAuLi59XG5cbm1vZHVsZS5leHBvcnRzID0gZztcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obW9kdWxlKSB7XG5cdGlmICghbW9kdWxlLndlYnBhY2tQb2x5ZmlsbCkge1xuXHRcdG1vZHVsZS5kZXByZWNhdGUgPSBmdW5jdGlvbigpIHt9O1xuXHRcdG1vZHVsZS5wYXRocyA9IFtdO1xuXHRcdC8vIG1vZHVsZS5wYXJlbnQgPSB1bmRlZmluZWQgYnkgZGVmYXVsdFxuXHRcdGlmICghbW9kdWxlLmNoaWxkcmVuKSBtb2R1bGUuY2hpbGRyZW4gPSBbXTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImxvYWRlZFwiLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIG1vZHVsZS5sO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtb2R1bGUsIFwiaWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUuaTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRtb2R1bGUud2VicGFja1BvbHlmaWxsID0gMTtcblx0fVxuXHRyZXR1cm4gbW9kdWxlO1xufTtcbiIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfZ2V0R3JpZCB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ3dfcGFyc2VOb2RlIH0gZnJvbSBcImV2ZW50cy91dGlsaXRpZXNcIjtcblxuY29uc3QgeyBkZWVwUGFyc2VKc29uIH0gPSByZXF1aXJlKFwiZGVlcC1wYXJzZS1qc29uXCIpO1xuXG4vKipcbiAqIFN0YXJ0IGNlbGwgZWRpdGluZ1xuICogXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgVGhlIGdyaWQncyBpZCBcbiAqIEBwYXJhbSB7U3RyaW5nfG51bWJlcn0gcm93IFRoZSByb3cgaW5kZXhcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2xLZXkgVGhlIGNvbHVtbidzIGtleVxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSBrZXkgIEtleSBwcmVzc1xuICogQHBhcmFtIHtTdHJpbmd9IGNoYXIgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zdGFydEVkaXRpbmdDZWxsKGlkLCByb3csIGNvbEtleSwga2V5LCBjaGFyKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuXG4gIG9wdGlvbnMuYXBpLnNldEZvY3VzZWRDZWxsKE51bWJlcihyb3cpLCBjb2xLZXkpO1xuICBvcHRpb25zLmFwaS5zdGFydEVkaXRpbmdDZWxsKHtcbiAgICByb3dJbmRleDogTnVtYmVyKHJvdyksXG4gICAgY29sS2V5OiBjb2xLZXksXG4gICAga2V5UHJlc3M6IE51bWJlcihrZXkpLFxuICAgIGNoYXJQcmVzczogY2hhclxuICB9KTtcbn1cblxuLyoqXG4gKiBTdG9wIGNlbGwgZWRpdGluZyBcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWQgXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGNhbmNlbCB3aGVuIHRydWUgY2FuY2VsIGVkaXRzICwgc2F2ZSBlZGl0cyBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3N0b3BFZGl0aW5nKGlkLCBjYW5jZWwpIHtcbiAgZ3dfZ2V0R3JpZChpZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAuc3RvcEVkaXRpbmcoY2FuY2VsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGd3X2VkaXROZXh0Q2VsbChpZCkge1xuICBnd19nZXRHcmlkKGlkKVxuICAgIC5vcHRpb25zXG4gICAgLmFwaVxuICAgIC50YWJUb05leHRDZWxsKCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ3dfZWRpdFByZXZpb3VzQ2VsbChpZCkge1xuICBnd19nZXRHcmlkKGlkKVxuICAgIC5vcHRpb25zXG4gICAgLmFwaVxuICAgIC50YWJUb1ByZXZpb3VzQ2VsbCgpO1xufVxuXG4vKipcbiAqIFNldCBGb2N1cyBvbiB0aGUgZ2l2ZW4gcm93IGFuZCBjb2x1bW5cbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWQgXG4gKiBAcGFyYW0ge1N0cmluZ3xOdW1iZXJ9IHJvdyBUaGUgcm93J3MgaW5kZXgvaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW4gVGhlIGNvbHVtbiBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0Rm9jdXNlZENlbGwoaWQsIHJvdywgY29sdW1uKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuICBjb25zdCByID0gIXJvdyA/IDAgOiAoTnVtYmVyLmlzSW50ZWdlcigrcm93KSA/ICtyb3cgOiBvcHRpb25zLmFwaS5nZXRSb3dOb2RlKHJvdykucm93SW5kZXgpO1xuICBjb25zdCBjID0gY29sdW1uID8gY29sdW1uIDogb3B0aW9ucy5jb2x1bW5BcGkuZ2V0QWxsR3JpZENvbHVtbnMoKVswXS5jb2xJZDtcbiAgZ3dfZ2V0R3JpZChpZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAuc2V0Rm9jdXNlZENlbGwociwgYyk7XG59XG5cbi8qKlxuICogR2V0IFJhbmdlIFNlbGVjdGlvbnNcbiAqIFxuICogVGhlIG1ldGhvZCB3aWxsIGNyZWF0ZSBhIHJhbmdlIGpzb24gbW9kZWwgZm9yIGVhY2ggcmFuZ2Ugd2hpY2ggY2FuIGJlIHBhcnNlZCBpbiBCQmogc2lkZS5cbiAqIFxuICogQHBhcmFtIHtOdW1iZXJ9IGlkIGdyaWQncyBpZFxuICogXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBzZWxlY3RlZCByYW5nZXMgYXMgSlNPTlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0UmFuZ2VTZWxlY3Rpb25zKGlkKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuICBjb25zdCBjb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0O1xuICBjb25zdCBhcGkgPSBvcHRpb25zLmFwaTtcbiAgY29uc3QgcmFuZ2VzID0gYXBpLmdldENlbGxSYW5nZXMoKTtcbiAgY29uc3QgbW9kZWwgPSBhcGkuZ2V0TW9kZWwoKTtcbiAgbGV0IHJlc3VsdCA9IFtdO1xuXG4gIHJhbmdlcy5mb3JFYWNoKHJhbmdlID0+IHtcblxuICAgIC8vIGNvbnN0IHN0YXJ0ID0gZ3dfcGFyc2VOb2RlKG1vZGVsLmdldFJvdyhyYW5nZS5zdGFydFJvdy5yb3dJbmRleCksIG9wdGlvbnMuY29udGV4dCk7XG4gICAgLy8gY29uc3QgZW5kID0gZ3dfcGFyc2VOb2RlKG1vZGVsLmdldFJvdyhyYW5nZS5lbmRSb3cucm93SW5kZXgpLCBvcHRpb25zLmNvbnRleHQpO1xuXG4gICAgLy9pZiAoc3RhcnQgIT09IGZhbHNlICYmIGVuZCAhPT0gZmFsc2UpIHtcbiAgICBjb25zdCBjb2x1bW5zID0gcmFuZ2UuY29sdW1ucy5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50KSA9PiB7XG5cbiAgICAgIGlmIChcImFnLUdyaWQtQXV0b0NvbHVtblwiICE9PSBjdXJyZW50LmNvbElkKSB7XG4gICAgICAgIGFjY3VtdWxhdG9yLnB1c2goY3VycmVudC5jb2xJZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgICB9LCBbXSkuZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgY29uc3Qgc3RhckluZGV4ID0gTWF0aC5taW4ocmFuZ2Uuc3RhcnRSb3cucm93SW5kZXgsIHJhbmdlLmVuZFJvdy5yb3dJbmRleCk7XG4gICAgY29uc3QgZW5kSW5kZXggPSBNYXRoLm1heChyYW5nZS5zdGFydFJvdy5yb3dJbmRleCwgcmFuZ2UuZW5kUm93LnJvd0luZGV4KTtcbiAgICBjb25zdCByb3dzID0gW107XG5cbiAgICBmb3IgKGxldCByb3dJbmRleCA9IHN0YXJJbmRleDsgcm93SW5kZXggPD0gZW5kSW5kZXg7IHJvd0luZGV4KyspIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBtb2RlbC5nZXRSb3cocm93SW5kZXgpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkTm9kZSA9IGd3X3BhcnNlTm9kZShub2RlLCBjb250ZXh0KTtcbiAgICAgICAgaWYgKHBhcnNlZE5vZGUpIHJvd3MucHVzaChwYXJzZWROb2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocm93cy5sZW5ndGggJiYgY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHsgcjogcm93cywgYzogY29sdW1ucyB9KTtcbiAgICB9XG4gICAgLy99XG4gIH0pO1xuXG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShyZXN1bHQpO1xufVxuXG4vKipcbiAqIFBhcnNlIHRoZSBjZWxscyByYW5nZSBpbiBhIGZvcm1hdCB0aGUgZ3JpZCBjYW4gdW5kZXJzdGFuZCB3aGVuIGl0IGlzIHBhc3NlZCBcbiAqIHRvIGBhcGkuYWRkQ2VsbFJhbmdlYFxuICogXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBUaGUgZ3JpZCdzIG9wdGlvbnNcbiAqIEBwYXJhbSB7T2JqZWN0fSByYW5nZSAgYm91bmRlZCBvciB1bmJvdW5kZWQgcmFuZ2UgbW9kZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3BhcnNlQWRkQ2VsbFJhbmdlKG9wdGlvbnMgLCByYW5nZSkge1xuICBjb25zdCBwciA9IGRlZXBQYXJzZUpzb24oSlNPTi5zdHJpbmdpZnkocmFuZ2UpKTtcbiAgY29uc3Qgc3RhcnQgPSAhKHByLnN0YXJ0IHx8IG51bGwpID9cbiAgICAwIDogKE51bWJlci5pc0ludGVnZXIoK3ByLnN0YXJ0KSA/ICtwci5zdGFydCA6IG9wdGlvbnMuYXBpLmdldFJvd05vZGUocHIuc3RhcnQpLnJvd0luZGV4KTtcbiAgY29uc3QgZW5kID0gIShwci5lbmQgfHwgbnVsbCkgP1xuICAgIChvcHRpb25zLnJvd0RhdGEubGVuZ3RoIC0gMSkgOiAoTnVtYmVyLmlzSW50ZWdlcigrcHIuZW5kKSA/ICtwci5lbmQgOiBvcHRpb25zLmFwaS5nZXRSb3dOb2RlKHByLmVuZCkucm93SW5kZXgpO1xuXG4gIHJldHVybiB7XG4gICAgcm93U3RhcnRJbmRleDogTWF0aC5hYnMoc3RhcnQpLFxuICAgIHJvd0VuZEluZGV4OiBNYXRoLmFicyhlbmQpLFxuICAgIGNvbHVtbnM6IHByLmNvbHVtbnNcbiAgfTtcbn1cbi8qKlxuICogQWRkIG5ldyBjZWxsIHJhbmdlXG4gKiBcbiAqIEBwYXJhbSB7TnVtYmVyfSBpZCBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSByYW5nZSAgYm91bmRlZCBvciB1bmJvdW5kZWQgcmFuZ2UgbW9kZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2FkZENlbGxSYW5nZShpZCwgcmFuZ2UpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG4gIG9wdGlvbnMuYXBpLmFkZENlbGxSYW5nZShnd19wYXJzZUFkZENlbGxSYW5nZShvcHRpb25zLCByYW5nZSkpO1xufVxuXG4vKipcbiAqIENsZWFycyB0aGUgc2VsZWN0ZWQgcmFuZ2UuXG4gKiBcbiAqIEBwYXJhbSB7TnVtYmVyfSBpZCBncmlkJ3MgaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2NsZWFyUmFuZ2VTZWxlY3Rpb24oaWQpIHtcbiAgZ3dfZ2V0R3JpZChpZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAuY2xlYXJSYW5nZVNlbGVjdGlvbigpO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfZ2V0R3JpZCwgZ3dfdXVpZCB9IGZyb20gXCJhcGkvdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBnd19wYXJzZUFkZENlbGxSYW5nZSB9IGZyb20gXCJhcGkvY2VsbHNcIjtcblxuY29uc3QgeyBkZWVwUGFyc2VKc29uIH0gPSByZXF1aXJlKFwiZGVlcC1wYXJzZS1qc29uXCIpO1xuXG4vKipcbiAqIFRoZSBhcnJheSBjb250YWlucyByZWZlcmVuY2VzIHRvIGNyZWF0ZWQgY2hhcnRzIGZyb20gQkJqLlxuICogRXZlcnkgcmVmZXJlbmNlIGlzIGEgQ2hhcnRSZWYgb2JqZWN0IHdoaWNoIHByb3ZpZGVzIHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBcbiAqIGRlc3Ryb3lDaGFydCgpIG1ldGhvZCB0aGF0IGlzIHJlcXVpcmVkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIGRpc3Bvc2UgdGhlIGNoYXJ0LlxuICovXG5cbi8qKlxuICogUmV0dXJuIHRoZSBjaGFydCB0b29sYmFyIGl0ZW1zIGRlZmluZWQgaW4gdGhlIGdyaWQncyBjb250ZXh0IFxuICogXG4gKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFxuICogQHJldHVybnMge0FycmF5fSBhcnJheSBvZiBzdXBwb3J0ZWQgY2hhcnQgaXRlbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2dldENoYXJ0VG9vbGJhckl0ZW1zKHBhcmFtcykge1xuICByZXR1cm4gcGFyYW1zXG4gICAgLmFwaVxuICAgIC5ncmlkT3B0aW9uc1dyYXBwZXJcbiAgICAuZ3JpZE9wdGlvbnNcbiAgICAuY29udGV4dFxuICAgIC5jaGFydFRvb2xiYXJJdGVtcyB8fCBbXTtcbn1cblxuLyoqXG4gKiBBZGQgbmV3IGNoYXJ0IHJhbmdlXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSByYW5nZSAgYm91bmRlZCBvciB1bmJvdW5kZWQgcmFuZ2UgbW9kZWxcbiAqIFxuICogQHJldHVybiB7U3RyaW5nfSBhIHVuaXF1ZSBpZCBmb3IgdGhlIGdlbmVyYXRlIGNoYXJ0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19hZGRDaGFydFJhbmdlKGlkLCByYW5nZSkge1xuICBjb25zdCBncmlkID0gZ3dfZ2V0R3JpZChpZCk7XG4gIGNvbnN0IG9wdGlvbnMgPSBncmlkLm9wdGlvbnM7XG4gIGNvbnN0IHByID0gZGVlcFBhcnNlSnNvbihKU09OLnN0cmluZ2lmeShyYW5nZSkpO1xuXG4gIHByLmNlbGxSYW5nZSA9IGd3X3BhcnNlQWRkQ2VsbFJhbmdlKG9wdGlvbnMsIHByLmNlbGxSYW5nZSk7XG5cbiAgY29uc3QgcmVmID0gb3B0aW9ucy5hcGkuY2hhcnRSYW5nZShwcik7XG4gIGNvbnN0IHV1aWQgPSBnd191dWlkKCk7XG4gIFxuICBncmlkLmNyZWF0ZWRfY2hhcnRzID0gZ3JpZC5jcmVhdGVkX2NoYXJ0cyB8fCB7fTtcbiAgZ3JpZC5jcmVhdGVkX2NoYXJ0c1t1dWlkXSA9IHJlZjtcbiAgXG4gIHJldHVybiB1dWlkO1xufVxuXG4vKipcbiAqIERlc3Ryb3kgY3JlYXRlZCBjaGFydHNcbiAqIFxuICogRGVzdHJveSBhbHJlYWR5IGNyZWF0ZWQgY2hhcnQgYnkgaWQgb3IgYWxsIGNyZWF0ZWQgY2hhcnRzIFxuICogd2hlbiB0aGUgYHV1aWRgIGlzIG9taXR0ZWQuXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSB1dWlkIFRoZSBjaGFydCdzIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19kZXN0cm95Q2hhcnQoaWQsIHV1aWQpIHtcbiAgY29uc3QgZ3JpZCA9IGd3X2dldEdyaWQoaWQpO1xuICBcbiAgaWYgKHV1aWQpIHtcbiAgICBpZiAoZ3JpZC5oYXNPd25Qcm9wZXJ0eSgnY3JlYXRlZF9jaGFydHMnKSAmJiBncmlkLmNyZWF0ZWRfY2hhcnRzLmhhc093blByb3BlcnR5KHV1aWQpKSB7XG4gICAgICBncmlkLmNyZWF0ZWRfY2hhcnRzW3V1aWRdLmRlc3Ryb3lDaGFydCgpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgXG4gICAgaWYgKGdyaWQuaGFzT3duUHJvcGVydHkoJ2NyZWF0ZWRfY2hhcnRzJykpIHtcbiAgICAgIGZvciAoY29uc3QgaSBpbiBncmlkLmNyZWF0ZWRfY2hhcnRzKSB7XG4gICAgICAgIGlmIChncmlkLmNyZWF0ZWRfY2hhcnRzLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICAgICAgY29uc3QgY2hhcnQgPSBncmlkLmNyZWF0ZWRfY2hhcnRzW2ldO1xuICAgICAgICAgIGNoYXJ0LmRlc3Ryb3lDaGFydCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7IGd3X2dldEdyaWQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcbmNvbnN0IHsgZGVlcFBhcnNlSnNvbiB9ID0gcmVxdWlyZShcImRlZXAtcGFyc2UtanNvblwiKTtcblxuLyoqXG4gKiBFeHRlbmQgdGhlIGNvbHVtbiBkZWZpbml0aW9uc1xuICpcbiAqIEV4dGVuZCB0aGUgY29sdW1uIGRlZmluaXRpb25zIHdpdGggb3B0aW9ucyB3aGljaCBjYW4gbm90IGJlIGhhbmRsZWQgaW4gQkJqXG4gKiAoZXg6IGF0dGFjaGluZyBjYWxsYmFja3MpXG4gKlxuICogQHBhcmFtIHtBcnJheX0gZGVmaW5pdGlvbnMgYXJyYXkgb2YgY29sdW1uIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19leHRlbmRDb2x1bW5EZWZpbml0aW9ucyhkZWZpbml0aW9ucykge1xuICBmb3IgKGxldCBpIGluIGRlZmluaXRpb25zKSB7XG4gICAgY29uc3QgZGVmID0gZGVmaW5pdGlvbnNbaV07XG5cbiAgICBkZWYuY2hlY2tib3hTZWxlY3Rpb24gPSBkZWYuY2hlY2tib3hTZWxlY3Rpb24gfHwgZ3dfaXNTaG93U2VsZWN0aW9uQ2hlY2tib3g7XG4gICAgZGVmLmhlYWRlckNoZWNrYm94U2VsZWN0aW9uID1cbiAgICAgIGRlZi5oZWFkZXJDaGVja2JveFNlbGVjdGlvbiB8fCBnd19pc0hlYWRlckNoZWNrYm94U2VsZWN0aW9uO1xuICB9XG59XG5cbi8qKlxuICogVXBkYXRlIHRoZSBjb2x1bW4gZGVmaW5pdGlvbnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgVGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7QXJyYXl9IGRlZmluaXRpb25zIGFycmF5IG9mIGNvbHVtbiBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0Q29sdW1uRGVmaW5pdGlvbnMoaWQsIGRlZmluaXRpb25zKSB7XG4gIGNvbnN0IGdyaWQgPSBnd19nZXRHcmlkKGlkKTtcbiAgY29uc3QgZGVlcFBhcnNlZERlZmluaXRpb25zID0gZGVlcFBhcnNlSnNvbihKU09OLnN0cmluZ2lmeShkZWZpbml0aW9ucykpO1xuXG4gIGd3X2V4dGVuZENvbHVtbkRlZmluaXRpb25zKGRlZXBQYXJzZWREZWZpbml0aW9ucyk7XG5cbiAgZ3JpZC5vcHRpb25zLmFwaS5zZXRDb2x1bW5EZWZzKGRlZXBQYXJzZWREZWZpbml0aW9ucyk7XG4gIGdyaWQub3B0aW9ucy5jb2x1bW5EZWZzID0gZGVlcFBhcnNlZERlZmluaXRpb25zO1xufVxuXG4vKipcbiAqIE1ha2UgdGhlIGN1cnJlbnRseSB2aXNpYmxlIGNvbHVtbnMgZml0IHRoZSBzY3JlZW5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgVGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtOdW1iZXJ9IHRoZSB3aWR0aCB0byB1c2UgdG8gZml0IGFsbCBjb2x1bW5zIGluXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zaXplQ29sdW1uc1RvRml0KGlkLCB3aWR0aCkge1xuICBjb25zdCBvcHRpb25zID0gZ3dfZ2V0R3JpZChpZCkub3B0aW9ucztcbiAgY29uc3QgYXBpID0gb3B0aW9ucy5hcGk7XG4gIGNvbnN0IGNvbHVtbnNBUEkgPSBvcHRpb25zLmNvbHVtbkFwaTtcbiAgaWYgKHdpZHRoKSBjb2x1bW5zQVBJLnNpemVDb2x1bW5zVG9GaXQoTnVtYmVyKHdpZHRoKSk7XG4gIGVsc2UgYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbn1cblxuLyoqXG4gKiBXb3JrIG91dCB0aGUgYmVzdCB3aWR0aCB0byBmaXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBjZWxscyBpbiB0aGUgY29sdW1uLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtza2lwSGVhZGVyPWZhbHNlXSB3aGVuIHRydWUgaW5kaWNhdGUgdGhhdCB0aGUgaGVhZGVyIGNvbnRlbnQgKGhlYWRlck5hbWUpIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCB3aGVuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRpbmcgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW5cbiAqIEBwYXJhbSB7QXJyYXl8bnVsbH0gW2NvbHVtbnM9bnVsbF0gYW4gYXJyYXkgb2YgY29sdW1ucyBpZHMgdG8gYXV0byBzaXplIG9yIG51bGwgdG8gYXV0byBzaXplIGFsbCBjb2x1bW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19hdXRvU2l6ZUNvbHVtbnMoaWQsIHNraXBIZWFkZXIgPSBmYWxzZSwgY29sdW1ucyA9IG51bGwpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG4gIGNvbnN0IGNvbHVtbnNBUEkgPSBvcHRpb25zLmNvbHVtbkFwaTtcblxuICBpZiAoIShjb2x1bW5zICYmIGNvbHVtbnMubGVuZ3RoKSkge1xuICAgIGNvbnN0IGFsbENvbHVtbklkcyA9IFtdO1xuXG4gICAgY29sdW1uc0FQSS5nZXRBbGxDb2x1bW5zKCkuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgYWxsQ29sdW1uSWRzLnB1c2goY29sdW1uLmNvbElkKTtcbiAgICB9KTtcblxuICAgIGNvbHVtbnNBUEkuYXV0b1NpemVDb2x1bW5zKGFsbENvbHVtbklkcywgQm9vbGVhbihza2lwSGVhZGVyKSk7XG4gIH0gZWxzZSB7XG4gICAgY29sdW1uc0FQSS5hdXRvU2l6ZUNvbHVtbnMoY29sdW1ucywgQm9vbGVhbihza2lwSGVhZGVyKSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGd3X3NldFZpc2libGVDb2x1bW4oaWQsIGNvbHVtbklkKSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuYXBpLmVuc3VyZUNvbHVtblZpc2libGUoY29sdW1uSWQpO1xufVxuXG4vKipcbiAqIFNldCBDb2x1bW4gV2lkdGhcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgVGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5JZCBUaGUgY29sdW1uIGlkXG4gKiBAcGFyYW0ge051bWJlcnxTdHJpbmd9IHdpZHRoIFRoZSBuZXcgY29sdW1uIHdpZHRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRDb2x1bW5XaWR0aChpZCwgY29sdW1uSWQsIHdpZHRoKSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29sdW1uQXBpLnNldENvbHVtbldpZHRoKGNvbHVtbklkLCBOdW1iZXIod2lkdGgpKTtcbn1cblxuLyoqXG4gKiBQaW4gQ29sdW1uXG4gKlxuICogUGluIGEgY29sdW1uIHRvIGEgc3BlY2lmaWMgZGlyZWN0aW9uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gY29sdW1uSWQgVGhlIGNvbHVtbiBpZFxuICogQHBhcmFtIHtTdHJpbmd9IHBpbiBUaGUgcGluIGRpcmVjdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfcGluQ29sdW1uKGlkLCBjb2x1bW5JZCwgcGluKSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29sdW1uQXBpLnNldENvbHVtblBpbm5lZChjb2x1bW5JZCwgcGluKTtcbn1cblxuLyoqXG4gKiBNb3ZlIENvbHVtblxuICpcbiAqIE1vdmUgY29sdW1uIHRvIGEgc3BlY2lmaWMgaW5kZXhcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgVGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5JZCBUaGUgY29sdW1uIGlkXG4gKiBAcGFyYW0ge051bWJlcnxTdHJpbmd9IHRvSW5kZXggVGhlIG5ldyBjb2x1bW4gaW5kZXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X21vdmVDb2x1bW4oaWQsIGNvbHVtbklkLCB0b0luZGV4KSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29sdW1uQXBpLm1vdmVDb2x1bW4oY29sdW1uSWQsIHRvSW5kZXgpO1xufVxuXG4vKipcbiAqIFNob3cgLyBIaWRlIHNlbGVjdGlvbiBjaGVja2JveCBiYXNlZCBvbiB0aGUgZmlyc3QgY29sdW1uXG4gKlxuICogVGhlIGZ1bmN0aW9uIG1ha2Ugc3VyZSB0aGF0IHRoZSBzZWxlY3Rpb24gY2hlY2tib3ggaXMgYWx3YXlzIHNob3duIG9uIHRoZVxuICogZmlyc3QgY29sdW1uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtXG4gKlxuICogQHJldHVybiB7Qm9vbGVhbn0gdHJ1ZSB3aGVuIGZpcnN0IGNvbHVtbiAsIGZhbHNlIGlmIG5vdCB0aGUgZmlyc3QgY29sdW1uIG9yIGlmIHRoZVxuICogICAgICAgICAgICAgICAgICAgZ3JpZCdzIGBDb250ZXh0LnNob3dTZWxlY3Rpb25DaGVja2JveGAgaXMgZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2lzU2hvd1NlbGVjdGlvbkNoZWNrYm94KHBhcmFtKSB7XG4gIGlmICghcGFyYW0uY29udGV4dC5zaG93U2VsZWN0aW9uQ2hlY2tib3gpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBjb2x1bW5zID0gcGFyYW0uY29sdW1uQXBpLmdldEFsbEdyaWRDb2x1bW5zKCk7XG5cbiAgcmV0dXJuIGNvbHVtbnNbMF0uY29sRGVmLmZpZWxkID09PSBwYXJhbS5jb2xEZWYuZmllbGQ7XG59XG5cbi8qKlxuICogU2hvdyAvIEhpZGUgaGVhZGVyIHNlbGVjdGlvbiBjaGVja2JveCBiYXNlZCBvbiB0aGUgZmlyc3QgY29sdW1uXG4gKlxuICogVGhlIGZ1bmN0aW9uIG1ha2Ugc3VyZSB0aGF0IHRoZSBoZWFkZXIgc2VsZWN0aW9uIGNoZWNrYm94IGlzIGFsd2F5cyBzaG93biBvbiB0aGVcbiAqIGZpcnN0IGNvbHVtblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbVxuICpcbiAqIEByZXR1cm4ge0Jvb2xlYW59IHRydWUgd2hlbiBmaXJzdCBjb2x1bW4gLCBmYWxzZSBpZiBub3QgdGhlIGZpcnN0IGNvbHVtbiBvciBpZiB0aGVcbiAqICAgICAgICAgICAgICAgICAgIGdyaWQncyBgQ29udGV4dC5zaG93SGVhZGVyU2VsZWN0aW9uQ2hlY2tib3hgIGlzIGZhbHNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19pc0hlYWRlckNoZWNrYm94U2VsZWN0aW9uKHBhcmFtKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBwYXJhbS5hcGkuZ3JpZE9wdGlvbnNXcmFwcGVyLmdyaWRPcHRpb25zLmNvbnRleHQ7XG5cbiAgaWYgKCFjb250ZXh0LnNob3dIZWFkZXJTZWxlY3Rpb25DaGVja2JveCkgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBwYXJhbS5jb2x1bW5BcGkuZ2V0QWxsR3JpZENvbHVtbnMoKTtcblxuICByZXR1cm4gY29sdW1uc1swXS5jb2xEZWYuZmllbGQgPT09IHBhcmFtLmNvbERlZi5maWVsZDtcbn1cblxuLyoqXG4gKiBFbmFibGUgcm93IGdyb3VwaW5nIGZvciBjb2x1bW5zXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIHRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gY29sdW1ucyAgYSBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nIG9mIGNvbHVtbnNcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gc2V0ICBXaGVuIHRydWUgLCBgc2V0Um93R3JvdXBDb2x1bW5zYCB3aWxsIGJlIHVzZWQgLCBgYWRkUm93R3JvdXBDb2x1bW5zYCBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2FkZFJvd0dyb3VwQ29sdW1uKGlkLCBjb2x1bW5zLCBzZXQpIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb2x1bW5BcGlbXG4gICAgc2V0ID8gXCJzZXRSb3dHcm91cENvbHVtbnNcIiA6IFwiYWRkUm93R3JvdXBDb2x1bW5zXCJcbiAgXShjb2x1bW5zLnNwbGl0KFwiLFwiKS5tYXAoaSA9PiBpLnRyaW0oKSkpO1xufVxuXG4vKipcbiAqIERpc2FibGUgcm93IGdyb3VwaW5nIGZvciBjb2x1bW5zXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIHRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge1N0cmluZ30gY29sdW1ucyAgYSBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nIG9mIGNvbHVtbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3JlbW92ZVJvd0dyb3VwQ29sdW1uKGlkLCBjb2x1bW5zKSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29sdW1uQXBpLnJlbW92ZVJvd0dyb3VwQ29sdW1ucyhcbiAgICBjb2x1bW5zLnNwbGl0KFwiLFwiKS5tYXAoaSA9PiBpLnRyaW0oKSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGd3X2dldFBpdm90TW9kZShpZCkge1xuICByZXR1cm4gZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb2x1bW5BcGkuaXNQaXZvdE1vZGUoKTtcbn1cblxuLyoqXG4gKiBFbmFibGUgLyBkaXNiYWxlIHBpdm90IG1vZGVcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gbW9kZSB3aGVuIHRydWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3NldFBpdm90TW9kZShpZCwgbW9kZSkge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbHVtbkFwaS5zZXRQaXZvdE1vZGUoISFOdW1iZXIobW9kZSkpO1xufVxuXG4vKipcbiAqIEVuYWJsZSBwaXZvdCBmb3IgY29sdW1uc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IGNvbHVtbnMgIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBjb2x1bW5zXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHNldCAgV2hlbiB0cnVlICwgYGFkZFBpdm90Q29sdW1uc2Agd2lsbCBiZSB1c2VkICwgYHNldFBpdm90Q29sdW1uc2Agb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19hZGRQaXZvdENvbHVtbnMoaWQsIGNvbHVtbnMsIHNldCkge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbHVtbkFwaVtzZXQgPyBcInNldFBpdm90Q29sdW1uc1wiIDogXCJhZGRQaXZvdENvbHVtbnNcIl0oXG4gICAgY29sdW1ucy5zcGxpdChcIixcIikubWFwKGkgPT4gaS50cmltKCkpXG4gICk7XG59XG5cbi8qKlxuICogRGlzYWJsZSBwaXZvdCBmb3IgY29sdW1uc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IGNvbHVtbnMgIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBjb2x1bW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19yZW1vdmVQaXZvdENvbHVtbnMoaWQsIGNvbHVtbnMpIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb2x1bW5BcGkucmVtb3ZlUGl2b3RDb2x1bW5zKFxuICAgIGNvbHVtbnMuc3BsaXQoXCIsXCIpLm1hcChpID0+IGkudHJpbSgpKVxuICApO1xufVxuXG4vKipcbiAqIEVuYWJsZSB2YWx1ZSBmb3IgY29sdW1uc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IGNvbHVtbnMgIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBjb2x1bW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19hZGRWYWx1ZUNvbHVtbnMoaWQsIGNvbHVtbnMsIHNldCkge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbHVtbkFwaS5hZGRWYWx1ZUNvbHVtbnMoXG4gICAgY29sdW1ucy5zcGxpdChcIixcIikubWFwKGkgPT4gaS50cmltKCkpXG4gICk7XG59XG5cbi8qKlxuICogRGlzYWJsZSB2YWx1ZSBmb3IgY29sdW1uc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCBpZFxuICogQHBhcmFtIHtTdHJpbmd9IGNvbHVtbnMgIGEgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBjb2x1bW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19yZW1vdmVWYWx1ZUNvbHVtbnMoaWQsIGNvbHVtbnMpIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb2x1bW5BcGkucmVtb3ZlVmFsdWVDb2x1bW5zKFxuICAgIGNvbHVtbnMuc3BsaXQoXCIsXCIpLm1hcChpID0+IGkudHJpbSgpKVxuICApO1xufVxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19nZXRHcmlkIH0gZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5cbi8qKlxuICogVXBkYXRlIGNvbnRleHQgXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkIFxuICogQHBhcmFtIHtTdHJpbmd9IGtleSBUaGUgY29udGV4dCdzIGtleSB0byB1cGRhdGVcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZSAgVGhlIG5ldyBjb250ZXh0J3MgdmFsdWUgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd191cGRhdGVDb250ZXh0KGlkLCBrZXksIHZhbHVlKSB7XG5cdGd3X2dldEdyaWQoaWQpXG5cdFx0Lm9wdGlvbnNcblx0XHQuY29udGV4dFtrZXldID0gSlNPTi5wYXJzZSh2YWx1ZSk7XG59IiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QEJhc2lzLkFnR3JpZENvbXBvbmVudHMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5pdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yb3dzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xwYW5lbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1c2Jhci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJsYXlzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2pzcy5qcyc7IiwiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuICogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5jb20+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7IGd3X2V4dGVuZENvbHVtbkRlZmluaXRpb25zIH0gZnJvbSBcIi4vY29sdW1uc1wiO1xuaW1wb3J0IHsgZ3dfbmF2aWdhdGVUb05leHRSb3cgfSAgICAgICBmcm9tIFwiLi9yb3dzXCI7XG5pbXBvcnQgeyBnd19nZXRDb250ZXh0TWVudSB9ICAgICAgICAgIGZyb20gXCIuL21lbnVzXCI7XG5pbXBvcnQgeyBnd19nZXRDaGFydFRvb2xiYXJJdGVtcyB9ICAgIGZyb20gXCIuL2NoYXJ0c1wiO1xuaW1wb3J0IHsgZ3dfZ2V0RG9jdW1lbnQsIGd3X2dldFdpbmRvdyAsIGd3X2FkZEdyaWR9ICBmcm9tIFwiLi91dGlsaXRpZXNcIjtcbmltcG9ydCB7XG4gIGd3X29uUm93RG91YmxlQ2xpY2tlZCxcbiAgZ3dfb25TZWxlY3Rpb25DaGFuZ2VkLFxuICBnd19vblJhbmdlU2VsZWN0aW9uQ2hhbmdlZCxcbiAgZ3dfb25DZWxsQ2xpY2tFdmVudCxcbiAgZ3dfb25DZWxsRWRpdGluZ0V2ZW50LFxuICBnd19vblJvd0VkaXRpbmdFdmVudCxcbiAgZ3dfb25SZWFkeUV2ZW50LFxuICBnd19kZWJvdW5jZVxufSBmcm9tIFwiZXZlbnRzXCI7XG5pbXBvcnQgdGVtcGxhdGUgZnJvbSAnbG9kYXNoLWVzL3RlbXBsYXRlJ1xuXG5jb25zdCB7IGRlZXBQYXJzZUpzb24gfSA9IHJlcXVpcmUoXCJkZWVwLXBhcnNlLWpzb25cIik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19pbml0KG9wdGlvbnMsIGxpY2Vuc2UgLCBkYXRhKSB7XG4gIFxuICAvLyBzZXQgdGhlIGxpY2Vuc2Uga2V5IGZvciBlbnRlcnByaXNlIHZlcnNpb25cbiAgaWYgKGFnR3JpZC5MaWNlbnNlTWFuYWdlciAmJiBsaWNlbnNlKVxuICAgIGFnR3JpZC5MaWNlbnNlTWFuYWdlci5zZXRMaWNlbnNlS2V5KGxpY2Vuc2UpO1xuXG4gIGNvbnN0IGlkICAgICAgICAgICAgICA9IG9wdGlvbnMuY29udGV4dC5pZDtcbiAgY29uc3QgY29udGFpbmVyICAgICAgID0gZ3dfZ2V0RG9jdW1lbnQoKS5nZXRFbGVtZW50QnlJZChpZCk7XG4gIC8vIHdlIG1ha2UgdGhlIGdyaWQgb3B0aW9ucyBhdmFpbGFibGUgYXMgc29vbiBhcyBwb3NzaWJsZSBcbiAgY29uc3QgZ3JpZCAgICAgICAgICAgID0gZ3dfYWRkR3JpZChpZCwge1xuICAgIGNvbnRhaW5lcixcbiAgICBvcHRpb25zXG4gIH0pO1xuXG4gIC8vIFRPRE86IHVzZSBhZyBncmlkIGRlc3Ryb3lcbiAgY29udGFpbmVyLmlubmVySFRNTCAgID0gJyc7XG5cbiAgY29uc3QgcGFyc2VkT3B0aW9ucyAgID0gZ3dfcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuICBwYXJzZWRPcHRpb25zLnJvd0RhdGEgPSBkYXRhO1xuXG4gIGNvbnN0IGluc3RhbmNlICAgICAgICA9IG5ldyBhZ0dyaWQuR3JpZChjb250YWluZXIsIHBhcnNlZE9wdGlvbnMpO1xuICBncmlkLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gIGdyaWQub3B0aW9ucyAgPSBwYXJzZWRPcHRpb25zO1xuXG4gIGNvbnNvbGUubG9nKFxuICAgIGAlYyBHcmlkIFske2lkfV0gc2V0dGluZ3MgOiBgXG4gICAgLCAnYmFja2dyb3VuZDogIzIyMjsgY29sb3I6ICNiYWRhNTUnXG4gICAgLCBwYXJzZWRPcHRpb25zXG4gICk7XG59XG5cbi8qKlxuICogUGFyc2UgT3B0aW9uc1xuICogXG4gKiBQYXJzZSB0aGUgZ3JpZCBvcHRpb25zIGFuZCByZXR1cm4gXG4gKiBhbiBvYmplY3Qgd2hpY2ggY2FuIGJlIHBhc3NlZCB0byB0aGUgZ3JpZFxuICogXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBHcmlkIG9wdGlvbnMgYXMgSnNvbiBPYmplY3RcbiAqIFxuICogQHJldHVybiB7T2JqZWN0fSBvcHRpb25zIG9iamVjdFxuICovXG5mdW5jdGlvbiBnd19wYXJzZU9wdGlvbnMob3B0aW9ucykge1xuICBjb25zdCBkZWVwUGFyc2VkT3B0aW9ucyAgICAgPSBkZWVwUGFyc2VKc29uKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKTtcbiAgY29uc3QgaWQgICAgICAgICAgICAgICAgICAgID0gZGVlcFBhcnNlZE9wdGlvbnMuY29udGV4dC5pZDtcbiAgY29uc3QgZ2V0RGF0YVBhdGhUZW1wbGF0ZSAgID0gZGVlcFBhcnNlZE9wdGlvbnMuY29udGV4dC5nZXREYXRhUGF0aCB8fCBcIlwiO1xuICAvLyBUT0RPOiBkbyB3ZSBuZWVkIHRvIGNvbnRyb2wgdGhpcyBzZXR0aW5nIGZyb20gQkJqID9cbiAgY29uc3QgZGVib3VuY2VEdXJhdGlvbiAgICAgID0gMjUwO1xuICBjb25zdCBmaW5hbE9wdGlvbnMgPSB7XG4gICAgLi4uZGVlcFBhcnNlZE9wdGlvbnMgLFxuICAgIC4uLntcbiAgICAgIGdldERvY3VtZW50OiAgICAgICAgICAgICgpICAgICA9PiAgIGd3X2dldERvY3VtZW50KCksXG4gICAgICBvbkNlbGxFZGl0aW5nU3RhcnRlZDogICBlICAgICAgPT4geyBnd19vbkNlbGxFZGl0aW5nRXZlbnQoaWQsIGUpIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgb25DZWxsRWRpdGluZ1N0b3BwZWQ6ICAgZSAgICAgID0+IHsgZ3dfb25DZWxsRWRpdGluZ0V2ZW50KGlkLCBlKSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIG9uQ2VsbFZhbHVlQ2hhbmdlZDogICAgIGUgICAgICA9PiB7IGd3X29uQ2VsbEVkaXRpbmdFdmVudChpZCwgZSkgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBvblJvd0VkaXRpbmdTdGFydGVkOiAgICBlICAgICAgPT4geyBnd19vblJvd0VkaXRpbmdFdmVudChpZCwgZSkgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLFxuICAgICAgb25Sb3dFZGl0aW5nU3RvcHBlZDogICAgZSAgICAgID0+IHsgZ3dfb25Sb3dFZGl0aW5nRXZlbnQoaWQsIGUpICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIG9uUm93VmFsdWVDaGFuZ2VkOiAgICAgIGUgICAgICA9PiB7IGd3X29uUm93RWRpdGluZ0V2ZW50KGlkLCBlKSAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBvbkNlbGxDbGlja2VkOiAgICAgICAgICBlICAgICAgPT4geyBnd19vbkNlbGxDbGlja0V2ZW50KGlkLCBlKSAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLFxuICAgICAgb25DZWxsRG91YmxlQ2xpY2tlZDogICAgZSAgICAgID0+IHsgZ3dfb25DZWxsQ2xpY2tFdmVudChpZCwgZSkgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIG9uR3JpZFJlYWR5OiAgICAgICAgICAgIGUgICAgICA9PiB7IGd3X29uUmVhZHlFdmVudChpZCwgZSkgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsXG4gICAgICBnZXRSb3dOb2RlSWQ6ICAgICAgICAgICBkYXRhICAgPT4gICBnd19nZXRSb3dOb2RlSWQoaWQsIGRhdGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLFxuICAgICAgZ2V0Q29udGV4dE1lbnVJdGVtczogICAgcGFyYW1zID0+ICAgZ3dfZ2V0Q29udGV4dE1lbnUoaWQsIHBhcmFtcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIFwiZ2V0Q2hhcnRUb29sYmFySXRlbXNcIjogICAgICAgICAgICAgZ3dfZ2V0Q2hhcnRUb29sYmFySXRlbXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIFwicG9wdXBQYXJlbnRcIjogICAgICAgICAgICAgICAgICAgICAgZ3dfZ2V0RG9jdW1lbnQoKS5ib2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxcbiAgICAgIFwib25Sb3dEb3VibGVDbGlja2VkXCI6ICAgICAgICAgICAgICAgZ3dfZGVib3VuY2UoZ3dfb25Sb3dEb3VibGVDbGlja2VkLCBkZWJvdW5jZUR1cmF0aW9uKSAgICAgICAgICxcbiAgICAgIFwib25TZWxlY3Rpb25DaGFuZ2VkXCI6ICAgICAgICAgICAgICAgZ3dfZGVib3VuY2UoZ3dfb25TZWxlY3Rpb25DaGFuZ2VkLCBkZWJvdW5jZUR1cmF0aW9uKSAgICAgICAgICxcbiAgICAgIFwib25SYW5nZVNlbGVjdGlvbkNoYW5nZWRcIjogICAgICAgICAgZ3dfZGVib3VuY2UoZ3dfb25SYW5nZVNlbGVjdGlvbkNoYW5nZWQgLCBkZWJvdW5jZUR1cmF0aW9uKSAgICxcbiAgICAgIFwiY29tcG9uZW50c1wiOiB7XG4gICAgICAgIFwiQm9vbGVhbkZpbHRlclwiICAgICAgICAgICAgICAgOiBCYXNpcy5BZ0dyaWRDb21wb25lbnRzLkJvb2xlYW5GaWx0ZXIgICAgICAgICxcbiAgICAgICAgXCJCb29sZWFuUmVuZGVyZXJcIiAgICAgICAgICAgICA6IEJhc2lzLkFnR3JpZENvbXBvbmVudHMuQm9vbGVhblJlbmRlcmVyICAgICAgLFxuICAgICAgICBcIkJvb2xlYW5FZGl0b3JcIiAgICAgICAgICAgICAgIDogQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5Cb29sZWFuRWRpdG9yICAgICAgICAsXG4gICAgICAgIFwiTnVtYmVyRWRpdG9yXCIgICAgICAgICAgICAgICAgOiBCYXNpcy5BZ0dyaWRDb21wb25lbnRzLk51bWJlckVkaXRvciAgICAgICAgICxcbiAgICAgICAgXCJUZXh0RWRpdG9yXCIgICAgICAgICAgICAgICAgICA6IEJhc2lzLkFnR3JpZENvbXBvbmVudHMuVGV4dEVkaXRvciAgICAgICAgICAgLFxuICAgICAgICBcIkRhdGVUaW1lRWRpdG9yXCIgICAgICAgICAgICAgIDogQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5EYXRlVGltZUVkaXRvciAgICAgICAsXG4gICAgICAgIFwiRGF0ZVRpbWVGaWx0ZXJcIiAgICAgICAgICAgICAgOiBCYXNpcy5BZ0dyaWRDb21wb25lbnRzLkRhdGVUaW1lRmlsdGVyICAgICAgICxcbiAgICAgICAgXCJJbWFnZVJlbmRlcmVyXCIgICAgICAgICAgICAgICA6IEJhc2lzLkFnR3JpZENvbXBvbmVudHMuSW1hZ2VSZW5kZXJlciAgICAgICAgLFxuICAgICAgICBcIlRlbXBsYXRlUmVuZGVyZXJcIiAgICAgICAgICAgIDogQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5UZW1wbGF0ZVJlbmRlcmVyICAgICAsXG4gICAgICB9LFxuICAgICAgXCJjb250ZXh0XCI6IHtcbiAgICAgICAgLi4uZGVlcFBhcnNlZE9wdGlvbnMuY29udGV4dCxcbiAgICAgICAgLi4ue1xuICAgICAgICAgIFwiZG9jdW1lbnRcIjogZ3dfZ2V0RG9jdW1lbnQoKSxcbiAgICAgICAgICBcIndpbmRvd1wiICA6IGd3X2dldFdpbmRvdygpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgaWYgKFxuICAgIGZpbmFsT3B0aW9ucy5jb250ZXh0Lmhhc093blByb3BlcnR5KFwibmF2aWdhdGVUb05leHRDZWxsXCIpICYmXG4gICAgZmluYWxPcHRpb25zLmNvbnRleHQubmF2aWdhdGVUb05leHRDZWxsXG4gICkge1xuICAgIGZpbmFsT3B0aW9ucy5uYXZpZ2F0ZVRvTmV4dENlbGwgPSBwYXJhbXMgPT4geyByZXR1cm4gZ3dfbmF2aWdhdGVUb05leHRSb3coaWQsIHBhcmFtcykgfTtcbiAgfVxuXG4gIGlmIChnZXREYXRhUGF0aFRlbXBsYXRlICYmIGZpbmFsT3B0aW9ucy50cmVlRGF0YSkge1xuICAgIGNvbnN0IGdldERhdGFQYXRoVGVtcGxhdGVDb21wbGllZCA9IHRlbXBsYXRlKGdldERhdGFQYXRoVGVtcGxhdGUpO1xuICAgIGZpbmFsT3B0aW9ucy5nZXREYXRhUGF0aCA9IGRhdGEgPT4gZ2V0RGF0YVBhdGhUZW1wbGF0ZUNvbXBsaWVkKHsgZGF0YTogZGF0YSB9KTtcbiAgfVxuXG4gIC8vIGV4dGVuZCB0aGUgY29sdW1uIGRlZmluaXRpb25zXG4gIGd3X2V4dGVuZENvbHVtbkRlZmluaXRpb25zKGZpbmFsT3B0aW9ucy5jb2x1bW5EZWZzKTtcblxuICByZXR1cm4gZmluYWxPcHRpb25zO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0ICdleHBvc2UtbG9hZGVyP2pzcyFqc3MvanNzLmpzJztcbmltcG9ydCB7Z3dfZ2V0RG9jdW1lbnR9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuXG4vKipcbiAqIEZvcm1hdGUgdGhlIGNzcyBzZWxlY3RvciBcbiAqIFxuICogQ2hlY2sgaWYgdGhlIGNzcyBzZWxlY3RvciBzdGFydHMgd2l0aCBkb3QgLCBpZiBub3QgYWRkIG9uZSBhbmQgcmV0dXJuIHRoZSBcbiAqIGZvcm1hdHRlZCBuYW1lIFxuICogXG4gKiBAcGFyYW0geyp9IHNlbGVjdG9yIFxuICovXG5mdW5jdGlvbiBmb3JtYXRTZWxlY3RvcihzZWxlY3Rvcil7XG4gIHJldHVybiBzZWxlY3Rvci5zdGFydHNXaXRoKFwiLlwiKSA/IHNlbGVjdG9yIDogYC4ke3NlbGVjdG9yfWA7XG59XG5cbi8qKlxuICogQWRkIG5ldyBzdHlsZSBcbiAqIFxuICogQWRkIG5ldyBzdHlsZSB0byB0aGUgZG9jdW1lbnQgXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWxlY3RvciBjc3Mgc2VsZWN0b3JcbiAqIEBwYXJhbSB7U3RyaW5nfSBydWxlcyBKc29uIHN0cmluZyBmb3IgYW4gYXJyYXkgb2YgcnVsZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3NldFN0eWxlKHNlbGVjdG9yLCBydWxlcykge1xuICBqc3MuZm9yRG9jdW1lbnQoZ3dfZ2V0RG9jdW1lbnQoKSkuc2V0KGZvcm1hdFNlbGVjdG9yKHNlbGVjdG9yKSwgSlNPTi5wYXJzZShydWxlcykpO1xufVxuXG4vKipcbiAqIFJlbW92ZSBzdHlsZVxuICogXG4gKiBSZW1vdmUgYWRkZWQgc3R5bGUgZnJvbSB0aGVzIGRvY3VtZW50IFxuICogXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3IgY3NzIHNlbGVjdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19yZW1vdmVTdHlsZShzZWxlY3Rvcikge1xuICBqc3MuZm9yRG9jdW1lbnQoZ3dfZ2V0RG9jdW1lbnQoKSkucmVtb3ZlKGZvcm1hdFNlbGVjdG9yKHNlbGVjdG9yKSk7XG59XG4iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X2dldEdyaWQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIlxuaW1wb3J0IHtcbiAgZ3dfcGFyc2VOb2RlRnJvbUV2ZW50LFxuICBnd19zZW5kRXZlbnRcbn0gZnJvbSBcImV2ZW50cy91dGlsaXRpZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGd3X2dldENvbnRleHRNZW51KGdyaWRJZCwgcGFyYW1zKSB7XG5cbiAgY29uc3QgYnVpbGRDb250ZXh0TWVudUFjdGlvbiA9IChwYXJhbXMsIGlkKSA9PiB7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuXG4gICAgICBjb25zdCBub2RlID0gZ3dfcGFyc2VOb2RlRnJvbUV2ZW50KHBhcmFtcyk7XG4gICAgICBjb25zdCBjb2xJZCA9IHBhcmFtcy5jb2x1bW4uY29sSWQ7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtcy52YWx1ZTtcblxuICAgICAgZ3dfc2VuZEV2ZW50KGd3X2dldEdyaWQoZ3JpZElkKS5vcHRpb25zLmNvbnRleHQsIHtcbiAgICAgICAgJ3R5cGUnOiAnZ3cuY29udGV4dG1lbnUnLFxuICAgICAgICAnZGV0YWlsJzogSlNPTi5zdHJpbmdpZnkoeyByOiBub2RlLCBjOiBjb2xJZCwgdjp2YWx1ZSwgaTppZCB9KVxuICAgICAgfSwgaWQpO1xuICAgIH07XG4gIH07XG5cbiAgY29uc3QgcGFyc2VNZW51ID0gKG1lbnUpID0+IHtcbiAgICBtZW51LmZvckVhY2goaXRlbSA9PiB7XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHJldHVybjtcblxuICAgICAgaXRlbVsnYWN0aW9uJ10gPSBidWlsZENvbnRleHRNZW51QWN0aW9uKHBhcmFtcywgaXRlbS5pZCk7XG5cbiAgICAgIGlmIChpdGVtWydjc3NDbGFzc2VzJ10gJiYgIUFycmF5LmlzQXJyYXkoaXRlbVsnY3NzQ2xhc3NlcyddKSlcbiAgICAgICAgaXRlbVsnY3NzQ2xhc3NlcyddID0gaXRlbVsnY3NzQ2xhc3NlcyddLnNwbGl0KFwiIFwiKTtcblxuICAgICAgaWYgKGl0ZW1bJ3N1Yk1lbnUnXSkgaXRlbVsnc3ViTWVudSddID0gcGFyc2VNZW51KGl0ZW1bJ3N1Yk1lbnUnXSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWVudTtcbiAgfTtcblxuICByZXR1cm4gcGFyc2VNZW51KGd3X2dldEdyaWQoZ3JpZElkKS5vcHRpb25zLmNvbnRleHQuY29udGV4dE1lbnUpO1xufVxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19nZXRHcmlkIH0gZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5cbi8qKlxuICogU2hvdyBsb2FkaW5nIG92ZXJsYXlcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIHRoZSBncmlkIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zaG93TG9hZGluZ092ZXJsYXkoaWQpIHtcbiAgZ3dfZ2V0R3JpZChpZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAuc2hvd0xvYWRpbmdPdmVybGF5KCk7XG59XG5cbi8qKlxuICogU2hvdyAnbm8gcm93cycgb3ZlcmxheVxuICogXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3Nob3dOb1Jvd3NPdmVybGF5KGlkKSB7XG4gIGd3X2dldEdyaWQoaWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLnNob3dOb1Jvd3NPdmVybGF5KCk7XG59XG5cbi8qKlxuICogQ2xlYXIgYWxsIG92ZXJsYXlzXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfaGlkZU92ZXJsYXkoaWQpIHtcbiAgZ3dfZ2V0R3JpZChpZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAuaGlkZU92ZXJsYXkoKTtcbn0iLCIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4gKiAoYykgQmFzaXMgRXVyb3BlIDxldUBCYXNpcy5BZ0dyaWRDb21wb25lbnRzLmNvbT5cbiAqXG4gKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgZ3dfZ2V0R3JpZCB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ3dfcGFyc2VOb2RlIH0gZnJvbSBcImV2ZW50cy91dGlsaXRpZXNcIjtcblxuY29uc3QgeyBkZWVwUGFyc2VKc29uIH0gPSByZXF1aXJlKFwiZGVlcC1wYXJzZS1qc29uXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0UXVpY2tGaWx0ZXIoaWQsIGZpbHRlcikge1xuICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmFwaS5zZXRRdWlja0ZpbHRlcihmaWx0ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfZXhwYW5kQWxsKGlkKSB7XG4gIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuYXBpLmV4cGFuZEFsbCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfY29sbGFwc2VBbGwoaWQpIHtcbiAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5hcGkuY29sbGFwc2VBbGwoKTtcbn1cbi8qKlxuICogRW5zdXJlcyB0aGUgcm93IGluZGV4IGlzIHZpc2libGUgYnkgdmVydGljYWxseSBzY3JvbGxpbmcgdGhlIGdyaWRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgIHRoZSBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7U3RyaW5nfE51bWJlcn0gaW5kZXggdGhlIHJvdyBpbmRleCBvciBrZXlcbiAqIEBwYXJhbSB7U3RyaW5nfSBwb3NpdGlvbiB7J3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJywgdW5kZWZpbmVkL251bGx9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19lbnN1cmVJbmRleFZpc2libGUoaWQsIGluZGV4LCBwb3NpdGlvbikge1xuICBjb25zdCBhcGkgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmFwaTtcbiAgY29uc3Qgcm93SWQgPSBhcGkuZ2V0Um93Tm9kZShpbmRleCkucm93SW5kZXg7XG4gIFxuICBhcGkuZW5zdXJlSW5kZXhWaXNpYmxlKHJvd0lkLCBwb3NpdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19uYXZpZ2F0ZVRvTmV4dFJvdyhpZCwgcGFyYW1zKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuICBsZXQgcHJldmlvdXNDZWxsID0gcGFyYW1zLnByZXZpb3VzQ2VsbFBvc2l0aW9uO1xuICBsZXQgc3VnZ2VzdGVkTmV4dENlbGwgPSBwYXJhbXMubmV4dENlbGxQb3NpdGlvbjtcblxuICBjb25zdCBLRVlfVVAgPSAzODtcbiAgY29uc3QgS0VZX0RPV04gPSA0MDtcbiAgY29uc3QgS0VZX0xFRlQgPSAzNztcbiAgY29uc3QgS0VZX1JJR0hUID0gMzk7XG5cbiAgc3dpdGNoIChwYXJhbXMua2V5KSB7XG4gICAgY2FzZSBLRVlfRE9XTjpcbiAgICAgIC8vIHNldCBzZWxlY3RlZCBjZWxsIG9uIGN1cnJlbnQgY2VsbCArIDFcbiAgICAgIG9wdGlvbnMuYXBpLmZvckVhY2hOb2RlKG5vZGUgPT4ge1xuICAgICAgICBpZiAocHJldmlvdXNDZWxsLnJvd0luZGV4ICsgMSA9PT0gbm9kZS5yb3dJbmRleCkge1xuICAgICAgICAgIG5vZGUuc2V0U2VsZWN0ZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN1Z2dlc3RlZE5leHRDZWxsO1xuICAgIGNhc2UgS0VZX1VQOlxuICAgICAgLy8gc2V0IHNlbGVjdGVkIGNlbGwgb24gY3VycmVudCBjZWxsIC0gMVxuICAgICAgb3B0aW9ucy5hcGkuZm9yRWFjaE5vZGUobm9kZSA9PiB7XG4gICAgICAgIGlmIChwcmV2aW91c0NlbGwucm93SW5kZXggLSAxID09PSBub2RlLnJvd0luZGV4KSB7XG4gICAgICAgICAgbm9kZS5zZXRTZWxlY3RlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gc3VnZ2VzdGVkTmV4dENlbGw7XG4gICAgY2FzZSBLRVlfTEVGVDpcbiAgICBjYXNlIEtFWV9SSUdIVDpcbiAgICAgIHJldHVybiBzdWdnZXN0ZWROZXh0Q2VsbDtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IGhhdmUgc3VwZXIgc3RyYW5nZSBrZXlib2FyZFwiKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYSByb3cgYmFzZWQgb24gYGdldFJvd05vZGVJZGAgY29uZmlnIGRlZmluZWQgaW4gdGhlIGdyaWQgY29udGV4dFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCB0aGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gZGF0YSAgdGhlIGRhdGEgcm93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19nZXRSb3dOb2RlSWQoaWQsIGRhdGEpIHtcbiAgcmV0dXJuIGRhdGFbZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb250ZXh0LmdldFJvd05vZGVJZF07XG59XG5cbi8qKlxuICogVXBkYXRlIHRoZSBncmlkJ3MgZGF0YSBzZXRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtPYmplY3R9IGpzb24ganNvbiBvYmplY3Qgd2hpY2ggY29udGFpbnMgdGhlIG5ldyBkYXRhc2V0IHRvIHVwZGF0ZSB0aGUgZ3JpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0Um93c0RhdGEoaWQsIGpzb24pIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgb3B0aW9ucy5hcGkuc2V0Um93RGF0YShqc29uKTtcbiAgb3B0aW9ucy5yb3dEYXRhID0ganNvbjtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSByb3cgb24gdGhlIGdyaWRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtPYmplY3R9IHJvdyAgYSByb3cgZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0Um93RGF0YShpZCwgcm93KSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuXG4gIG9wdGlvbnMuYXBpLnVwZGF0ZVJvd0RhdGEoeyB1cGRhdGU6IFtyb3ddIH0pO1xufVxuXG4vKipcbiAqIFJlbW92ZSBvbmUgb3IgbW9yZSByb3dzIGZyb20gdGhlIGdyaWRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtBcnJheX0gaW5kZXhlcyAgYW4gYXJyYXkgb2Ygcm93cyBpbmRleGVzIG9yIGFuIGFycmF5IG9mIHJvd3Mga2V5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfcmVtb3ZlUm93cyhpZCwgaW5kZXhlcykge1xuICBjb25zdCBvcHRpb25zID0gZ3dfZ2V0R3JpZChpZCkub3B0aW9ucztcbiAgbGV0IGl0ZW1zID0gW107XG5cbiAgaW5kZXhlcy5mb3JFYWNoKGluZGV4ID0+IHtcbiAgICBpdGVtcy5wdXNoKG9wdGlvbnMuYXBpLmdldFJvd05vZGUoaW5kZXgpLmRhdGEpO1xuICB9KTtcblxuICBvcHRpb25zLmFwaS51cGRhdGVSb3dEYXRhKHsgcmVtb3ZlOiBpdGVtcyB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYSByb3cgdG8gZ3JpZCBhdCB0aGUgZ2l2ZW4gaW5kZXhcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtOdW1iZXJ9IGluZGV4ICBUaGUgaW5zZXJ0aW9uIHBvc2l0aW9uXG4gKiBAcGFyYW0ge0FycmF5fSByb3dzICBBbiBhcnJheSBvZiByb3dzIHRvIGFkZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfYWRkUm93cyhpZCwgaW5kZXgsIHJvd3MpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgb3B0aW9ucy5hcGkudXBkYXRlUm93RGF0YSh7IGFkZDogcm93cywgYWRkSW5kZXg6IGluZGV4IH0pO1xufVxuXG4vKipcbiAqIFNldCB0aGUgaGVpZ2h0IG9mIGFsbCByb3dzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkIHRoZSBncmlkIGlkXG4gKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0IHRoZSByb3cgaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRSb3dzSGVpZ2h0KGlkLCBoZWlnaHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgb3B0aW9ucy5hcGkuZm9yRWFjaE5vZGUocm93ID0+IHtcbiAgICByb3cuc2V0Um93SGVpZ2h0KGhlaWdodCk7XG4gIH0pO1xuICBvcHRpb25zLmFwaS5vblJvd0hlaWdodENoYW5nZWQoKTtcbn1cblxuLyoqXG4gKiBTZXQgdGhlIGdpdmVuIHJvdyBoZWlnaHRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWQgdGhlIGdyaWQgaWRcbiAqIEBwYXJhbSB7TnVtYmVyfSBpbmRleCB0aGUgcm93IGluZGV4XG4gKiBAcGFyYW0ge051bWJlcn0gaGVpZ2h0IHRoZSBuZXcgaGVpZ2h0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRSb3dIZWlnaHQoaWQsIGluZGV4LCBoZWlnaHQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG4gIGNvbnN0IHJvdyA9IG9wdGlvbnMuYXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgoaW5kZXgpO1xuXG4gIGlmIChyb3cpIHtcbiAgICByb3cuc2V0Um93SGVpZ2h0KGhlaWdodCk7XG4gICAgb3B0aW9ucy5hcGkub25Sb3dIZWlnaHRDaGFuZ2VkKCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS53YXJuKGBGYWlsZWQgdG8gc2V0IGhlaWdodCBmb3Igcm93ICR7aW5kZXh9LiBSb3cgY2FuIG5vdCBiZSBmb3VuZGApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRTZWxlY3RlZFJvd3MoaWQsIHJvd3MpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgb3B0aW9ucy5hcGkuZm9yRWFjaE5vZGVBZnRlckZpbHRlckFuZFNvcnQobm9kZSA9PiB7XG4gICAgaWYgKHJvd3MuaW5kZXhPZihub2RlLnJvd0luZGV4KSA+IC0xKSB7XG4gICAgICBub2RlLnNldFNlbGVjdGVkKHRydWUpO1xuICAgICAgbm9kZS5leHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICB9KTtcbiAgb3B0aW9ucy5hcGkub25Hcm91cEV4cGFuZGVkT3JDb2xsYXBzZWQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGd3X3NlbGVjdEFsbChpZCwgZmlsdGVyZWQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgaWYgKDEgPT09IGZpbHRlcmVkKSB7XG4gICAgb3B0aW9ucy5hcGkuc2VsZWN0QWxsRmlsdGVyZWQoKTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zLmFwaS5zZWxlY3RBbGwoKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfZGVzZWxlY3RBbGwoaWQsIGZpbHRlcmVkKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuXG4gIGlmICgxID09PSBmaWx0ZXJlZCkge1xuICAgIG9wdGlvbnMuYXBpLmRlc2VsZWN0QWxsRmlsdGVyZWQoKTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zLmFwaS5kZXNlbGVjdEFsbCgpO1xuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IHNlbGVjdGVkIHJvd3NcbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gaWQgZ3JpZCdzIGlkXG4gKlxuICogQHJldHVybnMge1N0cmluZ30gIHNlbGVjdGVkIHJvd3MgYXMgSlNPTlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0U2VsZWN0ZWRSb3dzKGlkKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSBnd19nZXRHcmlkKGlkKS5vcHRpb25zO1xuICBjb25zdCBub2RlcyA9IG9wdGlvbnMuYXBpLmdldFNlbGVjdGVkTm9kZXMoKTtcbiAgbGV0IHBhcnNlZCA9IFtdO1xuXG4gIG5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgcGFyc2VkLnB1c2goZ3dfcGFyc2VOb2RlKG5vZGUsIG9wdGlvbnMuY29udGV4dCkpO1xuICB9KTtcblxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocGFyc2VkKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGxhc3Qgc2VsZWN0ZWQgcm93XG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGlkIGdyaWQncyBpZFxuICpcbiAqIEByZXR1cm5zIHtTdHJpbmd9IHNlbGVjdGVkIHJvdyBhcyBKU09OXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19nZXRTZWxlY3RlZFJvdyhpZCkge1xuICBjb25zdCByb3dzID0gSlNPTi5wYXJzZShnd19nZXRTZWxlY3RlZFJvd3MoaWQpKTtcblxuICBpZiAocm93cy5sZW5ndGgpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocm93c1tyb3dzLmxlbmd0aCAtIDFdKTtcbiAgfVxuXG4gIHJldHVybiBcIlwiO1xufVxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19nZXRHcmlkIH0gZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19zZXRTdGF0ZShpZCwgc3RhdGUpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG5cbiAgdHJ5IHtcbiAgICBvcHRpb25zLmNvbHVtbkFwaS5zZXRDb2x1bW5TdGF0ZShzdGF0ZS5jb2x1bW5zKTtcbiAgICBvcHRpb25zLmNvbHVtbkFwaS5zZXRDb2x1bW5Hcm91cFN0YXRlKHN0YXRlLmdyb3Vwcyk7XG4gICAgb3B0aW9ucy5hcGkuc2V0U29ydE1vZGVsKHN0YXRlLnNvcnQpO1xuICAgIG9wdGlvbnMuYXBpLnNldEZpbHRlck1vZGVsKHN0YXRlLmZpbHRlcnMpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gcGFyc2UgZ3JpZCBzdGF0ZSBmcm9tIEpTT04nLCBlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0U3RhdGUoaWQpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IGd3X2dldEdyaWQoaWQpLm9wdGlvbnM7XG4gIGNvbnN0IGNvbHVtbnMgPSBvcHRpb25zLmNvbHVtbkFwaS5nZXRDb2x1bW5TdGF0ZSgpO1xuICBjb25zdCBncm91cHMgPSBvcHRpb25zLmNvbHVtbkFwaS5nZXRDb2x1bW5Hcm91cFN0YXRlKCk7XG4gIGNvbnN0IHNvcnQgPSBvcHRpb25zLmFwaS5nZXRTb3J0TW9kZWwoKTtcbiAgY29uc3QgZmlsdGVycyA9IG9wdGlvbnMuYXBpLmdldEZpbHRlck1vZGVsKCk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgY29sdW1ucyxcbiAgICAgIGdyb3VwcyxcbiAgICAgIHNvcnQsXG4gICAgICBmaWx0ZXJzXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBjb252ZXJ0IHRoZSBncmlkIHN0YXRlIHRvIGpzb24nLCBlKTtcbiAgfVxufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfZ2V0R3JpZCB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0U3RhdHVzYmFyQ29tcG9uZW50VmlzaWJpbGl0eShpZCwga2V5LCB2aXNpYmlsaXR5KSB7XG5cdGd3X2dldEdyaWQoaWQpXG5cdFx0Lm9wdGlvbnNcblx0XHQuYXBpXG5cdFx0LmdldFN0YXR1c1BhbmVsKGtleSlcblx0XHQuc2V0VmlzaWJsZShCb29sZWFuKHZpc2liaWxpdHkpKTtcbn0iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X2dldEdyaWQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGd3X3NldFNpZGVCYXJWaXNpYmxlKGlkLCB2YWx1ZSkge1xuICBnd19nZXRHcmlkKGlkKVxuICAgIC5vcHRpb25zXG4gICAgLmFwaVxuICAgIC5zZXRTaWRlQmFyVmlzaWJsZShCb29sZWFuKHZhbHVlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnd19vcGVuVG9vbHBhbmVsKGdyaWRJZCwgdG9vbHBhbmVsSWQpIHtcbiAgZ3dfZ2V0R3JpZChncmlkSWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLm9wZW5Ub29sUGFuZWwodG9vbHBhbmVsSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfY2xvc2VUb29scGFuZWwoZ3JpZElkLCB0b29scGFuZWxJZCkge1xuICBnd19nZXRHcmlkKGdyaWRJZClcbiAgICAub3B0aW9uc1xuICAgIC5hcGlcbiAgICAuY2xvc2VUb29sUGFuZWwodG9vbHBhbmVsSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3dfc2V0RnVuY3Rpb25zUmVhZE9ubHkoaWQsIHJlYWRvbmx5KSB7XG4gIGd3X2dldEdyaWQoaWQpXG4gICAgLm9wdGlvbnNcbiAgICAuYXBpXG4gICAgLnNldEZ1bmN0aW9uc1JlYWRPbmx5KEJvb2xlYW4ocmVhZG9ubHkpKTtcbn0iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAQmFzaXMuQWdHcmlkQ29tcG9uZW50cy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuLyoqXG4gKiBHZXQgZG9jdW1lbnQgXG4gKiBcbiAqIEdldCB0aGUgZG9jdW1lbnQgaW5zdGFuY2UgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IEJCaiBlbnZcbiAqIFxuICogQHJldHVybiB7T2JqZWN0fSBEb2N1bWVudCBpbnN0YW5jZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0RG9jdW1lbnQoKSB7XG4gIHJldHVybiB0eXBlb2YgJGRvYyAhPT0gJ3VuZGVmaW5lZCcgPyAkZG9jIDogZG9jdW1lbnQ7XG59XG5cbi8qKlxuICogR2V0IHdpbmRvdyBcbiAqIFxuICogR2V0IHRoZSB3aW5kb3cgaW5zdGFuY2UgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IEJCaiBlbnZcbiAqIFxuICogQHJldHVybiB7T2JqZWN0fSBXaW5kb3cgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2dldFdpbmRvdygpIHtcbiAgcmV0dXJuIHR5cGVvZiAkd2luICE9PSAndW5kZWZpbmVkJyA/ICR3aW4gOiB3aW5kb3c7XG59XG5cbi8qKlxuICogRXNjYXBlIFZhbHVlIFxuICogXG4gKiBDaGFuZ2UgbnVsbCBhbmQgdW5kZWZpbmVkIHRvIGVtcHR5IHN0cmluZyBcbiAqIFxuICogQHBhcmFtIHsqfSB2YWx1ZSBcbiAqIFxuICogQHJldHVybiB7U3RyaW5nfSBlc2NhcGVkIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19lc2NhcGUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6ICcnO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgdW5pcXVlIHV1aWQgXG4gKiBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEwNTAzNC9jcmVhdGUtZ3VpZC11dWlkLWluLWphdmFzY3JpcHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3V1aWQoKSB7XG4gIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHtcbiAgICB2YXIgciA9IE1hdGgucmFuZG9tKCkgKiAxNiB8IDAsIHYgPSBjID09ICd4JyA/IHIgOiAociAmIDB4MyB8IDB4OCk7XG4gICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgR3JpZCBcbiAqIFxuICogUmV0cmlldmUgdGhlIGdyaWQgaW5zdGFuY2UgZnJvbSBgd2luZG93LkJCakdyaWRFeFdpZGdldGAgYXJyYXkgXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBcbiAqIEByZXR1cm4ge09iamVjdHxudWxsfSBUaGUgZ3JpZCdzIGluc3RhbmNlIG9mciBudWxsXG4gKiBAdGhyb3dzIFR5cGVFcnJvciB3aGVuIHRoZSBncmlkIGluc3RhbmNlIGlzIG5vdCBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfZ2V0R3JpZChpZCkge1xuICB3aW5kb3cuQkJqR3JpZEV4V2lkZ2V0ID0gd2luZG93LkJCakdyaWRFeFdpZGdldCB8fCB7fTtcbiAgY29uc3QgZ3JpZCA9ICB3aW5kb3cuQkJqR3JpZEV4V2lkZ2V0W2lkXSB8fCBudWxsO1xuXG4gIGlmICghZ3JpZCkge1xuICAgIGNvbnN0IHJlZ2lzdGVyZWRHcmlkcyA9IEpTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHdpbmRvdy5CQmpHcmlkRXhXaWRnZXQpKTtcbiAgICAvL2dldEZ1bmNBcmdzKGZ1bmMpLmZvckVhY2goKGtleSwgaSkgPT4gYXJnc09ialtrZXldID0gYXJnc1tpXSk7XG4gICAgXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbmBcXG5cXG5bR3JpZCBOb3QgRm91bmRdIFRoZSBtZXRob2QgYXNrZWQgZm9yIG5vbi1leGlzdGVudCBncmlkIGluc3RhbmNlLlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuUmVxdWlyZWQgR3JpZCBJZCA6ICR7aWR9ICAgXG5SZWdpc3RlcmVkIEdyaWRzIDogJHtyZWdpc3RlcmVkR3JpZHN9XG5gKTtcbiAgfVxuICBcbiAgcmV0dXJuIGdyaWQ7XG59XG5cbi8qKlxuICogQWRkIEdyaWQgXG4gKiBcbiAqIFN0b3JlIGEgbmV3IGdyaWQgaW5zdGFuY2UgYnkgaW4gdGhlIGB3aW5kb3cuQkJqR3JpZEV4V2lkZ2V0YCBhcnJheSBcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zICBUaGUgZ3JpZCdzIG9wdGlvbnNcbiAqIFxuICogQHJldHVybiB7T2JqZWN0fSBTdG9yZWQgZ3JpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfYWRkR3JpZChpZCwgb3B0aW9ucykge1xuICB3aW5kb3cuQkJqR3JpZEV4V2lkZ2V0ID0gd2luZG93LkJCakdyaWRFeFdpZGdldCB8fCB7fTtcbiAgd2luZG93LkJCakdyaWRFeFdpZGdldFtpZF0gPSBvcHRpb25zO1xuICBcbiAgcmV0dXJuIGd3X2dldEdyaWQoaWQpO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuLy8gc2VsZWN0aW9uIGNvbnN0YW50c1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX1JPV19DTElDSyA9IDY5O1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX1JPV19ET1VCTEVfQ0xJQ0sgPSA1MjtcbmV4cG9ydCBjb25zdCBHV19FVkVOVF9DRUxMX0NMSUNLID0gNTAwMTtcbmV4cG9ydCBjb25zdCBHV19FVkVOVF9DRUxMX0RPVUJMRV9DTElDSyA9IDUwMDI7XG5cbi8vIGVkaXRpbmcgY29uc3RhbnRzXG5leHBvcnQgY29uc3QgR1dfRVZFTlRfQ0VMTF9FRElUSU5HX1NUQVJURUQgPSA1MDAzO1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX0NFTExfRURJVElOR19TVE9QUEVEID0gNTAwNDtcbmV4cG9ydCBjb25zdCBHV19FVkVOVF9DRUxMX1ZBTFVFX0NIQU5HRUQgPSA1MDA1O1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX1JPV19FRElUSU5HX1NUQVJURUQgID0gNTAwNjtcbmV4cG9ydCBjb25zdCBHV19FVkVOVF9ST1dfRURJVElOR19TVE9QUEVEID0gNTAwNztcblxuLy8gc3RhdGUgY29uc3RhbnRzXG5leHBvcnQgY29uc3QgR1dfRVZFTlRfR1JJRF9TVEFURV9DSEFOR0UgPSA1MDA4O1xuXG4vLyByYW5nZSBzZWxlY3Rpb25cbmV4cG9ydCBjb25zdCBHV19FVkVOVF9SQU5HRV9TRUxFQ1RJT05fQ0hBTkdFRCA9IDUwMDk7XG5cbi8vIGtleWJvYXJkIGV2ZW50c1xuZXhwb3J0IGNvbnN0IEdXX0VWRU5UX0tFWVBSRVNTID0gNTAxMDsiLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X3NlbmRFdmVudCwgZ3dfcGFyc2VOb2RlRnJvbUV2ZW50IH0gZnJvbSBcIi4vdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBnd19lc2NhcGUsIGd3X2dldEdyaWQgfSBmcm9tIFwiYXBpL3V0aWxpdGllc1wiO1xuaW1wb3J0IHtcbiAgR1dfRVZFTlRfQ0VMTF9FRElUSU5HX1NUQVJURUQsXG4gIEdXX0VWRU5UX0NFTExfRURJVElOR19TVE9QUEVELFxuICBHV19FVkVOVF9DRUxMX1ZBTFVFX0NIQU5HRUQsXG4gIEdXX0VWRU5UX1JPV19FRElUSU5HX1NUQVJURUQsXG4gIEdXX0VWRU5UX1JPV19FRElUSU5HX1NUT1BQRURcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IENFTExfRURJVElOR19FVkVOVFNfTUFQID0ge1xuICAnY2VsbEVkaXRpbmdTdGFydGVkJyAgOiBHV19FVkVOVF9DRUxMX0VESVRJTkdfU1RBUlRFRCxcbiAgJ2NlbGxFZGl0aW5nU3RvcHBlZCcgIDogR1dfRVZFTlRfQ0VMTF9FRElUSU5HX1NUT1BQRUQsXG4gICdjZWxsVmFsdWVDaGFuZ2VkJyAgOiBHV19FVkVOVF9DRUxMX1ZBTFVFX0NIQU5HRUQsXG59O1xuXG5jb25zdCBST1dfRURJVElOR19FVkVOVFNfTUFQID0ge1xuICAncm93RWRpdGluZ1N0YXJ0ZWQnICA6IEdXX0VWRU5UX1JPV19FRElUSU5HX1NUQVJURUQsXG4gICdyb3dFZGl0aW5nU3RvcHBlZCcgIDogR1dfRVZFTlRfUk9XX0VESVRJTkdfU1RPUFBFRCxcbn07XG5cbi8qKlxuICogQW4gaGFuZGxlciBmb3IgdGhlIGdyaWQgYGNlbGxFZGl0aW5nU3RhcnRlZGAgLCBgY2VsbEVkaXRpbmdTdG9wcGVkYCBhbmQgXG4gKiBgY2VsbFZhbHVlQ2hhbmdlZGAgZXZlbnRzXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gZSAgVGhlIGV2ZW50IHBheWxvYWRcbiAqIFxuICogQGxpc3RlbnMgYWdHcmlkLmNlbGxFZGl0aW5nU3RhcnRlZFxuICogQGxpc3RlbnMgYWdHcmlkLmNlbGxFZGl0aW5nU3RvcHBlZFxuICogQGxpc3RlbnMgYWdHcmlkLmNlbGxWYWx1ZUNoYW5nZWRcbiAqIFxuICogQGZpcmVzIGd3LmNlbGxFZGl0aW5nU3RhcnRlZFxuICogQGZpcmVzIGd3LmNlbGxFZGl0aW5nU3RvcHBlZFxuICogQGZpcmVzIGd3LmNlbGxWYWx1ZUNoYW5nZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uQ2VsbEVkaXRpbmdFdmVudChpZCwgZSkge1xuXG4gIGNvbnN0IHZhbHVlID0gZS5oYXNPd25Qcm9wZXJ0eShcIm5ld1ZhbHVlXCIpID8gZ3dfZXNjYXBlKGUubmV3VmFsdWUpIDogZ3dfZXNjYXBlKGUudmFsdWUpO1xuICBjb25zdCBvbGRWYWx1ZSA9IGUuaGFzT3duUHJvcGVydHkoXCJvbGRWYWx1ZVwiKSA/ICBnd19lc2NhcGUoZS5vbGRWYWx1ZSkgOiAoZS5oYXNPd25Qcm9wZXJ0eShcIm5ld1ZhbHVlXCIpID8gZ3dfZXNjYXBlKGUubmV3VmFsdWUpIDogZ3dfZXNjYXBlKGUudmFsdWUpKVxuXG4gIC8vaWYgKHZhbHVlID09PSBvbGRWYWx1ZSkgcmV0dXJuO1xuXG4gIGNvbnN0IHBhcnNlZCA9IGd3X3BhcnNlTm9kZUZyb21FdmVudChlKTtcbiAgY29uc3QgdHlwZSA9IGUudHlwZTtcbiAgY29uc3QgY29sSWQgPSBlLmNvbHVtbi5jb2xJZDtcblxuICBpZiAocGFyc2VkKSB7XG4gICAgZ3dfc2VuZEV2ZW50KFxuICAgICAgZ3dfZ2V0R3JpZChpZCkub3B0aW9ucy5jb250ZXh0LFxuICAgICAge1xuICAgICAgICAndHlwZSc6IGBndy4ke3R5cGV9YCxcbiAgICAgICAgJ2RldGFpbCc6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICByOiBwYXJzZWQsIC8vIHJvd1xuICAgICAgICAgIHY6IHZhbHVlLCAvLyBuZXcgdmFsdWVcbiAgICAgICAgICBvOiBvbGRWYWx1ZSwgLy8gb2xkIHZhbHVlXG4gICAgICAgICAgYzogY29sSWQgLy8gY29sdW1uXG4gICAgICAgIH0pXG4gICAgICB9LFxuICAgICAgQ0VMTF9FRElUSU5HX0VWRU5UU19NQVBbdHlwZV1cbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQW4gaGFuZGxlciBmb3IgdGhlIGdyaWQgYHJvd0VkaXRpbmdTdGFydGVkYCAsIGByb3dFZGl0aW5nU3RvcHBlZGAgZXZlbnRzXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gZSAgVGhlIGV2ZW50IHBheWxvYWRcbiAqIFxuICogQGxpc3RlbnMgYWdHcmlkLnJvd0VkaXRpbmdTdGFydGVkXG4gKiBAbGlzdGVucyBhZ0dyaWQucm93RWRpdGluZ1N0b3BwZWRcbiAqIFxuICogQGZpcmVzIGd3LnJvd0VkaXRpbmdTdGFydGVkXG4gKiBAZmlyZXMgZ3cucm93RWRpdGluZ1N0b3BwZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uUm93RWRpdGluZ0V2ZW50KGlkLCBlKSB7XG4gIGNvbnN0IHBhcnNlZCA9IGd3X3BhcnNlTm9kZUZyb21FdmVudChlKTtcblxuICBpZiAocGFyc2VkKSB7XG4gICAgY29uc3QgdHlwZSA9IGUudHlwZTtcbiAgICBnd19zZW5kRXZlbnQoXG4gICAgICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbnRleHQsXG4gICAgICB7XG4gICAgICAgICd0eXBlJzogYGd3LiR7ZS50eXBlfWAsXG4gICAgICAgICdkZXRhaWwnOiBKU09OLnN0cmluZ2lmeShwYXJzZWQpXG4gICAgICB9LFxuICAgICAgUk9XX0VESVRJTkdfRVZFTlRTX01BUFt0eXBlXVxuICAgICk7XG4gIH1cbn1cblxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQge1xuXHRnd19vblJvd0RvdWJsZUNsaWNrZWQsXG5cdGd3X29uU2VsZWN0aW9uQ2hhbmdlZCxcblx0Z3dfb25DZWxsQ2xpY2tFdmVudCxcblx0Z3dfb25SYW5nZVNlbGVjdGlvbkNoYW5nZWRcbn0gZnJvbSBcIi4vc2VsZWN0aW9uc1wiO1xuXG5pbXBvcnQge1xuXHRnd19vbkNlbGxFZGl0aW5nRXZlbnQsXG5cdGd3X29uUm93RWRpdGluZ0V2ZW50XG59IGZyb20gXCIuL2VkaXRpbmdcIjtcblxuaW1wb3J0IHtcblx0Z3dfb25SZWFkeUV2ZW50XG59IGZyb20gXCIuL3JlYWR5XCI7XG5cbmltcG9ydCB7XG5cdGd3X2RlYm91bmNlXG59IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuXG5leHBvcnQge1xuXHRnd19vblJvd0RvdWJsZUNsaWNrZWQsXG5cdGd3X29uU2VsZWN0aW9uQ2hhbmdlZCxcblx0Z3dfb25SYW5nZVNlbGVjdGlvbkNoYW5nZWQsXG5cdGd3X29uQ2VsbENsaWNrRXZlbnQsXG5cdGd3X29uQ2VsbEVkaXRpbmdFdmVudCxcblx0Z3dfb25Sb3dFZGl0aW5nRXZlbnQsXG5cdGd3X29uUmVhZHlFdmVudCxcblx0Z3dfZGVib3VuY2Vcbn07IiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19zZW5kRXZlbnQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcbmltcG9ydCB7IEdXX0VWRU5UX0tFWVBSRVNTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnd19nZXRHcmlkIH0gZnJvbSBcImFwaS91dGlsaXRpZXNcIjtcblxuLyoqXG4gKiBDb21wb3NlIGEgbW9kZWwgb2YgdGhlIGtleWRvd24gZXZlbnQgYW5kIHNlbmQgaXQgdG8gQkJqXG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCAgdGhlIGdyaWQncyBpZFxuICogQHBhcmFtIHtFdmVudH0ga2V5ZG93bkV2ZW50IGtleWRvd24gZXZlbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uS2V5ZG93bihpZCwga2V5ZG93bkV2ZW50KSB7XG4gIGd3X3NlbmRFdmVudChcbiAgICBnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbnRleHQsXG4gICAge1xuICAgICAgJ3R5cGUnOiBgZ3cua2V5cHJlc3NgLFxuICAgICAgJ2RldGFpbCc6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgYzogIGtleWRvd25FdmVudC5rZXksXG4gICAgICAgIGtjOiBrZXlkb3duRXZlbnQud2hpY2ggfHwgTnVtYmVyKGtleWRvd25FdmVudC5rZXlDb2RlKSxcbiAgICAgICAgYWs6IGtleWRvd25FdmVudC5hbHRLZXksXG4gICAgICAgIHNrOiBrZXlkb3duRXZlbnQuc2hpZnRLZXksXG4gICAgICAgIGNrOiBrZXlkb3duRXZlbnQuY3RybEtleSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBHV19FVkVOVF9LRVlQUkVTU1xuICApO1xufVxuIiwiLypcbiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEJCakdyaWRFeFdpZGdldCBwbHVnaW4uXG4qIChjKSBCYXNpcyBFdXJvcGUgPGV1QGJhc2lzLmNvbT5cbipcbiogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuXG4qL1xuXG5pbXBvcnQgeyBnd19kZWJvdW5jZSB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ3dfb25TdGF0ZUNoYW5nZWQgfSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHsgZ3dfb25LZXlkb3duIH0gZnJvbSBcIi4va2V5Ym9hcmRcIjtcbmltcG9ydCB7IGd3X2dldEdyaWQgfSBmcm9tIFwiYXBpL3V0aWxpdGllc1wiO1xuXG4vKipcbiAqIE9uIFJlYWR5IEV2ZW50IFxuICogXG4gKiBUaGUgbWV0aG9kIHdpbGwgaWdub3JlIGZpcnN0IHJlYWR5IGV2ZW50IGFuZCB0aGVuIHJlZ2lzdGVyIGEgZGVib3VuY2VkIHN0YXRlXG4gKiBjYWxsYmFjayB0byBzZW5kIHN0YXRlIGV2ZW50cyB0byBCQmpcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBlICBUaGUgZXZlbnQgcGF5bG9hZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfb25SZWFkeUV2ZW50KGlkLCBlKSB7XG4gIGNvbnN0IGdyaWQgPSBnd19nZXRHcmlkKGlkKTtcblxuICAvLyByZWdpc3RlciBzdGF0ZSBkZWJvdW5jZSBtb25pdG9yIFxuICBjb25zdCBzdGF0ZURlYm91bmNlID0gZ3dfZGVib3VuY2UoY2hhbmdlRXZlbnQgPT4ge1xuICAgIGd3X29uU3RhdGVDaGFuZ2VkKGlkLCBjaGFuZ2VFdmVudCk7XG4gIH0sIDUwMCk7XG5cbiAgW1xuICAgICdzb3J0Q2hhbmdlZCcsXG4gICAgJ2ZpbHRlckNoYW5nZWQnLFxuICAgICdjb2x1bW5WaXNpYmxlJyxcbiAgICAnY29sdW1uUGlubmVkJyxcbiAgICAnY29sdW1uUmVzaXplZCcsXG4gICAgJ2NvbHVtbk1vdmVkJyxcbiAgICAnbmV3Q29sdW1uc0xvYWRlZCcsXG4gICAgJ2dyaWRDb2x1bW5zQ2hhbmdlZCcsXG4gICAgJ2Rpc3BsYXllZENvbHVtbnNDaGFuZ2VkJyxcbiAgICAndmlydHVhbENvbHVtbnNDaGFuZ2VkJyxcbiAgICAnY29sdW1uRXZlcnl0aGluZ0NoYW5nZWQnLFxuICAgIC8vJ2dyaWRTaXplQ2hhbmdlZCcsXG4gICAgJ2V4cGFuZE9yQ29sbGFwc2VBbGwnLFxuICAgIC8vJ3Rvb2xQYW5lbFZpc2libGVDaGFuZ2VkJ1xuICBdLmZvckVhY2goZXZlbnQgPT4ge1xuICAgIGdyaWQub3B0aW9ucy5hcGkuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgc3RhdGVEZWJvdW5jZSk7XG4gIH0pO1xuXG4gIC8vIHJlZ2lzdGVyIGtleWJvYXJkIGRlYm91bmNlIG1vbml0b3IgXG4gIGNvbnN0IGtleWJvYXJkRGVib3VuY2UgPSBnd19kZWJvdW5jZShrZXlkb3duRXZlbnQgPT4ge1xuICAgIGd3X29uS2V5ZG93bihpZCwga2V5ZG93bkV2ZW50KTtcbiAgfSAsIDUwMCk7XG5cbiAgZ3JpZC5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGtleWJvYXJkRGVib3VuY2UpO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfc2VuZEV2ZW50LCBnd19wYXJzZU5vZGVGcm9tRXZlbnQgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcbmltcG9ydCB7IGd3X2VzY2FwZSwgZ3dfZ2V0R3JpZCB9IGZyb20gXCJhcGkvdXRpbGl0aWVzXCI7XG5pbXBvcnQge1xuICBHV19FVkVOVF9ST1dfQ0xJQ0ssXG4gIEdXX0VWRU5UX1JPV19ET1VCTEVfQ0xJQ0ssXG4gIEdXX0VWRU5UX0NFTExfQ0xJQ0ssXG4gIEdXX0VWRU5UX0NFTExfRE9VQkxFX0NMSUNLLFxuICBHV19FVkVOVF9SQU5HRV9TRUxFQ1RJT05fQ0hBTkdFRFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY29uc3QgQ0VMTF9DTElDS0lOR19FVkVOVFNfTUFQID0ge1xuICAnY2VsbENsaWNrZWQnOiBHV19FVkVOVF9DRUxMX0NMSUNLLFxuICAnY2VsbERvdWJsZUNsaWNrZWQnOiBHV19FVkVOVF9DRUxMX0RPVUJMRV9DTElDSyxcbn07XG5cbi8qKlxuICogQW4gaGFuZGxlciBmb3IgdGhlIGdyaWQgYHJvd0RvdWJsZUNsaWNrZWRgIGV2ZW50XG4gKiBcbiAqIFRoZSBmdW5jdGlvbiB3aWxsIHNlbmQgYSBiYmogZXZlbnQgd2l0aCBgR1dfTk9ERWAgYXMgcGF5bG9hZFxuICogXG4gKiBAcGFyYW0ge09iamVjdH0gZSBUaGUgZXZlbnQncyBwYXlsb2FkXG4gKiBcbiAqIEBsaXN0ZW5zIGFnR3JpZC5yb3dEb3VibGVDbGlja2VkXG4gKiBAZmlyZXMgZ3cucm93RG91YmxlQ2xpY2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uUm93RG91YmxlQ2xpY2tlZChlKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBlLmFwaS5ncmlkT3B0aW9uc1dyYXBwZXIuZ3JpZE9wdGlvbnMuY29udGV4dDtcbiAgZ3dfc2VuZEV2ZW50KGNvbnRleHQsIHtcbiAgICAndHlwZSc6ICdndy5yb3dEb3VibGVDbGljaycsXG4gICAgJ2RldGFpbCc6ICcnXG4gIH0sIEdXX0VWRU5UX1JPV19ET1VCTEVfQ0xJQ0spO1xufVxuXG4vKipcbiAqIEEgaGFuZGxlciBmb3IgdGhlIGdyaWQgYHNlbGVjdGlvbkNoYW5nZWRgIGV2ZW50XG4gKiBcbiAqIEBwYXJhbSB7T2JqZWN0fSBlICBUaGUgZXZlbnQgcGF5bG9hZFxuICogXG4gKiBAbGlzdGVucyBhZ0dyaWQuc2VsZWN0aW9uQ2hhbmdlZFxuICogQGZpcmVzIGd3LnJvd1NlbGVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfb25TZWxlY3Rpb25DaGFuZ2VkKGUpIHtcbiAgY29uc3QgY29udGV4dCA9IGUuYXBpLmdyaWRPcHRpb25zV3JhcHBlci5ncmlkT3B0aW9ucy5jb250ZXh0O1xuICBnd19zZW5kRXZlbnQoY29udGV4dCwge1xuICAgICd0eXBlJzogJ2d3LnJvd1NlbGVjdCcsXG4gICAgJ2RldGFpbCc6ICcnXG4gIH0sIEdXX0VWRU5UX1JPV19DTElDSyk7XG59XG5cbi8qKlxuICogQSBoYW5kbGVyIGZvciB0aGUgZ3JpZCBgcmFuZ2VTZWxlY3Rpb25DaGFuZ2VkYCBldmVudFxuICogXG4gKiBAcGFyYW0ge09iamVjdH0gZSBcbiAqIFxuICogQGxpc3RlbnMgYWdHcmlkLnJhbmdlU2VsZWN0aW9uQ2hhbmdlZFxuICogQGZpcmVzIGd3LnJhbmdlU2VsZWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19vblJhbmdlU2VsZWN0aW9uQ2hhbmdlZChlKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBlLmFwaS5ncmlkT3B0aW9uc1dyYXBwZXIuZ3JpZE9wdGlvbnMuY29udGV4dDtcbiAgZ3dfc2VuZEV2ZW50KGNvbnRleHQsIHtcbiAgICAndHlwZSc6ICdndy5yYW5nZVNlbGVjdGlvbicsXG4gICAgJ2RldGFpbCc6ICcnXG4gIH0sIEdXX0VWRU5UX1JBTkdFX1NFTEVDVElPTl9DSEFOR0VEKTtcbn1cblxuLyoqXG4gKiBBIGhhbmRsZXIgZm9yIHRoZSBncmlkIGBjZWxsQ2xpY2tFdmVudGAgJiBgY2VsbERvdWJsZUNsaWNrZWRgIGV2ZW50XG4gKiBcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZCBUaGUgZ3JpZCdzIGlkXG4gKiBAcGFyYW0ge09iamVjdH0gZSAgVGhlIGV2ZW50IHBheWxvYWRcbiAqIFxuICogQGxpc3RlbnMgYWdHcmlkLmNlbGxDbGlja0V2ZW50XG4gKiBAbGlzdGVucyBhZ0dyaWQuY2VsbERvdWJsZUNsaWNrZWRcbiAqIFxuICogQGZpcmVzIGd3LmNlbGxDbGlja2VkXG4gKiBAZmlyZXMgZ3cuY2VsbERvdWJsZUNsaWNrZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X29uQ2VsbENsaWNrRXZlbnQoaWQsIGUpIHtcbiAgY29uc3QgcGFyc2VkID0gZ3dfcGFyc2VOb2RlRnJvbUV2ZW50KGUpO1xuXG4gIGlmIChwYXJzZWQpIHtcbiAgICBjb25zdCB0eXBlID0gZS50eXBlO1xuICAgIGd3X3NlbmRFdmVudChnd19nZXRHcmlkKGlkKS5vcHRpb25zLmNvbnRleHQsIHtcbiAgICAgICd0eXBlJzogYGd3LiR7ZS50eXBlfWAsXG4gICAgICAnZGV0YWlsJzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICByOiBwYXJzZWQsIC8vIHJvd1xuICAgICAgICB2OiBnd19lc2NhcGUoZS52YWx1ZSksICAvLyBuZXcgdmFsdWVcbiAgICAgICAgbzogZ3dfZXNjYXBlKGUudmFsdWUpLCAvLyBvZGwgdmFsdWVcbiAgICAgICAgYzogZS5jb2x1bW4uY29sSWQgLy8gY29sdW1uc1xuICAgICAgfSlcbiAgICB9LCBDRUxMX0NMSUNLSU5HX0VWRU5UU19NQVBbdHlwZV0pO1xuICB9XG59XG4iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCB7IGd3X3NlbmRFdmVudCB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgZ3dfZ2V0R3JpZCB9IGZyb20gXCJhcGkvdXRpbGl0aWVzXCI7XG5pbXBvcnQge1xuICBHV19FVkVOVF9HUklEX1NUQVRFX0NIQU5HRVxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBBbiBoYW5kbGVyIGZvciB0aGUgZ3JpZCBgc3RhdGVDaGFuZ2VkYCBldmVudHNcbiAqIFxuICogQHBhcmFtIHtTdHJpbmd9IGlkIFRoZSBncmlkJ3MgaWRcbiAqIEBwYXJhbSB7T2JqZWN0fSBlICBUaGUgZXZlbnQgcGF5bG9hZFxuICogXG4gKiBAbGlzdGVucyBhZ0dyaWQuc3RhdGVDaGFuZ2VkXG4gKiBAbGlzdGVucyBhZ0dyaWQucm93RWRpdGluZ1N0b3BwZWRcbiAqIFxuICogQGZpcmVzIGd3LnN0YXRlQ2hhbmdlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfb25TdGF0ZUNoYW5nZWQoaWQsIGUpIHtcbiAgZ3dfc2VuZEV2ZW50KFxuICAgIGd3X2dldEdyaWQoaWQpLm9wdGlvbnMuY29udGV4dCxcbiAgICB7XG4gICAgICAndHlwZSc6ICdndy5zdGF0ZUNoYW5nZWQnLFxuICAgICAgJ2RldGFpbCc6IFtdXG4gICAgfSxcbiAgICBHV19FVkVOVF9HUklEX1NUQVRFX0NIQU5HRVxuICApO1xufSIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuaW1wb3J0IHsgZ3dfZ2V0RG9jdW1lbnQgfSBmcm9tIFwiYXBpL3V0aWxpdGllc1wiO1xuXG4vKiogaHR0cHM6Ly9kYXZpZHdhbHNoLm5hbWUvamF2YXNjcmlwdC1kZWJvdW5jZS1mdW5jdGlvbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X2RlYm91bmNlKGZ1bmMsIHdhaXQsIGltbWVkaWF0ZSkge1xuICB2YXIgdGltZW91dDtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgdmFyIGxhdGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICBpZiAoIWltbWVkaWF0ZSkgZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICB9O1xuICAgIHZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0O1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dChsYXRlciwgd2FpdCk7XG4gICAgaWYgKGNhbGxOb3cpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gIH07XG59XG5cbi8qKlxuICogU2VuZCBhbiBldmVudCB0byBCQmogc2lkZSBcbiAqIFxuICogVGhlIGZ1bmN0aW9uIHdpbGwgdHJpZ2dlciBhIGN1c3RvbSBjbGljayBldmVudCBvbiB0aGUgYGV2ZW50LWJyaWRnZS0ke2lkfWAgZGl2XG4gKiB0aGVuIHRoZSBkaXYgd2lsbCB1c2UgYmFzaXNEaXNwYXRjaEN1c3RvbUV2ZW50IHRvIGRpc3BhdGNoIHRoZSBldmVudCB0byBCQmpcbiAqIFxuICogQHBhcmFtIHtBcnJheX0gY29udGV4dCB0aGUgZ3JpZCdzIGNvbnRleHRcbiAqIEBwYXJhbSB7Kn0gcGF5bG9hZCB0aGUgZXZlbnQgcGF5bG9hZFxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50SWQgdGhlIGV2ZW50J3MgaWQgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnd19zZW5kRXZlbnQoY29udGV4dCwgcGF5bG9hZCA9IHt9LCBldmVudElkID0gW10pIHtcbiAgY29uc3QgcmVnaXN0ZXJlZEludGVyZXN0cyA9IGNvbnRleHQuaW50ZXJlc3RzIHx8IFtdO1xuXG4gIGlmIChyZWdpc3RlcmVkSW50ZXJlc3RzLmluY2x1ZGVzKGV2ZW50SWQpKSB7XG4gICAgY29uc3QgZGl2ID0gZ3dfZ2V0RG9jdW1lbnQoKS5nZXRFbGVtZW50QnlJZChgZXZlbnQtYnJpZGdlLSR7Y29udGV4dC5pZH1gKTtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnY2xpY2snKTtcblxuICAgIGV2ZW50LnBheWxvYWQgPSBwYXlsb2FkO1xuICAgIGRpdi5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEJCakdyaWRFeFdpZGdldFJvd1xuICogXG4gKiBAcHJvcGVydHkge251bWJlcn0gaWQgXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW5kZXggXG4gKiBAcHJvcGVydHkge251bWJlcn0gcGFyZW50S2V5IFxuICogQHByb3BlcnR5IHtudW1iZXJ9IGNoaWxkSW5kZXggXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHNlbGVjdGVkIFxuICovXG5cbi8qKlxuICogUGFyc2UgYSBub2RlIGFzIEJCakdyaWRFeFdpZGdldFJvd1xuICogXG4gKiBAcGFyYW0ge09iamVjdH0gbm9kZSBhZyBncmlkIG5vZGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb250ZXh0ICBhZyBncmlkIGNvbnRleHRcbiAqIFxuICogQHJldHVybnMge0JCakdyaWRFeFdpZGdldFJvd3xCb29sZWFufSBvYmplY3QgZm9ybWF0dGVkIGFzIEJCakdyaWRFeFdpZGdldFJvdy5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgaWYgdGhlIG5vZGUgaXMgZm9yIGdyb3VwIG5vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGd3X3BhcnNlTm9kZShub2RlLCBjb250ZXh0KSB7XG5cbiAgaWYgKHRydWUgPT09IG5vZGUuZ3JvdXApIHJldHVybiBmYWxzZTsgLy8gd2UgZG8gbm90IG1hbmFnZSBncm91cHNcblxuICBjb25zdCByb3dOb2RlSWQgPSBjb250ZXh0Lmhhc093blByb3BlcnR5KCdnZXRSb3dOb2RlSWQnKSAmJiBub2RlLmRhdGFbY29udGV4dC5nZXRSb3dOb2RlSWRdID9cbiAgICBub2RlLmRhdGFbY29udGV4dC5nZXRSb3dOb2RlSWRdIDogJyc7XG5cbiAgcmV0dXJuIHtcbiAgICBpOiByb3dOb2RlSWQgPyByb3dOb2RlSWQgOiBub2RlLmlkLCAvLyBpZFxuICAgIHg6IHJvd05vZGVJZCwgLy8gaW5kZXhcbiAgICBwOiBub2RlLmhhc093blByb3BlcnR5KCdwYXJlbnQnKSAmJiBub2RlLnBhcmVudC5oYXNPd25Qcm9wZXJ0eSgna2V5JykgP1xuICAgICAgbm9kZS5wYXJlbnQua2V5IDogJycsIC8vIHBhcmVudCBrZXlcbiAgICBjOiBub2RlLmNoaWxkSW5kZXgsIC8vY2hpbGRJbmRleFxuICAgIHM6IEJvb2xlYW4obm9kZS5zZWxlY3RlZCksIC8vIHNlbGVjdGVkIFxuICB9O1xufVxuXG4vKipcbiAqIFBhcnNlIG5vZGUgZnJvbSBldmVudCBcbiAqIFxuICogUGFyc2Ugbm9kZSBpbiB0aGUgcGFTc2VkIGV2ZW50IGFzIEJCakdyaWRFeFdpZGdldFJvd1xuICogXG4gKiBAcGFyYW0ge09iamVjdH0gZVxuICogXG4gKiBAcmV0dXJucyB7QkJqR3JpZEV4V2lkZ2V0Um93fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3dfcGFyc2VOb2RlRnJvbUV2ZW50KGUpIHtcbiAgcmV0dXJuIGd3X3BhcnNlTm9kZShlLm5vZGUsIGUuY29udGV4dCk7XG59XG4iLCIvKlxuKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQkJqR3JpZEV4V2lkZ2V0IHBsdWdpbi5cbiogKGMpIEJhc2lzIEV1cm9wZSA8ZXVAYmFzaXMuY29tPlxuKlxuKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRVxuKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS5cbiovXG5cbmltcG9ydCAnZXhwb3NlLWxvYWRlcj9CQmouTWFza3MhYmJqLW1hc2tzL2Rpc3QvYmJqLW1hc2tzLmpzJ1xuaW1wb3J0ICdleHBvc2UtbG9hZGVyP0Jhc2lzLklucHV0TWFza2luZyFiYXNpcy1pbnB1dC1tYXNraW5nL2Rpc3QvYmFzaXMtaW5wdXQtbWFza2luZy5qcydcbmltcG9ydCAnZXhwb3NlLWxvYWRlcj9CYXNpcy5BZ0dyaWRDb21wb25lbnRzIWJhc2lzLWFnZ3JpZC1jb21wb25lbnRzL2Rpc3QvYmFzaXMtYWdncmlkLWNvbXBvbmVudHMuanMnO1xuXG5yZXF1aXJlKCdmbGF0cGlja3IvZGlzdC9mbGF0cGlja3IuY3NzJyk7XG5yZXF1aXJlKCdhZy1ncmlkLWNvbW11bml0eS9kaXN0L3N0eWxlcy9hZy1ncmlkLmNzcycpO1xucmVxdWlyZSgnYWctZ3JpZC1jb21tdW5pdHkvZGlzdC9zdHlsZXMvYWctdGhlbWUtbWF0ZXJpYWwuY3NzJyk7XG5yZXF1aXJlKCdhZy1ncmlkLWNvbW11bml0eS9kaXN0L3N0eWxlcy9hZy10aGVtZS1iYWxoYW0uY3NzJyk7XG5yZXF1aXJlKCdhZy1ncmlkLWNvbW11bml0eS9kaXN0L3N0eWxlcy9hZy10aGVtZS1iYWxoYW0tZGFyay5jc3MnKTtcblxucmVxdWlyZSgnLi9zdHlsZS9jbGFzc2VzLmNzcycpO1xuXG5leHBvcnQgKiBmcm9tICcuL3BvbHlmaWxscy5qcyc7XG5leHBvcnQgKiBmcm9tIFwiLi9hcGlcIjtcbiIsIi8qXG4qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBCQmpHcmlkRXhXaWRnZXQgcGx1Z2luLlxuKiAoYykgQmFzaXMgRXVyb3BlIDxldUBiYXNpcy5jb20+XG4qXG4qIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFXG4qIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuKi9cblxuLyoqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9DdXN0b21FdmVudC9DdXN0b21FdmVudCAgKi9cbihmdW5jdGlvbiAoKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93LkN1c3RvbUV2ZW50ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBmYWxzZTsgLy9JZiBub3QgSUVcblxuICBmdW5jdGlvbiBDdXN0b21FdmVudChldmVudCwgcGFyYW1zKSB7XG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IGZhbHNlLCBkZXRhaWw6IHVuZGVmaW5lZCB9O1xuICAgIHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnQ3VzdG9tRXZlbnQnKTtcbiAgICBldnQuaW5pdEN1c3RvbUV2ZW50KGV2ZW50LCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUsIHBhcmFtcy5kZXRhaWwpO1xuICAgIHJldHVybiBldnQ7XG4gIH1cblxuICBDdXN0b21FdmVudC5wcm90b3R5cGUgPSB3aW5kb3cuRXZlbnQucHJvdG90eXBlO1xuXG4gIHdpbmRvdy5DdXN0b21FdmVudCA9IEN1c3RvbUV2ZW50O1xufSkoKTtcblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbmlmICghQXJyYXkucHJvdG90eXBlLmZpbmQpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgJ2ZpbmQnLCB7XG4gICAgdmFsdWU6IGZ1bmN0aW9uIChwcmVkaWNhdGUpIHtcbiAgICAgIC8vIDEuIExldCBPIGJlID8gVG9PYmplY3QodGhpcyB2YWx1ZSkuXG4gICAgICBpZiAodGhpcyA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1widGhpc1wiIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG8gPSBPYmplY3QodGhpcyk7XG5cbiAgICAgIC8vIDIuIExldCBsZW4gYmUgPyBUb0xlbmd0aCg/IEdldChPLCBcImxlbmd0aFwiKSkuXG4gICAgICB2YXIgbGVuID0gby5sZW5ndGggPj4+IDA7XG5cbiAgICAgIC8vIDMuIElmIElzQ2FsbGFibGUocHJlZGljYXRlKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLlxuICAgICAgaWYgKHR5cGVvZiBwcmVkaWNhdGUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncHJlZGljYXRlIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuICAgICAgfVxuXG4gICAgICAvLyA0LiBJZiB0aGlzQXJnIHdhcyBzdXBwbGllZCwgbGV0IFQgYmUgdGhpc0FyZzsgZWxzZSBsZXQgVCBiZSB1bmRlZmluZWQuXG4gICAgICB2YXIgdGhpc0FyZyA9IGFyZ3VtZW50c1sxXTtcblxuICAgICAgLy8gNS4gTGV0IGsgYmUgMC5cbiAgICAgIHZhciBrID0gMDtcblxuICAgICAgLy8gNi4gUmVwZWF0LCB3aGlsZSBrIDwgbGVuXG4gICAgICB3aGlsZSAoayA8IGxlbikge1xuICAgICAgICAvLyBhLiBMZXQgUGsgYmUgISBUb1N0cmluZyhrKS5cbiAgICAgICAgLy8gYi4gTGV0IGtWYWx1ZSBiZSA/IEdldChPLCBQaykuXG4gICAgICAgIC8vIGMuIExldCB0ZXN0UmVzdWx0IGJlIFRvQm9vbGVhbig/IENhbGwocHJlZGljYXRlLCBULCDCqyBrVmFsdWUsIGssIE8gwrspKS5cbiAgICAgICAgLy8gZC4gSWYgdGVzdFJlc3VsdCBpcyB0cnVlLCByZXR1cm4ga1ZhbHVlLlxuICAgICAgICB2YXIga1ZhbHVlID0gb1trXTtcbiAgICAgICAgaWYgKHByZWRpY2F0ZS5jYWxsKHRoaXNBcmcsIGtWYWx1ZSwgaywgbykpIHtcbiAgICAgICAgICByZXR1cm4ga1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGUuIEluY3JlYXNlIGsgYnkgMS5cbiAgICAgICAgaysrO1xuICAgICAgfVxuXG4gICAgICAvLyA3LiBSZXR1cm4gdW5kZWZpbmVkLlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB3cml0YWJsZTogdHJ1ZVxuICB9KTtcbn0iLCJcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vY2xhc3Nlcy5jc3NcIik7XG5cbmlmKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgY29udGVudCA9IFtbbW9kdWxlLmlkLCBjb250ZW50LCAnJ11dO1xuXG52YXIgdHJhbnNmb3JtO1xudmFyIGluc2VydEludG87XG5cblxuXG52YXIgb3B0aW9ucyA9IHtcImhtclwiOnRydWV9XG5cbm9wdGlvbnMudHJhbnNmb3JtID0gdHJhbnNmb3JtXG5vcHRpb25zLmluc2VydEludG8gPSBmdW5jdGlvbiAoKSB7IHJldHVybiB3aW5kb3cucGFyZW50LmRvY3VtZW50LmhlYWQgfTtcblxudmFyIHVwZGF0ZSA9IHJlcXVpcmUoXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzLmpzXCIpKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2FscztcblxuaWYobW9kdWxlLmhvdCkge1xuXHRtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4vY2xhc3Nlcy5jc3NcIiwgZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanMhLi9jbGFzc2VzLmNzc1wiKTtcblxuXHRcdGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuXG5cdFx0dmFyIGxvY2FscyA9IChmdW5jdGlvbihhLCBiKSB7XG5cdFx0XHR2YXIga2V5LCBpZHggPSAwO1xuXG5cdFx0XHRmb3Ioa2V5IGluIGEpIHtcblx0XHRcdFx0aWYoIWIgfHwgYVtrZXldICE9PSBiW2tleV0pIHJldHVybiBmYWxzZTtcblx0XHRcdFx0aWR4Kys7XG5cdFx0XHR9XG5cblx0XHRcdGZvcihrZXkgaW4gYikgaWR4LS07XG5cblx0XHRcdHJldHVybiBpZHggPT09IDA7XG5cdFx0fShjb250ZW50LmxvY2FscywgbmV3Q29udGVudC5sb2NhbHMpKTtcblxuXHRcdGlmKCFsb2NhbHMpIHRocm93IG5ldyBFcnJvcignQWJvcnRpbmcgQ1NTIEhNUiBkdWUgdG8gY2hhbmdlZCBjc3MtbW9kdWxlcyBsb2NhbHMuJyk7XG5cblx0XHR1cGRhdGUobmV3Q29udGVudCk7XG5cdH0pO1xuXG5cdG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/client/dist/bbj-grid-widget.min.js b/client/dist/bbj-grid-widget.min.js index d8920ea9..ae01a132 100644 --- a/client/dist/bbj-grid-widget.min.js +++ b/client/dist/bbj-grid-widget.min.js @@ -634,7 +634,7 @@ /*!*************************!*\ !*** ./src/api/rows.js ***! \*************************/ -/*! no static exports found */function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.gw_setQuickFilter=function(e,n){(0,a.gw_getGrid)(e).options.api.setQuickFilter(n)},n.gw_expandAll=function(e){(0,a.gw_getGrid)(e).options.api.expandAll()},n.gw_collapseAll=function(e){(0,a.gw_getGrid)(e).options.api.collapseAll()},n.gw_setVisibleRow=function(e,n,t){(0,a.gw_getGrid)(e).options.api.ensureIndexVisible(n,t)},n.gw_navigateToNextRow=function(e,n){var t=(0,a.gw_getGrid)(e).options,r=n.previousCellPosition,o=n.nextCellPosition;switch(n.key){case 40:return t.api.forEachNode(function(e){r.rowIndex+1===e.rowIndex&&e.setSelected(!0)}),o;case 38:return t.api.forEachNode(function(e){r.rowIndex-1===e.rowIndex&&e.setSelected(!0)}),o;case 37:case 39:return o;default:throw new Error("You have super strange keyboard")}},n.gw_getRowNodeId=function(e,n){return n[(0,a.gw_getGrid)(e).options.context.getRowNodeId]},n.gw_setRowsData=function(e,n){var t=(0,a.gw_getGrid)(e).options;t.api.setRowData(n),t.rowData=n},n.gw_setRowData=function(e,n){(0,a.gw_getGrid)(e).options.api.updateRowData({update:[n]})},n.gw_removeRows=function(e,n){var t=(0,a.gw_getGrid)(e).options,r=[];n.forEach(function(e){r.push(t.api.getRowNode(e).data)}),t.api.updateRowData({remove:r})},n.gw_addRows=function(e,n,t){(0,a.gw_getGrid)(e).options.api.updateRowData({add:t,addIndex:n})},n.gw_setRowsHeight=function(e,n){var t=(0,a.gw_getGrid)(e).options;t.api.forEachNode(function(e){e.setRowHeight(n)}),t.api.onRowHeightChanged()},n.gw_setRowHeight=function(e,n,t){var r=(0,a.gw_getGrid)(e).options,o=r.api.getDisplayedRowAtIndex(n);o?(o.setRowHeight(t),r.api.onRowHeightChanged()):console.warn("Failed to set height for row ".concat(n,". Row can not be found"))},n.gw_setSelectedRows=function(e,n){var t=(0,a.gw_getGrid)(e).options;t.api.forEachNodeAfterFilterAndSort(function(e){n.indexOf(e.rowIndex)>-1&&(e.setSelected(!0),e.expanded=!0)}),t.api.onGroupExpandedOrCollapsed()},n.gw_selectAll=function(e,n){var t=(0,a.gw_getGrid)(e).options;1===n?t.api.selectAllFiltered():t.api.selectAll()},n.gw_deselectAll=function(e,n){var t=(0,a.gw_getGrid)(e).options;1===n?t.api.deselectAllFiltered():t.api.deselectAll()},n.gw_getSelectedRows=o,n.gw_getSelectedRow=function(e){var n=JSON.parse(o(e));if(n.length)return JSON.stringify(n[n.length-1]);return""};var a=t(/*! ./utilities */"./src/api/utilities.js"),r=t(/*! events/utilities */"./src/events/utilities.js");t(/*! deep-parse-json */"./node_modules/deep-parse-json/index.js").deepParseJson;function o(e){var n=(0,a.gw_getGrid)(e).options,t=[];return n.api.getSelectedNodes().forEach(function(e){t.push((0,r.gw_parseNode)(e,n.context))}),JSON.stringify(t)}},"./src/api/state.js": +/*! no static exports found */function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.gw_setQuickFilter=function(e,n){(0,a.gw_getGrid)(e).options.api.setQuickFilter(n)},n.gw_expandAll=function(e){(0,a.gw_getGrid)(e).options.api.expandAll()},n.gw_collapseAll=function(e){(0,a.gw_getGrid)(e).options.api.collapseAll()},n.gw_ensureIndexVisible=function(e,n,t){var r=(0,a.gw_getGrid)(e).options.api,o=r.getRowNode(n).rowIndex;r.ensureIndexVisible(o,t)},n.gw_navigateToNextRow=function(e,n){var t=(0,a.gw_getGrid)(e).options,r=n.previousCellPosition,o=n.nextCellPosition;switch(n.key){case 40:return t.api.forEachNode(function(e){r.rowIndex+1===e.rowIndex&&e.setSelected(!0)}),o;case 38:return t.api.forEachNode(function(e){r.rowIndex-1===e.rowIndex&&e.setSelected(!0)}),o;case 37:case 39:return o;default:throw new Error("You have super strange keyboard")}},n.gw_getRowNodeId=function(e,n){return n[(0,a.gw_getGrid)(e).options.context.getRowNodeId]},n.gw_setRowsData=function(e,n){var t=(0,a.gw_getGrid)(e).options;t.api.setRowData(n),t.rowData=n},n.gw_setRowData=function(e,n){(0,a.gw_getGrid)(e).options.api.updateRowData({update:[n]})},n.gw_removeRows=function(e,n){var t=(0,a.gw_getGrid)(e).options,r=[];n.forEach(function(e){r.push(t.api.getRowNode(e).data)}),t.api.updateRowData({remove:r})},n.gw_addRows=function(e,n,t){(0,a.gw_getGrid)(e).options.api.updateRowData({add:t,addIndex:n})},n.gw_setRowsHeight=function(e,n){var t=(0,a.gw_getGrid)(e).options;t.api.forEachNode(function(e){e.setRowHeight(n)}),t.api.onRowHeightChanged()},n.gw_setRowHeight=function(e,n,t){var r=(0,a.gw_getGrid)(e).options,o=r.api.getDisplayedRowAtIndex(n);o?(o.setRowHeight(t),r.api.onRowHeightChanged()):console.warn("Failed to set height for row ".concat(n,". Row can not be found"))},n.gw_setSelectedRows=function(e,n){var t=(0,a.gw_getGrid)(e).options;t.api.forEachNodeAfterFilterAndSort(function(e){n.indexOf(e.rowIndex)>-1&&(e.setSelected(!0),e.expanded=!0)}),t.api.onGroupExpandedOrCollapsed()},n.gw_selectAll=function(e,n){var t=(0,a.gw_getGrid)(e).options;1===n?t.api.selectAllFiltered():t.api.selectAll()},n.gw_deselectAll=function(e,n){var t=(0,a.gw_getGrid)(e).options;1===n?t.api.deselectAllFiltered():t.api.deselectAll()},n.gw_getSelectedRows=o,n.gw_getSelectedRow=function(e){var n=JSON.parse(o(e));if(n.length)return JSON.stringify(n[n.length-1]);return""};var a=t(/*! ./utilities */"./src/api/utilities.js"),r=t(/*! events/utilities */"./src/events/utilities.js");t(/*! deep-parse-json */"./node_modules/deep-parse-json/index.js").deepParseJson;function o(e){var n=(0,a.gw_getGrid)(e).options,t=[];return n.api.getSelectedNodes().forEach(function(e){t.push((0,r.gw_parseNode)(e,n.context))}),JSON.stringify(t)}},"./src/api/state.js": /*!**************************!*\ !*** ./src/api/state.js ***! \**************************/ diff --git a/client/dist/report.html b/client/dist/report.html index 4cba0f18..3f550432 100644 --- a/client/dist/report.html +++ b/client/dist/report.html @@ -56,7 +56,7 @@
diff --git a/client/src/api/rows.js b/client/src/api/rows.js index 7299f3e9..2505de9c 100644 --- a/client/src/api/rows.js +++ b/client/src/api/rows.js @@ -22,9 +22,18 @@ export function gw_expandAll(id) { export function gw_collapseAll(id) { gw_getGrid(id).options.api.collapseAll(); } - -export function gw_setVisibleRow(id, index, position) { - gw_getGrid(id).options.api.ensureIndexVisible(index, position); +/** + * Ensures the row index is visible by vertically scrolling the grid + * + * @param {String} id the grid's id + * @param {String|Number} index the row index or key + * @param {String} position {'top', 'middle', 'bottom', undefined/null} + */ +export function gw_ensureIndexVisible(id, index, position) { + const api = gw_getGrid(id).options.api; + const rowId = api.getRowNode(index).rowIndex; + + api.ensureIndexVisible(rowId, position); } export function gw_navigateToNextRow(id, params) {