@colijnit/sharedcomponents 1.0.57 → 1.0.58

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 (157) hide show
  1. package/bundles/colijnit-sharedcomponents.umd.js +3555 -6
  2. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  3. package/colijnit-sharedcomponents.d.ts +17 -0
  4. package/colijnit-sharedcomponents.metadata.json +1 -1
  5. package/esm2015/colijnit-sharedcomponents.js +18 -1
  6. package/esm2015/lib/businessobject/build-images-and-documentation-result.js +2 -0
  7. package/esm2015/lib/businessobject/co-document-right.bo.js +3 -0
  8. package/esm2015/lib/businessobject/drag-drop-container-element.js +2 -0
  9. package/esm2015/lib/businessobject/drag-drop-container.js +7 -0
  10. package/esm2015/lib/components/activity-list/activity-list.component.js +130 -0
  11. package/esm2015/lib/components/activity-list/activity-list.module.js +24 -0
  12. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.component.js +47 -0
  13. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.module.js +20 -0
  14. package/esm2015/lib/components/file-upload/file-upload.component.js +189 -0
  15. package/esm2015/lib/components/file-upload/file-upload.module.js +25 -0
  16. package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +397 -0
  17. package/esm2015/lib/components/file-upload-popup/file-upload-popup.module.js +30 -0
  18. package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +469 -0
  19. package/esm2015/lib/components/files-upload/components/drag-drop-container.component.js +115 -0
  20. package/esm2015/lib/components/files-upload/files-upload.component.js +131 -0
  21. package/esm2015/lib/components/files-upload/files-upload.module.js +47 -0
  22. package/esm2015/lib/components/image-display/image-display.component.js +36 -0
  23. package/esm2015/lib/components/image-display/image-display.module.js +23 -0
  24. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.component.js +89 -0
  25. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.module.js +21 -0
  26. package/esm2015/lib/components/tile-renderer/tile-render.component.js +80 -0
  27. package/esm2015/lib/components/tile-renderer/tile-render.module.js +26 -0
  28. package/esm2015/lib/decorator/input-boolean.decorator.js +34 -0
  29. package/esm2015/lib/enum/document-email-report.enum.js +18 -0
  30. package/esm2015/lib/enum/domain-multiple-name.enum.js +13 -0
  31. package/esm2015/lib/enum/file-type.js +14 -0
  32. package/esm2015/lib/enum/files-upload-config-objects.js +3 -0
  33. package/esm2015/lib/enum/icon.enum.js +7 -1
  34. package/esm2015/lib/enum/internal-param.enum.js +38 -0
  35. package/esm2015/lib/enum/read-write-access-config-names.enum.js +2 -0
  36. package/esm2015/lib/enum/table-name.enum.js +86 -0
  37. package/esm2015/lib/enum/tag-category.enum.js +22 -0
  38. package/esm2015/lib/enum/tags-component-config-names.js +2 -0
  39. package/esm2015/lib/enum/tile-size-type.js +7 -0
  40. package/esm2015/lib/event/co-drag-event.js +2 -0
  41. package/esm2015/lib/event/co-drop-event.js +2 -0
  42. package/esm2015/lib/interface/key-value-pair.js +2 -0
  43. package/esm2015/lib/interface/operation-callback-simple-function.js +4 -0
  44. package/esm2015/lib/model/icon-svg.js +7 -1
  45. package/esm2015/lib/model/tag-tree-item.bo.js +16 -0
  46. package/esm2015/lib/model/tree-object.js +15 -0
  47. package/esm2015/lib/pipe/file-type-image.pipe.js +51 -0
  48. package/esm2015/lib/pipe/master-pipes.js +4 -2
  49. package/esm2015/lib/service/drag-drop.service.js +365 -0
  50. package/esm2015/lib/service/shared-connector.service.js +10 -1
  51. package/esm2015/lib/service/shared.service.js +2 -2
  52. package/esm2015/lib/utils/array-utils.js +202 -0
  53. package/esm2015/lib/utils/check-precision-and-scale-result.js +2 -0
  54. package/esm2015/lib/utils/check-within-stepped-bounds-result.js +2 -0
  55. package/esm2015/lib/utils/co-document-shared-field-logic.js +50 -0
  56. package/esm2015/lib/utils/enum-utils.js +128 -0
  57. package/esm2015/lib/utils/is-nill.function.js +5 -0
  58. package/esm2015/lib/utils/number-utils.js +390 -0
  59. package/esm2015/lib/utils/object-utils.js +278 -0
  60. package/esm2015/lib/utils/ref-code-utils.js +49 -0
  61. package/esm2015/lib/utils/string-utils.js +30 -1
  62. package/esm2015/public-api.js +5 -1
  63. package/fesm2015/colijnit-sharedcomponents.js +3528 -6
  64. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  65. package/lib/businessobject/build-images-and-documentation-result.d.ts +5 -0
  66. package/lib/businessobject/co-document-right.bo.d.ts +6 -0
  67. package/lib/businessobject/drag-drop-container-element.d.ts +6 -0
  68. package/lib/businessobject/drag-drop-container.d.ts +6 -0
  69. package/lib/components/access/read-write-access.scss +25 -0
  70. package/lib/components/access/style/_layout.scss +23 -0
  71. package/lib/components/access/style/_material-definition.scss +12 -0
  72. package/lib/components/access/style/_theme.scss +4 -0
  73. package/lib/components/access/style/material.scss +4 -0
  74. package/lib/components/activity-list/activity-list.component.d.ts +33 -0
  75. package/lib/components/activity-list/activity-list.module.d.ts +2 -0
  76. package/lib/components/activity-list/style/_layout.scss +68 -0
  77. package/lib/components/activity-list/style/_material-definition.scss +0 -0
  78. package/lib/components/activity-list/style/_theme.scss +4 -0
  79. package/lib/components/activity-list/style/material.scss +4 -0
  80. package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +14 -0
  81. package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +2 -0
  82. package/lib/components/app-file-dropzone/style/_layout.scss +61 -0
  83. package/lib/components/app-file-dropzone/style/_material-definition.scss +0 -0
  84. package/lib/components/app-file-dropzone/style/_theme.scss +4 -0
  85. package/lib/components/app-file-dropzone/style/material.scss +4 -0
  86. package/lib/components/file-upload/file-upload.component.d.ts +42 -0
  87. package/lib/components/file-upload/file-upload.module.d.ts +2 -0
  88. package/lib/components/file-upload/style/_layout.scss +59 -0
  89. package/lib/components/file-upload/style/_material-definition.scss +2 -0
  90. package/lib/components/file-upload/style/_theme.scss +4 -0
  91. package/lib/components/file-upload/style/material.scss +4 -0
  92. package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +75 -0
  93. package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +2 -0
  94. package/lib/components/file-upload-popup/style/_layout.scss +48 -0
  95. package/lib/components/file-upload-popup/style/_material-definition.scss +2 -0
  96. package/lib/components/file-upload-popup/style/_theme.scss +5 -0
  97. package/lib/components/file-upload-popup/style/material.scss +4 -0
  98. package/lib/components/files-upload/components/base-file-upload.component.d.ts +98 -0
  99. package/lib/components/files-upload/components/drag-drop-container.component.d.ts +34 -0
  100. package/lib/components/files-upload/files-upload.component.d.ts +32 -0
  101. package/lib/components/files-upload/files-upload.module.d.ts +2 -0
  102. package/lib/components/files-upload/style/_layout.scss +49 -0
  103. package/lib/components/files-upload/style/_material-definition.scss +0 -0
  104. package/lib/components/files-upload/style/_theme.scss +5 -0
  105. package/lib/components/files-upload/style/material.scss +4 -0
  106. package/lib/components/image-display/image-display.component.d.ts +14 -0
  107. package/lib/components/image-display/image-display.module.d.ts +2 -0
  108. package/lib/components/image-display/style/_layout.scss +56 -0
  109. package/lib/components/image-display/style/_material-definition.scss +4 -0
  110. package/lib/components/image-display/style/_theme.scss +6 -0
  111. package/lib/components/image-display/style/material.scss +3 -0
  112. package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +27 -0
  113. package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +2 -0
  114. package/lib/components/multi-property-toggler/style/_layout.scss +24 -0
  115. package/lib/components/multi-property-toggler/style/_material-definition.scss +0 -0
  116. package/lib/components/multi-property-toggler/style/_theme.scss +4 -0
  117. package/lib/components/multi-property-toggler/style/material.scss +4 -0
  118. package/lib/components/tile-renderer/style/_layout.scss +90 -0
  119. package/lib/components/tile-renderer/style/_material-definition.scss +0 -0
  120. package/lib/components/tile-renderer/style/_theme.scss +4 -0
  121. package/lib/components/tile-renderer/style/material.scss +4 -0
  122. package/lib/components/tile-renderer/tile-render.component.d.ts +31 -0
  123. package/lib/components/tile-renderer/tile-render.module.d.ts +2 -0
  124. package/lib/decorator/input-boolean.decorator.d.ts +8 -0
  125. package/lib/enum/document-email-report.enum.d.ts +15 -0
  126. package/lib/enum/domain-multiple-name.enum.d.ts +10 -0
  127. package/lib/enum/file-type.d.ts +7 -0
  128. package/lib/enum/files-upload-config-objects.d.ts +22 -0
  129. package/lib/enum/icon.enum.d.ts +6 -0
  130. package/lib/enum/internal-param.enum.d.ts +34 -0
  131. package/lib/enum/read-write-access-config-names.enum.d.ts +4 -0
  132. package/lib/enum/table-name.enum.d.ts +84 -0
  133. package/lib/enum/tag-category.enum.d.ts +19 -0
  134. package/lib/enum/tags-component-config-names.d.ts +4 -0
  135. package/lib/enum/tile-size-type.d.ts +4 -0
  136. package/lib/event/co-drag-event.d.ts +5 -0
  137. package/lib/event/co-drop-event.d.ts +8 -0
  138. package/lib/interface/key-value-pair.d.ts +4 -0
  139. package/lib/interface/operation-callback-simple-function.d.ts +4 -0
  140. package/lib/model/tag-tree-item.bo.d.ts +18 -0
  141. package/lib/model/tree-object.d.ts +8 -0
  142. package/lib/pipe/file-type-image.pipe.d.ts +12 -0
  143. package/lib/service/drag-drop.service.d.ts +86 -0
  144. package/lib/service/shared-connector.service.d.ts +2 -0
  145. package/lib/style/_variables.scss +1 -1
  146. package/lib/utils/array-utils.d.ts +63 -0
  147. package/lib/utils/check-precision-and-scale-result.d.ts +4 -0
  148. package/lib/utils/check-within-stepped-bounds-result.d.ts +8 -0
  149. package/lib/utils/co-document-shared-field-logic.d.ts +7 -0
  150. package/lib/utils/enum-utils.d.ts +31 -0
  151. package/lib/utils/is-nill.function.d.ts +1 -0
  152. package/lib/utils/number-utils.d.ts +125 -0
  153. package/lib/utils/object-utils.d.ts +40 -0
  154. package/lib/utils/ref-code-utils.d.ts +10 -0
  155. package/lib/utils/string-utils.d.ts +16 -0
  156. package/package.json +1 -1
  157. package/public-api.d.ts +4 -0
