nuxeo-development-framework 1.6.3 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +597 -1430
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/Core/services/translation/translation.service.js +6 -9
  4. package/esm2015/lib/components/card/card.component.js +1 -1
  5. package/esm2015/lib/components/comments/comments.module.js +5 -11
  6. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +11 -61
  7. package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +2 -5
  8. package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +2 -7
  9. package/esm2015/lib/components/comments/services/comment-api.service.js +1 -23
  10. package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +3 -5
  11. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +3 -5
  12. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +1 -1
  13. package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +4 -8
  14. package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +4 -11
  15. package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +16 -47
  16. package/esm2015/lib/components/cts-tags/services/tags-api.service.js +1 -30
  17. package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +2 -2
  18. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +1 -1
  19. package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +1 -1
  20. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +8 -6
  21. package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +1 -1
  22. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +1 -1
  23. package/esm2015/lib/components/documents/components/documents/documents.component.js +2 -4
  24. package/esm2015/lib/components/documents/services/documents.service.js +6 -4
  25. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +6 -43
  26. package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +10 -30
  27. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +5 -11
  28. package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +3 -14
  29. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +2 -2
  30. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +3 -8
  31. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +1 -1
  32. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +2 -2
  33. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +3 -4
  34. package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +1 -1
  35. package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +1 -1
  36. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +2 -2
  37. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +7 -10
  38. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +10 -15
  39. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +2 -4
  40. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +2 -6
  41. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +1 -1
  42. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +2 -2
  43. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +1 -1
  44. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +6 -37
  45. package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +5 -22
  46. package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +2 -2
  47. package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +12 -18
  48. package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +26 -44
  49. package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +4 -19
  50. package/esm2015/lib/components/filter/filter/filter.component.js +1 -1
  51. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +2 -3
  52. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +2 -3
  53. package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +1 -5
  54. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +2 -2
  55. package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +2 -2
  56. package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +1 -1
  57. package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +2 -2
  58. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +10 -32
  59. package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +1 -1
  60. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +4 -14
  61. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +4 -8
  62. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +32 -189
  63. package/esm2015/lib/components/select/select/select.component.js +1 -1
  64. package/esm2015/lib/components/table/table/table.component.js +15 -45
  65. package/esm2015/lib/components/users-card/users-card.component.js +1 -1
  66. package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +1 -1
  67. package/esm2015/lib/configuration/app-config.service.js +1 -1
  68. package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +1 -1
  69. package/esm2015/lib/shared/components/button/button.component.js +1 -1
  70. package/esm2015/lib/shared/components/item-list/item-list.component.js +2 -2
  71. package/esm2015/lib/shared/components/user-card/user-card.component.js +1 -1
  72. package/esm2015/public-api.js +1 -8
  73. package/fesm2015/nuxeo-development-framework.js +303 -1109
  74. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  75. package/lib/Core/services/translation/translation.service.d.ts +2 -5
  76. package/lib/components/comments/comments.module.d.ts +12 -13
  77. package/lib/components/comments/components/comment-item/comment-item.component.d.ts +3 -14
  78. package/lib/components/comments/components/comments-dashlet/comments-dashlet.component.d.ts +1 -2
  79. package/lib/components/comments/components/comments-list/comments-list.component.d.ts +1 -3
  80. package/lib/components/comments/services/comment-api.service.d.ts +0 -2
  81. package/lib/components/correspondence-relation/components/versions/versions.component.d.ts +0 -1
  82. package/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.d.ts +1 -4
  83. package/lib/components/cts-tags/services/tags-api.service.d.ts +0 -2
  84. package/lib/components/documents/services/documents.service.d.ts +1 -1
  85. package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +2 -4
  86. package/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.d.ts +2 -11
  87. package/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.d.ts +0 -1
  88. package/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.d.ts +1 -4
  89. package/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.d.ts +1 -2
  90. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.d.ts +2 -2
  91. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +1 -2
  92. package/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.d.ts +1 -3
  93. package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +3 -6
  94. package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +1 -6
  95. package/lib/components/dynamic-view/date-viewer/date-viewer.component.d.ts +3 -8
  96. package/lib/components/dynamic-view/department-viewer/department-viewer.component.d.ts +3 -4
  97. package/lib/components/dynamic-view/dynamic-view.module.d.ts +5 -8
  98. package/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.d.ts +2 -3
  99. package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +2 -5
  100. package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts +2 -3
  101. package/lib/components/pdf-tron/pdftron/pdftron.component.d.ts +3 -22
  102. package/lib/components/table/table/table.component.d.ts +2 -14
  103. package/lib/configuration/app-config.service.d.ts +0 -1
  104. package/package.json +1 -1
  105. package/public-api.d.ts +0 -7
  106. package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +0 -63
  107. package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +0 -59
  108. package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +0 -68
  109. package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +0 -33
  110. package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +0 -62
  111. package/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.d.ts +0 -22
  112. package/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.d.ts +0 -22
  113. package/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.d.ts +0 -28
  114. package/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.d.ts +0 -16
  115. package/lib/components/dynamic-view/dynamic-viewe.service.d.ts +0 -15
@@ -171,13 +171,15 @@ export class DocumentsListComponent {
171
171
  }
172
172
  else {
173
173
  this.documentsApi.getDocument(docId).subscribe((file) => {
174
- this.documentSelect.emit(file);
174
+ this.documentSelect.emit({
175
+ urlFileContent: file.properties.content.data,
176
+ docId: '' + docId,
177
+ title: file.title,
178
+ });
175
179
  }, (error) => {
176
180
  console.error(error);
177
181
  this.toastr
178
- .show('error', 'error', error.ret.message ?
179
- `errors.${error.ret.code}`
180
- : 'genericError')
182
+ .show('error', 'error', error.message)
181
183
  .onShown.subscribe(() => { });
182
184
  });
183
185
  }
@@ -204,7 +206,7 @@ export class DocumentsListComponent {
204
206
  }
205
207
  }
