qms-angular 1.1.44 → 1.1.46

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. package/bundles/qms-angular.umd.js +27 -18
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/model/en.js +2 -1
  4. package/esm2015/lib/model/no.js +2 -1
  5. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +7 -4
  6. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +2 -2
  7. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +2 -2
  8. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +2 -2
  9. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-connection.service.js +3 -3
  10. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +11 -8
  11. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +4 -4
  12. package/fesm2015/qms-angular.js +26 -18
  13. package/fesm2015/qms-angular.js.map +1 -1
  14. package/lib/model/en.d.ts +1 -0
  15. package/lib/model/no.d.ts +1 -0
  16. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-connection.service.d.ts +1 -1
  17. package/package.json +1 -1
  18. package/qms-angular.metadata.json +1 -1
  19. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +6 -0
  20. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -0
  21. package/src/assets/qms-ckeditor-plugin/build/translations/af.js +1 -0
  22. package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -0
  23. package/src/assets/qms-ckeditor-plugin/build/translations/ast.js +1 -0
  24. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -0
  25. package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -0
  26. package/src/assets/qms-ckeditor-plugin/build/translations/ca.js +1 -0
  27. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -0
  28. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -0
  29. package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -0
  30. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -0
  31. package/src/assets/qms-ckeditor-plugin/build/translations/el.js +1 -0
  32. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -0
  33. package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -0
  34. package/src/assets/qms-ckeditor-plugin/build/translations/eo.js +1 -0
  35. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -0
  36. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -0
  37. package/src/assets/qms-ckeditor-plugin/build/translations/eu.js +1 -0
  38. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -0
  39. package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -0
  40. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -0
  41. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -0
  42. package/src/assets/qms-ckeditor-plugin/build/translations/gu.js +1 -0
  43. package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -0
  44. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -0
  45. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -0
  46. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -0
  47. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -0
  48. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -0
  49. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -0
  50. package/src/assets/qms-ckeditor-plugin/build/translations/kk.js +1 -0
  51. package/src/assets/qms-ckeditor-plugin/build/translations/km.js +1 -0
  52. package/src/assets/qms-ckeditor-plugin/build/translations/kn.js +1 -0
  53. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -0
  54. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -0
  55. package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -0
  56. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -0
  57. package/src/assets/qms-ckeditor-plugin/build/translations/ms.js +1 -0
  58. package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -0
  59. package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -0
  60. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -0
  61. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -0
  62. package/src/assets/qms-ckeditor-plugin/build/translations/oc.js +1 -0
  63. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -0
  64. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -0
  65. package/src/assets/qms-ckeditor-plugin/build/translations/pt.js +1 -0
  66. package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -0
  67. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -0
  68. package/src/assets/qms-ckeditor-plugin/build/translations/si.js +1 -0
  69. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -0
  70. package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -0
  71. package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -0
  72. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -0
  73. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -0
  74. package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -0
  75. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -0
  76. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -0
  77. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -0
  78. package/src/assets/qms-ckeditor-plugin/build/translations/tt.js +1 -0
  79. package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -0
  80. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -0
  81. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -0
  82. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -0
  83. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -0
@@ -268,7 +268,7 @@ export class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
268
268
  data.moduleId = ModuleType.documentProcess;
269
269
  data.moduleName = this.LANG.QMSCKEDITOR.DOCUMENT_PROCESS;