@@ -0,0 +1,397 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
3
+ import { FormComponent } from '@colijnit/corecomponents_v12';
4
+ import { DocumentPublication } from "@colijnit/articleapi/build/enum/refcode/document-publication.enum";
5
+ import { ObjectRightType } from "@colijnit/sharedapi/build/enum/object-right-type.enum";
6
+ import { PromptService } from "@colijnit/corecomponents_v12";
7
+ import { BusinessObjectFactory } from "@colijnit/ioneconnector/build/service/business-object-factory";
8
+ import { InputBoolean } from "../../decorator/input-boolean.decorator";
9
+ import { CoDocument } from "@colijnit/mainapi/build/model/co-document";
10
+ import { CoDocumentRight } from "@colijnit/mainapi/build/model/co-document-right";
11
+ import { FileType } from "../../enum/file-type";
12
+ import { DocumentEmailReport } from "../../enum/document-email-report.enum";
13
+ import { DomainMultipleName } from "../../enum/domain-multiple-name.enum";
14
+ import { FileTypeImagePipe } from "../../pipe/file-type-image.pipe";
15
+ import { FileUtils } from "@colijnit/mainapi/build/utils/file-utils";
16
+ // Component that shows a popup when the user wants to upload a CoDocument
17
+ export class FileUploadPopupComponent {
18
+ constructor(
19
+ //private _workabilityService: AppWorkabilityService,
20
+ _promptService, _fileTypeImgPipe) {
21
+ this._promptService = _promptService;
22
+ this._fileTypeImgPipe = _fileTypeImgPipe;
23
+ this.useWithoutSettingProps = false;
24
+ this.hasPublicAccessVisible = false;
25
+ this.showDocumentReportPicker = true;
26
+ this.displayReadWriteAccess = true;
27
+ this.documentChangeEvent = new EventEmitter();
28
+ this.popupCloseEvent = new EventEmitter();
29
+ this.documentPublication = DocumentPublication;
30
+ this.documentEmailReports = DocumentEmailReport;
31
+ this.domain = DomainMultipleName;
32
+ this.fileTypes = FileType;
33
+ this.hideCancel = false;
34
+ this.storeGroups = [];
35
+ this.userGroupsForWrite = [];
36
+ this.userGroupsForRead = [];
37
+ this.documentTags = [];
38
+ this._filesUploadConfigObjects = {}; // Instantiate with empty object to avoid nullpointers in the template
39
+ this._boFactory = new BusinessObjectFactory();
40
+ this._readonly = false;
41
+ }
42
+ set documentUnderEdit(doc) {
43
+ this._documentUnderEdit = doc ? this._boFactory.makeWithRawBackendData(CoDocument, doc) : undefined;
44
+ }
45
+ get documentUnderEdit() {
46
+ return this._documentUnderEdit;
47
+ }
48
+ set readonly(value) {
49
+ this._readonly = value;
50
+ if (value) {
51
+ //this._toastService.spawnToast("MESSAGE_DOCUMENT_LOCK_SINGLE");
52
+ }
53
+ }
54
+ set filesUploadConfigObjects(value) {
55
+ this._filesUploadConfigObjects = value;
56
+ }
57
+ showClass() {
58
+ return true;
59
+ }
60
+ get showReadWriteAccess() {
61
+ //TODO get userrights
62
+ return true;
63
+ //return this._userRights.workabilityParameterEnabled && this.displayReadWriteAccess;
64
+ }
65
+ get filesUploadConfigObjects() {
66
+ return this._filesUploadConfigObjects;
67
+ }
68
+ get isWorkability() {
69
+ //TODO fix workability
70
+ return false;
71
+ //return this._workabilityService.workabilitySystemEnabled;
72
+ }
73
+ get docUnderEditIsReadOnly() {
74
+ return this.documentUnderEdit.readonly || this._readonly;
75
+ }
76
+ get thumbnail() {
77
+ if (this.documentUnderEdit.isImageDocument()) {
78
+ return this._thumbnail;
79
+ }
80
+ return this._fileTypeImgPipe.transform(this.documentUnderEdit.fileTypeInternal);
81
+ }
82
+ get popupHeader() {
83
+ if (this.documentUnderEdit && this.documentUnderEdit.isImageDocument()) {
84
+ return "IMAGE";
85
+ }
86
+ else {
87
+ return "DOCUMENT";
88
+ }
89
+ }
90
+ get publicationConfigName() {
91
+ if (this.filesUploadConfigObjects) {
92
+ return this.documentUnderEdit.isImageDocument() ?
93
+ this.filesUploadConfigObjects.ImageDocumentPublishTo :
94
+ this.filesUploadConfigObjects.TextDocumentPublishTo;
95
+ }
96
+ else {
97
+ return; // No configname found
98
+ }
99
+ }
100
+ get tagsConfigName() {
101
+ if (this.filesUploadConfigObjects) {
102
+ return this.documentUnderEdit.isImageDocument() ?
103
+ this.filesUploadConfigObjects.TagsImageConfigNames :
104
+ this.filesUploadConfigObjects.TagsTextConfigNames;
105
+ }
106
+ else {
107
+ return; // No configname found
108
+ }
109
+ }
110
+ ngOnInit() {
111
+ this.loadCollection();
112
+ if (this.documentUnderEdit.isImageDocument()) {
113
+ this._thumbnail = this.documentUnderEdit.documentBodyAsDataUri;
114
+ }
115
+ }
116
+ loadCollection() {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ //this.documentTags = await this._tagsRepo.getJoinedTags(this.tagReferenceTable, this.documentKey);
119
+ //this.storeGroups = await this._baseDataRepo.getStoreGroupList();
120
+ });
121
+ }
122
+ onPreviewClick() {
123
+ if (this.documentUnderEdit.isImageDocument()) { //preview image
124
+ this._promptService.showImage(this.documentUnderEdit.documentBodyAsDataUri, "Preview");
125
+ }
126
+ else { //download document
127
+ try {
128
+ FileUtils.DownloadFromDataUri(this.documentUnderEdit.bodyAsDataUri, this.documentUnderEdit.fileName);
129
+ }
130
+ catch (error) {
131
+ }
132
+ }
133
+ }
134
+ saveDocumentUnderEditRights() {
135
+ this.documentUnderEdit.rights = [];
136
+ const forWriteLength = this.userGroupsForWrite.length;
137
+ for (let i = 0; i < forWriteLength; i++) {
138
+ const rights = new CoDocumentRight();
139
+ rights.userGroupId = this.userGroupsForWrite[i];
140
+ rights.rightLevel = ObjectRightType.ReadWrite;
141
+ this.documentUnderEdit.rights.push(rights);
142
+ }
143
+ const forReadLength = this.userGroupsForRead.length;
144
+ for (let i = 0; i < forReadLength; i++) {
145
+ const rights = new CoDocumentRight();
146
+ rights.userGroupId = this.userGroupsForRead[i];
147
+ rights.rightLevel = ObjectRightType.ReadOnly;
148
+ this.documentUnderEdit.rights.push(rights);
149
+ }
150
+ }
151
+ onPopupOkClick() {
152
+ if (this.form) {
153
+ this.form.submit();
154
+ }
155
+ }
156
+ handlePropertyChange(refSumOfEnabledItems) {
157
+ this._publicationNumber = refSumOfEnabledItems;
158
+ }
159
+ handleReportsPropertyChange(refSumOfEnabledItems) {
160
+ this._reportsNumber = refSumOfEnabledItems;
161
+ }
162
+ onValidSubmit() {
163
+ return __awaiter(this, void 0, void 0, function* () {
164
+ this._publicationNumber ? this.documentUnderEdit.publication = this._publicationNumber : this.documentUnderEdit.publication = 0;
165
+ this._reportsNumber ? this.documentUnderEdit.reports = this._reportsNumber : this.documentUnderEdit.reports = 0;
166
+ this.documentUnderEdit.retailFormulas = this.storeGroupIds;
167
+ this.saveDocumentUnderEditRights();
168
+ this.documentChangeEvent.emit(this.documentUnderEdit);
169
+ this.onPopupClose();
170
+ });
171
+ }
172
+ onPopupCancelClick() {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ this.onPopupClose();
175
+ });
176
+ }
177
+ onPopupClose() {
178
+ this.userGroupsForWrite.length = 0;
179
+ this.userGroupsForRead.length = 0;
180
+ this.documentUnderEdit = undefined;
181
+ this.popupCloseEvent.next();
182
+ }
183
+ }
184
+ FileUploadPopupComponent.decorators = [
185
+ { type: Component, args: [{
186
+ selector: "co-file-upload-popup",
187
+ template: `
188
+ <co-dialog *ngIf="!useWithoutSettingProps && documentUnderEdit" cssId="popup_files_upload_content"
189
+ [headerTemplate]="headerTemplate" contentSize noClickOutside
190
+ (close)="onPopupClose()">
191
+ <div class="co-dialog-wrapper">
192
+ <div class="file-upload-form-wrapper" fxLayout="column" fxLayoutGap="10px">
193
+ <co-form class="narrow-scrollbar" (validSubmit)="onValidSubmit()">
194
+ <div class="horizontal-layout-column">
195
+ <div class="document-thumb column-left" *ngIf="!addDocumentByUrl">
196
+ <a (click)="onPreviewClick()"><img [src]="thumbnail"/></a>
197
+ </div>
198
+ <div class="column-right">
199
+ <co-input-text
200
+ [model]="documentUnderEdit.fileSize"
201
+ [screenConfigurationObject]="documentUnderEdit.isImageDocument() ?
202
+ filesUploadConfigObjects?.ImageDocumentFileSize :
203
+ filesUploadConfigObjects?.TextDocumentFileSize"
204
+ [placeholder]="'SIZE' | localize"
205
+ forceReadonly
206
+ noValidation>
207
+ </co-input-text>
208
+ <ng-container *ngIf="documentUnderEdit.isImageDocument()">
209
+ <co-input-text [placeholder]="'DIMENSIONS' | localize"
210
+ [model]="documentUnderEdit.imageDimensions"
211
+ [screenConfigurationObject]="filesUploadConfigObjects?.ImageDocumentDimensions"
212
+ forceReadonly noValidation></co-input-text>
213
+ </ng-container>
214
+ <co-input-text
215
+ [(model)]="documentUnderEdit.title"
216
+ [screenConfigurationObject]="documentUnderEdit.isImageDocument() ?
217
+ filesUploadConfigObjects?.ImageDocumentTitle :
218
+ filesUploadConfigObjects?.TextDocumentTitle"
219
+ [placeholder]="'TITLE2' | localize"
220
+ noValidation forceReadonly></co-input-text>
221
+ </div>
222
+ </div>
223
+
224
+ <div>
225
+ <!--<sc-tags
226
+ [tagCategory]="tagCategory"
227
+ [readonly]="docUnderEditIsReadOnly"-->
228
+
229
+ <!-- ></sc-tags>--><!-- [myCfgNames]="tagsConfigName" | [(joinedTags)]="this.documentUnderEdit.tags"-->
230
+ </div>
231
+ <!--<div>
232
+ <read-write-access *ngIf="showReadWriteAccess"
233
+ [readWriteCfgNames]="filesUploadConfigObjects?.readWriteAccess"
234
+ [layoutHorizontal]="true"
235
+ [medicalUserGroups]="medicalUserGroups"
236
+ [(userGroupsForWrite)]="userGroupsForWrite"
237
+ [(userGroupsForRead)]="userGroupsForRead"
238
+ [readonly]="docUnderEditIsReadOnly"
239
+ ></read-write-access>
240
+ </div>-->
241
+ <!--<div class="horizontal-layout-column">
242
+ <ng-container *ngIf="addDocumentByUrl">
243
+ <co-input-text required [placeholder]="'URL' | localize" [(model)]="documentUnderEdit.filePath"
244
+ [readonly]="docUnderEditIsReadOnly"></co-input-text>
245
+ </ng-container>
246
+ </div>-->
247
+ <div class="horizontal-layout-column">
248
+ <div class="column-left">
249
+ <co-input-text [placeholder]="'DESCRIPTION' | localize" [(model)]="documentUnderEdit.description"
250
+ [screenConfigurationObject]="documentUnderEdit.isImageDocument() ?
251
+ filesUploadConfigObjects?.ImageDocumentDescription :
252
+ filesUploadConfigObjects?.TextDocumentDescription"
253
+ [readonly]="docUnderEditIsReadOnly"
254
+ ></co-input-text>
255
+
256
+ </div>
257
+ <!--<div *ngIf="hasPublicAccessVisible" class="column-right">
258
+ <input-switcher-yes-no label="PUBLIC_ACCESS"
259
+ [(model)]="documentUnderEdit.hasPublicAccess"
260
+ [readonly]="docUnderEditIsReadOnly"
261
+ ></input-switcher-yes-no>
262
+ </div>-->
263
+ </div>
264
+ <div class="horizontal-layout-column">
265
+ <ng-container *ngIf="!documentUnderEdit.isImageDocument()">
266
+ <div class="column-left">
267
+ <!-- <input-switcher-yes-no label="DOWNLOADABLE"
268
+ [(model)]="documentUnderEdit.downloadable"
269
+ [cfgName]="filesUploadConfigObjects?.TextDocumentDownloadable"
270
+ [readonly]="docUnderEditIsReadOnly"
271
+ ></input-switcher-yes-no>-->
272
+ </div>
273
+ </ng-container>
274
+ </div>
275
+ <div class="horizontal-layout-column">
276
+ <ng-container *ngIf="fileType === fileTypes.ThreeDFile">
277
+ <div class="column-left">
278
+ <!-- <input-switcher-yes-no label="ALSO_AS_USDZ"
279
+ [(model)]="documentUnderEdit.convertToUSDZ"
280
+ [readonly]="docUnderEditIsReadOnly"
281
+ ></input-switcher-yes-no>-->
282
+ </div>
283
+ </ng-container>
284
+ </div>
285
+ <div class="horizontal-layout-column">
286
+ <ng-container *ngIf="documentUnderEdit.isImageDocument()">
287
+ <div class="column-left"><!--
288
+ <input-switcher-yes-no label="ATTACH_TO_NOTIFICATION"
289
+ [(model)]="documentUnderEdit.attachToNotification"
290
+ [cfgName]="filesUploadConfigObjects?.ImageDocumentAttachNotification"
291
+ [readonly]="docUnderEditIsReadOnly"
292
+ ></input-switcher-yes-no>-->
293
+ </div>
294
+ <div class="column-right"><!--
295
+ <image-type-select
296
+ [cfgName]="filesUploadConfigObjects?.ImageDocumentDisplayType"
297
+ [(selectedModelId)]="this.documentUnderEdit.imageDisplayKind"
298
+ [readonly]="docUnderEditIsReadOnly"
299
+ label="DISPLAY_TYPE"
300
+ ></image-type-select>-->
301
+ </div>
302
+ </ng-container>
303
+ </div>
304
+ <div *ngIf="!isWorkability">
305
+ <!-- <multiple-property-toggler *ngIf="!showDocumentReportPicker"
306
+ [propertyNamesToToggle]="documentPublication"
307
+ [(enableditems)]="this.documentUnderEdit.publication"
308
+ (onPropertyItemChange)="handlePropertyChange($event)"
309
+ label="PUBLISH_TO"
310
+ [readonly]="docUnderEditIsReadOnly"
311
+ ></multiple-property-toggler>-->
312
+ <co-multiple-property-toggler *ngIf="showDocumentReportPicker"
313
+ [propertyNamesToToggle]="documentEmailReports"
314
+ [(enableditems)]="documentUnderEdit.reports"
315
+ (onPropertyItemChange)="handleReportsPropertyChange($event)"
316
+ label="REPORTS_TO_ATTACH_TO"
317
+ [readonly]="docUnderEditIsReadOnly"
318
+ ></co-multiple-property-toggler>
319
+
320
+ <!--<ng-container *ngIf="documentUnderEdit.isImageDocument()"
321
+ [templateWrapper]="templateImage"></ng-container>-->
322
+ </div>
323
+ </co-form>
324
+ <div class="ok-cancel-buttons">
325
+ <co-button [disabled]="docUnderEditIsReadOnly" [textContent]="'OK' | localize" (click)="onPopupOkClick()"></co-button>
326
+ <co-button *ngIf="hideCancel" [textContent]="'STICKER' | localize" (click)="onPopupCancelClick()"></co-button>
327
+ </div>
328
+ <!-- <default-ok-cancel-buttons class="justify-center"
329
+ [okDisabled]="docUnderEditIsReadOnly"
330
+ [hideCancel]="hideCancel"
331
+ (okClick)="onPopupOkClick()"
332
+ (cancelClick)="onPopupCancelClick()">
333
+ </default-ok-cancel-buttons>-->
334
+ </div>
335
+ </div>
336
+ </co-dialog>
337
+ <ng-template #headerTemplate>
338
+ <div [textContent]="popupHeader | localize"></div>
339
+ </ng-template>
340
+ <ng-template #templateImage *ngIf="!isWorkability">
341
+ <!-- <div class="column-right">
342
+ <input-lov-multi-select
343
+ [cfgName]="filesUploadConfigObjects.ImageDocumentStoreGroups"
344
+ [(selectedModelIds)]="storeGroupIds"
345
+ [collection]="storeGroups"
346
+ [readonly]="docUnderEditIsReadOnly"
347
+ descriptionField="description"
348
+ doNotLoadCollection
349
+ customWidth
350
+ label="RETAIL_FORMULAS"
351
+ ></input-lov-multi-select>
352
+ </div>-->
353
+ </ng-template>
354
+ `,
355
+ encapsulation: ViewEncapsulation.None
356
+ },] }
357
+ ];
358
+ FileUploadPopupComponent.ctorParameters = () => [
359
+ { type: PromptService },
360
+ { type: FileTypeImagePipe }
361
+ ];
362
+ FileUploadPopupComponent.propDecorators = {
363
+ form: [{ type: ViewChild, args: [FormComponent,] }],
364
+ useWithoutSettingProps: [{ type: Input }],
365
+ hasPublicAccessVisible: [{ type: Input }],
366
+ showDocumentReportPicker: [{ type: Input }],
367
+ documentUnderEdit: [{ type: Input }],
368
+ readonly: [{ type: Input }],
369
+ filesUploadConfigObjects: [{ type: Input }],
370
+ tagCategory: [{ type: Input }],
371
+ medicalUserGroups: [{ type: Input }],
372
+ displayReadWriteAccess: [{ type: Input }],
373
+ tagReferenceTable: [{ type: Input }],
374
+ documentKey: [{ type: Input }],
375
+ documentTable: [{ type: Input }],
376
+ fileType: [{ type: Input }],
377
+ addDocumentByUrl: [{ type: Input }],
378
+ documentChangeEvent: [{ type: Output }],
379
+ popupCloseEvent: [{ type: Output }],
380
+ showClass: [{ type: HostBinding, args: ['class.co-file-upload-popup',] }]
381
+ };
382
+ __decorate([
383
+ InputBoolean()
384
+ ], FileUploadPopupComponent.prototype, "useWithoutSettingProps", void 0);
385
+ __decorate([
386
+ InputBoolean()
387
+ ], FileUploadPopupComponent.prototype, "hasPublicAccessVisible", void 0);
388
+ __decorate([
389
+ InputBoolean()
390
+ ], FileUploadPopupComponent.prototype, "showDocumentReportPicker", void 0);
391
+ __decorate([
392
+ InputBoolean()
393
+ ], FileUploadPopupComponent.prototype, "medicalUserGroups", void 0);
394
+ __decorate([
395
+ InputBoolean()
396
+ ], FileUploadPopupComponent.prototype, "addDocumentByUrl", void 0);
397
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtcG9wdXAvZmlsZS11cGxvYWQtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBRXRHLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDcEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saURBQWlELENBQUM7QUFJaEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQStLbkUsMEVB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QkFBaUIsR0FBRyxTQUFTLENBQUM7UUFFbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs7WUFwYUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F1S1Q7Z0JBQ0EsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDekM7OztZQTVMTyxhQUFhO1lBYWIsaUJBQWlCOzs7bUJBa0xwQixTQUFTLFNBQUMsYUFBYTtxQ0FHdkIsS0FBSztxQ0FJTCxLQUFLO3VDQUlMLEtBQUs7Z0NBTUwsS0FBSzt1QkFTTCxLQUFLO3VDQVNMLEtBQUs7MEJBS0wsS0FBSztnQ0FHTCxLQUFLO3FDQUlMLEtBQUs7Z0NBR0wsS0FBSzswQkFHTCxLQUFLOzRCQUdMLEtBQUs7dUJBR0wsS0FBSzsrQkFHTCxLQUFLO2tDQUlMLE1BQU07OEJBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsNEJBQTRCOztBQW5FekM7SUFEQyxZQUFZLEVBQUU7d0VBQ2dDO0FBSS9DO0lBREMsWUFBWSxFQUFFO3dFQUNnQztBQUsvQztJQUZDLFlBQVksRUFBRTswRUFFaUM7QUErQmhEO0lBREMsWUFBWSxFQUFFO21FQUNtQjtBQW1CbEM7SUFEQyxZQUFZLEVBQUU7a0VBQ2tCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7RG9jdW1lbnRQdWJsaWNhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL2VudW0vcmVmY29kZS9kb2N1bWVudC1wdWJsaWNhdGlvbi5lbnVtXCI7XHJcbmltcG9ydCB7U3RvcmVHcm91cH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3N0b3JlLWdyb3VwLmJvXCI7XHJcbmltcG9ydCB7T2JqZWN0UmlnaHRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9lbnVtL29iamVjdC1yaWdodC10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtQcm9tcHRTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnRcIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50UmlnaHR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudC1yaWdodFwiO1xyXG5pbXBvcnQge1RhZ0NhdGVnb3J5fSBmcm9tIFwiLi4vLi4vZW51bS90YWctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0c30gZnJvbSBcIi4uLy4uL2VudW0vZmlsZXMtdXBsb2FkLWNvbmZpZy1vYmplY3RzXCI7XHJcbmltcG9ydCB7VGFibGVOYW1lfSBmcm9tIFwiLi4vLi4vZW51bS90YWJsZS1uYW1lLmVudW1cIjtcclxuaW1wb3J0IHtGaWxlVHlwZX0gZnJvbSBcIi4uLy4uL2VudW0vZmlsZS10eXBlXCI7XHJcbmltcG9ydCB7RG9jdW1lbnRFbWFpbFJlcG9ydH0gZnJvbSBcIi4uLy4uL2VudW0vZG9jdW1lbnQtZW1haWwtcmVwb3J0LmVudW1cIjtcclxuaW1wb3J0IHtUYWdzQ29tcG9uZW50Q29uZmlnTmFtZXN9IGZyb20gXCIuLi8uLi9lbnVtL3RhZ3MtY29tcG9uZW50LWNvbmZpZy1uYW1lc1wiO1xyXG5pbXBvcnQge0RvbWFpbk11bHRpcGxlTmFtZX0gZnJvbSBcIi4uLy4uL2VudW0vZG9tYWluLW11bHRpcGxlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge1RhZ1RyZWVJdGVtfSBmcm9tIFwiLi4vLi4vbW9kZWwvdGFnLXRyZWUtaXRlbS5ib1wiO1xyXG5pbXBvcnQge0ZpbGVUeXBlSW1hZ2VQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZS9maWxlLXR5cGUtaW1hZ2UucGlwZVwiO1xyXG5pbXBvcnQge0ZpbGVVdGlsc30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL3V0aWxzL2ZpbGUtdXRpbHNcIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWZpbGUtdXBsb2FkLXBvcHVwXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCIhdXNlV2l0aG91dFNldHRpbmdQcm9wcyAmJiBkb2N1bWVudFVuZGVyRWRpdFwiIGNzc0lkPVwicG9wdXBfZmlsZXNfdXBsb2FkX2NvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCIgY29udGVudFNpemUgbm9DbGlja091dHNpZGVcclxuICAgICAgICAgICAgICAgICAgIChjbG9zZSk9XCJvblBvcHVwQ2xvc2UoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXVwbG9hZC1mb3JtLXdyYXBwZXJcIiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMTBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1mb3JtIGNsYXNzPVwibmFycm93LXNjcm9sbGJhclwiICh2YWxpZFN1Ym1pdCk9XCJvblZhbGlkU3VibWl0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtbGF5b3V0LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXRodW1iIGNvbHVtbi1sZWZ0XCIgKm5nSWY9XCIhYWRkRG9jdW1lbnRCeVVybFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJvblByZXZpZXdDbGljaygpXCI+PGltZyBbc3JjXT1cInRodW1ibmFpbFwiLz48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImRvY3VtZW50VW5kZXJFZGl0LmZpbGVTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImRvY3VtZW50VW5kZXJFZGl0LmlzSW1hZ2VEb2N1bWVudCgpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50RmlsZVNpemUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LlRleHREb2N1bWVudEZpbGVTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0laRScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZVJlYWRvbmx5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub1ZhbGlkYXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW3BsYWNlaG9sZGVyXT1cIidESU1FTlNJT05TJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImRvY3VtZW50VW5kZXJFZGl0LmltYWdlRGltZW5zaW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cz8uSW1hZ2VEb2N1bWVudERpbWVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZVJlYWRvbmx5IG5vVmFsaWRhdGlvbj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY3VtZW50VW5kZXJFZGl0LnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImRvY3VtZW50VW5kZXJFZGl0LmlzSW1hZ2VEb2N1bWVudCgpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50VGl0bGUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LlRleHREb2N1bWVudFRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVElUTEUyJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vVmFsaWRhdGlvbiBmb3JjZVJlYWRvbmx5PjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS08c2MtdGFnc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhZ0NhdGVnb3J5XT1cInRhZ0NhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCItLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPjwvc2MtdGFncz4tLT48IS0tIFtteUNmZ05hbWVzXT1cInRhZ3NDb25maWdOYW1lXCIgfCBbKGpvaW5lZFRhZ3MpXT1cInRoaXMuZG9jdW1lbnRVbmRlckVkaXQudGFnc1wiLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVhZC13cml0ZS1hY2Nlc3MgKm5nSWY9XCJzaG93UmVhZFdyaXRlQWNjZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZFdyaXRlQ2ZnTmFtZXNdPVwiZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5yZWFkV3JpdGVBY2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYXlvdXRIb3Jpem9udGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttZWRpY2FsVXNlckdyb3Vwc109XCJtZWRpY2FsVXNlckdyb3Vwc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh1c2VyR3JvdXBzRm9yV3JpdGUpXT1cInVzZXJHcm91cHNGb3JXcml0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh1c2VyR3JvdXBzRm9yUmVhZCldPVwidXNlckdyb3Vwc0ZvclJlYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3JlYWQtd3JpdGUtYWNjZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLTxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWxheW91dC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGREb2N1bWVudEJ5VXJsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgcmVxdWlyZWQgW3BsYWNlaG9sZGVyXT1cIidVUkwnIHwgbG9jYWxpemVcIiBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5maWxlUGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWxheW91dC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFtwbGFjZWhvbGRlcl09XCInREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIiBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LkltYWdlRG9jdW1lbnREZXNjcmlwdGlvbiA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cz8uVGV4dERvY3VtZW50RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLTxkaXYgKm5nSWY9XCJoYXNQdWJsaWNBY2Nlc3NWaXNpYmxlXCIgY2xhc3M9XCJjb2x1bW4tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQtc3dpdGNoZXIteWVzLW5vIGxhYmVsPVwiUFVCTElDX0FDQ0VTU1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5oYXNQdWJsaWNBY2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2lucHV0LXN3aXRjaGVyLXllcy1ubz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtbGF5b3V0LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0LXN3aXRjaGVyLXllcy1ubyBsYWJlbD1cIkRPV05MT0FEQUJMRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiZG9jdW1lbnRVbmRlckVkaXQuZG93bmxvYWRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2ZnTmFtZV09XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LlRleHREb2N1bWVudERvd25sb2FkYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9pbnB1dC1zd2l0Y2hlci15ZXMtbm8+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob3Jpem9udGFsLWxheW91dC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWxlVHlwZSA9PT0gZmlsZVR5cGVzLlRocmVlREZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dC1zd2l0Y2hlci15ZXMtbm8gbGFiZWw9XCJBTFNPX0FTX1VTRFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImRvY3VtZW50VW5kZXJFZGl0LmNvbnZlcnRUb1VTRFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW5wdXQtc3dpdGNoZXIteWVzLW5vPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1sYXlvdXQtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLWxlZnRcIj48IS0tXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dC1zd2l0Y2hlci15ZXMtbm8gbGFiZWw9XCJBVFRBQ0hfVE9fTk9USUZJQ0FUSU9OXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJkb2N1bWVudFVuZGVyRWRpdC5hdHRhY2hUb05vdGlmaWNhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NmZ05hbWVdPVwiZmlsZXNVcGxvYWRDb25maWdPYmplY3RzPy5JbWFnZURvY3VtZW50QXR0YWNoTm90aWZpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2lucHV0LXN3aXRjaGVyLXllcy1ubz4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLXJpZ2h0XCI+PCEtLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1hZ2UtdHlwZS1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2ZnTmFtZV09XCJmaWxlc1VwbG9hZENvbmZpZ09iamVjdHM/LkltYWdlRG9jdW1lbnREaXNwbGF5VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhzZWxlY3RlZE1vZGVsSWQpXT1cInRoaXMuZG9jdW1lbnRVbmRlckVkaXQuaW1hZ2VEaXNwbGF5S2luZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRElTUExBWV9UWVBFXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvaW1hZ2UtdHlwZS1zZWxlY3Q+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNXb3JrYWJpbGl0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxtdWx0aXBsZS1wcm9wZXJ0eS10b2dnbGVyICpuZ0lmPVwiIXNob3dEb2N1bWVudFJlcG9ydFBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0eU5hbWVzVG9Ub2dnbGVdPVwiZG9jdW1lbnRQdWJsaWNhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoZW5hYmxlZGl0ZW1zKV09XCJ0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnB1YmxpY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uUHJvcGVydHlJdGVtQ2hhbmdlKT1cImhhbmRsZVByb3BlcnR5Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlBVQkxJU0hfVE9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9tdWx0aXBsZS1wcm9wZXJ0eS10b2dnbGVyPi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLW11bHRpcGxlLXByb3BlcnR5LXRvZ2dsZXIgKm5nSWY9XCJzaG93RG9jdW1lbnRSZXBvcnRQaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcGVydHlOYW1lc1RvVG9nZ2xlXT1cImRvY3VtZW50RW1haWxSZXBvcnRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhlbmFibGVkaXRlbXMpXT1cImRvY3VtZW50VW5kZXJFZGl0LnJlcG9ydHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25Qcm9wZXJ0eUl0ZW1DaGFuZ2UpPVwiaGFuZGxlUmVwb3J0c1Byb3BlcnR5Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlJFUE9SVFNfVE9fQVRUQUNIX1RPXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImRvY1VuZGVyRWRpdElzUmVhZE9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tbXVsdGlwbGUtcHJvcGVydHktdG9nZ2xlcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvY3VtZW50VW5kZXJFZGl0LmlzSW1hZ2VEb2N1bWVudCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlV3JhcHBlcl09XCJ0ZW1wbGF0ZUltYWdlXCI+PC9uZy1jb250YWluZXI+LS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9rLWNhbmNlbC1idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZG9jVW5kZXJFZGl0SXNSZWFkT25seVwiIFt0ZXh0Q29udGVudF09XCInT0snIHwgbG9jYWxpemVcIiAoY2xpY2spPVwib25Qb3B1cE9rQ2xpY2soKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJoaWRlQ2FuY2VsXCIgW3RleHRDb250ZW50XT1cIidTVElDS0VSJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uUG9wdXBDYW5jZWxDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICA8ZGVmYXVsdC1vay1jYW5jZWwtYnV0dG9ucyBjbGFzcz1cImp1c3RpZnktY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb2tEaXNhYmxlZF09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUNhbmNlbF09XCJoaWRlQ2FuY2VsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2tDbGljayk9XCJvblBvcHVwT2tDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwib25Qb3B1cENhbmNlbENsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2RlZmF1bHQtb2stY2FuY2VsLWJ1dHRvbnM+LS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9jby1kaWFsb2c+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBbdGV4dENvbnRlbnRdPVwicG9wdXBIZWFkZXIgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZUltYWdlICpuZ0lmPVwiIWlzV29ya2FiaWxpdHlcIj5cclxuICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2x1bW4tcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dC1sb3YtbXVsdGktc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjZmdOYW1lXT1cImZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cy5JbWFnZURvY3VtZW50U3RvcmVHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKHNlbGVjdGVkTW9kZWxJZHMpXT1cInN0b3JlR3JvdXBJZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJzdG9yZUdyb3Vwc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJkb2NVbmRlckVkaXRJc1JlYWRPbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb25GaWVsZD1cImRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZG9Ob3RMb2FkQ29sbGVjdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21XaWR0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlJFVEFJTF9GT1JNVUxBU1wiXHJcbiAgICAgICAgICAgICAgICA+PC9pbnB1dC1sb3YtbXVsdGktc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj4tLT5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgYCxcclxuICAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbi8vIENvbXBvbmVudCB0aGF0IHNob3dzIGEgcG9wdXAgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1cGxvYWQgYSBDb0RvY3VtZW50XHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KVxyXG4gICAgcHVibGljIGZvcm06IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIHVzZVdpdGhvdXRTZXR0aW5nUHJvcHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgaGFzUHVibGljQWNjZXNzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIC8vdG9kbyB0aGlzIGlzIHVzdWFsbHkgc2V0IHRvIGZhbHNlIG9uIGluaXRcclxuICAgIHB1YmxpYyBzaG93RG9jdW1lbnRSZXBvcnRQaWNrZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkb2N1bWVudFVuZGVyRWRpdChkb2M6IENvRG9jdW1lbnQpIHtcclxuICAgICAgICB0aGlzLl9kb2N1bWVudFVuZGVyRWRpdCA9IGRvYyA/IHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKENvRG9jdW1lbnQsIGRvYykgYXMgdW5rbm93biBhcyBDb0RvY3VtZW50IDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZG9jdW1lbnRVbmRlckVkaXQoKTogQ29Eb2N1bWVudCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50VW5kZXJFZGl0O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHJlYWRvbmx5KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fcmVhZG9ubHkgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIC8vdGhpcy5fdG9hc3RTZXJ2aWNlLnNwYXduVG9hc3QoXCJNRVNTQUdFX0RPQ1VNRU5UX0xPQ0tfU0lOR0xFXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBmaWxlc1VwbG9hZENvbmZpZ09iamVjdHModmFsdWU6IEZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cykge1xyXG4gICAgICAgIHRoaXMuX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFnQ2F0ZWdvcnk6IFRhZ0NhdGVnb3J5O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBtZWRpY2FsVXNlckdyb3VwczogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRpc3BsYXlSZWFkV3JpdGVBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGFnUmVmZXJlbmNlVGFibGU6IFRhYmxlTmFtZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRvY3VtZW50S2V5OiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkb2N1bWVudFRhYmxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWxlVHlwZTogRmlsZVR5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGFkZERvY3VtZW50QnlVcmw6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRDaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb0RvY3VtZW50PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IHBvcHVwQ2xvc2VFdmVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tZmlsZS11cGxvYWQtcG9wdXAnKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBkb2N1bWVudFB1YmxpY2F0aW9uOiB0eXBlb2YgRG9jdW1lbnRQdWJsaWNhdGlvbiA9IERvY3VtZW50UHVibGljYXRpb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9jdW1lbnRFbWFpbFJlcG9ydHM6IHR5cGVvZiBEb2N1bWVudEVtYWlsUmVwb3J0ID0gRG9jdW1lbnRFbWFpbFJlcG9ydDtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNob3dSZWFkV3JpdGVBY2Nlc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgLy9UT0RPIGdldCB1c2VycmlnaHRzXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLy9yZXR1cm4gdGhpcy5fdXNlclJpZ2h0cy53b3JrYWJpbGl0eVBhcmFtZXRlckVuYWJsZWQgJiYgdGhpcy5kaXNwbGF5UmVhZFdyaXRlQWNjZXNzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZmlsZXNVcGxvYWRDb25maWdPYmplY3RzKCk6IEZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzV29ya2FiaWxpdHkoKTogYm9vbGVhbiB7XHJcbiAgICAgIC8vVE9ETyBmaXggd29ya2FiaWxpdHlcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgICAgLy9yZXR1cm4gdGhpcy5fd29ya2FiaWxpdHlTZXJ2aWNlLndvcmthYmlsaXR5U3lzdGVtRW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRvY1VuZGVyRWRpdElzUmVhZE9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmVhZG9ubHkgfHwgdGhpcy5fcmVhZG9ubHk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWwoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdGh1bWJuYWlsXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9maWxlVHlwZUltZ1BpcGUudHJhbnNmb3JtKHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuZmlsZVR5cGVJbnRlcm5hbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwb3B1cEhlYWRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50VW5kZXJFZGl0ICYmIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiSU1BR0VcIjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJET0NVTUVOVFwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHB1YmxpY2F0aW9uQ29uZmlnTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSA/XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0cy5JbWFnZURvY3VtZW50UHVibGlzaFRvIDpcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNVcGxvYWRDb25maWdPYmplY3RzLlRleHREb2N1bWVudFB1Ymxpc2hUbztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47IC8vIE5vIGNvbmZpZ25hbWUgZm91bmRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBnZXQgdGFnc0NvbmZpZ05hbWUoKTogVGFnc0NvbXBvbmVudENvbmZpZ05hbWVzIHtcclxuICAgICAgICBpZiAodGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuaXNJbWFnZURvY3VtZW50KCkgP1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMuVGFnc0ltYWdlQ29uZmlnTmFtZXMgOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc1VwbG9hZENvbmZpZ09iamVjdHMuVGFnc1RleHRDb25maWdOYW1lcztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm47IC8vIE5vIGNvbmZpZ25hbWUgZm91bmRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGRvbWFpbjogdHlwZW9mIERvbWFpbk11bHRpcGxlTmFtZSA9IERvbWFpbk11bHRpcGxlTmFtZTtcclxuICAgIHB1YmxpYyByZWFkb25seSBmaWxlVHlwZXM6IHR5cGVvZiBGaWxlVHlwZSA9IEZpbGVUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBfZG9jdW1lbnRVbmRlckVkaXQ6IENvRG9jdW1lbnQ7XHJcbiAgICBwdWJsaWMgaGlkZUNhbmNlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHN0b3JlR3JvdXBzOiBTdG9yZUdyb3VwW10gPSBbXTtcclxuICAgIHB1YmxpYyBwdWJsaWNhdGlvbklkczogbnVtYmVyW107XHJcbiAgICBwdWJsaWMgc3RvcmVHcm91cElkczogc3RyaW5nW107XHJcbiAgICBwdWJsaWMgdXNlckdyb3Vwc0ZvcldyaXRlOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgcHVibGljIHVzZXJHcm91cHNGb3JSZWFkOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgcHVibGljIGRvY3VtZW50VGFnczogVGFnVHJlZUl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgX2ZpbGVzVXBsb2FkQ29uZmlnT2JqZWN0czogRmlsZXNVcGxvYWRDb25maWdPYmplY3RzID0ge307IC8vIEluc3RhbnRpYXRlIHdpdGggZW1wdHkgb2JqZWN0IHRvIGF2b2lkIG51bGxwb2ludGVycyBpbiB0aGUgdGVtcGxhdGVcclxuICAgIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xyXG4gICAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3B1YmxpY2F0aW9uTnVtYmVyOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9yZXBvcnRzTnVtYmVyOiBudW1iZXI7XHJcblxyXG4gICAgcHJpdmF0ZSBfdGh1bWJuYWlsOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgLy9wcml2YXRlIF93b3JrYWJpbGl0eVNlcnZpY2U6IEFwcFdvcmthYmlsaXR5U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9wcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVUeXBlSW1nUGlwZTogRmlsZVR5cGVJbWFnZVBpcGUsXHJcbiAgICAgICAgLy9wcml2YXRlIF91c2VyUmlnaHRzOiBVc2VyUmlnaHRzU2VydmljZSxcclxuICAgICAgICAvL3ByaXZhdGUgX2Jhc2VEYXRhUmVwbzogQmFzZURhdGFEYWxSZXBvc2l0b3J5LFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfdGFnc1JlcG86IFRhZ3NEYWxSZXBvc2l0b3J5LFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfdG9hc3RTZXJ2aWNlOiBBcHBUb2FzdFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZENvbGxlY3Rpb24oKTtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLl90aHVtYm5haWwgPSB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LmRvY3VtZW50Qm9keUFzRGF0YVVyaTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGxvYWRDb2xsZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIC8vdGhpcy5kb2N1bWVudFRhZ3MgPSBhd2FpdCB0aGlzLl90YWdzUmVwby5nZXRKb2luZWRUYWdzKHRoaXMudGFnUmVmZXJlbmNlVGFibGUsIHRoaXMuZG9jdW1lbnRLZXkpO1xyXG4gICAgICAgIC8vdGhpcy5zdG9yZUdyb3VwcyA9IGF3YWl0IHRoaXMuX2Jhc2VEYXRhUmVwby5nZXRTdG9yZUdyb3VwTGlzdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblByZXZpZXdDbGljaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5pc0ltYWdlRG9jdW1lbnQoKSkgeyAvL3ByZXZpZXcgaW1hZ2VcclxuICAgICAgICAgICAgdGhpcy5fcHJvbXB0U2VydmljZS5zaG93SW1hZ2UodGhpcy5kb2N1bWVudFVuZGVyRWRpdC5kb2N1bWVudEJvZHlBc0RhdGFVcmksIFwiUHJldmlld1wiKTtcclxuICAgICAgICB9IGVsc2UgeyAvL2Rvd25sb2FkIGRvY3VtZW50XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBGaWxlVXRpbHMuRG93bmxvYWRGcm9tRGF0YVVyaSh0aGlzLmRvY3VtZW50VW5kZXJFZGl0LmJvZHlBc0RhdGFVcmksIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQuZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2F2ZURvY3VtZW50VW5kZXJFZGl0UmlnaHRzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmlnaHRzID0gW107XHJcbiAgICAgICAgY29uc3QgZm9yV3JpdGVMZW5ndGg6IG51bWJlciA9IHRoaXMudXNlckdyb3Vwc0ZvcldyaXRlLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgZm9yV3JpdGVMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCByaWdodHM6IENvRG9jdW1lbnRSaWdodCA9IG5ldyBDb0RvY3VtZW50UmlnaHQoKTtcclxuICAgICAgICAgICAgcmlnaHRzLnVzZXJHcm91cElkID0gdGhpcy51c2VyR3JvdXBzRm9yV3JpdGVbaV07XHJcbiAgICAgICAgICAgIHJpZ2h0cy5yaWdodExldmVsID0gT2JqZWN0UmlnaHRUeXBlLlJlYWRXcml0ZTtcclxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5yaWdodHMucHVzaChyaWdodHMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZm9yUmVhZExlbmd0aDogbnVtYmVyID0gdGhpcy51c2VyR3JvdXBzRm9yUmVhZC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGZvclJlYWRMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCByaWdodHM6IENvRG9jdW1lbnRSaWdodCA9IG5ldyBDb0RvY3VtZW50UmlnaHQoKTtcclxuICAgICAgICAgICAgcmlnaHRzLnVzZXJHcm91cElkID0gdGhpcy51c2VyR3JvdXBzRm9yUmVhZFtpXTtcclxuICAgICAgICAgICAgcmlnaHRzLnJpZ2h0TGV2ZWwgPSBPYmplY3RSaWdodFR5cGUuUmVhZE9ubHk7XHJcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucmlnaHRzLnB1c2gocmlnaHRzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUG9wdXBPa0NsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlUHJvcGVydHlDaGFuZ2UocmVmU3VtT2ZFbmFibGVkSXRlbXM6IG51bWJlcik6IGFueSB7XHJcbiAgICAgICAgdGhpcy5fcHVibGljYXRpb25OdW1iZXIgPSByZWZTdW1PZkVuYWJsZWRJdGVtcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlUmVwb3J0c1Byb3BlcnR5Q2hhbmdlKHJlZlN1bU9mRW5hYmxlZEl0ZW1zOiBudW1iZXIpOiBhbnkge1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydHNOdW1iZXIgPSByZWZTdW1PZkVuYWJsZWRJdGVtcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25WYWxpZFN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLl9wdWJsaWNhdGlvbk51bWJlciA/IHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucHVibGljYXRpb24gPSB0aGlzLl9wdWJsaWNhdGlvbk51bWJlciA6IHRoaXMuZG9jdW1lbnRVbmRlckVkaXQucHVibGljYXRpb24gPSAwO1xyXG4gICAgICAgIHRoaXMuX3JlcG9ydHNOdW1iZXIgPyB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnJlcG9ydHMgPSB0aGlzLl9yZXBvcnRzTnVtYmVyIDogdGhpcy5kb2N1bWVudFVuZGVyRWRpdC5yZXBvcnRzID0gMDtcclxuICAgICAgICB0aGlzLmRvY3VtZW50VW5kZXJFZGl0LnJldGFpbEZvcm11bGFzID0gdGhpcy5zdG9yZUdyb3VwSWRzO1xyXG4gICAgICAgIHRoaXMuc2F2ZURvY3VtZW50VW5kZXJFZGl0UmlnaHRzKCk7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudENoYW5nZUV2ZW50LmVtaXQodGhpcy5kb2N1bWVudFVuZGVyRWRpdCk7XHJcbiAgICAgICAgdGhpcy5vblBvcHVwQ2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25Qb3B1cENhbmNlbENsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHRoaXMub25Qb3B1cENsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUG9wdXBDbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVzZXJHcm91cHNGb3JXcml0ZS5sZW5ndGggPSAwO1xyXG4gICAgICAgIHRoaXMudXNlckdyb3Vwc0ZvclJlYWQubGVuZ3RoID0gMDtcclxuICAgICAgICB0aGlzLmRvY3VtZW50VW5kZXJFZGl0ID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB0aGlzLnBvcHVwQ2xvc2VFdmVudC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLypwcml2YXRlIF91bmxvY2tEb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWRvYy5yZWFkb25seSAmJiAhdGhpcy5yZWFkb25seSkge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRhU2VydmljZS51bmxvY2soQ29Eb2N1bWVudCwgZG9jLmRvY3VtZW50SWQpO1xyXG4gICAgICAgIH1cclxuICAgIH0qL1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { ButtonModule, CoDialogModule, FormModule, InputTextModule, ScreenConfigurationModule } from "@colijnit/corecomponents_v12";
3
+ import { LocalizationModule } from "../../localization/localization.module";
4
+ import { CommonModule } from "@angular/common";
5
+ import { MultiplePropertyTogglerModule } from "../multi-property-toggler/multiple-property-toggler.module";
6
+ import { FileUploadPopupComponent } from "./file-upload-popup.component";
7
+ export class FileUploadPopupModule {
8
+ }
9
+ FileUploadPopupModule.decorators = [
10
+ { type: NgModule, args: [{
11
+ imports: [
12
+ CoDialogModule,
13
+ FormModule,
14
+ LocalizationModule,
15
+ InputTextModule,
16
+ ButtonModule,
17
+ CommonModule,
18
+ ScreenConfigurationModule,
19
+ MultiplePropertyTogglerModule
20
+ ],
21
+ declarations: [
22
+ FileUploadPopupComponent
23
+ ],
24
+ exports: [
25
+ FileUploadPopupComponent
26
+ ],
27
+ providers: []
28
+ },] }
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcG9wdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQtcG9wdXAvZmlsZS11cGxvYWQtcG9wdXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBQ2QsVUFBVSxFQUNWLGVBQWUsRUFDZix5QkFBeUIsRUFDMUIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUF1QnZFLE1BQU0sT0FBTyxxQkFBcUI7OztZQXBCakMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxjQUFjO29CQUNkLFVBQVU7b0JBQ1Ysa0JBQWtCO29CQUNsQixlQUFlO29CQUNmLFlBQVk7b0JBQ1osWUFBWTtvQkFDWix5QkFBeUI7b0JBQ3pCLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLHdCQUF3QjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHdCQUF3QjtpQkFDekI7Z0JBQ0QsU0FBUyxFQUFFLEVBQ1Y7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgQnV0dG9uTW9kdWxlLFxyXG4gIENvRGlhbG9nTW9kdWxlLFxyXG4gIEZvcm1Nb2R1bGUsXHJcbiAgSW5wdXRUZXh0TW9kdWxlLFxyXG4gIFNjcmVlbkNvbmZpZ3VyYXRpb25Nb2R1bGVcclxufSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0xvY2FsaXphdGlvbk1vZHVsZX0gZnJvbSBcIi4uLy4uL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TXVsdGlwbGVQcm9wZXJ0eVRvZ2dsZXJNb2R1bGV9IGZyb20gXCIuLi9tdWx0aS1wcm9wZXJ0eS10b2dnbGVyL211bHRpcGxlLXByb3BlcnR5LXRvZ2dsZXIubW9kdWxlXCI7XHJcbmltcG9ydCB7RmlsZVVwbG9hZFBvcHVwQ29tcG9uZW50fSBmcm9tIFwiLi9maWxlLXVwbG9hZC1wb3B1cC5jb21wb25lbnRcIjtcclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvRGlhbG9nTW9kdWxlLFxyXG4gICAgRm9ybU1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNjcmVlbkNvbmZpZ3VyYXRpb25Nb2R1bGUsXHJcbiAgICBNdWx0aXBsZVByb3BlcnR5VG9nZ2xlck1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBGaWxlVXBsb2FkUG9wdXBDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEZpbGVVcGxvYWRQb3B1cENvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZFBvcHVwTW9kdWxlIHtcclxuXHJcbn1cclxuIl19