206
208
  DocumentsListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DocumentsListComponent, deps: [{ token: i1.DocumentsService }, { token: i2.NuxeoService }, { token: i3.CustomToastrService }, { token: i4.MatDialog }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
207
- DocumentsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DocumentsListComponent, selector: "app-documents-list", inputs: { ancestorId: "ancestorId", provider: "provider", disablePagination: "disablePagination", containerClasses: "containerClasses", itemsClasses: "itemsClasses", items: "items", notifier: "notifier", canPreview: "canPreview", batchList: "batchList", dontDelete: "dontDelete", canDelete: "canDelete", quickFilters: "quickFilters", memoView: "memoView" }, outputs: { deleteSuccess: "deleteSuccess", documentsCount: "documentsCount", documentSelect: "documentSelect" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isFetching; else spinner\">\r\n <div *ngIf=\"items.length; else noEntry\">\r\n <div class=\"doc-list\">\r\n <div class=\"doc-item\" (click)=\"preview(item.uid)\" *ngFor=\"\r\n let item of items\r\n ;\r\n let last = last\r\n \">\r\n <div class=\"item-content\">\r\n <mat-icon class=\"file-icon\">file_copy</mat-icon>\r\n {{ item.title }}\r\n </div>\r\n <button *ngIf=\"canDelete && isCreator(item)\" (click)=\"deleteDocument($event, item)\"\r\n class=\"btn btn-outline-danger btn-no-border\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{ 'hidden': disablePagination }\" class=\"wrapping-pagination my-3\">\r\n <cts-pagination [page]=\"p\" (change)=\"onChange($event)\"\r\n [size]=\"count\" [count]=\"totalRecords\">\r\n </cts-pagination>\r\n </div>\r\n </div>\r\n <ng-template #noEntry>\r\n <!-- <app-no-entry [msg]=\"'documents.noEntry'\"></app-no-entry> -->\r\n <!-- <cts-no-data\r\n [message]=\"'documents.noEntry'\"\r\n ></cts-no-data> -->\r\n </ng-template>\r\n</ng-container>\r\n<ng-template #spinner>\r\n <mat-spinner class=\"centered-spinner\"></mat-spinner>\r\n</ng-template>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.doc-list{flex:1;justify-content:space-between;cursor:pointer;margin-bottom:14px;border:2px solid #d9dce2;margin-top:2px;border-radius:5px}.wrapping-pagination{display:flex;justify-content:center;align-items:center}.doc-item{display:flex;flex:1;justify-content:space-between;cursor:pointer;padding:8px;border-bottom:1px solid;border-color:#d9dce2}.doc-item:last-child{border-width:0px}.doc-item .item-content{display:flex;align-items:center;justify-content:space-between}.doc-item .file-icon{margin:8px;color:#465573}.pagination{justify-self:center}\n"], components: [{ type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }, { type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
209
+ DocumentsListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DocumentsListComponent, selector: "app-documents-list", inputs: { ancestorId: "ancestorId", provider: "provider", disablePagination: "disablePagination", containerClasses: "containerClasses", itemsClasses: "itemsClasses", items: "items", notifier: "notifier", canPreview: "canPreview", batchList: "batchList", dontDelete: "dontDelete", canDelete: "canDelete", quickFilters: "quickFilters", memoView: "memoView" }, outputs: { deleteSuccess: "deleteSuccess", documentsCount: "documentsCount", documentSelect: "documentSelect" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isFetching; else spinner\">\r\n <div *ngIf=\"items.length; else noEntry\">\r\n <div class=\"doc-list\">\r\n <div class=\"doc-item\" (click)=\"preview(item.uid)\" *ngFor=\"\r\n let item of items\r\n ;\r\n let last = last\r\n \">\r\n <div class=\"item-content\">\r\n <mat-icon class=\"file-icon\">file_copy</mat-icon>\r\n {{ item.title }}\r\n </div>\r\n <button *ngIf=\"canDelete && isCreator(item)\" (click)=\"deleteDocument($event, item)\"\r\n class=\"btn btn-outline-danger btn-no-border\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{ 'hidden': disablePagination }\" class=\"wrapping-pagination my-3\">\r\n <cts-pagination [page]=\"p\" (change)=\"onChange($event)\"\r\n [size]=\"count\" [count]=\"totalRecords\">\r\n </cts-pagination>\r\n </div>\r\n </div>\r\n <ng-template #noEntry>\r\n <!-- <app-no-entry [msg]=\"'documents.noEntry'\"></app-no-entry> -->\r\n <!-- <cts-no-data\r\n [message]=\"'documents.noEntry'\"\r\n ></cts-no-data> -->\r\n </ng-template>\r\n</ng-container>\r\n<ng-template #spinner>\r\n <mat-spinner class=\"centered-spinner\"></mat-spinner>\r\n</ng-template>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.doc-list{flex:1;justify-content:space-between;cursor:pointer;margin-bottom:14px;border:2px solid #d9dce2;margin-top:2px;border-radius:5px}.wrapping-pagination{display:flex;justify-content:center;align-items:center}.doc-item{display:flex;flex:1;justify-content:space-between;cursor:pointer;padding:8px;border-bottom:1px solid;border-color:#d9dce2}.doc-item:last-child{border-width:0px}.doc-item .item-content{display:flex;align-items:center;justify-content:space-between}.doc-item .file-icon{margin:8px;color:#465573}.pagination{justify-self:center}\n"], components: [{ type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }, { type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
208
210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DocumentsListComponent, decorators: [{
209
211
  type: Component,
210
212
  args: [{
@@ -249,4 +251,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
249
251
  }], documentSelect: [{
250
252
  type: Output
251
253
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9kb2N1bWVudC1saXN0L2RvY3VtZW50cy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnQtbGlzdC9kb2N1bWVudHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUU3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7QUFHL0Q7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBTUgsTUFBTSxPQUFPLHNCQUFzQjtJQXdEakMsWUFDVSxZQUE4QixFQUM5QixRQUFzQixFQUN0QixNQUEyQixFQUMzQixNQUFpQixFQUNqQixNQUFjO1FBSmQsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWM7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFR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LHNCQUFzQjt1R0FBdEIsc0JBQXNCLHNpQkN4Q25DLDh4Q0FrQ0E7MkZETWEsc0JBQXNCO2tCQUxsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO2lCQUMvQztpTkFJQyxVQUFVO3NCQURULEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLOztRQUdOLGdDQUFnQztRQUNoQyxpQkFBaUI7c0JBRmhCLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdOLGFBQWE7c0JBRFosTUFBTTs7UUFJUCx1REFBdUQ7UUFDdkQsY0FBYztzQkFGYixNQUFNO2dCQVdQLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlybUNhbGxlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbmZpcm0tY2FsbGVyL2NvbmZpcm0tY2FsbGVyLmRpYWxvZyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c0NvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kb2N1bWVudHMnO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG9jdW1lbnRzLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEEgcmV1c2FibGUgY29tcG9uZW50IHRvIGxpc3QgYXR0YWNobWVudHMsXHJcbiAqIGF0dGFjaG1lbnRzIGNhbiBiZSBwcm92aWRlZCBhcyBpbnB1dCwgb3IgY2FuIGJlIHF1ZXJpZWQgdXNpbmcgcHJvdmlkZXJOYW1lIGFuZC9vciBhbmNlc3RvcklkXHJcbiAqIEB0aXRsZVxyXG4gKiBEb2N1bWVudHMgbGlzdFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8YXBwLWRvY3VtZW50cy1saXN0XHJcbiAqICAgW2l0ZW1zXT1cIkFycmF5T2ZEb2N1bWVudHNPckJhdGNoXCJcclxuICogICBbZGlzYWJsZVBhZ2luYXRpb25dPVwiZmFsc2VcIlxyXG4gKiAgIFtiYXRjaExpc3RdPVwidHJ1ZVwiXHJcbiAqICAgW2NhblByZXZpZXddPVwiZmFsc2VcIlxyXG4gKiAgIChkZWxldGVTdWNjZXNzKT1cIm9uRGVsZXRlKCRldmVudClcIlxyXG4gKiA+PC9hcHAtZG9jdW1lbnRzLWxpc3Q+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kb2N1bWVudHMtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50cy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kb2N1bWVudHMtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIC8qKiBBbmNlc3RvciBJRCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYW5jZXN0b3JJZDtcclxuICAvKiogQXR0YWNobWVudHMgcHJvdmlkZXIgbmFtZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHJvdmlkZXI7XHJcbiAgQElucHV0KClcclxuICAvKiogU2hvdWxkIGRpc2FibGUgUGFnaW5hdGlvbiAqL1xyXG4gIGRpc2FibGVQYWdpbmF0aW9uID0gZmFsc2U7XHJcbiAgLyoqIEBkZXByZWNhdGVkIG5vdCB1c2VkICovXHJcbiAgQElucHV0KClcclxuICBjb250YWluZXJDbGFzc2VzOiBzdHJpbmc7XHJcbiAgLyoqIEBkZXByZWNhdGVkIG5vdCB1c2VkICovXHJcbiAgQElucHV0KClcclxuICBpdGVtc0NsYXNzZXM6IHN0cmluZztcclxuICAvKiogZG9jdW1lbnRzIG9yIGJhdGNoIGl0ZW1zIGFycmF5ICovXHJcbiAgQElucHV0KClcclxuICBpdGVtcyA9IFtdO1xyXG4gIC8qKiBFdmVudCBlbWl0dGVyIGlmIHByb3ZpZGVkIGFuZCBlbWl0dGVkIHdpbGwgY2F1c2UgdGhlIGxpc3QgdG8gcmVmcmVzaCB0aGUgbGlzdCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgbm90aWZpZXIgPSBudWxsO1xyXG4gIC8qKiBDYW4gb3BlbiBpbiB2aWV3ZXIgKi9cclxuICBASW5wdXQoKVxyXG4gIGNhblByZXZpZXcgPSB0cnVlO1xyXG4gIC8qKiBXZXRoZXIgaXRlbXMgaW5wdXQgaXMgZG9jdW1lbnRzIG9yIGJhdGNoTGlzdCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYmF0Y2hMaXN0ID0gZmFsc2U7XHJcbiAgLyoqIFdldGhlciB0byBkZWxldGUgYWN0dWFsIGRvY3VtZW50IG9uIERlbGV0ZSBidXR0b24gY2xpY2sgb3IgdG8ganVzdCBlbWl0IGRlbGV0ZSBldmVudCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZG9udERlbGV0ZSA9IGZhbHNlO1xyXG4gIC8qKiB3ZXRoZXIgdG8gc2hvdyBvciBoaWRlIGRlbGV0ZSBhY3Rpb24gKi9cclxuICBASW5wdXQoKVxyXG4gIGNhbkRlbGV0ZSA9IHRydWU7XHJcbiAgLyoqIFByb3ZpZGVyIHF1aWNrIGZpbHRlcnMgKi9cclxuICBASW5wdXQoKVxyXG4gIHF1aWNrRmlsdGVycztcclxuICAvKiogYWRkZWQgdG8gZGlmZnJlbnRpYXRlIGJldHdlZW4gbWVtbyB2aWV3IGFuZCBjb3JyZXNwb25kYW5jZSB2aWV3ICovXHJcbiAgQElucHV0KCkgbWVtb1ZpZXcgPSBmYWxzZTtcclxuICAvKiogRW1pdHRlZCBvbiBkZWxldGUgYWN0aW9uICovXHJcbiAgQE91dHB1dCgpXHJcbiAgZGVsZXRlU3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogRW1pdHRlZCBvbiBkZWxldGUgYWN0aW9uICovXHJcbiAgQE91dHB1dCgpXHJcbiAgLyoqIEVtaXR0ZWQgb24gZG9jdW1lbnRzIGxvYWQgd2l0aCBjb3VudCBpbmZvcm1hdGlvbiAqL1xyXG4gIGRvY3VtZW50c0NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgcCA9IDE7XHJcbiAgY291bnQgPSA1O1xyXG4gIHRvdGFsUmVjb3JkcztcclxuICBpc05leHRQYWdlQXZhaWxhYmxlID0gdHJ1ZTtcclxuICBpc0ZldGNoaW5nID0gZmFsc2U7XHJcbiAgb25EZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIHNlbGVjdGVkICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIGRvY3VtZW50U2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZG9jdW1lbnRzQXBpOiBEb2N1bWVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBudXhlb0FwaTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHI6IEN1c3RvbVRvYXN0clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkgeyB9XHJcblxyXG4gIGdldERvY3VtZW50cygpIHtcclxuICAgIGlmICh0aGlzLnByb3ZpZGVyKSB7XHJcbiAgICAgIHRoaXMuaXNGZXRjaGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzQXBpXHJcbiAgICAgICAgLmdldERvY3VtZW50cyh0aGlzLmFuY2VzdG9ySWQsIHRoaXMucHJvdmlkZXIsIHtcclxuICAgICAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMucCAtIDEsXHJcbiAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5jb3VudCxcclxuICAgICAgICAgIHF1aWNrRmlsdGVyczogRG9jdW1lbnRzQ29uc3RhbnRzLnF1aWNrRmlsdGVyc1t0aGlzLnF1aWNrRmlsdGVyc10sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IGRhdGEudG90YWxTaXplO1xyXG4gICAgICAgICAgdGhpcy5pc05leHRQYWdlQXZhaWxhYmxlID0gZGF0YS5pc05leHRQYWdlQXZhaWxhYmxlO1xyXG4gICAgICAgICAgdGhpcy5pdGVtcyA9IGRhdGEuZW50cmllcztcclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQ291bnQuZW1pdCh0aGlzLnRvdGFsUmVjb3Jkcyk7XHJcbiAgICAgICAgICB0aGlzLmlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNDcmVhdG9yKGl0ZW0pIHtcclxuICAgIHJldHVybiAhdGhpcy5iYXRjaExpc3RcclxuICAgICAgPyBpdGVtLnByb3BlcnRpZXMuY3JlYXRvciA9PT0gdGhpcy5udXhlb0FwaS5udXhlb0NsaWVudC51c2VyLmlkXHJcbiAgICAgIDogdHJ1ZTtcclxuICB9XHJcbiAgZGVsZXRlRG9jdW1lbnQoZXZlbnQsIGl0ZW0pIHtcclxuICAgIGxldCBkZWxldGVEb2N1bWVudCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRzQXBpLmRlbGV0ZURvY3VtZW50KGl0ZW0ucGF0aCk7XHJcbiAgICB9O1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5jYW5EZWxldGUpIHtcclxuICAgICAgaWYgKCF0aGlzLmJhdGNoTGlzdCkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nXHJcbiAgICAgICAgICAub3BlbihDb25maXJtQ2FsbGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnNDAwcHgnLFxyXG4gICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgY2FsbDogZGVsZXRlRG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdnZW5lcmljQ29uZmlybScsXHJcbiAgICAgICAgICAgICAgdG9hc3RyVGl0bGU6ICcnLFxyXG4gICAgICAgICAgICAgIHRvYXN0ck1zZzogJ2RvY3VtZW50cy5kZWxldGVTdWNjZXNzJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgICBpZiAoIXRoaXMuZG9udERlbGV0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVTdWNjZXNzLm5leHQoaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aCA9PSAxID8gKHRoaXMucCA9IHRoaXMucCAtIDEpIDogdGhpcy5wO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnAgPSAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXREb2N1bWVudHMoKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVTdWNjZXNzLm5leHQoaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZSh0aGlzLml0ZW1zLmluZGV4T2YoaXRlbSksIDEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVTdWNjZXNzLm5leHQoaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ1xyXG4gICAgLy8gICAub3BlbkNvbmZpcm1EaWFsb2coJ2dlbmVyaWNDb25maXJtJylcclxuICAgIC8vICAgLmFmdGVyQ2xvc2VkKClcclxuICAgIC8vICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgLy8gICAgIGlmIChkYXRhKSB7XHJcbiAgICAvLyAgICAgICBpZiAoIXRoaXMuZG9udERlbGV0ZSkge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmRvY3VtZW50c0FwaVxyXG4gICAgLy8gICAgICAgICAgIC5kZWxldGVEb2N1bWVudChpdGVtLnBhdGgpXHJcbiAgICAvLyAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgLy8gICAgICAgICAgICAgdGhpcy50b2FzdHJcclxuICAgIC8vICAgICAgICAgICAgICAgLnN1Y2Nlc3MoJ2RvY3VtZW50cy5kZWxldGVTdWNjZXNzJywgJ3N1Y2Nlc3MnKVxyXG4gICAgLy8gICAgICAgICAgICAgICAub25TaG93bi5waXBlKHRha2UoMSkpXHJcbiAgICAvLyAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlU3VjY2Vzcy5uZXh0KGl0ZW0pO1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIHRoaXMuZ2V0RG9jdW1lbnRzKCk7XHJcbiAgICAvLyAgICAgICAgICAgICAgIH0pO1xyXG4gICAgLy8gICAgICAgICAgIH0pO1xyXG4gICAgLy8gICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5kZWxldGVTdWNjZXNzLm5leHQoaXRlbSk7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9KTtcclxuICB9XHJcbiAgb25DaGFuZ2UoZXZlbnQpIHtcclxuICAgIHRoaXMucCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXREb2N1bWVudHMoKTtcclxuICB9XHJcblxyXG4gIHByZXZpZXcoZG9jSWQpIHtcclxuICAgIGlmICh0aGlzLmNhblByZXZpZXcpIHtcclxuICAgICAgaWYgKHRoaXMubWVtb1ZpZXcpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbeyBvdXRsZXRzOiB7IHZpZXdlcjogWydtZW1vJywgZG9jSWRdIH0gfV0sIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IGxvY2F0aW9uOiB0aGlzLnJvdXRlci51cmwgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbeyBvdXRsZXRzOiB7IHZpZXdlcjogWyd2aWV3JywgZG9jSWRdIH0gfV0sIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IGxvY2F0aW9uOiB0aGlzLnJvdXRlci51cmwgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHNBcGkuZ2V0RG9jdW1lbnQoZG9jSWQpLnN1YnNjcmliZShcclxuICAgICAgICAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudFNlbGVjdC5lbWl0KGZpbGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgIHRoaXMudG9hc3RyXHJcbiAgICAgICAgICAgIC5zaG93KCdlcnJvcicsICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgZXJyb3IucmV0Lm1lc3NhZ2UgP1xyXG4gICAgICAgICAgICAgICAgYGVycm9ycy4ke2Vycm9yLnJldC5jb2RlfWBcclxuICAgICAgICAgICAgICAgIDogJ2dlbmVyaWNFcnJvcicpXHJcbiAgICAgICAgICAgIC5vblNob3duLnN1YnNjcmliZSgoKSA9PiB7IH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldERvY3VtZW50cygpO1xyXG4gICAgaWYgKHRoaXMubm90aWZpZXIpIHtcclxuICAgICAgdGhpcy5ub3RpZmllci5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0RG9jdW1lbnRzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kb2N1bWVudHNBcGkucmVGZXRjaC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZ2V0RG9jdW1lbnRzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RG9jdW1lbnRzKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ZldGNoaW5nOyBlbHNlIHNwaW5uZXJcIj5cclxuICA8ZGl2ICpuZ0lmPVwiaXRlbXMubGVuZ3RoOyBlbHNlIG5vRW50cnlcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkb2MtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZG9jLWl0ZW1cIiAoY2xpY2spPVwicHJldmlldyhpdGVtLnVpZClcIiAqbmdGb3I9XCJcclxuICAgICAgICAgIGxldCBpdGVtIG9mIGl0ZW1zXHJcbiAgICAgICAgICA7XHJcbiAgICAgICAgICBsZXQgbGFzdCA9IGxhc3RcclxuICAgICAgICBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jb250ZW50XCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJmaWxlLWljb25cIj5maWxlX2NvcHk8L21hdC1pY29uPlxyXG4gICAgICAgICAge3sgaXRlbS50aXRsZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJjYW5EZWxldGUgJiYgaXNDcmVhdG9yKGl0ZW0pXCIgKGNsaWNrKT1cImRlbGV0ZURvY3VtZW50KCRldmVudCwgaXRlbSlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGFuZ2VyIGJ0bi1uby1ib3JkZXJcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAgW25nQ2xhc3NdPVwieyAnaGlkZGVuJzogZGlzYWJsZVBhZ2luYXRpb24gfVwiIGNsYXNzPVwid3JhcHBpbmctcGFnaW5hdGlvbiBteS0zXCI+XHJcbiAgICAgIDxjdHMtcGFnaW5hdGlvbiBbcGFnZV09XCJwXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW3NpemVdPVwiY291bnRcIiBbY291bnRdPVwidG90YWxSZWNvcmRzXCI+XHJcbiAgICAgIDwvY3RzLXBhZ2luYXRpb24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctdGVtcGxhdGUgI25vRW50cnk+XHJcbiAgICA8IS0tIDxhcHAtbm8tZW50cnkgW21zZ109XCInZG9jdW1lbnRzLm5vRW50cnknXCI+PC9hcHAtbm8tZW50cnk+IC0tPlxyXG4gICAgPCEtLSA8Y3RzLW5vLWRhdGFcclxuICAgICAgW21lc3NhZ2VdPVwiJ2RvY3VtZW50cy5ub0VudHJ5J1wiXHJcbiA+PC9jdHMtbm8tZGF0YT4gLS0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjc3Bpbm5lcj5cclxuICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJjZW50ZXJlZC1zcGlubmVyXCI+PC9tYXQtc3Bpbm5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9kb2N1bWVudC1saXN0L2RvY3VtZW50cy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnQtbGlzdC9kb2N1bWVudHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUU3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7QUFHL0Q7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBTUgsTUFBTSxPQUFPLHNCQUFzQjtJQXdEakMsWUFDVSxZQUE4QixFQUM5QixRQUFzQixFQUN0QixNQUEyQixFQUMzQixNQUFpQixFQUNqQixNQUFjO1FBSmQsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWM7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckR4QixnQ0FBZ0M7UUFDaEMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBTzFCLHFDQUFxQztRQUVyQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsb0ZBQW9GO1FBRXBGLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIseUJBQXlCO1FBRXpCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsbURBQW1EO1FBRW5ELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsMkZBQTJGO1FBRTNGLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsMkNBQTJDO1FBRTNDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFJakIsc0VBQXNFO1FBQzdELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsK0JBQStCO1FBRS9CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQywrQkFBK0I7UUFFL0IsdURBQXVEO1FBQ3ZELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM1QyxNQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVWLHdCQUFtQixHQUFHLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN0RCwyQ0FBMkM7UUFFM0MsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQVF4RCxDQUFDO0lBRUwsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWTtpQkFDZCxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM1QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDcEIsWUFBWSxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ2pFLENBQUM7aUJBQ0QsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBQ0QsU0FBUyxDQUFDLElBQUk7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9ELENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ3hCLElBQUksY0FBYyxHQUFHLEdBQUcsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUM7UUFDRixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixJQUFJLENBQUMsTUFBTTtxQkFDUixJQUFJLENBQUMsNEJBQTRCLEVBQUU7b0JBQ2xDLEtBQUssRUFBRSxPQUFPO29CQUNkLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsY0FBYzt3QkFDcEIsS0FBSyxFQUFFLGdCQUFnQjt3QkFDdkIsV0FBVyxFQUFFLEVBQUU7d0JBQ2YsU0FBUyxFQUFFLHlCQUF5QjtxQkFDckM7aUJBQ0YsQ0FBQztxQkFDRCxXQUFXLEVBQUU7cUJBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDYixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDbEIsSUFBSSxJQUFJLEVBQUU7d0JBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7NEJBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUN4RCxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dDQUNoQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzs2QkFDWjs0QkFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7eUJBQ3JCOzZCQUFNOzRCQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDaEQ7cUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQjtTQUNGO1FBRUQsMEJBQTBCO1FBQzFCLHlDQUF5QztRQUN6QyxtQkFBbUI7UUFDbkIsMkJBQTJCO1FBQzNCLGtCQUFrQjtRQUNsQixnQ0FBZ0M7UUFDaEMsNEJBQTRCO1FBQzVCLHVDQUF1QztRQUN2QyxtQ0FBbUM7UUFDbkMsMEJBQTBCO1FBQzFCLCtEQUErRDtRQUMvRCx1Q0FBdUM7UUFDdkMsbUNBQW1DO1FBQ25DLGlEQUFpRDtRQUNqRCx1Q0FBdUM7UUFDdkMsb0JBQW9CO1FBQ3BCLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIseUNBQXlDO1FBQ3pDLDBEQUEwRDtRQUMxRCxVQUFVO1FBQ1YsUUFBUTtRQUNSLFFBQVE7SUFDVixDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQUs7UUFDWCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO29CQUMvRCxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7aUJBQzNDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7b0JBQy9ELFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtpQkFDM0MsQ0FBQyxDQUFDO2FBQ0o7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUM1QyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO29CQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSTtvQkFDNUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxLQUFLO29CQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ2xCLENBQUMsQ0FBQztZQUNMLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNO3FCQUNSLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7cUJBQ3JDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM1QyxJQUFJLEtBQUssRUFBRTtnQkFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzttSEEzTVUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc2lCQ3hDbkMsOHhDQWtDQTsyRkRNYSxzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7aUJBQy9DO2lOQUlDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7O1FBR04sZ0NBQWdDO1FBQ2hDLGlCQUFpQjtzQkFGaEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixNQUFNOztRQUlQLHVEQUF1RDtRQUN2RCxjQUFjO3NCQUZiLE1BQU07Z0JBV1AsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maXJtQ2FsbGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29uZmlybS1jYWxsZXIvY29uZmlybS1jYWxsZXIuZGlhbG9nJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RvY3VtZW50cyc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQSByZXVzYWJsZSBjb21wb25lbnQgdG8gbGlzdCBhdHRhY2htZW50cyxcclxuICogYXR0YWNobWVudHMgY2FuIGJlIHByb3ZpZGVkIGFzIGlucHV0LCBvciBjYW4gYmUgcXVlcmllZCB1c2luZyBwcm92aWRlck5hbWUgYW5kL29yIGFuY2VzdG9ySWRcclxuICogQHRpdGxlXHJcbiAqIERvY3VtZW50cyBsaXN0XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxhcHAtZG9jdW1lbnRzLWxpc3RcclxuICogICBbaXRlbXNdPVwiQXJyYXlPZkRvY3VtZW50c09yQmF0Y2hcIlxyXG4gKiAgIFtkaXNhYmxlUGFnaW5hdGlvbl09XCJmYWxzZVwiXHJcbiAqICAgW2JhdGNoTGlzdF09XCJ0cnVlXCJcclxuICogICBbY2FuUHJldmlld109XCJmYWxzZVwiXHJcbiAqICAgKGRlbGV0ZVN1Y2Nlc3MpPVwib25EZWxldGUoJGV2ZW50KVwiXHJcbiAqID48L2FwcC1kb2N1bWVudHMtbGlzdD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRvY3VtZW50cy1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50cy1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudHNMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgLyoqIEFuY2VzdG9yIElEICovXHJcbiAgQElucHV0KClcclxuICBhbmNlc3RvcklkO1xyXG4gIC8qKiBBdHRhY2htZW50cyBwcm92aWRlciBuYW1lICovXHJcbiAgQElucHV0KClcclxuICBwcm92aWRlcjtcclxuICBASW5wdXQoKVxyXG4gIC8qKiBTaG91bGQgZGlzYWJsZSBQYWdpbmF0aW9uICovXHJcbiAgZGlzYWJsZVBhZ2luYXRpb24gPSBmYWxzZTtcclxuICAvKiogQGRlcHJlY2F0ZWQgbm90IHVzZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIGNvbnRhaW5lckNsYXNzZXM6IHN0cmluZztcclxuICAvKiogQGRlcHJlY2F0ZWQgbm90IHVzZWQgKi9cclxuICBASW5wdXQoKVxyXG4gIGl0ZW1zQ2xhc3Nlczogc3RyaW5nO1xyXG4gIC8qKiBkb2N1bWVudHMgb3IgYmF0Y2ggaXRlbXMgYXJyYXkgKi9cclxuICBASW5wdXQoKVxyXG4gIGl0ZW1zID0gW107XHJcbiAgLyoqIEV2ZW50IGVtaXR0ZXIgaWYgcHJvdmlkZWQgYW5kIGVtaXR0ZWQgd2lsbCBjYXVzZSB0aGUgbGlzdCB0byByZWZyZXNoIHRoZSBsaXN0ICovXHJcbiAgQElucHV0KClcclxuICBub3RpZmllciA9IG51bGw7XHJcbiAgLyoqIENhbiBvcGVuIGluIHZpZXdlciAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgY2FuUHJldmlldyA9IHRydWU7XHJcbiAgLyoqIFdldGhlciBpdGVtcyBpbnB1dCBpcyBkb2N1bWVudHMgb3IgYmF0Y2hMaXN0ICovXHJcbiAgQElucHV0KClcclxuICBiYXRjaExpc3QgPSBmYWxzZTtcclxuICAvKiogV2V0aGVyIHRvIGRlbGV0ZSBhY3R1YWwgZG9jdW1lbnQgb24gRGVsZXRlIGJ1dHRvbiBjbGljayBvciB0byBqdXN0IGVtaXQgZGVsZXRlIGV2ZW50ICovXHJcbiAgQElucHV0KClcclxuICBkb250RGVsZXRlID0gZmFsc2U7XHJcbiAgLyoqIHdldGhlciB0byBzaG93IG9yIGhpZGUgZGVsZXRlIGFjdGlvbiAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgY2FuRGVsZXRlID0gdHJ1ZTtcclxuICAvKiogUHJvdmlkZXIgcXVpY2sgZmlsdGVycyAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcXVpY2tGaWx0ZXJzO1xyXG4gIC8qKiBhZGRlZCB0byBkaWZmcmVudGlhdGUgYmV0d2VlbiBtZW1vIHZpZXcgYW5kIGNvcnJlc3BvbmRhbmNlIHZpZXcgKi9cclxuICBASW5wdXQoKSBtZW1vVmlldyA9IGZhbHNlO1xyXG4gIC8qKiBFbWl0dGVkIG9uIGRlbGV0ZSBhY3Rpb24gKi9cclxuICBAT3V0cHV0KClcclxuICBkZWxldGVTdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8qKiBFbWl0dGVkIG9uIGRlbGV0ZSBhY3Rpb24gKi9cclxuICBAT3V0cHV0KClcclxuICAvKiogRW1pdHRlZCBvbiBkb2N1bWVudHMgbG9hZCB3aXRoIGNvdW50IGluZm9ybWF0aW9uICovXHJcbiAgZG9jdW1lbnRzQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBwID0gMTtcclxuICBjb3VudCA9IDU7XHJcbiAgdG90YWxSZWNvcmRzO1xyXG4gIGlzTmV4dFBhZ2VBdmFpbGFibGUgPSB0cnVlO1xyXG4gIGlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICBvbkRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvKiogRW1pdHRlZCB3aGVuIGEgZG9jdW1lbnQgaXMgc2VsZWN0ZWQgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgZG9jdW1lbnRTZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkb2N1bWVudHNBcGk6IERvY3VtZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG51eGVvQXBpOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7IH1cclxuXHJcbiAgZ2V0RG9jdW1lbnRzKCkge1xyXG4gICAgaWYgKHRoaXMucHJvdmlkZXIpIHtcclxuICAgICAgdGhpcy5pc0ZldGNoaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kb2N1bWVudHNBcGlcclxuICAgICAgICAuZ2V0RG9jdW1lbnRzKHRoaXMuYW5jZXN0b3JJZCwgdGhpcy5wcm92aWRlciwge1xyXG4gICAgICAgICAgY3VycmVudFBhZ2VJbmRleDogdGhpcy5wIC0gMSxcclxuICAgICAgICAgIHBhZ2VTaXplOiB0aGlzLmNvdW50LFxyXG4gICAgICAgICAgcXVpY2tGaWx0ZXJzOiBEb2N1bWVudHNDb25zdGFudHMucXVpY2tGaWx0ZXJzW3RoaXMucXVpY2tGaWx0ZXJzXSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gZGF0YS50b3RhbFNpemU7XHJcbiAgICAgICAgICB0aGlzLmlzTmV4dFBhZ2VBdmFpbGFibGUgPSBkYXRhLmlzTmV4dFBhZ2VBdmFpbGFibGU7XHJcbiAgICAgICAgICB0aGlzLml0ZW1zID0gZGF0YS5lbnRyaWVzO1xyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudHNDb3VudC5lbWl0KHRoaXMudG90YWxSZWNvcmRzKTtcclxuICAgICAgICAgIHRoaXMuaXNGZXRjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBpc0NyZWF0b3IoaXRlbSkge1xyXG4gICAgcmV0dXJuICF0aGlzLmJhdGNoTGlzdFxyXG4gICAgICA/IGl0ZW0ucHJvcGVydGllcy5jcmVhdG9yID09PSB0aGlzLm51eGVvQXBpLm51eGVvQ2xpZW50LnVzZXIuaWRcclxuICAgICAgOiB0cnVlO1xyXG4gIH1cclxuICBkZWxldGVEb2N1bWVudChldmVudCwgaXRlbSkge1xyXG4gICAgbGV0IGRlbGV0ZURvY3VtZW50ID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5kb2N1bWVudHNBcGkuZGVsZXRlRG9jdW1lbnQoaXRlbS5wYXRoKTtcclxuICAgIH07XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLmNhbkRlbGV0ZSkge1xyXG4gICAgICBpZiAoIXRoaXMuYmF0Y2hMaXN0KSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dcclxuICAgICAgICAgIC5vcGVuKENvbmZpcm1DYWxsZXJEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgd2lkdGg6ICc0MDBweCcsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICBjYWxsOiBkZWxldGVEb2N1bWVudCxcclxuICAgICAgICAgICAgICB0aXRsZTogJ2dlbmVyaWNDb25maXJtJyxcclxuICAgICAgICAgICAgICB0b2FzdHJUaXRsZTogJycsXHJcbiAgICAgICAgICAgICAgdG9hc3RyTXNnOiAnZG9jdW1lbnRzLmRlbGV0ZVN1Y2Nlc3MnLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICAgIGlmICghdGhpcy5kb250RGVsZXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZVN1Y2Nlc3MubmV4dChpdGVtKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMubGVuZ3RoID09IDEgPyAodGhpcy5wID0gdGhpcy5wIC0gMSkgOiB0aGlzLnA7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucCA9IDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldERvY3VtZW50cygpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZVN1Y2Nlc3MubmV4dChpdGVtKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRlbGV0ZVN1Y2Nlc3MubmV4dChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuY29uZmlybWF0aW9uRGlhbG9nXHJcbiAgICAvLyAgIC5vcGVuQ29uZmlybURpYWxvZygnZ2VuZXJpY0NvbmZpcm0nKVxyXG4gICAgLy8gICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgLy8gICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAvLyAgICAgaWYgKGRhdGEpIHtcclxuICAgIC8vICAgICAgIGlmICghdGhpcy5kb250RGVsZXRlKSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuZG9jdW1lbnRzQXBpXHJcbiAgICAvLyAgICAgICAgICAgLmRlbGV0ZURvY3VtZW50KGl0ZW0ucGF0aClcclxuICAgIC8vICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICB0aGlzLnRvYXN0clxyXG4gICAgLy8gICAgICAgICAgICAgICAuc3VjY2VzcygnZG9jdW1lbnRzLmRlbGV0ZVN1Y2Nlc3MnLCAnc3VjY2VzcycpXHJcbiAgICAvLyAgICAgICAgICAgICAgIC5vblNob3duLnBpcGUodGFrZSgxKSlcclxuICAgIC8vICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgdGhpcy5kZWxldGVTdWNjZXNzLm5leHQoaXRlbSk7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgdGhpcy5nZXREb2N1bWVudHMoKTtcclxuICAgIC8vICAgICAgICAgICAgICAgfSk7XHJcbiAgICAvLyAgICAgICAgICAgfSk7XHJcbiAgICAvLyAgICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmRlbGV0ZVN1Y2Nlc3MubmV4dChpdGVtKTtcclxuICAgIC8vICAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UodGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pLCAxKTtcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0pO1xyXG4gIH1cclxuICBvbkNoYW5nZShldmVudCkge1xyXG4gICAgdGhpcy5wID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldERvY3VtZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcHJldmlldyhkb2NJZCkge1xyXG4gICAgaWYgKHRoaXMuY2FuUHJldmlldykge1xyXG4gICAgICBpZiAodGhpcy5tZW1vVmlldykge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7IG91dGxldHM6IHsgdmlld2VyOiBbJ21lbW8nLCBkb2NJZF0gfSB9XSwge1xyXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHsgbG9jYXRpb246IHRoaXMucm91dGVyLnVybCB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7IG91dGxldHM6IHsgdmlld2VyOiBbJ3ZpZXcnLCBkb2NJZF0gfSB9XSwge1xyXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHsgbG9jYXRpb246IHRoaXMucm91dGVyLnVybCB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRvY3VtZW50c0FwaS5nZXREb2N1bWVudChkb2NJZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChmaWxlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRvY3VtZW50U2VsZWN0LmVtaXQoe1xyXG4gICAgICAgICAgICB1cmxGaWxlQ29udGVudDogZmlsZS5wcm9wZXJ0aWVzLmNvbnRlbnQuZGF0YSxcclxuICAgICAgICAgICAgZG9jSWQ6ICcnICsgZG9jSWQsXHJcbiAgICAgICAgICAgIHRpdGxlOiBmaWxlLnRpdGxlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy50b2FzdHJcclxuICAgICAgICAgICAgLnNob3coJ2Vycm9yJywgJ2Vycm9yJywgZXJyb3IubWVzc2FnZSlcclxuICAgICAgICAgICAgLm9uU2hvd24uc3Vic2NyaWJlKCgpID0+IHsgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RG9jdW1lbnRzKCk7XHJcbiAgICBpZiAodGhpcy5ub3RpZmllcikge1xyXG4gICAgICB0aGlzLm5vdGlmaWVyLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5nZXREb2N1bWVudHMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRvY3VtZW50c0FwaS5yZUZldGNoLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5nZXREb2N1bWVudHMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXREb2N1bWVudHMoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRmV0Y2hpbmc7IGVsc2Ugc3Bpbm5lclwiPlxyXG4gIDxkaXYgKm5nSWY9XCJpdGVtcy5sZW5ndGg7IGVsc2Ugbm9FbnRyeVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImRvYy1saXN0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkb2MtaXRlbVwiIChjbGljayk9XCJwcmV2aWV3KGl0ZW0udWlkKVwiICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgbGV0IGl0ZW0gb2YgaXRlbXNcclxuICAgICAgICAgIDtcclxuICAgICAgICAgIGxldCBsYXN0ID0gbGFzdFxyXG4gICAgICAgIFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImZpbGUtaWNvblwiPmZpbGVfY29weTwvbWF0LWljb24+XHJcbiAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNhbkRlbGV0ZSAmJiBpc0NyZWF0b3IoaXRlbSlcIiAoY2xpY2spPVwiZGVsZXRlRG9jdW1lbnQoJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1kYW5nZXIgYnRuLW5vLWJvcmRlclwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICBbbmdDbGFzc109XCJ7ICdoaWRkZW4nOiBkaXNhYmxlUGFnaW5hdGlvbiB9XCIgY2xhc3M9XCJ3cmFwcGluZy1wYWdpbmF0aW9uIG15LTNcIj5cclxuICAgICAgPGN0cy1wYWdpbmF0aW9uIFtwYWdlXT1cInBcIiAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbc2l6ZV09XCJjb3VudFwiIFtjb3VudF09XCJ0b3RhbFJlY29yZHNcIj5cclxuICAgICAgPC9jdHMtcGFnaW5hdGlvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy10ZW1wbGF0ZSAjbm9FbnRyeT5cclxuICAgIDwhLS0gPGFwcC1uby1lbnRyeSBbbXNnXT1cIidkb2N1bWVudHMubm9FbnRyeSdcIj48L2FwcC1uby1lbnRyeT4gLS0+XHJcbiAgICA8IS0tIDxjdHMtbm8tZGF0YVxyXG4gICAgICBbbWVzc2FnZV09XCInZG9jdW1lbnRzLm5vRW50cnknXCJcclxuID48L2N0cy1uby1kYXRhPiAtLT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLXRlbXBsYXRlICNzcGlubmVyPlxyXG4gIDxtYXQtc3Bpbm5lciBjbGFzcz1cImNlbnRlcmVkLXNwaW5uZXJcIj48L21hdC1zcGlubmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
27
27
  providedIn: 'root'
28
28
  }]
29
29
  }], ctorParameters: function () { return [{ type: i1.DocumentsService }]; } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtc2Nhbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9kb2N1bWVudC1zY2FuL2RvY3VtZW50LXNjYW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFXLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUtyQyxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQW9CLGdCQUFtQztRQUFuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBTHZELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHeUIsQ0FBQztJQUU1RCxXQUFXLENBQUMsWUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDOUIsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOztnSEFqQlUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3V0cHV0ICwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50U2NhblNlcnZpY2Uge1xyXG5cclxuICBmaWxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHVwbG9hZFN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIG9uTWluaW1pemluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgc3RvcmVkRmlsZTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRvY3VtZW50c1NlcnZpY2UgOiBEb2N1bWVudHNTZXJ2aWNlKSB7IH1cclxuXHJcbiAgdXBsb2FkQmF0Y2goZmlsZVRvVXBsb2FkKXtcclxuICAgIHJldHVybiB0aGlzLmRvY3VtZW50c1NlcnZpY2UudXBsb2FkQmF0Y2goW2ZpbGVUb1VwbG9hZF0pLnBpcGUobWFwKChiYXRjaCkgPT4ge1xyXG4gICAgICBiYXRjaC5mb3JFYWNoKGRvYyA9PiB7XHJcbiAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoZG9jKTtcclxuICAgICAgICB0aGlzLnVwbG9hZFN0YXJ0LmVtaXQoZmFsc2UpXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gYmF0Y2hcclxuICAgIH0pKTtcclxuICB9XHJcbn1cclxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtc2Nhbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9kb2N1bWVudC1zY2FuL2RvY3VtZW50LXNjYW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFXLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUtyQyxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCLFlBQW9CLGdCQUFtQztRQUFuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBTHZELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHeUIsQ0FBQztJQUU1RCxXQUFXLENBQUMsWUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMxRSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDOUIsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOztnSEFqQlUsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3V0cHV0ICwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb2N1bWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG9jdW1lbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFNjYW5TZXJ2aWNlIHtcblxuICBmaWxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB1cGxvYWRTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgb25NaW5pbWl6aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHN0b3JlZEZpbGU7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9jdW1lbnRzU2VydmljZSA6IERvY3VtZW50c1NlcnZpY2UpIHsgfVxuXG4gIHVwbG9hZEJhdGNoKGZpbGVUb1VwbG9hZCl7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRzU2VydmljZS51cGxvYWRCYXRjaChbZmlsZVRvVXBsb2FkXSkucGlwZShtYXAoKGJhdGNoKSA9PiB7XG4gICAgICBiYXRjaC5mb3JFYWNoKGRvYyA9PiB7XG4gICAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KGRvYyk7XG4gICAgICAgIHRoaXMudXBsb2FkU3RhcnQuZW1pdChmYWxzZSlcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGJhdGNoXG4gICAgfSkpO1xuICB9XG59XG4iXX0=
@@ -123,7 +123,7 @@ export class DocumentUploadComponent {
123
123
  }
124
124
  }
125
125
  DocumentUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DocumentUploadComponent, deps: [{ token: i1.DocumentsService }, { token: i2.CustomToastrService }], target: i0.ɵɵFactoryTarget.Component });
126
- DocumentUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DocumentUploadComponent, selector: "app-document-upload", inputs: { allowedTypes: "allowedTypes", params: "params", path: "path", maxSize: "maxSize", docParams: "docParams", multiple: "multiple", createDocument: "createDocument", allowedMaxNumberOfFiles: "allowedMaxNumberOfFiles" }, outputs: { uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<input type=\"file\" class=\"hidden\" #fileInput [accept]=\"allowedTypes\" [multiple]=\"multiple\"\r\n (change)=\"uploadDocument($event.target.files)\">\r\n<div #template [ngClass]=\"{'hidden': template.childNodes.length == 0}\" (click)=\"triggerUpload()\"\r\n class=\"upload-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n<div *ngIf=\"template.childNodes.length == 0\" class=\"default-upload\" (click)=\"triggerUpload()\">\r\n <div class=\"upload-section\" style=\"color:#465573;\">\r\n <mat-icon class=\"upload-icon\">upload</mat-icon>\r\n <h3 class=\"upload-title\">\r\n {{'documents.uploadDocuments'| translate }}</h3>\r\n <p class=\"upload-desc\">\r\n {{'documents.maxSize'| translate }} {{maxSize | FileSize}}</p>\r\n </div>\r\n <div>\r\n <mat-icon class=\"m-2\" style=\"color:#465573;\">file_copy</mat-icon>\r\n </div>\r\n</div>\r\n<mat-progress-bar mode=\"indeterminate\" *ngIf=\"uploading\"></mat-progress-bar>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.upload-container{display:flex;flex:1;justify-content:space-between;cursor:pointer;width:100%;height:100%}.default-upload{display:flex;padding:8px 16px;flex:1;justify-content:space-between;background:#d8d8fc;cursor:pointer}.upload-section{display:flex;align-items:center;justify-content:center;justify-content:space-between}.upload-icon{margin:0 8px}.upload-title{font-size:16px;border-color:#465573;border-left:1px solid;padding-left:8px;margin:0}.rtl .upload-title{border-left:0px;border-right:1px solid;padding-left:0;padding-right:8px}.upload-desc{font-size:12px;padding-left:8px;opacity:.6;margin:0}.rtl .upload-desc{padding-left:0;padding-right:8px}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i6.TranslatePipe, "FileSize": i7.FileSizePipe }, encapsulation: i0.ViewEncapsulation.None });
126
+ DocumentUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DocumentUploadComponent, selector: "app-document-upload", inputs: { allowedTypes: "allowedTypes", params: "params", path: "path", maxSize: "maxSize", docParams: "docParams", multiple: "multiple", createDocument: "createDocument", allowedMaxNumberOfFiles: "allowedMaxNumberOfFiles" }, outputs: { uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<input type=\"file\" class=\"hidden\" #fileInput [accept]=\"allowedTypes\" [multiple]=\"multiple\"\r\n (change)=\"uploadDocument($event.target.files)\">\r\n<div #template [ngClass]=\"{'hidden': template.childNodes.length == 0}\" (click)=\"triggerUpload()\"\r\n class=\"upload-container\">\r\n <ng-content></ng-content>\r\n</div>\r\n<div *ngIf=\"template.childNodes.length == 0\" class=\"default-upload\" (click)=\"triggerUpload()\">\r\n <div class=\"upload-section\" style=\"color:#465573;\">\r\n <mat-icon class=\"upload-icon\">upload</mat-icon>\r\n <h3 class=\"upload-title\">\r\n {{'documents.uploadDocuments'| translate }}</h3>\r\n <p class=\"upload-desc\">\r\n {{'documents.maxSize'| translate }} {{maxSize | FileSize}}</p>\r\n </div>\r\n <div>\r\n <mat-icon class=\"m-2\" style=\"color:#465573;\">file_copy</mat-icon>\r\n </div>\r\n</div>\r\n<mat-progress-bar mode=\"indeterminate\" *ngIf=\"uploading\"></mat-progress-bar>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.upload-container{display:flex;flex:1;justify-content:space-between;cursor:pointer;width:100%;height:100%}.default-upload{display:flex;padding:8px 16px;flex:1;justify-content:space-between;background:#d8d8fc;cursor:pointer}.upload-section{display:flex;align-items:center;justify-content:center;justify-content:space-between}.upload-icon{margin:0 8px}.upload-title{font-size:16px;border-color:#465573;border-left:1px solid;padding-left:8px;margin:0}.rtl .upload-title{border-left:0px;border-right:1px solid;padding-left:0;padding-right:8px}.upload-desc{font-size:12px;padding-left:8px;opacity:.6;margin:0}.rtl .upload-desc{padding-left:0;padding-right:8px}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "mode", "value", "bufferValue"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i6.TranslatePipe, "FileSize": i7.FileSizePipe }, encapsulation: i0.ViewEncapsulation.None });
127
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DocumentUploadComponent, decorators: [{
128
128
  type: Component,
129
129
  args: [{
@@ -22,9 +22,7 @@ export class DocumentsComponent {
22
22
  this.documentConstants = DocumentsConstants;
23
23
  }
24
24
  onError(error) {
25
- this.toastr.show('error', 'error', error.ret.message ?
26
- `errors.${error.ret.code}`
27
- : 'genericError');
25
+ this.toastr.show('error', 'error', error ? error : 'genericError');
28
26
  }
29
27
  onSuccess(files) {
30
28
  this.toastr.show('success', 'success', 'documents.addSuccess');
@@ -60,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
60
58
  }], maxSize: [{
61
59
  type: Input
62
60
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnRzL2RvY3VtZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUUvRCxjQUFjO0FBTWQsTUFBTSxPQUFPLGtCQUFrQjtJQXNCN0IsWUFBb0IsTUFBMkI7UUFBM0IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFoQi9DLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFNWixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUV0QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztJQUNZLENBQUM7SUFFcEQsT0FBTyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUMvQixLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pCLFVBQVUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUU7WUFDMUIsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxRQUFRLENBQUMsS0FBSztRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUNwRSxDQUFDOzsrR0FwQ1Usa0JBQWtCO21HQUFsQixrQkFBa0IsMlBDWC9CLDJyQkFnQkE7MkZETGEsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDMUM7MEdBR0MsVUFBVTtzQkFEVCxLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLElBQUk7c0JBREgsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLE9BQU87c0JBRE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWxheSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2RvY3VtZW50cyc7XHJcblxyXG4vKiogQGlnbm9yZSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kb2N1bWVudHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RvY3VtZW50cy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIGFuY2VzdG9ySWQ7XHJcbiAgQElucHV0KClcclxuICBxdWlja0ZpbHRlcnM7XHJcbiAgQElucHV0KClcclxuICBwYXJhbXMgPSB7fTtcclxuICBASW5wdXQoKVxyXG4gIHByb3ZpZGVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGF0aDtcclxuICBASW5wdXQoKVxyXG4gIGNhblVwbG9hZFJvbGVzID0gbnVsbDtcclxuICBASW5wdXQoKVxyXG4gIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBtYXhTaXplID0gMzE0NTcyODtcclxuICBpdGVtcyA9IFtdO1xyXG4gIGlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICB1cGxvYWRpbmcgPSBmYWxzZTtcclxuICBub3RpZmllciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkb2N1bWVudENvbnN0YW50cyA9IERvY3VtZW50c0NvbnN0YW50cztcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0cjogQ3VzdG9tVG9hc3RyU2VydmljZSkgeyB9XHJcblxyXG4gIG9uRXJyb3IoZXJyb3IpOiB2b2lkIHtcclxuICAgIHRoaXMudG9hc3RyLnNob3coJ2Vycm9yJywgJ2Vycm9yJyxcclxuICAgICAgZXJyb3IucmV0Lm1lc3NhZ2UgP1xyXG4gICAgICAgIGBlcnJvcnMuJHtlcnJvci5yZXQuY29kZX1gXHJcbiAgICAgICAgOiAnZ2VuZXJpY0Vycm9yJyk7XHJcbiAgfVxyXG4gIG9uU3VjY2VzcyhmaWxlcyk6IHZvaWQge1xyXG4gICAgdGhpcy50b2FzdHIuc2hvdygnc3VjY2VzcycsICdzdWNjZXNzJywgJ2RvY3VtZW50cy5hZGRTdWNjZXNzJyk7XHJcbiAgICB0aGlzLm5vdGlmaWVyLm5leHQoKTtcclxuICB9XHJcbiAgb25EZWxldGUoZXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMudG9hc3RyLnNob3coJ3N1Y2Nlc3MnLCAnc3VjY2VzcycsICdkb2N1bWVudHMuZGVsZXRlU3VjY2VzcycpO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWNhcmQ+XHJcbiAgPGgzIGNsYXNzPVwidGl0bGUgdGV4dC1sZyBmb250LWJvbGRcIj5cclxuICAgIHt7IFwiZG9jdW1lbnRzLnRpdGxlXCIgfCB0cmFuc2xhdGUgfX1cclxuICA8L2gzPlxyXG5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImJvZHlcIj5cclxuICAgIDxhcHAtZG9jdW1lbnQtdXBsb2FkIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiICphcHBIYXNSb2xlPVwiY2FuVXBsb2FkUm9sZXNcIiBbZG9jUGFyYW1zXT1cInt0eXBlOmRvY3VtZW50Q29uc3RhbnRzLmRvY3VtZW50VHlwZXMuYXR0YWNobWVudH1cIlxyXG4gICAgICBbcGF0aF09XCJ0aGlzLnBhdGhcIiBbcGFyYW1zXT1cInRoaXMucGFyYW1zXCIgKHVwbG9hZFN1Y2Nlc3MpPVwib25TdWNjZXNzKCRldmVudClcIiAodXBsb2FkRXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCI+XHJcbiAgICA8L2FwcC1kb2N1bWVudC11cGxvYWQ+XHJcbiAgICA8YXBwLWRvY3VtZW50cy1saXN0IFtxdWlja0ZpbHRlcnNdPVwicXVpY2tGaWx0ZXJzXCIgW25vdGlmaWVyXT1cIm5vdGlmaWVyXCIgW2FuY2VzdG9ySWRdPVwiYW5jZXN0b3JJZFwiXHJcbiAgICAgIFtwcm92aWRlcl09XCJwcm92aWRlclwiIChkZWxldGVTdWNjZXNzKT1cIm9uRGVsZXRlKCRldmVudClcIj5cclxuICAgIDwvYXBwLWRvY3VtZW50cy1saXN0PlxyXG5cclxuICA8L2Rpdj5cclxuPC9hcHAtY2FyZD5cclxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnRzL2RvY3VtZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUUvRCxjQUFjO0FBTWQsTUFBTSxPQUFPLGtCQUFrQjtJQXNCN0IsWUFBb0IsTUFBMkI7UUFBM0IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFoQi9DLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFNWixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUV0QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFDbEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztJQUNXLENBQUM7SUFFbkQsT0FBTyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsU0FBUyxDQUFDLEtBQUs7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDcEUsQ0FBQzs7K0dBakNVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDJQQ1gvQiwyckJBZ0JBOzJGRExhLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsV0FBVyxFQUFFLDRCQUE0QjtvQkFDekMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzFDOzBHQUdDLFVBQVU7c0JBRFQsS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixJQUFJO3NCQURILEtBQUs7Z0JBR04sY0FBYztzQkFEYixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZGVsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c0NvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9kb2N1bWVudHMnO1xyXG5cclxuLyoqIEBpZ25vcmUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZG9jdW1lbnRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kb2N1bWVudHMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50c0NvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBhbmNlc3RvcklkO1xyXG4gIEBJbnB1dCgpXHJcbiAgcXVpY2tGaWx0ZXJzO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFyYW1zID0ge307XHJcbiAgQElucHV0KClcclxuICBwcm92aWRlcjtcclxuICBASW5wdXQoKVxyXG4gIHBhdGg7XHJcbiAgQElucHV0KClcclxuICBjYW5VcGxvYWRSb2xlcyA9IG51bGw7XHJcbiAgQElucHV0KClcclxuICBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgbWF4U2l6ZSA9IDMxNDU3Mjg7XHJcbiAgaXRlbXMgPSBbXTtcclxuICBpc0ZldGNoaW5nID0gZmFsc2U7XHJcbiAgdXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgbm90aWZpZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgZG9jdW1lbnRDb25zdGFudHMgPSBEb2N1bWVudHNDb25zdGFudHM7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdHI6IEN1c3RvbVRvYXN0clNlcnZpY2UpIHt9XHJcblxyXG4gIG9uRXJyb3IoZXJyb3IpOiB2b2lkIHtcclxuICAgIHRoaXMudG9hc3RyLnNob3coJ2Vycm9yJywgJ2Vycm9yJywgZXJyb3IgPyBlcnJvciA6ICdnZW5lcmljRXJyb3InKTtcclxuICB9XHJcbiAgb25TdWNjZXNzKGZpbGVzKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvYXN0ci5zaG93KCdzdWNjZXNzJywgJ3N1Y2Nlc3MnLCAnZG9jdW1lbnRzLmFkZFN1Y2Nlc3MnKTtcclxuICAgIHRoaXMubm90aWZpZXIubmV4dCgpO1xyXG4gIH1cclxuICBvbkRlbGV0ZShldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy50b2FzdHIuc2hvdygnc3VjY2VzcycsICdzdWNjZXNzJywgJ2RvY3VtZW50cy5kZWxldGVTdWNjZXNzJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtY2FyZD5cclxuICA8aDMgY2xhc3M9XCJ0aXRsZSB0ZXh0LWxnIGZvbnQtYm9sZFwiPlxyXG4gICAge3sgXCJkb2N1bWVudHMudGl0bGVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvaDM+XHJcblxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxyXG4gICAgPGFwcC1kb2N1bWVudC11cGxvYWQgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgKmFwcEhhc1JvbGU9XCJjYW5VcGxvYWRSb2xlc1wiIFtkb2NQYXJhbXNdPVwie3R5cGU6ZG9jdW1lbnRDb25zdGFudHMuZG9jdW1lbnRUeXBlcy5hdHRhY2htZW50fVwiXHJcbiAgICAgIFtwYXRoXT1cInRoaXMucGF0aFwiIFtwYXJhbXNdPVwidGhpcy5wYXJhbXNcIiAodXBsb2FkU3VjY2Vzcyk9XCJvblN1Y2Nlc3MoJGV2ZW50KVwiICh1cGxvYWRFcnJvcik9XCJvbkVycm9yKCRldmVudClcIj5cclxuICAgIDwvYXBwLWRvY3VtZW50LXVwbG9hZD5cclxuICAgIDxhcHAtZG9jdW1lbnRzLWxpc3QgW3F1aWNrRmlsdGVyc109XCJxdWlja0ZpbHRlcnNcIiBbbm90aWZpZXJdPVwibm90aWZpZXJcIiBbYW5jZXN0b3JJZF09XCJhbmNlc3RvcklkXCJcclxuICAgICAgW3Byb3ZpZGVyXT1cInByb3ZpZGVyXCIgKGRlbGV0ZVN1Y2Nlc3MpPVwib25EZWxldGUoJGV2ZW50KVwiPlxyXG4gICAgPC9hcHAtZG9jdW1lbnRzLWxpc3Q+XHJcblxyXG4gIDwvZGl2PlxyXG48L2FwcC1jYXJkPlxyXG4iXX0=
@@ -62,13 +62,15 @@ export class DocumentsService {
62
62
  throw err;
63
63
  }));
64
64
  }
65
- createVersion(docId, version = 'major', customApi, customParams) {
65
+ createVersion(docId, version = 'major') {
66
66
  return from(this.nuxeoService.nuxeoClient
67
- .operation(customApi ? customApi : DocumentsConstants.operations.createVersion, {
67
+ .operation(DocumentsConstants.operations.createVersion, {
68
68
  url: `${this.environment.nuxeo}${this.environment.customAutomation}`,
69
69
  })
70
70
  .input(docId)
71
- .params(customParams ? customParams : { version, })
71
+ .params({
72
+ version,
73
+ })
72
74
  .execute()).pipe(catchError((err) => {
73
75
  console.log(err);
74
76
  throw err;
@@ -212,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
212
214
  type: Inject,
213
215
  args: ['environment']
214
216
  }] }]; } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFNUQsY0FBYztBQUlkLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBZ0MsRUFDaEMsYUFBK0IsRUFBaUMsV0FBVztRQUYzRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQVJyRixVQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU8vQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLFlBQVk7SUFDZCxDQUFD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O2FBQzFCLFVBQVUsRUFBRTtZQUNiLGdDQUFnQzthQUMvQixLQUFLLGlCQUVGLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSTtZQUM1RCxzQ0FBc0M7WUFDdEMsd0JBQXdCLEVBQUUsVUFBVSxJQUNqQyxNQUFNLEdBRVg7WUFDRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU87U0FDM0QsQ0FDRixDQUNKLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUN2RSxDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzs2R0EzVVUsZ0JBQWdCLDRHQVN3QixhQUFhO2lIQVRyRCxnQkFBZ0IsY0FGZixNQUFNOzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVU2QyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvYWRhcHRlcnMvYWRhcHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzQ29uc3RhbnRzIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RvY3VtZW50cyc7XHJcblxyXG4vKiogQGlnbm9yZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzU2VydmljZSB7XHJcbiAgdmFsdWUgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcclxuICBwdWJsaWMgZ2V0dXBkYXRlZERvY3VtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICByZUZldGNoID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBpbmNvbWluZ0NvbnN0YW50O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuICAgIHByaXZhdGUgZG9jdW1lbnRzQWRhcHRlcjogQWRhcHRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudFxyXG4gICkge1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICB0aGlzLmluY29taW5nQ29uc3RhbnQgPVxyXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UubXlDb25maWd1cmF0aW9uWydjb3JyZXNwb25kYW5jZSddWydpbmNvbWluZyddO1xyXG4gICAgLy8gfSwgMjAwMCk7XHJcbiAgfVxyXG5cclxuICBpbmZvcm1WYWx1ZSh2YWx1ZSkge1xyXG4gICAgbGV0IGFyciA9IFtdO1xyXG4gICAgYXJyLnB1c2godmFsdWUpO1xyXG4gICAgdGhpcy52YWx1ZS5uZXh0KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0RG9jdW1lbnQodWlkLCBoZWFkZXJzPykge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC5oZWFkZXJzKHtcclxuICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogJ2xvY2ssZGM6Y3JlYXRvcixjb3JyOmNjLGN0c19jb21tb246ZGVwYXJ0bWVudCxjb3JyOm93bmVyJyxcclxuICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MscGVybWlzc2lvbnMnLFxyXG4gICAgICAgICAgLi4uaGVhZGVyc1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmZldGNoKHVpZClcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBpIGNvbW1lbnRlZCB0aGlzIHNpbmNlIGkgYW0gYWRhcHRpbmcgaW4gZGF0YSBjb21pbmcgaW5zaWRlIHRoZSBwYWdlIG5vdCBoZXJlXHJcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGRhdGEsIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpO1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhLl9udXhlbztcclxuICAgICAgICBkZWxldGUgZGF0YS5fcmVwb3NpdG9yeTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGdldERvY3VtZW50QXR0YWNobWVudHNXaXRoQWdncmVnYXRpb24ocGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnJlcG9zaXRvcnkoKS5xdWVyeShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwYWdlUHJvdmlkZXI6XHJcbiAgICAgICAgICAgIERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuZG9jdW1lbnRBdHRhY2htZW50c1dpdGhBZ2dyZWdhdGlvblxyXG4gICAgICAgICAgICAgIC5uYW1lLFxyXG4gICAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaGVhZGVyczpcclxuICAgICAgICAgICAgRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5kb2N1bWVudEF0dGFjaG1lbnRzV2l0aEFnZ3JlZ2F0aW9uXHJcbiAgICAgICAgICAgICAgLmhlYWRlcnMsXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwZGF0ZURvY3VtZW50KGRvYywgcGFyYW1zID0ge30pIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5yZXBvc2l0b3J5KClcclxuICAgICAgICAuaGVhZGVycyh7XHJcbiAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgJ2ZldGNoLWRvY3VtZW50JzogJ2xvY2ssY29tbTpjb21taXR0ZWVJZCxjb21tOm1lZXRpbmdJZCcsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudXBkYXRlKGRvYywgcGFyYW1zKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihkYXRhLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGNyZWF0ZVZlcnNpb24oZG9jSWQsIHZlcnNpb24gPSAnbWFqb3InLCBjdXN0b21BcGk/ICwgY3VzdG9tUGFyYW1zPyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKGN1c3RvbUFwaSA/IGN1c3RvbUFwaSA6IERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmNyZWF0ZVZlcnNpb24gLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKGN1c3RvbVBhcmFtcyA/IGN1c3RvbVBhcmFtcyA6IHt2ZXJzaW9uLH0pXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVNZW1vVmVyc2lvbihkb2NJZCwgdmVyc2lvbiA9ICdtYWpvcicpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5jcmVhdGVNZW1vVmVyc2lvbiwge1xyXG4gICAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50Lm51eGVvfSR7dGhpcy5lbnZpcm9ubWVudC5jdXN0b21BdXRvbWF0aW9ufWAsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcyh7XHJcbiAgICAgICAgICB2ZXJzaW9uLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWZXJzaW9ucyhkb2NJZCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmdldFZlcnNpb25zKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIHRoaXMuaW5jb21pbmdDb25zdGFudC5hdHRhY2htZW50cylcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBsb2NrRG9jdW1lbnQoZG9jSWQsIG1vZGUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5sb2NrKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgIG1vZGU6IG1vZGUsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yJyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoaXRlbSkgPT5cclxuICAgICAgICB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKVxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGxvY2tNZW1vRG9jdW1lbnQoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5sb2NrTWVtbylcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcygpXHJcbiAgICAgICAgLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogJ2xvY2ssZGM6Y3JlYXRvcicsXHJcbiAgICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoaXRlbSA9PiAge3JldHVybiBpdGVtfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgdW5sb2NrRG9jdW1lbnQoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy51bmxvY2spXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3InLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChpdGVtKSA9PlxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHMpXHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVubG9ja01lbW9Eb2N1bWVudChkb2NJZCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLnVubG9ja01lbW8pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3InLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKGl0ZW0gPT4gIHtyZXR1cm4gaXRlbX0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVEb2N1bWVudChwYXRoOiBhbnkpIHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnJlcG9zaXRvcnkoKS5kZWxldGUocGF0aCkpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwbG9hZEJhdGNoKGZpbGVzKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgLi4uZmlsZXMubWFwKChmaWxlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbnV4ZW9CbG9iID0gdGhpcy5udXhlb1NlcnZpY2UuY3JlYXRlQmxvYihmaWxlKTtcclxuICAgICAgICByZXR1cm4gZnJvbShcclxuICAgICAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LmJhdGNoVXBsb2FkKCkudXBsb2FkKG51eGVvQmxvYilcclxuICAgICAgICApO1xyXG4gICAgICB9KSxcclxuICAgIF0pLnBpcGUoXHJcbiAgICAgIG1hcCgodXBsb2FkZWRGaWxlczogYW55KSA9PiB7XHJcbiAgICAgICAgZmlsZXMuZm9yRWFjaCgoZmlsZSwgaSkgPT4ge1xyXG4gICAgICAgICAgdXBsb2FkZWRGaWxlc1tpXS50aXRsZSA9IGZpbGUubmFtZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdXBsb2FkZWRGaWxlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGNyZWF0ZURvYyh1cGxvYWRlZEZpbGUsIHBhdGgsIHBhcmFtcywgZG9jUGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGRvYyA9IHtcclxuICAgICAgJ2VudGl0eS10eXBlJzogJ2RvY3VtZW50JyxcclxuICAgICAgbmFtZTogdXBsb2FkZWRGaWxlLnRpdGxlLFxyXG4gICAgICB0eXBlOiAnZmlsZScsXHJcbiAgICAgIC4uLmRvY1BhcmFtcyxcclxuICAgICAgcHJvcGVydGllczoge1xyXG4gICAgICAgIHRpdGxlOiB1cGxvYWRlZEZpbGUudGl0bGUsXHJcbiAgICAgICAgY29udGVudDogdXBsb2FkZWRGaWxlLmJsb2IsXHJcbiAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCByZXBvID0gdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQucmVwb3NpdG9yeSgpO1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHJlcG8uY3JlYXRlKGAke3BhdGh9YCwge1xyXG4gICAgICAgIC4uLmRvYyxcclxuICAgICAgICBwcm9wZXJ0aWVzOiB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRPdXQoXHJcbiAgICAgICAgICBkb2MucHJvcGVydGllcyxcclxuICAgICAgICAgIERvY3VtZW50c0NvbnN0YW50cy5maWVsZHNcclxuICAgICAgICApLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgdXBsb2FkRG9jdW1lbnQoZmlsZSwgcGF0aCwgcGFyYW1zLCBkb2NQYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRCYXRjaChmaWxlKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHVwbG9hZGVkRmlsZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURvYyh1cGxvYWRlZEZpbGUsIHBhdGgsIHBhcmFtcywgZG9jUGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgbWFwKChjcmVhdGVkRG9jdW1lbnQpID0+IGNyZWF0ZWREb2N1bWVudCksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RG9jdW1lbnRzKGFuY2VzdG9ySWQsIHByb3ZpZGVyLCBwYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAucmVwb3NpdG9yeSgpXHJcbiAgICAgICAgLy8gLmVucmljaGVyKCdkb2N1bWVudCcsICdhY2xzJylcclxuICAgICAgICAucXVlcnkoXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHBhZ2VQcm92aWRlcjogRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlcltwcm92aWRlcl0ubmFtZSxcclxuICAgICAgICAgICAgLy8gY3RfYXR0YWNobWVudF9kb2NSZWZJZDogYW5jZXN0b3JJZCxcclxuICAgICAgICAgICAgQ3RzQ29tbW9uX2NvcnJlc3BvbmRlbmNlOiBhbmNlc3RvcklkLFxyXG4gICAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyW3Byb3ZpZGVyXS5oZWFkZXJzLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBkYXRhLmVudHJpZXMubWFwKChpdGVtKSA9PlxyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgdGhpcy5pbmNvbWluZ0NvbnN0YW50LmF0dGFjaG1lbnRzKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUk1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFFNUQsY0FBYztBQUlkLE1BQU0sT0FBTyxnQkFBZ0I7SUFNM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBZ0MsRUFDaEMsYUFBK0IsRUFBaUMsV0FBVztRQUYzRSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFpQyxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQVJyRixVQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUvQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQU8vQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGdCQUFnQjtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLFlBQVk7SUFDZCxDQUFD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NUQsc0NBQXNDO1lBQ3RDLHdCQUF3QixFQUFFLFVBQVUsSUFDakMsTUFBTSxHQUVYO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPO1NBQzNELENBQ0YsQ0FDSixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FDdkUsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7NkdBN1VVLGdCQUFnQiw0R0FTd0IsYUFBYTtpSEFUckQsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVNkMsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZnJvbSwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL2FkYXB0ZXJzL2FkYXB0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c0NvbnN0YW50cyB9IGZyb20gJy4uL2NvbnN0YW50cy9kb2N1bWVudHMnO1xyXG5cclxuLyoqIEBpZ25vcmUgKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3VtZW50c1NlcnZpY2Uge1xyXG4gIHZhbHVlID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcbiAgcHVibGljIGdldHVwZGF0ZWREb2N1bWVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcmVGZXRjaCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgaW5jb21pbmdDb25zdGFudDtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRvY3VtZW50c0FkYXB0ZXI6IEFkYXB0ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLCBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnRcclxuICApIHtcclxuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgdGhpcy5pbmNvbWluZ0NvbnN0YW50ID1cclxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLm15Q29uZmlndXJhdGlvblsnY29ycmVzcG9uZGFuY2UnXVsnaW5jb21pbmcnXTtcclxuICAgIC8vIH0sIDIwMDApO1xyXG4gIH1cclxuXHJcbiAgaW5mb3JtVmFsdWUodmFsdWUpIHtcclxuICAgIGxldCBhcnIgPSBbXTtcclxuICAgIGFyci5wdXNoKHZhbHVlKTtcclxuICAgIHRoaXMudmFsdWUubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldERvY3VtZW50KHVpZCwgaGVhZGVycz8pIHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5yZXBvc2l0b3J5KClcclxuICAgICAgICAuaGVhZGVycyh7XHJcbiAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3IsY29ycjpjYyxjdHNfY29tbW9uOmRlcGFydG1lbnQsY29ycjpvd25lcicsXHJcbiAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzLHBlcm1pc3Npb25zJyxcclxuICAgICAgICAgIC4uLmhlYWRlcnNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5mZXRjaCh1aWQpXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gaSBjb21tZW50ZWQgdGhpcyBzaW5jZSBpIGFtIGFkYXB0aW5nIGluIGRhdGEgY29taW5nIGluc2lkZSB0aGUgcGFnZSBub3QgaGVyZVxyXG4gICAgICAgIC8vIHJldHVybiB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihkYXRhLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKTtcclxuICAgICAgICBkZWxldGUgZGF0YS5fbnV4ZW87XHJcbiAgICAgICAgZGVsZXRlIGRhdGEuX3JlcG9zaXRvcnk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBnZXREb2N1bWVudEF0dGFjaG1lbnRzV2l0aEFnZ3JlZ2F0aW9uKHBhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5yZXBvc2l0b3J5KCkucXVlcnkoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGFnZVByb3ZpZGVyOlxyXG4gICAgICAgICAgICBEb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmRvY3VtZW50QXR0YWNobWVudHNXaXRoQWdncmVnYXRpb25cclxuICAgICAgICAgICAgICAubmFtZSxcclxuICAgICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6XHJcbiAgICAgICAgICAgIERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuZG9jdW1lbnRBdHRhY2htZW50c1dpdGhBZ2dyZWdhdGlvblxyXG4gICAgICAgICAgICAgIC5oZWFkZXJzLFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGRhdGEuZW50cmllcy5tYXAoKGl0ZW0pID0+XHJcbiAgICAgICAgICB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICB1cGRhdGVEb2N1bWVudChkb2MsIHBhcmFtcyA9IHt9KSB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAucmVwb3NpdG9yeSgpXHJcbiAgICAgICAgLmhlYWRlcnMoe1xyXG4gICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICdmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGNvbW06Y29tbWl0dGVlSWQsY29tbTptZWV0aW5nSWQnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnVwZGF0ZShkb2MsIHBhcmFtcylcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oZGF0YSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcyk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBjcmVhdGVWZXJzaW9uKGRvY0lkLCB2ZXJzaW9uID0gJ21ham9yJyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKERvY3VtZW50c0NvbnN0YW50cy5vcGVyYXRpb25zLmNyZWF0ZVZlcnNpb24sIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoe1xyXG4gICAgICAgICAgdmVyc2lvbixcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlTWVtb1ZlcnNpb24oZG9jSWQsIHZlcnNpb24gPSAnbWFqb3InKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMuY3JlYXRlTWVtb1ZlcnNpb24sIHtcclxuICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoe1xyXG4gICAgICAgICAgdmVyc2lvbixcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5leGVjdXRlKClcclxuICAgICkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmVyc2lvbnMoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy5nZXRWZXJzaW9ucylcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcygpXHJcbiAgICAgICAgLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgaGVhZGVyczogRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGRhdGEuZW50cmllcy5tYXAoKGl0ZW0pID0+XHJcbiAgICAgICAgICB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCB0aGlzLmluY29taW5nQ29uc3RhbnQuYXR0YWNobWVudHMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgbG9ja0RvY3VtZW50KGRvY0lkLCBtb2RlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMubG9jaylcclxuICAgICAgICAuaW5wdXQoZG9jSWQpXHJcbiAgICAgICAgLnBhcmFtcyh7XHJcbiAgICAgICAgICBtb2RlOiBtb2RlLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmV4ZWN1dGUoe1xyXG4gICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAuLi5Eb2N1bWVudHNDb25zdGFudHMucGFnZVByb3ZpZGVyLmNvbW1pdHRlZS5oZWFkZXJzLFxyXG4gICAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogJ2xvY2ssZGM6Y3JlYXRvcicsXHJcbiAgICAgICAgICAgICdYLU5YZW5yaWNoZXJzLWRvY3VtZW50JzogJ3RhZ3MnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKGl0ZW0pID0+XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0SW4oaXRlbSwgRG9jdW1lbnRzQ29uc3RhbnRzLmZpZWxkcylcclxuICAgICAgKSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBsb2NrTWVtb0RvY3VtZW50KGRvY0lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMubG9ja01lbW8pXHJcbiAgICAgICAgLmlucHV0KGRvY0lkKVxyXG4gICAgICAgIC5wYXJhbXMoKVxyXG4gICAgICAgIC5leGVjdXRlKHtcclxuICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgLi4uRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlci5jb21taXR0ZWUuaGVhZGVycyxcclxuICAgICAgICAgICAgJ1gtTlhmZXRjaC1kb2N1bWVudCc6ICdsb2NrLGRjOmNyZWF0b3InLFxyXG4gICAgICAgICAgICAnWC1OWGVucmljaGVycy1kb2N1bWVudCc6ICd0YWdzJyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKGl0ZW0gPT4gIHtyZXR1cm4gaXRlbX0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHVubG9ja0RvY3VtZW50KGRvY0lkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudFxyXG4gICAgICAgIC5vcGVyYXRpb24oRG9jdW1lbnRzQ29uc3RhbnRzLm9wZXJhdGlvbnMudW5sb2NrKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yJyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoaXRlbSkgPT5cclxuICAgICAgICB0aGlzLmRvY3VtZW50c0FkYXB0ZXIuYWRhcHRJbihpdGVtLCBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzKVxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1bmxvY2tNZW1vRG9jdW1lbnQoZG9jSWQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLm9wZXJhdGlvbihEb2N1bWVudHNDb25zdGFudHMub3BlcmF0aW9ucy51bmxvY2tNZW1vKVxyXG4gICAgICAgIC5pbnB1dChkb2NJZClcclxuICAgICAgICAucGFyYW1zKClcclxuICAgICAgICAuZXhlY3V0ZSh7XHJcbiAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgIC4uLkRvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXIuY29tbWl0dGVlLmhlYWRlcnMsXHJcbiAgICAgICAgICAgICdYLU5YZmV0Y2gtZG9jdW1lbnQnOiAnbG9jayxkYzpjcmVhdG9yJyxcclxuICAgICAgICAgICAgJ1gtTlhlbnJpY2hlcnMtZG9jdW1lbnQnOiAndGFncycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtID0+ICB7cmV0dXJuIGl0ZW19KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRG9jdW1lbnQocGF0aDogYW55KSB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5yZXBvc2l0b3J5KCkuZGVsZXRlKHBhdGgpKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICB1cGxvYWRCYXRjaChmaWxlcyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIC4uLmZpbGVzLm1hcCgoZmlsZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG51eGVvQmxvYiA9IHRoaXMubnV4ZW9TZXJ2aWNlLmNyZWF0ZUJsb2IoZmlsZSk7XHJcbiAgICAgICAgcmV0dXJuIGZyb20oXHJcbiAgICAgICAgICB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC5iYXRjaFVwbG9hZCgpLnVwbG9hZChudXhlb0Jsb2IpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSksXHJcbiAgICBdKS5waXBlKFxyXG4gICAgICBtYXAoKHVwbG9hZGVkRmlsZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGUsIGkpID0+IHtcclxuICAgICAgICAgIHVwbG9hZGVkRmlsZXNbaV0udGl0bGUgPSBmaWxlLm5hbWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHVwbG9hZGVkRmlsZXM7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBjcmVhdGVEb2ModXBsb2FkZWRGaWxlLCBwYXRoLCBwYXJhbXMsIGRvY1BhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBkb2MgPSB7XHJcbiAgICAgICdlbnRpdHktdHlwZSc6ICdkb2N1bWVudCcsXHJcbiAgICAgIG5hbWU6IHVwbG9hZGVkRmlsZS50aXRsZSxcclxuICAgICAgdHlwZTogJ2ZpbGUnLFxyXG4gICAgICAuLi5kb2NQYXJhbXMsXHJcbiAgICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICB0aXRsZTogdXBsb2FkZWRGaWxlLnRpdGxlLFxyXG4gICAgICAgIGNvbnRlbnQ6IHVwbG9hZGVkRmlsZS5ibG9iLFxyXG4gICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgfSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgcmVwbyA9IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnJlcG9zaXRvcnkoKTtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICByZXBvLmNyZWF0ZShgJHtwYXRofWAsIHtcclxuICAgICAgICAuLi5kb2MsXHJcbiAgICAgICAgcHJvcGVydGllczogdGhpcy5kb2N1bWVudHNBZGFwdGVyLmFkYXB0T3V0KFxyXG4gICAgICAgICAgZG9jLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICBEb2N1bWVudHNDb25zdGFudHMuZmllbGRzXHJcbiAgICAgICAgKSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHVwbG9hZERvY3VtZW50KGZpbGUsIHBhdGgsIHBhcmFtcywgZG9jUGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkQmF0Y2goZmlsZSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKCh1cGxvYWRlZEZpbGUpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEb2ModXBsb2FkZWRGaWxlLCBwYXRoLCBwYXJhbXMsIGRvY1BhcmFtcykucGlwZShcclxuICAgICAgICAgIG1hcCgoY3JlYXRlZERvY3VtZW50KSA9PiBjcmVhdGVkRG9jdW1lbnQpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIGdldERvY3VtZW50cyhhbmNlc3RvcklkLCBwcm92aWRlciwgcGFyYW1zID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgLnJlcG9zaXRvcnkoKVxyXG4gICAgICAgIC8vIC5lbnJpY2hlcignZG9jdW1lbnQnLCAnYWNscycpXHJcbiAgICAgICAgLnF1ZXJ5KFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBwYWdlUHJvdmlkZXI6IERvY3VtZW50c0NvbnN0YW50cy5wYWdlUHJvdmlkZXJbcHJvdmlkZXJdLm5hbWUsXHJcbiAgICAgICAgICAgIC8vIGN0X2F0dGFjaG1lbnRfZG9jUmVmSWQ6IGFuY2VzdG9ySWQsXHJcbiAgICAgICAgICAgIEN0c0NvbW1vbl9jb3JyZXNwb25kZW5jZTogYW5jZXN0b3JJZCxcclxuICAgICAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgaGVhZGVyczogRG9jdW1lbnRzQ29uc3RhbnRzLnBhZ2VQcm92aWRlcltwcm92aWRlcl0uaGVhZGVycyxcclxuICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgZGF0YS5lbnRyaWVzLm1hcCgoaXRlbSkgPT5cclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQWRhcHRlci5hZGFwdEluKGl0ZW0sIHRoaXMuaW5jb21pbmdDb25zdGFudC5hdHRhY2htZW50cylcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19