nsc-react-component 2.14.23 → 2.14.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -859,16 +859,16 @@ class BasePage extends PureComponent {
|
|
|
859
859
|
columns: tableColumn,
|
|
860
860
|
expandable: _objectSpread({
|
|
861
861
|
expandIcon: _ref => {
|
|
862
|
-
var _record$childNodes
|
|
862
|
+
var _record$childNodes;
|
|
863
863
|
let {
|
|
864
864
|
expanded,
|
|
865
865
|
onExpand,
|
|
866
866
|
record
|
|
867
867
|
} = _ref;
|
|
868
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, expanded
|
|
868
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, expanded ? /*#__PURE__*/React.createElement(DownOutlined, {
|
|
869
869
|
onClick: e => onExpand(record, e),
|
|
870
870
|
className: getLess(styles, "expand-icon")
|
|
871
|
-
}) : record.childNodes && ((_record$
|
|
871
|
+
}) : record.childNodes && ((_record$childNodes = record.childNodes) === null || _record$childNodes === void 0 ? void 0 : _record$childNodes.length) > 0 || expandable.expandedRowRender ? /*#__PURE__*/React.createElement(RightOutlined, {
|
|
872
872
|
onClick: e => onExpand(record, e),
|
|
873
873
|
className: getLess(styles, "expand-icon")
|
|
874
874
|
}) : null);
|
|
@@ -915,4 +915,4 @@ class BasePage extends PureComponent {
|
|
|
915
915
|
}
|
|
916
916
|
}
|
|
917
917
|
export default BasePage;
|
|
918
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJCdXR0b24iLCJNb2RhbCIsIlBvcG92ZXIiLCJtZXNzYWdlIiwiRWRpdG9yRm9ybSIsImNscyIsInN0eWxlcyIsInV0aWxzIiwiRG93bk91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJSaWdodE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiRWxsaXBzaXNPdXRsaW5lZCIsIkRlbGV0ZU91dGxpbmVkIiwiZ2V0TGVzcyIsInJlcXVlc3QiLCJjb25maWciLCJnZXRTdG9yYWdlIiwiSGVhZGVyU2VhcmNoIiwiQmFzZVBhZ2UiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX3R5cGUiLCJfc2l6ZSIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImNoZWNrZWRUcmVlS2V5cyIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJzdGF0ZSIsInZhbHVlIiwiZGVwdElkIiwib25TZWFyY2giLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsInRyZWVTZWFyY2hQcmFtcyIsInBvcG9wZW5zIiwiY29tcG9uZW50RGlkTW91bnQiLCJpbml0RGF0YSIsInNldFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsImNhbGxCYWNrIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlIiwic2VhcmNoUmVmIiwiY3VycmVudCIsImRvU3VibWl0IiwiZGF0YSIsIl90aGlzJGVkaXRvclJlZiRjdXJyZSIsImxhYmVsIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiZWRpdG9yUmVmIiwic2hvd0Zvcm0iLCJfdGhpcyRlZGl0b3JSZWYkY3VycmUyIiwiZWRpdG9yZmxhZyIsInNob3ciLCJoaWRlRm9ybSIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTMiLCJzZXRMb2FkaW5nIiwibG9hZGluZyIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTQiLCJzZXRFZGl0Rm9ybVZhbHVlcyIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTUiLCJzZXRGaWVsZHNWYWx1ZSIsImdldEVkaXRGb3JtVmFsdWVzIiwiX3RoaXMkZWRpdG9yUmVmJGN1cnJlNiIsImdldEZpZWxkc1ZhbHVlIiwib25EZWxldGUiLCJfdGhpcyR0YWJsZVJlZiRjdXJyZW4iLCJkZWxldGVVcmwiLCJkZWxldGVQYXJhbXMiLCJkZWxldGVQb3NpdGlvbiIsIl90aGlzIiwidGFibGVSZWYiLCJnZXRTZWxlY3RlZFJvd0tleXMiLCJ3YXJuaW5nIiwiY29uZmlybSIsIm9uT2siLCJFcnJvciIsImRlZmF1bHRQYXJhbXMiLCJtZXRob2QiLCJhdXRvUHJlZml4IiwiaWRzIiwiam9pbiIsImlkIiwicmVxdWVzdFBhcmFtcyIsIl9vYmplY3RTcHJlYWQiLCJ0aGVuIiwiY29kZSIsIl90aGlzJHNlYXJjaFJlZiIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYyIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzIiLCJzdWNjZXNzIiwiZ2V0U2VhcmNoVmFsdWVzIiwib25DYWxsQmFja3MiLCJvbkRlbGV0ZUNhbGxCYWNrIiwidGFibGVMb2FkIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJfdGhpcyR0YWJsZVJlZiRjdXJyZW4yIiwicmVxdWVzdENvbmZpZyIsInN0b3JlIiwibG9hZCIsInRyZWVMb2FkIiwiX3RoaXMkdHJlZVJlZiRjdXJyZW50IiwidHJlZVJlZiIsIm9uU2VhcmNoQ2FsbEJhY2siLCJjYWxsYmFjayIsInRhYmxlUmVsb2FkIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuMyIsImF1dG9Mb2FkIiwicmVsb2FkIiwiX3JlcyRkYXRhIiwicmVjb3JkcyIsImN1cnJlbnRQYWdlIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuNCIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjUiLCJnZXRTZWxlY3RlZFJvd0RhdGFzIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuNiIsInNldFNlbGVjdGVkUm93S2V5cyIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjciLCJzZXRTZWxlY3RlZFJvd0RhdGFzIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuOCIsInJlc2V0U2VsZWN0ZWRSb3dLZXlzIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuOSIsIl90aGlzJHNlYXJjaFJlZjIiLCJmcm9tVmFsdWUiLCJnZXRDaGlsZHJlbkRhdGEiLCJ0YWJsZVByb3BzIiwicm93S2V5IiwicmVzS2V5IiwiY2hpbGROb2RlcyIsImNoaWxkcmVuIiwibWFwIiwiaXRlbSIsImluZGV4IiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsIl9pdGVtJHByb3BzIiwicGFnZVR5cGUiLCJvbkNsaWNrIiwiaWNvbiIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsImNsYXNzTmFtZSIsInN0eWxlIiwibWFyZ2luTGVmdCIsInRpdGxlIiwicGxhY2VtZW50IiwidHJpZ2dlciIsInJlbmRlckNsb3VtbkJ1dHRvbiIsImNvbHVtbkJ1dHRvbnMiLCJyZWNvcmQiLCJhY3Rpb25Qcm9wcyIsImJhc2VBY3Rpb25Db2x1bW4iLCJuZXdCdXR0b25zIiwic2hvd0ljb24iLCJfaXRlbSRwcm9wczIiLCJyZWNvcmRTaG93IiwiX2V4Y2x1ZGVkMiIsImV2YWwiLCJwdXNoIiwiX2l0ZW0kcHJvcHMzIiwiX2V4Y2x1ZGVkMyIsInNldFN0YXRlIiwiX2l0ZW0kcHJvcHM0IiwiX2V4Y2x1ZGVkNCIsInZpc2libGUiLCJvblZpc2libGVDaGFuZ2UiLCJ2aXNpYmFsZSIsInRyZWVTZWxlY3QiLCJzZWxlY3RlZEtleXMiLCJvYmoiLCJfdGhpcyRzZWFyY2hSZWYzIiwiX3RoaXMkcHJvcHMkb25DYWxsQmFjMyIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzQiLCJrZXl3b3JkIiwic2VhcmNoS2V5Iiwic2VhcmNoRmllbGQiLCJwYXJhbnRTZWxlY3QiLCJ0cmVlUHJvcHMiLCJzZWxlY3RlZE5vZGVzIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsImlzTGVhZiIsIm9uVHJlZVNlbGVjdCIsInRyZWVTZWxlY3RDYWxsQmFjayIsInJlc2V0U2VhcmNoIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlMiIsInJlc2V0RmllbGRzIiwiZ2V0VGV4dCIsInRleHQiLCJfcHJvcHMkZGF0YSIsIm5ld1RleHQiLCJpIiwic2V0VGFibGVEYXRhIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuMTAiLCJzZXREYXRhIiwic2V0VHJlZURhdGEiLCJfdGhpcyR0cmVlUmVmJGN1cnJlbnQyIiwicmVuZGVyIiwiX3RhYmxlUHJvcHMkdG9vbGJhciIsIl90YWJsZVByb3BzJHRvb2xiYXIyIiwiY29sdW1ucyIsInN1Ym1pdFVybCIsImZvcm1Qcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJidXR0b25zIiwiZWRpdG9yRm9ybSIsIm9uU2hvd0Zvcm0iLCJmb3JtQ2hhbmdlVmFsaWQiLCJ0b29sQnV0dG9uUG9zaXRpb24iLCJmaWx0ZXJDb2x1bW4iLCJhY3Rpb25Db2x1bW4iLCJzaG93Um93U2VsZWN0aW9uIiwiY29sdW1uT3JkZXIiLCJleHBhbmRhYmxlIiwib3RoZXJ0YWJsZVBhcmFtcyIsIl9leGNsdWRlZDUiLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGl0bGVBbGlhcyIsIm90aGVydHJlZVBhcmFtcyIsIl9leGNsdWRlZDYiLCJ0YWJsZVBhcmFtcyIsInRhYmxlQ29sdW1uIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsImRlZmF1bHRWYWx1ZSIsIl90ZW1wJHNlYXJjaCIsIl90ZW1wJHByb3BzIiwiX3RlbXAkcHJvcHMyIiwiX3RlbXAiLCJ0ZW1wIiwic2VhcmNoIiwiX3RlbXAkc2VhcmNoMiIsIl90ZW1wJHNlYXJjaDMiLCJfdGVtcCRzZWFyY2g0IiwiZmllbGQiLCJkYXRhSW5kZXgiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJydWxlcyIsInNlYXJjaFJ1bGVzIiwiZWRpdG9yIiwic3BhbiIsImRpY3ROYW1lIiwiX3RlbXAkcHJvcHMzIiwiY29sdW1uU2VhcmNoIiwiZmlsdGVyUHJvcHMiLCJ0ZW1wUHJvcCIsIkZyYWdtZW50IiwiZWxsaXBzaXMiLCJjb2x1bW5TaG93Iiwic2VsZkJ1dHRvbnMiLCJpbmRleE9mIiwiYmluZCIsImRhbmdlciIsIkFycmF5IiwiaXNBcnJheSIsImNoaWxkIiwiX2NoaWxkJHByb3BzIiwiX2NoaWxkJHByb3BzMiIsIl9pdGVtJHByb3BzNSIsIl9pdGVtJHByb3BzNiIsImFsaWduIiwidGV4dEFsaWduIiwid2lkdGgiLCJmaXhlZCIsInJlYWNvcmQiLCJzZWFyY2hGbGFnIiwidGFibGVUb29sIiwidG9vbEZsYWciLCJ0b29sYmFyRmxhZyIsInRvb2xiYXIiLCJ0b29scyIsInBhZ2luYXRpb24iLCJzY3JvbGwiLCJ4IiwicGFnZVRpdGxlIiwiZGlzcGxheSIsImNoZWNrYWJsZSIsInNlYXJjaGFibGUiLCJvblNlbGVjdCIsInJlZiIsIm9uUmVzZXQiLCJzZWFyY2hGb3JtUHJvcHMiLCJleHBhbmRJY29uIiwiX3JlZiIsIl9yZWNvcmQkY2hpbGROb2RlcyIsIl9yZWNvcmQkY2hpbGROb2RlczIiLCJleHBhbmRlZCIsIm9uRXhwYW5kIiwiZSIsIm9uQ2hhbmdlIiwib25Ub29sQ2xpY2siLCJvblJlZnJlc2giLCJfdGhpcyRwcm9wcyRvbkNhbGxCYWM1IiwiX3RoaXMkcHJvcHMkb25DYWxsQmFjNiIsIm9uU3VtYml0Q2FsbEJhY2siLCJvblN1Ym1pdCIsIm9uSGlkZUZvcm0iLCJvbkZvcm1DaGFuZ2UiLCJjaGFuZ2VWYWxpZCIsIm90aGVyUHJvcHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdlL0Jhc2VQYWdlL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi4vLi4vYmFzZS90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vYmFzZS90cmVlXCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9iYXNlL21vZGFsXCI7XHJcbmltcG9ydCBQb3BvdmVyIGZyb20gXCIuLi8uLi9iYXNlL3BvcG92ZXJcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vLi4vYmFzZS9jb21tb24vSWNvbkZvbnRcIjtcclxuaW1wb3J0IHsgaWNvblR5cGUgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCBFZGl0b3JGb3JtIGZyb20gXCIuL0Zvcm1cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IFJvdyBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL1Jvd1wiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBEb3duT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbiAgRWRpdE91dGxpbmVkLFxyXG4gIFJpZ2h0T3V0bGluZWQsXHJcbiAgUGx1c091dGxpbmVkLFxyXG4gIEVsbGlwc2lzT3V0bGluZWQsXHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHJlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IElGb3JtUHJvcHMgfSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtL0Zvcm1cIjtcclxuaW1wb3J0IEhlYWRlclNlYXJjaCBmcm9tIFwiLi4vSGVhZGVyU2VhcmNoXCI7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25Qcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmludGVyZmFjZSBUYWJsZVByb3BzIHtcclxuICBhY3Rpb25Db2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuui/h+a7pOaMiemSrlxyXG4gIHNob3dSb3dTZWxlY3Rpb24/OiBib29sZWFuOyAvL+aYr+WQpuihqOagvOWLvumAieWIl1xyXG4gIHBhZ2luYXRpb24/OiBib29sZWFuIHwgUGFnaW5hdGlvblByb3BzOyAvL+aYr+WQpuaYvuekuuWIhumhtVxyXG4gIGNvbHVtbk9yZGVyPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrooajmoLzluo/liJdcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuaW50ZXJmYWNlIFRyZWVQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaQnOe0ouahhlxyXG4gIHNlYXJjaEtleT86IHN0cmluZzsgLy/mkJzntKJ2YWx1ZeWvueW6lOeahGtleVxyXG4gIHNlYXJjaEZpZWxkPzogc3RyaW5nOyAvL+afpeivouWvueW6lOeahGtleVxyXG4gIHRpdGxlQWxpYXM/OiBzdHJpbmc7IC8v5qCRdGl0bGXlr7nlupTnmoRrZXks6buY6K6kdGl0bGVcclxuICBub2RlUG9ycHM/OiBvYmplY3Q7XHJcbiAgcGFyYW50U2VsZWN0PzogYm9vbGVhbjtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuaW50ZXJmYWNlIEZvcm1Qcm9wcyBleHRlbmRzIElGb3JtUHJvcHMge31cclxuaW50ZXJmYWNlIE5TQ0Jhc2VCYWdlUHJvcHMge1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWktOmDqOaQnOe0ouagj1xyXG4gIHRhYmxlUHJvcHM/OiBUYWJsZVByb3BzOyAvL+ihqOagvOWPguaVsFxyXG4gIHRyZWVQcm9wcz86IFRyZWVQcm9wczsgLy/lt6bkvqfmoJHlj4LmlbBcclxuICBzdWJtaXRQYXJhbXM/OiBPYmplY3Q7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIHN1Ym1pdFVybD86IHN0cmluZztcclxuICBvblN1Ym1pdD86ICh2YWx1ZT86IGFueSwgbGFiZWw/OiBhbnkpID0+IHZvaWQ7XHJcbiAgY29sdW1uczogQXJyYXk8T2JqZWN0PjtcclxuICBzaG93TGVmdD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65bem5L6n55uu5b2V5qCRXHJcbiAgc2hvd1Rvb2xCdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaMiemSruagj1xyXG4gIGVkaXRvckZvcm0/OiBib29sZWFuOyAvL+aYr+WQpumcgOimgeihqOWNleWKn+iDvSAsIOS4umZhbHNlIOe8lui+ke+8jOafpeeci++8jOaWsOWinuWKn+iDveWdh+S4jeWPr+eUqFxyXG4gIGRlbGV0ZVVybD86IHN0cmluZzsgLy/liKDpmaR1cmxcclxuICBvbkRlbGV0ZT86IChzZWxlY3RlZEtleXM/OiBBcnJheTxzdHJpbmc+KSA9PiB2b2lkOyAvL+WIoOmZpOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2lkc+aLvOaOpeS8oOmAkue7meWQjuWPsFxyXG4gIGRlbGV0ZVBvc2l0aW9uPzogXCJ0b29sYmFyXCIgfCBcInJvd1wiO1xyXG4gIGRlbGV0ZVBhcmFtcz86IE9iamVjdDtcclxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBvblNlYXJjaD86ICh2YWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBvblJlc2V0PzogKCkgPT4gdm9pZDtcclxuICBpbml0RGF0YT86IGFueTsgLy/liJ3lp4vljJblm57osIPlh73mlbDvvIzlnKhjb21wb25lbnREaWRNb3VudOS4reiwg+eUqFxyXG4gIGJ1dHRvbnM/OiBBcnJheTxzdHJpbmc+OyAvL+aMiemSrumbhuWQiCAgWydhZGQnLCdkZWxldGUnLCdzZWFyY2gnLCdlZGl0b3InXVxyXG4gIG9uU2hvd0Zvcm0/OiAodmFsdWU/OiBhbnksIGVkaXRvckZsYWc/OiBzdHJpbmcpID0+IHZvaWQ7IC8v5omT5byA6KGo5Y2V5Zue6LCDXHJcbiAgb25IaWRlRm9ybT86ICgpID0+IHZvaWQ7IC8v5omT5byA6KGo5Y2V5Zue6LCDXHJcbiAgb25Gb3JtQ2hhbmdlPzogKGNoYW5nZWRWYWx1ZXM/OiBhbnksIGFsbFZhbHVlcz86IGFueSkgPT4gdm9pZDsgLy/ooajljZVvbkNoYW5nZeWbnuiwg1xyXG4gIGZvcm1UeXBlPzogXCJtb2RhbFwiIHwgXCJkcmF3ZXJcIjtcclxuICBmb3JtQ2hhbmdlVmFsaWQ/OiBib29sZWFuOyAvL+ihqOWNleagoemqjFxyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICB0b29sQnV0dG9uUG9zaXRpb24/OiBcInJpZ2h0XCIgfCBcImJ1dHRvbVwiO1xyXG4gIHBhZ2VUaXRsZT86IHN0cmluZyB8IFJlYWN0Tm9kZTtcclxuICBmb3JtUHJvcHM/OiBGb3JtUHJvcHM7XHJcbiAgYWN0aW9uUHJvcHM/OiB7IHRleHRBbGlnbj86IHN0cmluZzsgc2hvd0ljb24/OiBib29sZWFuOyB3aWR0aD86IG51bWJlciB9O1xyXG4gIHNlYXJjaEZvcm1Qcm9wcz86IHsgd3JhcHBlckNvbD86IGFueTsgbGFiZWxDb2w/OiBhbnkgfTtcclxuICBvblRyZWVTZWxlY3Q/OiAodmFsdWU/OiBhbnksIGVkaXRvckZsYWc/OiBzdHJpbmcpID0+IHZvaWQ7IC8v5omT5byA6KGo5Y2V5Zue6LCDXHJcbiAgb25DYWxsQmFja3M/OiB7XHJcbiAgICB0cmVlU2VsZWN0Q2FsbEJhY2s/OiBhbnk7XHJcbiAgICBvblNlYXJjaENhbGxCYWNrPzogYW55O1xyXG4gICAgb25TdW1iaXRDYWxsQmFjaz86IGFueTtcclxuICAgIG9uRGVsZXRlQ2FsbEJhY2s/OiBhbnk7XHJcbiAgfTtcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZGF0ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wczogYW55KSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgeyBzdG9yZVByZWZpeCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdHlwZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIHR5cGUgPSB0eXBlPy5jb250ZW50O1xyXG4gICAgbGV0IHNpemUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcInRhYmxlU2l6ZVwiIDogXCJ0YWJsZVNpemVcIlxyXG4gICAgKTtcclxuICAgIHNpemUgPSBzaXplPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgZm9ybVR5cGU6IHR5cGUgfHwgXCJtb2RhbFwiLFxyXG4gICAgICB0YWJsZVNpemU6IHNpemUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIHRyZWVTZWFyY2hQcmFtczoge30sXHJcbiAgICAgIHBvcG9wZW5zOiB7fSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBpbml0RGF0YSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGluaXREYXRhICYmIGluaXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uc2V0U2VhcmNoUGFyYW1zKHBhcmFtcyk7XHJcbiAgICBjYWxsQmFjayAmJiBjYWxsQmFjayhwYXJhbXMpO1xyXG4gIH1cclxuICBkb1N1Ym1pdChkYXRhLCBsYWJlbCA9IFwi57yW6L6RXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmRvU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25TZWFyY2gpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICBzZXRFZGl0Rm9ybVZhbHVlcyh2YWx1ZSkge1xyXG4gICAgdGhpcy5lZGl0b3JSZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdEZvcm1WYWx1ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8v5om56YeP5Yig6ZmkXHJcbiAgb25EZWxldGUoZGF0YT86IGFueSkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkZWxldGVVcmwsXHJcbiAgICAgIG9uRGVsZXRlLFxyXG4gICAgICBkZWxldGVQYXJhbXMsXHJcbiAgICAgIGRlbGV0ZVBvc2l0aW9uID0gXCJ0b29sYmFyXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBjb25zdCBzZWxlY3RlZFJvd0tleXMgPSB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gICAgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICBtZXNzYWdlLndhcm5pbmcoXCLor7fpgInmi6nopoHliKDpmaTnmoTmlbDmja7vvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBNb2RhbC5jb25maXJtKHtcclxuICAgICAgY29udGVudDogXCLmmK/lkKbnoa7orqTliKDpmaTmiYDpgInpobnvvJ9cIixcclxuICAgICAgLy8gY2VudGVyZWQ6dHJ1ZSxcclxuICAgICAgb25PazogKCkgPT4ge1xyXG4gICAgICAgIGlmIChvbkRlbGV0ZSkge1xyXG4gICAgICAgICAgb25EZWxldGUgJiZcclxuICAgICAgICAgICAgb25EZWxldGUoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMgOiBkYXRhKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGlkczogZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMuam9pbigpIDogZGF0YS5pZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoZGVmYXVsdFBhcmFtcykge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVsZXRlUGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlZmF1bHRQYXJhbXMgfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IF90aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgX3RoaXMucHJvcHMub25DYWxsQmFja3M/Lm9uRGVsZXRlQ2FsbEJhY2sgJiZcclxuICAgICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vbkRlbGV0ZUNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgICAgX3RoaXMudGFibGVMb2FkKHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLmVycm9yKFwi5Yig6Zmk5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdGFibGVMb2FkKHBhcmFtczogYW55LCByZXF1ZXN0Q29uZmlnID0ge30pIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIC4uLnJlcXVlc3RDb25maWcsXHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRyZWVMb2FkKHBhcmFtczogYW55LCByZXF1ZXN0Q29uZmlnID0ge30pIHtcclxuICAgIHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaChwYXJhbXMpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2gsIG9uQ2FsbEJhY2tzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uU2VhcmNoKSB7XHJcbiAgICAgIG9uU2VhcmNoKHsgLi4ucGFyYW1zLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUxvYWQoeyAuLi5wYXJhbXMsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH0pO1xyXG4gICAgb25DYWxsQmFja3M/Lm9uU2VhcmNoQ2FsbEJhY2sgJiZcclxuICAgICAgdXRpbHMuY2FsbGJhY2sob25DYWxsQmFja3M/Lm9uU2VhcmNoQ2FsbEJhY2ssIHRoaXMsIFtwYXJhbXNdKTtcclxuICB9XHJcbiAgLy/ooajmoLzph43mlrDliqDovb1cclxuICB0YWJsZVJlbG9hZChwYXJhbXMgPSB7fSwgYXV0b0xvYWQgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlPy5yZWxvYWQoe1xyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGF1dG9Mb2FkICYmXHJcbiAgICAgICAgICByZXM/LmRhdGE/LnJlY29yZHM/Lmxlbmd0aCA9PSAwICYmXHJcbiAgICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRQYWdlICE9PSAxXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlPy5yZWxvYWQoe1xyXG4gICAgICAgICAgICBwYXJhbXM6IHsgY3VycmVudDogMSwgLi4ucGFyYW1zIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93RGF0YXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0RhdGFzKCk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkUm93S2V5cyhkYXRhOiBBcnJheTxTdHJpbmcgfCBOdW1iZXI+KSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zZXRTZWxlY3RlZFJvd0tleXMoZGF0YSk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkUm93RGF0YXMoZGF0YTogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uc2V0U2VsZWN0ZWRSb3dEYXRhcyhkYXRhKTtcclxuICB9XHJcbiAgcmVzZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5yZXNldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgcmV0dXJuIHsgLi4uZnJvbVZhbHVlLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hpbGRyZW5EYXRhKGRhdGEsIGtleXMgPSBbXSkge1xyXG4gICAgY29uc3QgeyB0YWJsZVByb3BzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyByb3dLZXkgPSBcImlkXCIgfSA9IHRhYmxlUHJvcHM7XHJcbiAgICBsZXQgcmVzS2V5ID0gW107XHJcbiAgICBsZXQga2V5ID0gJydcclxuICAgIGlmIChkYXRhLmNoaWxkTm9kZXMpIHtcclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmNoaWxkTm9kZXM7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZih0eXBlb2Ygcm93S2V5ID09IFwiZnVuY3Rpb25cIil7XHJcbiAgICAgICAgICBrZXkgPSByb3dLZXkoaXRlbSkgXHJcbiAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgIGtleSA9IGl0ZW1bcm93S2V5XVxyXG4gICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlcykge1xyXG4gICAgICAgICAgdGhpcy5nZXRDaGlsZHJlbkRhdGEoaXRlbS5jaGlsZE5vZGVzLCBrZXlzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGtleV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc0tleSA9IFsuLi5rZXlzLCBrZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc0tleTtcclxuICB9XHJcblxyXG4gIHJlbmRlclRvb2xCdXR0b25zKHRvb2xidXR0b25zOiBhbnksIG1hcmdpbmZsYWcgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgZmxhZyA9IHRvb2xidXR0b25zLmxlbmd0aCA+IDU7XHJcbiAgICBjb25zdCB7IHNob3dTZWFyY2ggPSB0cnVlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgY29udGVudCA9IHRvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDMpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2soKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9uc1wiKSwge1xyXG4gICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9ucy1tYXJnaW5cIildOiAhc2hvd1NlYXJjaCB8fCBtYXJnaW5mbGFnLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIHt0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wLWJveCddfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pu05aSaIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zOiBhbnksIHJlY29yZDogYW55KSB7XHJcbiAgICBjb25zdCB7IGFjdGlvblByb3BzICx0YWJsZVByb3BzPXt9fSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgY29uc3QgbmV3QnV0dG9ucyA9IFtdO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGxldCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCBrZXkgPSAnJ1xyXG4gICAgaWYodHlwZW9mIHJvd0tleSA9PSBcImZ1bmN0aW9uXCIpe1xyXG4gICAgIGtleSA9IHJvd0tleShyZWNvcmQpIFxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGtleSA9IHJlY29yZFtyb3dLZXldXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFjdGlvblByb3BzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHJlY29yZFNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAocmVjb3JkU2hvdykge1xyXG4gICAgICAgIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBpZiAoZXZhbChyZWNvcmRTaG93KSkge1xyXG4gICAgICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgIGNvbnN0IHNob3cgPSByZWNvcmRTaG93KHJlY29yZCk7XHJcbiAgICAgICAgICBzaG93ICYmIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGZsYWcgPSBuZXdCdXR0b25zLmxlbmd0aCA+IDM7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IG5ld0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIHJlY29yZFNob3csIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAyKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgICAgICAgZGF0YVtyZWNvcmQuaWRdID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICBwb3BvcGVuczogZGF0YSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgdHlwZT1cImxpbmtcIlxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5ld0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIHJlY29yZFNob3csIGljb24sIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIGlmIChpbmRleCA8IDMpIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksIHtcclxuICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JfZmlyc3RcIildOiBpbmRleCA9PT0gMCxcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgdHlwZT1cImxpbmtcIlxyXG4gICAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSAzKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIHZpc2libGU9e3RoaXMuc3RhdGUucG9wb3BlbnNba2V5XSB8fCBmYWxzZX1cclxuICAgICAgICAgICAgICBvblZpc2libGVDaGFuZ2U9eyh2aXNpYmFsZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZpc2liYWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0ge30gYXMgYW55O1xyXG4gICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICBwb3BvcGVuczogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICBwb3BvcGVuczoge30sXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AnXX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfT5cclxuICAgICAgICAgICAgICAgIDxFbGxpcHNpc091dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB0eXBlPVwibGlua1wiXHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgLy/moJHngrnlh7vkuovku7ZcclxuICB0cmVlU2VsZWN0KHNlbGVjdGVkS2V5czogYW55LCBvYmo6IGFueSkge1xyXG4gICAgbGV0IGtleXdvcmQgPSBcIlwiO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzZWFyY2hLZXkgPSBcImtleVwiLFxyXG4gICAgICBzZWFyY2hGaWVsZCA9IFwiXCIsXHJcbiAgICAgIHBhcmFudFNlbGVjdCA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcy50cmVlUHJvcHM7XHJcbiAgICBjb25zdCB7IHRyZWVTZWxlY3RlZEtleSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHNlbGVjdGVkTm9kZXMgfSA9IG9iajtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgaWYgKHBhcmFudFNlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHsgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE5vZGVzWzBdLmlzTGVhZiB8fCAhc2VsZWN0ZWROb2Rlc1swXS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1swXSAhPT0gdHJlZVNlbGVjdGVkS2V5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgICAgIHRyZWVTZWFyY2hQcmFtczogeyBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICAgIHRyZWVTZWFyY2hQcmFtczoge30sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJvcHMub25UcmVlU2VsZWN0KSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25UcmVlU2VsZWN0KHNlbGVjdGVkS2V5cywgb2JqKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpIHx8IHt9O1xyXG4gICAgc2VhcmNoRmllbGQgJiYgdGhpcy50YWJsZUxvYWQoeyAuLi5mcm9tVmFsdWUsIFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSk7XHJcbiAgICB0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy50cmVlU2VsZWN0Q2FsbEJhY2sgJiZcclxuICAgICAgdXRpbHMuY2FsbGJhY2sodGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8udHJlZVNlbGVjdENhbGxCYWNrLCB0aGlzLCBbXHJcbiAgICAgICAgc2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgIG9iaixcclxuICAgICAgXSk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgZ2V0VGV4dChwcm9wcywgdGV4dCkge1xyXG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0O1xyXG4gICAgaWYgKHByb3BzPy5kYXRhICYmIHByb3BzPy5kYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBkYXRhID0gcHJvcHMuZGF0YTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChkYXRhW2ldLnZhbHVlID09IHRleHQpIHtcclxuICAgICAgICAgIG5ld1RleHQgPSBkYXRhW2ldLmxhYmVsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1RleHQ7XHJcbiAgfVxyXG4gIHNldFRhYmxlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlPy5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBzZXRUcmVlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmU/LnNldERhdGEoZGF0YSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkS2V5ID0gKHNlbGVjdGVkKSA9PiB7XHJcbiAgICBsZXQgcmVzID0gW107XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3Qga2V5cyA9IHNlbGVjdGVkW2tleV07XHJcbiAgICAgIGlmIChrZXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZXMgPSBbLi4ucmVzLCAuLi5rZXlzXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9O1xyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNvbHVtbnMgPSBbXSxcclxuICAgICAgc2hvd1NlYXJjaCA9IHRydWUsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBzdWJtaXRVcmwgPSBcIlwiLFxyXG4gICAgICB0YWJsZVByb3BzID0ge30sXHJcbiAgICAgIHRyZWVQcm9wcyA9IHt9LFxyXG4gICAgICBmb3JtUHJvcHMgPSB7fSxcclxuICAgICAgc2hvd0xlZnQgPSBmYWxzZSxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIHNob3dUb29sQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgYnV0dG9ucyA9IFtdLFxyXG4gICAgICBlZGl0b3JGb3JtID0gdHJ1ZSxcclxuICAgICAgb25TaG93Rm9ybSxcclxuICAgICAgZm9ybUNoYW5nZVZhbGlkID0gdHJ1ZSxcclxuICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICB0b29sQnV0dG9uUG9zaXRpb24gPSBcImJ1dHRvbVwiLFxyXG4gICAgICBhY3Rpb25Qcm9wcyxcclxuICAgICAgZGVsZXRlUG9zaXRpb24gPSBcInRvb2xiYXJcIixcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICAgIGNvbHVtbk9yZGVyID0gdHJ1ZSxcclxuICAgICAgZXhwYW5kYWJsZSA9IHt9LFxyXG4gICAgICBwYXJhbnRTZWxlY3QgPSB0cnVlLFxyXG4gICAgICAuLi5vdGhlcnRhYmxlUGFyYW1zXHJcbiAgICB9ID0gdGFibGVQcm9wcztcclxuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlOiB0cmVlU3RvcmUgPSB7fSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJlZVNlYXJjaCA9IHRydWUsXHJcbiAgICAgIHRpdGxlQWxpYXMgPSBcInRpdGxlXCIsXHJcbiAgICAgIC4uLm90aGVydHJlZVBhcmFtc1xyXG4gICAgfSA9IHRyZWVQcm9wcztcclxuXHJcbiAgICBsZXQgdGFibGVQYXJhbXMgPSB7IGZpbHRlckNvbHVtbiwgc3RvcmUsIC4uLm90aGVydGFibGVQYXJhbXMgfSBhcyBhbnk7XHJcbiAgICBsZXQgdGFibGVDb2x1bW46IGFueVtdID0gW107XHJcbiAgICBjb25zdCBzZWFyY2hGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBlZGl0b3JGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBkZWZhdWx0VmFsdWU6IGFueSA9IHt9O1xyXG4gICAgY29uc3QgY29sdW1uQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb2x1bW5zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmICh0ZW1wLnNlYXJjaCA9PT0gdHJ1ZSB8fCB0ZW1wLnNlYXJjaD8uc2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHNlYXJjaEZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnNlYXJjaD8ubGFiZWwgfHwgdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgICAgbGFiZWxDb2w6IHRlbXAuc2VhcmNoPy5sYWJlbENvbCxcclxuICAgICAgICAgIHdyYXBwZXJDb2w6IHRlbXAuc2VhcmNoPy53cmFwcGVyQ29sLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAuc2VhcmNoUnVsZXMgPyB0ZW1wLnNlYXJjaFJ1bGVzIDogW10sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyA/IHRlbXAucnVsZXMgOiBbXSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHNwYW46IHRlbXAuc3BhbixcclxuICAgICAgICAgIGRpY3ROYW1lOiB0ZW1wLmRpY3ROYW1lLFxyXG4gICAgICAgICAgcHJvcHM6IHsgLi4udGVtcC5wcm9wcyB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSBudWxsXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4O1xyXG4gICAgICAgIGRlZmF1bHRWYWx1ZVtuYW1lXSA9IHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgbGV0IHRlbXBQcm9wID0geyAuLi50ZW1wLnByb3BzIH07XHJcbiAgICAgIGlmICh0ZW1wLnN0eWxlKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICB7dGV4dCAhPT0gXCJcIiAmJiB0ZXh0ICE9PSBudWxsICYmIHRleHQgIT09IHVuZGVmaW5lZCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtYmFja1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtdGV4dFwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSBpZiAoIXRlbXAuZWxsaXBzaXMpIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8Pnt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGVtcCA9IHsgLi4udGVtcCB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnByb3BzO1xyXG4gICAgICBpZiAodGVtcD8uY29sdW1uU2hvdyAhPT0gZmFsc2UpIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHNlbGZCdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblByb3BzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGlmIChlZGl0b3JGb3JtID09IHRydWUpIHtcclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcInNlYXJjaFwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RXllT3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZWRpdG9yXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFZGl0T3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOe8lui+kVxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImFkZFwiKSA+IC0xKSB7XHJcbiAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgb25TaG93Rm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICBvblNob3dGb3JtKCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBpY29uPXs8UGx1c091dGxpbmVkIC8+fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOa3u+WKoFxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImRlbGV0ZVwiKSA+IC0xKSB7XHJcbiAgICAgIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInRvb2xiYXJcIikge1xyXG4gICAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInJvd1wiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDliKDpmaRcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogYWN0aW9uUHJvcHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgPyBhY3Rpb25Qcm9wcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgd2lkdGg6IGFjdGlvblByb3BzPy53aWR0aFxyXG4gICAgICAgICAgPyBhY3Rpb25Qcm9wcz8ud2lkdGhcclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA6IDIwMCxcclxuICAgICAgICBmaXhlZDogXCJyaWdodFwiLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJhY3Rpb25cIil9PlxyXG4gICAgICAgICAgICAgIHt0aGlzLnJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zLCByZWNvcmQpfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICBpZiAoY29sdW1uT3JkZXIpXHJcbiAgICAgIHRhYmxlQ29sdW1uID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRpdGxlOiBcIuW6j+WPt1wiLFxyXG4gICAgICAgICAgd2lkdGg6IDgwLFxyXG4gICAgICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0LCByZWFjb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57aW5kZXggKyAxfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi50YWJsZUNvbHVtbixcclxuICAgICAgXTtcclxuICAgIGxldCBzZWFyY2hGbGFnID0gc2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHsgdGFibGVUb29sIH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0b29sRmxhZyA9IHNob3dUb29sQnV0dG9uICYmIHNlbGZCdXR0b25zLmxlbmd0aCA+IDA7XHJcbiAgICBsZXQgdG9vbGJhckZsYWcgPSAhKFxyXG4gICAgICB0YWJsZVByb3BzLnRvb2xiYXIgPT0gZmFsc2UgfHxcclxuICAgICAgdGFibGVQcm9wcy50b29sYmFyPy5zaG93ID09IGZhbHNlIHx8XHJcbiAgICAgIHRhYmxlUHJvcHMudG9vbGJhcj8udG9vbHM/Lmxlbmd0aCA9PSAwIHx8XHJcbiAgICAgIHRhYmxlVG9vbD8uc2hvdyA9PSBmYWxzZVxyXG4gICAgKTtcclxuICAgIGlmICh0YWJsZVByb3BzLnBhZ2luYXRpb24gIT09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbCA9IHRhYmxlUGFyYW1zLnNjcm9sbDtcclxuICAgICAgdGFibGVQYXJhbXMgPSB7XHJcbiAgICAgICAgLi4udGFibGVQYXJhbXMsXHJcbiAgICAgICAgc2Nyb2xsOiB7IHg6IFwibWF4LWNvbnRlbnRcIiwgLi4uc2Nyb2xsIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlXCIpLCBjbGFzc05hbWUpfT5cclxuICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGUgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlLXRpdGxlXCIpKX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnByb3BzLnBhZ2VUaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS1wYW5lXCIpKX1cclxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3Nob3dMZWZ0ICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImxlZnRcIil9PlxyXG4gICAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgICBzdG9yZT17eyAuLi50cmVlU3RvcmUgfX1cclxuICAgICAgICAgICAgICAgIHNob3dJY29uPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXt0cmVlU2VhcmNofVxyXG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudHJlZVNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAgICAgdGl0bGVBbGlhcz17dGl0bGVBbGlhc31cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50cmVlUmVmfVxyXG4gICAgICAgICAgICAgICAgey4uLm90aGVydHJlZVBhcmFtc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInJpZ2h0XCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5vLWxlZnQtcmlnaHRcIildOiAhc2hvd0xlZnQsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgICA8SGVhZGVyU2VhcmNoXHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcz17c2VhcmNoRm9ybXN9XHJcbiAgICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb249e3Rvb2xCdXR0b25Qb3NpdGlvbn1cclxuICAgICAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICBvblJlc2V0PXt0aGlzLnByb3BzLm9uUmVzZXR9XHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybVByb3BzPXt0aGlzLnByb3BzLnNlYXJjaEZvcm1Qcm9wc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmXHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcImJ1dHRvbVwiICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUb29sQnV0dG9ucyhzZWxmQnV0dG9ucywgc2VhcmNoRm9ybXMubGVuZ3RoID09IDApfVxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZVwiKSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcFwiKV06XHJcbiAgICAgICAgICAgICAgICAgICAgKHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnKSB8fCAhdG9vbGJhckZsYWcsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wMlwiKV06ICFzZWFyY2hGbGFnICYmICF0b29sRmxhZyxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPFRhYmxlXHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMudGFibGVSZWZ9XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5zPXt0YWJsZUNvbHVtbn1cclxuICAgICAgICAgICAgICAgIGV4cGFuZGFibGU9e3tcclxuICAgICAgICAgICAgICAgICAgZXhwYW5kSWNvbjogKHsgZXhwYW5kZWQsIG9uRXhwYW5kLCByZWNvcmQgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZXhwYW5kZWQgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkTm9kZXMgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkTm9kZXM/Lmxlbmd0aCA+IDAgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERvd25PdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiByZWNvcmQuY2hpbGROb2RlcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5jaGlsZE5vZGVzPy5sZW5ndGggPiAwID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxSaWdodE91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAuLi5leHBhbmRhYmxlLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGNvbHVtbk9yZGVyPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhwYWdpbmF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY3VycmVudFBhZ2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UGFnZSAhPT0gcGFnaW5hdGlvbi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgdG9vbGJhcj17e1xyXG4gICAgICAgICAgICAgICAgICBvblRvb2xDbGljazoge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVmcmVzaDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVMb2FkKHBhcmFtcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4udGFibGVQcm9wcy50b29sYmFyLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHNob3dSb3dTZWxlY3Rpb249e3Nob3dSb3dTZWxlY3Rpb259XHJcbiAgICAgICAgICAgICAgICB7Li4udGFibGVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICAgIGNhbGxCYWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vblN1bWJpdENhbGxCYWNrICYmXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DYWxsQmFja3M/Lm9uU3VtYml0Q2FsbEJhY2soKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGVSZWxvYWQuYmluZCh0aGlzKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGZvcm1Qcm9wcz17ZWRpdG9yRm9ybXN9XHJcbiAgICAgICAgICAgICAgc3VibWl0VXJsPXtzdWJtaXRVcmx9XHJcbiAgICAgICAgICAgICAgc3VibWl0UGFyYW1zPXtzdWJtaXRQYXJhbXN9XHJcbiAgICAgICAgICAgICAgb25TdWJtaXQ9e3RoaXMucHJvcHMub25TdWJtaXR9XHJcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XHJcbiAgICAgICAgICAgICAgb25IaWRlRm9ybT17dGhpcy5wcm9wcy5vbkhpZGVGb3JtfVxyXG4gICAgICAgICAgICAgIG9uRm9ybUNoYW5nZT17dGhpcy5wcm9wcy5vbkZvcm1DaGFuZ2V9XHJcbiAgICAgICAgICAgICAgZm9ybVR5cGU9e3RoaXMucHJvcHMuZm9ybVR5cGUgfHwgXCJhdXRvXCJ9XHJcbiAgICAgICAgICAgICAgY2hhbmdlVmFsaWQ9e2Zvcm1DaGFuZ2VWYWxpZH1cclxuICAgICAgICAgICAgICBvdGhlclByb3BzPXt7IC4uLmZvcm1Qcm9wcyB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBCYXNlUGFnZTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFtQixPQUFPO0FBQ3ZELE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFDcEMsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUVsQyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEtBQUssTUFBTSxrQkFBa0I7QUFDcEMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBR3hDLE9BQU9DLFVBQVUsTUFBTSxRQUFRO0FBQy9CLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxxQkFBcUI7QUFH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
|
|
918
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJCdXR0b24iLCJNb2RhbCIsIlBvcG92ZXIiLCJtZXNzYWdlIiwiRWRpdG9yRm9ybSIsImNscyIsInN0eWxlcyIsInV0aWxzIiwiRG93bk91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJSaWdodE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiRWxsaXBzaXNPdXRsaW5lZCIsIkRlbGV0ZU91dGxpbmVkIiwiZ2V0TGVzcyIsInJlcXVlc3QiLCJjb25maWciLCJnZXRTdG9yYWdlIiwiSGVhZGVyU2VhcmNoIiwiQmFzZVBhZ2UiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX3R5cGUiLCJfc2l6ZSIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImNoZWNrZWRUcmVlS2V5cyIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJzdGF0ZSIsInZhbHVlIiwiZGVwdElkIiwib25TZWFyY2giLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsInRyZWVTZWFyY2hQcmFtcyIsInBvcG9wZW5zIiwiY29tcG9uZW50RGlkTW91bnQiLCJpbml0RGF0YSIsInNldFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsImNhbGxCYWNrIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlIiwic2VhcmNoUmVmIiwiY3VycmVudCIsImRvU3VibWl0IiwiZGF0YSIsIl90aGlzJGVkaXRvclJlZiRjdXJyZSIsImxhYmVsIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiZWRpdG9yUmVmIiwic2hvd0Zvcm0iLCJfdGhpcyRlZGl0b3JSZWYkY3VycmUyIiwiZWRpdG9yZmxhZyIsInNob3ciLCJoaWRlRm9ybSIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTMiLCJzZXRMb2FkaW5nIiwibG9hZGluZyIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTQiLCJzZXRFZGl0Rm9ybVZhbHVlcyIsIl90aGlzJGVkaXRvclJlZiRjdXJyZTUiLCJzZXRGaWVsZHNWYWx1ZSIsImdldEVkaXRGb3JtVmFsdWVzIiwiX3RoaXMkZWRpdG9yUmVmJGN1cnJlNiIsImdldEZpZWxkc1ZhbHVlIiwib25EZWxldGUiLCJfdGhpcyR0YWJsZVJlZiRjdXJyZW4iLCJkZWxldGVVcmwiLCJkZWxldGVQYXJhbXMiLCJkZWxldGVQb3NpdGlvbiIsIl90aGlzIiwidGFibGVSZWYiLCJnZXRTZWxlY3RlZFJvd0tleXMiLCJ3YXJuaW5nIiwiY29uZmlybSIsIm9uT2siLCJFcnJvciIsImRlZmF1bHRQYXJhbXMiLCJtZXRob2QiLCJhdXRvUHJlZml4IiwiaWRzIiwiam9pbiIsImlkIiwicmVxdWVzdFBhcmFtcyIsIl9vYmplY3RTcHJlYWQiLCJ0aGVuIiwiY29kZSIsIl90aGlzJHNlYXJjaFJlZiIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYyIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzIiLCJzdWNjZXNzIiwiZ2V0U2VhcmNoVmFsdWVzIiwib25DYWxsQmFja3MiLCJvbkRlbGV0ZUNhbGxCYWNrIiwidGFibGVMb2FkIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJfdGhpcyR0YWJsZVJlZiRjdXJyZW4yIiwicmVxdWVzdENvbmZpZyIsInN0b3JlIiwibG9hZCIsInRyZWVMb2FkIiwiX3RoaXMkdHJlZVJlZiRjdXJyZW50IiwidHJlZVJlZiIsIm9uU2VhcmNoQ2FsbEJhY2siLCJjYWxsYmFjayIsInRhYmxlUmVsb2FkIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuMyIsImF1dG9Mb2FkIiwicmVsb2FkIiwiX3JlcyRkYXRhIiwicmVjb3JkcyIsImN1cnJlbnRQYWdlIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuNCIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjUiLCJnZXRTZWxlY3RlZFJvd0RhdGFzIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuNiIsInNldFNlbGVjdGVkUm93S2V5cyIsIl90aGlzJHRhYmxlUmVmJGN1cnJlbjciLCJzZXRTZWxlY3RlZFJvd0RhdGFzIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuOCIsInJlc2V0U2VsZWN0ZWRSb3dLZXlzIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuOSIsIl90aGlzJHNlYXJjaFJlZjIiLCJmcm9tVmFsdWUiLCJnZXRDaGlsZHJlbkRhdGEiLCJ0YWJsZVByb3BzIiwicm93S2V5IiwicmVzS2V5IiwiY2hpbGROb2RlcyIsImNoaWxkcmVuIiwibWFwIiwiaXRlbSIsImluZGV4IiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsIl9pdGVtJHByb3BzIiwicGFnZVR5cGUiLCJvbkNsaWNrIiwiaWNvbiIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsImNsYXNzTmFtZSIsInN0eWxlIiwibWFyZ2luTGVmdCIsInRpdGxlIiwicGxhY2VtZW50IiwidHJpZ2dlciIsInJlbmRlckNsb3VtbkJ1dHRvbiIsImNvbHVtbkJ1dHRvbnMiLCJyZWNvcmQiLCJhY3Rpb25Qcm9wcyIsImJhc2VBY3Rpb25Db2x1bW4iLCJuZXdCdXR0b25zIiwic2hvd0ljb24iLCJfaXRlbSRwcm9wczIiLCJyZWNvcmRTaG93IiwiX2V4Y2x1ZGVkMiIsImV2YWwiLCJwdXNoIiwiX2l0ZW0kcHJvcHMzIiwiX2V4Y2x1ZGVkMyIsInNldFN0YXRlIiwiX2l0ZW0kcHJvcHM0IiwiX2V4Y2x1ZGVkNCIsInZpc2libGUiLCJvblZpc2libGVDaGFuZ2UiLCJ2aXNpYmFsZSIsInRyZWVTZWxlY3QiLCJzZWxlY3RlZEtleXMiLCJvYmoiLCJfdGhpcyRzZWFyY2hSZWYzIiwiX3RoaXMkcHJvcHMkb25DYWxsQmFjMyIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzQiLCJrZXl3b3JkIiwic2VhcmNoS2V5Iiwic2VhcmNoRmllbGQiLCJwYXJhbnRTZWxlY3QiLCJ0cmVlUHJvcHMiLCJzZWxlY3RlZE5vZGVzIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsImlzTGVhZiIsIm9uVHJlZVNlbGVjdCIsInRyZWVTZWxlY3RDYWxsQmFjayIsInJlc2V0U2VhcmNoIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlMiIsInJlc2V0RmllbGRzIiwiZ2V0VGV4dCIsInRleHQiLCJfcHJvcHMkZGF0YSIsIm5ld1RleHQiLCJpIiwic2V0VGFibGVEYXRhIiwiX3RoaXMkdGFibGVSZWYkY3VycmVuMTAiLCJzZXREYXRhIiwic2V0VHJlZURhdGEiLCJfdGhpcyR0cmVlUmVmJGN1cnJlbnQyIiwicmVuZGVyIiwiX3RhYmxlUHJvcHMkdG9vbGJhciIsIl90YWJsZVByb3BzJHRvb2xiYXIyIiwiY29sdW1ucyIsInN1Ym1pdFVybCIsImZvcm1Qcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJidXR0b25zIiwiZWRpdG9yRm9ybSIsIm9uU2hvd0Zvcm0iLCJmb3JtQ2hhbmdlVmFsaWQiLCJ0b29sQnV0dG9uUG9zaXRpb24iLCJmaWx0ZXJDb2x1bW4iLCJhY3Rpb25Db2x1bW4iLCJzaG93Um93U2VsZWN0aW9uIiwiY29sdW1uT3JkZXIiLCJleHBhbmRhYmxlIiwib3RoZXJ0YWJsZVBhcmFtcyIsIl9leGNsdWRlZDUiLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGl0bGVBbGlhcyIsIm90aGVydHJlZVBhcmFtcyIsIl9leGNsdWRlZDYiLCJ0YWJsZVBhcmFtcyIsInRhYmxlQ29sdW1uIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsImRlZmF1bHRWYWx1ZSIsIl90ZW1wJHNlYXJjaCIsIl90ZW1wJHByb3BzIiwiX3RlbXAkcHJvcHMyIiwiX3RlbXAiLCJ0ZW1wIiwic2VhcmNoIiwiX3RlbXAkc2VhcmNoMiIsIl90ZW1wJHNlYXJjaDMiLCJfdGVtcCRzZWFyY2g0IiwiZmllbGQiLCJkYXRhSW5kZXgiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJydWxlcyIsInNlYXJjaFJ1bGVzIiwiZWRpdG9yIiwic3BhbiIsImRpY3ROYW1lIiwiX3RlbXAkcHJvcHMzIiwiY29sdW1uU2VhcmNoIiwiZmlsdGVyUHJvcHMiLCJ0ZW1wUHJvcCIsIkZyYWdtZW50IiwiZWxsaXBzaXMiLCJjb2x1bW5TaG93Iiwic2VsZkJ1dHRvbnMiLCJpbmRleE9mIiwiYmluZCIsImRhbmdlciIsIkFycmF5IiwiaXNBcnJheSIsImNoaWxkIiwiX2NoaWxkJHByb3BzIiwiX2NoaWxkJHByb3BzMiIsIl9pdGVtJHByb3BzNSIsIl9pdGVtJHByb3BzNiIsImFsaWduIiwidGV4dEFsaWduIiwid2lkdGgiLCJmaXhlZCIsInJlYWNvcmQiLCJzZWFyY2hGbGFnIiwidGFibGVUb29sIiwidG9vbEZsYWciLCJ0b29sYmFyRmxhZyIsInRvb2xiYXIiLCJ0b29scyIsInBhZ2luYXRpb24iLCJzY3JvbGwiLCJ4IiwicGFnZVRpdGxlIiwiZGlzcGxheSIsImNoZWNrYWJsZSIsInNlYXJjaGFibGUiLCJvblNlbGVjdCIsInJlZiIsIm9uUmVzZXQiLCJzZWFyY2hGb3JtUHJvcHMiLCJleHBhbmRJY29uIiwiX3JlZiIsIl9yZWNvcmQkY2hpbGROb2RlcyIsImV4cGFuZGVkIiwib25FeHBhbmQiLCJlIiwiZXhwYW5kZWRSb3dSZW5kZXIiLCJvbkNoYW5nZSIsIm9uVG9vbENsaWNrIiwib25SZWZyZXNoIiwiX3RoaXMkcHJvcHMkb25DYWxsQmFjNSIsIl90aGlzJHByb3BzJG9uQ2FsbEJhYzYiLCJvblN1bWJpdENhbGxCYWNrIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJvdGhlclByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9CYXNlUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgVGFibGUgZnJvbSBcIi4uLy4uL2Jhc2UvdGFibGVcIjtcclxuaW1wb3J0IFRyZWUgZnJvbSBcIi4uLy4uL2Jhc2UvdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vYmFzZS9tb2RhbFwiO1xyXG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwiLi4vLi4vYmFzZS9wb3BvdmVyXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9iYXNlL21lc3NhZ2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL2Jhc2UvY29tbW9uL0ljb25Gb250XCI7XHJcbmltcG9ydCB7IGljb25UeXBlIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgRWRpdG9yRm9ybSBmcm9tIFwiLi9Gb3JtXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG4gIEVkaXRPdXRsaW5lZCxcclxuICBSaWdodE91dGxpbmVkLFxyXG4gIFBsdXNPdXRsaW5lZCxcclxuICBFbGxpcHNpc091dGxpbmVkLFxyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBJRm9ybVByb3BzIH0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybS9Gb3JtXCI7XHJcbmltcG9ydCBIZWFkZXJTZWFyY2ggZnJvbSBcIi4uL0hlYWRlclNlYXJjaFwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbnRlcmZhY2UgVGFibGVQcm9wcyB7XHJcbiAgYWN0aW9uQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZmlsdGVyQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrov4fmu6TmjInpkq5cclxuICBzaG93Um93U2VsZWN0aW9uPzogYm9vbGVhbjsgLy/mmK/lkKbooajmoLzli77pgInliJdcclxuICBwYWdpbmF0aW9uPzogYm9vbGVhbiB8IFBhZ2luYXRpb25Qcm9wczsgLy/mmK/lkKbmmL7npLrliIbpobVcclxuICBjb2x1bW5PcmRlcj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66KGo5qC85bqP5YiXXHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBUcmVlUHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmkJzntKLmoYZcclxuICBzZWFyY2hLZXk/OiBzdHJpbmc7IC8v5pCc57SidmFsdWXlr7nlupTnmoRrZXlcclxuICBzZWFyY2hGaWVsZD86IHN0cmluZzsgLy/mn6Xor6Llr7nlupTnmoRrZXlcclxuICB0aXRsZUFsaWFzPzogc3RyaW5nOyAvL+agkXRpdGxl5a+55bqU55qEa2V5LOm7mOiupHRpdGxlXHJcbiAgbm9kZVBvcnBzPzogb2JqZWN0O1xyXG4gIHBhcmFudFNlbGVjdD86IGJvb2xlYW47XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBGb3JtUHJvcHMgZXh0ZW5kcyBJRm9ybVByb3BzIHt9XHJcbmludGVyZmFjZSBOU0NCYXNlQmFnZVByb3BzIHtcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlpLTpg6jmkJzntKLmoI9cclxuICB0YWJsZVByb3BzPzogVGFibGVQcm9wczsgLy/ooajmoLzlj4LmlbBcclxuICB0cmVlUHJvcHM/OiBUcmVlUHJvcHM7IC8v5bem5L6n5qCR5Y+C5pWwXHJcbiAgc3VibWl0UGFyYW1zPzogT2JqZWN0OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGNvbHVtbnM6IEFycmF5PE9iamVjdD47XHJcbiAgc2hvd0xlZnQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuW3puS+p+ebruW9leagkVxyXG4gIHNob3dUb29sQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmjInpkq7moI9cclxuICBlZGl0b3JGb3JtPzogYm9vbGVhbjsgLy/mmK/lkKbpnIDopoHooajljZXlip/og70gLCDkuLpmYWxzZSDnvJbovpHvvIzmn6XnnIvvvIzmlrDlop7lip/og73lnYfkuI3lj6/nlKhcclxuICBkZWxldGVVcmw/OiBzdHJpbmc7IC8v5Yig6ZmkdXJsXHJcbiAgb25EZWxldGU/OiAoc2VsZWN0ZWRLZXlzPzogQXJyYXk8c3RyaW5nPikgPT4gdm9pZDsgLy/liKDpmaTlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dpZHPmi7zmjqXkvKDpgJLnu5nlkI7lj7BcclxuICBkZWxldGVQb3NpdGlvbj86IFwidG9vbGJhclwiIHwgXCJyb3dcIjtcclxuICBkZWxldGVQYXJhbXM/OiBPYmplY3Q7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25TZWFyY2g/OiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgb25SZXNldD86ICgpID0+IHZvaWQ7XHJcbiAgaW5pdERhdGE/OiBhbnk7IC8v5Yid5aeL5YyW5Zue6LCD5Ye95pWw77yM5ZyoY29tcG9uZW50RGlkTW91bnTkuK3osIPnlKhcclxuICBidXR0b25zPzogQXJyYXk8c3RyaW5nPjsgLy/mjInpkq7pm4blkIggIFsnYWRkJywnZGVsZXRlJywnc2VhcmNoJywnZWRpdG9yJ11cclxuICBvblNob3dGb3JtPzogKHZhbHVlPzogYW55LCBlZGl0b3JGbGFnPzogc3RyaW5nKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uSGlkZUZvcm0/OiAoKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uRm9ybUNoYW5nZT86IChjaGFuZ2VkVmFsdWVzPzogYW55LCBhbGxWYWx1ZXM/OiBhbnkpID0+IHZvaWQ7IC8v6KGo5Y2Vb25DaGFuZ2Xlm57osINcclxuICBmb3JtVHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCI7XHJcbiAgZm9ybUNoYW5nZVZhbGlkPzogYm9vbGVhbjsgLy/ooajljZXmoKHpqoxcclxuICBjbGFzc05hbWU/OiBhbnk7XHJcbiAgdG9vbEJ1dHRvblBvc2l0aW9uPzogXCJyaWdodFwiIHwgXCJidXR0b21cIjtcclxuICBwYWdlVGl0bGU/OiBzdHJpbmcgfCBSZWFjdE5vZGU7XHJcbiAgZm9ybVByb3BzPzogRm9ybVByb3BzO1xyXG4gIGFjdGlvblByb3BzPzogeyB0ZXh0QWxpZ24/OiBzdHJpbmc7IHNob3dJY29uPzogYm9vbGVhbjsgd2lkdGg/OiBudW1iZXIgfTtcclxuICBzZWFyY2hGb3JtUHJvcHM/OiB7IHdyYXBwZXJDb2w/OiBhbnk7IGxhYmVsQ29sPzogYW55IH07XHJcbiAgb25UcmVlU2VsZWN0PzogKHZhbHVlPzogYW55LCBlZGl0b3JGbGFnPzogc3RyaW5nKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uQ2FsbEJhY2tzPzoge1xyXG4gICAgdHJlZVNlbGVjdENhbGxCYWNrPzogYW55O1xyXG4gICAgb25TZWFyY2hDYWxsQmFjaz86IGFueTtcclxuICAgIG9uU3VtYml0Q2FsbEJhY2s/OiBhbnk7XHJcbiAgICBvbkRlbGV0ZUNhbGxCYWNrPzogYW55O1xyXG4gIH07XHJcbn1cclxuXHJcbmNsYXNzIEJhc2VQYWdlIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOU0NCYXNlQmFnZVByb3BzLCBhbnk+IHtcclxuICB0YWJsZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgdHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBlZGl0b3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgY29uc3RydWN0b3IocHJvcHM6IGFueSkge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IHsgc3RvcmVQcmVmaXggfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHR5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcImZvcm1UeXBlXCIgOiBcImZvcm1UeXBlXCJcclxuICAgICk7XHJcbiAgICB0eXBlID0gdHlwZT8uY29udGVudDtcclxuICAgIGxldCBzaXplID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJ0YWJsZVNpemVcIiA6IFwidGFibGVTaXplXCJcclxuICAgICk7XHJcbiAgICBzaXplID0gc2l6ZT8uY29udGVudDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHR5cGU6IFwiYWRkXCIsXHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFtdLFxyXG4gICAgICB0cmVlU2VsZWN0ZWRLZXk6IFwiXCIsXHJcbiAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICAgIGZvcm1UeXBlOiB0eXBlIHx8IFwibW9kYWxcIixcclxuICAgICAgdGFibGVTaXplOiBzaXplIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgICB0cmVlU2VhcmNoUHJhbXM6IHt9LFxyXG4gICAgICBwb3BvcGVuczoge30sXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgaW5pdERhdGEgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpbml0RGF0YSAmJiBpbml0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgY2FsbEJhY2sgJiYgY2FsbEJhY2socGFyYW1zKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZGF0YSwgbGFiZWwgPSBcIue8lui+kVwiKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5kb1N1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdCA9IChjaGVja2VkVHJlZUtleXM6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgeyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHZhbHVlID0geyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCwgZGVwdElkOiBjaGVja2VkVHJlZUtleXNbMF0gfTtcclxuICAgIGlmICh0aGlzLnByb3BzLm9uU2VhcmNoKSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25TZWFyY2godmFsdWUpO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBlZGl0b3JmbGFnKTtcclxuICB9XHJcblxyXG4gIC8v5YWz6Zet6KGo5Y2VXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zZXRMb2FkaW5nKGxvYWRpbmcpO1xyXG4gIH1cclxuXHJcbiAgc2V0RWRpdEZvcm1WYWx1ZXModmFsdWUpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRGb3JtVmFsdWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKGRhdGE/OiBhbnkpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGVsZXRlVXJsLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgZGVsZXRlUGFyYW1zLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dLZXlzID0gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICAgIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInRvb2xiYXJcIikge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIGNvbnRlbnQ6IFwi5piv5ZCm56Gu6K6k5Yig6Zmk5omA6YCJ6aG577yfXCIsXHJcbiAgICAgIC8vIGNlbnRlcmVkOnRydWUsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgICAgIG9uRGVsZXRlICYmXHJcbiAgICAgICAgICAgIG9uRGVsZXRlKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzIDogZGF0YSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRQYXJhbXMgPSB7XHJcbiAgICAgICAgICBtZXRob2Q6IFwicG9zdFwiLFxyXG4gICAgICAgICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICBpZHM6IGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzLmpvaW4oKSA6IGRhdGEuaWQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHJlcXVlc3RQYXJhbXMgPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQYXJhbXMpIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlbGV0ZVBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWZhdWx0UGFyYW1zIH07XHJcbiAgICAgICAgcmVxdWVzdChkZWxldGVVcmwsIHtcclxuICAgICAgICAgIC4uLnJlcXVlc3RQYXJhbXMsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn++8gVwiKTtcclxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBfdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vbkRlbGV0ZUNhbGxCYWNrICYmXHJcbiAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8ub25EZWxldGVDYWxsQmFjaygpO1xyXG4gICAgICAgICAgICAgIF90aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSwgcmVxdWVzdENvbmZpZyA9IHt9KSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLmxvYWQoe1xyXG4gICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICB0cmVlTG9hZChwYXJhbXM6IGFueSwgcmVxdWVzdENvbmZpZyA9IHt9KSB7XHJcbiAgICB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIC4uLnJlcXVlc3RDb25maWcsXHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v5p+l6K+iXHJcbiAgb25TZWFyY2gocGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoLCBvbkNhbGxCYWNrcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvblNlYXJjaCkge1xyXG4gICAgICBvblNlYXJjaCh7IC4uLnBhcmFtcywgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVMb2FkKHsgLi4ucGFyYW1zLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9KTtcclxuICAgIG9uQ2FsbEJhY2tzPy5vblNlYXJjaENhbGxCYWNrICYmXHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uQ2FsbEJhY2tzPy5vblNlYXJjaENhbGxCYWNrLCB0aGlzLCBbcGFyYW1zXSk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQocGFyYW1zID0ge30sIGF1dG9Mb2FkID0gdHJ1ZSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZT8ucmVsb2FkKHtcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBhdXRvTG9hZCAmJlxyXG4gICAgICAgICAgcmVzPy5kYXRhPy5yZWNvcmRzPy5sZW5ndGggPT0gMCAmJlxyXG4gICAgICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50UGFnZSAhPT0gMVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZT8ucmVsb2FkKHtcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGN1cnJlbnQ6IDEsIC4uLnBhcmFtcyB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0RhdGFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dEYXRhcygpO1xyXG4gIH1cclxuICBzZXRTZWxlY3RlZFJvd0tleXMoZGF0YTogQXJyYXk8U3RyaW5nIHwgTnVtYmVyPikge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uc2V0U2VsZWN0ZWRSb3dLZXlzKGRhdGEpO1xyXG4gIH1cclxuICBzZXRTZWxlY3RlZFJvd0RhdGFzKGRhdGE6IEFycmF5PE9iamVjdD4pIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnNldFNlbGVjdGVkUm93RGF0YXMoZGF0YSk7XHJcbiAgfVxyXG4gIHJlc2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8ucmVzZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgIHJldHVybiB7IC4uLmZyb21WYWx1ZSwgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfTtcclxuICB9XHJcblxyXG4gIGdldENoaWxkcmVuRGF0YShkYXRhLCBrZXlzID0gW10pIHtcclxuICAgIGNvbnN0IHsgdGFibGVQcm9wcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgcm93S2V5ID0gXCJpZFwiIH0gPSB0YWJsZVByb3BzO1xyXG4gICAgbGV0IHJlc0tleSA9IFtdO1xyXG4gICAgbGV0IGtleSA9ICcnXHJcbiAgICBpZiAoZGF0YS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gZGF0YS5jaGlsZE5vZGVzO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYodHlwZW9mIHJvd0tleSA9PSBcImZ1bmN0aW9uXCIpe1xyXG4gICAgICAgICAga2V5ID0gcm93S2V5KGl0ZW0pIFxyXG4gICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICBrZXkgPSBpdGVtW3Jvd0tleV1cclxuICAgICAgICAgfVxyXG4gICAgICAgIGlmIChpdGVtLmNoaWxkTm9kZXMpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5EYXRhKGl0ZW0uY2hpbGROb2Rlcywga2V5cyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc0tleSA9IFsuLi5rZXlzLCBrZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXNLZXkgPSBbLi4ua2V5cywga2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXNLZXk7XHJcbiAgfVxyXG5cclxuICByZW5kZXJUb29sQnV0dG9ucyh0b29sYnV0dG9uczogYW55LCBtYXJnaW5mbGFnID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGZsYWcgPSB0b29sYnV0dG9ucy5sZW5ndGggPiA1O1xyXG4gICAgY29uc3QgeyBzaG93U2VhcmNoID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAzKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0b29sLWJ1dHRvbnNcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJ0b29sLWJ1dHRvbnMtbWFyZ2luXCIpXTogIXNob3dTZWFyY2ggfHwgbWFyZ2luZmxhZyxcclxuICAgICAgICB9KX1cclxuICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgID5cclxuICAgICAgICB7dG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcblxyXG4gICAgICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcC1ib3gnXX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIOabtOWkmiA8RG93bk91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9uczogYW55LCByZWNvcmQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBhY3Rpb25Qcm9wcyAsdGFibGVQcm9wcz17fX0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IG5ld0J1dHRvbnMgPSBbXTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBsZXQgeyByb3dLZXkgPSBcImlkXCIgfSA9IHRhYmxlUHJvcHM7XHJcbiAgICBsZXQga2V5ID0gJydcclxuICAgIGlmKHR5cGVvZiByb3dLZXkgPT0gXCJmdW5jdGlvblwiKXtcclxuICAgICBrZXkgPSByb3dLZXkocmVjb3JkKSBcclxuICAgIH1lbHNle1xyXG4gICAgICBrZXkgPSByZWNvcmRbcm93S2V5XVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChhY3Rpb25Qcm9wcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCByZWNvcmRTaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKHJlY29yZFNob3cpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgaWYgKGV2YWwocmVjb3JkU2hvdykpIHtcclxuICAgICAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICBjb25zdCBzaG93ID0gcmVjb3JkU2hvdyhyZWNvcmQpO1xyXG4gICAgICAgICAgc2hvdyAmJiBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBmbGFnID0gbmV3QnV0dG9ucy5sZW5ndGggPiAzO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMikge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBkYXRhID0ge30gYXMgYW55O1xyXG4gICAgICAgICAgICAgIGRhdGFbcmVjb3JkLmlkXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgcG9wb3BlbnM6IGRhdGEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHR5cGU9XCJsaW5rXCJcclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICBpZiAoaW5kZXggPCAzKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIHR5cGU9XCJsaW5rXCJcclxuICAgICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICB2aXNpYmxlPXt0aGlzLnN0YXRlLnBvcG9wZW5zW2tleV0gfHwgZmFsc2V9XHJcbiAgICAgICAgICAgICAgb25WaXNpYmxlQ2hhbmdlPXsodmlzaWJhbGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2aXNpYmFsZSkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHt9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgICAgZGF0YVtrZXldID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9wb3BlbnM6IGRhdGEsXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9wb3BlbnM6IHt9LFxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX0+XHJcbiAgICAgICAgICAgICAgICA8RWxsaXBzaXNPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JfZmlyc3RcIildOiBpbmRleCA9PT0gMCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgdHlwZT1cImxpbmtcIlxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgb2JqOiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2VhcmNoS2V5ID0gXCJrZXlcIixcclxuICAgICAgc2VhcmNoRmllbGQgPSBcIlwiLFxyXG4gICAgICBwYXJhbnRTZWxlY3QgPSB0cnVlLFxyXG4gICAgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH0gPSBvYmo7XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGtleXdvcmQgPSBzZWxlY3RlZE5vZGVzWzBdLmRhdGFyZWYuYXR0cmlidXRlW3NlYXJjaEtleV07XHJcbiAgICAgIGlmIChwYXJhbnRTZWxlY3QpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7IFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWROb2Rlc1swXS5pc0xlYWYgfHwgIXNlbGVjdGVkTm9kZXNbMF0uY2hpbGRyZW4pIHtcclxuICAgICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHsgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHRyZWVTZWxlY3RlZEtleToga2V5d29yZCxcclxuICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHt9LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnByb3BzLm9uVHJlZVNlbGVjdCkge1xyXG4gICAgICB0aGlzLnByb3BzLm9uVHJlZVNlbGVjdChzZWxlY3RlZEtleXMsIG9iaik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKSB8fCB7fTtcclxuICAgIHNlYXJjaEZpZWxkICYmIHRoaXMudGFibGVMb2FkKHsgLi4uZnJvbVZhbHVlLCBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0pO1xyXG4gICAgdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8udHJlZVNlbGVjdENhbGxCYWNrICYmXHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKHRoaXMucHJvcHMub25DYWxsQmFja3M/LnRyZWVTZWxlY3RDYWxsQmFjaywgdGhpcywgW1xyXG4gICAgICAgIHNlbGVjdGVkS2V5cyxcclxuICAgICAgICBvYmosXHJcbiAgICAgIF0pO1xyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIGdldFRleHQocHJvcHMsIHRleHQpIHtcclxuICAgIGxldCBuZXdUZXh0ID0gdGV4dDtcclxuICAgIGlmIChwcm9wcz8uZGF0YSAmJiBwcm9wcz8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZGF0YSA9IHByb3BzLmRhdGE7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YT8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGF0YVtpXS52YWx1ZSA9PSB0ZXh0KSB7XHJcbiAgICAgICAgICBuZXdUZXh0ID0gZGF0YVtpXS5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdUZXh0O1xyXG4gIH1cclxuICBzZXRUYWJsZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZT8uc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgc2V0VHJlZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50cmVlUmVmLmN1cnJlbnQ/LnN0b3JlPy5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZEtleSA9IChzZWxlY3RlZCkgPT4ge1xyXG4gICAgbGV0IHJlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBzZWxlY3RlZFtrZXldO1xyXG4gICAgICBpZiAoa2V5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmVzID0gWy4uLnJlcywgLi4ua2V5c107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfTtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIGJ1dHRvbnMgPSBbXSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICAgIG9uU2hvd0Zvcm0sXHJcbiAgICAgIGZvcm1DaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID0gXCJidXR0b21cIixcclxuICAgICAgYWN0aW9uUHJvcHMsXHJcbiAgICAgIGRlbGV0ZVBvc2l0aW9uID0gXCJ0b29sYmFyXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIGZpbHRlckNvbHVtbiA9IHRydWUsXHJcbiAgICAgIGFjdGlvbkNvbHVtbiA9IHRydWUsXHJcbiAgICAgIHNob3dSb3dTZWxlY3Rpb24gPSB0cnVlLFxyXG4gICAgICBjb2x1bW5PcmRlciA9IHRydWUsXHJcbiAgICAgIGV4cGFuZGFibGUgPSB7fSxcclxuICAgICAgcGFyYW50U2VsZWN0ID0gdHJ1ZSxcclxuICAgICAgLi4ub3RoZXJ0YWJsZVBhcmFtc1xyXG4gICAgfSA9IHRhYmxlUHJvcHM7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZTogdHJlZVN0b3JlID0ge30sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRyZWVTZWFyY2ggPSB0cnVlLFxyXG4gICAgICB0aXRsZUFsaWFzID0gXCJ0aXRsZVwiLFxyXG4gICAgICAuLi5vdGhlcnRyZWVQYXJhbXNcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlLCAuLi5vdGhlcnRhYmxlUGFyYW1zIH0gYXMgYW55O1xyXG4gICAgbGV0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IGNvbHVtbkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2ggPT09IHRydWUgfHwgdGVtcC5zZWFyY2g/LnNob3cgPT09IHRydWUpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC5zZWFyY2g/LmxhYmVsIHx8IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICAgIGxhYmVsQ29sOiB0ZW1wLnNlYXJjaD8ubGFiZWxDb2wsXHJcbiAgICAgICAgICB3cmFwcGVyQ29sOiB0ZW1wLnNlYXJjaD8ud3JhcHBlckNvbCxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnNlYXJjaFJ1bGVzID8gdGVtcC5zZWFyY2hSdWxlcyA6IFtdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkZWxldGUgdGVtcC5zZWFyY2g7XHJcbiAgICAgIHRlbXAuZWRpdG9yICE9PSBmYWxzZSAmJlxyXG4gICAgICAgIGVkaXRvckZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAucnVsZXMgPyB0ZW1wLnJ1bGVzIDogW10sXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgICBkaWN0TmFtZTogdGVtcC5kaWN0TmFtZSxcclxuICAgICAgICAgIHByb3BzOiB7IC4uLnRlbXAucHJvcHMgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleDtcclxuICAgICAgICBkZWZhdWx0VmFsdWVbbmFtZV0gPSB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucnVsZXM7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNwYW47XHJcbiAgICAgIGlmICh0ZW1wLmNvbHVtblNlYXJjaCkge1xyXG4gICAgICAgIHRlbXAuZmlsdGVyUHJvcHMgPSB7XHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnR5cGU7XHJcbiAgICAgIGxldCB0ZW1wUHJvcCA9IHsgLi4udGVtcC5wcm9wcyB9O1xyXG4gICAgICBpZiAodGVtcC5zdHlsZSkge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAge3RleHQgIT09IFwiXCIgJiYgdGV4dCAhPT0gbnVsbCAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLWJhY2tcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLXRleHRcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2UgaWYgKCF0ZW1wLmVsbGlwc2lzKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAgPSB7IC4uLnRlbXAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgaWYgKHRlbXA/LmNvbHVtblNob3cgIT09IGZhbHNlKSB0YWJsZUNvbHVtbi5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzZWxmQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qcm9wcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBpZiAoZWRpdG9yRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJzZWFyY2hcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEV5ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDmn6XnnItcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImVkaXRvclwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RWRpdE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDnvJbovpFcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJhZGRcIikgPiAtMSkge1xyXG4gICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uU2hvd0Zvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgb25TaG93Rm9ybSgpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNPdXRsaW5lZCAvPn1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDmt7vliqBcclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJkZWxldGVcIikgPiAtMSkge1xyXG4gICAgICBpZiAoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDliKDpmaRcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGVsZXRlUG9zaXRpb24gPT0gXCJyb3dcIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25EZWxldGUocmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGFjdGlvbkNvbHVtbiAmJlxyXG4gICAgICB0YWJsZUNvbHVtbi5wdXNoKHtcclxuICAgICAgICB0aXRsZTogXCLmk43kvZxcIixcclxuICAgICAgICBkYXRhSW5kZXg6IFwiYWN0aW9uXCIsXHJcbiAgICAgICAgYWxpZ246IGFjdGlvblByb3BzPy50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYWN0aW9uUHJvcHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgOiBcImNlbnRlclwiLFxyXG4gICAgICAgIHdpZHRoOiBhY3Rpb25Qcm9wcz8ud2lkdGhcclxuICAgICAgICAgID8gYWN0aW9uUHJvcHM/LndpZHRoXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgOiAyMDAsXHJcbiAgICAgICAgZml4ZWQ6IFwicmlnaHRcIixcclxuICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnksIHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYWN0aW9uXCIpfT5cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKGNvbHVtbk9yZGVyKVxyXG4gICAgICB0YWJsZUNvbHVtbiA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aXRsZTogXCLluo/lj7dcIixcclxuICAgICAgICAgIHdpZHRoOiA4MCxcclxuICAgICAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dCwgcmVhY29yZCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e2luZGV4ICsgMX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4udGFibGVDb2x1bW4sXHJcbiAgICAgIF07XHJcbiAgICBsZXQgc2VhcmNoRmxhZyA9IHNob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMDtcclxuICAgIGxldCB7IHRhYmxlVG9vbCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdG9vbEZsYWcgPSBzaG93VG9vbEJ1dHRvbiAmJiBzZWxmQnV0dG9ucy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHRvb2xiYXJGbGFnID0gIShcclxuICAgICAgdGFibGVQcm9wcy50b29sYmFyID09IGZhbHNlIHx8XHJcbiAgICAgIHRhYmxlUHJvcHMudG9vbGJhcj8uc2hvdyA9PSBmYWxzZSB8fFxyXG4gICAgICB0YWJsZVByb3BzLnRvb2xiYXI/LnRvb2xzPy5sZW5ndGggPT0gMCB8fFxyXG4gICAgICB0YWJsZVRvb2w/LnNob3cgPT0gZmFsc2VcclxuICAgICk7XHJcbiAgICBpZiAodGFibGVQcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCBzY3JvbGwgPSB0YWJsZVBhcmFtcy5zY3JvbGw7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHNjcm9sbDogeyB4OiBcIm1heC1jb250ZW50XCIsIC4uLnNjcm9sbCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZVwiKSwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS10aXRsZVwiKSl9PlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtcGFuZVwiKSl9XHJcbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJsZWZ0XCIpfT5cclxuICAgICAgICAgICAgICA8VHJlZVxyXG4gICAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgICBzaG93SWNvbj17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBjaGVja2FibGU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRyZWVTZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17W3RoaXMuc3RhdGUudHJlZVNlbGVjdGVkS2V5XX1cclxuICAgICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMudHJlZVJlZn1cclxuICAgICAgICAgICAgICAgIHsuLi5vdGhlcnRyZWVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJyaWdodFwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuby1sZWZ0LXJpZ2h0XCIpXTogIXNob3dMZWZ0LFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgPEhlYWRlclNlYXJjaFxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybXM9e3NlYXJjaEZvcm1zfVxyXG4gICAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uPXt0b29sQnV0dG9uUG9zaXRpb259XHJcbiAgICAgICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgb25SZXNldD17dGhpcy5wcm9wcy5vblJlc2V0fVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1Qcm9wcz17dGhpcy5wcm9wcy5zZWFyY2hGb3JtUHJvcHN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgIHtzaG93VG9vbEJ1dHRvbiAmJlxyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b25zLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJidXR0b21cIiAmJlxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbEJ1dHRvbnMoc2VsZkJ1dHRvbnMsIHNlYXJjaEZvcm1zLmxlbmd0aCA9PSAwKX1cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwidGFibGVcIiksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZS10b3BcIildOlxyXG4gICAgICAgICAgICAgICAgICAgIChzZWFyY2hGbGFnICYmICF0b29sRmxhZykgfHwgIXRvb2xiYXJGbGFnLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcDJcIildOiAhc2VhcmNoRmxhZyAmJiAhdG9vbEZsYWcsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxUYWJsZVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnRhYmxlUmVmfVxyXG4gICAgICAgICAgICAgICAgY29sdW1ucz17dGFibGVDb2x1bW59XHJcbiAgICAgICAgICAgICAgICBleHBhbmRhYmxlPXt7XHJcbiAgICAgICAgICAgICAgICAgIGV4cGFuZEljb246ICh7IGV4cGFuZGVkLCBvbkV4cGFuZCwgcmVjb3JkIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2V4cGFuZGVkIFxyXG4gICAgICAgICAgICAgICAgICAgICAgID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxEb3duT3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBvbkV4cGFuZChyZWNvcmQsIGUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDooIHJlY29yZC5jaGlsZE5vZGVzICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkTm9kZXM/Lmxlbmd0aCA+IDAgKSB8fCggZXhwYW5kYWJsZS5leHBhbmRlZFJvd1JlbmRlcik/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8UmlnaHRPdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4uZXhwYW5kYWJsZSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcmRlcj17dHJ1ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsocGFnaW5hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhZ2UgIT09IHBhZ2luYXRpb24uY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHRvb2xiYXI9e3tcclxuICAgICAgICAgICAgICAgICAgb25Ub29sQ2xpY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlZnJlc2g6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTG9hZChwYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRhYmxlUHJvcHMudG9vbGJhcixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBzaG93Um93U2VsZWN0aW9uPXtzaG93Um93U2VsZWN0aW9ufVxyXG4gICAgICAgICAgICAgICAgey4uLnRhYmxlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB7ZWRpdG9yRm9ybSAmJiAoXHJcbiAgICAgICAgICAgIDxFZGl0b3JGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmVkaXRvclJlZn1cclxuICAgICAgICAgICAgICBjYWxsQmFjaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8ub25TdW1iaXRDYWxsQmFjayAmJlxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vblN1bWJpdENhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBmb3JtUHJvcHM9e2VkaXRvckZvcm1zfVxyXG4gICAgICAgICAgICAgIHN1Ym1pdFVybD17c3VibWl0VXJsfVxyXG4gICAgICAgICAgICAgIHN1Ym1pdFBhcmFtcz17c3VibWl0UGFyYW1zfVxyXG4gICAgICAgICAgICAgIG9uU3VibWl0PXt0aGlzLnByb3BzLm9uU3VibWl0fVxyXG4gICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFZhbHVlfVxyXG4gICAgICAgICAgICAgIG9uSGlkZUZvcm09e3RoaXMucHJvcHMub25IaWRlRm9ybX1cclxuICAgICAgICAgICAgICBvbkZvcm1DaGFuZ2U9e3RoaXMucHJvcHMub25Gb3JtQ2hhbmdlfVxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlPXt0aGlzLnByb3BzLmZvcm1UeXBlIHx8IFwiYXV0b1wifVxyXG4gICAgICAgICAgICAgIGNoYW5nZVZhbGlkPXtmb3JtQ2hhbmdlVmFsaWR9XHJcbiAgICAgICAgICAgICAgb3RoZXJQcm9wcz17eyAuLi5mb3JtUHJvcHMgfX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgQmFzZVBhZ2U7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBbUIsT0FBTztBQUN2RCxPQUFPQyxLQUFLLE1BQU0sa0JBQWtCO0FBQ3BDLE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFFbEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxLQUFLLE1BQU0sa0JBQWtCO0FBQ3BDLE9BQU9DLE9BQU8sTUFBTSxvQkFBb0I7QUFDeEMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUd4QyxPQUFPQyxVQUFVLE1BQU0sUUFBUTtBQUMvQixPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUM1QixPQUFPQyxNQUFNLE1BQU0scUJBQXFCO0FBR3hDLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsU0FDRUMsWUFBWSxFQUNa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
|