270
270
  if (!isOnlyDocument) {
271
- const treeProcessData = yield this.treeService.getProcessAreaContents().toPromise();
271
+ const treeProcessData = yield this.treeService.getProcessAreaContents('', true, this.data.enabledInterconnected).toPromise();
272
272
  data.treeData1 = (treeProcessData === null || treeProcessData === void 0 ? void 0 : treeProcessData.areas.map((x) => {
273
273
  return {
274
274
  id: x.id,
@@ -653,4 +653,4 @@ QMSCKEditorLinkComponent.ctorParameters = () => [
653
653
  QMSCKEditorLinkComponent.propDecorators = {
654
654
  ckEditor: [{ type: Input }]
655
655
  };
656
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLWxpbmsuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1saW5rL3Ftcy1ja2VkaXRvci1saW5rLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNkRBQTZEO0FBQzdELE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLDZEQUE2RDtBQUM3RCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFakUsT0FBTyxtQkFBbUIsTUFBTSxrREFBa0QsQ0FBQztBQUNuRixPQUFPLGVBQWUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdC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QztRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWM7UUFDM0IsSUFBSSxNQUFNO1lBQ1IsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRTFCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQzVCLE9BQU87UUFFVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7O1lBenBCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsaXFXQUFpRDs7YUFFbEQ7OztZQWpFQyxpQkFBaUI7WUFVakIsU0FBUztZQU1GLHVCQUF1QjtZQVV2QixzQkFBc0I7WUFEdEIsd0JBQXdCO1lBT3hCLHNCQUFzQjtZQUZ0QixxQ0FBcUM7WUFuQjVDLFlBQVk7WUFZUCxlQUFlLHVCQStHakIsTUFBTSxTQUFDLGVBQWU7Ozt1QkFoRXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQge1xuICBNYXREaWFsb2csXG4gIE1hdERpYWxvZ1JlZixcbiAgTUFUX0RJQUxPR19EQVRBLFxufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlua0FuY2hvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtcy9saW5rLWFuY2hvci5lbnVtJztcbmltcG9ydCB7IExpbmtUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL2xpbmstdHlwZS5lbnVtJztcbmltcG9ydCB7IFByb3RvY29sVHlwZSwgUHJvdG9jb2xUeXBlTmFtZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtcy9wcm90b2NvbC10eXBlLmVudW0nO1xuaW1wb3J0IHsgVGFyZ2V0VHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtcy90YXJnZXQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yTGlua0FuY2hvckRvY3VtZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItbGluay1hbmNob3ItZG9jdW1lbnQubW9kZWwnO1xuaW1wb3J0IFFNU0NLRWRpdG9yUGFyYW10ZXIgZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItcGFyYW1ldGVyLm1vZGVsJztcbmltcG9ydCBRTVNDS0VkaXRvckxpbmsgZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItdXJsLm1vZGVsJztcbmltcG9ydCB7IFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckNvbW1vblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWNvbW1vbi5zZXJ2aWNlc1wiO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JMaW5rU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci1saW5rLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlua0F0dGFjaG1lbnRDb21wb25lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnRzL2xpbmstYXR0YWNobWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vY29tbW9uL2VudW0vZGF0YS10eXBlLmVudW1cIjtcbmltcG9ydCB7IFRyZWVDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy90cmVlXCI7XG5pbXBvcnQgeyBRTVNTZWxlY3RQcm9jZXNzRG9jdW1lbnRHbG9iYWxTZXJ2aWNlLCBTZWxlY3RQcm9jZXNzRG9jdW1lbnRQb3B1cENvbXBvbmVudCwgU2VsZWN0UHJvY2Vzc0RvY3VtZW50UG9wdXBEYXRhIH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvc2VsZWN0LXByb2Nlc3MtZG9jdW1lbnRcIjtcbmltcG9ydCB7IE1vZHVsZVR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vY29tbW9uL2VudW0vbW9kdWxlLXR5cGUuZW51bVwiO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUcmVlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9xbXMtY2tlZGl0b3ItdHJlZS5zZXJ2aWNlXCI7XG5pbXBvcnQgZ3VpZEhlbHBlciBmcm9tIFwiLi4vLi4vY29tbW9uL2hlbHBlci9ndWlkSGVscGVyXCI7XG5pbXBvcnQgeyBEb2N1bWVudE5vZGVUeXBlIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9lbnVtL2RvY3VtZW50LW5vZGUtdHlwZS5lbnVtXCI7XG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBJUmVsYXRlZCB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL3JlbGF0ZWQvbW9kZWwvcmVsYXRlZC1kYXRhLm1vZGVsXCI7XG5pbXBvcnQgeyBQcm9jZXNzQ2xhc3NpZmljYXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vY29tbW9uL2VudW0vcHJvY2Vzcy1jbGFzc2lmaWNhdGlvbi5lbnVtXCI7XG5pbXBvcnQgeyBHZXRTZWFyY2hQcm9jZXNzRG9jdW1lbnRPcHRpb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2dldC1zZWFyY2gtcHJvY2Vzcy1kb2N1bWVudC1vcHRpb25cIjtcblxuaW50ZXJmYWNlIElMaW5rVHlwZSB7XG4gIGlkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIElUYXJnZXQge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJUHJvdG9jb2wge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJQW5jaG9yIHtcbiAgdmFsdWU6IG51bWJlcjtcbiAgdmlld1ZhbHVlOiBzdHJpbmc7XG4gIGFuY2hvclZhbHVlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJxbXMtY2tlZGl0b3ItbGlua1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3Ftcy1ja2VkaXRvci1saW5rLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9xbXMtY2tlZGl0b3ItbGluay5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgUU1TQ0tFZGl0b3JMaW5rQ29tcG9uZW50XG4gIGV4dGVuZHMgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcblxuICBASW5wdXQoKSBja0VkaXRvcjogYW55O1xuXG4gIExBTkc6IGFueTtcbiAgbGlua0Zvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgdGFyZ2V0TGlzdDogbmV3IEZvcm1Db250cm9sKCksXG4gICAgcHJvdG9jb2xMaXN0OiBuZXcgRm9ybUNvbnRyb2woKSxcbiAgICB1cmw6IG5ldyBGb3JtQ29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIGFkdmlzb3J5VGl0bGU6IG5ldyBGb3JtQ29udHJvbCgpLFxuICB9KTtcbiAgYW5jaG9yVGV4dEZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgYW5jaG9yVGV4dDogbmV3IEZvcm1Db250cm9sKFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIH0pO1xuICBlbWFpbEZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgZW1haWxBZGRyZXNzOiBuZXcgRm9ybUNvbnRyb2woXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBlbWFpbFN1YmplY3Q6IG5ldyBGb3JtQ29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIGVtYWlsQm9keTogbmV3IEZvcm1Db250cm9sKFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIH0pO1xuICBhbmNob3JEb2NGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIHRhcmdldExpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxuICAgIGFuY2hvclRpdGxlOiBuZXcgRm9ybUNvbnRyb2woXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBhbmNob3JCeU5hbWU6IG5ldyBGb3JtQ29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICB9KTtcbiAgaXNFeHBhbmRlZCA9IHRydWU7XG4gIGxpbmtUeXBlczogSUxpbmtUeXBlW10gPSBbXTtcbiAgdGFyZ2V0czogSVRhcmdldFtdID0gW107XG4gIHByb3RvY29sczogSVByb3RvY29sW10gPSBbXTtcbiAgYW5jaG9yRG9jdW1lbnRzOiBRTVNDS0VkaXRvckxpbmtBbmNob3JEb2N1bWVudFtdID0gW107XG4gIGFuY2hvcnM6IElBbmNob3JbXTtcbiAgZWRpdG9yQW5jaG9yczogSUFuY2hvcltdO1xuICBkb2N1bWVudEFuY2hvcnM6IElBbmNob3JbXTtcbiAgZWRpdG9yQ29udGVudCA9ICcnO1xuICBzZWxlY3RlZExpbmtUeXBlID0gMDtcbiAgc2VsZWN0ZWRUYXJnZXQgPSAwO1xuICBzZWxlY3RlZFByb3RvY29sID0gMDtcbiAgdXJsID0gXCJcIjtcbiAgYWR2aXNvcnlUaXRsZSA9IFwiXCI7XG4gIGVkaXQgPSBmYWxzZTtcbiAgYW5jaG9yVGV4dCA9IFwiXCI7XG4gIGVtYWlsQWRkcmVzcyA9IFwiXCI7XG4gIGVtYWlsU3ViamVjdCA9IFwiXCI7XG4gIGVtYWlsQm9keSA9IFwiXCI7XG4gIGRvY3VtZW50SWQgPSAwO1xuICBhbmNob3JUaXRsZSA9IFwiXCI7XG4gIGFuY2hvckJ5TmFtZSA9IFwiXCI7XG4gIExpbmtUeXBlID0gTGlua1R5cGU7XG4gIHByb2Nlc3NDb25maWc6IFRyZWVDb25maWc7XG4gIGRvY3VtZW50Q29uZmlnOiBUcmVlQ29uZmlnO1xuICBkb2N1bWVudFR5cGVzID0gW1xuICAgIERvY3VtZW50Tm9kZVR5cGUuRG9jdW1lbnQsXG4gICAgRG9jdW1lbnROb2RlVHlwZS5GaWxlRG9jdW1lbnQsXG4gICAgRG9jdW1lbnROb2RlVHlwZS5MaW5rRG9jdW1lbnQsXG4gICAgRG9jdW1lbnROb2RlVHlwZS5TaG9ydGN1dERvY3VtZW50XG4gIF07XG4gIHNlbGVjdGVkVGFyZ2V0QW5jaG9yRG9jdW1lbnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSxcbiAgICBwcml2YXRlIGxpbmtTZXJ2aWNlOiBRTVNDS0VkaXRvckxpbmtTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbW9uU2VydmljZTogUU1TQ0tFZGl0b3JDb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJlZVNlcnZpY2U6IFFNU0NLRWRpdG9yVHJlZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWxlY3RQcm9jZXNzRG9jdW1lbnRHbG9iYWxTZXJ2aWNlOiBRTVNTZWxlY3RQcm9jZXNzRG9jdW1lbnRHbG9iYWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxRTVNDS0VkaXRvckxpbmtDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogUU1TQ0tFZGl0b3JMaW5rXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZWxlY3RlZExpbmtUeXBlID0gZGF0YS50eXBlSWQ7XG4gICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID0gZGF0YS5wcm90b2NvbElkO1xuICAgIHRoaXMudXJsID0gZGF0YS51cmw7XG4gICAgdGhpcy5hZHZpc29yeVRpdGxlID0gZGF0YS50aXRsZTtcbiAgICB0aGlzLmVkaXQgPSBkYXRhLmVkaXQ7XG4gICAgdGhpcy5lZGl0b3JDb250ZW50ID0gZGF0YS5lZGl0b3JDb250ZW50O1xuXG4gICAgaWYgKHRoaXMudXJsLmxlbmd0aCAmJiBkYXRhLnR5cGVJZCA9PSBMaW5rVHlwZS51cmwpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYXJnZXQgPSBkYXRhLnRhcmdldElkO1xuICAgICAgdGhpcy5zZWxlY3RlZFRhcmdldEFuY2hvckRvY3VtZW50ID0gZGF0YS5kZWZhdWx0VGFyZ2V0TmV3V2luZG93ID8gVGFyZ2V0VHlwZS5uZXcgOiBUYXJnZXRUeXBlLnNhbWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnVybC5sZW5ndGggJiYgZGF0YS50eXBlSWQgPT0gTGlua1R5cGUuYW5jaG9yRG9jdW1lbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYXJnZXRBbmNob3JEb2N1bWVudCA9IGRhdGEudGFyZ2V0SWQ7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFyZ2V0ID0gZGF0YS5kZWZhdWx0VGFyZ2V0TmV3V2luZG93ID8gVGFyZ2V0VHlwZS5uZXcgOiBUYXJnZXRUeXBlLnNhbWU7XG4gICAgfSBlbHNlIGlmIChkYXRhLmRlZmF1bHRUYXJnZXROZXdXaW5kb3cpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYXJnZXQgPSBUYXJnZXRUeXBlLm5ldztcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYXJnZXRBbmNob3JEb2N1bWVudCA9IFRhcmdldFR5cGUubmV3O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFyZ2V0ID0gVGFyZ2V0VHlwZS5zYW1lO1xuICAgICAgdGhpcy5zZWxlY3RlZFRhcmdldEFuY2hvckRvY3VtZW50ID0gVGFyZ2V0VHlwZS5zYW1lO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnNsYXRlLmdldE9iamVjdExhbmcocmVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5pbml0TGlua1R5cGUoKTtcbiAgICB0aGlzLmluaXRUYXJnZXQoKTtcbiAgICB0aGlzLmluaXRQcm90b2NvbCgpO1xuICAgIHRoaXMuaW5pdEFuY2hvcigpO1xuICAgIGlmICh0aGlzLmRhdGEuZWRpdCkge1xuICAgICAgdGhpcy5wYXJzZUxpbmtVcmwodGhpcy5zZWxlY3RlZExpbmtUeXBlLCB0aGlzLnVybCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uQ2xvc2VEaWFsb2coKSB7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5jb21tb25TZXJ2aWNlLmdldFNjcm9sbFRvcENrZWRpdG9yKHRoaXMuY2tFZGl0b3IpO1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKG51bGwpO1xuICAgIHRoaXMuY29tbW9uU2VydmljZS5zZXRTY3JvbGxUb3BFZGl0b3JDb250YWluZXIodGhpcy5ja0VkaXRvciwgc2Nyb2xsVG9wKTtcbiAgfVxuXG4gIGluaXRMaW5rVHlwZSgpIHtcbiAgICBpZiAodGhpcy5saW5rVHlwZXMpIHtcbiAgICAgIHRoaXMubGlua1R5cGVzLnB1c2goe1xuICAgICAgICBpZDogTGlua1R5cGUudXJsLFxuICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuTElOS19VUkwsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubGlua1R5cGVzLnB1c2goe1xuICAgICAgICBpZDogTGlua1R5cGUuYW5jaG9yVGV4dCxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLkxJTktfQU5DSE9SX0lOX1RFWFQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubGlua1R5cGVzLnB1c2goe1xuICAgICAgICBpZDogTGlua1R5cGUuZW1haWwsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5MSU5LX0VNQUlMLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmxpbmtUeXBlcy5wdXNoKHtcbiAgICAgICAgaWQ6IExpbmtUeXBlLmFuY2hvckRvY3VtZW50LFxuICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuTElOS19BTkNIT1JfRE9DVU1FTlQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpbml0VGFyZ2V0KCkge1xuICAgIGlmICh0aGlzLnRhcmdldHMpIHtcbiAgICAgIHRoaXMudGFyZ2V0cy5wdXNoKHtcbiAgICAgICAgaWQ6IFRhcmdldFR5cGUubmV3LFxuICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuVEFSVEdFVF9ORVcsXG4gICAgICB9KTtcbiAgICAgIHRoaXMudGFyZ2V0cy5wdXNoKHtcbiAgICAgICAgaWQ6IFRhcmdldFR5cGUudG9wbW9zdCxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlRBUkdFVF9UT1BNT1NULFxuICAgICAgfSk7XG4gICAgICB0aGlzLnRhcmdldHMucHVzaCh7XG4gICAgICAgIGlkOiBUYXJnZXRUeXBlLnNhbWUsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5UQVJHRVRfU0FNRSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YXJnZXRzLnB1c2goe1xuICAgICAgICBpZDogVGFyZ2V0VHlwZS5wYXJlbnQsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5UQVJHRVRfUEFSRU5ULFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaW5pdFByb3RvY29sKCkge1xuICAgIGlmICh0aGlzLnByb3RvY29scykge1xuICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7XG4gICAgICAgIGlkOiBQcm90b2NvbFR5cGUuaHR0cCxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlBST1RPQ09MX0hUVFAsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvdG9jb2xzLnB1c2goe1xuICAgICAgICBpZDogUHJvdG9jb2xUeXBlLmh0dHBzLFxuICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuUFJPVE9DT0xfSFRUUFMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvdG9jb2xzLnB1c2goe1xuICAgICAgICBpZDogUHJvdG9jb2xUeXBlLmZ0cCxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlBST1RPQ09MX0ZUUCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7XG4gICAgICAgIGlkOiBQcm90b2NvbFR5cGUubmV3cyxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlBST1RPQ09MX05FVyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm90b2NvbHMucHVzaCh7XG4gICAgICAgIGlkOiBQcm90b2NvbFR5cGUub3RoZXIsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9PVEhFUixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGluaXRBbmNob3IoKSB7XG4gICAgdGhpcy5hbmNob3JzID0gW107XG4gICAgdGhpcy5hbmNob3JzID0gW3sgdmFsdWU6IDAsIHZpZXdWYWx1ZTogXCJcIiwgYW5jaG9yVmFsdWU6IExpbmtBbmNob3IuQmxhbmsgfV07XG4gIH1cblxuICBwYXJzZUxpbmtVcmwodHlwZUlkOiBudW1iZXIsIHVybDogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh0eXBlSWQpIHtcbiAgICAgIGNhc2UgTGlua1R5cGUuYW5jaG9yVGV4dDpcbiAgICAgICAgdGhpcy5nZXRFZGl0b3JBbmNob3IoKTtcbiAgICAgICAgdGhpcy5hbmNob3JUZXh0ID0gdXJsLnN1YnN0cigxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExpbmtUeXBlLmVtYWlsOlxuICAgICAgICBjb25zdCBwMSA9IHVybC5pbmRleE9mKCdtYWlsdG86Jyk7XG4gICAgICAgIGNvbnN0IHAyID0gdXJsLmluZGV4T2YoJz9zdWJqZWN0PScpO1xuICAgICAgICBjb25zdCBwMyA9IHVybC5pbmRleE9mKCcmYm9keT0nKTtcbiAgICAgICAgdGhpcy5lbWFpbEFkZHJlc3MgPSB1cmwuc3Vic3RyKHAxICsgNywgcDIgLSA3KTtcbiAgICAgICAgdGhpcy5lbWFpbFN1YmplY3QgPSB1cmwuc3Vic3RyKHAyICsgOSwgcDMgLSBwMiAtIDkpO1xuICAgICAgICB0aGlzLmVtYWlsQm9keSA9IHVybC5zdWJzdHIocDMgKyA2LCB1cmwubGVuZ3RoIC0gcDMgLSA2KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExpbmtUeXBlLmFuY2hvckRvY3VtZW50OlxuICAgICAgICBjb25zdCBmbGFzaEluZGV4ID0gdXJsLmxhc3RJbmRleE9mKCcvJyk7XG4gICAgICAgIGNvbnN0IGhhc2hJbmRleCA9IHVybC5pbmRleE9mKCcjJyk7XG4gICAgICAgIGNvbnN0IHNJZCA9IHVybC5zdWJzdHIoZmxhc2hJbmRleCArIDEsIGhhc2hJbmRleCAtIDEgLSBmbGFzaEluZGV4KTtcbiAgICAgICAgdGhpcy5kb2N1bWVudElkID0gcGFyc2VJbnQoc0lkLCAxMCk7XG4gICAgICAgIHRoaXMuZ2V0QW5jaG9yRG9jdW1lbnQodGhpcy5kb2N1bWVudElkKTtcbiAgICAgICAgdGhpcy5hbmNob3JCeU5hbWUgPSB1cmwuc3Vic3RyKGhhc2hJbmRleCArIDEsIHVybC5sZW5ndGggLSBoYXNoSW5kZXgpO1xuICAgICAgICB0aGlzLmFuY2hvclRpdGxlID0gdGhpcy5kYXRhLnRpdGxlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdGVkTGlua1R5cGUoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9PT0gTGlua1R5cGUuYW5jaG9yVGV4dCkge1xuICAgICAgdGhpcy5nZXRFZGl0b3JBbmNob3IoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9PT0gTGlua1R5cGUuYW5jaG9yRG9jdW1lbnQpIHtcbiAgICAgIGlmICghdGhpcy5kb2N1bWVudEFuY2hvcnMpIHtcbiAgICAgICAgdGhpcy5hbmNob3JEb2N1bWVudHMgPSBbXTtcbiAgICAgICAgdGhpcy5zZXRBbmNob3JEb2N1bWVudCh0aGlzLmFuY2hvckRvY3VtZW50cyk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRBbmNob3JzID0gdGhpcy5hbmNob3JzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGVIYW5kYm9vayhpc09ubHlEb2N1bWVudDogYm9vbGVhbiwgaXNBbmNob3JEb2N1bWVudDogYm9vbGVhbikge1xuXG4gICAgdGhpcy5wcm9jZXNzQ29uZmlnID0ge1xuICAgICAgYWxsb3dTZWxlY3RGb2xkZXI6IHRydWUsXG4gICAgICBhcmVhT2ZDdXJyZW50UHJvY2VzczogJycsXG4gICAgICBzaG93Q2hlY2tCb3g6IGZhbHNlLFxuICAgICAgYWxsb3dNdWx0aXBsZUNoZWNrOiBmYWxzZSxcbiAgICAgIG9ubHlDaGVja0JveEZvckNoaWxkOiBmYWxzZSxcbiAgICAgIG1vZHVsZUlkOiBEYXRhVHlwZS5wcm9jZXNzLFxuICAgICAgb3Blbkljb25Db2xvcjogJyMxOTU0QTknLFxuICAgICAgY2xvc2VJY29uQ29sb3I6ICcjYTRiMGRlJyxcbiAgICAgIHNpbmdsZVNlbGVjdGVkTm9kZTogdHJ1ZSxcbiAgICAgIG9ubHlGb2xkZXI6IGZhbHNlLFxuICAgICAgc2VsZWN0T25lOiB0cnVlXG4gICAgfTtcblxuICAgIHRoaXMuZG9jdW1lbnRDb25maWcgPSB7XG4gICAgICBhbGxvd1NlbGVjdEZvbGRlcjogIWlzT25seURvY3VtZW50LFxuICAgICAgYXJlYU9mQ3VycmVudFByb2Nlc3M6ICcnLFxuICAgICAgc2hvd0NoZWNrQm94OiBmYWxzZSxcbiAgICAgIG1vZHVsZUlkOiBEYXRhVHlwZS5kb2N1bWVudCxcbiAgICAgIGFsbG93TXVsdGlwbGVDaGVjazogZmFsc2UsXG4gICAgICBvbmx5Q2hlY2tCb3hGb3JDaGlsZDogZmFsc2UsXG4gICAgICBvcGVuSWNvbkNvbG9yOiAnIzE5NTRBOScsXG4gICAgICBjbG9zZUljb25Db2xvcjogJyM0YWNhZmYnLFxuICAgICAgc2luZ2xlU2VsZWN0ZWROb2RlOiB0cnVlLFxuICAgICAgb25seUZvbGRlcjogZmFsc2UsXG4gICAgICBzZWxlY3RPbmU6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3QgZGF0YTogU2VsZWN0UHJvY2Vzc0RvY3VtZW50UG9wdXBEYXRhID0gbmV3IFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwRGF0YSgpO1xuICAgIGRhdGEubW9kdWxlSWQgPSBNb2R1bGVUeXBlLmRvY3VtZW50UHJvY2VzcztcbiAgICBkYXRhLm1vZHVsZU5hbWUgPSB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuRE9DVU1FTlRfUFJPQ0VTUztcbiAgICBpZiAoIWlzT25seURvY3VtZW50KSB7XG4gICAgICBjb25zdCB0cmVlUHJvY2Vzc0RhdGEgPSBhd2FpdCB0aGlzLnRyZWVTZXJ2aWNlLmdldFByb2Nlc3NBcmVhQ29udGVudHMoKS50b1Byb21pc2UoKTtcbiAgICAgIGRhdGEudHJlZURhdGExID0gdHJlZVByb2Nlc3NEYXRhPy5hcmVhcy5tYXAoKHgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZDogeC5pZCxcbiAgICAgICAgICBuYW1lOiB4Lm5hbWUsXG4gICAgICAgICAgcGFyZW50SWQ6IHgucGFyZW50SWQgPT09IGd1aWRIZWxwZXIuZW1wdHkgPyAnJyA6IHgucGFyZW50SWQsXG4gICAgICAgICAgc3RhdHVzSWQ6IDAsXG4gICAgICAgICAgc3RhdHVzTmFtZTogJycsXG4gICAgICAgICAgZGlzcGxheUlkOiAwLFxuICAgICAgICAgIGV4cGFuZGFibGU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH0pIHx8IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHRyZWVEb2N1bWVudERhdGEgPSBhd2FpdCB0aGlzLnRyZWVTZXJ2aWNlLmdldEZvbGRlckNoaWxkcmVucygpLnRvUHJvbWlzZSgpO1xuXG4gICAgZGF0YS50cmVlRGF0YTIgPSB0cmVlRG9jdW1lbnREYXRhPy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB4LmlkLnRvU3RyaW5nKCksXG4gICAgICAgIG5hbWU6IHgubmFtZS50b1N0cmluZygpLFxuICAgICAgICBwYXJlbnRJZDogIXgucGFyZW50SGFuZGJvb2tJZCA/ICcnIDogeC5wYXJlbnRIYW5kYm9va0lkLnRvU3RyaW5nKCksXG4gICAgICAgIHN0YXR1c0lkOiAwLFxuICAgICAgICBzdGF0dXNOYW1lOiAnJyxcbiAgICAgICAgZGlzcGxheUlkOiAwLFxuICAgICAgICBleHBhbmRhYmxlOiB4LnR5cGUgPiBEb2N1bWVudE5vZGVUeXBlLlNob3J0Y3V0RG9jdW1lbnQsXG4gICAgICAgIGxldmVsVHlwZTogeC50eXBlXG4gICAgICB9O1xuICAgIH0pO1xuICAgIGRhdGEudHJlZUNvbmZpZzEgPSB0aGlzLnByb2Nlc3NDb25maWc7XG4gICAgZGF0YS50cmVlQ29uZmlnMiA9IHRoaXMuZG9jdW1lbnRDb25maWc7XG4gICAgZGF0YS5zcGxpdFZpZXcgPSBmYWxzZTtcbiAgICBkYXRhLmlzU2VsZWN0T25lID0gdHJ1ZTtcbiAgICBkYXRhLnRvb2x0aXBMb2NhdGlvblNlYXJjaFJlc3VsdCA9IHRydWU7XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzc2OHB4JyxcbiAgICAgIG1pbkhlaWdodDogJzY5MHB4JyxcbiAgICAgIGRhdGEsXG4gICAgICBwYW5lbENsYXNzOiBbJ3JlbGF0ZWQtcHJvY2Vzc19fcG9wdXAnLCAnY3VzdG9tLW1hdC1kaWFsb2ctY29udGFpbmVyJ10sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2Uub25TZWFyY2guc3Vic2NyaWJlKGFzeW5jIChrZXl3b3JkOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICgha2V5d29yZCB8fCBrZXl3b3JkLnRyaW0oKSA9PT0gJycpXG4gICAgICAgIHJldHVybjtcblxuICAgICAgbGV0IGdldFNlYXJjaE9wdGlvbiA9IG5ldyBHZXRTZWFyY2hQcm9jZXNzRG9jdW1lbnRPcHRpb24odHJ1ZSwgdHJ1ZSwgdGhpcy5kYXRhLmVuYWJsZWRJbnRlcmNvbm5lY3RlZCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICBpZiAoaXNPbmx5RG9jdW1lbnQpIHtcbiAgICAgICAgZ2V0U2VhcmNoT3B0aW9uLmlzR2V0UHJvY2VzcyA9IGZhbHNlO1xuICAgICAgICBnZXRTZWFyY2hPcHRpb24uaXNHZXRJbnRlcmNvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICBnZXRTZWFyY2hPcHRpb24uaXNHZXRBcmVhID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0FuY2hvckRvY3VtZW50KSB7XG4gICAgICAgIGdldFNlYXJjaE9wdGlvbi5pc0dldEZvbGRlciA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWFyY2hSZXN1bHQgPSBhd2FpdCB0aGlzLnRyZWVTZXJ2aWNlLmdldFNlYXJjaFByb2Nlc3NEb2N1bWVudChrZXl3b3JkLnRyaW0oKSwgZ2V0U2VhcmNoT3B0aW9uKTtcbiAgICAgIHRoaXMuc2VsZWN0UHJvY2Vzc0RvY3VtZW50R2xvYmFsU2VydmljZS5zZXRTZWFyY2hSZWxhdGVkKHNlYXJjaFJlc3VsdCk7XG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2Uub25FeHBhbmRQcm9jZXNzQXJlYS5zdWJzY3JpYmUoKGFyZWEpID0+IHtcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuZ2V0UHJvY2Vzc0FyZWFDb250ZW50cyhhcmVhLmlkLCB0cnVlLCB0aGlzLmRhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkKS50b1Byb21pc2UoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICBjb25zdCBhcmVhcyA9IHJlcy5hcmVhcy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB4LmlkLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIG5hbWU6IHgubmFtZSxcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IHgucGFyZW50SWQsXG4gICAgICAgICAgICAgIGV4cGFuZGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiB4LnN0YXR1cyxcbiAgICAgICAgICAgICAgc3RhdHVzTmFtZTogeC5zdGF0dXNOYW1lLFxuICAgICAgICAgICAgICBkaXNwbGF5SWQ6IDBcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSkgfHwgW107XG5cbiAgICAgICAgICBjb25zdCBwcm9jZXNzZXMgPSByZXMucHJvY2Vzc2VzLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IHguZW50aXR5SWQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgbmFtZTogeC5uYW1lLFxuICAgICAgICAgICAgICBwYXJlbnRJZDogeC5wcm9jZXNzQXJlYUlkLFxuICAgICAgICAgICAgICBleHBhbmRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgc3RhdHVzSWQ6IHguc3RhdHVzLFxuICAgICAgICAgICAgICBzdGF0dXNOYW1lOiB4LmFwcHJvdmFsU3RhdHVzLFxuICAgICAgICAgICAgICBkaXNwbGF5SWQ6IHgucHJvY2Vzc051bWJlcixcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHgucHJvY2Vzc0NsYXNzaWZpY2F0aW9uID09PSBQcm9jZXNzQ2xhc3NpZmljYXRpb24uSW50ZXJjb25uZWN0ZWRQcm9jZXNzID8gRGF0YVR5cGUucHJvY2Vzc0ludGVyY29ubmVjdGVkIDogRGF0YVR5cGUucHJvY2Vzc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSB8fCBbXTtcbiAgICAgICAgICB0aGlzLnNlbGVjdFByb2Nlc3NEb2N1bWVudEdsb2JhbFNlcnZpY2Uuc2V0UHJvY2Vzc0FyZWFDaGlsZHJlbihbLi4uYXJlYXMsIC4uLnByb2Nlc3Nlc10pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5vbkV4cGFuZEZvbGRlci5zdWJzY3JpYmUoKGZvbGRlcikgPT4ge1xuICAgICAgdGhpcy50cmVlU2VydmljZVxuICAgICAgICAuZ2V0Rm9sZGVyQ2hpbGRyZW5zKGZvbGRlci5pZClcbiAgICAgICAgLnRvUHJvbWlzZSgpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcyA9IHJlcy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogeC5pZC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIG5hbWU6IHgubmFtZS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHBhcmVudElkOiB0aGlzLmdldFBhcmVudElkKHgpLFxuICAgICAgICAgICAgICAgIHN0YXR1c0lkOiAwLFxuICAgICAgICAgICAgICAgIHN0YXR1c05hbWU6IHguYXBwcm92YWxTdGF0dXMsXG4gICAgICAgICAgICAgICAgZGlzcGxheUlkOiB4LmlkLFxuICAgICAgICAgICAgICAgIGV4cGFuZGFibGU6ICF0aGlzLmRvY3VtZW50VHlwZXMuaW5jbHVkZXMoeC50eXBlKSxcbiAgICAgICAgICAgICAgICBsZXZlbFR5cGU6ICF0aGlzLmRvY3VtZW50VHlwZXMuaW5jbHVkZXMoeC50eXBlKSA/IHgudHlwZSA6IGZvbGRlci5sZXZlbFR5cGVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RQcm9jZXNzRG9jdW1lbnRHbG9iYWxTZXJ2aWNlLnNldEZvbGRlckNoaWxkcmVuKGNoaWxkcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0RGF0YSA9IHJlc3VsdFswXTtcbiAgICAgICAgaWYgKCFpc0FuY2hvckRvY3VtZW50KSB7XG4gICAgICAgICAgdGhpcy51cmwgPSB0aGlzLmdldExpbmtVUkwocmVzdWx0RGF0YSk7XG4gICAgICAgICAgaWYgKCF0aGlzLmFkdmlzb3J5VGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9IHJlc3VsdERhdGEuaXRlbU5hbWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm90b2NvbCA9IFByb3RvY29sVHlwZS5vdGhlcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRvY3VtZW50SWQgPSByZXN1bHREYXRhLmlkO1xuICAgICAgICAgIHRoaXMuYW5jaG9yVGl0bGUgPSBgJHtyZXN1bHREYXRhLml0ZW1OYW1lfSgke3Jlc3VsdERhdGEuaWR9KWA7XG4gICAgICAgICAgdGhpcy5nZXRBbmNob3JEb2N1bWVudChyZXN1bHREYXRhLmlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UGFyZW50SWQoaXRlbSkge1xuICAgIGlmICghdGhpcy5kb2N1bWVudFR5cGVzLmluY2x1ZGVzKGl0ZW0udHlwZSkpIHtcbiAgICAgIHJldHVybiAhaXRlbS5wYXJlbnRIYW5kYm9va0lkID8gJycgOiBpdGVtLnBhcmVudEhhbmRib29rSWQudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuICFpdGVtLnBhcmVudEZvbGRlcklkID8gJycgOiBpdGVtLnBhcmVudEZvbGRlcklkLnRvU3RyaW5nKCk7XG4gIH1cblxuICBnZXRMaW5rVVJMKGRhdGE6IGFueSkge1xuICAgIGxldCB1cmwgPSAnJztcbiAgICBzd2l0Y2ggKGRhdGE/Lml0ZW1UeXBlKSB7XG4gICAgICBjYXNlIERhdGFUeXBlLmRvY3VtZW50OlxuICAgICAgICB1cmwgPSBgL2RvY3VtZW50LyR7ZGF0YS5pZH1gO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRGF0YVR5cGUucHJvY2VzczpcbiAgICAgICAgdXJsID0gYC9wcm9jZXNzLWRldGFpbC8ke2RhdGEuZGlzcGxheUlkfWA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBEYXRhVHlwZS5hcmVhOlxuICAgICAgICB1cmwgPSBgL2FyZWEvZGV0YWlsLyR7ZGF0YS5pZH1gO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRGF0YVR5cGUuZm9sZGVyOlxuICAgICAgICB1cmwgPSBgL2ZvbGRlci8ke2RhdGEuaWR9YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERhdGFUeXBlLnByb2Nlc3NJbnRlcmNvbm5lY3RlZDpcbiAgICAgICAgdXJsID0gYC9wcm9jZXNzLWludGVyY29ubmVjdGVkLyR7ZGF0YS5kaXNwbGF5SWR9YFxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgYXR0YWNobWVudCgpIHtcbiAgICBjb25zdCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yUGFyYW10ZXIoKTtcbiAgICBkYXRhLm1vZHVsZSA9IHRoaXMuZGF0YS5tb2R1bGU7XG4gICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMuZGF0YS5lbnRpdHlJZDtcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oTGlua0F0dGFjaG1lbnRDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiBcIjY1MHB4XCIsXG4gICAgICBoZWlnaHQ6IFwiNjUwcHhcIixcbiAgICAgIGRhdGEsXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgfSk7XG4gICAgZGlhbG9nVGVtcGxhdGVcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLnVybCA9IHJlc3VsdC51cmw7XG4gICAgICAgICAgaWYgKCF0aGlzLmFkdmlzb3J5VGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9IHJlc3VsdC50aXRsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID0gUHJvdG9jb2xUeXBlLm90aGVyO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldEVkaXRvckFuY2hvcigpIHtcbiAgICB0aGlzLmFuY2hvckRvY3VtZW50cyA9IFtdO1xuICAgIGlmICh0aGlzLmVkaXRvckNvbnRlbnQpIHtcbiAgICAgIHRoaXMuYW5jaG9yRG9jdW1lbnRzLnB1c2goe1xuICAgICAgICBpZDogMCxcbiAgICAgICAgZW50aXR5SWQ6IDAsXG4gICAgICAgIGRvY3VtZW50SWQ6IDAsXG4gICAgICAgIGRvY3VtZW50VHlwZUlkOiAwLFxuICAgICAgICByaWNoVGV4dDogdGhpcy5lZGl0b3JDb250ZW50LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2V0QW5jaG9yRG9jdW1lbnQodGhpcy5hbmNob3JEb2N1bWVudHMpO1xuICAgIHRoaXMuZWRpdG9yQW5jaG9ycyA9IHRoaXMuYW5jaG9ycztcbiAgfVxuXG4gIGdldEFuY2hvckRvY3VtZW50KGRvY3VtZW50SWQ6IG51bWJlcikge1xuICAgIHRoaXMubGlua1NlcnZpY2VcbiAgICAgIC5nZXRBbmNob3JEb2N1bWVudExpc3QoZG9jdW1lbnRJZClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIHRoaXMuYW5jaG9yRG9jdW1lbnRzID0gcmVzO1xuICAgICAgICAgIHRoaXMuc2V0QW5jaG9yRG9jdW1lbnQodGhpcy5hbmNob3JEb2N1bWVudHMpO1xuICAgICAgICAgIHRoaXMuZG9jdW1lbnRBbmNob3JzID0gdGhpcy5hbmNob3JzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYW5jaG9yRG9jdW1lbnRzID0gW107XG4gICAgICAgICAgdGhpcy5zZXRBbmNob3JEb2N1bWVudCh0aGlzLmFuY2hvckRvY3VtZW50cyk7XG4gICAgICAgICAgdGhpcy5kb2N1bWVudEFuY2hvcnMgPSB0aGlzLmFuY2hvcnM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0QW5jaG9yRG9jdW1lbnQoYW5jaG9yRG9jdW1lbnQ6IFFNU0NLRWRpdG9yTGlua0FuY2hvckRvY3VtZW50W10pIHtcbiAgICB0aGlzLmluaXRBbmNob3IoKTtcbiAgICBsZXQgaWQgPSAzO1xuICAgIGlmIChcbiAgICAgIHRoaXMuZGF0YS5xbXNja0NvbnRlbnRGaWVsZHMgJiZcbiAgICAgIHRoaXMuZGF0YS5xbXNja0NvbnRlbnRGaWVsZHMubGVuZ3RoICYmXG4gICAgICB0aGlzLmRhdGEucW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50ICYmXG4gICAgICB0aGlzLnNlbGVjdGVkTGlua1R5cGUgPT09IExpbmtUeXBlLmFuY2hvclRleHRcbiAgICApIHtcbiAgICAgIHRoaXMuZGF0YS5xbXNja0NvbnRlbnRGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5nZXRBbmNob3IoZmllbGQsIGlkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9PT0gTGlua1R5cGUuYW5jaG9yRG9jdW1lbnQgJiYgYW5jaG9yRG9jdW1lbnQpIHtcbiAgICAgIGFuY2hvckRvY3VtZW50LmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICB0aGlzLmdldEFuY2hvcihlLCBpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYW5jaG9ycy5wdXNoKHtcbiAgICAgIHZhbHVlOiAxLFxuICAgICAgdmlld1ZhbHVlOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuQU5DSE9SX0FUVEFDSE1FTlQsXG4gICAgICBhbmNob3JWYWx1ZTogTGlua0FuY2hvci5BdHRhY2htZW50LFxuICAgIH0pO1xuICAgIHRoaXMuYW5jaG9ycy5wdXNoKHtcbiAgICAgIHZhbHVlOiAyLFxuICAgICAgdmlld1ZhbHVlOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuQU5DSE9SX1JFTEFURURfRE9DVU1FTlQsXG4gICAgICBhbmNob3JWYWx1ZTogTGlua0FuY2hvci5SZWxhdGVkLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QW5jaG9yKGUsIGlkKSB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICBkaXYuaW5uZXJIVE1MID0gZS5yaWNoVGV4dDtcbiAgICBjb25zdCBkb21Db250ZW50ID0gZGl2O1xuICAgIGNvbnN0IGFUYWdzID0gZG9tQ29udGVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImFcIik7XG4gICAgaWYgKGFUYWdzKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhVGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB0YWcgPSBhVGFnc1tpXTtcbiAgICAgICAgaWYgKHRhZy5uYW1lKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFuY2hvcnMuZmluZEluZGV4KCh4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geC5hbmNob3JWYWx1ZSA9PT0gdGFnLm5hbWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5hbmNob3JzLnB1c2goe1xuICAgICAgICAgICAgICB2YWx1ZTogaWQsXG4gICAgICAgICAgICAgIHZpZXdWYWx1ZTogdGFnLm5hbWUsXG4gICAgICAgICAgICAgIGFuY2hvclZhbHVlOiB0YWcubmFtZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWQgKz0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaXNhYmxlT2tCdXR0b24oKSB7XG4gICAgbGV0IGlzRGlzYWJsZSA9IGZhbHNlO1xuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZExpbmtUeXBlKSB7XG4gICAgICBjYXNlIExpbmtUeXBlLnVybDpcbiAgICAgICAgaXNEaXNhYmxlID0gdGhpcy5saW5rRm9ybUdyb3VwLmludmFsaWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMaW5rVHlwZS5hbmNob3JUZXh0OlxuICAgICAgICBpc0Rpc2FibGUgPSB0aGlzLmFuY2hvclRleHRGb3JtR3JvdXAuaW52YWxpZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExpbmtUeXBlLmVtYWlsOlxuICAgICAgICBpc0Rpc2FibGUgPSB0aGlzLmVtYWlsRm9ybUdyb3VwLmludmFsaWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMaW5rVHlwZS5hbmNob3JEb2N1bWVudDpcbiAgICAgICAgaXNEaXNhYmxlID0gdGhpcy5hbmNob3JEb2NGb3JtR3JvdXAuaW52YWxpZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzYWJsZTtcbiAgfVxuXG4gIHNldExpbmsoKSB7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5jb21tb25TZXJ2aWNlLmdldFNjcm9sbFRvcENrZWRpdG9yKHRoaXMuY2tFZGl0b3IpO1xuICAgIGNvbnN0IGxpbmsgPSBuZXcgUU1TQ0tFZGl0b3JMaW5rKCk7XG4gICAgbGluay50eXBlSWQgPSB0aGlzLnNlbGVjdGVkTGlua1R5cGU7XG4gICAgbGluay50YXJnZXRJZCA9IHRoaXMuc2VsZWN0ZWRUYXJnZXQ7XG4gICAgbGluay5wcm90b2NvbElkID0gdGhpcy5zZWxlY3RlZFByb3RvY29sO1xuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZExpbmtUeXBlKSB7XG4gICAgICBjYXNlIExpbmtUeXBlLnVybDpcbiAgICAgICAgaWYgKCF0aGlzLmFkdmlzb3J5VGl0bGUubGVuZ3RoKSB7XG4gICAgICAgICAgbGluay50aXRsZSA9IGAke3RoaXMuZ2V0UHJvdG9jb2xOYW1lKCl9JHt0aGlzLmxpbmtGb3JtR3JvdXAudmFsdWUudXJsfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGluay50aXRsZSA9IHRoaXMuYWR2aXNvcnlUaXRsZTtcbiAgICAgICAgfVxuICAgICAgICBsaW5rLnVybCA9IGAke3RoaXMuc2VsZWN0ZWRMaW5rVHlwZX0ke3RoaXMuc2VsZWN0ZWRQcm90b2NvbH0ke3RoaXMuZ2V0UHJvdG9jb2xOYW1lKCl9JHt0aGlzLnVybH1gO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTGlua1R5cGUuYW5jaG9yVGV4dDpcbiAgICAgICAgbGluay51cmwgPSBgJHt0aGlzLnNlbGVjdGVkTGlua1R5cGV9JHswfSMke3RoaXMuYW5jaG9yVGV4dH1gO1xuICAgICAgICBsaW5rLnRpdGxlID0gYCMke3RoaXMuYW5jaG9yVGV4dH1gO1xuICAgICAgICBsaW5rLnRhcmdldElkID0gVGFyZ2V0VHlwZS50b3Btb3N0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTGlua1R5cGUuZW1haWw6XG4gICAgICAgIGxpbmsudXJsID0gYCR7dGhpcy5zZWxlY3RlZExpbmtUeXBlfSR7MH1tYWlsdG86JHt0aGlzLmVtYWlsQWRkcmVzc30/c3ViamVjdD0ke3RoaXMuZW1haWxTdWJqZWN0fSZib2R5PSR7dGhpcy5lbWFpbEJvZHlcbiAgICAgICAgICB9YDtcbiAgICAgICAgbGluay50aXRsZSA9IHRoaXMuZW1haWxBZGRyZXNzO1xuICAgICAgICBsaW5rLnRhcmdldElkID0gVGFyZ2V0VHlwZS50b3Btb3N0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTGlua1R5cGUuYW5jaG9yRG9jdW1lbnQ6XG4gICAgICAgIGxpbmsudXJsID0gYCR7dGhpcy5zZWxlY3RlZExpbmtUeXBlfSR7MH0vZG9jdW1lbnQvJHt0aGlzLmRvY3VtZW50SWR9IyR7dGhpcy5hbmNob3JCeU5hbWV9YDtcbiAgICAgICAgbGluay50aXRsZSA9IHRoaXMuYW5jaG9yVGl0bGU7XG4gICAgICAgIGxpbmsudGFyZ2V0SWQgPSB0aGlzLnNlbGVjdGVkVGFyZ2V0QW5jaG9yRG9jdW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShsaW5rKTtcbiAgICB0aGlzLmNvbW1vblNlcnZpY2Uuc2V0U2Nyb2xsVG9wRWRpdG9yQ29udGFpbmVyKHRoaXMuY2tFZGl0b3IsIHNjcm9sbFRvcCk7XG4gIH1cblxuICBnZXRVcmxUb1NldFByb3RvY29sKCkge1xuICAgIGlmICghdGhpcy51cmwubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGxpc3RQcm90b2NvbE5hbWUgPSBPYmplY3QudmFsdWVzKFByb3RvY29sVHlwZU5hbWUpO1xuICAgIGZvciAobGV0IGluZGV4IGluIGxpc3RQcm90b2NvbE5hbWUpIHtcbiAgICAgIGlmIChsaXN0UHJvdG9jb2xOYW1lW2luZGV4XS5sZW5ndGggJiYgdGhpcy51cmwuaW5kZXhPZihsaXN0UHJvdG9jb2xOYW1lW2luZGV4XS50b1N0cmluZygpKSA9PT0gMCkge1xuICAgICAgICBzd2l0Y2ggKGxpc3RQcm90b2NvbE5hbWVbaW5kZXhdKSB7XG4gICAgICAgICAgY2FzZSBQcm90b2NvbFR5cGVOYW1lLmh0dHA6XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVVybEFuZFNlbGVjdGVkUHJvdG9jb2woUHJvdG9jb2xUeXBlLmh0dHAsIFByb3RvY29sVHlwZU5hbWUuaHR0cCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgUHJvdG9jb2xUeXBlTmFtZS5odHRwczpcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVXJsQW5kU2VsZWN0ZWRQcm90b2NvbChQcm90b2NvbFR5cGUuaHR0cHMsIFByb3RvY29sVHlwZU5hbWUuaHR0cHMpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlIFByb3RvY29sVHlwZU5hbWUuZnRwOlxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VVcmxBbmRTZWxlY3RlZFByb3RvY29sKFByb3RvY29sVHlwZS5mdHAsIFByb3RvY29sVHlwZU5hbWUuZnRwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSBQcm90b2NvbFR5cGVOYW1lLm5ld3M6XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVVybEFuZFNlbGVjdGVkUHJvdG9jb2woUHJvdG9jb2xUeXBlLm5ld3MsIFByb3RvY29sVHlwZU5hbWUubmV3cyk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXJsLmluZGV4T2YoJzovLycpICE9PSAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID0gUHJvdG9jb2xUeXBlLm90aGVyO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVVybEFuZFNlbGVjdGVkUHJvdG9jb2wocHJvdG9jb2xUeXBlOiBudW1iZXIsIHByb3RvY29sTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRQcm90b2NvbCAhPT0gcHJvdG9jb2xUeXBlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBwcm90b2NvbFR5cGU7XG4gICAgfVxuICAgIHRoaXMudXJsID0gdGhpcy51cmwuc2xpY2UocHJvdG9jb2xOYW1lLmxlbmd0aCk7XG4gICAgdGhpcy5saW5rRm9ybUdyb3VwLnBhdGNoVmFsdWUoeyB1cmw6IHRoaXMudXJsIH0pO1xuICB9XG5cbiAgZ2V0UHJvdG9jb2xOYW1lKCkge1xuICAgIHJldHVybiBQcm90b2NvbFR5cGVOYW1lW1Byb3RvY29sVHlwZVt0aGlzLnNlbGVjdGVkUHJvdG9jb2xdXTtcbiAgfVxuXG4gIHNldExpbmtVcmxUeXBlKCRldmVudD86IEV2ZW50KSB7XG4gICAgaWYgKCRldmVudClcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKHRoaXMubGlua0Zvcm1Hcm91cC5pbnZhbGlkKVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5zZXRMaW5rKCk7XG4gIH1cbn1cbiJdfQ==
656
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLWxpbmsuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1saW5rL3Ftcy1ja2VkaXRvci1saW5rLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsNkRBQTZEO0FBQzdELE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLDZEQUE2RDtBQUM3RCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEdBQ2hCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFakUsT0FBTyxtQkFBbUIsTUFBTSxrREFBa0QsQ0FBQztBQUNuRixPQUFPLGVBQWUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdC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WUFBWSxFQUFFO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQzNCLElBQUksTUFBTTtZQUNSLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUM1QixPQUFPO1FBRVQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7OztZQXpwQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLGlxV0FBaUQ7O2FBRWxEOzs7WUFqRUMsaUJBQWlCO1lBVWpCLFNBQVM7WUFNRix1QkFBdUI7WUFVdkIsc0JBQXNCO1lBRHRCLHdCQUF3QjtZQU94QixzQkFBc0I7WUFGdEIscUNBQXFDO1lBbkI1QyxZQUFZO1lBWVAsZUFBZSx1QkErR2pCLE1BQU0sU0FBQyxlQUFlOzs7dUJBaEV4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHtcbiAgTWF0RGlhbG9nLFxuICBNYXREaWFsb2dSZWYsXG4gIE1BVF9ESUFMT0dfREFUQSxcbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtBbmNob3IgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bXMvbGluay1hbmNob3IuZW51bSc7XG5pbXBvcnQgeyBMaW5rVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbnVtcy9saW5rLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBQcm90b2NvbFR5cGUsIFByb3RvY29sVHlwZU5hbWUgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bXMvcHJvdG9jb2wtdHlwZS5lbnVtJztcbmltcG9ydCB7IFRhcmdldFR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bXMvdGFyZ2V0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckxpbmtBbmNob3JEb2N1bWVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLWxpbmstYW5jaG9yLWRvY3VtZW50Lm1vZGVsJztcbmltcG9ydCBRTVNDS0VkaXRvclBhcmFtdGVyIGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXBhcmFtZXRlci5tb2RlbCc7XG5pbXBvcnQgUU1TQ0tFZGl0b3JMaW5rIGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXVybC5tb2RlbCc7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JDb21tb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci1jb21tb24uc2VydmljZXNcIjtcbmltcG9ydCB7IFFNU0NLRWRpdG9yTGlua1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xbXMtY2tlZGl0b3ItbGluay5zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtBdHRhY2htZW50Q29tcG9uZW50IH0gZnJvbSAnLi9hdHRhY2htZW50cy9saW5rLWF0dGFjaG1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9lbnVtL2RhdGEtdHlwZS5lbnVtXCI7XG5pbXBvcnQgeyBUcmVlQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvdHJlZVwiO1xuaW1wb3J0IHsgUU1TU2VsZWN0UHJvY2Vzc0RvY3VtZW50R2xvYmFsU2VydmljZSwgU2VsZWN0UHJvY2Vzc0RvY3VtZW50UG9wdXBDb21wb25lbnQsIFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwRGF0YSB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL3NlbGVjdC1wcm9jZXNzLWRvY3VtZW50XCI7XG5pbXBvcnQgeyBNb2R1bGVUeXBlIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9lbnVtL21vZHVsZS10eXBlLmVudW1cIjtcbmltcG9ydCB7IFFNU0NLRWRpdG9yVHJlZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLXRyZWUuc2VydmljZVwiO1xuaW1wb3J0IGd1aWRIZWxwZXIgZnJvbSBcIi4uLy4uL2NvbW1vbi9oZWxwZXIvZ3VpZEhlbHBlclwiO1xuaW1wb3J0IHsgRG9jdW1lbnROb2RlVHlwZSB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vZW51bS9kb2N1bWVudC1ub2RlLXR5cGUuZW51bVwiO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgSVJlbGF0ZWQgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9yZWxhdGVkL21vZGVsL3JlbGF0ZWQtZGF0YS5tb2RlbFwiO1xuaW1wb3J0IHsgUHJvY2Vzc0NsYXNzaWZpY2F0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9lbnVtL3Byb2Nlc3MtY2xhc3NpZmljYXRpb24uZW51bVwiO1xuaW1wb3J0IHsgR2V0U2VhcmNoUHJvY2Vzc0RvY3VtZW50T3B0aW9uIH0gZnJvbSBcIi4uLy4uL21vZGVscy9nZXQtc2VhcmNoLXByb2Nlc3MtZG9jdW1lbnQtb3B0aW9uXCI7XG5cbmludGVyZmFjZSBJTGlua1R5cGUge1xuICBpZDogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJVGFyZ2V0IHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSVByb3RvY29sIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSUFuY2hvciB7XG4gIHZhbHVlOiBudW1iZXI7XG4gIHZpZXdWYWx1ZTogc3RyaW5nO1xuICBhbmNob3JWYWx1ZTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicW1zLWNrZWRpdG9yLWxpbmtcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9xbXMtY2tlZGl0b3ItbGluay5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vcW1zLWNrZWRpdG9yLWxpbmsuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yTGlua0NvbXBvbmVudFxuICBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG5cbiAgQElucHV0KCkgY2tFZGl0b3I6IGFueTtcblxuICBMQU5HOiBhbnk7XG4gIGxpbmtGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIHRhcmdldExpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxuICAgIHByb3RvY29sTGlzdDogbmV3IEZvcm1Db250cm9sKCksXG4gICAgdXJsOiBuZXcgRm9ybUNvbnRyb2woXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBhZHZpc29yeVRpdGxlOiBuZXcgRm9ybUNvbnRyb2woKSxcbiAgfSk7XG4gIGFuY2hvclRleHRGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIGFuY2hvclRleHQ6IG5ldyBGb3JtQ29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICB9KTtcbiAgZW1haWxGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIGVtYWlsQWRkcmVzczogbmV3IEZvcm1Db250cm9sKFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgZW1haWxTdWJqZWN0OiBuZXcgRm9ybUNvbnRyb2woXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBlbWFpbEJvZHk6IG5ldyBGb3JtQ29udHJvbChcIlwiLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICB9KTtcbiAgYW5jaG9yRG9jRm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICB0YXJnZXRMaXN0OiBuZXcgRm9ybUNvbnRyb2woKSxcbiAgICBhbmNob3JUaXRsZTogbmV3IEZvcm1Db250cm9sKFwiXCIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgYW5jaG9yQnlOYW1lOiBuZXcgRm9ybUNvbnRyb2woXCJcIiwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgfSk7XG4gIGlzRXhwYW5kZWQgPSB0cnVlO1xuICBsaW5rVHlwZXM6IElMaW5rVHlwZVtdID0gW107XG4gIHRhcmdldHM6IElUYXJnZXRbXSA9IFtdO1xuICBwcm90b2NvbHM6IElQcm90b2NvbFtdID0gW107XG4gIGFuY2hvckRvY3VtZW50czogUU1TQ0tFZGl0b3JMaW5rQW5jaG9yRG9jdW1lbnRbXSA9IFtdO1xuICBhbmNob3JzOiBJQW5jaG9yW107XG4gIGVkaXRvckFuY2hvcnM6IElBbmNob3JbXTtcbiAgZG9jdW1lbnRBbmNob3JzOiBJQW5jaG9yW107XG4gIGVkaXRvckNvbnRlbnQgPSAnJztcbiAgc2VsZWN0ZWRMaW5rVHlwZSA9IDA7XG4gIHNlbGVjdGVkVGFyZ2V0ID0gMDtcbiAgc2VsZWN0ZWRQcm90b2NvbCA9IDA7XG4gIHVybCA9IFwiXCI7XG4gIGFkdmlzb3J5VGl0bGUgPSBcIlwiO1xuICBlZGl0ID0gZmFsc2U7XG4gIGFuY2hvclRleHQgPSBcIlwiO1xuICBlbWFpbEFkZHJlc3MgPSBcIlwiO1xuICBlbWFpbFN1YmplY3QgPSBcIlwiO1xuICBlbWFpbEJvZHkgPSBcIlwiO1xuICBkb2N1bWVudElkID0gMDtcbiAgYW5jaG9yVGl0bGUgPSBcIlwiO1xuICBhbmNob3JCeU5hbWUgPSBcIlwiO1xuICBMaW5rVHlwZSA9IExpbmtUeXBlO1xuICBwcm9jZXNzQ29uZmlnOiBUcmVlQ29uZmlnO1xuICBkb2N1bWVudENvbmZpZzogVHJlZUNvbmZpZztcbiAgZG9jdW1lbnRUeXBlcyA9IFtcbiAgICBEb2N1bWVudE5vZGVUeXBlLkRvY3VtZW50LFxuICAgIERvY3VtZW50Tm9kZVR5cGUuRmlsZURvY3VtZW50LFxuICAgIERvY3VtZW50Tm9kZVR5cGUuTGlua0RvY3VtZW50LFxuICAgIERvY3VtZW50Tm9kZVR5cGUuU2hvcnRjdXREb2N1bWVudFxuICBdO1xuICBzZWxlY3RlZFRhcmdldEFuY2hvckRvY3VtZW50ID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsaW5rU2VydmljZTogUU1TQ0tFZGl0b3JMaW5rU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IFFNU0NLRWRpdG9yQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIHRyZWVTZXJ2aWNlOiBRTVNDS0VkaXRvclRyZWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VsZWN0UHJvY2Vzc0RvY3VtZW50R2xvYmFsU2VydmljZTogUU1TU2VsZWN0UHJvY2Vzc0RvY3VtZW50R2xvYmFsU2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UU1TQ0tFZGl0b3JMaW5rQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFFNU0NLRWRpdG9yTGlua1xuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9IGRhdGEudHlwZUlkO1xuICAgIHRoaXMuc2VsZWN0ZWRQcm90b2NvbCA9IGRhdGEucHJvdG9jb2xJZDtcbiAgICB0aGlzLnVybCA9IGRhdGEudXJsO1xuICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9IGRhdGEudGl0bGU7XG4gICAgdGhpcy5lZGl0ID0gZGF0YS5lZGl0O1xuICAgIHRoaXMuZWRpdG9yQ29udGVudCA9IGRhdGEuZWRpdG9yQ29udGVudDtcblxuICAgIGlmICh0aGlzLnVybC5sZW5ndGggJiYgZGF0YS50eXBlSWQgPT0gTGlua1R5cGUudXJsKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFyZ2V0ID0gZGF0YS50YXJnZXRJZDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYXJnZXRBbmNob3JEb2N1bWVudCA9IGRhdGEuZGVmYXVsdFRhcmdldE5ld1dpbmRvdyA/IFRhcmdldFR5cGUubmV3IDogVGFyZ2V0VHlwZS5zYW1lO1xuICAgIH0gZWxzZSBpZiAodGhpcy51cmwubGVuZ3RoICYmIGRhdGEudHlwZUlkID09IExpbmtUeXBlLmFuY2hvckRvY3VtZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFyZ2V0QW5jaG9yRG9jdW1lbnQgPSBkYXRhLnRhcmdldElkO1xuICAgICAgdGhpcy5zZWxlY3RlZFRhcmdldCA9IGRhdGEuZGVmYXVsdFRhcmdldE5ld1dpbmRvdyA/IFRhcmdldFR5cGUubmV3IDogVGFyZ2V0VHlwZS5zYW1lO1xuICAgIH0gZWxzZSBpZiAoZGF0YS5kZWZhdWx0VGFyZ2V0TmV3V2luZG93KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFyZ2V0ID0gVGFyZ2V0VHlwZS5uZXc7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFyZ2V0QW5jaG9yRG9jdW1lbnQgPSBUYXJnZXRUeXBlLm5ldztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFRhcmdldCA9IFRhcmdldFR5cGUuc2FtZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYXJnZXRBbmNob3JEb2N1bWVudCA9IFRhcmdldFR5cGUuc2FtZTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXRMYW5ndWFnZVN1YmplY3QkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuaW5pdExpbmtUeXBlKCk7XG4gICAgdGhpcy5pbml0VGFyZ2V0KCk7XG4gICAgdGhpcy5pbml0UHJvdG9jb2woKTtcbiAgICB0aGlzLmluaXRBbmNob3IoKTtcbiAgICBpZiAodGhpcy5kYXRhLmVkaXQpIHtcbiAgICAgIHRoaXMucGFyc2VMaW5rVXJsKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSwgdGhpcy51cmwpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkNsb3NlRGlhbG9nKCkge1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuY29tbW9uU2VydmljZS5nZXRTY3JvbGxUb3BDa2VkaXRvcih0aGlzLmNrRWRpdG9yKTtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShudWxsKTtcbiAgICB0aGlzLmNvbW1vblNlcnZpY2Uuc2V0U2Nyb2xsVG9wRWRpdG9yQ29udGFpbmVyKHRoaXMuY2tFZGl0b3IsIHNjcm9sbFRvcCk7XG4gIH1cblxuICBpbml0TGlua1R5cGUoKSB7XG4gICAgaWYgKHRoaXMubGlua1R5cGVzKSB7XG4gICAgICB0aGlzLmxpbmtUeXBlcy5wdXNoKHtcbiAgICAgICAgaWQ6IExpbmtUeXBlLnVybCxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLkxJTktfVVJMLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmxpbmtUeXBlcy5wdXNoKHtcbiAgICAgICAgaWQ6IExpbmtUeXBlLmFuY2hvclRleHQsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5MSU5LX0FOQ0hPUl9JTl9URVhULFxuICAgICAgfSk7XG4gICAgICB0aGlzLmxpbmtUeXBlcy5wdXNoKHtcbiAgICAgICAgaWQ6IExpbmtUeXBlLmVtYWlsLFxuICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuTElOS19FTUFJTCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5saW5rVHlwZXMucHVzaCh7XG4gICAgICAgIGlkOiBMaW5rVHlwZS5hbmNob3JEb2N1bWVudCxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLkxJTktfQU5DSE9SX0RPQ1VNRU5ULFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaW5pdFRhcmdldCgpIHtcbiAgICBpZiAodGhpcy50YXJnZXRzKSB7XG4gICAgICB0aGlzLnRhcmdldHMucHVzaCh7XG4gICAgICAgIGlkOiBUYXJnZXRUeXBlLm5ldyxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlRBUlRHRVRfTkVXLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnRhcmdldHMucHVzaCh7XG4gICAgICAgIGlkOiBUYXJnZXRUeXBlLnRvcG1vc3QsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5UQVJHRVRfVE9QTU9TVCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YXJnZXRzLnB1c2goe1xuICAgICAgICBpZDogVGFyZ2V0VHlwZS5zYW1lLFxuICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuVEFSR0VUX1NBTUUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMudGFyZ2V0cy5wdXNoKHtcbiAgICAgICAgaWQ6IFRhcmdldFR5cGUucGFyZW50LFxuICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuVEFSR0VUX1BBUkVOVCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGluaXRQcm90b2NvbCgpIHtcbiAgICBpZiAodGhpcy5wcm90b2NvbHMpIHtcbiAgICAgIHRoaXMucHJvdG9jb2xzLnB1c2goe1xuICAgICAgICBpZDogUHJvdG9jb2xUeXBlLmh0dHAsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9IVFRQLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnByb3RvY29scy5wdXNoKHtcbiAgICAgICAgaWQ6IFByb3RvY29sVHlwZS5odHRwcyxcbiAgICAgICAgbmFtZTogdGhpcy5MQU5HLlFNU0NLRURJVE9SLlBST1RPQ09MX0hUVFBTLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnByb3RvY29scy5wdXNoKHtcbiAgICAgICAgaWQ6IFByb3RvY29sVHlwZS5mdHAsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9GVFAsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvdG9jb2xzLnB1c2goe1xuICAgICAgICBpZDogUHJvdG9jb2xUeXBlLm5ld3MsXG4gICAgICAgIG5hbWU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5QUk9UT0NPTF9ORVcsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucHJvdG9jb2xzLnB1c2goe1xuICAgICAgICBpZDogUHJvdG9jb2xUeXBlLm90aGVyLFxuICAgICAgICBuYW1lOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuUFJPVE9DT0xfT1RIRVIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpbml0QW5jaG9yKCkge1xuICAgIHRoaXMuYW5jaG9ycyA9IFtdO1xuICAgIHRoaXMuYW5jaG9ycyA9IFt7IHZhbHVlOiAwLCB2aWV3VmFsdWU6IFwiXCIsIGFuY2hvclZhbHVlOiBMaW5rQW5jaG9yLkJsYW5rIH1dO1xuICB9XG5cbiAgcGFyc2VMaW5rVXJsKHR5cGVJZDogbnVtYmVyLCB1cmw6IHN0cmluZykge1xuICAgIHN3aXRjaCAodHlwZUlkKSB7XG4gICAgICBjYXNlIExpbmtUeXBlLmFuY2hvclRleHQ6XG4gICAgICAgIHRoaXMuZ2V0RWRpdG9yQW5jaG9yKCk7XG4gICAgICAgIHRoaXMuYW5jaG9yVGV4dCA9IHVybC5zdWJzdHIoMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMaW5rVHlwZS5lbWFpbDpcbiAgICAgICAgY29uc3QgcDEgPSB1cmwuaW5kZXhPZignbWFpbHRvOicpO1xuICAgICAgICBjb25zdCBwMiA9IHVybC5pbmRleE9mKCc/c3ViamVjdD0nKTtcbiAgICAgICAgY29uc3QgcDMgPSB1cmwuaW5kZXhPZignJmJvZHk9Jyk7XG4gICAgICAgIHRoaXMuZW1haWxBZGRyZXNzID0gdXJsLnN1YnN0cihwMSArIDcsIHAyIC0gNyk7XG4gICAgICAgIHRoaXMuZW1haWxTdWJqZWN0ID0gdXJsLnN1YnN0cihwMiArIDksIHAzIC0gcDIgLSA5KTtcbiAgICAgICAgdGhpcy5lbWFpbEJvZHkgPSB1cmwuc3Vic3RyKHAzICsgNiwgdXJsLmxlbmd0aCAtIHAzIC0gNik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMaW5rVHlwZS5hbmNob3JEb2N1bWVudDpcbiAgICAgICAgY29uc3QgZmxhc2hJbmRleCA9IHVybC5sYXN0SW5kZXhPZignLycpO1xuICAgICAgICBjb25zdCBoYXNoSW5kZXggPSB1cmwuaW5kZXhPZignIycpO1xuICAgICAgICBjb25zdCBzSWQgPSB1cmwuc3Vic3RyKGZsYXNoSW5kZXggKyAxLCBoYXNoSW5kZXggLSAxIC0gZmxhc2hJbmRleCk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRJZCA9IHBhcnNlSW50KHNJZCwgMTApO1xuICAgICAgICB0aGlzLmdldEFuY2hvckRvY3VtZW50KHRoaXMuZG9jdW1lbnRJZCk7XG4gICAgICAgIHRoaXMuYW5jaG9yQnlOYW1lID0gdXJsLnN1YnN0cihoYXNoSW5kZXggKyAxLCB1cmwubGVuZ3RoIC0gaGFzaEluZGV4KTtcbiAgICAgICAgdGhpcy5hbmNob3JUaXRsZSA9IHRoaXMuZGF0YS50aXRsZTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RlZExpbmtUeXBlKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkTGlua1R5cGUgPT09IExpbmtUeXBlLmFuY2hvclRleHQpIHtcbiAgICAgIHRoaXMuZ2V0RWRpdG9yQW5jaG9yKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkTGlua1R5cGUgPT09IExpbmtUeXBlLmFuY2hvckRvY3VtZW50KSB7XG4gICAgICBpZiAoIXRoaXMuZG9jdW1lbnRBbmNob3JzKSB7XG4gICAgICAgIHRoaXMuYW5jaG9yRG9jdW1lbnRzID0gW107XG4gICAgICAgIHRoaXMuc2V0QW5jaG9yRG9jdW1lbnQodGhpcy5hbmNob3JEb2N1bWVudHMpO1xuICAgICAgICB0aGlzLmRvY3VtZW50QW5jaG9ycyA9IHRoaXMuYW5jaG9ycztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBlSGFuZGJvb2soaXNPbmx5RG9jdW1lbnQ6IGJvb2xlYW4sIGlzQW5jaG9yRG9jdW1lbnQ6IGJvb2xlYW4pIHtcblxuICAgIHRoaXMucHJvY2Vzc0NvbmZpZyA9IHtcbiAgICAgIGFsbG93U2VsZWN0Rm9sZGVyOiB0cnVlLFxuICAgICAgYXJlYU9mQ3VycmVudFByb2Nlc3M6ICcnLFxuICAgICAgc2hvd0NoZWNrQm94OiBmYWxzZSxcbiAgICAgIGFsbG93TXVsdGlwbGVDaGVjazogZmFsc2UsXG4gICAgICBvbmx5Q2hlY2tCb3hGb3JDaGlsZDogZmFsc2UsXG4gICAgICBtb2R1bGVJZDogRGF0YVR5cGUucHJvY2VzcyxcbiAgICAgIG9wZW5JY29uQ29sb3I6ICcjMTk1NEE5JyxcbiAgICAgIGNsb3NlSWNvbkNvbG9yOiAnI2E0YjBkZScsXG4gICAgICBzaW5nbGVTZWxlY3RlZE5vZGU6IHRydWUsXG4gICAgICBvbmx5Rm9sZGVyOiBmYWxzZSxcbiAgICAgIHNlbGVjdE9uZTogdHJ1ZVxuICAgIH07XG5cbiAgICB0aGlzLmRvY3VtZW50Q29uZmlnID0ge1xuICAgICAgYWxsb3dTZWxlY3RGb2xkZXI6ICFpc09ubHlEb2N1bWVudCxcbiAgICAgIGFyZWFPZkN1cnJlbnRQcm9jZXNzOiAnJyxcbiAgICAgIHNob3dDaGVja0JveDogZmFsc2UsXG4gICAgICBtb2R1bGVJZDogRGF0YVR5cGUuZG9jdW1lbnQsXG4gICAgICBhbGxvd011bHRpcGxlQ2hlY2s6IGZhbHNlLFxuICAgICAgb25seUNoZWNrQm94Rm9yQ2hpbGQ6IGZhbHNlLFxuICAgICAgb3Blbkljb25Db2xvcjogJyMxOTU0QTknLFxuICAgICAgY2xvc2VJY29uQ29sb3I6ICcjNGFjYWZmJyxcbiAgICAgIHNpbmdsZVNlbGVjdGVkTm9kZTogdHJ1ZSxcbiAgICAgIG9ubHlGb2xkZXI6IGZhbHNlLFxuICAgICAgc2VsZWN0T25lOiB0cnVlXG4gICAgfTtcblxuICAgIGNvbnN0IGRhdGE6IFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwRGF0YSA9IG5ldyBTZWxlY3RQcm9jZXNzRG9jdW1lbnRQb3B1cERhdGEoKTtcbiAgICBkYXRhLm1vZHVsZUlkID0gTW9kdWxlVHlwZS5kb2N1bWVudFByb2Nlc3M7XG4gICAgZGF0YS5tb2R1bGVOYW1lID0gdGhpcy5MQU5HLlFNU0NLRURJVE9SLkRPQ1VNRU5UX1BST0NFU1M7XG4gICAgaWYgKCFpc09ubHlEb2N1bWVudCkge1xuICAgICAgY29uc3QgdHJlZVByb2Nlc3NEYXRhID0gYXdhaXQgdGhpcy50cmVlU2VydmljZS5nZXRQcm9jZXNzQXJlYUNvbnRlbnRzKCcnLCB0cnVlLCB0aGlzLmRhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkKS50b1Byb21pc2UoKTtcbiAgICAgIGRhdGEudHJlZURhdGExID0gdHJlZVByb2Nlc3NEYXRhPy5hcmVhcy5tYXAoKHgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZDogeC5pZCxcbiAgICAgICAgICBuYW1lOiB4Lm5hbWUsXG4gICAgICAgICAgcGFyZW50SWQ6IHgucGFyZW50SWQgPT09IGd1aWRIZWxwZXIuZW1wdHkgPyAnJyA6IHgucGFyZW50SWQsXG4gICAgICAgICAgc3RhdHVzSWQ6IDAsXG4gICAgICAgICAgc3RhdHVzTmFtZTogJycsXG4gICAgICAgICAgZGlzcGxheUlkOiAwLFxuICAgICAgICAgIGV4cGFuZGFibGU6IHRydWVcbiAgICAgICAgfTtcbiAgICAgIH0pIHx8IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHRyZWVEb2N1bWVudERhdGEgPSBhd2FpdCB0aGlzLnRyZWVTZXJ2aWNlLmdldEZvbGRlckNoaWxkcmVucygpLnRvUHJvbWlzZSgpO1xuXG4gICAgZGF0YS50cmVlRGF0YTIgPSB0cmVlRG9jdW1lbnREYXRhPy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB4LmlkLnRvU3RyaW5nKCksXG4gICAgICAgIG5hbWU6IHgubmFtZS50b1N0cmluZygpLFxuICAgICAgICBwYXJlbnRJZDogIXgucGFyZW50SGFuZGJvb2tJZCA/ICcnIDogeC5wYXJlbnRIYW5kYm9va0lkLnRvU3RyaW5nKCksXG4gICAgICAgIHN0YXR1c0lkOiAwLFxuICAgICAgICBzdGF0dXNOYW1lOiAnJyxcbiAgICAgICAgZGlzcGxheUlkOiAwLFxuICAgICAgICBleHBhbmRhYmxlOiB4LnR5cGUgPiBEb2N1bWVudE5vZGVUeXBlLlNob3J0Y3V0RG9jdW1lbnQsXG4gICAgICAgIGxldmVsVHlwZTogeC50eXBlXG4gICAgICB9O1xuICAgIH0pO1xuICAgIGRhdGEudHJlZUNvbmZpZzEgPSB0aGlzLnByb2Nlc3NDb25maWc7XG4gICAgZGF0YS50cmVlQ29uZmlnMiA9IHRoaXMuZG9jdW1lbnRDb25maWc7XG4gICAgZGF0YS5zcGxpdFZpZXcgPSBmYWxzZTtcbiAgICBkYXRhLmlzU2VsZWN0T25lID0gdHJ1ZTtcbiAgICBkYXRhLnRvb2x0aXBMb2NhdGlvblNlYXJjaFJlc3VsdCA9IHRydWU7XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzc2OHB4JyxcbiAgICAgIG1pbkhlaWdodDogJzY5MHB4JyxcbiAgICAgIGRhdGEsXG4gICAgICBwYW5lbENsYXNzOiBbJ3JlbGF0ZWQtcHJvY2Vzc19fcG9wdXAnLCAnY3VzdG9tLW1hdC1kaWFsb2ctY29udGFpbmVyJ10sXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2Uub25TZWFyY2guc3Vic2NyaWJlKGFzeW5jIChrZXl3b3JkOiBzdHJpbmcpID0+IHtcbiAgICAgIGlmICgha2V5d29yZCB8fCBrZXl3b3JkLnRyaW0oKSA9PT0gJycpXG4gICAgICAgIHJldHVybjtcblxuICAgICAgbGV0IGdldFNlYXJjaE9wdGlvbiA9IG5ldyBHZXRTZWFyY2hQcm9jZXNzRG9jdW1lbnRPcHRpb24odHJ1ZSwgdHJ1ZSwgdGhpcy5kYXRhLmVuYWJsZWRJbnRlcmNvbm5lY3RlZCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICBpZiAoaXNPbmx5RG9jdW1lbnQpIHtcbiAgICAgICAgZ2V0U2VhcmNoT3B0aW9uLmlzR2V0UHJvY2VzcyA9IGZhbHNlO1xuICAgICAgICBnZXRTZWFyY2hPcHRpb24uaXNHZXRJbnRlcmNvbm5lY3RlZCA9IGZhbHNlO1xuICAgICAgICBnZXRTZWFyY2hPcHRpb24uaXNHZXRBcmVhID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0FuY2hvckRvY3VtZW50KSB7XG4gICAgICAgIGdldFNlYXJjaE9wdGlvbi5pc0dldEZvbGRlciA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWFyY2hSZXN1bHQgPSBhd2FpdCB0aGlzLnRyZWVTZXJ2aWNlLmdldFNlYXJjaFByb2Nlc3NEb2N1bWVudChrZXl3b3JkLnRyaW0oKSwgZ2V0U2VhcmNoT3B0aW9uKTtcbiAgICAgIHRoaXMuc2VsZWN0UHJvY2Vzc0RvY3VtZW50R2xvYmFsU2VydmljZS5zZXRTZWFyY2hSZWxhdGVkKHNlYXJjaFJlc3VsdCk7XG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2Uub25FeHBhbmRQcm9jZXNzQXJlYS5zdWJzY3JpYmUoKGFyZWEpID0+IHtcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuZ2V0UHJvY2Vzc0FyZWFDb250ZW50cyhhcmVhLmlkLCB0cnVlLCB0aGlzLmRhdGEuZW5hYmxlZEludGVyY29ubmVjdGVkKS50b1Byb21pc2UoKS50aGVuKHJlcyA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICBjb25zdCBhcmVhcyA9IHJlcy5hcmVhcy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGlkOiB4LmlkLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIG5hbWU6IHgubmFtZSxcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IHgucGFyZW50SWQsXG4gICAgICAgICAgICAgIGV4cGFuZGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiB4LnN0YXR1cyxcbiAgICAgICAgICAgICAgc3RhdHVzTmFtZTogeC5zdGF0dXNOYW1lLFxuICAgICAgICAgICAgICBkaXNwbGF5SWQ6IDBcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSkgfHwgW107XG5cbiAgICAgICAgICBjb25zdCBwcm9jZXNzZXMgPSByZXMucHJvY2Vzc2VzLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IHguZW50aXR5SWQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgbmFtZTogeC5uYW1lLFxuICAgICAgICAgICAgICBwYXJlbnRJZDogeC5wcm9jZXNzQXJlYUlkLFxuICAgICAgICAgICAgICBleHBhbmRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgc3RhdHVzSWQ6IHguc3RhdHVzLFxuICAgICAgICAgICAgICBzdGF0dXNOYW1lOiB4LmFwcHJvdmFsU3RhdHVzLFxuICAgICAgICAgICAgICBkaXNwbGF5SWQ6IHgucHJvY2Vzc051bWJlcixcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHgucHJvY2Vzc0NsYXNzaWZpY2F0aW9uID09PSBQcm9jZXNzQ2xhc3NpZmljYXRpb24uSW50ZXJjb25uZWN0ZWRQcm9jZXNzID8gRGF0YVR5cGUucHJvY2Vzc0ludGVyY29ubmVjdGVkIDogRGF0YVR5cGUucHJvY2Vzc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSB8fCBbXTtcbiAgICAgICAgICB0aGlzLnNlbGVjdFByb2Nlc3NEb2N1bWVudEdsb2JhbFNlcnZpY2Uuc2V0UHJvY2Vzc0FyZWFDaGlsZHJlbihbLi4uYXJlYXMsIC4uLnByb2Nlc3Nlc10pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5vbkV4cGFuZEZvbGRlci5zdWJzY3JpYmUoKGZvbGRlcikgPT4ge1xuICAgICAgdGhpcy50cmVlU2VydmljZVxuICAgICAgICAuZ2V0Rm9sZGVyQ2hpbGRyZW5zKGZvbGRlci5pZClcbiAgICAgICAgLnRvUHJvbWlzZSgpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcyA9IHJlcy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogeC5pZC50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIG5hbWU6IHgubmFtZS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIHBhcmVudElkOiB0aGlzLmdldFBhcmVudElkKHgpLFxuICAgICAgICAgICAgICAgIHN0YXR1c0lkOiAwLFxuICAgICAgICAgICAgICAgIHN0YXR1c05hbWU6IHguYXBwcm92YWxTdGF0dXMsXG4gICAgICAgICAgICAgICAgZGlzcGxheUlkOiB4LmlkLFxuICAgICAgICAgICAgICAgIGV4cGFuZGFibGU6ICF0aGlzLmRvY3VtZW50VHlwZXMuaW5jbHVkZXMoeC50eXBlKSxcbiAgICAgICAgICAgICAgICBsZXZlbFR5cGU6ICF0aGlzLmRvY3VtZW50VHlwZXMuaW5jbHVkZXMoeC50eXBlKSA/IHgudHlwZSA6IGZvbGRlci5sZXZlbFR5cGVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RQcm9jZXNzRG9jdW1lbnRHbG9iYWxTZXJ2aWNlLnNldEZvbGRlckNoaWxkcmVuKGNoaWxkcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0RGF0YSA9IHJlc3VsdFswXTtcbiAgICAgICAgaWYgKCFpc0FuY2hvckRvY3VtZW50KSB7XG4gICAgICAgICAgdGhpcy51cmwgPSB0aGlzLmdldExpbmtVUkwocmVzdWx0RGF0YSk7XG4gICAgICAgICAgaWYgKCF0aGlzLmFkdmlzb3J5VGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9IHJlc3VsdERhdGEuaXRlbU5hbWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm90b2NvbCA9IFByb3RvY29sVHlwZS5vdGhlcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRvY3VtZW50SWQgPSByZXN1bHREYXRhLmlkO1xuICAgICAgICAgIHRoaXMuYW5jaG9yVGl0bGUgPSBgJHtyZXN1bHREYXRhLml0ZW1OYW1lfSgke3Jlc3VsdERhdGEuaWR9KWA7XG4gICAgICAgICAgdGhpcy5nZXRBbmNob3JEb2N1bWVudChyZXN1bHREYXRhLmlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UGFyZW50SWQoaXRlbSkge1xuICAgIGlmICghdGhpcy5kb2N1bWVudFR5cGVzLmluY2x1ZGVzKGl0ZW0udHlwZSkpIHtcbiAgICAgIHJldHVybiAhaXRlbS5wYXJlbnRIYW5kYm9va0lkID8gJycgOiBpdGVtLnBhcmVudEhhbmRib29rSWQudG9TdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuICFpdGVtLnBhcmVudEZvbGRlcklkID8gJycgOiBpdGVtLnBhcmVudEZvbGRlcklkLnRvU3RyaW5nKCk7XG4gIH1cblxuICBnZXRMaW5rVVJMKGRhdGE6IGFueSkge1xuICAgIGxldCB1cmwgPSAnJztcbiAgICBzd2l0Y2ggKGRhdGE/Lml0ZW1UeXBlKSB7XG4gICAgICBjYXNlIERhdGFUeXBlLmRvY3VtZW50OlxuICAgICAgICB1cmwgPSBgL2RvY3VtZW50LyR7ZGF0YS5pZH1gO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRGF0YVR5cGUucHJvY2VzczpcbiAgICAgICAgdXJsID0gYC9wcm9jZXNzLWRldGFpbC8ke2RhdGEuZGlzcGxheUlkfWA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBEYXRhVHlwZS5hcmVhOlxuICAgICAgICB1cmwgPSBgL2FyZWEvZGV0YWlsLyR7ZGF0YS5pZH1gO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRGF0YVR5cGUuZm9sZGVyOlxuICAgICAgICB1cmwgPSBgL2ZvbGRlci8ke2RhdGEuaWR9YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERhdGFUeXBlLnByb2Nlc3NJbnRlcmNvbm5lY3RlZDpcbiAgICAgICAgdXJsID0gYC9wcm9jZXNzLWludGVyY29ubmVjdGVkLyR7ZGF0YS5kaXNwbGF5SWR9YFxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgYXR0YWNobWVudCgpIHtcbiAgICBjb25zdCBkYXRhID0gbmV3IFFNU0NLRWRpdG9yUGFyYW10ZXIoKTtcbiAgICBkYXRhLm1vZHVsZSA9IHRoaXMuZGF0YS5tb2R1bGU7XG4gICAgZGF0YS5lbnRpdHlJZCA9IHRoaXMuZGF0YS5lbnRpdHlJZDtcbiAgICBjb25zdCBkaWFsb2dUZW1wbGF0ZSA9IHRoaXMuZGlhbG9nLm9wZW4oTGlua0F0dGFjaG1lbnRDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiBcIjY1MHB4XCIsXG4gICAgICBoZWlnaHQ6IFwiNjUwcHhcIixcbiAgICAgIGRhdGEsXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgfSk7XG4gICAgZGlhbG9nVGVtcGxhdGVcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLnVybCA9IHJlc3VsdC51cmw7XG4gICAgICAgICAgaWYgKCF0aGlzLmFkdmlzb3J5VGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMuYWR2aXNvcnlUaXRsZSA9IHJlc3VsdC50aXRsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID0gUHJvdG9jb2xUeXBlLm90aGVyO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldEVkaXRvckFuY2hvcigpIHtcbiAgICB0aGlzLmFuY2hvckRvY3VtZW50cyA9IFtdO1xuICAgIGlmICh0aGlzLmVkaXRvckNvbnRlbnQpIHtcbiAgICAgIHRoaXMuYW5jaG9yRG9jdW1lbnRzLnB1c2goe1xuICAgICAgICBpZDogMCxcbiAgICAgICAgZW50aXR5SWQ6IDAsXG4gICAgICAgIGRvY3VtZW50SWQ6IDAsXG4gICAgICAgIGRvY3VtZW50VHlwZUlkOiAwLFxuICAgICAgICByaWNoVGV4dDogdGhpcy5lZGl0b3JDb250ZW50LFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2V0QW5jaG9yRG9jdW1lbnQodGhpcy5hbmNob3JEb2N1bWVudHMpO1xuICAgIHRoaXMuZWRpdG9yQW5jaG9ycyA9IHRoaXMuYW5jaG9ycztcbiAgfVxuXG4gIGdldEFuY2hvckRvY3VtZW50KGRvY3VtZW50SWQ6IG51bWJlcikge1xuICAgIHRoaXMubGlua1NlcnZpY2VcbiAgICAgIC5nZXRBbmNob3JEb2N1bWVudExpc3QoZG9jdW1lbnRJZClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIHRoaXMuYW5jaG9yRG9jdW1lbnRzID0gcmVzO1xuICAgICAgICAgIHRoaXMuc2V0QW5jaG9yRG9jdW1lbnQodGhpcy5hbmNob3JEb2N1bWVudHMpO1xuICAgICAgICAgIHRoaXMuZG9jdW1lbnRBbmNob3JzID0gdGhpcy5hbmNob3JzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYW5jaG9yRG9jdW1lbnRzID0gW107XG4gICAgICAgICAgdGhpcy5zZXRBbmNob3JEb2N1bWVudCh0aGlzLmFuY2hvckRvY3VtZW50cyk7XG4gICAgICAgICAgdGhpcy5kb2N1bWVudEFuY2hvcnMgPSB0aGlzLmFuY2hvcnM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0QW5jaG9yRG9jdW1lbnQoYW5jaG9yRG9jdW1lbnQ6IFFNU0NLRWRpdG9yTGlua0FuY2hvckRvY3VtZW50W10pIHtcbiAgICB0aGlzLmluaXRBbmNob3IoKTtcbiAgICBsZXQgaWQgPSAzO1xuICAgIGlmIChcbiAgICAgIHRoaXMuZGF0YS5xbXNja0NvbnRlbnRGaWVsZHMgJiZcbiAgICAgIHRoaXMuZGF0YS5xbXNja0NvbnRlbnRGaWVsZHMubGVuZ3RoICYmXG4gICAgICB0aGlzLmRhdGEucW1zY2tJc0dldEFuY2hvck1vcmVDb250ZW50ICYmXG4gICAgICB0aGlzLnNlbGVjdGVkTGlua1R5cGUgPT09IExpbmtUeXBlLmFuY2hvclRleHRcbiAgICApIHtcbiAgICAgIHRoaXMuZGF0YS5xbXNja0NvbnRlbnRGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgdGhpcy5nZXRBbmNob3IoZmllbGQsIGlkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRMaW5rVHlwZSA9PT0gTGlua1R5cGUuYW5jaG9yRG9jdW1lbnQgJiYgYW5jaG9yRG9jdW1lbnQpIHtcbiAgICAgIGFuY2hvckRvY3VtZW50LmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICB0aGlzLmdldEFuY2hvcihlLCBpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYW5jaG9ycy5wdXNoKHtcbiAgICAgIHZhbHVlOiAxLFxuICAgICAgdmlld1ZhbHVlOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuQU5DSE9SX0FUVEFDSE1FTlQsXG4gICAgICBhbmNob3JWYWx1ZTogTGlua0FuY2hvci5BdHRhY2htZW50LFxuICAgIH0pO1xuICAgIHRoaXMuYW5jaG9ycy5wdXNoKHtcbiAgICAgIHZhbHVlOiAyLFxuICAgICAgdmlld1ZhbHVlOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuQU5DSE9SX1JFTEFURURfRE9DVU1FTlQsXG4gICAgICBhbmNob3JWYWx1ZTogTGlua0FuY2hvci5SZWxhdGVkLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QW5jaG9yKGUsIGlkKSB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICBkaXYuaW5uZXJIVE1MID0gZS5yaWNoVGV4dDtcbiAgICBjb25zdCBkb21Db250ZW50ID0gZGl2O1xuICAgIGNvbnN0IGFUYWdzID0gZG9tQ29udGVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImFcIik7XG4gICAgaWYgKGFUYWdzKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhVGFncy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB0YWcgPSBhVGFnc1tpXTtcbiAgICAgICAgaWYgKHRhZy5uYW1lKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFuY2hvcnMuZmluZEluZGV4KCh4KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geC5hbmNob3JWYWx1ZSA9PT0gdGFnLm5hbWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5hbmNob3JzLnB1c2goe1xuICAgICAgICAgICAgICB2YWx1ZTogaWQsXG4gICAgICAgICAgICAgIHZpZXdWYWx1ZTogdGFnLm5hbWUsXG4gICAgICAgICAgICAgIGFuY2hvclZhbHVlOiB0YWcubmFtZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWQgKz0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaXNhYmxlT2tCdXR0b24oKSB7XG4gICAgbGV0IGlzRGlzYWJsZSA9IGZhbHNlO1xuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZExpbmtUeXBlKSB7XG4gICAgICBjYXNlIExpbmtUeXBlLnVybDpcbiAgICAgICAgaXNEaXNhYmxlID0gdGhpcy5saW5rRm9ybUdyb3VwLmludmFsaWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMaW5rVHlwZS5hbmNob3JUZXh0OlxuICAgICAgICBpc0Rpc2FibGUgPSB0aGlzLmFuY2hvclRleHRGb3JtR3JvdXAuaW52YWxpZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIExpbmtUeXBlLmVtYWlsOlxuICAgICAgICBpc0Rpc2FibGUgPSB0aGlzLmVtYWlsRm9ybUdyb3VwLmludmFsaWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMaW5rVHlwZS5hbmNob3JEb2N1bWVudDpcbiAgICAgICAgaXNEaXNhYmxlID0gdGhpcy5hbmNob3JEb2NGb3JtR3JvdXAuaW52YWxpZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGlzRGlzYWJsZTtcbiAgfVxuXG4gIHNldExpbmsoKSB7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5jb21tb25TZXJ2aWNlLmdldFNjcm9sbFRvcENrZWRpdG9yKHRoaXMuY2tFZGl0b3IpO1xuICAgIGNvbnN0IGxpbmsgPSBuZXcgUU1TQ0tFZGl0b3JMaW5rKCk7XG4gICAgbGluay50eXBlSWQgPSB0aGlzLnNlbGVjdGVkTGlua1R5cGU7XG4gICAgbGluay50YXJnZXRJZCA9IHRoaXMuc2VsZWN0ZWRUYXJnZXQ7XG4gICAgbGluay5wcm90b2NvbElkID0gdGhpcy5zZWxlY3RlZFByb3RvY29sO1xuICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZExpbmtUeXBlKSB7XG4gICAgICBjYXNlIExpbmtUeXBlLnVybDpcbiAgICAgICAgaWYgKCF0aGlzLmFkdmlzb3J5VGl0bGUubGVuZ3RoKSB7XG4gICAgICAgICAgbGluay50aXRsZSA9IGAke3RoaXMuZ2V0UHJvdG9jb2xOYW1lKCl9JHt0aGlzLmxpbmtGb3JtR3JvdXAudmFsdWUudXJsfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGluay50aXRsZSA9IHRoaXMuYWR2aXNvcnlUaXRsZTtcbiAgICAgICAgfVxuICAgICAgICBsaW5rLnVybCA9IGAke3RoaXMuc2VsZWN0ZWRMaW5rVHlwZX0ke3RoaXMuc2VsZWN0ZWRQcm90b2NvbH0ke3RoaXMuZ2V0UHJvdG9jb2xOYW1lKCl9JHt0aGlzLnVybH1gO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTGlua1R5cGUuYW5jaG9yVGV4dDpcbiAgICAgICAgbGluay51cmwgPSBgJHt0aGlzLnNlbGVjdGVkTGlua1R5cGV9JHswfSMke3RoaXMuYW5jaG9yVGV4dH1gO1xuICAgICAgICBsaW5rLnRpdGxlID0gYCMke3RoaXMuYW5jaG9yVGV4dH1gO1xuICAgICAgICBsaW5rLnRhcmdldElkID0gVGFyZ2V0VHlwZS50b3Btb3N0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTGlua1R5cGUuZW1haWw6XG4gICAgICAgIGxpbmsudXJsID0gYCR7dGhpcy5zZWxlY3RlZExpbmtUeXBlfSR7MH1tYWlsdG86JHt0aGlzLmVtYWlsQWRkcmVzc30/c3ViamVjdD0ke3RoaXMuZW1haWxTdWJqZWN0fSZib2R5PSR7dGhpcy5lbWFpbEJvZHlcbiAgICAgICAgICB9YDtcbiAgICAgICAgbGluay50aXRsZSA9IHRoaXMuZW1haWxBZGRyZXNzO1xuICAgICAgICBsaW5rLnRhcmdldElkID0gVGFyZ2V0VHlwZS50b3Btb3N0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTGlua1R5cGUuYW5jaG9yRG9jdW1lbnQ6XG4gICAgICAgIGxpbmsudXJsID0gYCR7dGhpcy5zZWxlY3RlZExpbmtUeXBlfSR7MH0vZG9jdW1lbnQvJHt0aGlzLmRvY3VtZW50SWR9IyR7dGhpcy5hbmNob3JCeU5hbWV9YDtcbiAgICAgICAgbGluay50aXRsZSA9IHRoaXMuYW5jaG9yVGl0bGU7XG4gICAgICAgIGxpbmsudGFyZ2V0SWQgPSB0aGlzLnNlbGVjdGVkVGFyZ2V0QW5jaG9yRG9jdW1lbnQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShsaW5rKTtcbiAgICB0aGlzLmNvbW1vblNlcnZpY2Uuc2V0U2Nyb2xsVG9wRWRpdG9yQ29udGFpbmVyKHRoaXMuY2tFZGl0b3IsIHNjcm9sbFRvcCk7XG4gIH1cblxuICBnZXRVcmxUb1NldFByb3RvY29sKCkge1xuICAgIGlmICghdGhpcy51cmwubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGxpc3RQcm90b2NvbE5hbWUgPSBPYmplY3QudmFsdWVzKFByb3RvY29sVHlwZU5hbWUpO1xuICAgIGZvciAobGV0IGluZGV4IGluIGxpc3RQcm90b2NvbE5hbWUpIHtcbiAgICAgIGlmIChsaXN0UHJvdG9jb2xOYW1lW2luZGV4XS5sZW5ndGggJiYgdGhpcy51cmwuaW5kZXhPZihsaXN0UHJvdG9jb2xOYW1lW2luZGV4XS50b1N0cmluZygpKSA9PT0gMCkge1xuICAgICAgICBzd2l0Y2ggKGxpc3RQcm90b2NvbE5hbWVbaW5kZXhdKSB7XG4gICAgICAgICAgY2FzZSBQcm90b2NvbFR5cGVOYW1lLmh0dHA6XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVVybEFuZFNlbGVjdGVkUHJvdG9jb2woUHJvdG9jb2xUeXBlLmh0dHAsIFByb3RvY29sVHlwZU5hbWUuaHR0cCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgUHJvdG9jb2xUeXBlTmFtZS5odHRwczpcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVXJsQW5kU2VsZWN0ZWRQcm90b2NvbChQcm90b2NvbFR5cGUuaHR0cHMsIFByb3RvY29sVHlwZU5hbWUuaHR0cHMpO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlIFByb3RvY29sVHlwZU5hbWUuZnRwOlxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VVcmxBbmRTZWxlY3RlZFByb3RvY29sKFByb3RvY29sVHlwZS5mdHAsIFByb3RvY29sVHlwZU5hbWUuZnRwKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSBQcm90b2NvbFR5cGVOYW1lLm5ld3M6XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVVybEFuZFNlbGVjdGVkUHJvdG9jb2woUHJvdG9jb2xUeXBlLm5ld3MsIFByb3RvY29sVHlwZU5hbWUubmV3cyk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXJsLmluZGV4T2YoJzovLycpICE9PSAtMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID0gUHJvdG9jb2xUeXBlLm90aGVyO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVVybEFuZFNlbGVjdGVkUHJvdG9jb2wocHJvdG9jb2xUeXBlOiBudW1iZXIsIHByb3RvY29sTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRQcm90b2NvbCAhPT0gcHJvdG9jb2xUeXBlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvdG9jb2wgPSBwcm90b2NvbFR5cGU7XG4gICAgfVxuICAgIHRoaXMudXJsID0gdGhpcy51cmwuc2xpY2UocHJvdG9jb2xOYW1lLmxlbmd0aCk7XG4gICAgdGhpcy5saW5rRm9ybUdyb3VwLnBhdGNoVmFsdWUoeyB1cmw6IHRoaXMudXJsIH0pO1xuICB9XG5cbiAgZ2V0UHJvdG9jb2xOYW1lKCkge1xuICAgIHJldHVybiBQcm90b2NvbFR5cGVOYW1lW1Byb3RvY29sVHlwZVt0aGlzLnNlbGVjdGVkUHJvdG9jb2xdXTtcbiAgfVxuXG4gIHNldExpbmtVcmxUeXBlKCRldmVudD86IEV2ZW50KSB7XG4gICAgaWYgKCRldmVudClcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgaWYgKHRoaXMubGlua0Zvcm1Hcm91cC5pbnZhbGlkKVxuICAgICAgcmV0dXJuO1xuXG4gICAgdGhpcy5zZXRMaW5rKCk7XG4gIH1cbn1cbiJdfQ==
@@ -30,7 +30,7 @@ export class QMSCKEditorTooltipComponent extends QMSCKEditorBaseComponent {
30
30
  this.language = res;
31
31
  }
32
32
  });
33
- this.editorConfig = CKEditorCommonFunctions.getCKEditorConfiguration('heading,|,fontsize,fontfamily,fontColor,fontBackgroundColor,|,bold,italic,underline,strikethrough,|,alignment,|,bulletedList,numberedList,|,outdent,indent,|,subscript,superscript,|,undo,redo,|,specialCharacters,blockQuote,insertTable,|,link,anchor,|,timestamp,|,removeformat', this.LANG, this.language);
33
+ this.editorConfig = CKEditorCommonFunctions.getCKEditorConfiguration('heading,|,fontsize,fontfamily,fontColor,fontBackgroundColor,|,bold,italic,underline,strikethrough,|,alignment,|,bulletedList,numberedList,|,outdent,indent,|,subscript,superscript,|,undo,redo,|,specialCharacters,blockQuote,insertTable,|,removeformat', this.LANG, this.language);
34
34
  }
35
35
  ngAfterViewChecked() {
36
36
  this.cdr.detectChanges();
@@ -84,4 +84,4 @@ QMSCKEditorTooltipComponent.ctorParameters = () => [
84
84
  QMSCKEditorTooltipComponent.propDecorators = {
85
85
  ckEditor: [{ type: Input }]
86
86
  };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLXRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci10b29sdGlwL3Ftcy1ja2VkaXRvci10b29sdGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sdUJBQXVCLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFZdkYsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHdCQUF3QjtJQWFyRSxZQUNZLEdBQXNCLEVBQ3RCLFNBQWtDLEVBQ25DLFNBQW9ELEVBQ25ELGFBQXVDLEVBQ2YsSUFBd0I7UUFFeEQsS0FBSyxFQUFFLENBQUM7UUFOQSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUNuQyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQUNu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QUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OztZQWpGSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsZ2lGQUFvRDs7YUFFdkQ7OztZQW5CMEIsaUJBQWlCO1lBSW5DLHVCQUF1QjtZQUZ2QixZQUFZO1lBTVosd0JBQXdCO1lBRnhCLGtCQUFrQix1QkFnQ2xCLE1BQU0sU0FBQyxlQUFlOzs7dUJBakIxQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcW1zLWNrZWRpdG9yLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFFNU0NLRWRpdG9yVG9vbHRpcCB9IGZyb20gJy4uLy4uL21vZGVscy9xbXMtY2tlZGl0b3ItdG9vbHRpcC5tb2RlbCc7XG5pbXBvcnQgQ0tFZGl0b3JDb21tb25GdW5jdGlvbnMgZnJvbSAnLi4vLi4vY29tbW9uL2Z1bmN0aW9ucy9jb21tb24uZnVuY3Rpb24nO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWNvbW1vbi5zZXJ2aWNlcyc7XG5cbmludGVyZmFjZSBJVG9vbHRpcCB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcW1zY2stdG9vbHRpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1ja2VkaXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9xbXMtY2tlZGl0b3ItdG9vbHRpcC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yVG9vbHRpcENvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgQElucHV0KCkgY2tFZGl0b3I6IGFueTtcbiAgICBMQU5HOiBhbnk7XG4gICAgdG9vbHRpcEZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIGNvbnRlbnQ6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKVxuICAgIH0pO1xuICAgIHRvb2x0aXA6IElUb29sdGlwO1xuICAgIGVkaXRvcjogYW55O1xuICAgIGVkaXRvckNvbmZpZzogYW55O1xuXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyA9ICdlbic7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxRTVNDS0VkaXRvclRvb2x0aXBDb21wb25lbnQ+LFxuICAgICAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IFFNU0NLRWRpdG9yQ29tbW9uU2VydmljZSxcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBRTVNDS0VkaXRvclRvb2x0aXBcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0geyB0ZXh0OiBkYXRhLnRleHQsIGNvbnRlbnQ6IGRhdGEuY29udGVudCB9O1xuICAgICAgICB0aGlzLmVkaXRvciA9IGRhdGEuY2tFZGl0b3I7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnNsYXRlLmdldE9iamVjdExhbmcocmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlID0gcmVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lZGl0b3JDb25maWcgPSBDS0VkaXRvckNvbW1vbkZ1bmN0aW9ucy5nZXRDS0VkaXRvckNvbmZpZ3VyYXRpb24oJ2hlYWRpbmcsfCxmb250c2l6ZSxmb250ZmFtaWx5LGZvbnRDb2xvcixmb250QmFja2dyb3VuZENvbG9yLHwsYm9sZCxpdGFsaWMsdW5kZXJsaW5lLHN0cmlrZXRocm91Z2gsfCxhbGlnbm1lbnQsfCxidWxsZXRlZExpc3QsbnVtYmVyZWRMaXN0LHwsb3V0ZGVudCxpbmRlbnQsfCxzdWJzY3JpcHQsc3VwZXJzY3JpcHQsfCx1bmRvLHJlZG8sfCxzcGVjaWFsQ2hhcmFjdGVycyxibG9ja1F1b3RlLGluc2VydFRhYmxlLHwsbGluayxhbmNob3IsfCx0aW1lc3RhbXAsfCxyZW1vdmVmb3JtYXQnLCB0aGlzLkxBTkcsIHRoaXMubGFuZ3VhZ2UpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG9uQ2xvc2VEaWFsb2coKSB7XG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuY29tbW9uU2VydmljZS5nZXRTY3JvbGxUb3BDa2VkaXRvcih0aGlzLmNrRWRpdG9yKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlLnNldFNjcm9sbFRvcEVkaXRvckNvbnRhaW5lcih0aGlzLmNrRWRpdG9yLCBzY3JvbGxUb3ApO1xuICAgIH1cblxuICAgIGdldE91dHB1dENvbnRlbnQoY29udGVudDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudG9vbHRpcC5jb250ZW50ID0gY29udGVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DaGFuZ2VkKHsgZWRpdG9yIH0pIHtcbiAgICAgICAgdGhpcy50b29sdGlwLmNvbnRlbnQgPSBlZGl0b3IuZ2V0RGF0YSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkJsdXIoeyBlZGl0b3IgfSkge1xuICAgICAgICB0aGlzLnRvb2x0aXAuY29udGVudCA9IGVkaXRvci5nZXREYXRhKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVhZHkoZWRpdG9yKSB7XG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXAudGV4dCkge1xuICAgICAgICAgICAgZWRpdG9yLnNldERhdGEodGhpcy50b29sdGlwLnRleHQpO1xuICAgICAgICB9XG4gICAgICAgIGVkaXRvci51aS5nZXRFZGl0YWJsZUVsZW1lbnQoKS5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShlZGl0b3IudWkudmlldy50b29sYmFyLmVsZW1lbnQsIGVkaXRvci51aS5nZXRFZGl0YWJsZUVsZW1lbnQoKSk7XG4gICAgfVxuXG4gICAgc2F2ZVRvb2x0aXAoKSB7XG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSBuZXcgUU1TQ0tFZGl0b3JUb29sdGlwKCk7XG4gICAgICAgIHRvb2x0aXAuY29udGVudCA9IHRoaXMudG9vbHRpcC5jb250ZW50O1xuICAgICAgICB0b29sdGlwLnRleHQgPSB0aGlzLnRvb2x0aXAudGV4dDtcblxuICAgICAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0U2Nyb2xsVG9wQ2tlZGl0b3IodGhpcy5ja0VkaXRvcik7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRvb2x0aXApO1xuICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2Uuc2V0U2Nyb2xsVG9wRWRpdG9yQ29udGFpbmVyKHRoaXMuY2tFZGl0b3IsIHNjcm9sbFRvcCk7XG4gICAgfVxuXG4gICAgY2FuY2VsVG9vbHRpcCgpIHtcbiAgICAgICAgdGhpcy5vbkNsb3NlRGlhbG9nKCk7XG4gICAgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLXRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci10b29sdGlwL3Ftcy1ja2VkaXRvci10b29sdGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sdUJBQXVCLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFZdkYsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHdCQUF3QjtJQWFyRSxZQUNZLEdBQXNCLEVBQ3RCLFNBQWtDLEVBQ25DLFNBQW9ELEVBQ25ELGFBQXVDLEVBQ2YsSUFBd0I7UUFFeEQsS0FBSyxFQUFFLENBQUM7UUFOQSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUNuQyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQUNu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QUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OztZQWpGSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsZ2lGQUFvRDs7YUFFdkQ7OztZQW5CMEIsaUJBQWlCO1lBSW5DLHVCQUF1QjtZQUZ2QixZQUFZO1lBTVosd0JBQXdCO1lBRnhCLGtCQUFrQix1QkFnQ2xCLE1BQU0sU0FBQyxlQUFlOzs7dUJBakIxQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcW1zLWNrZWRpdG9yLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFFNU0NLRWRpdG9yVG9vbHRpcCB9IGZyb20gJy4uLy4uL21vZGVscy9xbXMtY2tlZGl0b3ItdG9vbHRpcC5tb2RlbCc7XG5pbXBvcnQgQ0tFZGl0b3JDb21tb25GdW5jdGlvbnMgZnJvbSAnLi4vLi4vY29tbW9uL2Z1bmN0aW9ucy9jb21tb24uZnVuY3Rpb24nO1xuaW1wb3J0IHsgUU1TQ0tFZGl0b3JDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWNvbW1vbi5zZXJ2aWNlcyc7XG5cbmludGVyZmFjZSBJVG9vbHRpcCB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcW1zY2stdG9vbHRpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1ja2VkaXRvci10b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9xbXMtY2tlZGl0b3ItdG9vbHRpcC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yVG9vbHRpcENvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gICAgQElucHV0KCkgY2tFZGl0b3I6IGFueTtcbiAgICBMQU5HOiBhbnk7XG4gICAgdG9vbHRpcEZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICAgIGNvbnRlbnQ6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKVxuICAgIH0pO1xuICAgIHRvb2x0aXA6IElUb29sdGlwO1xuICAgIGVkaXRvcjogYW55O1xuICAgIGVkaXRvckNvbmZpZzogYW55O1xuXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyA9ICdlbic7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxRTVNDS0VkaXRvclRvb2x0aXBDb21wb25lbnQ+LFxuICAgICAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IFFNU0NLRWRpdG9yQ29tbW9uU2VydmljZSxcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBRTVNDS0VkaXRvclRvb2x0aXBcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy50b29sdGlwID0geyB0ZXh0OiBkYXRhLnRleHQsIGNvbnRlbnQ6IGRhdGEuY29udGVudCB9O1xuICAgICAgICB0aGlzLmVkaXRvciA9IGRhdGEuY2tFZGl0b3I7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnNsYXRlLmdldE9iamVjdExhbmcocmVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlID0gcmVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lZGl0b3JDb25maWcgPSBDS0VkaXRvckNvbW1vbkZ1bmN0aW9ucy5nZXRDS0VkaXRvckNvbmZpZ3VyYXRpb24oJ2hlYWRpbmcsfCxmb250c2l6ZSxmb250ZmFtaWx5LGZvbnRDb2xvcixmb250QmFja2dyb3VuZENvbG9yLHwsYm9sZCxpdGFsaWMsdW5kZXJsaW5lLHN0cmlrZXRocm91Z2gsfCxhbGlnbm1lbnQsfCxidWxsZXRlZExpc3QsbnVtYmVyZWRMaXN0LHwsb3V0ZGVudCxpbmRlbnQsfCxzdWJzY3JpcHQsc3VwZXJzY3JpcHQsfCx1bmRvLHJlZG8sfCxzcGVjaWFsQ2hhcmFjdGVycyxibG9ja1F1b3RlLGluc2VydFRhYmxlLHwscmVtb3ZlZm9ybWF0JywgdGhpcy5MQU5HLCB0aGlzLmxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkNsb3NlRGlhbG9nKCkge1xuICAgICAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0U2Nyb2xsVG9wQ2tlZGl0b3IodGhpcy5ja0VkaXRvcik7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5zZXRTY3JvbGxUb3BFZGl0b3JDb250YWluZXIodGhpcy5ja0VkaXRvciwgc2Nyb2xsVG9wKTtcbiAgICB9XG5cbiAgICBnZXRPdXRwdXRDb250ZW50KGNvbnRlbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRvb2x0aXAuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlZCh7IGVkaXRvciB9KSB7XG4gICAgICAgIHRoaXMudG9vbHRpcC5jb250ZW50ID0gZWRpdG9yLmdldERhdGEoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25CbHVyKHsgZWRpdG9yIH0pIHtcbiAgICAgICAgdGhpcy50b29sdGlwLmNvbnRlbnQgPSBlZGl0b3IuZ2V0RGF0YSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJlYWR5KGVkaXRvcikge1xuICAgICAgICBpZiAodGhpcy50b29sdGlwLnRleHQpIHtcbiAgICAgICAgICAgIGVkaXRvci5zZXREYXRhKHRoaXMudG9vbHRpcC50ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBlZGl0b3IudWkuZ2V0RWRpdGFibGVFbGVtZW50KCkucGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoZWRpdG9yLnVpLnZpZXcudG9vbGJhci5lbGVtZW50LCBlZGl0b3IudWkuZ2V0RWRpdGFibGVFbGVtZW50KCkpO1xuICAgIH1cblxuICAgIHNhdmVUb29sdGlwKCkge1xuICAgICAgICBjb25zdCB0b29sdGlwID0gbmV3IFFNU0NLRWRpdG9yVG9vbHRpcCgpO1xuICAgICAgICB0b29sdGlwLmNvbnRlbnQgPSB0aGlzLnRvb2x0aXAuY29udGVudDtcbiAgICAgICAgdG9vbHRpcC50ZXh0ID0gdGhpcy50b29sdGlwLnRleHQ7XG5cbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5jb21tb25TZXJ2aWNlLmdldFNjcm9sbFRvcENrZWRpdG9yKHRoaXMuY2tFZGl0b3IpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0b29sdGlwKTtcbiAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlLnNldFNjcm9sbFRvcEVkaXRvckNvbnRhaW5lcih0aGlzLmNrRWRpdG9yLCBzY3JvbGxUb3ApO1xuICAgIH1cblxuICAgIGNhbmNlbFRvb2x0aXAoKSB7XG4gICAgICAgIHRoaXMub25DbG9zZURpYWxvZygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -79,8 +79,8 @@ export class QMSCKEditorBPMNConnectionService extends QMSCKEditorBaseService {
79
79
  getProcessAreasRootDetails(isOnlyApproved) {
80
80
  return this.get('processAreas/GetProcessAreasRootDetails', { isOnlyApproved });
81
81
  }
82
- getAreaChildrenNode(areaId, showProcessesInTree, isOnlyApproved) {
83
- return this.get('processAreas/GetProcessNodes', { areaId, showProcessesInTree, isOnlyApproved });
82
+ getAreaChildrenNode(areaId, showProcessesInTree, isOnlyApproved, isInterconnectedProcess = false) {
83
+ return this.get('processAreas/GetProcessNodes', { areaId, showProcessesInTree, isOnlyApproved, isInterconnectedProcess });
84
84
  }
85
85
  getParentFolders(itemId, itemType) {
86
86
  return this.get('Items/GetParentFolders', { itemId, itemType });
@@ -101,4 +101,4 @@ QMSCKEditorBPMNConnectionService.decorators = [
101
101
  providedIn: 'root'
102
102
  },] }
103
103
  ];
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLWJwbW4tY29ubmVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9zZXJ2aWNlcy9xbXMtY2tlZGl0b3ItYnBtbi1jb25uZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFPckUsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHNCQUFzQjtJQUNqRSxpQ0FBaUMsQ0FBQyxPQUFlLEVBQUUsZ0JBQTBCO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyw2REFBNkQsRUFBRTtZQUMzRSxPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsQ0FBQztZQUNiLGdCQUFnQixFQUFFLGdCQUFnQjtTQUNyQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLG9CQUFvQjtRQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEy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O0lBQ2pGLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxPQUFlLEVBQUUsYUFBcUIsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUU7WUFDdEMsT0FBTyxFQUFFLE9BQU87WUFDaEIsVUFBVSxFQUFFLFVBQVU7U0FDekIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7OztZQTlHSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNlYXJjaFJlbGF0ZWRJdGVtc1RvQ2hlY2tsaXN0LCBTZWFyY2hSZWxhdGVkSXRlbXNUb0RldmlhdGlvbiwgU2VhcmNoUmVsYXRlZEl0ZW1zVG9Qcm9jZXNzQW5kRG9jdW1lbnQsIFNlYXJjaFJlbGF0ZWRJdGVtc1RvUmlzayB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3JlbGF0ZWQvbW9kZWwvcmVsYXRlZC1kYXRhLm1vZGVsXCI7XG5pbXBvcnQgeyBUcmVlTW9kZWwgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy90cmVlL21vZGVsL3RyZWUubW9kZWxcIjtcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBRTVNDS0VkaXRvckJhc2VTZXJ2aWNlIH0gZnJvbSBcIi4vcW1zLWNrZWRpdG9yLWJhc2Uuc2VydmljZVwiO1xuaW1wb3J0IHsgUHJvY2Vzc01vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9wcm9jZXNzLm1vZGVsXCI7XG5pbXBvcnQgeyBEb2N1bWVudE1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9kb2N1bWVudC5tb2RlbFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yQlBNTkNvbm5lY3Rpb25TZXJ2aWNlIGV4dGVuZHMgUU1TQ0tFZGl0b3JCYXNlU2VydmljZSB7XG4gICAgcHVibGljIHNlYXJjaFJlbGF0ZWRUb1Byb2Nlc3NBbmREb2N1bWVudChrZXl3b3JkOiBzdHJpbmcsIGlzSW50ZXJjb25uZWN0ZWQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxTZWFyY2hSZWxhdGVkSXRlbXNUb1Byb2Nlc3NBbmREb2N1bWVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0NvbWJpbmVEb2N1bWVudEFuZFByb2Nlc3MvU2VhcmNoUmVsYXRlZFRvUHJvY2Vzc0FuZERvY3VtZW50Jywge1xuICAgICAgICAgICAgS2V5d29yZDoga2V5d29yZCxcbiAgICAgICAgICAgIFNlYXJjaFR5cGU6IDEsXG4gICAgICAgICAgICBJc0ludGVyY29ubmVjdGVkOiBpc0ludGVyY29ubmVjdGVkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9jZXNzVHJlZURhdGEoKTogT2JzZXJ2YWJsZTxUcmVlTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3Byb2Nlc3Nlcy9nZXRQcm9jZXNzVHJlZURhdGEnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RG9jdW1lbnRUcmVlRGF0YSgpOiBPYnNlcnZhYmxlPFRyZWVNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgncHJvY2Vzc2VzL2dldERvY3VtZW50VHJlZURhdGEnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGV2aWF0aW9uVHJlZURhdGEoKTogT2JzZXJ2YWJsZTxUcmVlTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3Byb2Nlc3Nlcy9nZXREZXZpYXRpb25UcmVlRGF0YScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDaGVja2xpc3REYXRhKCk6IE9ic2VydmFibGU8VHJlZU1vZGVsW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdwcm9jZXNzZXMvZ2V0Q2hlY2tsaXN0VHJlZURhdGEnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Umlza0RhdGEoKTogT2JzZXJ2YWJsZTxUcmVlTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3Byb2Nlc3Nlcy9nZXRSaXNrVHJlZURhdGEnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoUmVsYXRlZFRvRGV2aWF0aW9uKGtleXdvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8U2VhcmNoUmVsYXRlZEl0ZW1zVG9EZXZpYXRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdTZWFyY2hQcm9jZXNzL1NlYXJjaFJlbGF0ZWRUb0RldmlhdGlvbicsIHtcbiAgICAgICAgICAgIEtleXdvcmQ6IGtleXdvcmQsXG4gICAgICAgICAgICBTZWFyY2hUeXBlOiAxXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2hSZWxhdGVkVG9DaGVja2xpc3Qoa2V5d29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZWFyY2hSZWxhdGVkSXRlbXNUb0NoZWNrbGlzdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ1NlYXJjaFByb2Nlc3MvU2VhcmNoUmVsYXRlZFRvQ2hlY2tsaXN0Jywge1xuICAgICAgICAgICAgS2V5d29yZDoga2V5d29yZCxcbiAgICAgICAgICAgIFNlYXJjaFR5cGU6IDFcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaFJlbGF0ZWRUb1Jpc2soa2V5d29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZWFyY2hSZWxhdGVkSXRlbXNUb1Jpc2s+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdTZWFyY2hQcm9jZXNzL1NlYXJjaFJlbGF0ZWRUb1Jpc2snLCB7XG4gICAgICAgICAgICBLZXl3b3JkOiBrZXl3b3JkLFxuICAgICAgICAgICAgU2VhcmNoVHlwZTogMVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXJlYUNvbnRlbnQoYXJlYUlkOiBzdHJpbmcsIGlzT25seUFwcHJvdmVkOiBib29sZWFuLCBpc0ludGVyY29ubmVjdGVkPzogYm9vbGVhbik6IE9ic2VydmFibGU8UHJvY2Vzc01vZGVsW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdwcm9jZXNzZXMvR2V0UHJvY2Vzc2VzSW5BcmVhJywge1xuICAgICAgICAgICAgQXJlYUlkOiBhcmVhSWQsXG4gICAgICAgICAgICBJc09ubHlBcHByb3ZlZDogaXNPbmx5QXBwcm92ZWQsXG4gICAgICAgICAgICBJc0ludGVyY29ubmVjdGVkOiBpc0ludGVyY29ubmVjdGVkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb2xkZXJDb250ZW50KGZvbGRlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERvY3VtZW50TW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0RvY3VtZW50cy9HZXREb2N1bWVudHNJbkZvbGRlcicsIHtcbiAgICAgICAgICAgIGZvbGRlcklkLFxuICAgICAgICAgICAgaXNPbmx5QXBwcm92ZWQ6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmVsYXRlZEl0ZW1EYXRhKHByb2Nlc3NFbnRpdHlJZDogc3RyaW5nLCBpc0Zyb250ZW5kOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdwcm9jZXNzZXMvZ2V0UmVsYXRlZEl0ZW1EYXRhJywgeyBwcm9jZXNzRW50aXR5SWQsIGlzRnJvbnRlbmQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFyZWFDb250ZW50SW5mb3IoYXJlYUlkOiBzdHJpbmcsIHNob3dQcm9jZXNzZXNJblRyZWU6IGJvb2xlYW4sIGlzT25seUFwcHJvdmVkOiBib29sZWFuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgncHJvY2Vzc0FyZWFzL0dldENvbnRlbnQnLCB7IGFyZWFJZCwgc2hvd1Byb2Nlc3Nlc0luVHJlZSwgaXNPbmx5QXBwcm92ZWQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvbGRlckNoaWxkcmVuKGlkOiBzdHJpbmcgPSBudWxsLCBzaG93RG9jdW1lbnRJblRyZWU6IGJvb2xlYW4sIGFwcHJvdmVkT25seTogYm9vbGVhbikge1xuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xuICAgICAgICAgICAgICAgIHNob3dEb2N1bWVudEluVHJlZSxcbiAgICAgICAgICAgICAgICBhcHByb3ZlZE9ubHlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnaWQnLCBpZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdGb2xkZXJzL0dldENoaWxkcmVuJywgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJvY2Vzc0FyZWFzUm9vdERldGFpbHMoaXNPbmx5QXBwcm92ZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdwcm9jZXNzQXJlYXMvR2V0UHJvY2Vzc0FyZWFzUm9vdERldGFpbHMnLCB7IGlzT25seUFwcHJvdmVkIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBcmVhQ2hpbGRyZW5Ob2RlKGFyZWFJZDogc3RyaW5nLCBzaG93UHJvY2Vzc2VzSW5UcmVlOiBib29sZWFuLCBpc09ubHlBcHByb3ZlZDogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3Byb2Nlc3NBcmVhcy9HZXRQcm9jZXNzTm9kZXMnLCB7IGFyZWFJZCwgc2hvd1Byb2Nlc3Nlc0luVHJlZSwgaXNPbmx5QXBwcm92ZWQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhcmVudEZvbGRlcnMoaXRlbUlkOiBzdHJpbmcsIGl0ZW1UeXBlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdJdGVtcy9HZXRQYXJlbnRGb2xkZXJzJywgeyBpdGVtSWQsIGl0ZW1UeXBlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2hGb2xkZXJzKHsga2V5d29yZCwgaXNGcm9udGVuZCwgc2VhcmNoVHlwZSB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdTZWFyY2gvU2VhcmNoRm9sZGVycycsIHsga2V5d29yZCwgaXNGcm9udGVuZCwgc2VhcmNoVHlwZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoRm9sZGVyQW5kRG9jdW1lbnQoa2V5d29yZDogc3RyaW5nLCBzZWFyY2hUeXBlOiBudW1iZXIgPSAxKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChcIlNlYXJjaC9TZWFyY2hEb2N1bWVudHNcIiwge1xuICAgICAgICAgICAga2V5d29yZDoga2V5d29yZCxcbiAgICAgICAgICAgIHNlYXJjaFR5cGU6IHNlYXJjaFR5cGVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLWJwbW4tY29ubmVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9zZXJ2aWNlcy9xbXMtY2tlZGl0b3ItYnBtbi1jb25uZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFPckUsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHNCQUFzQjtJQUNqRSxpQ0FBaUMsQ0FBQyxPQUFlLEVBQUUsZ0JBQTBCO1FBQ2hGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyw2REFBNkQsRUFBRTtZQUMzRSxPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsQ0FBQztZQUNiLGdCQUFnQixFQUFFLGdCQUFnQjtTQUNyQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLG9CQUFvQjtRQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sZ0JBQWdCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxXQUFXO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLDJCQUEy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VUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVNLHVCQUF1QixDQUFDLE9BQWUsRUFBRSxhQUFxQixDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsRUFBRTtZQUN0QyxPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsVUFBVTtTQUN6QixDQUFDLENBQUM7SUFDUCxDQUFDOzs7O1lBOUdKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU2VhcmNoUmVsYXRlZEl0ZW1zVG9DaGVja2xpc3QsIFNlYXJjaFJlbGF0ZWRJdGVtc1RvRGV2aWF0aW9uLCBTZWFyY2hSZWxhdGVkSXRlbXNUb1Byb2Nlc3NBbmREb2N1bWVudCwgU2VhcmNoUmVsYXRlZEl0ZW1zVG9SaXNrIH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvcmVsYXRlZC9tb2RlbC9yZWxhdGVkLWRhdGEubW9kZWxcIjtcbmltcG9ydCB7IFRyZWVNb2RlbCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3RyZWUvbW9kZWwvdHJlZS5tb2RlbFwiO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFFNU0NLRWRpdG9yQmFzZVNlcnZpY2UgfSBmcm9tIFwiLi9xbXMtY2tlZGl0b3ItYmFzZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBQcm9jZXNzTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL3Byb2Nlc3MubW9kZWxcIjtcbmltcG9ydCB7IERvY3VtZW50TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2RvY3VtZW50Lm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUU1TQ0tFZGl0b3JCUE1OQ29ubmVjdGlvblNlcnZpY2UgZXh0ZW5kcyBRTVNDS0VkaXRvckJhc2VTZXJ2aWNlIHtcbiAgICBwdWJsaWMgc2VhcmNoUmVsYXRlZFRvUHJvY2Vzc0FuZERvY3VtZW50KGtleXdvcmQ6IHN0cmluZywgaXNJbnRlcmNvbm5lY3RlZD86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFNlYXJjaFJlbGF0ZWRJdGVtc1RvUHJvY2Vzc0FuZERvY3VtZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnQ29tYmluZURvY3VtZW50QW5kUHJvY2Vzcy9TZWFyY2hSZWxhdGVkVG9Qcm9jZXNzQW5kRG9jdW1lbnQnLCB7XG4gICAgICAgICAgICBLZXl3b3JkOiBrZXl3b3JkLFxuICAgICAgICAgICAgU2VhcmNoVHlwZTogMSxcbiAgICAgICAgICAgIElzSW50ZXJjb25uZWN0ZWQ6IGlzSW50ZXJjb25uZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFByb2Nlc3NUcmVlRGF0YSgpOiBPYnNlcnZhYmxlPFRyZWVNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgncHJvY2Vzc2VzL2dldFByb2Nlc3NUcmVlRGF0YScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREb2N1bWVudFRyZWVEYXRhKCk6IE9ic2VydmFibGU8VHJlZU1vZGVsW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdwcm9jZXNzZXMvZ2V0RG9jdW1lbnRUcmVlRGF0YScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREZXZpYXRpb25UcmVlRGF0YSgpOiBPYnNlcnZhYmxlPFRyZWVNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgncHJvY2Vzc2VzL2dldERldmlhdGlvblRyZWVEYXRhJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENoZWNrbGlzdERhdGEoKTogT2JzZXJ2YWJsZTxUcmVlTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3Byb2Nlc3Nlcy9nZXRDaGVja2xpc3RUcmVlRGF0YScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSaXNrRGF0YSgpOiBPYnNlcnZhYmxlPFRyZWVNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgncHJvY2Vzc2VzL2dldFJpc2tUcmVlRGF0YScpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2hSZWxhdGVkVG9EZXZpYXRpb24oa2V5d29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZWFyY2hSZWxhdGVkSXRlbXNUb0RldmlhdGlvbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ1NlYXJjaFByb2Nlc3MvU2VhcmNoUmVsYXRlZFRvRGV2aWF0aW9uJywge1xuICAgICAgICAgICAgS2V5d29yZDoga2V5d29yZCxcbiAgICAgICAgICAgIFNlYXJjaFR5cGU6IDFcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaFJlbGF0ZWRUb0NoZWNrbGlzdChrZXl3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlYXJjaFJlbGF0ZWRJdGVtc1RvQ2hlY2tsaXN0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnU2VhcmNoUHJvY2Vzcy9TZWFyY2hSZWxhdGVkVG9DaGVja2xpc3QnLCB7XG4gICAgICAgICAgICBLZXl3b3JkOiBrZXl3b3JkLFxuICAgICAgICAgICAgU2VhcmNoVHlwZTogMVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoUmVsYXRlZFRvUmlzayhrZXl3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlYXJjaFJlbGF0ZWRJdGVtc1RvUmlzaz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ1NlYXJjaFByb2Nlc3MvU2VhcmNoUmVsYXRlZFRvUmlzaycsIHtcbiAgICAgICAgICAgIEtleXdvcmQ6IGtleXdvcmQsXG4gICAgICAgICAgICBTZWFyY2hUeXBlOiAxXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBcmVhQ29udGVudChhcmVhSWQ6IHN0cmluZywgaXNPbmx5QXBwcm92ZWQ6IGJvb2xlYW4sIGlzSW50ZXJjb25uZWN0ZWQ/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxQcm9jZXNzTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3Byb2Nlc3Nlcy9HZXRQcm9jZXNzZXNJbkFyZWEnLCB7XG4gICAgICAgICAgICBBcmVhSWQ6IGFyZWFJZCxcbiAgICAgICAgICAgIElzT25seUFwcHJvdmVkOiBpc09ubHlBcHByb3ZlZCxcbiAgICAgICAgICAgIElzSW50ZXJjb25uZWN0ZWQ6IGlzSW50ZXJjb25uZWN0ZWRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZvbGRlckNvbnRlbnQoZm9sZGVySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RG9jdW1lbnRNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnRG9jdW1lbnRzL0dldERvY3VtZW50c0luRm9sZGVyJywge1xuICAgICAgICAgICAgZm9sZGVySWQsXG4gICAgICAgICAgICBpc09ubHlBcHByb3ZlZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSZWxhdGVkSXRlbURhdGEocHJvY2Vzc0VudGl0eUlkOiBzdHJpbmcsIGlzRnJvbnRlbmQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3Byb2Nlc3Nlcy9nZXRSZWxhdGVkSXRlbURhdGEnLCB7IHByb2Nlc3NFbnRpdHlJZCwgaXNGcm9udGVuZCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXJlYUNvbnRlbnRJbmZvcihhcmVhSWQ6IHN0cmluZywgc2hvd1Byb2Nlc3Nlc0luVHJlZTogYm9vbGVhbiwgaXNPbmx5QXBwcm92ZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdwcm9jZXNzQXJlYXMvR2V0Q29udGVudCcsIHsgYXJlYUlkLCBzaG93UHJvY2Vzc2VzSW5UcmVlLCBpc09ubHlBcHByb3ZlZCB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rm9sZGVyQ2hpbGRyZW4oaWQ6IHN0cmluZyA9IG51bGwsIHNob3dEb2N1bWVudEluVHJlZTogYm9vbGVhbiwgYXBwcm92ZWRPbmx5OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgc2hvd0RvY3VtZW50SW5UcmVlLFxuICAgICAgICAgICAgICAgIGFwcHJvdmVkT25seVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdpZCcsIGlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ0ZvbGRlcnMvR2V0Q2hpbGRyZW4nLCBwYXJhbXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9jZXNzQXJlYXNSb290RGV0YWlscyhpc09ubHlBcHByb3ZlZDogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3Byb2Nlc3NBcmVhcy9HZXRQcm9jZXNzQXJlYXNSb290RGV0YWlscycsIHsgaXNPbmx5QXBwcm92ZWQgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFyZWFDaGlsZHJlbk5vZGUoYXJlYUlkOiBzdHJpbmcsIHNob3dQcm9jZXNzZXNJblRyZWU6IGJvb2xlYW4sIGlzT25seUFwcHJvdmVkOiBib29sZWFuLCBpc0ludGVyY29ubmVjdGVkUHJvY2VzczogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldCgncHJvY2Vzc0FyZWFzL0dldFByb2Nlc3NOb2RlcycsIHsgYXJlYUlkLCBzaG93UHJvY2Vzc2VzSW5UcmVlLCBpc09ubHlBcHByb3ZlZCwgaXNJbnRlcmNvbm5lY3RlZFByb2Nlc3MgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhcmVudEZvbGRlcnMoaXRlbUlkOiBzdHJpbmcsIGl0ZW1UeXBlOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdJdGVtcy9HZXRQYXJlbnRGb2xkZXJzJywgeyBpdGVtSWQsIGl0ZW1UeXBlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2hGb2xkZXJzKHsga2V5d29yZCwgaXNGcm9udGVuZCwgc2VhcmNoVHlwZSB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdTZWFyY2gvU2VhcmNoRm9sZGVycycsIHsga2V5d29yZCwgaXNGcm9udGVuZCwgc2VhcmNoVHlwZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VhcmNoRm9sZGVyQW5kRG9jdW1lbnQoa2V5d29yZDogc3RyaW5nLCBzZWFyY2hUeXBlOiBudW1iZXIgPSAxKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChcIlNlYXJjaC9TZWFyY2hEb2N1bWVudHNcIiwge1xuICAgICAgICAgICAga2V5d29yZDoga2V5d29yZCxcbiAgICAgICAgICAgIHNlYXJjaFR5cGU6IHNlYXJjaFR5cGVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19