nsc-react-component 2.10.16 → 2.10.18
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.
package/lib/base/modal/index.js
CHANGED
|
@@ -416,7 +416,8 @@ var NscModal = /*#__PURE__*/function (_PureComponent) {
|
|
|
416
416
|
_this3.setState({
|
|
417
417
|
expand: false
|
|
418
418
|
});
|
|
419
|
-
}
|
|
419
|
+
},
|
|
420
|
+
className: getLess(styles, 'nsc-modal')
|
|
420
421
|
}));
|
|
421
422
|
}
|
|
422
423
|
}
|
|
@@ -436,4 +437,4 @@ _defineProperty(NscModal, "error", _Modal.error);
|
|
|
436
437
|
_defineProperty(NscModal, "warning", _Modal.warning);
|
|
437
438
|
|
|
438
439
|
export { NscModal as default };
|
|
439
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvbW9kYWwvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiY3JlYXRlUmVmIiwiUHVyZUNvbXBvbmVudCIsInV0aWxzIiwiY29uZmlnIiwiUGx1c0NpcmNsZU91dGxpbmVkIiwiQ2xvc2VDaXJjbGVPdXRsaW5lZCIsIkNsb3NlT3V0bGluZWQiLCJFeHBhbmRPdXRsaW5lZCIsIkNvbXByZXNzT3V0bGluZWQiLCJCdXR0b24iLCJnZXRMZXNzIiwic3R5bGVzIiwiZ2V0U3RvcmFnZSIsIkNvbmZpcm0iLCJvbWl0IiwiRHJhZ2dhYmxlIiwiY2xzIiwiTnNjTW9kYWwiLCJwcm9wcyIsInNjb3BlIiwicGFyYW1zIiwiYmVmb3JlUmVuZGVyIiwiY2FsbGJhY2tCZWZvcmVDbG9zZSIsImNhbGxiYWNrIiwiYWZ0ZXJSZW5kZXIiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJfdGhpcyIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJ0eXBlIiwic2V0U3RhdGUiLCJtb2RhbFR5cGUiLCJtb2RhbCIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50Iiwic3RhdGUiLCJ2aXNpYmxlIiwiZXhwYW5kIiwiYm91bmRzIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwiZHJhZ2dlciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9wdGlvbiIsInJldHVyblZhbHVlIiwicmVzdWx0IiwiYnV0dG9uQ2xvc2UiLCJmb3JtRXhwYW5kIiwib25DYW5jZWwiLCJvbkJ1dHRvbkNhbmNlbCIsIm9uQ2xvc2UiLCJ2YWxpZCIsImNoYW5nZSIsIm9uT2siLCJrZXkiLCJfZXZlbnQiLCJ1aURhdGEiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwiY2xpZW50SGVpZ2h0IiwidGFyZ2V0UmVjdCIsImRyYWdnbGVSZWYiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwieCIsInkiLCJjbG9zYWJsZSIsIm9rQnV0dG9uUHJvcHMiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm1vdW50RWxlbWVudElkIiwiZ2V0Q29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJkcmFnYWJsZSIsIm1vZGFsUmVuZGVyIiwiZXZlbnQiLCJvblN0YXJ0IiwidGl0bGUiLCJjbG9zZSIsIm1hcmdpblJpZ2h0IiwibW9kYWxCdXR0b24iLCJmb290ZXIiLCJva1RleHQiLCJiaW5kIiwiY2FuY2xlQnV0dG9uUHJvcHMiLCJjYW5jZWxUZXh0Iiwic3R5bGUiLCJtYXhXaWR0aCIsImNsYXNzTmFtZSIsIndpZHRoIiwib2xkUHJvcHMiLCJuZXdEcmF3ZXJQcm9wcyIsImluZm8iLCJzdWNjZXNzIiwiZXJyb3IiLCJ3YXJuaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsU0FBaEIsRUFBMkJDLGFBQTNCLFFBQTJELE9BQTNEO0FBRUEsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FDRUMsa0JBREYsRUFFRUMsbUJBRkYsRUFHRUMsYUFIRixFQUlFQyxjQUpGLEVBS0VDLGdCQUxGLFFBTU8sbUJBTlA7QUFPQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBRUEsT0FBT0MsU0FBUCxNQUFzQixpQkFBdEI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCOztJQWNxQkMsUTs7Ozs7QUFFbkI7QUFLQTtBQUdBLG9CQUFZQyxLQUFaLEVBQW1C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VUFBVSxFQUFFLElBVGQ7QUFVRSxVQUFBLFFBQVEsRUFBRSxJQVZaLENBV0U7O0FBWEYsV0FZTXJFLEtBWk47QUFhRSxVQUFBLFVBQVUsRUFBRSxzQkFBTTtBQUNoQixZQUFBLE1BQUksQ0FBQ2UsUUFBTCxDQUFjO0FBQ1pRLGNBQUFBLE1BQU0sRUFBRTtBQURJLGFBQWQ7QUFHRDtBQWpCSCxXQURGO0FBcUJEO0FBQ0Y7Ozs7RUFwVW1DeEMsYTs7Z0JBQWpCZ0IsUSxhQUNGSixPOztnQkFERUksUSxVQUdMLE9BQU1vRixJOztnQkFIRHBGLFEsYUFJRixPQUFNcUYsTzs7Z0JBSkpyRixRLFdBS0osT0FBTXNGLEs7O2dCQUxGdEYsUSxhQU1GLE9BQU11RixPOztTQU5KdkYsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVSZWYsIFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBNb2RhbCwgTW9kYWxQcm9wcywgRHJhd2VyLCBEcmF3ZXJQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHtcclxuICBQbHVzQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VDaXJjbGVPdXRsaW5lZCxcclxuICBDbG9zZU91dGxpbmVkLFxyXG4gIEV4cGFuZE91dGxpbmVkLFxyXG4gIENvbXByZXNzT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBDb25maXJtIGZyb20gXCIuL0NvbmZpcm1cIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHR5cGUgeyBEcmFnZ2FibGVEYXRhLCBEcmFnZ2FibGVFdmVudCB9IGZyb20gXCJyZWFjdC1kcmFnZ2FibGVcIjtcclxuaW1wb3J0IERyYWdnYWJsZSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuXHJcbmludGVyZmFjZSBmb3JtRXhwYW5kIHtcclxuICBjaGFuZ2U/OiBib29sZWFuO1xyXG4gIHZhbGlkPzogYm9vbGVhbjtcclxuICBleHBhbmQ/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgTnNjTW9kYWxQb3JwcyBleHRlbmRzIE1vZGFsUHJvcHMsIERyYXdlclByb3BzIHtcclxuICB0eXBlPzogXCJtb2RhbFwiIHwgXCJkcmF3ZXJcIiB8IFwiYXV0b1wiO1xyXG4gIGZvcm1FeHBhbmQ/OiBmb3JtRXhwYW5kO1xyXG4gIG9uQnV0dG9uQ2FuY2VsPzogYW55OyAvL+W6lemDqOWPlua2iOaMiemSruWbnuiwg1xyXG4gIGRyYWdhYmxlPzogYm9vbGVhbjsgLy/lvLnmoYbmmK/lkKbnnIvmi5bliqhcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjTW9kYWwgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5zY01vZGFsUG9ycHMsIGFueT4ge1xyXG4gIHN0YXRpYyBjb25maXJtID0gQ29uZmlybTtcclxuICAvLyBzdGF0aWMgY29uZmlybSA9IE1vZGFsLmNvbmZpcm07XHJcbiAgc3RhdGljIGluZm8gPSBNb2RhbC5pbmZvO1xyXG4gIHN0YXRpYyBzdWNjZXNzID0gTW9kYWwuc3VjY2VzcztcclxuICBzdGF0aWMgZXJyb3IgPSBNb2RhbC5lcnJvcjtcclxuICBzdGF0aWMgd2FybmluZyA9IE1vZGFsLndhcm5pbmc7XHJcbiAgLy/ov5Tlm57lgLxcclxuICByZXR1cm5WYWx1ZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgbW9kYWwgPSBwcm9wcy50eXBlIHx8IFwiYXV0b1wiO1xyXG4gICAgbGV0IHN0b3JlUHJlZml4ID0gZ2V0U3RvcmFnZShcInN0b3JlLXByZS1rZXlcIik7XHJcbiAgICBsZXQgYXV0b1R5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCJmb3JtVHlwZVwiIDogXCJmb3JtVHlwZVwiXHJcbiAgICApO1xyXG4gICAgYXV0b1R5cGUgPSBhdXRvVHlwZT8uY29udGVudDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBtb2RhbFR5cGU6IG1vZGFsID09IFwiYXV0b1wiID8gYXV0b1R5cGUgOiBtb2RhbCxcclxuICAgICAgYm91bmRzOiB7IGxlZnQ6IDAsIHRvcDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9LFxyXG4gICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZHJhZ2dsZVJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuXHJcbiAgb3B0aW9uOiBhbnkgPSB7XHJcbiAgICAvL+Wbnuiwg+S9nOeUqOWfn1xyXG4gICAgc2NvcGU6IHRoaXMsXHJcbiAgICAvL29wZW7kvKDpgJLov4fmnaXnmoTpobXpnaLlj4LmlbBcclxuICAgIHBhcmFtczoge30sXHJcbiAgICAvL+aYvuekuuS5i+WJjeWbnuiwg1xyXG4gICAgYmVmb3JlUmVuZGVyOiBudWxsLFxyXG4gICAgLy/lhbPpl63kuYvliY3lm57osIPvvIzlpoLmnpxyZXR1cm4gZmFsc2XvvIzkuJTnqpflj6PkuI3lhbPpl61cclxuICAgIGNhbGxiYWNrQmVmb3JlQ2xvc2U6IG51bGwsXHJcbiAgICAvL+WFs+mXreWQjuWbnuiwg++8jOW8guatpeaTjeS9nFxyXG4gICAgY2FsbGJhY2s6IG51bGwsXHJcbiAgICAvL+aYvuekuuS5i+WQjuWbnuiwg1xyXG4gICAgYWZ0ZXJSZW5kZXI6IG51bGwsXHJcbiAgfTtcclxuICAvKipcclxuICAgKiDmuLLmn5PlrozmiJBcclxuICAgKiBAcGFyYW0geyp9IG9wdGlvbiAg5pW05pS55Lyg6YCS5a+56LGhXHJcbiAgICovXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZXYuZGF0YSkgOiBldi5kYXRhO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZUZvcm1UeXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC50eXBlID09IFwibW9kYWxcIiB8fCBwYXlsb2FkLnR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgbW9kYWxUeXBlOiBwYXlsb2FkLnR5cGUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIC8v5pi+56S6XHJcbiAgc2hvdyhvcHRpb246IGFueSA9IHt9KSB7XHJcbiAgICBjb25zdCB7IHNjb3BlIH0gPSB0aGlzLm9wdGlvbjtcclxuICAgIGNvbnN0IHsgYmVmb3JlUmVuZGVyLCBhZnRlclJlbmRlciB9ID0gb3B0aW9uO1xyXG4gICAgdGhpcy5vcHRpb24gPSB7IC4uLnRoaXMub3B0aW9uLCAuLi5vcHRpb24gfTtcclxuICAgIHV0aWxzLmNhbGxiYWNrKGJlZm9yZVJlbmRlciwgc2NvcGUpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IHRydWUgfSwgKCkgPT4ge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhhZnRlclJlbmRlciwgc2NvcGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL+makOiXj1xyXG4gIGhpZGUob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvL+iOt+WPlumcgOimgei/lOWbnueahOWAvFxyXG4gIGdldFJldHVyblZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmV0dXJuVmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlhbPpl63luKblm57osINcclxuICAgKi9cclxuICBjbG9zZShyZXN1bHQ/OiBhbnksIGJ1dHRvbkNsb3NlID0gZmFsc2UpIHtcclxuICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcbiAgICAvLyBjb25zdCB7IGNhbGxiYWNrLCBzY29wZSwgY2FsbGJhY2tCZWZvcmVDbG9zZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGZvcm1FeHBhbmQgPSB7fSwgb25DYW5jZWwsIG9uQnV0dG9uQ2FuY2VsLCBvbkNsb3NlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgLy8gY29uc3QgciA9IHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrQmVmb3JlQ2xvc2UsIHNjb3BlLCBbdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gICAgLy8gaWYgKHIgIT09IGZhbHNlKSB7XHJcbiAgICBjb25zdCB7IGV4cGFuZCA9IGZhbHNlIH0gPSBmb3JtRXhwYW5kO1xyXG4gICAgaWYgKGV4cGFuZCAmJiBmb3JtRXhwYW5kLnZhbGlkICYmIGZvcm1FeHBhbmQuY2hhbmdlKSB7XHJcbiAgICAgIENvbmZpcm0oe1xyXG4gICAgICAgIGNvbnRlbnQ6IFwi5b2T5YmN6K6w5b2V5bey5L+u5pS55bCa5pyq5L+d5a2Y77yM56Gu5a6a6KaB5pS+5byD5L+u5pS55ZCX77yfXCIsXHJcbiAgICAgICAgb25PaygpIHtcclxuICAgICAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgICAgIG9uQnV0dG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgICAgICBvbkNsb3NlICYmIG9uQ2xvc2UocmVzdWx0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiBmYWxzZSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvbkNhbmNlbCB8fCBvbkNsb3NlKSB7XHJcbiAgICAgICAgaWYgKGJ1dHRvbkNsb3NlICYmIG9uQnV0dG9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvbkNhbmNlbCAmJiBvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIHV0aWxzLmNhbGxiYWNrKGNhbGxiYWNrLCBzY29wZSwgW190aGlzLnJldHVyblZhbHVlXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blj4LmlbDvvIzlpoLmnpxrZXnkuI3kvKDpgJLvvIzkuJTojrflj5blhajpg6hcclxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5XHJcbiAgICovXHJcbiAgZ2V0UGFyYW1zKGtleSkge1xyXG4gICAgaWYgKGtleSkgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtc1trZXldO1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uLnBhcmFtcztcclxuICB9XHJcbiAgb25TdGFydChfZXZlbnQ6IERyYWdnYWJsZUV2ZW50LCB1aURhdGE6IERyYWdnYWJsZURhdGEpIHtcclxuICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgIGNvbnN0IHRhcmdldFJlY3QgPSB0aGlzLmRyYWdnbGVSZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBpZiAoIXRhcmdldFJlY3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGJvdW5kczoge1xyXG4gICAgICAgIGxlZnQ6IC10YXJnZXRSZWN0LmxlZnQgKyB1aURhdGEueCxcclxuICAgICAgICByaWdodDogY2xpZW50V2lkdGggLSAodGFyZ2V0UmVjdC5yaWdodCAtIHVpRGF0YS54KSxcclxuICAgICAgICB0b3A6IC10YXJnZXRSZWN0LnRvcCArIHVpRGF0YS55LFxyXG4gICAgICAgIGJvdHRvbTogY2xpZW50SGVpZ2h0IC0gKHRhcmdldFJlY3QuYm90dG9tIC0gdWlEYXRhLnkpLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHR5cGUgPSBcIm1vZGFsXCIsXHJcbiAgICAgIGNsb3NhYmxlLFxyXG4gICAgICAvLyB0aXRsZTogb3JndGl0bGUsXHJcbiAgICAgIG9rQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgY2FuY2VsQnV0dG9uUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybUV4cGFuZCA9IHt9LFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzOiBhbnkgPSB7IC4uLnBhcmFtcyB9O1xyXG4gICAgbGV0IHsgbW91bnRFbGVtZW50SWQgfSA9IGNvbmZpZygpO1xyXG4gICAgaWYgKG1vdW50RWxlbWVudElkKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGdldENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLmRyYWdhYmxlIHx8IHR5cGUgPT0gXCJtb2RhbFwiKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIG1vZGFsUmVuZGVyOiAobW9kYWwpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxEcmFnZ2FibGVcclxuICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5kcmFnZ2VyfVxyXG4gICAgICAgICAgICAgIGJvdW5kcz17dGhpcy5zdGF0ZS5ib3VuZHN9XHJcbiAgICAgICAgICAgICAgb25TdGFydD17KGV2ZW50LCB1aURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25TdGFydChldmVudCwgdWlEYXRhKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiByZWY9e3RoaXMuZHJhZ2dsZVJlZn0+e21vZGFsfTwvZGl2PlxyXG4gICAgICAgICAgICA8L0RyYWdnYWJsZT5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0aXRsZSA9IChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRpdGxlXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGl0bGUtZHJhZ2dlclwiKV06XHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZHJhZ2FibGUgJiYgdHlwZSA9PSBcIm1vZGFsXCIsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgb25Nb3VzZU92ZXI9eygpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmRyYWdnZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZHJhZ2dlcjogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH19XHJcbiAgICAgICAgb25Nb3VzZU91dD17KCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRyYWdnZXI6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25zXCIpfT5cclxuICAgICAgICAgIHshdGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxFeHBhbmRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Q29tcHJlc3NPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7Y2xvc2FibGUgIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5SaWdodDogMCB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENsb3NlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0aXRsZS1jb250ZW50XCIpfT5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCB7IG1vZGFsQnV0dG9uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZvb3RlclwiKX0+XHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBwcm9wcy5vbk9rICYmIHByb3BzLm9uT2soKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBpY29uPXs8UGx1c0NpcmNsZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgey4uLm1vZGFsQnV0dG9uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4ub2tCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5va1RleHQgPyB0aGlzLnByb3BzLm9rVGV4dCA6IFwi5L+d5a2YXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcblxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2UuYmluZCh0aGlzLCB7fSwgdHJ1ZSl9XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgICBpY29uPXs8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5jYW5jbGVCdXR0b25Qcm9wc31cclxuICAgICAgICAgIHsuLi5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5jYW5jZWxUZXh0ID8gdGhpcy5wcm9wcy5jYW5jZWxUZXh0IDogXCLlj5bmtohcIn1cclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgaWYgKGZvcm1FeHBhbmQuZXhwYW5kKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGZvb3RlcjogZm9vdGVyLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgICAgc3R5bGU6IHsgbWF4V2lkdGg6IFwiMTAwdndcIiB9LFxyXG4gICAgICAgIGNsYXNzTmFtZTogdGhpcy5zdGF0ZS5leHBhbmQgPyBnZXRMZXNzKHN0eWxlcywgXCJhbGxzcmVlblwiKSA6IFwiXCIsXHJcbiAgICAgICAgd2lkdGg6IHRoaXMuc3RhdGUuZXhwYW5kID8gXCIxMDB2d1wiIDogcHJvcHMud2lkdGgsXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc3RhdGUubW9kYWxUeXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgbGV0IG9sZFByb3BzID0geyAuLi5wcm9wcyB9O1xyXG4gICAgICBsZXQgbmV3RHJhd2VyUHJvcHMgPSBvbWl0KG9sZFByb3BzLCBbXCJvbk9rXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPERyYXdlclxyXG4gICAgICAgICAgdmlzaWJsZT17dGhpcy5zdGF0ZS52aXNpYmxlfVxyXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgey4uLm5ld0RyYXdlclByb3BzfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxNb2RhbFxyXG4gICAgICAgICAgdmlzaWJsZT17dGhpcy5zdGF0ZS52aXNpYmxlfVxyXG4gICAgICAgICAgb25DYW5jZWw9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9uT2s9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9rVGV4dD17XCLnoa7lrppcIn1cclxuICAgICAgICAgIGNhbmNlbFRleHQ9e1wi5Y+W5raIXCJ9XHJcbiAgICAgICAgICBjZW50ZXJlZD17dHJ1ZX1cclxuICAgICAgICAgIC8vIHRpdGxlPXtmb3JtRXhwYW5kID8gdGl0bGUgOiB0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgYWZ0ZXJDbG9zZT17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
440
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvbW9kYWwvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiY3JlYXRlUmVmIiwiUHVyZUNvbXBvbmVudCIsInV0aWxzIiwiY29uZmlnIiwiUGx1c0NpcmNsZU91dGxpbmVkIiwiQ2xvc2VDaXJjbGVPdXRsaW5lZCIsIkNsb3NlT3V0bGluZWQiLCJFeHBhbmRPdXRsaW5lZCIsIkNvbXByZXNzT3V0bGluZWQiLCJCdXR0b24iLCJnZXRMZXNzIiwic3R5bGVzIiwiZ2V0U3RvcmFnZSIsIkNvbmZpcm0iLCJvbWl0IiwiRHJhZ2dhYmxlIiwiY2xzIiwiTnNjTW9kYWwiLCJwcm9wcyIsInNjb3BlIiwicGFyYW1zIiwiYmVmb3JlUmVuZGVyIiwiY2FsbGJhY2tCZWZvcmVDbG9zZSIsImNhbGxiYWNrIiwiYWZ0ZXJSZW5kZXIiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJfdGhpcyIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJ0eXBlIiwic2V0U3RhdGUiLCJtb2RhbFR5cGUiLCJtb2RhbCIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50Iiwic3RhdGUiLCJ2aXNpYmxlIiwiZXhwYW5kIiwiYm91bmRzIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwiZHJhZ2dlciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9wdGlvbiIsInJldHVyblZhbHVlIiwicmVzdWx0IiwiYnV0dG9uQ2xvc2UiLCJmb3JtRXhwYW5kIiwib25DYW5jZWwiLCJvbkJ1dHRvbkNhbmNlbCIsIm9uQ2xvc2UiLCJ2YWxpZCIsImNoYW5nZSIsIm9uT2siLCJrZXkiLCJfZXZlbnQiLCJ1aURhdGEiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwiY2xpZW50SGVpZ2h0IiwidGFyZ2V0UmVjdCIsImRyYWdnbGVSZWYiLCJjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwieCIsInkiLCJjbG9zYWJsZSIsIm9rQnV0dG9uUHJvcHMiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm1vdW50RWxlbWVudElkIiwiZ2V0Q29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJkcmFnYWJsZSIsIm1vZGFsUmVuZGVyIiwiZXZlbnQiLCJvblN0YXJ0IiwidGl0bGUiLCJjbG9zZSIsIm1hcmdpblJpZ2h0IiwibW9kYWxCdXR0b24iLCJmb290ZXIiLCJva1RleHQiLCJiaW5kIiwiY2FuY2xlQnV0dG9uUHJvcHMiLCJjYW5jZWxUZXh0Iiwic3R5bGUiLCJtYXhXaWR0aCIsImNsYXNzTmFtZSIsIndpZHRoIiwib2xkUHJvcHMiLCJuZXdEcmF3ZXJQcm9wcyIsImluZm8iLCJzdWNjZXNzIiwiZXJyb3IiLCJ3YXJuaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsU0FBaEIsRUFBMkJDLGFBQTNCLFFBQTJELE9BQTNEO0FBRUEsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FDRUMsa0JBREYsRUFFRUMsbUJBRkYsRUFHRUMsYUFIRixFQUlFQyxjQUpGLEVBS0VDLGdCQUxGLFFBTU8sbUJBTlA7QUFPQSxPQUFPQyxNQUFQLE1BQW1CLFdBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsV0FBcEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBRUEsT0FBT0MsU0FBUCxNQUFzQixpQkFBdEI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCOztJQWNxQkMsUTs7Ozs7QUFFbkI7QUFLQTtBQUdBLG9CQUFZQyxLQUFaLEVBQW1C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VUFBVSxFQUFFLElBVGQ7QUFVRSxVQUFBLFFBQVEsRUFBRSxJQVZaLENBV0U7O0FBWEYsV0FZTXJFLEtBWk47QUFhRSxVQUFBLFVBQVUsRUFBRSxzQkFBTTtBQUNoQixZQUFBLE1BQUksQ0FBQ2UsUUFBTCxDQUFjO0FBQ1pRLGNBQUFBLE1BQU0sRUFBRTtBQURJLGFBQWQ7QUFHRCxXQWpCSDtBQWtCRSxVQUFBLFNBQVMsRUFBRS9CLE9BQU8sQ0FBQ0MsTUFBRCxFQUFRLFdBQVI7QUFsQnBCLFdBREY7QUFzQkQ7QUFDRjs7OztFQXJVbUNWLGE7O2dCQUFqQmdCLFEsYUFDRkosTzs7Z0JBREVJLFEsVUFHTCxPQUFNb0YsSTs7Z0JBSERwRixRLGFBSUYsT0FBTXFGLE87O2dCQUpKckYsUSxXQUtKLE9BQU1zRixLOztnQkFMRnRGLFEsYUFNRixPQUFNdUYsTzs7U0FOSnZGLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlUmVmLCBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwsIE1vZGFsUHJvcHMsIERyYXdlciwgRHJhd2VyUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7XHJcbiAgUGx1c0NpcmNsZU91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VPdXRsaW5lZCxcclxuICBFeHBhbmRPdXRsaW5lZCxcclxuICBDb21wcmVzc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgQ29uZmlybSBmcm9tIFwiLi9Db25maXJtXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlRGF0YSwgRHJhZ2dhYmxlRXZlbnQgfSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcblxyXG5pbnRlcmZhY2UgZm9ybUV4cGFuZCB7XHJcbiAgY2hhbmdlPzogYm9vbGVhbjtcclxuICB2YWxpZD86IGJvb2xlYW47XHJcbiAgZXhwYW5kPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE5zY01vZGFsUG9ycHMgZXh0ZW5kcyBNb2RhbFByb3BzLCBEcmF3ZXJQcm9wcyB7XHJcbiAgdHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBmb3JtRXhwYW5kPzogZm9ybUV4cGFuZDtcclxuICBvbkJ1dHRvbkNhbmNlbD86IGFueTsgLy/lupXpg6jlj5bmtojmjInpkq7lm57osINcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8v5by55qGG5piv5ZCm55yL5ouW5YqoXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY01vZGFsIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOc2NNb2RhbFBvcnBzLCBhbnk+IHtcclxuICBzdGF0aWMgY29uZmlybSA9IENvbmZpcm07XHJcbiAgLy8gc3RhdGljIGNvbmZpcm0gPSBNb2RhbC5jb25maXJtO1xyXG4gIHN0YXRpYyBpbmZvID0gTW9kYWwuaW5mbztcclxuICBzdGF0aWMgc3VjY2VzcyA9IE1vZGFsLnN1Y2Nlc3M7XHJcbiAgc3RhdGljIGVycm9yID0gTW9kYWwuZXJyb3I7XHJcbiAgc3RhdGljIHdhcm5pbmcgPSBNb2RhbC53YXJuaW5nO1xyXG4gIC8v6L+U5Zue5YC8XHJcbiAgcmV0dXJuVmFsdWUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IG1vZGFsID0gcHJvcHMudHlwZSB8fCBcImF1dG9cIjtcclxuICAgIGxldCBzdG9yZVByZWZpeCA9IGdldFN0b3JhZ2UoXCJzdG9yZS1wcmUta2V5XCIpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGU/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgbW9kYWxUeXBlOiBtb2RhbCA9PSBcImF1dG9cIiA/IGF1dG9UeXBlIDogbW9kYWwsXHJcbiAgICAgIGJvdW5kczogeyBsZWZ0OiAwLCB0b3A6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAgfSxcclxuICAgICAgZHJhZ2dlcjogdHJ1ZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGRyYWdnbGVSZWYgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcblxyXG4gIG9wdGlvbjogYW55ID0ge1xyXG4gICAgLy/lm57osIPkvZznlKjln59cclxuICAgIHNjb3BlOiB0aGlzLFxyXG4gICAgLy9vcGVu5Lyg6YCS6L+H5p2l55qE6aG16Z2i5Y+C5pWwXHJcbiAgICBwYXJhbXM6IHt9LFxyXG4gICAgLy/mmL7npLrkuYvliY3lm57osINcclxuICAgIGJlZm9yZVJlbmRlcjogbnVsbCxcclxuICAgIC8v5YWz6Zet5LmL5YmN5Zue6LCD77yM5aaC5p6ccmV0dXJuIGZhbHNl77yM5LiU56qX5Y+j5LiN5YWz6ZetXHJcbiAgICBjYWxsYmFja0JlZm9yZUNsb3NlOiBudWxsLFxyXG4gICAgLy/lhbPpl63lkI7lm57osIPvvIzlvILmraXmk43kvZxcclxuICAgIGNhbGxiYWNrOiBudWxsLFxyXG4gICAgLy/mmL7npLrkuYvlkI7lm57osINcclxuICAgIGFmdGVyUmVuZGVyOiBudWxsLFxyXG4gIH07XHJcbiAgLyoqXHJcbiAgICog5riy5p+T5a6M5oiQXHJcbiAgICogQHBhcmFtIHsqfSBvcHRpb24gIOaVtOaUueS8oOmAkuWvueixoVxyXG4gICAqL1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLmxpc3Rlbk1lc3NhZ2UpO1xyXG4gIH1cclxuICBsaXN0ZW5NZXNzYWdlID0gKGV2KSA9PiB7XHJcbiAgICBjb25zdCBkYXRhID0gdHlwZW9mIGV2LmRhdGEgPT09IFwic3RyaW5nXCIgPyBKU09OLnBhcnNlKGV2LmRhdGEpIDogZXYuZGF0YTtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBpZiAoZGF0YS5ldmVudFR5cGUgPT0gXCJjaGFuZ2VGb3JtVHlwZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKHBheWxvYWQudHlwZSA9PSBcIm1vZGFsXCIgfHwgcGF5bG9hZC50eXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG1vZGFsVHlwZTogcGF5bG9hZC50eXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICAvL+aYvuekulxyXG4gIHNob3cob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgY29uc3QgeyBzY29wZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGJlZm9yZVJlbmRlciwgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgIHRoaXMub3B0aW9uID0geyAuLi50aGlzLm9wdGlvbiwgLi4ub3B0aW9uIH07XHJcbiAgICB1dGlscy5jYWxsYmFjayhiZWZvcmVSZW5kZXIsIHNjb3BlKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiB0cnVlIH0sICgpID0+IHtcclxuICAgICAgdXRpbHMuY2FsbGJhY2soYWZ0ZXJSZW5kZXIsIHNjb3BlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/pmpDol49cclxuICBoaWRlKG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bpnIDopoHov5Tlm57nmoTlgLxcclxuICBnZXRSZXR1cm5WYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJldHVyblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YWz6Zet5bim5Zue6LCDXHJcbiAgICovXHJcbiAgY2xvc2UocmVzdWx0PzogYW55LCBidXR0b25DbG9zZSA9IGZhbHNlKSB7XHJcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgLy8gY29uc3QgeyBjYWxsYmFjaywgc2NvcGUsIGNhbGxiYWNrQmVmb3JlQ2xvc2UgfSA9IHRoaXMub3B0aW9uO1xyXG4gICAgY29uc3QgeyBmb3JtRXhwYW5kID0ge30sIG9uQ2FuY2VsLCBvbkJ1dHRvbkNhbmNlbCwgb25DbG9zZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIGNvbnN0IHIgPSB1dGlscy5jYWxsYmFjayhjYWxsYmFja0JlZm9yZUNsb3NlLCBzY29wZSwgW3RoaXMucmV0dXJuVmFsdWVdKTtcclxuICAgIC8vIGlmIChyICE9PSBmYWxzZSkge1xyXG4gICAgY29uc3QgeyBleHBhbmQgPSBmYWxzZSB9ID0gZm9ybUV4cGFuZDtcclxuICAgIGlmIChleHBhbmQgJiYgZm9ybUV4cGFuZC52YWxpZCAmJiBmb3JtRXhwYW5kLmNoYW5nZSkge1xyXG4gICAgICBDb25maXJtKHtcclxuICAgICAgICBjb250ZW50OiBcIuW9k+WJjeiusOW9leW3suS/ruaUueWwmuacquS/neWtmO+8jOehruWumuimgeaUvuW8g+S/ruaUueWQl++8n1wiLFxyXG4gICAgICAgIG9uT2soKSB7XHJcbiAgICAgICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgICAgICBpZiAoYnV0dG9uQ2xvc2UgJiYgb25CdXR0b25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9uQ2FuY2VsICYmIG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgb25CdXR0b25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgIG9uQ2xvc2UgJiYgb25DbG9zZShyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyB1dGlscy5jYWxsYmFjayhjYWxsYmFjaywgc2NvcGUsIFtfdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5Y+C5pWw77yM5aaC5p6ca2V55LiN5Lyg6YCS77yM5LiU6I635Y+W5YWo6YOoXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleVxyXG4gICAqL1xyXG4gIGdldFBhcmFtcyhrZXkpIHtcclxuICAgIGlmIChrZXkpIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXNba2V5XTtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXM7XHJcbiAgfVxyXG4gIG9uU3RhcnQoX2V2ZW50OiBEcmFnZ2FibGVFdmVudCwgdWlEYXRhOiBEcmFnZ2FibGVEYXRhKSB7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGhpcy5kcmFnZ2xlUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKCF0YXJnZXRSZWN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBib3VuZHM6IHtcclxuICAgICAgICBsZWZ0OiAtdGFyZ2V0UmVjdC5sZWZ0ICsgdWlEYXRhLngsXHJcbiAgICAgICAgcmlnaHQ6IGNsaWVudFdpZHRoIC0gKHRhcmdldFJlY3QucmlnaHQgLSB1aURhdGEueCksXHJcbiAgICAgICAgdG9wOiAtdGFyZ2V0UmVjdC50b3AgKyB1aURhdGEueSxcclxuICAgICAgICBib3R0b206IGNsaWVudEhlaWdodCAtICh0YXJnZXRSZWN0LmJvdHRvbSAtIHVpRGF0YS55KSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICB0eXBlID0gXCJtb2RhbFwiLFxyXG4gICAgICBjbG9zYWJsZSxcclxuICAgICAgLy8gdGl0bGU6IG9yZ3RpdGxlLFxyXG4gICAgICBva0J1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGNhbmNlbEJ1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGZvcm1FeHBhbmQgPSB7fSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBwcm9wczogYW55ID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGxldCB7IG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vdW50RWxlbWVudElkKSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5kcmFnYWJsZSB8fCB0eXBlID09IFwibW9kYWxcIikge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBtb2RhbFJlbmRlcjogKG1vZGFsKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZHJhZ2dlcn1cclxuICAgICAgICAgICAgICBib3VuZHM9e3RoaXMuc3RhdGUuYm91bmRzfVxyXG4gICAgICAgICAgICAgIG9uU3RhcnQ9eyhldmVudCwgdWlEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhcnQoZXZlbnQsIHVpRGF0YSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXt0aGlzLmRyYWdnbGVSZWZ9Pnttb2RhbH08L2Rpdj5cclxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0aXRsZVwiKSwge1xyXG4gICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRpdGxlLWRyYWdnZXJcIildOlxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRyYWdnZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VPdXQ9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uc1wiKX0+XHJcbiAgICAgICAgICB7IXRoaXMuc3RhdGUuZXhwYW5kICYmIGZvcm1FeHBhbmQuZXhwYW5kICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBleHBhbmQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8RXhwYW5kT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kICYmIGZvcm1FeHBhbmQuZXhwYW5kICYmIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBleHBhbmQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENvbXByZXNzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Nsb3NhYmxlICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9XHJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luUmlnaHQ6IDAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxDbG9zZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGl0bGUtY29udGVudFwiKX0+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgY29uc3QgeyBtb2RhbEJ1dHRvbiB9ID0gY29uZmlnKCk7XHJcbiAgICBjb25zdCBmb290ZXIgPSAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJmb290ZXJcIil9PlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgcHJvcHMub25PayAmJiBwcm9wcy5vbk9rKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5va0J1dHRvblByb3BzfVxyXG4gICAgICAgICAgey4uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMub2tUZXh0ID8gdGhpcy5wcm9wcy5va1RleHQgOiBcIuS/neWtmFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG5cclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmNsb3NlLmJpbmQodGhpcywge30sIHRydWUpfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJidXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgICAgaWNvbj17PENsb3NlQ2lyY2xlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICB7Li4ubW9kYWxCdXR0b24uY2FuY2xlQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4uY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3RoaXMucHJvcHMuY2FuY2VsVGV4dCA/IHRoaXMucHJvcHMuY2FuY2VsVGV4dCA6IFwi5Y+W5raIXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGlmIChmb3JtRXhwYW5kLmV4cGFuZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICAgIHN0eWxlOiB7IG1heFdpZHRoOiBcIjEwMHZ3XCIgfSxcclxuICAgICAgICBjbGFzc05hbWU6IHRoaXMuc3RhdGUuZXhwYW5kID8gZ2V0TGVzcyhzdHlsZXMsIFwiYWxsc3JlZW5cIikgOiBcIlwiLFxyXG4gICAgICAgIHdpZHRoOiB0aGlzLnN0YXRlLmV4cGFuZCA/IFwiMTAwdndcIiA6IHByb3BzLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvcHMgPSB7XHJcbiAgICAgICAgZm9vdGVyOiBmb290ZXIsXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICAgIGNsb3NhYmxlOiBmYWxzZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnN0YXRlLm1vZGFsVHlwZSA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgIGxldCBvbGRQcm9wcyA9IHsgLi4ucHJvcHMgfTtcclxuICAgICAgbGV0IG5ld0RyYXdlclByb3BzID0gb21pdChvbGRQcm9wcywgW1wib25Pa1wiLCBcIm9rQnV0dG9uUHJvcHNcIl0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxEcmF3ZXJcclxuICAgICAgICAgIHZpc2libGU9e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIHsuLi5uZXdEcmF3ZXJQcm9wc31cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8TW9kYWxcclxuICAgICAgICAgIHZpc2libGU9e3RoaXMuc3RhdGUudmlzaWJsZX1cclxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBvbk9rPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBva1RleHQ9e1wi56Gu5a6aXCJ9XHJcbiAgICAgICAgICBjYW5jZWxUZXh0PXtcIuWPlua2iFwifVxyXG4gICAgICAgICAgY2VudGVyZWQ9e3RydWV9XHJcbiAgICAgICAgICAvLyB0aXRsZT17Zm9ybUV4cGFuZCA/IHRpdGxlIDogdGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGFmdGVyQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywnbnNjLW1vZGFsJyl9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
display: flex;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
.title-dragger{
|
|
31
|
+
.title-dragger {
|
|
32
32
|
cursor: move;
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -42,3 +42,14 @@
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
+
|
|
46
|
+
.nsc-modal {
|
|
47
|
+
:global {
|
|
48
|
+
.ant-modal-content {
|
|
49
|
+
border-radius: 10px;
|
|
50
|
+
}
|
|
51
|
+
.ant-modal-header{
|
|
52
|
+
border-radius: 10px 10px 0 0;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -824,14 +824,14 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
824
824
|
|
|
825
825
|
if (buttons.indexOf("delete") > -1) {
|
|
826
826
|
if (deletePosition == "toolbar") {
|
|
827
|
-
|
|
827
|
+
selfButtons.push( /*#__PURE__*/React.createElement(Button // type={"primary"}
|
|
828
828
|
, {
|
|
829
829
|
onClick: this.onDelete.bind(this),
|
|
830
830
|
icon: /*#__PURE__*/React.createElement(DeleteOutlined, null),
|
|
831
831
|
danger: true
|
|
832
832
|
}, "\u5220\u9664"));
|
|
833
833
|
} else if (deletePosition == "row") {
|
|
834
|
-
|
|
834
|
+
columnButtons.push( /*#__PURE__*/React.createElement(Button // type={"primary"}
|
|
835
835
|
, {
|
|
836
836
|
onClick: function onClick(record) {
|
|
837
837
|
_this4.onDelete(record);
|
|
@@ -1001,4 +1001,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
1001
1001
|
}(PureComponent);
|
|
1002
1002
|
|
|
1003
1003
|
export default BasePage;
|
|
1004
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwidXRpbHMiLCJEb3duT3V0bGluZWQiLCJFeWVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIlJpZ2h0T3V0bGluZWQiLCJQbHVzT3V0bGluZWQiLCJFbGxpcHNpc091dGxpbmVkIiwiRGVsZXRlT3V0bGluZWQiLCJnZXRMZXNzIiwicmVxdWVzdCIsIm9taXQiLCJjb25maWciLCJnZXRTdG9yYWdlIiwiSGVhZGVyU2VhcmNoIiwiQmFzZVBhZ2UiLCJwcm9wcyIsImNyZWF0ZVJlZiIsImNoZWNrZWRUcmVlS2V5cyIsInN0YXRlIiwibmFtZSIsInVzZXJUeXBlIiwiYWNjb3VudCIsInZhbHVlIiwiZGVwdElkIiwib25TZWFyY2giLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsInRyZWVTZWFyY2hQcmFtcyIsImluaXREYXRhIiwicGFyYW1zIiwiY2FsbEJhY2siLCJzZWFyY2hSZWYiLCJjdXJyZW50Iiwic2V0U2VhcmNoUGFyYW1zIiwiZWRpdG9yZmxhZyIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZGF0YSIsImRlbGV0ZVVybCIsIm9uRGVsZXRlIiwiZGVsZXRlUGFyYW1zIiwiZGVsZXRlUG9zaXRpb24iLCJ0YWJsZVJlZiIsImdldFNlbGVjdGVkUm93S2V5cyIsIndhcm5pbmciLCJjb25maXJtIiwib25PayIsIkVycm9yIiwiZGVmYXVsdFBhcmFtcyIsIm1ldGhvZCIsImF1dG9QcmVmaXgiLCJpZHMiLCJqb2luIiwiaWQiLCJyZXF1ZXN0UGFyYW1zIiwidGhlbiIsImNvZGUiLCJzdWNjZXNzIiwidGFibGVMb2FkIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJyZXF1ZXN0Q29uZmlnIiwic3RvcmUiLCJsb2FkIiwib25DYWxsQmFja3MiLCJvblNlYXJjaENhbGxCYWNrIiwiY2FsbGJhY2siLCJhdXRvTG9hZCIsInJlbG9hZCIsInJlY29yZHMiLCJjdXJyZW50UGFnZSIsImdldFNlbGVjdGVkUm93RGF0YXMiLCJyZXNldFNlbGVjdGVkUm93S2V5cyIsImZyb21WYWx1ZSIsImdldFNlYXJjaFZhbHVlcyIsInRhYmxlUHJvcHMiLCJyb3dLZXkiLCJyZXNLZXkiLCJjaGlsZE5vZGVzIiwiY2hpbGRyZW4iLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJnZXRDaGlsZHJlbkRhdGEiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJtYXJnaW5MZWZ0IiwiY29sdW1uQnV0dG9ucyIsInJlY29yZCIsImFjdGlvblBvcnBzIiwiYmFzZUFjdGlvbkNvbHVtbiIsIm5ld0J1dHRvbnMiLCJzaG93SWNvbiIsInJlY29yZFNob3ciLCJldmFsIiwicHVzaCIsInNlbGVjdGVkS2V5cyIsIm9iaiIsImtleXdvcmQiLCJ0cmVlUHJvcHMiLCJzZWFyY2hLZXkiLCJzZWFyY2hGaWVsZCIsInBhcmFudFNlbGVjdCIsInNlbGVjdGVkTm9kZXMiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwic2V0U3RhdGUiLCJpc0xlYWYiLCJvblRyZWVTZWxlY3QiLCJ0cmVlU2VsZWN0Q2FsbEJhY2siLCJyZXNldEZpZWxkcyIsInRleHQiLCJuZXdUZXh0IiwiaSIsImxhYmVsIiwic2V0RGF0YSIsInRyZWVSZWYiLCJjb2x1bW5zIiwic3VibWl0VXJsIiwiZm9ybVByb3BzIiwic2hvd0xlZnQiLCJzdWJtaXRQYXJhbXMiLCJzaG93VG9vbEJ1dHRvbiIsImJ1dHRvbnMiLCJlZGl0b3JGb3JtIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsInRvb2xCdXR0b25Qb3NpdGlvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJjb2x1bW5PcmRlciIsImV4cGFuZGFibGUiLCJvdGhlcnRhYmxlUGFyYW1zIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJvdGhlcnRyZWVQYXJhbXMiLCJ0YWJsZVBhcmFtcyIsInRhYmxlQ29sdW1uIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsImRlZmF1bHRWYWx1ZSIsInRlbXAiLCJzZWFyY2giLCJmaWVsZCIsImRhdGFJbmRleCIsInRpdGxlIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwicnVsZXMiLCJzZWFyY2hSdWxlcyIsImVkaXRvciIsInNwYW4iLCJkaWN0TmFtZSIsInVuZGVmaW5lZCIsImNvbHVtblNlYXJjaCIsImZpbHRlclByb3BzIiwidGVtcFByb3AiLCJzdHlsZSIsInJlbmRlciIsImdldFRleHQiLCJlbGxpcHNpcyIsImNvbHVtblNob3ciLCJzZWxmQnV0dG9ucyIsImluZGV4T2YiLCJzaG93Rm9ybSIsImJpbmQiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZCIsImFsaWduIiwidGV4dEFsaWduIiwid2lkdGgiLCJmaXhlZCIsInJlbmRlckNsb3VtbkJ1dHRvbiIsInJlYWNvcmQiLCJzZWFyY2hGbGFnIiwidG9vbEZsYWciLCJwYWdpbmF0aW9uIiwic2Nyb2xsIiwieCIsInRhYmxlVG9vbCIsInBhZ2VUaXRsZSIsImRpc3BsYXkiLCJ0cmVlU2VsZWN0Iiwib25SZXNldCIsInNlYXJjaEZvcm1Qcm9wcyIsInJlbmRlclRvb2xCdXR0b25zIiwidG9vbGJhciIsInRvb2xzIiwiZXhwYW5kSWNvbiIsImV4cGFuZGVkIiwib25FeHBhbmQiLCJlIiwib25Ub29sQ2xpY2siLCJvblJlZnJlc2giLCJ0YWJsZVJlbG9hZCIsIm9uU3VibWl0Iiwib25IaWRlRm9ybSIsIm9uRm9ybUNoYW5nZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFnRCxPQUFoRDtBQUNBLE9BQU9DLEtBQVAsTUFBa0Isa0JBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixpQkFBakI7QUFFQSxPQUFPQyxNQUFQLE1BQW1CLG1CQUFuQjtBQUNBLE9BQU9DLEtBQVAsTUFBa0Isa0JBQWxCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixvQkFBcEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUdBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFHQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLFNBQ0VDLFlBREYsRUFFRUMsV0FGRixFQUdFQyxZQUhGLEVBSUVDLGFBSkYsRUFLRUMsWUFMRixFQU1FQyxnQkFORixFQU9FQyxjQVBGLFFBUU8sbUJBUlA7QUFTQSxTQUFTQyxPQUFULFFBQWlDLGFBQWpDO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixhQUFwQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsU0FBakI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixtQkFBM0I7QUFFQSxPQUFPQyxZQUFQLE1BQXlCLGlCQUF6Qjs7SUEyRE1DLFE7Ozs7O0FBTUosb0JBQVlDLEtBQVosRUFBd0I7QUFBQTs7QUFBQTs7QUFBQTs7QUFDdEIsOEJBQU1BLEtBQU47O0FBRHNCLDRFQUxiMUIsS0FBSyxDQUFDMkIsU0FBTixFQUthOztBQUFBLDJFQUpk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UUFBQSxZQUFZLEVBQUUsS0FBS2hOLEtBQUwsQ0FBV2lOLFlBVDNCO0FBVUUsUUFBQSxRQUFRLEVBQUUsS0FBS2pOLEtBQUwsQ0FBV3VCLFFBQVgsSUFBdUIsTUFWbkM7QUFXRSxRQUFBLFdBQVcsRUFBRStHLGVBWGY7QUFZRSxRQUFBLFVBQVUsb0JBQU9QLFNBQVA7QUFaWixRQWxHSixDQU5GLENBREY7QUEySEQ7Ozs7RUE5ekJvQnhKLGE7O0FBZzBCdkIsZUFBZXdCLFFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi4vLi4vYmFzZS90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vYmFzZS90cmVlXCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9iYXNlL21vZGFsXCI7XHJcbmltcG9ydCBQb3BvdmVyIGZyb20gXCIuLi8uLi9iYXNlL3BvcG92ZXJcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vLi4vYmFzZS9jb21tb24vSWNvbkZvbnRcIjtcclxuaW1wb3J0IHsgaWNvblR5cGUgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCBFZGl0b3JGb3JtIGZyb20gXCIuL0Zvcm1cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IFJvdyBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL1Jvd1wiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBEb3duT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbiAgRWRpdE91dGxpbmVkLFxyXG4gIFJpZ2h0T3V0bGluZWQsXHJcbiAgUGx1c091dGxpbmVkLFxyXG4gIEVsbGlwc2lzT3V0bGluZWQsXHJcbiAgRGVsZXRlT3V0bGluZWRcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCIuLi8uLi9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgSGVhZGVyU2VhcmNoIGZyb20gXCIuLi9IZWFkZXJTZWFyY2hcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbiAgcGFnaW5hdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65YiG6aG1XHJcbiAgY29sdW1uT3JkZXI/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuihqOagvOW6j+WIl1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgVHJlZVByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pCc57Si5qGGXHJcbiAgc2VhcmNoS2V5Pzogc3RyaW5nOyAvL+aQnOe0onZhbHVl5a+55bqU55qEa2V5XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7IC8v5p+l6K+i5a+55bqU55qEa2V5XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZzsgLy/moJF0aXRsZeWvueW6lOeahGtleSzpu5jorqR0aXRsZVxyXG4gIG5vZGVQb3Jwcz86IG9iamVjdDtcclxuICBwYXJhbnRTZWxlY3Q/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgRm9ybVByb3BzIGV4dGVuZHMgSUZvcm1Qcm9wcyB7fVxyXG5pbnRlcmZhY2UgTlNDQmFzZUJhZ2VQcm9wcyB7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65aS06YOo5pCc57Si5qCPXHJcbiAgdGFibGVQcm9wcz86IFRhYmxlUHJvcHM7IC8v6KGo5qC85Y+C5pWwXHJcbiAgdHJlZVByb3BzPzogVHJlZVByb3BzOyAvL+W3puS+p+agkeWPguaVsFxyXG4gIHN1Ym1pdFBhcmFtcz86IE9iamVjdDsgLy/mt7vliqDlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dkYXRh5Lyg6YCSXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBjb2x1bW5zOiBBcnJheTxPYmplY3Q+O1xyXG4gIHNob3dMZWZ0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlt6bkvqfnm67lvZXmoJFcclxuICBzaG93VG9vbEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65oyJ6ZKu5qCPXHJcbiAgZWRpdG9yRm9ybT86IGJvb2xlYW47IC8v5piv5ZCm6ZyA6KaB6KGo5Y2V5Yqf6IO9ICwg5Li6ZmFsc2Ug57yW6L6R77yM5p+l55yL77yM5paw5aKe5Yqf6IO95Z2H5LiN5Y+v55SoXHJcbiAgZGVsZXRlVXJsPzogc3RyaW5nOyAvL+WIoOmZpHVybFxyXG4gIG9uRGVsZXRlPzogKHNlbGVjdGVkS2V5cz86IEFycmF5PHN0cmluZz4pID0+IHZvaWQ7IC8v5Yig6Zmk5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HaWRz5ou85o6l5Lyg6YCS57uZ5ZCO5Y+wXHJcbiAgZGVsZXRlUG9zaXRpb24/OiBcInRvb2xiYXJcIiB8IFwicm93XCI7XHJcbiAgZGVsZXRlUGFyYW1zPzogT2JqZWN0O1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uU2VhcmNoPzogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xyXG4gIG9uUmVzZXQ/OiAoKSA9PiB2b2lkO1xyXG4gIGluaXREYXRhPzogYW55OyAvL+WIneWni+WMluWbnuiwg+WHveaVsO+8jOWcqGNvbXBvbmVudERpZE1vdW505Lit6LCD55SoXHJcbiAgYnV0dG9ucz86IEFycmF5PHN0cmluZz47IC8v5oyJ6ZKu6ZuG5ZCIICBbJ2FkZCcsJ2RlbGV0ZScsJ3NlYXJjaCcsJ2VkaXRvciddXHJcbiAgb25TaG93Rm9ybT86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkhpZGVGb3JtPzogKCkgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkZvcm1DaGFuZ2U/OiAoY2hhbmdlZFZhbHVlcz86IGFueSwgYWxsVmFsdWVzPzogYW55KSA9PiB2b2lkOyAvL+ihqOWNlW9uQ2hhbmdl5Zue6LCDXHJcbiAgZm9ybVR5cGU/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiO1xyXG4gIGZvcm1DaGFuZ2VWYWxpZD86IGJvb2xlYW47IC8v6KGo5Y2V5qCh6aqMXHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IFwicmlnaHRcIiB8IFwiYnV0dG9tXCI7XHJcbiAgcGFnZVRpdGxlPzogc3RyaW5nIHwgUmVhY3ROb2RlO1xyXG4gIGZvcm1Qcm9wcz86IEZvcm1Qcm9wcztcclxuICBhY3Rpb25Qb3Jwcz86IHsgdGV4dEFsaWduPzogc3RyaW5nOyBzaG93SWNvbj86IGJvb2xlYW47IHdpZHRoPzogbnVtYmVyIH07XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogeyB3cmFwcGVyQ29sPzogYW55OyBsYWJlbENvbD86IGFueSB9O1xyXG4gIG9uVHJlZVNlbGVjdD86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkNhbGxCYWNrcz86IHtcclxuICAgIHRyZWVTZWxlY3RDYWxsQmFjaz86IGFueTtcclxuICAgIG9uU2VhcmNoQ2FsbEJhY2s/OiBhbnk7XHJcbiAgfTtcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZGF0ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wczogYW55KSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgeyBzdG9yZVByZWZpeCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdHlwZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIHR5cGUgPSB0eXBlPy5jb250ZW50O1xyXG4gICAgbGV0IHNpemUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcInRhYmxlU2l6ZVwiIDogXCJ0YWJsZVNpemVcIlxyXG4gICAgKTtcclxuICAgIHNpemUgPSBzaXplPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgZm9ybVR5cGU6IHR5cGUgfHwgXCJtb2RhbFwiLFxyXG4gICAgICB0YWJsZVNpemU6IHNpemUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIHRyZWVTZWFyY2hQcmFtczoge30sXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgaW5pdERhdGEgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpbml0RGF0YSAmJiBpbml0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgY2FsbEJhY2sgJiYgY2FsbEJhY2socGFyYW1zKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25TZWFyY2gpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKGRhdGE/OiBhbnkpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGVsZXRlVXJsLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgZGVsZXRlUGFyYW1zLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBzZWxlY3RlZFJvd0tleXMgPSB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gICAgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICBtZXNzYWdlLndhcm5pbmcoXCLor7fpgInmi6nopoHliKDpmaTnmoTmlbDmja7vvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBNb2RhbC5jb25maXJtKHtcclxuICAgICAgY29udGVudDogXCLmmK/lkKbnoa7orqTliKDpmaTmiYDpgInpobnvvJ9cIixcclxuICAgICAgLy8gY2VudGVyZWQ6dHJ1ZSxcclxuICAgICAgb25PazogKCkgPT4ge1xyXG4gICAgICAgIGlmIChvbkRlbGV0ZSkge1xyXG4gICAgICAgICAgb25EZWxldGUgJiZcclxuICAgICAgICAgICAgb25EZWxldGUoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMgOiBkYXRhKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGlkczogZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMuam9pbigpIDogZGF0YS5pZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoZGVmYXVsdFBhcmFtcykge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVsZXRlUGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlZmF1bHRQYXJhbXMgfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGVMb2FkKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSwgcmVxdWVzdENvbmZpZyA9IHt9KSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLmxvYWQoe1xyXG4gICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+afpeivolxyXG4gIG9uU2VhcmNoKHBhcmFtcykge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCwgb25DYWxsQmFja3MgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goeyAuLi5wYXJhbXMsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh7IC4uLnBhcmFtcywgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfSk7XHJcbiAgICBvbkNhbGxCYWNrcz8ub25TZWFyY2hDYWxsQmFjayAmJlxyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNhbGxCYWNrcz8ub25TZWFyY2hDYWxsQmFjaywgdGhpcywgW3BhcmFtc10pO1xyXG4gIH1cclxuICAvL+ihqOagvOmHjeaWsOWKoOi9vVxyXG4gIHRhYmxlUmVsb2FkKHBhcmFtcyA9IHt9LCBhdXRvTG9hZCA9IHRydWUpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKHtcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBhdXRvTG9hZCAmJlxyXG4gICAgICAgICAgcmVzPy5kYXRhPy5yZWNvcmRzPy5sZW5ndGggPT0gMCAmJlxyXG4gICAgICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50UGFnZSAhPT0gMVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5yZWxvYWQoe1xyXG4gICAgICAgICAgICBwYXJhbXM6IHsgY3VycmVudDogMSwgLi4ucGFyYW1zIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93RGF0YXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0RhdGFzKCk7XHJcbiAgfVxyXG4gIHJlc2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8ucmVzZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgIHJldHVybiB7IC4uLmZyb21WYWx1ZSwgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfTtcclxuICB9XHJcblxyXG4gIGdldENoaWxkcmVuRGF0YShkYXRhLCBrZXlzID0gW10pIHtcclxuICAgIGNvbnN0IHsgdGFibGVQcm9wcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgcm93S2V5ID0gXCJpZFwiIH0gPSB0YWJsZVByb3BzO1xyXG4gICAgbGV0IHJlc0tleSA9IFtdO1xyXG4gICAgaWYgKGRhdGEuY2hpbGROb2Rlcykge1xyXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IGRhdGEuY2hpbGROb2RlcztcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLmNoaWxkTm9kZXMpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5EYXRhKGl0ZW0uY2hpbGROb2Rlcywga2V5cyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc0tleSA9IFsuLi5rZXlzLCBpdGVtW3Jvd0tleV1dO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXNLZXkgPSBbLi4ua2V5cywgZGF0YVtyb3dLZXldXTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXNLZXk7XHJcbiAgfVxyXG5cclxuICByZW5kZXJUb29sQnV0dG9ucyh0b29sYnV0dG9uczogYW55LCBtYXJnaW5mbGFnID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGZsYWcgPSB0b29sYnV0dG9ucy5sZW5ndGggPiA1O1xyXG4gICAgY29uc3QgeyBzaG93U2VhcmNoID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAzKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0b29sLWJ1dHRvbnNcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJ0b29sLWJ1dHRvbnMtbWFyZ2luXCIpXTogIXNob3dTZWFyY2ggfHwgbWFyZ2luZmxhZyxcclxuICAgICAgICB9KX1cclxuICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgID5cclxuICAgICAgICB7dG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wLWJveCddfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pu05aSaIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zOiBhbnksIHJlY29yZDogYW55KSB7XHJcbiAgICBjb25zdCB7IGFjdGlvblBvcnBzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IG5ld0J1dHRvbnMgPSBbXTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBpZiAoYWN0aW9uUG9ycHM/LnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGVsc2UgaWYgKGJhc2VBY3Rpb25Db2x1bW4uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgY29sdW1uQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgcmVjb3JkU2hvdywgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChyZWNvcmRTaG93KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiByZWNvcmRTaG93ID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgIGlmIChldmFsKHJlY29yZFNob3cpKSB7XHJcbiAgICAgICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWNvcmRTaG93ID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgY29uc3Qgc2hvdyA9IHJlY29yZFNob3cocmVjb3JkKTtcclxuICAgICAgICAgIHNob3cgJiYgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgZmxhZyA9IG5ld0J1dHRvbnMubGVuZ3RoID4gMztcclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDIpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICBpZiAoaW5kZXggPCAzKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSAzKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfT5cclxuICAgICAgICAgICAgICAgIDxFbGxpcHNpc091dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgLy/moJHngrnlh7vkuovku7ZcclxuICB0cmVlU2VsZWN0KHNlbGVjdGVkS2V5czogYW55LCBvYmo6IGFueSkge1xyXG4gICAgbGV0IGtleXdvcmQgPSBcIlwiO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzZWFyY2hLZXkgPSBcImtleVwiLFxyXG4gICAgICBzZWFyY2hGaWVsZCA9IFwiXCIsXHJcbiAgICAgIHBhcmFudFNlbGVjdCA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcy50cmVlUHJvcHM7XHJcbiAgICBjb25zdCB7IHRyZWVTZWxlY3RlZEtleSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHNlbGVjdGVkTm9kZXMgfSA9IG9iajtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgaWYgKHBhcmFudFNlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHsgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE5vZGVzWzBdLmlzTGVhZiB8fCAhc2VsZWN0ZWROb2Rlc1swXS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1swXSAhPT0gdHJlZVNlbGVjdGVkS2V5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgICAgIHRyZWVTZWFyY2hQcmFtczogeyBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICAgIHRyZWVTZWFyY2hQcmFtczoge30sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJvcHMub25UcmVlU2VsZWN0KSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25UcmVlU2VsZWN0KHNlbGVjdGVkS2V5cywgb2JqKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpIHx8IHt9O1xyXG4gICAgc2VhcmNoRmllbGQgJiYgdGhpcy50YWJsZUxvYWQoeyAuLi5mcm9tVmFsdWUsIFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSk7XHJcbiAgICB0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy50cmVlU2VsZWN0Q2FsbEJhY2sgJiZcclxuICAgICAgdXRpbHMuY2FsbGJhY2sodGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8udHJlZVNlbGVjdENhbGxCYWNrLCB0aGlzLCBbXHJcbiAgICAgICAgc2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgIG9iaixcclxuICAgICAgXSk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgZ2V0VGV4dChwcm9wcywgdGV4dCkge1xyXG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0O1xyXG4gICAgaWYgKHByb3BzPy5kYXRhICYmIHByb3BzPy5kYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBkYXRhID0gcHJvcHMuZGF0YTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChkYXRhW2ldLnZhbHVlID09IHRleHQpIHtcclxuICAgICAgICAgIG5ld1RleHQgPSBkYXRhW2ldLmxhYmVsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1RleHQ7XHJcbiAgfVxyXG4gIHNldFRhYmxlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnNldERhdGEoZGF0YSk7XHJcbiAgfVxyXG4gIHNldFRyZWVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZS5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZEtleSA9IChzZWxlY3RlZCkgPT4ge1xyXG4gICAgbGV0IHJlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBzZWxlY3RlZFtrZXldO1xyXG4gICAgICBpZiAoa2V5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmVzID0gWy4uLnJlcywgLi4ua2V5c107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfTtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIGJ1dHRvbnMgPSBbXSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICAgIG9uU2hvd0Zvcm0sXHJcbiAgICAgIGZvcm1DaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID0gXCJidXR0b21cIixcclxuICAgICAgYWN0aW9uUG9ycHMsXHJcbiAgICAgIGRlbGV0ZVBvc2l0aW9uID0gXCJ0b29sYmFyXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICAgIGNvbHVtbk9yZGVyID0gdHJ1ZSxcclxuICAgICAgZXhwYW5kYWJsZSA9IHt9LFxyXG4gICAgICBwYXJhbnRTZWxlY3QgPSB0cnVlLFxyXG4gICAgICAuLi5vdGhlcnRhYmxlUGFyYW1zXHJcbiAgICB9ID0gdGFibGVQcm9wcztcclxuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlOiB0cmVlU3RvcmUgPSB7fSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJlZVNlYXJjaCA9IHRydWUsXHJcbiAgICAgIHRpdGxlQWxpYXMgPSBcInRpdGxlXCIsXHJcbiAgICAgIC4uLm90aGVydHJlZVBhcmFtc1xyXG4gICAgfSA9IHRyZWVQcm9wcztcclxuXHJcbiAgICBsZXQgdGFibGVQYXJhbXMgPSB7IGZpbHRlckNvbHVtbiwgc3RvcmUsIC4uLm90aGVydGFibGVQYXJhbXMgfSBhcyBhbnk7XHJcbiAgICBsZXQgdGFibGVDb2x1bW46IGFueVtdID0gW107XHJcbiAgICBjb25zdCBzZWFyY2hGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBlZGl0b3JGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBkZWZhdWx0VmFsdWU6IGFueSA9IHt9O1xyXG4gICAgY29uc3QgY29sdW1uQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb2x1bW5zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmICh0ZW1wLnNlYXJjaCA9PT0gdHJ1ZSB8fCB0ZW1wLnNlYXJjaD8uc2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHNlYXJjaEZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnNlYXJjaD8ubGFiZWwgfHwgdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgICAgbGFiZWxDb2w6IHRlbXAuc2VhcmNoPy5sYWJlbENvbCxcclxuICAgICAgICAgIHdyYXBwZXJDb2w6IHRlbXAuc2VhcmNoPy53cmFwcGVyQ29sLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAuc2VhcmNoUnVsZXMgPyB0ZW1wLnNlYXJjaFJ1bGVzIDogW10sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyA/IHRlbXAucnVsZXMgOiBbXSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHNwYW46IHRlbXAuc3BhbixcclxuICAgICAgICAgIGRpY3ROYW1lOiB0ZW1wLmRpY3ROYW1lLFxyXG4gICAgICAgICAgcHJvcHM6IG9taXQoeyAuLi50ZW1wLnByb3BzIH0sIFtcImRlZmF1bHRWYWx1ZVwiLCBcInZhbHVlXCJdKSxcclxuICAgICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSBudWxsXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4O1xyXG4gICAgICAgIGRlZmF1bHRWYWx1ZVtuYW1lXSA9IHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgbGV0IHRlbXBQcm9wID0geyAuLi50ZW1wLnByb3BzIH07XHJcbiAgICAgIGlmICh0ZW1wLnN0eWxlKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICB7dGV4dCAhPT0gXCJcIiAmJiB0ZXh0ICE9PSBudWxsICYmIHRleHQgIT09IHVuZGVmaW5lZCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtYmFja1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtdGV4dFwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSBpZiAoIXRlbXAuZWxsaXBzaXMpIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8Pnt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGVtcCA9IHsgLi4udGVtcCB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnByb3BzO1xyXG4gICAgICBpZiAodGVtcD8uY29sdW1uU2hvdyAhPT0gZmFsc2UpIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHNlbGZCdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblBvcnBzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGlmIChlZGl0b3JGb3JtID09IHRydWUpIHtcclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcInNlYXJjaFwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RXllT3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZWRpdG9yXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFZGl0T3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOe8lui+kVxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImFkZFwiKSA+IC0xKSB7XHJcbiAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgb25TaG93Rm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICBvblNob3dGb3JtKCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBpY29uPXs8UGx1c091dGxpbmVkIC8+fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOa3u+WKoFxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImRlbGV0ZVwiKSA+IC0xKSB7XHJcbiAgICAgIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInRvb2xiYXJcIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25EZWxldGUuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwicm93XCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDliKDpmaRcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogYWN0aW9uUG9ycHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgPyBhY3Rpb25Qb3Jwcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgd2lkdGg6IGFjdGlvblBvcnBzPy53aWR0aFxyXG4gICAgICAgICAgPyBhY3Rpb25Qb3Jwcz8ud2lkdGhcclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA6IDIwMCxcclxuICAgICAgICBmaXhlZDogXCJyaWdodFwiLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJhY3Rpb25cIil9PlxyXG4gICAgICAgICAgICAgIHt0aGlzLnJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zLCByZWNvcmQpfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICBpZiAoY29sdW1uT3JkZXIpXHJcbiAgICAgIHRhYmxlQ29sdW1uID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRpdGxlOiBcIuW6j+WPt1wiLFxyXG4gICAgICAgICAgd2lkdGg6IDgwLFxyXG4gICAgICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0LCByZWFjb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57aW5kZXggKyAxfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi50YWJsZUNvbHVtbixcclxuICAgICAgXTtcclxuICAgIGxldCBzZWFyY2hGbGFnID0gc2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHRvb2xGbGFnID0gc2hvd1Rvb2xCdXR0b24gJiYgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMDtcclxuICAgIGlmICh0YWJsZVByb3BzLnBhZ2luYXRpb24gIT09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbCA9IHRhYmxlUGFyYW1zLnNjcm9sbDtcclxuICAgICAgdGFibGVQYXJhbXMgPSB7XHJcbiAgICAgICAgLi4udGFibGVQYXJhbXMsXHJcbiAgICAgICAgc2Nyb2xsOiB7IHg6IFwibWF4LWNvbnRlbnRcIiwgLi4uc2Nyb2xsIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgeyB0YWJsZVRvb2wgfSA9IGNvbmZpZygpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlXCIpLCBjbGFzc05hbWUpfT5cclxuICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGUgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlLXRpdGxlXCIpKX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnByb3BzLnBhZ2VUaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS1wYW5lXCIpKX1cclxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3Nob3dMZWZ0ICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImxlZnRcIil9PlxyXG4gICAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgICBzdG9yZT17eyAuLi50cmVlU3RvcmUgfX1cclxuICAgICAgICAgICAgICAgIHNob3dJY29uPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXt0cmVlU2VhcmNofVxyXG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudHJlZVNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAgICAgdGl0bGVBbGlhcz17dGl0bGVBbGlhc31cclxuICAgICAgICAgICAgICAgIHsuLi5vdGhlcnRyZWVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJyaWdodFwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuby1sZWZ0LXJpZ2h0XCIpXTogIXNob3dMZWZ0LFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgPEhlYWRlclNlYXJjaFxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybXM9e3NlYXJjaEZvcm1zfVxyXG4gICAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uPXt0b29sQnV0dG9uUG9zaXRpb259XHJcbiAgICAgICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgb25SZXNldD17dGhpcy5wcm9wcy5vblJlc2V0fVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1Qcm9wcz17dGhpcy5wcm9wcy5zZWFyY2hGb3JtUHJvcHN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgIHtzaG93VG9vbEJ1dHRvbiAmJlxyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b25zLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJidXR0b21cIiAmJlxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbEJ1dHRvbnMoc2VsZkJ1dHRvbnMsIHNlYXJjaEZvcm1zLmxlbmd0aCA9PSAwKX1cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRhYmxlXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wXCIpXTpcclxuICAgICAgICAgICAgICAgICAgKHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnKSB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVByb3BzLnRvb2xiYXIgPT0gZmFsc2UgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVQcm9wcy50b29sYmFyPy5zaG93ID09IGZhbHNlIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlUHJvcHMudG9vbGJhcj8udG9vbHM/Lmxlbmd0aCA9PSAwIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlVG9vbD8udG9vbHM/Lmxlbmd0aCA9PSAwIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlVG9vbD8uc2hvdyA9PSBmYWxzZSxcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxUYWJsZVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnRhYmxlUmVmfVxyXG4gICAgICAgICAgICAgICAgY29sdW1ucz17dGFibGVDb2x1bW59XHJcbiAgICAgICAgICAgICAgICBleHBhbmRhYmxlPXt7XHJcbiAgICAgICAgICAgICAgICAgIGV4cGFuZEljb246ICh7IGV4cGFuZGVkLCBvbkV4cGFuZCwgcmVjb3JkIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2V4cGFuZGVkID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxEb3duT3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBvbkV4cGFuZChyZWNvcmQsIGUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5jaGlsZE5vZGVzICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSaWdodE91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBvbkV4cGFuZChyZWNvcmQsIGUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAuLi5leHBhbmRhYmxlLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGNvbHVtbk9yZGVyPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhwYWdpbmF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY3VycmVudFBhZ2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UGFnZSAhPT0gcGFnaW5hdGlvbi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgdG9vbGJhcj17e1xyXG4gICAgICAgICAgICAgICAgICBvblRvb2xDbGljazoge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVmcmVzaDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVMb2FkKHBhcmFtcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4udGFibGVQcm9wcy50b29sYmFyLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHNob3dSb3dTZWxlY3Rpb249e3Nob3dSb3dTZWxlY3Rpb259XHJcbiAgICAgICAgICAgICAgICB7Li4udGFibGVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICAgIGNhbGxCYWNrPXt0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cclxuICAgICAgICAgICAgICBvbkhpZGVGb3JtPXt0aGlzLnByb3BzLm9uSGlkZUZvcm19XHJcbiAgICAgICAgICAgICAgb25Gb3JtQ2hhbmdlPXt0aGlzLnByb3BzLm9uRm9ybUNoYW5nZX1cclxuICAgICAgICAgICAgICBmb3JtVHlwZT17dGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBcImF1dG9cIn1cclxuICAgICAgICAgICAgICBjaGFuZ2VWYWxpZD17Zm9ybUNoYW5nZVZhbGlkfVxyXG4gICAgICAgICAgICAgIG90aGVyUHJvcHM9e3sgLi4uZm9ybVByb3BzIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
|
|
1004
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwidXRpbHMiLCJEb3duT3V0bGluZWQiLCJFeWVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIlJpZ2h0T3V0bGluZWQiLCJQbHVzT3V0bGluZWQiLCJFbGxpcHNpc091dGxpbmVkIiwiRGVsZXRlT3V0bGluZWQiLCJnZXRMZXNzIiwicmVxdWVzdCIsIm9taXQiLCJjb25maWciLCJnZXRTdG9yYWdlIiwiSGVhZGVyU2VhcmNoIiwiQmFzZVBhZ2UiLCJwcm9wcyIsImNyZWF0ZVJlZiIsImNoZWNrZWRUcmVlS2V5cyIsInN0YXRlIiwibmFtZSIsInVzZXJUeXBlIiwiYWNjb3VudCIsInZhbHVlIiwiZGVwdElkIiwib25TZWFyY2giLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsInRyZWVTZWFyY2hQcmFtcyIsImluaXREYXRhIiwicGFyYW1zIiwiY2FsbEJhY2siLCJzZWFyY2hSZWYiLCJjdXJyZW50Iiwic2V0U2VhcmNoUGFyYW1zIiwiZWRpdG9yZmxhZyIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZGF0YSIsImRlbGV0ZVVybCIsIm9uRGVsZXRlIiwiZGVsZXRlUGFyYW1zIiwiZGVsZXRlUG9zaXRpb24iLCJ0YWJsZVJlZiIsImdldFNlbGVjdGVkUm93S2V5cyIsIndhcm5pbmciLCJjb25maXJtIiwib25PayIsIkVycm9yIiwiZGVmYXVsdFBhcmFtcyIsIm1ldGhvZCIsImF1dG9QcmVmaXgiLCJpZHMiLCJqb2luIiwiaWQiLCJyZXF1ZXN0UGFyYW1zIiwidGhlbiIsImNvZGUiLCJzdWNjZXNzIiwidGFibGVMb2FkIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJyZXF1ZXN0Q29uZmlnIiwic3RvcmUiLCJsb2FkIiwib25DYWxsQmFja3MiLCJvblNlYXJjaENhbGxCYWNrIiwiY2FsbGJhY2siLCJhdXRvTG9hZCIsInJlbG9hZCIsInJlY29yZHMiLCJjdXJyZW50UGFnZSIsImdldFNlbGVjdGVkUm93RGF0YXMiLCJyZXNldFNlbGVjdGVkUm93S2V5cyIsImZyb21WYWx1ZSIsImdldFNlYXJjaFZhbHVlcyIsInRhYmxlUHJvcHMiLCJyb3dLZXkiLCJyZXNLZXkiLCJjaGlsZE5vZGVzIiwiY2hpbGRyZW4iLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJnZXRDaGlsZHJlbkRhdGEiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJtYXJnaW5MZWZ0IiwiY29sdW1uQnV0dG9ucyIsInJlY29yZCIsImFjdGlvblBvcnBzIiwiYmFzZUFjdGlvbkNvbHVtbiIsIm5ld0J1dHRvbnMiLCJzaG93SWNvbiIsInJlY29yZFNob3ciLCJldmFsIiwicHVzaCIsInNlbGVjdGVkS2V5cyIsIm9iaiIsImtleXdvcmQiLCJ0cmVlUHJvcHMiLCJzZWFyY2hLZXkiLCJzZWFyY2hGaWVsZCIsInBhcmFudFNlbGVjdCIsInNlbGVjdGVkTm9kZXMiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwic2V0U3RhdGUiLCJpc0xlYWYiLCJvblRyZWVTZWxlY3QiLCJ0cmVlU2VsZWN0Q2FsbEJhY2siLCJyZXNldEZpZWxkcyIsInRleHQiLCJuZXdUZXh0IiwiaSIsImxhYmVsIiwic2V0RGF0YSIsInRyZWVSZWYiLCJjb2x1bW5zIiwic3VibWl0VXJsIiwiZm9ybVByb3BzIiwic2hvd0xlZnQiLCJzdWJtaXRQYXJhbXMiLCJzaG93VG9vbEJ1dHRvbiIsImJ1dHRvbnMiLCJlZGl0b3JGb3JtIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsInRvb2xCdXR0b25Qb3NpdGlvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJjb2x1bW5PcmRlciIsImV4cGFuZGFibGUiLCJvdGhlcnRhYmxlUGFyYW1zIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJvdGhlcnRyZWVQYXJhbXMiLCJ0YWJsZVBhcmFtcyIsInRhYmxlQ29sdW1uIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsImRlZmF1bHRWYWx1ZSIsInRlbXAiLCJzZWFyY2giLCJmaWVsZCIsImRhdGFJbmRleCIsInRpdGxlIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwicnVsZXMiLCJzZWFyY2hSdWxlcyIsImVkaXRvciIsInNwYW4iLCJkaWN0TmFtZSIsInVuZGVmaW5lZCIsImNvbHVtblNlYXJjaCIsImZpbHRlclByb3BzIiwidGVtcFByb3AiLCJzdHlsZSIsInJlbmRlciIsImdldFRleHQiLCJlbGxpcHNpcyIsImNvbHVtblNob3ciLCJzZWxmQnV0dG9ucyIsImluZGV4T2YiLCJzaG93Rm9ybSIsImJpbmQiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZCIsImFsaWduIiwidGV4dEFsaWduIiwid2lkdGgiLCJmaXhlZCIsInJlbmRlckNsb3VtbkJ1dHRvbiIsInJlYWNvcmQiLCJzZWFyY2hGbGFnIiwidG9vbEZsYWciLCJwYWdpbmF0aW9uIiwic2Nyb2xsIiwieCIsInRhYmxlVG9vbCIsInBhZ2VUaXRsZSIsImRpc3BsYXkiLCJ0cmVlU2VsZWN0Iiwib25SZXNldCIsInNlYXJjaEZvcm1Qcm9wcyIsInJlbmRlclRvb2xCdXR0b25zIiwidG9vbGJhciIsInRvb2xzIiwiZXhwYW5kSWNvbiIsImV4cGFuZGVkIiwib25FeHBhbmQiLCJlIiwib25Ub29sQ2xpY2siLCJvblJlZnJlc2giLCJ0YWJsZVJlbG9hZCIsIm9uU3VibWl0Iiwib25IaWRlRm9ybSIsIm9uRm9ybUNoYW5nZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFnRCxPQUFoRDtBQUNBLE9BQU9DLEtBQVAsTUFBa0Isa0JBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixpQkFBakI7QUFFQSxPQUFPQyxNQUFQLE1BQW1CLG1CQUFuQjtBQUNBLE9BQU9DLEtBQVAsTUFBa0Isa0JBQWxCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixvQkFBcEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUdBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFHQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLFNBQ0VDLFlBREYsRUFFRUMsV0FGRixFQUdFQyxZQUhGLEVBSUVDLGFBSkYsRUFLRUMsWUFMRixFQU1FQyxnQkFORixFQU9FQyxjQVBGLFFBUU8sbUJBUlA7QUFTQSxTQUFTQyxPQUFULFFBQWlDLGFBQWpDO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixhQUFwQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsU0FBakI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixtQkFBM0I7QUFFQSxPQUFPQyxZQUFQLE1BQXlCLGlCQUF6Qjs7SUEyRE1DLFE7Ozs7O0FBTUosb0JBQVlDLEtBQVosRUFBd0I7QUFBQTs7QUFBQTs7QUFBQTs7QUFDdEIsOEJBQU1BLEtBQU47O0FBRHNCLDRFQUxiMUIsS0FBSyxDQUFDMkIsU0FBTixFQUthOztBQUFBLDJFQUpkM0IsS0FBSyxDQUFDMkIsU0FBTixFQUljOztBQUFBLDZFQUhaM0IsS0FBSyxDQUFDMkIsU0FBTixFQUdZOztBQUFBLDZFQUZaM0IsS0FBSyxDQUFDMkIsU0FBTixFQUVZOztBQUFBLGlFQURYLEVBQ1c7O0FBQUEsK0RBZ0NiLFVBQUNDLGVBQUQsRUFBMEI7QUFDbkMsd0JBQW9DLE1BQUtDLEtBQXpDO0FBQUEsVUFBUUMsSUFBUixlQUFRQSxJQUFSO0FBQUEsVUFBY0MsUUFBZCxlQUFjQSxRQUFkO0FBQUEsVUFBd0JDLE9BQXhCLGVBQXdCQSxPQUF4QjtBQUNBLFVBQU1DLEtBQUssR0FBRztBQUFFSCxRQUFBQSxJQUFJLEVBQUpBLElBQUY7QUFBUUMsUUFBQUEsUUFBUSxFQUFSQSxRQUFSO0FBQWtCQyxRQUFBQSxPQUFPLEVBQVBBLE9BQWxCO0FBQTJCRSxRQUFBQSxNQUFNLEVBQUVOLGVBQWUsQ0FBQyxDQUFEO0FBQWxELE9BQWQ7O0FBQ0EsVUFBSSxNQUFLRixLQUFMLENBQVdTLFFBQWYsRUFBeUI7QUFDdkIsY0FBS1QsS0FBTCxDQUFXUyxRQUFYLENBQW9CRixLQUFwQjtBQUNELE9BTGtDLENBTW5DOztBQUNELEtBdkN1Qjs7QUFBQSxxRUFrYVAsVUFBQ0csUUFBRCxFQUFjO0FBQzdCLFVBQUlDLEdBQUcsR0FBRyxFQUFWOztBQUNBLFdBQUssSUFBSUMsR0FBVCxJQUFnQkYsUUFBaEIsRUFBMEI7QUFDeEIsWUFBTUcsSUFBSSxHQUFHSCxRQUFRLENBQUNFLEdBQUQsQ0FBckI7O0FBQ0EsWUFBSUMsSUFBSSxDQUFDQyxNQUFMLEdBQWMsQ0FBbEIsRUFBcUI7QUFDbkJILFVBQUFBLEdBQUcsZ0NBQU9BLEdBQVAsc0JBQWVFLElBQWYsRUFBSDtBQUNEO0FBQ0Y7O0FBQ0QsYUFBT0YsR0FBUDtBQUNELEtBM2F1Qjs7QUFFdEIsa0JBQXNCZixNQUFNLEVBQTVCO0FBQUEsUUFBTW1CLFdBQU4sV0FBTUEsV0FBTjs7QUFDQSxRQUFJQyxJQUFJLEdBQUduQixVQUFVLENBQ25Ca0IsV0FBVyxHQUFHQSxXQUFXLEdBQUcsR0FBZCxHQUFvQixVQUF2QixHQUFvQyxVQUQ1QixDQUFyQjtBQUdBQyxJQUFBQSxJQUFJLFlBQUdBLElBQUgsMENBQUcsTUFBTUMsT0FBYjtBQUNBLFFBQUlDLElBQUksR0FBR3JCLFVBQVUsQ0FDbkJrQixXQUFXLEdBQUdBLFdBQVcsR0FBRyxHQUFkLEdBQW9CLFdBQXZCLEdBQXFDLFdBRDdCLENBQXJCO0FBR0FHLElBQUFBLElBQUksWUFBR0EsSUFBSCwwQ0FBRyxNQUFNRCxPQUFiO0FBQ0EsVUFBS2QsS0FBTCxHQUFhO0FBQ1hhLE1BQUFBLElBQUksRUFBRSxLQURLO0FBRVhHLE1BQUFBLGVBQWUsRUFBRSxFQUZOO0FBR1hDLE1BQUFBLGdCQUFnQixFQUFFLEVBSFA7QUFJWEMsTUFBQUEsZUFBZSxFQUFFLEVBSk47QUFLWEMsTUFBQUEsTUFBTSxFQUFFLEtBTEc7QUFNWEMsTUFBQUEsUUFBUSxFQUFFUCxJQUFJLElBQUksT0FOUDtBQU9YUSxNQUFBQSxTQUFTLEVBQUVOLElBQUksSUFBSSxTQVBSO0FBUVhPLE1BQUFBLGVBQWUsRUFBRTtBQVJOLEtBQWI7QUFYc0I7QUFxQnZCOzs7O1dBQ0QsNkJBQW9CO0FBQ2xCLFVBQVFDLFFBQVIsR0FBcUIsS0FBSzFCLEtBQTFCLENBQVEwQixRQUFSO0FBQ0FBLE1BQUFBLFFBQVEsSUFBSUEsUUFBUSxFQUFwQjtBQUNEOzs7V0FFRCx5QkFBZ0JDLE1BQWhCLEVBQXdCQyxRQUF4QixFQUFrQztBQUFBOztBQUNoQyxvQ0FBS0MsU0FBTCxDQUFlQyxPQUFmLGdGQUF3QkMsZUFBeEIsQ0FBd0NKLE1BQXhDO0FBQ0FDLE1BQUFBLFFBQVEsSUFBSUEsUUFBUSxDQUFDRCxNQUFELENBQXBCO0FBQ0Q7OztXQVdEO0FBQ0Esc0JBQVNwQixLQUFULEVBQTBDO0FBQUE7O0FBQUEsVUFBcEJ5QixVQUFvQix1RUFBUCxLQUFPO0FBQ3hDLG9DQUFLQyxTQUFMLENBQWVILE9BQWYsZ0ZBQXdCSSxJQUF4QixDQUE2QjNCLEtBQTdCLEVBQW9DeUIsVUFBcEM7QUFDRCxLLENBRUQ7Ozs7V0FDQSxvQkFBVztBQUFBOztBQUNULHFDQUFLQyxTQUFMLENBQWVILE9BQWYsa0ZBQXdCSyxRQUF4QjtBQUNEOzs7V0FFRCxvQkFBV0MsT0FBWCxFQUE2QjtBQUFBOztBQUMzQixxQ0FBS0gsU0FBTCxDQUFlSCxPQUFmLGtGQUF3Qk8sVUFBeEIsQ0FBbUNELE9BQW5DO0FBQ0QsSyxDQUVEOzs7O1dBQ0Esa0JBQVNFLElBQVQsRUFBcUI7QUFBQTs7QUFDbkIsd0JBS0ksS0FBS3RDLEtBTFQ7QUFBQSxVQUNFdUMsU0FERixlQUNFQSxTQURGO0FBQUEsVUFFRUMsUUFGRixlQUVFQSxRQUZGO0FBQUEsVUFHRUMsWUFIRixlQUdFQSxZQUhGO0FBQUEsOENBSUVDLGNBSkY7QUFBQSxVQUlFQSxjQUpGLHNDQUltQixTQUpuQjtBQU1BLFVBQU12QixlQUFlLDRCQUFHLEtBQUt3QixRQUFMLENBQWNiLE9BQWpCLDBEQUFHLHNCQUF1QmMsa0JBQXZCLEVBQXhCOztBQUNBLFVBQUlGLGNBQWMsSUFBSSxTQUF0QixFQUFpQztBQUMvQixZQUFJdkIsZUFBZSxDQUFDTCxNQUFoQixJQUEwQixDQUE5QixFQUFpQztBQUMvQmpDLFVBQUFBLE9BQU8sQ0FBQ2dFLE9BQVIsQ0FBZ0IsWUFBaEI7QUFDQTtBQUNEO0FBQ0Y7O0FBQ0RsRSxNQUFBQSxLQUFLLENBQUNtRSxPQUFOLENBQWM7QUFDWjdCLFFBQUFBLE9BQU8sRUFBRSxZQURHO0FBRVo7QUFDQThCLFFBQUFBLElBQUksRUFBRSxnQkFBTTtBQUNWLGNBQUlQLFFBQUosRUFBYztBQUNaQSxZQUFBQSxRQUFRLElBQ05BLFFBQVEsQ0FBQ0UsY0FBYyxJQUFJLFNBQWxCLEdBQThCdkIsZUFBOUIsR0FBZ0RtQixJQUFqRCxDQURWO0FBRUE7QUFDRDs7QUFDRCxjQUFJLENBQUNDLFNBQUwsRUFBZ0I7QUFDZCxrQkFBTSxJQUFJUyxLQUFKLENBQVUsVUFBVixDQUFOO0FBQ0Q7O0FBQ0QsY0FBTUMsYUFBYSxHQUFHO0FBQ3BCQyxZQUFBQSxNQUFNLEVBQUUsTUFEWTtBQUVwQkMsWUFBQUEsVUFBVSxFQUFFLElBRlE7QUFHcEJ4QixZQUFBQSxNQUFNLEVBQUU7QUFDTnlCLGNBQUFBLEdBQUcsRUFBRVYsY0FBYyxJQUFJLFNBQWxCLEdBQThCdkIsZUFBZSxDQUFDa0MsSUFBaEIsRUFBOUIsR0FBdURmLElBQUksQ0FBQ2dCO0FBRDNEO0FBSFksV0FBdEI7QUFPQSxjQUFJQyxhQUFhLEdBQUcsRUFBcEI7O0FBQ0EsY0FBSU4sYUFBSixFQUFtQjtBQUNqQk0sWUFBQUEsYUFBYSxxQkFBUWQsWUFBUixDQUFiO0FBQ0Q7O0FBQ0RjLFVBQUFBLGFBQWEscUJBQVFOLGFBQVIsQ0FBYjtBQUNBdkQsVUFBQUEsT0FBTyxDQUFDNkMsU0FBRCxvQkFDRmdCLGFBREUsRUFBUCxDQUdHQyxJQUhILENBR1EsVUFBVTdDLEdBQVYsRUFBb0I7QUFDeEIsZ0JBQVE4QyxJQUFSLEdBQWlCOUMsR0FBakIsQ0FBUThDLElBQVI7O0FBQ0EsZ0JBQUlBLElBQUksS0FBSyxHQUFiLEVBQWtCO0FBQ2hCNUUsY0FBQUEsT0FBTyxDQUFDNkUsT0FBUixDQUFnQixPQUFoQjtBQUNBLG1CQUFLQyxTQUFMO0FBQ0QsYUFIRCxNQUdPO0FBQ0w5RSxjQUFBQSxPQUFPLENBQUMrRSxLQUFSLENBQWMsT0FBZDtBQUNEO0FBQ0YsV0FYSCxFQVlHQyxLQVpILENBWVMsVUFBVUQsS0FBVixFQUFzQjtBQUMzQkUsWUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksT0FBWixFQUFxQkgsS0FBckI7QUFDRCxXQWRIO0FBZUQ7QUF2Q1csT0FBZDtBQXlDRDs7O1dBQ0QsbUJBQVVqQyxNQUFWLEVBQTJDO0FBQUE7O0FBQUEsVUFBcEJxQyxhQUFvQix1RUFBSixFQUFJO0FBQ3pDLHFDQUFLckIsUUFBTCxDQUFjYixPQUFkLGtGQUF1Qm1DLEtBQXZCLENBQTZCQyxJQUE3QixpQ0FDS0YsYUFETDtBQUVFckMsUUFBQUEsTUFBTSxFQUFFQTtBQUZWO0FBSUQsSyxDQUNEOzs7O1dBQ0Esa0JBQVNBLE1BQVQsRUFBaUI7QUFDZix5QkFBa0MsS0FBSzNCLEtBQXZDO0FBQUEsVUFBUVMsUUFBUixnQkFBUUEsUUFBUjtBQUFBLFVBQWtCMEQsV0FBbEIsZ0JBQWtCQSxXQUFsQjs7QUFDQSxVQUFJMUQsUUFBSixFQUFjO0FBQ1pBLFFBQUFBLFFBQVEsaUNBQU1rQixNQUFOLEdBQWlCLEtBQUt4QixLQUFMLENBQVdzQixlQUE1QixFQUFSO0FBQ0E7QUFDRDs7QUFDRCxXQUFLa0MsU0FBTCxpQ0FBb0JoQyxNQUFwQixHQUErQixLQUFLeEIsS0FBTCxDQUFXc0IsZUFBMUM7QUFDQSxPQUFBMEMsV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxZQUFBQSxXQUFXLENBQUVDLGdCQUFiLEtBQ0VuRixLQUFLLENBQUNvRixRQUFOLENBQWVGLFdBQWYsYUFBZUEsV0FBZix1QkFBZUEsV0FBVyxDQUFFQyxnQkFBNUIsRUFBOEMsSUFBOUMsRUFBb0QsQ0FBQ3pDLE1BQUQsQ0FBcEQsQ0FERjtBQUVELEssQ0FDRDs7OztXQUNBLHVCQUEwQztBQUFBO0FBQUE7O0FBQUEsVUFBOUJBLE1BQThCLHVFQUFyQixFQUFxQjtBQUFBLFVBQWpCMkMsUUFBaUIsdUVBQU4sSUFBTTtBQUN4QyxxQ0FBSzNCLFFBQUwsQ0FBY2IsT0FBZCxrRkFBdUJtQyxLQUF2QixDQUE2Qk0sTUFBN0IsQ0FBb0M7QUFDbENGLFFBQUFBLFFBQVEsRUFBRSxrQkFBQzFELEdBQUQsRUFBUztBQUFBOztBQUNqQixjQUNFMkQsUUFBUSxJQUNSLENBQUEzRCxHQUFHLFNBQUgsSUFBQUEsR0FBRyxXQUFILHlCQUFBQSxHQUFHLENBQUUyQixJQUFMLDZFQUFXa0MsT0FBWCx3RUFBb0IxRCxNQUFwQixLQUE4QixDQUQ5QixJQUVBLE1BQUksQ0FBQ1gsS0FBTCxDQUFXc0UsV0FBWCxLQUEyQixDQUg3QixFQUlFO0FBQUE7O0FBQ0EscUNBQUEsTUFBSSxDQUFDOUIsUUFBTCxDQUFjYixPQUFkLGdGQUF1Qm1DLEtBQXZCLENBQTZCTSxNQUE3QixDQUFvQztBQUNsQzVDLGNBQUFBLE1BQU07QUFBSUcsZ0JBQUFBLE9BQU8sRUFBRTtBQUFiLGlCQUFtQkgsTUFBbkI7QUFENEIsYUFBcEM7QUFHRDtBQUNGO0FBWGlDLE9BQXBDO0FBYUQ7OztXQUNELDhCQUFxQjtBQUFBOztBQUNuQix1Q0FBTyxLQUFLZ0IsUUFBTCxDQUFjYixPQUFyQiwyREFBTyx1QkFBdUJjLGtCQUF2QixFQUFQO0FBQ0Q7OztXQUNELCtCQUFzQjtBQUFBOztBQUNwQix1Q0FBTyxLQUFLRCxRQUFMLENBQWNiLE9BQXJCLDJEQUFPLHVCQUF1QjRDLG1CQUF2QixFQUFQO0FBQ0Q7OztXQUNELGdDQUF1QjtBQUFBOztBQUNyQix1Q0FBTyxLQUFLL0IsUUFBTCxDQUFjYixPQUFyQiwyREFBTyx1QkFBdUI2QyxvQkFBdkIsRUFBUDtBQUNEOzs7V0FFRCwyQkFBa0I7QUFBQTs7QUFDaEIsVUFBTUMsU0FBUyxzQkFBRyxLQUFLL0MsU0FBUiw4RUFBRyxnQkFBZ0JDLE9BQW5CLDJEQUFHLHVCQUF5QitDLGVBQXpCLEVBQWxCO0FBQ0EsNkNBQVlELFNBQVosR0FBMEIsS0FBS3pFLEtBQUwsQ0FBV3NCLGVBQXJDO0FBQ0Q7OztXQUVELHlCQUFnQmEsSUFBaEIsRUFBaUM7QUFBQTs7QUFBQSxVQUFYekIsSUFBVyx1RUFBSixFQUFJO0FBQy9CLFVBQVFpRSxVQUFSLEdBQXVCLEtBQUs5RSxLQUE1QixDQUFROEUsVUFBUjtBQUNBLCtCQUEwQkEsVUFBMUIsQ0FBUUMsTUFBUjtBQUFBLFVBQVFBLE1BQVIsbUNBQWlCLElBQWpCO0FBQ0EsVUFBSUMsTUFBTSxHQUFHLEVBQWI7O0FBQ0EsVUFBSTFDLElBQUksQ0FBQzJDLFVBQVQsRUFBcUI7QUFDbkIsWUFBTUMsUUFBUSxHQUFHNUMsSUFBSSxDQUFDMkMsVUFBdEI7QUFDQUMsUUFBQUEsUUFBUSxDQUFDQyxHQUFULENBQWEsVUFBQ0MsSUFBRCxFQUFPQyxLQUFQLEVBQWlCO0FBQzVCLGNBQUlELElBQUksQ0FBQ0gsVUFBVCxFQUFxQjtBQUNuQixZQUFBLE1BQUksQ0FBQ0ssZUFBTCxDQUFxQkYsSUFBSSxDQUFDSCxVQUExQixFQUFzQ3BFLElBQXRDO0FBQ0QsV0FGRCxNQUVPO0FBQ0xtRSxZQUFBQSxNQUFNLGdDQUFPbkUsSUFBUCxJQUFhdUUsSUFBSSxDQUFDTCxNQUFELENBQWpCLEVBQU47QUFDRDtBQUNGLFNBTkQ7QUFPRCxPQVRELE1BU087QUFDTEMsUUFBQUEsTUFBTSxnQ0FBT25FLElBQVAsSUFBYXlCLElBQUksQ0FBQ3lDLE1BQUQsQ0FBakIsRUFBTjtBQUNEOztBQUNELGFBQU9DLE1BQVA7QUFDRDs7O1dBRUQsMkJBQWtCTyxXQUFsQixFQUF3RDtBQUFBLFVBQXBCQyxVQUFvQix1RUFBUCxLQUFPO0FBQ3RELFVBQU1DLElBQUksR0FBR0YsV0FBVyxDQUFDekUsTUFBWixHQUFxQixDQUFsQztBQUNBLGtDQUE4QixLQUFLZCxLQUFuQyxDQUFRMEYsVUFBUjtBQUFBLFVBQVFBLFVBQVIsc0NBQXFCLElBQXJCO0FBQ0EsVUFBTXpFLE9BQU8sR0FBR3NFLFdBQVcsQ0FBQ0osR0FBWixDQUFnQixVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDekQsMEJBQStERCxJQUFJLENBQUNwRixLQUFwRTtBQUFBLFlBQVFrRixRQUFSLGVBQVFBLFFBQVI7QUFBQSxZQUFrQlMsUUFBbEIsZUFBa0JBLFFBQWxCO0FBQUEsWUFBNEJDLFFBQTVCLGVBQTRCQSxPQUE1QjtBQUFBLFlBQXFDQyxJQUFyQyxlQUFxQ0EsSUFBckM7QUFBQSxZQUEyQzNELElBQTNDLGVBQTJDQSxJQUEzQztBQUFBLFlBQW9EUCxNQUFwRDs7QUFDQSxZQUFJMEQsS0FBSyxHQUFHLENBQVosRUFBZTtBQUNiLDhCQUNFO0FBQ0UsWUFBQSxTQUFTLEVBQUV0RyxHQUFHLENBQ1pVLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLFFBQVQsQ0FESyxFQUVaUyxPQUFPLENBQUNULE1BQUQsRUFBUyxjQUFULENBRkssQ0FEaEI7QUFLRSxZQUFBLEdBQUcsRUFBRXFHLEtBTFA7QUFNRSxZQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNiTyxjQUFBQSxRQUFPLElBQUlBLFFBQU8sRUFBbEI7QUFDRDtBQVJILGFBU01qRSxNQVROLGdCQVdFO0FBQU0sWUFBQSxTQUFTLEVBQUVsQyxPQUFPLENBQUNULE1BQUQsRUFBUyxNQUFUO0FBQXhCLGFBQTJDNkcsSUFBM0MsQ0FYRixlQVlFO0FBQU0sWUFBQSxTQUFTLEVBQUVwRyxPQUFPLENBQUNULE1BQUQsRUFBUyxNQUFUO0FBQXhCLGFBQTJDa0csUUFBM0MsQ0FaRixDQURGO0FBZ0JEO0FBQ0YsT0FwQmUsQ0FBaEI7QUFxQkEsMEJBQ0U7QUFDRSxRQUFBLFNBQVMsRUFBRW5HLEdBQUcsQ0FBQ1UsT0FBTyxDQUFDVCxNQUFELEVBQVMsY0FBVCxDQUFSLHNCQUNYUyxPQUFPLENBQUNULE1BQUQsRUFBUyxxQkFBVCxDQURJLEVBQzhCLENBQUMwRyxVQUFELElBQWVGLFVBRDdDLEVBRGhCO0FBSUUsUUFBQSxLQUFLLEVBQUU7QUFBRU0sVUFBQUEsVUFBVSxFQUFFO0FBQWQ7QUFKVCxTQU1HUCxXQUFXLENBQUNKLEdBQVosQ0FBZ0IsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQzFDLFlBQUlJLElBQUosRUFBVTtBQUNSLGNBQUlKLEtBQUssR0FBRyxDQUFaLEVBQWU7QUFDYixnQ0FBTztBQUFLLGNBQUEsR0FBRyxFQUFFQTtBQUFWLGVBQWtCRCxJQUFsQixDQUFQO0FBQ0QsV0FGRCxNQUVPLElBQUlDLEtBQUssSUFBSSxDQUFiLEVBQWdCO0FBQ3JCLGdDQUNFLG9CQUFDLE9BQUQ7QUFDRSxjQUFBLE9BQU8sRUFBRXBFLE9BRFg7QUFFRSxjQUFBLEtBQUssRUFBRSxJQUZUO0FBR0UsY0FBQSxTQUFTLEVBQUMsUUFIWjtBQUlFLGNBQUEsT0FBTyxFQUFFLENBQUMsT0FBRCxDQUpYO0FBS0UsY0FBQSxHQUFHLEVBQUVvRSxLQUxQLENBTUU7O0FBTkYsNEJBUUUsb0JBQUMsTUFBRDtBQUFRLGNBQUEsSUFBSSxFQUFDO0FBQWIsNkNBQ0ssb0JBQUMsWUFBRCxPQURMLENBUkYsQ0FERjtBQWNELFdBZk0sTUFlQTtBQUNMLG1CQUFPLElBQVA7QUFDRDtBQUNGLFNBckJELE1BcUJPO0FBQ0wsOEJBQU87QUFBSyxZQUFBLEdBQUcsRUFBRUE7QUFBVixhQUFrQkQsSUFBbEIsQ0FBUDtBQUNEO0FBQ0YsT0F6QkEsQ0FOSCxDQURGO0FBbUNEOzs7V0FDRCw0QkFBbUJXLGFBQW5CLEVBQXVDQyxNQUF2QyxFQUFvRDtBQUNsRCxVQUFRQyxXQUFSLEdBQXdCLEtBQUtqRyxLQUE3QixDQUFRaUcsV0FBUjs7QUFDQSxxQkFBNkJyRyxNQUFNLEVBQW5DO0FBQUEsVUFBUXNHLGdCQUFSLFlBQVFBLGdCQUFSOztBQUNBLFVBQU1DLFVBQVUsR0FBRyxFQUFuQjtBQUNBLFVBQUlDLFFBQVEsR0FBRyxJQUFmO0FBQ0EsVUFBSSxDQUFBSCxXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLFlBQUFBLFdBQVcsQ0FBRUcsUUFBYixNQUEwQixLQUE5QixFQUFxQ0EsUUFBUSxHQUFHLEtBQVgsQ0FBckMsS0FDSyxJQUFJRixnQkFBZ0IsQ0FBQ0UsUUFBakIsS0FBOEIsS0FBbEMsRUFBeUNBLFFBQVEsR0FBRyxLQUFYO0FBQzlDTCxNQUFBQSxhQUFhLENBQUNaLEdBQWQsQ0FBa0IsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQzNDLDJCQUNFRCxJQUFJLENBQUNwRixLQURQO0FBQUEsWUFBUWtGLFFBQVIsZ0JBQVFBLFFBQVI7QUFBQSxZQUFrQlMsUUFBbEIsZ0JBQWtCQSxRQUFsQjtBQUFBLFlBQTRCQyxPQUE1QixnQkFBNEJBLE9BQTVCO0FBQUEsWUFBcUNDLElBQXJDLGdCQUFxQ0EsSUFBckM7QUFBQSxZQUEyQ1EsVUFBM0MsZ0JBQTJDQSxVQUEzQztBQUFBLFlBQTBEMUUsTUFBMUQ7O0FBRUEsWUFBSTBFLFVBQUosRUFBZ0I7QUFDZCxjQUFJLE9BQU9BLFVBQVAsSUFBcUIsUUFBekIsRUFBbUM7QUFDakMsZ0JBQUlDLElBQUksQ0FBQ0QsVUFBRCxDQUFSLEVBQXNCO0FBQ3BCRixjQUFBQSxVQUFVLENBQUNJLElBQVgsQ0FBZ0JuQixJQUFoQjtBQUNEO0FBQ0YsV0FKRCxNQUlPLElBQUksT0FBT2lCLFVBQVAsSUFBcUIsVUFBekIsRUFBcUM7QUFDMUMsZ0JBQU1uRSxJQUFJLEdBQUdtRSxVQUFVLENBQUNMLE1BQUQsQ0FBdkI7QUFDQTlELFlBQUFBLElBQUksSUFBSWlFLFVBQVUsQ0FBQ0ksSUFBWCxDQUFnQm5CLElBQWhCLENBQVI7QUFDRDtBQUNGLFNBVEQsTUFTTztBQUNMZSxVQUFBQSxVQUFVLENBQUNJLElBQVgsQ0FBZ0JuQixJQUFoQjtBQUNEO0FBQ0YsT0FmRDtBQWdCQSxVQUFNSyxJQUFJLEdBQUdVLFVBQVUsQ0FBQ3JGLE1BQVgsR0FBb0IsQ0FBakM7QUFFQSxVQUFNRyxPQUFPLEdBQUdrRixVQUFVLENBQUNoQixHQUFYLENBQWUsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQ3hELDJCQUNFRCxJQUFJLENBQUNwRixLQURQO0FBQUEsWUFBUWtGLFFBQVIsZ0JBQVFBLFFBQVI7QUFBQSxZQUFrQlMsUUFBbEIsZ0JBQWtCQSxRQUFsQjtBQUFBLFlBQTRCQyxTQUE1QixnQkFBNEJBLE9BQTVCO0FBQUEsWUFBcUNTLFVBQXJDLGdCQUFxQ0EsVUFBckM7QUFBQSxZQUFpRFIsSUFBakQsZ0JBQWlEQSxJQUFqRDtBQUFBLFlBQXVEM0QsSUFBdkQsZ0JBQXVEQSxJQUF2RDtBQUFBLFlBQWdFUCxNQUFoRTs7QUFFQSxZQUFJMEQsS0FBSyxHQUFHLENBQVosRUFBZTtBQUNiLDhCQUNFO0FBQ0UsWUFBQSxTQUFTLEVBQUV0RyxHQUFHLENBQ1pVLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLFFBQVQsQ0FESyxFQUVaUyxPQUFPLENBQUNULE1BQUQsRUFBUyxjQUFULENBRkssQ0FEaEI7QUFLRSxZQUFBLEdBQUcsRUFBRXFHLEtBTFA7QUFNRSxZQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNiTyxjQUFBQSxTQUFPLElBQUlBLFNBQU8sQ0FBQ0ksTUFBRCxDQUFsQjtBQUNEO0FBUkgsYUFTTXJFLE1BVE4sR0FXR3lFLFFBQVEsS0FBSyxLQUFiLGlCQUNDO0FBQU0sWUFBQSxTQUFTLEVBQUUzRyxPQUFPLENBQUNULE1BQUQsRUFBUyxNQUFUO0FBQXhCLGFBQTJDNkcsSUFBM0MsQ0FaSixlQWNFO0FBQU0sWUFBQSxTQUFTLEVBQUVwRyxPQUFPLENBQUNULE1BQUQsRUFBUyxNQUFUO0FBQXhCLGFBQTJDa0csUUFBM0MsQ0FkRixDQURGO0FBa0JEO0FBQ0YsT0F2QmUsQ0FBaEI7QUF5QkEsYUFBT2lCLFVBQVUsQ0FBQ2hCLEdBQVgsQ0FBZSxVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDL0MsMkJBQ0VELElBQUksQ0FBQ3BGLEtBRFA7QUFBQSxZQUFRa0YsUUFBUixnQkFBUUEsUUFBUjtBQUFBLFlBQWtCUyxRQUFsQixnQkFBa0JBLFFBQWxCO0FBQUEsWUFBNEJDLFNBQTVCLGdCQUE0QkEsT0FBNUI7QUFBQSxZQUFxQ1MsVUFBckMsZ0JBQXFDQSxVQUFyQztBQUFBLFlBQWlEUixJQUFqRCxnQkFBaURBLElBQWpEO0FBQUEsWUFBMERsRSxNQUExRDs7QUFFQSxZQUFJOEQsSUFBSixFQUFVO0FBQ1IsY0FBSUosS0FBSyxHQUFHLENBQVosRUFBZTtBQUNiLGdDQUNFO0FBQ0UsY0FBQSxTQUFTLEVBQUV0RyxHQUFHLENBQUNVLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLFFBQVQsQ0FBUixzQkFDWFMsT0FBTyxDQUFDVCxNQUFELEVBQVMsY0FBVCxDQURJLEVBQ3VCcUcsS0FBSyxLQUFLLENBRGpDLEVBRGhCO0FBSUUsY0FBQSxHQUFHLEVBQUVBLEtBSlA7QUFLRSxjQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNiTyxnQkFBQUEsU0FBTyxJQUFJQSxTQUFPLENBQUNJLE1BQUQsQ0FBbEI7QUFDRDtBQVBILGVBUU1yRSxNQVJOLEdBVUd5RSxRQUFRLEtBQUssS0FBYixpQkFDQztBQUFNLGNBQUEsU0FBUyxFQUFFM0csT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVDtBQUF4QixlQUEyQzZHLElBQTNDLENBWEosZUFhRTtBQUFNLGNBQUEsU0FBUyxFQUFFcEcsT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVDtBQUF4QixlQUEyQ2tHLFFBQTNDLENBYkYsQ0FERjtBQWlCRCxXQWxCRCxNQWtCTyxJQUFJRyxLQUFLLElBQUksQ0FBYixFQUFnQjtBQUNyQixnQ0FDRSxvQkFBQyxPQUFEO0FBQ0UsY0FBQSxTQUFTLEVBQUMsUUFEWjtBQUVFLGNBQUEsS0FBSyxFQUFFLElBRlQ7QUFHRSxjQUFBLE9BQU8sRUFBRXBFLE9BSFg7QUFJRSxjQUFBLE9BQU8sRUFBRSxDQUFDLE9BQUQsQ0FKWDtBQUtFLGNBQUEsR0FBRyxFQUFFb0UsS0FMUCxDQU1FOztBQU5GLDRCQVFFO0FBQUssY0FBQSxTQUFTLEVBQUU1RixPQUFPLENBQUNULE1BQUQsRUFBUyxRQUFUO0FBQXZCLDRCQUNFLG9CQUFDLGdCQUFELE9BREYsQ0FSRixDQURGO0FBY0QsV0FmTSxNQWVBO0FBQ0wsbUJBQU8sSUFBUDtBQUNEO0FBQ0YsU0FyQ0QsTUFxQ087QUFDTCw4QkFDRTtBQUNFLFlBQUEsU0FBUyxFQUFFRCxHQUFHLENBQUNVLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLFFBQVQsQ0FBUixzQkFDWFMsT0FBTyxDQUFDVCxNQUFELEVBQVMsY0FBVCxDQURJLEVBQ3VCcUcsS0FBSyxLQUFLLENBRGpDLEVBRGhCO0FBSUUsWUFBQSxHQUFHLEVBQUVBLEtBSlA7QUFLRSxZQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNiTyxjQUFBQSxTQUFPLElBQUlBLFNBQU8sQ0FBQ0ksTUFBRCxDQUFsQjtBQUNEO0FBUEgsYUFRTXJFLE1BUk4sR0FVR3lFLFFBQVEsS0FBSyxLQUFiLGlCQUNDO0FBQU0sWUFBQSxTQUFTLEVBQUUzRyxPQUFPLENBQUNULE1BQUQsRUFBUyxNQUFUO0FBQXhCLGFBQTJDNkcsSUFBM0MsQ0FYSixlQWFFO0FBQU0sWUFBQSxTQUFTLEVBQUVwRyxPQUFPLENBQUNULE1BQUQsRUFBUyxNQUFUO0FBQXhCLGFBQTJDa0csUUFBM0MsQ0FiRixDQURGO0FBaUJEO0FBQ0YsT0EzRE0sQ0FBUCxDQWxEa0QsQ0E4R2xEO0FBQ0QsSyxDQUNEOzs7O1dBQ0Esb0JBQVdzQixZQUFYLEVBQThCQyxHQUE5QixFQUF3QztBQUFBOztBQUN0QyxVQUFJQyxPQUFPLEdBQUcsRUFBZDtBQUNBLGtDQUlJLEtBQUsxRyxLQUFMLENBQVcyRyxTQUpmO0FBQUEseURBQ0VDLFNBREY7QUFBQSxVQUNFQSxTQURGLHVDQUNjLEtBRGQ7QUFBQSx5REFFRUMsV0FGRjtBQUFBLFVBRUVBLFdBRkYsdUNBRWdCLEVBRmhCO0FBQUEseURBR0VDLFlBSEY7QUFBQSxVQUdFQSxZQUhGLHVDQUdpQixJQUhqQjtBQUtBLFVBQVF6RixlQUFSLEdBQTRCLEtBQUtsQixLQUFqQyxDQUFRa0IsZUFBUjtBQUNBLFVBQVFYLFFBQVIsR0FBb0MrRixHQUFwQyxDQUFRL0YsUUFBUjtBQUFBLFVBQWtCcUcsYUFBbEIsR0FBb0NOLEdBQXBDLENBQWtCTSxhQUFsQjs7QUFFQSxVQUFJckcsUUFBSixFQUFjO0FBQ1pnRyxRQUFBQSxPQUFPLEdBQUdLLGFBQWEsQ0FBQyxDQUFELENBQWIsQ0FBaUJDLE9BQWpCLENBQXlCQyxTQUF6QixDQUFtQ0wsU0FBbkMsQ0FBVjs7QUFDQSxZQUFJRSxZQUFKLEVBQWtCO0FBQ2hCLGVBQUtJLFFBQUwsQ0FBYztBQUNaN0YsWUFBQUEsZUFBZSxFQUFFbUYsWUFBWSxDQUFDLENBQUQsQ0FEakI7QUFFWi9FLFlBQUFBLGVBQWUsc0JBQUtvRixXQUFMLEVBQW1CSCxPQUFuQjtBQUZILFdBQWQ7QUFJRCxTQUxELE1BS087QUFDTCxjQUFJSyxhQUFhLENBQUMsQ0FBRCxDQUFiLENBQWlCSSxNQUFqQixJQUEyQixDQUFDSixhQUFhLENBQUMsQ0FBRCxDQUFiLENBQWlCN0IsUUFBakQsRUFBMkQ7QUFDekQsZ0JBQUlzQixZQUFZLENBQUMsQ0FBRCxDQUFaLEtBQW9CbkYsZUFBeEIsRUFBeUM7QUFDdkMsbUJBQUs2RixRQUFMLENBQWM7QUFDWjdGLGdCQUFBQSxlQUFlLEVBQUVtRixZQUFZLENBQUMsQ0FBRCxDQURqQjtBQUVaL0UsZ0JBQUFBLGVBQWUsc0JBQUtvRixXQUFMLEVBQW1CSCxPQUFuQjtBQUZILGVBQWQ7QUFJRDtBQUNGO0FBQ0Y7QUFDRixPQWpCRCxNQWlCTztBQUNMLGFBQUtRLFFBQUwsQ0FBYztBQUNaN0YsVUFBQUEsZUFBZSxFQUFFcUYsT0FETDtBQUVaakYsVUFBQUEsZUFBZSxFQUFFO0FBRkwsU0FBZDtBQUlEOztBQUNELFVBQUksS0FBS3pCLEtBQUwsQ0FBV29ILFlBQWYsRUFBNkI7QUFDM0IsYUFBS3BILEtBQUwsQ0FBV29ILFlBQVgsQ0FBd0JaLFlBQXhCLEVBQXNDQyxHQUF0QztBQUNBO0FBQ0Q7O0FBQ0QsVUFBTTdCLFNBQVMsR0FBRywwQkFBSy9DLFNBQUwsK0ZBQWdCQyxPQUFoQixnRkFBeUIrQyxlQUF6QixPQUE4QyxFQUFoRTtBQUNBZ0MsTUFBQUEsV0FBVyxJQUFJLEtBQUtsRCxTQUFMLGlDQUFvQmlCLFNBQXBCLDJCQUFnQ2lDLFdBQWhDLEVBQThDSCxPQUE5QyxHQUFmO0FBQ0EscUNBQUsxRyxLQUFMLENBQVdtRSxXQUFYLGdGQUF3QmtELGtCQUF4QixLQUNFcEksS0FBSyxDQUFDb0YsUUFBTiwyQkFBZSxLQUFLckUsS0FBTCxDQUFXbUUsV0FBMUIsMkRBQWUsdUJBQXdCa0Qsa0JBQXZDLEVBQTJELElBQTNELEVBQWlFLENBQy9EYixZQUQrRCxFQUUvREMsR0FGK0QsQ0FBakUsQ0FERjtBQUtEOzs7V0FDRCx1QkFBYztBQUFBOztBQUNaLHFDQUFLNUUsU0FBTCxDQUFlQyxPQUFmLGtGQUF3QndGLFdBQXhCO0FBQ0Q7OztXQUNELGlCQUFRdEgsS0FBUixFQUFldUgsSUFBZixFQUFxQjtBQUFBOztBQUNuQixVQUFJQyxPQUFPLEdBQUdELElBQWQ7O0FBQ0EsVUFBSXZILEtBQUssU0FBTCxJQUFBQSxLQUFLLFdBQUwsSUFBQUEsS0FBSyxDQUFFc0MsSUFBUCxJQUFlLENBQUF0QyxLQUFLLFNBQUwsSUFBQUEsS0FBSyxXQUFMLDJCQUFBQSxLQUFLLENBQUVzQyxJQUFQLDREQUFheEIsTUFBYixJQUFzQixDQUF6QyxFQUE0QztBQUMxQyxZQUFJd0IsSUFBSSxHQUFHdEMsS0FBSyxDQUFDc0MsSUFBakI7O0FBQ0EsYUFBSyxJQUFJbUYsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsSUFBR25GLElBQUgsYUFBR0EsSUFBSCx1QkFBR0EsSUFBSSxDQUFFeEIsTUFBVCxDQUFqQixFQUFrQzJHLENBQUMsRUFBbkMsRUFBdUM7QUFDckMsY0FBSW5GLElBQUksQ0FBQ21GLENBQUQsQ0FBSixDQUFRbEgsS0FBUixJQUFpQmdILElBQXJCLEVBQTJCO0FBQ3pCQyxZQUFBQSxPQUFPLEdBQUdsRixJQUFJLENBQUNtRixDQUFELENBQUosQ0FBUUMsS0FBbEI7QUFDRDtBQUNGO0FBQ0Y7O0FBQ0QsYUFBT0YsT0FBUDtBQUNEOzs7V0FDRCxzQkFBYWxGLElBQWIsRUFBbUI7QUFBQTs7QUFDakIscUNBQUtLLFFBQUwsQ0FBY2IsT0FBZCxrRkFBdUJtQyxLQUF2QixDQUE2QjBELE9BQTdCLENBQXFDckYsSUFBckM7QUFDRDs7O1dBQ0QscUJBQVlBLElBQVosRUFBa0I7QUFBQTs7QUFDaEIsb0NBQUtzRixPQUFMLENBQWE5RixPQUFiLGdGQUFzQm1DLEtBQXRCLENBQTRCMEQsT0FBNUIsQ0FBb0NyRixJQUFwQztBQUNEOzs7V0FZRCxrQkFBUztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ1AseUJBbUJJLEtBQUt0QyxLQW5CVDtBQUFBLDhDQUNFNkgsT0FERjtBQUFBLFVBQ0VBLE9BREYscUNBQ1ksRUFEWjtBQUFBLCtDQUVFbkMsVUFGRjtBQUFBLFVBRUVBLFVBRkYsc0NBRWUsSUFGZjtBQUFBLFVBR0VSLFFBSEYsZ0JBR0VBLFFBSEY7QUFBQSwrQ0FJRTRDLFNBSkY7QUFBQSxVQUlFQSxTQUpGLHNDQUljLEVBSmQ7QUFBQSwrQ0FLRWhELFVBTEY7QUFBQSxVQUtFQSxVQUxGLHNDQUtlLEVBTGY7QUFBQSwrQ0FNRTZCLFNBTkY7QUFBQSxVQU1FQSxTQU5GLHNDQU1jLEVBTmQ7QUFBQSwrQ0FPRW9CLFNBUEY7QUFBQSxVQU9FQSxTQVBGLHNDQU9jLEVBUGQ7QUFBQSwrQ0FRRUMsUUFSRjtBQUFBLFVBUUVBLFFBUkYsc0NBUWEsS0FSYjtBQUFBLCtDQVNFQyxZQVRGO0FBQUEsVUFTRUEsWUFURixzQ0FTaUIsRUFUakI7QUFBQSwrQ0FVRUMsY0FWRjtBQUFBLFVBVUVBLGNBVkYsc0NBVW1CLElBVm5CO0FBQUEsOENBV0VDLE9BWEY7QUFBQSxVQVdFQSxPQVhGLHFDQVdZLEVBWFo7QUFBQSwrQ0FZRUMsVUFaRjtBQUFBLFVBWUVBLFVBWkYsc0NBWWUsSUFaZjtBQUFBLFVBYUVDLFVBYkYsZ0JBYUVBLFVBYkY7QUFBQSwrQ0FjRUMsZUFkRjtBQUFBLFVBY0VBLGVBZEYsc0NBY29CLElBZHBCO0FBQUEsVUFlRUMsU0FmRixnQkFlRUEsU0FmRjtBQUFBLCtDQWdCRUMsa0JBaEJGO0FBQUEsVUFnQkVBLGtCQWhCRixzQ0FnQnVCLFFBaEJ2QjtBQUFBLFVBaUJFdkMsV0FqQkYsZ0JBaUJFQSxXQWpCRjtBQUFBLCtDQWtCRXZELGNBbEJGO0FBQUEsVUFrQkVBLGNBbEJGLHNDQWtCbUIsU0FsQm5COztBQW9CQSw4QkFTSW9DLFVBVEosQ0FDRWIsS0FERjtBQUFBLFVBQ0VBLEtBREYsa0NBQ1UsRUFEVjtBQUFBLGtDQVNJYSxVQVRKLENBRUUyRCxZQUZGO0FBQUEsVUFFRUEsWUFGRixzQ0FFaUIsSUFGakI7QUFBQSxrQ0FTSTNELFVBVEosQ0FHRTRELFlBSEY7QUFBQSxVQUdFQSxZQUhGLHNDQUdpQixJQUhqQjtBQUFBLGtDQVNJNUQsVUFUSixDQUlFNkQsZ0JBSkY7QUFBQSxVQUlFQSxnQkFKRixzQ0FJcUIsSUFKckI7QUFBQSxrQ0FTSTdELFVBVEosQ0FLRThELFdBTEY7QUFBQSxVQUtFQSxXQUxGLHNDQUtnQixJQUxoQjtBQUFBLGtDQVNJOUQsVUFUSixDQU1FK0QsVUFORjtBQUFBLFVBTUVBLFVBTkYsc0NBTWUsRUFOZjtBQUFBLGtDQVNJL0QsVUFUSixDQU9FZ0MsWUFQRjtBQUFBLFVBT0VBLFlBUEYsc0NBT2lCLElBUGpCO0FBQUEsVUFRS2dDLGdCQVJMLDRCQVNJaEUsVUFUSjs7QUFXQSw2QkFLSTZCLFNBTEosQ0FDRTFDLEtBREY7QUFBQSxVQUNTOEUsU0FEVCxpQ0FDcUIsRUFEckI7QUFBQSxrQ0FLSXBDLFNBTEosQ0FFRWpCLFVBRkY7QUFBQSxVQUVjc0QsVUFGZCxzQ0FFMkIsSUFGM0I7QUFBQSxrQ0FLSXJDLFNBTEosQ0FHRXNDLFVBSEY7QUFBQSxVQUdFQSxVQUhGLHNDQUdlLE9BSGY7QUFBQSxVQUlLQyxlQUpMLDRCQUtJdkMsU0FMSjs7QUFPQSxVQUFJd0MsV0FBVztBQUFLVixRQUFBQSxZQUFZLEVBQVpBLFlBQUw7QUFBbUJ4RSxRQUFBQSxLQUFLLEVBQUxBO0FBQW5CLFNBQTZCNkUsZ0JBQTdCLENBQWY7O0FBQ0EsVUFBSU0sV0FBa0IsR0FBRyxFQUF6QjtBQUNBLFVBQU1DLFdBQWdCLEdBQUcsRUFBekI7QUFDQSxVQUFNQyxXQUFnQixHQUFHLEVBQXpCO0FBQ0EsVUFBTUMsWUFBaUIsR0FBRyxFQUExQjtBQUNBLFVBQU14RCxhQUFrQixHQUFHLEVBQTNCO0FBQ0E4QixNQUFBQSxPQUFPLENBQUMxQyxHQUFSLENBQVksVUFBQ0MsSUFBRCxFQUFlO0FBQUE7O0FBQ3pCLFlBQUlvRSxJQUFJLHFCQUFRcEUsSUFBUixDQUFSOztBQUNBLFlBQUlvRSxJQUFJLENBQUNDLE1BQUwsS0FBZ0IsSUFBaEIsSUFBd0IsaUJBQUFELElBQUksQ0FBQ0MsTUFBTCw4REFBYXZILElBQWIsTUFBc0IsSUFBbEQsRUFBd0Q7QUFBQTs7QUFDdERtSCxVQUFBQSxXQUFXLENBQUM5QyxJQUFaLENBQWlCO0FBQ2ZuRyxZQUFBQSxJQUFJLEVBQUVvSixJQUFJLENBQUNFLEtBQUwsSUFBY0YsSUFBSSxDQUFDRyxTQURWO0FBRWZqQyxZQUFBQSxLQUFLLEVBQUUsa0JBQUE4QixJQUFJLENBQUNDLE1BQUwsZ0VBQWEvQixLQUFiLEtBQXNCOEIsSUFBSSxDQUFDSSxLQUZuQjtBQUdmNUksWUFBQUEsSUFBSSxFQUFFd0ksSUFBSSxDQUFDeEksSUFISTtBQUlmaEIsWUFBQUEsS0FBSyxFQUFFd0osSUFBSSxDQUFDeEosS0FKRztBQUtmNkosWUFBQUEsUUFBUSxtQkFBRUwsSUFBSSxDQUFDQyxNQUFQLGtEQUFFLGNBQWFJLFFBTFI7QUFNZkMsWUFBQUEsVUFBVSxtQkFBRU4sSUFBSSxDQUFDQyxNQUFQLGtEQUFFLGNBQWFLLFVBTlY7QUFPZkMsWUFBQUEsS0FBSyxFQUFFUCxJQUFJLENBQUNRLFdBQUwsR0FBbUJSLElBQUksQ0FBQ1EsV0FBeEIsR0FBc0M7QUFQOUIsV0FBakI7QUFTRDs7QUFFRCxlQUFPUixJQUFJLENBQUNDLE1BQVo7QUFDQUQsUUFBQUEsSUFBSSxDQUFDUyxNQUFMLEtBQWdCLEtBQWhCLElBQ0VYLFdBQVcsQ0FBQy9DLElBQVosQ0FBaUI7QUFDZm5HLFVBQUFBLElBQUksRUFBRW9KLElBQUksQ0FBQ0UsS0FBTCxJQUFjRixJQUFJLENBQUNHLFNBRFY7QUFFZmpDLFVBQUFBLEtBQUssRUFBRThCLElBQUksQ0FBQ0ksS0FGRztBQUdmRyxVQUFBQSxLQUFLLEVBQUVQLElBQUksQ0FBQ08sS0FBTCxHQUFhUCxJQUFJLENBQUNPLEtBQWxCLEdBQTBCLEVBSGxCO0FBSWYvSSxVQUFBQSxJQUFJLEVBQUV3SSxJQUFJLENBQUN4SSxJQUpJO0FBS2ZrSixVQUFBQSxJQUFJLEVBQUVWLElBQUksQ0FBQ1UsSUFMSTtBQU1mQyxVQUFBQSxRQUFRLEVBQUVYLElBQUksQ0FBQ1csUUFOQTtBQU9mbkssVUFBQUEsS0FBSyxFQUFFTCxJQUFJLG1CQUFNNkosSUFBSSxDQUFDeEosS0FBWCxHQUFvQixDQUFDLGNBQUQsRUFBaUIsT0FBakIsQ0FBcEI7QUFQSSxTQUFqQixDQURGOztBQVVBLFlBQ0UsZ0JBQUF3SixJQUFJLENBQUN4SixLQUFMLDREQUFZdUosWUFBWixNQUE2QmEsU0FBN0IsSUFDQSxpQkFBQVosSUFBSSxDQUFDeEosS0FBTCw4REFBWXVKLFlBQVosTUFBNkIsSUFGL0IsRUFHRTtBQUFBOztBQUNBLGNBQU1uSixJQUFJLEdBQUdvSixJQUFJLENBQUNFLEtBQUwsSUFBY0YsSUFBSSxDQUFDRyxTQUFoQztBQUNBSixVQUFBQSxZQUFZLENBQUNuSixJQUFELENBQVosbUJBQXFCb0osSUFBSSxDQUFDeEosS0FBMUIsaURBQXFCLGFBQVl1SixZQUFqQztBQUNEOztBQUNELGVBQU9DLElBQUksQ0FBQ08sS0FBWjtBQUNBLGVBQU9QLElBQUksQ0FBQ1UsSUFBWjs7QUFDQSxZQUFJVixJQUFJLENBQUNhLFlBQVQsRUFBdUI7QUFDckJiLFVBQUFBLElBQUksQ0FBQ2MsV0FBTCxHQUFtQjtBQUNqQnRKLFlBQUFBLElBQUksRUFBRXdJLElBQUksQ0FBQ3hJLElBRE07QUFFakJoQixZQUFBQSxLQUFLLEVBQUV3SixJQUFJLENBQUN4SjtBQUZLLFdBQW5CO0FBSUQ7O0FBQ0QsZUFBT3dKLElBQUksQ0FBQ3hJLElBQVo7O0FBQ0EsWUFBSXVKLFFBQVEscUJBQVFmLElBQUksQ0FBQ3hKLEtBQWIsQ0FBWjs7QUFDQSxZQUFJd0osSUFBSSxDQUFDZ0IsS0FBVCxFQUFnQjtBQUNkaEIsVUFBQUEsSUFBSTtBQUNGaUIsWUFBQUEsTUFBTSxFQUFFLGdCQUFDbEQsSUFBRCxFQUFlO0FBQ3JCLGtDQUNFLDBDQUNHQSxJQUFJLEtBQUssRUFBVCxJQUFlQSxJQUFJLEtBQUssSUFBeEIsSUFBZ0NBLElBQUksS0FBSzZDLFNBQXpDLGlCQUNDO0FBQUssZ0JBQUEsU0FBUyxFQUFFM0ssT0FBTyxDQUFDVCxNQUFELEVBQVMsVUFBVDtBQUF2Qiw4QkFDRTtBQUFNLGdCQUFBLFNBQVMsRUFBRVMsT0FBTyxDQUFDVCxNQUFELEVBQVMsVUFBVDtBQUF4QixpQkFDRyxNQUFJLENBQUMwTCxPQUFMLENBQWFILFFBQWIsRUFBdUJoRCxJQUF2QixDQURILENBREYsQ0FGSixDQURGO0FBV0Q7QUFiQyxhQWNDaUMsSUFkRCxDQUFKO0FBZ0JELFNBakJELE1BaUJPLElBQUksQ0FBQ0EsSUFBSSxDQUFDbUIsUUFBVixFQUFvQjtBQUN6Qm5CLFVBQUFBLElBQUk7QUFDRmlCLFlBQUFBLE1BQU0sRUFBRSxnQkFBQ2xELElBQUQsRUFBZTtBQUNyQixrQ0FBTywwQ0FBRyxNQUFJLENBQUNtRCxPQUFMLENBQWFILFFBQWIsRUFBdUJoRCxJQUF2QixDQUFILENBQVA7QUFDRDtBQUhDLGFBSUNpQyxJQUpELENBQUo7QUFNRCxTQVBNLE1BT0E7QUFDTEEsVUFBQUEsSUFBSSxxQkFBUUEsSUFBUixDQUFKO0FBQ0Q7O0FBQ0QsZUFBT0EsSUFBSSxDQUFDeEosS0FBWjtBQUNBLFlBQUksVUFBQXdKLElBQUksVUFBSixzQ0FBTW9CLFVBQU4sTUFBcUIsS0FBekIsRUFBZ0N4QixXQUFXLENBQUM3QyxJQUFaLENBQWlCaUQsSUFBakI7QUFDakMsT0F2RUQ7QUF3RUEsVUFBTXFCLFdBQWdCLEdBQUcsRUFBekI7O0FBQ0EscUJBQTZCakwsTUFBTSxFQUFuQztBQUFBLFVBQVFzRyxnQkFBUixZQUFRQSxnQkFBUjs7QUFDQSxVQUFJRSxRQUFRLEdBQUcsSUFBZjtBQUNBLFVBQUksQ0FBQUgsV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxZQUFBQSxXQUFXLENBQUVHLFFBQWIsTUFBMEIsS0FBOUIsRUFBcUNBLFFBQVEsR0FBRyxLQUFYLENBQXJDLEtBQ0ssSUFBSUYsZ0JBQWdCLENBQUNFLFFBQWpCLEtBQThCLEtBQWxDLEVBQXlDQSxRQUFRLEdBQUcsS0FBWDs7QUFDOUMsVUFBSWdDLFVBQVUsSUFBSSxJQUFsQixFQUF3QjtBQUN0QixZQUFJRCxPQUFPLENBQUMyQyxPQUFSLENBQWdCLFFBQWhCLElBQTRCLENBQUMsQ0FBakMsRUFBb0M7QUFDbEMvRSxVQUFBQSxhQUFhLENBQUNRLElBQWQsZUFDRSxvQkFBQyxNQUFEO0FBQ0UsWUFBQSxPQUFPLEVBQUUsaUJBQUNQLE1BQUQsRUFBaUI7QUFDeEIsa0JBQUlxQyxVQUFKLEVBQWdCO0FBQ2RBLGdCQUFBQSxVQUFVLENBQUNyQyxNQUFNLENBQUNpQixTQUFQLElBQW9CakIsTUFBckIsRUFBNkIsUUFBN0IsQ0FBVjtBQUNBO0FBQ0Q7O0FBQ0QsY0FBQSxNQUFJLENBQUMrRSxRQUFMLENBQWMvRSxNQUFNLENBQUNpQixTQUFQLElBQW9CakIsTUFBbEMsRUFBMEMsUUFBMUM7QUFDRCxhQVBIO0FBUUUsWUFBQSxJQUFJLGVBQUUsb0JBQUMsV0FBRDtBQVJSLDRCQURGO0FBY0Q7O0FBQ0QsWUFBSW1DLE9BQU8sQ0FBQzJDLE9BQVIsQ0FBZ0IsUUFBaEIsSUFBNEIsQ0FBQyxDQUFqQyxFQUFvQztBQUNsQy9FLFVBQUFBLGFBQWEsQ0FBQ1EsSUFBZCxlQUNFLG9CQUFDLE1BQUQ7QUFDRSxZQUFBLE9BQU8sRUFBRSxpQkFBQ1AsTUFBRCxFQUFpQjtBQUN4QixrQkFBSXFDLFVBQUosRUFBZ0I7QUFDZEEsZ0JBQUFBLFVBQVUsQ0FBQ3JDLE1BQU0sQ0FBQ2lCLFNBQVAsSUFBb0JqQixNQUFyQixFQUE2QixRQUE3QixDQUFWO0FBQ0E7QUFDRDs7QUFDRCxjQUFBLE1BQUksQ0FBQytFLFFBQUwsQ0FBYy9FLE1BQU0sQ0FBQ2lCLFNBQVAsSUFBb0JqQixNQUFsQyxFQUEwQyxRQUExQztBQUNELGFBUEg7QUFRRSxZQUFBLElBQUksZUFBRSxvQkFBQyxZQUFEO0FBUlIsNEJBREY7QUFjRDtBQUNGOztBQUNELFVBQUltQyxPQUFPLENBQUMyQyxPQUFSLENBQWdCLEtBQWhCLElBQXlCLENBQUMsQ0FBOUIsRUFBaUM7QUFDL0JELFFBQUFBLFdBQVcsQ0FBQ3RFLElBQVosZUFDRSxvQkFBQyxNQUFEO0FBQ0UsVUFBQSxJQUFJLEVBQUUsU0FEUjtBQUVFLFVBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2IsZ0JBQVE4QixVQUFSLEdBQXVCLE1BQUksQ0FBQ3JJLEtBQTVCLENBQVFxSSxVQUFSOztBQUNBLGdCQUFJQSxVQUFKLEVBQWdCO0FBQ2RBLGNBQUFBLFVBQVU7QUFDVjtBQUNEOztBQUNELFlBQUEsTUFBSSxDQUFDMEMsUUFBTDtBQUNELFdBVEg7QUFVRSxVQUFBLElBQUksZUFBRSxvQkFBQyxZQUFEO0FBVlIsMEJBREY7QUFnQkQ7O0FBQ0QsVUFBSTVDLE9BQU8sQ0FBQzJDLE9BQVIsQ0FBZ0IsUUFBaEIsSUFBNEIsQ0FBQyxDQUFqQyxFQUFvQztBQUNsQyxZQUFJcEksY0FBYyxJQUFJLFNBQXRCLEVBQWlDO0FBQy9CbUksVUFBQUEsV0FBVyxDQUFDdEUsSUFBWixlQUNFLG9CQUFDLE1BQUQsQ0FDRTtBQURGO0FBRUUsWUFBQSxPQUFPLEVBQUUsS0FBSy9ELFFBQUwsQ0FBY3dJLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWDtBQUdFLFlBQUEsSUFBSSxlQUFFLG9CQUFDLGNBQUQsT0FIUjtBQUlFLFlBQUEsTUFBTTtBQUpSLDRCQURGO0FBVUQsU0FYRCxNQVdPLElBQUl0SSxjQUFjLElBQUksS0FBdEIsRUFBNkI7QUFDbENxRCxVQUFBQSxhQUFhLENBQUNRLElBQWQsZUFDRSxvQkFBQyxNQUFELENBQ0U7QUFERjtBQUVFLFlBQUEsT0FBTyxFQUFFLGlCQUFDUCxNQUFELEVBQWlCO0FBQ3hCLGNBQUEsTUFBSSxDQUFDeEQsUUFBTCxDQUFjd0QsTUFBZDtBQUNELGFBSkg7QUFLRSxZQUFBLElBQUksZUFBRSxvQkFBQyxjQUFELE9BTFI7QUFNRSxZQUFBLE1BQU07QUFOUiw0QkFERjtBQVlEO0FBQ0Y7O0FBQ0QsVUFBSWlGLEtBQUssQ0FBQ0MsT0FBTixDQUFjaEcsUUFBZCxDQUFKLEVBQTZCO0FBQzNCQSxRQUFBQSxRQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFDQyxJQUFELEVBQWU7QUFDMUIsY0FBSTZGLEtBQUssQ0FBQ0MsT0FBTixDQUFjOUYsSUFBZCxDQUFKLEVBQXlCO0FBQ3ZCQSxZQUFBQSxJQUFJLENBQUNELEdBQUwsQ0FBUyxVQUFDZ0csS0FBRCxFQUFXO0FBQUE7O0FBQ2xCLGtCQUFJLENBQUFBLEtBQUssU0FBTCxJQUFBQSxLQUFLLFdBQUwsNEJBQUFBLEtBQUssQ0FBRW5MLEtBQVAsOERBQWMyRixRQUFkLEtBQTBCLFlBQTlCLEVBQTRDO0FBQzFDa0YsZ0JBQUFBLFdBQVcsQ0FBQ3RFLElBQVosQ0FBaUI0RSxLQUFqQjtBQUNELGVBRkQsTUFFTyxJQUFJLENBQUFBLEtBQUssU0FBTCxJQUFBQSxLQUFLLFdBQUwsNkJBQUFBLEtBQUssQ0FBRW5MLEtBQVAsZ0VBQWMyRixRQUFkLEtBQTBCLGNBQTlCLEVBQThDO0FBQ25ESSxnQkFBQUEsYUFBYSxDQUFDUSxJQUFkLENBQW1CNEUsS0FBbkI7QUFDRDtBQUNGLGFBTkQ7QUFPRCxXQVJELE1BUU87QUFBQTs7QUFDTCxnQkFBSSxDQUFBL0YsSUFBSSxTQUFKLElBQUFBLElBQUksV0FBSiw0QkFBQUEsSUFBSSxDQUFFcEYsS0FBTiw4REFBYTJGLFFBQWIsS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNrRixjQUFBQSxXQUFXLENBQUN0RSxJQUFaLENBQWlCbkIsSUFBakI7QUFDRCxhQUZELE1BRU8sSUFBSSxDQUFBQSxJQUFJLFNBQUosSUFBQUEsSUFBSSxXQUFKLDRCQUFBQSxJQUFJLENBQUVwRixLQUFOLDhEQUFhMkYsUUFBYixLQUF5QixjQUE3QixFQUE2QztBQUNsREksY0FBQUEsYUFBYSxDQUFDUSxJQUFkLENBQW1CbkIsSUFBbkI7QUFDRDtBQUNGO0FBQ0YsU0FoQkQ7QUFpQkQsT0FsQkQsTUFrQk8sSUFBSUYsUUFBSixFQUFjO0FBQ25CLFlBQVFsRixLQUFSLEdBQXVCa0YsUUFBdkIsQ0FBUWxGLEtBQVI7O0FBQ0EsWUFBSSxDQUFBQSxLQUFLLFNBQUwsSUFBQUEsS0FBSyxXQUFMLFlBQUFBLEtBQUssQ0FBRTJGLFFBQVAsS0FBbUIsWUFBdkIsRUFBcUM7QUFDbkNrRixVQUFBQSxXQUFXLENBQUN0RSxJQUFaLENBQWlCckIsUUFBakI7QUFDRCxTQUZELE1BRU8sSUFBSSxDQUFBbEYsS0FBSyxTQUFMLElBQUFBLEtBQUssV0FBTCxZQUFBQSxLQUFLLENBQUUyRixRQUFQLEtBQW1CLGNBQXZCLEVBQXVDO0FBQzVDSSxVQUFBQSxhQUFhLENBQUNRLElBQWQsQ0FBbUJyQixRQUFuQjtBQUNEO0FBQ0Y7O0FBQ0R3RCxNQUFBQSxZQUFZLElBQ1ZVLFdBQVcsQ0FBQzdDLElBQVosQ0FBaUI7QUFDZnFELFFBQUFBLEtBQUssRUFBRSxJQURRO0FBRWZELFFBQUFBLFNBQVMsRUFBRSxRQUZJO0FBR2Z5QixRQUFBQSxLQUFLLEVBQUVuRixXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLElBQUFBLFdBQVcsQ0FBRW9GLFNBQWIsR0FDSHBGLFdBREcsYUFDSEEsV0FERyx1QkFDSEEsV0FBVyxDQUFFb0YsU0FEVixHQUVIbkYsZ0JBQWdCLENBQUNtRixTQUFqQixHQUNBbkYsZ0JBQWdCLENBQUNtRixTQURqQixHQUVBLFFBUFc7QUFRZkMsUUFBQUEsS0FBSyxFQUFFckYsV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxJQUFBQSxXQUFXLENBQUVxRixLQUFiLEdBQ0hyRixXQURHLGFBQ0hBLFdBREcsdUJBQ0hBLFdBQVcsQ0FBRXFGLEtBRFYsR0FFSHBGLGdCQUFnQixDQUFDb0YsS0FBakIsR0FDQXBGLGdCQUFnQixDQUFDb0YsS0FEakIsR0FFQSxHQVpXO0FBYWZDLFFBQUFBLEtBQUssRUFBRSxPQWJRO0FBY2ZkLFFBQUFBLE1BQU0sRUFBRSxnQkFBQ2xELElBQUQsRUFBWXZCLE1BQVosRUFBNEI7QUFDbEMsOEJBQ0U7QUFBSyxZQUFBLFNBQVMsRUFBRXZHLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLFFBQVQ7QUFBdkIsYUFDRyxNQUFJLENBQUN3TSxrQkFBTCxDQUF3QnpGLGFBQXhCLEVBQXVDQyxNQUF2QyxDQURILENBREY7QUFLRDtBQXBCYyxPQUFqQixDQURGO0FBdUJBLFVBQUk0QyxXQUFKLEVBQ0VRLFdBQVcsSUFDVDtBQUNFUSxRQUFBQSxLQUFLLEVBQUUsSUFEVDtBQUVFMEIsUUFBQUEsS0FBSyxFQUFFLEVBRlQ7QUFHRUYsUUFBQUEsS0FBSyxFQUFFLFFBSFQ7QUFJRVgsUUFBQUEsTUFBTSxFQUFFLGdCQUFDbEQsSUFBRCxFQUFPa0UsT0FBUCxFQUFnQnBHLEtBQWhCLEVBQTBCO0FBQ2hDLDhCQUFPLDBDQUFHQSxLQUFLLEdBQUcsQ0FBWCxDQUFQO0FBQ0Q7QUFOSCxPQURTLDRCQVNOK0QsV0FUTSxFQUFYO0FBV0YsVUFBSXNDLFVBQVUsR0FBR2hHLFVBQVUsSUFBSTJELFdBQVcsQ0FBQ3ZJLE1BQVosR0FBcUIsQ0FBcEQ7QUFDQSxVQUFJNkssUUFBUSxHQUFHekQsY0FBYyxJQUFJMkMsV0FBVyxDQUFDL0osTUFBWixHQUFxQixDQUF0RDs7QUFDQSxVQUFJZ0UsVUFBVSxDQUFDOEcsVUFBWCxLQUEwQixLQUE5QixFQUFxQztBQUNuQyxZQUFNQyxNQUFNLEdBQUcxQyxXQUFXLENBQUMwQyxNQUEzQjtBQUNBMUMsUUFBQUEsV0FBVyxtQ0FDTkEsV0FETTtBQUVUMEMsVUFBQUEsTUFBTTtBQUFJQyxZQUFBQSxDQUFDLEVBQUU7QUFBUCxhQUF5QkQsTUFBekI7QUFGRyxVQUFYO0FBSUQ7O0FBQ0QscUJBQW9Cak0sTUFBTSxFQUExQjtBQUFBLFVBQU1tTSxTQUFOLFlBQU1BLFNBQU47O0FBQ0EsMEJBQ0U7QUFBSyxRQUFBLFNBQVMsRUFBRWhOLEdBQUcsQ0FBQ1UsT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVCxDQUFSLEVBQTBCdUosU0FBMUI7QUFBbkIsU0FDRyxLQUFLdkksS0FBTCxDQUFXZ00sU0FBWCxpQkFDQztBQUFLLFFBQUEsU0FBUyxFQUFFak4sR0FBRyxDQUFDVSxPQUFPLENBQUNULE1BQUQsRUFBUyxZQUFULENBQVI7QUFBbkIsU0FDRyxLQUFLZ0IsS0FBTCxDQUFXZ00sU0FEZCxDQUZKLGVBTUU7QUFDRSxRQUFBLFNBQVMsRUFBRWpOLEdBQUcsQ0FBQ1UsT0FBTyxDQUFDVCxNQUFELEVBQVMsV0FBVCxDQUFSLENBRGhCO0FBRUUsUUFBQSxLQUFLLEVBQUU7QUFBRWlOLFVBQUFBLE9BQU8sRUFBRTtBQUFYO0FBRlQsU0FJR2pFLFFBQVEsaUJBQ1A7QUFBSyxRQUFBLFNBQVMsRUFBRXZJLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLE1BQVQ7QUFBdkIsc0JBQ0Usb0JBQUMsSUFBRDtBQUNFLFFBQUEsS0FBSyxvQkFBTytKLFNBQVAsQ0FEUDtBQUVFLFFBQUEsUUFBUSxFQUFFLEtBRlo7QUFHRSxRQUFBLFNBQVMsRUFBRSxLQUhiO0FBSUUsUUFBQSxVQUFVLEVBQUVDLFVBSmQ7QUFLRSxRQUFBLFFBQVEsRUFBRSxLQUFLa0QsVUFBTCxDQUFnQmxCLElBQWhCLENBQXFCLElBQXJCLENBTFo7QUFNRSxRQUFBLFlBQVksRUFBRSxDQUFDLEtBQUs3SyxLQUFMLENBQVdrQixlQUFaLENBTmhCO0FBT0UsUUFBQSxVQUFVLEVBQUU0SDtBQVBkLFNBUU1DLGVBUk4sRUFERixDQUxKLGVBa0JFO0FBQ0UsUUFBQSxTQUFTLEVBQUVuSyxHQUFHLENBQUNVLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLE9BQVQsQ0FBUixzQkFDWFMsT0FBTyxDQUFDVCxNQUFELEVBQVMsZUFBVCxDQURJLEVBQ3dCLENBQUNnSixRQUR6QjtBQURoQixTQUtHdEMsVUFBVSxJQUFJMkQsV0FBVyxDQUFDdkksTUFBWixHQUFxQixDQUFuQyxpQkFDQyxvQkFBQyxZQUFEO0FBQ0UsUUFBQSxXQUFXLEVBQUV1SSxXQURmO0FBRUUsUUFBQSxrQkFBa0IsRUFBRWIsa0JBRnRCO0FBR0UsUUFBQSxRQUFRLEVBQUUsS0FBSy9ILFFBQUwsQ0FBY3VLLElBQWQsQ0FBbUIsSUFBbkIsQ0FIWjtBQUlFLFFBQUEsT0FBTyxFQUFFLEtBQUtoTCxLQUFMLENBQVdtTSxPQUp0QjtBQUtFLFFBQUEsR0FBRyxFQUFFLEtBQUt0SyxTQUxaO0FBTUUsUUFBQSxlQUFlLEVBQUUsS0FBSzdCLEtBQUwsQ0FBV29NO0FBTjlCLFFBTkosRUFnQkdsRSxjQUFjLElBQ2IyQyxXQUFXLENBQUMvSixNQUFaLEdBQXFCLENBRHRCLElBRUMwSCxrQkFBa0IsSUFBSSxRQUZ2QixJQUdDLEtBQUs2RCxpQkFBTCxDQUF1QnhCLFdBQXZCLEVBQW9DeEIsV0FBVyxDQUFDdkksTUFBWixJQUFzQixDQUExRCxDQW5CSixlQW9CRTtBQUNFLFFBQUEsU0FBUyxFQUFFL0IsR0FBRyxDQUFDVSxPQUFPLENBQUNULE1BQUQsRUFBUyxPQUFULENBQVIsc0JBQ1hTLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLFdBQVQsQ0FESSxFQUVUME0sVUFBVSxJQUFJLENBQUNDLFFBQWhCLElBQ0E3RyxVQUFVLENBQUN3SCxPQUFYLElBQXNCLEtBRHRCLElBRUEsd0JBQUF4SCxVQUFVLENBQUN3SCxPQUFYLDRFQUFvQnBLLElBQXBCLEtBQTRCLEtBRjVCLElBR0EseUJBQUE0QyxVQUFVLENBQUN3SCxPQUFYLHVHQUFvQkMsS0FBcEIsZ0ZBQTJCekwsTUFBM0IsS0FBcUMsQ0FIckMsSUFJQSxDQUFBaUwsU0FBUyxTQUFULElBQUFBLFNBQVMsV0FBVCxnQ0FBQUEsU0FBUyxDQUFFUSxLQUFYLHNFQUFrQnpMLE1BQWxCLEtBQTRCLENBSjVCLElBS0EsQ0FBQWlMLFNBQVMsU0FBVCxJQUFBQSxTQUFTLFdBQVQsWUFBQUEsU0FBUyxDQUFFN0osSUFBWCxLQUFtQixLQVBUO0FBRGhCLHNCQVdFLG9CQUFDLEtBQUQ7QUFDRSxRQUFBLEdBQUcsRUFBRSxLQUFLUyxRQURaO0FBRUUsUUFBQSxPQUFPLEVBQUV5RyxXQUZYO0FBR0UsUUFBQSxVQUFVO0FBQ1JvRCxVQUFBQSxVQUFVLEVBQUUsMEJBQW9DO0FBQUEsZ0JBQWpDQyxRQUFpQyxRQUFqQ0EsUUFBaUM7QUFBQSxnQkFBdkJDLFFBQXVCLFFBQXZCQSxRQUF1QjtBQUFBLGdCQUFiMUcsTUFBYSxRQUFiQSxNQUFhO0FBQzlDLGdDQUNFLDBDQUNHeUcsUUFBUSxnQkFDUCxvQkFBQyxZQUFEO0FBQ0UsY0FBQSxPQUFPLEVBQUUsaUJBQUNFLENBQUQ7QUFBQSx1QkFBT0QsUUFBUSxDQUFDMUcsTUFBRCxFQUFTMkcsQ0FBVCxDQUFmO0FBQUEsZUFEWDtBQUVFLGNBQUEsU0FBUyxFQUFFbE4sT0FBTyxDQUFDVCxNQUFELEVBQVMsYUFBVDtBQUZwQixjQURPLEdBTVBnSCxNQUFNLENBQUNmLFVBQVAsaUJBQ0Usb0JBQUMsYUFBRDtBQUNFLGNBQUEsT0FBTyxFQUFFLGlCQUFDMEgsQ0FBRDtBQUFBLHVCQUFPRCxRQUFRLENBQUMxRyxNQUFELEVBQVMyRyxDQUFULENBQWY7QUFBQSxlQURYO0FBRUUsY0FBQSxTQUFTLEVBQUVsTixPQUFPLENBQUNULE1BQUQsRUFBUyxhQUFUO0FBRnBCLGNBUk4sQ0FERjtBQWlCRDtBQW5CTyxXQW9CTDZKLFVBcEJLLENBSFo7QUF5QkUsUUFBQSxXQUFXLEVBQUUsSUF6QmY7QUEwQkUsUUFBQSxRQUFRLEVBQUUsa0JBQUMrQyxVQUFELEVBQWdCO0FBQ3hCLGNBQVFuSCxXQUFSLEdBQXdCLE1BQUksQ0FBQ3RFLEtBQTdCLENBQVFzRSxXQUFSOztBQUNBLGNBQUlBLFdBQVcsS0FBS21ILFVBQVUsQ0FBQzlKLE9BQS9CLEVBQXdDO0FBQ3RDLFlBQUEsTUFBSSxDQUFDb0YsUUFBTCxDQUFjO0FBQ1p6QyxjQUFBQSxXQUFXLEVBQUVtSCxVQUFVLENBQUM5SjtBQURaLGFBQWQ7QUFHRDtBQUNGLFNBakNIO0FBa0NFLFFBQUEsT0FBTztBQUNMOEssVUFBQUEsV0FBVyxFQUFFO0FBQ1hDLFlBQUFBLFNBQVMsRUFBRSxxQkFBTTtBQUNmLGtCQUFNbEwsTUFBTSxHQUFHLE1BQUksQ0FBQ2tELGVBQUwsRUFBZjs7QUFDQSxjQUFBLE1BQUksQ0FBQ2xCLFNBQUwsQ0FBZWhDLE1BQWY7QUFDRDtBQUpVO0FBRFIsV0FPRm1ELFVBQVUsQ0FBQ3dILE9BUFQsQ0FsQ1Q7QUEyQ0UsUUFBQSxnQkFBZ0IsRUFBRTNEO0FBM0NwQixTQTRDTVEsV0E1Q04sRUFYRixDQXBCRixDQWxCRixFQWlHR2YsVUFBVSxpQkFDVCxvQkFBQyxVQUFEO0FBQ0UsUUFBQSxHQUFHLEVBQUUsS0FBS25HLFNBRFo7QUFFRSxRQUFBLFFBQVEsRUFBRSxLQUFLNkssV0FBTCxDQUFpQjlCLElBQWpCLENBQXNCLElBQXRCLENBRlo7QUFHRSxRQUFBLFNBQVMsRUFBRTFCLFdBSGI7QUFJRSxRQUFBLFNBQVMsRUFBRXhCLFNBSmI7QUFLRSxRQUFBLFlBQVksRUFBRUcsWUFMaEI7QUFNRSxRQUFBLFFBQVEsRUFBRSxLQUFLakksS0FBTCxDQUFXK00sUUFOdkI7QUFPRSxRQUFBLFlBQVksRUFBRXhELFlBUGhCO0FBUUUsUUFBQSxVQUFVLEVBQUUsS0FBS3ZKLEtBQUwsQ0FBV2dOLFVBUnpCO0FBU0UsUUFBQSxZQUFZLEVBQUUsS0FBS2hOLEtBQUwsQ0FBV2lOLFlBVDNCO0FBVUUsUUFBQSxRQUFRLEVBQUUsS0FBS2pOLEtBQUwsQ0FBV3VCLFFBQVgsSUFBdUIsTUFWbkM7QUFXRSxRQUFBLFdBQVcsRUFBRStHLGVBWGY7QUFZRSxRQUFBLFVBQVUsb0JBQU9QLFNBQVA7QUFaWixRQWxHSixDQU5GLENBREY7QUEySEQ7Ozs7RUE5ekJvQnhKLGE7O0FBZzBCdkIsZUFBZXdCLFFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi4vLi4vYmFzZS90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vYmFzZS90cmVlXCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9iYXNlL21vZGFsXCI7XHJcbmltcG9ydCBQb3BvdmVyIGZyb20gXCIuLi8uLi9iYXNlL3BvcG92ZXJcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vLi4vYmFzZS9jb21tb24vSWNvbkZvbnRcIjtcclxuaW1wb3J0IHsgaWNvblR5cGUgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCBFZGl0b3JGb3JtIGZyb20gXCIuL0Zvcm1cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IFJvdyBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL1Jvd1wiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBEb3duT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbiAgRWRpdE91dGxpbmVkLFxyXG4gIFJpZ2h0T3V0bGluZWQsXHJcbiAgUGx1c091dGxpbmVkLFxyXG4gIEVsbGlwc2lzT3V0bGluZWQsXHJcbiAgRGVsZXRlT3V0bGluZWRcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCIuLi8uLi9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgSGVhZGVyU2VhcmNoIGZyb20gXCIuLi9IZWFkZXJTZWFyY2hcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbiAgcGFnaW5hdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65YiG6aG1XHJcbiAgY29sdW1uT3JkZXI/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuihqOagvOW6j+WIl1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgVHJlZVByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pCc57Si5qGGXHJcbiAgc2VhcmNoS2V5Pzogc3RyaW5nOyAvL+aQnOe0onZhbHVl5a+55bqU55qEa2V5XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7IC8v5p+l6K+i5a+55bqU55qEa2V5XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZzsgLy/moJF0aXRsZeWvueW6lOeahGtleSzpu5jorqR0aXRsZVxyXG4gIG5vZGVQb3Jwcz86IG9iamVjdDtcclxuICBwYXJhbnRTZWxlY3Q/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgRm9ybVByb3BzIGV4dGVuZHMgSUZvcm1Qcm9wcyB7fVxyXG5pbnRlcmZhY2UgTlNDQmFzZUJhZ2VQcm9wcyB7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65aS06YOo5pCc57Si5qCPXHJcbiAgdGFibGVQcm9wcz86IFRhYmxlUHJvcHM7IC8v6KGo5qC85Y+C5pWwXHJcbiAgdHJlZVByb3BzPzogVHJlZVByb3BzOyAvL+W3puS+p+agkeWPguaVsFxyXG4gIHN1Ym1pdFBhcmFtcz86IE9iamVjdDsgLy/mt7vliqDlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dkYXRh5Lyg6YCSXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBjb2x1bW5zOiBBcnJheTxPYmplY3Q+O1xyXG4gIHNob3dMZWZ0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlt6bkvqfnm67lvZXmoJFcclxuICBzaG93VG9vbEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65oyJ6ZKu5qCPXHJcbiAgZWRpdG9yRm9ybT86IGJvb2xlYW47IC8v5piv5ZCm6ZyA6KaB6KGo5Y2V5Yqf6IO9ICwg5Li6ZmFsc2Ug57yW6L6R77yM5p+l55yL77yM5paw5aKe5Yqf6IO95Z2H5LiN5Y+v55SoXHJcbiAgZGVsZXRlVXJsPzogc3RyaW5nOyAvL+WIoOmZpHVybFxyXG4gIG9uRGVsZXRlPzogKHNlbGVjdGVkS2V5cz86IEFycmF5PHN0cmluZz4pID0+IHZvaWQ7IC8v5Yig6Zmk5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HaWRz5ou85o6l5Lyg6YCS57uZ5ZCO5Y+wXHJcbiAgZGVsZXRlUG9zaXRpb24/OiBcInRvb2xiYXJcIiB8IFwicm93XCI7XHJcbiAgZGVsZXRlUGFyYW1zPzogT2JqZWN0O1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uU2VhcmNoPzogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xyXG4gIG9uUmVzZXQ/OiAoKSA9PiB2b2lkO1xyXG4gIGluaXREYXRhPzogYW55OyAvL+WIneWni+WMluWbnuiwg+WHveaVsO+8jOWcqGNvbXBvbmVudERpZE1vdW505Lit6LCD55SoXHJcbiAgYnV0dG9ucz86IEFycmF5PHN0cmluZz47IC8v5oyJ6ZKu6ZuG5ZCIICBbJ2FkZCcsJ2RlbGV0ZScsJ3NlYXJjaCcsJ2VkaXRvciddXHJcbiAgb25TaG93Rm9ybT86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkhpZGVGb3JtPzogKCkgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkZvcm1DaGFuZ2U/OiAoY2hhbmdlZFZhbHVlcz86IGFueSwgYWxsVmFsdWVzPzogYW55KSA9PiB2b2lkOyAvL+ihqOWNlW9uQ2hhbmdl5Zue6LCDXHJcbiAgZm9ybVR5cGU/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiO1xyXG4gIGZvcm1DaGFuZ2VWYWxpZD86IGJvb2xlYW47IC8v6KGo5Y2V5qCh6aqMXHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IFwicmlnaHRcIiB8IFwiYnV0dG9tXCI7XHJcbiAgcGFnZVRpdGxlPzogc3RyaW5nIHwgUmVhY3ROb2RlO1xyXG4gIGZvcm1Qcm9wcz86IEZvcm1Qcm9wcztcclxuICBhY3Rpb25Qb3Jwcz86IHsgdGV4dEFsaWduPzogc3RyaW5nOyBzaG93SWNvbj86IGJvb2xlYW47IHdpZHRoPzogbnVtYmVyIH07XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogeyB3cmFwcGVyQ29sPzogYW55OyBsYWJlbENvbD86IGFueSB9O1xyXG4gIG9uVHJlZVNlbGVjdD86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkNhbGxCYWNrcz86IHtcclxuICAgIHRyZWVTZWxlY3RDYWxsQmFjaz86IGFueTtcclxuICAgIG9uU2VhcmNoQ2FsbEJhY2s/OiBhbnk7XHJcbiAgfTtcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZGF0ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wczogYW55KSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgeyBzdG9yZVByZWZpeCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdHlwZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIHR5cGUgPSB0eXBlPy5jb250ZW50O1xyXG4gICAgbGV0IHNpemUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcInRhYmxlU2l6ZVwiIDogXCJ0YWJsZVNpemVcIlxyXG4gICAgKTtcclxuICAgIHNpemUgPSBzaXplPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgZm9ybVR5cGU6IHR5cGUgfHwgXCJtb2RhbFwiLFxyXG4gICAgICB0YWJsZVNpemU6IHNpemUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIHRyZWVTZWFyY2hQcmFtczoge30sXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgaW5pdERhdGEgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpbml0RGF0YSAmJiBpbml0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgY2FsbEJhY2sgJiYgY2FsbEJhY2socGFyYW1zKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25TZWFyY2gpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKGRhdGE/OiBhbnkpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGVsZXRlVXJsLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgZGVsZXRlUGFyYW1zLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBzZWxlY3RlZFJvd0tleXMgPSB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gICAgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICBtZXNzYWdlLndhcm5pbmcoXCLor7fpgInmi6nopoHliKDpmaTnmoTmlbDmja7vvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBNb2RhbC5jb25maXJtKHtcclxuICAgICAgY29udGVudDogXCLmmK/lkKbnoa7orqTliKDpmaTmiYDpgInpobnvvJ9cIixcclxuICAgICAgLy8gY2VudGVyZWQ6dHJ1ZSxcclxuICAgICAgb25PazogKCkgPT4ge1xyXG4gICAgICAgIGlmIChvbkRlbGV0ZSkge1xyXG4gICAgICAgICAgb25EZWxldGUgJiZcclxuICAgICAgICAgICAgb25EZWxldGUoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMgOiBkYXRhKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGlkczogZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMuam9pbigpIDogZGF0YS5pZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoZGVmYXVsdFBhcmFtcykge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVsZXRlUGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlZmF1bHRQYXJhbXMgfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGVMb2FkKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSwgcmVxdWVzdENvbmZpZyA9IHt9KSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLmxvYWQoe1xyXG4gICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+afpeivolxyXG4gIG9uU2VhcmNoKHBhcmFtcykge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCwgb25DYWxsQmFja3MgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goeyAuLi5wYXJhbXMsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh7IC4uLnBhcmFtcywgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfSk7XHJcbiAgICBvbkNhbGxCYWNrcz8ub25TZWFyY2hDYWxsQmFjayAmJlxyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNhbGxCYWNrcz8ub25TZWFyY2hDYWxsQmFjaywgdGhpcywgW3BhcmFtc10pO1xyXG4gIH1cclxuICAvL+ihqOagvOmHjeaWsOWKoOi9vVxyXG4gIHRhYmxlUmVsb2FkKHBhcmFtcyA9IHt9LCBhdXRvTG9hZCA9IHRydWUpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKHtcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBhdXRvTG9hZCAmJlxyXG4gICAgICAgICAgcmVzPy5kYXRhPy5yZWNvcmRzPy5sZW5ndGggPT0gMCAmJlxyXG4gICAgICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50UGFnZSAhPT0gMVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5yZWxvYWQoe1xyXG4gICAgICAgICAgICBwYXJhbXM6IHsgY3VycmVudDogMSwgLi4ucGFyYW1zIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93RGF0YXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0RhdGFzKCk7XHJcbiAgfVxyXG4gIHJlc2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8ucmVzZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgIHJldHVybiB7IC4uLmZyb21WYWx1ZSwgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfTtcclxuICB9XHJcblxyXG4gIGdldENoaWxkcmVuRGF0YShkYXRhLCBrZXlzID0gW10pIHtcclxuICAgIGNvbnN0IHsgdGFibGVQcm9wcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgcm93S2V5ID0gXCJpZFwiIH0gPSB0YWJsZVByb3BzO1xyXG4gICAgbGV0IHJlc0tleSA9IFtdO1xyXG4gICAgaWYgKGRhdGEuY2hpbGROb2Rlcykge1xyXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IGRhdGEuY2hpbGROb2RlcztcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLmNoaWxkTm9kZXMpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5EYXRhKGl0ZW0uY2hpbGROb2Rlcywga2V5cyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc0tleSA9IFsuLi5rZXlzLCBpdGVtW3Jvd0tleV1dO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXNLZXkgPSBbLi4ua2V5cywgZGF0YVtyb3dLZXldXTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXNLZXk7XHJcbiAgfVxyXG5cclxuICByZW5kZXJUb29sQnV0dG9ucyh0b29sYnV0dG9uczogYW55LCBtYXJnaW5mbGFnID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGZsYWcgPSB0b29sYnV0dG9ucy5sZW5ndGggPiA1O1xyXG4gICAgY29uc3QgeyBzaG93U2VhcmNoID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAzKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0b29sLWJ1dHRvbnNcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJ0b29sLWJ1dHRvbnMtbWFyZ2luXCIpXTogIXNob3dTZWFyY2ggfHwgbWFyZ2luZmxhZyxcclxuICAgICAgICB9KX1cclxuICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgID5cclxuICAgICAgICB7dG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wLWJveCddfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pu05aSaIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zOiBhbnksIHJlY29yZDogYW55KSB7XHJcbiAgICBjb25zdCB7IGFjdGlvblBvcnBzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IG5ld0J1dHRvbnMgPSBbXTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBpZiAoYWN0aW9uUG9ycHM/LnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGVsc2UgaWYgKGJhc2VBY3Rpb25Db2x1bW4uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgY29sdW1uQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgcmVjb3JkU2hvdywgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChyZWNvcmRTaG93KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiByZWNvcmRTaG93ID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgIGlmIChldmFsKHJlY29yZFNob3cpKSB7XHJcbiAgICAgICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWNvcmRTaG93ID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgY29uc3Qgc2hvdyA9IHJlY29yZFNob3cocmVjb3JkKTtcclxuICAgICAgICAgIHNob3cgJiYgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgZmxhZyA9IG5ld0J1dHRvbnMubGVuZ3RoID4gMztcclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDIpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICBpZiAoaW5kZXggPCAzKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSAzKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfT5cclxuICAgICAgICAgICAgICAgIDxFbGxpcHNpc091dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgLy/moJHngrnlh7vkuovku7ZcclxuICB0cmVlU2VsZWN0KHNlbGVjdGVkS2V5czogYW55LCBvYmo6IGFueSkge1xyXG4gICAgbGV0IGtleXdvcmQgPSBcIlwiO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzZWFyY2hLZXkgPSBcImtleVwiLFxyXG4gICAgICBzZWFyY2hGaWVsZCA9IFwiXCIsXHJcbiAgICAgIHBhcmFudFNlbGVjdCA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcy50cmVlUHJvcHM7XHJcbiAgICBjb25zdCB7IHRyZWVTZWxlY3RlZEtleSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWQsIHNlbGVjdGVkTm9kZXMgfSA9IG9iajtcclxuXHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgaWYgKHBhcmFudFNlbGVjdCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHsgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE5vZGVzWzBdLmlzTGVhZiB8fCAhc2VsZWN0ZWROb2Rlc1swXS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1swXSAhPT0gdHJlZVNlbGVjdGVkS2V5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgICAgIHRyZWVTZWFyY2hQcmFtczogeyBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICAgIHRyZWVTZWFyY2hQcmFtczoge30sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJvcHMub25UcmVlU2VsZWN0KSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25UcmVlU2VsZWN0KHNlbGVjdGVkS2V5cywgb2JqKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpIHx8IHt9O1xyXG4gICAgc2VhcmNoRmllbGQgJiYgdGhpcy50YWJsZUxvYWQoeyAuLi5mcm9tVmFsdWUsIFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSk7XHJcbiAgICB0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy50cmVlU2VsZWN0Q2FsbEJhY2sgJiZcclxuICAgICAgdXRpbHMuY2FsbGJhY2sodGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8udHJlZVNlbGVjdENhbGxCYWNrLCB0aGlzLCBbXHJcbiAgICAgICAgc2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgIG9iaixcclxuICAgICAgXSk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgZ2V0VGV4dChwcm9wcywgdGV4dCkge1xyXG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0O1xyXG4gICAgaWYgKHByb3BzPy5kYXRhICYmIHByb3BzPy5kYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBkYXRhID0gcHJvcHMuZGF0YTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChkYXRhW2ldLnZhbHVlID09IHRleHQpIHtcclxuICAgICAgICAgIG5ld1RleHQgPSBkYXRhW2ldLmxhYmVsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1RleHQ7XHJcbiAgfVxyXG4gIHNldFRhYmxlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnNldERhdGEoZGF0YSk7XHJcbiAgfVxyXG4gIHNldFRyZWVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZS5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZEtleSA9IChzZWxlY3RlZCkgPT4ge1xyXG4gICAgbGV0IHJlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBzZWxlY3RlZFtrZXldO1xyXG4gICAgICBpZiAoa2V5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmVzID0gWy4uLnJlcywgLi4ua2V5c107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfTtcclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIGJ1dHRvbnMgPSBbXSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICAgIG9uU2hvd0Zvcm0sXHJcbiAgICAgIGZvcm1DaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID0gXCJidXR0b21cIixcclxuICAgICAgYWN0aW9uUG9ycHMsXHJcbiAgICAgIGRlbGV0ZVBvc2l0aW9uID0gXCJ0b29sYmFyXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICAgIGNvbHVtbk9yZGVyID0gdHJ1ZSxcclxuICAgICAgZXhwYW5kYWJsZSA9IHt9LFxyXG4gICAgICBwYXJhbnRTZWxlY3QgPSB0cnVlLFxyXG4gICAgICAuLi5vdGhlcnRhYmxlUGFyYW1zXHJcbiAgICB9ID0gdGFibGVQcm9wcztcclxuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlOiB0cmVlU3RvcmUgPSB7fSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJlZVNlYXJjaCA9IHRydWUsXHJcbiAgICAgIHRpdGxlQWxpYXMgPSBcInRpdGxlXCIsXHJcbiAgICAgIC4uLm90aGVydHJlZVBhcmFtc1xyXG4gICAgfSA9IHRyZWVQcm9wcztcclxuXHJcbiAgICBsZXQgdGFibGVQYXJhbXMgPSB7IGZpbHRlckNvbHVtbiwgc3RvcmUsIC4uLm90aGVydGFibGVQYXJhbXMgfSBhcyBhbnk7XHJcbiAgICBsZXQgdGFibGVDb2x1bW46IGFueVtdID0gW107XHJcbiAgICBjb25zdCBzZWFyY2hGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBlZGl0b3JGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBkZWZhdWx0VmFsdWU6IGFueSA9IHt9O1xyXG4gICAgY29uc3QgY29sdW1uQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb2x1bW5zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmICh0ZW1wLnNlYXJjaCA9PT0gdHJ1ZSB8fCB0ZW1wLnNlYXJjaD8uc2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHNlYXJjaEZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnNlYXJjaD8ubGFiZWwgfHwgdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgICAgbGFiZWxDb2w6IHRlbXAuc2VhcmNoPy5sYWJlbENvbCxcclxuICAgICAgICAgIHdyYXBwZXJDb2w6IHRlbXAuc2VhcmNoPy53cmFwcGVyQ29sLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAuc2VhcmNoUnVsZXMgPyB0ZW1wLnNlYXJjaFJ1bGVzIDogW10sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyA/IHRlbXAucnVsZXMgOiBbXSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHNwYW46IHRlbXAuc3BhbixcclxuICAgICAgICAgIGRpY3ROYW1lOiB0ZW1wLmRpY3ROYW1lLFxyXG4gICAgICAgICAgcHJvcHM6IG9taXQoeyAuLi50ZW1wLnByb3BzIH0sIFtcImRlZmF1bHRWYWx1ZVwiLCBcInZhbHVlXCJdKSxcclxuICAgICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSBudWxsXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4O1xyXG4gICAgICAgIGRlZmF1bHRWYWx1ZVtuYW1lXSA9IHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgbGV0IHRlbXBQcm9wID0geyAuLi50ZW1wLnByb3BzIH07XHJcbiAgICAgIGlmICh0ZW1wLnN0eWxlKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICB7dGV4dCAhPT0gXCJcIiAmJiB0ZXh0ICE9PSBudWxsICYmIHRleHQgIT09IHVuZGVmaW5lZCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtYmFja1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtdGV4dFwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSBpZiAoIXRlbXAuZWxsaXBzaXMpIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8Pnt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGVtcCA9IHsgLi4udGVtcCB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnByb3BzO1xyXG4gICAgICBpZiAodGVtcD8uY29sdW1uU2hvdyAhPT0gZmFsc2UpIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHNlbGZCdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblBvcnBzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGlmIChlZGl0b3JGb3JtID09IHRydWUpIHtcclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcInNlYXJjaFwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RXllT3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZWRpdG9yXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFZGl0T3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOe8lui+kVxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImFkZFwiKSA+IC0xKSB7XHJcbiAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgb25TaG93Rm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICBvblNob3dGb3JtKCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBpY29uPXs8UGx1c091dGxpbmVkIC8+fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOa3u+WKoFxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImRlbGV0ZVwiKSA+IC0xKSB7XHJcbiAgICAgIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInRvb2xiYXJcIikge1xyXG4gICAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInJvd1wiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDliKDpmaRcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XHJcbiAgICAgICAgICBpdGVtLm1hcCgoY2hpbGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogYWN0aW9uUG9ycHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgPyBhY3Rpb25Qb3Jwcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgd2lkdGg6IGFjdGlvblBvcnBzPy53aWR0aFxyXG4gICAgICAgICAgPyBhY3Rpb25Qb3Jwcz8ud2lkdGhcclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA6IDIwMCxcclxuICAgICAgICBmaXhlZDogXCJyaWdodFwiLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJhY3Rpb25cIil9PlxyXG4gICAgICAgICAgICAgIHt0aGlzLnJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zLCByZWNvcmQpfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICBpZiAoY29sdW1uT3JkZXIpXHJcbiAgICAgIHRhYmxlQ29sdW1uID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRpdGxlOiBcIuW6j+WPt1wiLFxyXG4gICAgICAgICAgd2lkdGg6IDgwLFxyXG4gICAgICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0LCByZWFjb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57aW5kZXggKyAxfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi50YWJsZUNvbHVtbixcclxuICAgICAgXTtcclxuICAgIGxldCBzZWFyY2hGbGFnID0gc2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHRvb2xGbGFnID0gc2hvd1Rvb2xCdXR0b24gJiYgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMDtcclxuICAgIGlmICh0YWJsZVByb3BzLnBhZ2luYXRpb24gIT09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbCA9IHRhYmxlUGFyYW1zLnNjcm9sbDtcclxuICAgICAgdGFibGVQYXJhbXMgPSB7XHJcbiAgICAgICAgLi4udGFibGVQYXJhbXMsXHJcbiAgICAgICAgc2Nyb2xsOiB7IHg6IFwibWF4LWNvbnRlbnRcIiwgLi4uc2Nyb2xsIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgeyB0YWJsZVRvb2wgfSA9IGNvbmZpZygpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlXCIpLCBjbGFzc05hbWUpfT5cclxuICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGUgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlLXRpdGxlXCIpKX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnByb3BzLnBhZ2VUaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS1wYW5lXCIpKX1cclxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3Nob3dMZWZ0ICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImxlZnRcIil9PlxyXG4gICAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgICBzdG9yZT17eyAuLi50cmVlU3RvcmUgfX1cclxuICAgICAgICAgICAgICAgIHNob3dJY29uPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXt0cmVlU2VhcmNofVxyXG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudHJlZVNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAgICAgdGl0bGVBbGlhcz17dGl0bGVBbGlhc31cclxuICAgICAgICAgICAgICAgIHsuLi5vdGhlcnRyZWVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJyaWdodFwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuby1sZWZ0LXJpZ2h0XCIpXTogIXNob3dMZWZ0LFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgPEhlYWRlclNlYXJjaFxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybXM9e3NlYXJjaEZvcm1zfVxyXG4gICAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uPXt0b29sQnV0dG9uUG9zaXRpb259XHJcbiAgICAgICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgb25SZXNldD17dGhpcy5wcm9wcy5vblJlc2V0fVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1Qcm9wcz17dGhpcy5wcm9wcy5zZWFyY2hGb3JtUHJvcHN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgIHtzaG93VG9vbEJ1dHRvbiAmJlxyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b25zLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJidXR0b21cIiAmJlxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbEJ1dHRvbnMoc2VsZkJ1dHRvbnMsIHNlYXJjaEZvcm1zLmxlbmd0aCA9PSAwKX1cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRhYmxlXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wXCIpXTpcclxuICAgICAgICAgICAgICAgICAgKHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnKSB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVByb3BzLnRvb2xiYXIgPT0gZmFsc2UgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVQcm9wcy50b29sYmFyPy5zaG93ID09IGZhbHNlIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlUHJvcHMudG9vbGJhcj8udG9vbHM/Lmxlbmd0aCA9PSAwIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlVG9vbD8udG9vbHM/Lmxlbmd0aCA9PSAwIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlVG9vbD8uc2hvdyA9PSBmYWxzZSxcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxUYWJsZVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnRhYmxlUmVmfVxyXG4gICAgICAgICAgICAgICAgY29sdW1ucz17dGFibGVDb2x1bW59XHJcbiAgICAgICAgICAgICAgICBleHBhbmRhYmxlPXt7XHJcbiAgICAgICAgICAgICAgICAgIGV4cGFuZEljb246ICh7IGV4cGFuZGVkLCBvbkV4cGFuZCwgcmVjb3JkIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge2V4cGFuZGVkID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxEb3duT3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBvbkV4cGFuZChyZWNvcmQsIGUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5jaGlsZE5vZGVzICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSaWdodE91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBvbkV4cGFuZChyZWNvcmQsIGUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAuLi5leHBhbmRhYmxlLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGNvbHVtbk9yZGVyPXt0cnVlfVxyXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhwYWdpbmF0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY3VycmVudFBhZ2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UGFnZSAhPT0gcGFnaW5hdGlvbi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgdG9vbGJhcj17e1xyXG4gICAgICAgICAgICAgICAgICBvblRvb2xDbGljazoge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVmcmVzaDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVMb2FkKHBhcmFtcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4udGFibGVQcm9wcy50b29sYmFyLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHNob3dSb3dTZWxlY3Rpb249e3Nob3dSb3dTZWxlY3Rpb259XHJcbiAgICAgICAgICAgICAgICB7Li4udGFibGVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICAgIGNhbGxCYWNrPXt0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cclxuICAgICAgICAgICAgICBvbkhpZGVGb3JtPXt0aGlzLnByb3BzLm9uSGlkZUZvcm19XHJcbiAgICAgICAgICAgICAgb25Gb3JtQ2hhbmdlPXt0aGlzLnByb3BzLm9uRm9ybUNoYW5nZX1cclxuICAgICAgICAgICAgICBmb3JtVHlwZT17dGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBcImF1dG9cIn1cclxuICAgICAgICAgICAgICBjaGFuZ2VWYWxpZD17Zm9ybUNoYW5nZVZhbGlkfVxyXG4gICAgICAgICAgICAgIG90aGVyUHJvcHM9e3sgLi4uZm9ybVByb3BzIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
|