mmhglobal-dynamicform 2.40.0 → 2.41.0

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 (31) hide show
  1. package/README.md +14 -0
  2. package/esm2020/lib/mmhglobal-dynamicform.module.mjs +6 -1
  3. package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +2 -2
  4. package/esm2020/lib/zbreadcrumb/zbreadcrumb.component.mjs +88 -0
  5. package/esm2020/lib/zchart/zchart.component.mjs +142 -103
  6. package/esm2020/lib/zdatetime/zdatetime.component.mjs +11 -3
  7. package/esm2020/lib/zgauge/zgauge.component.mjs +12 -21
  8. package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +81 -5
  9. package/esm2020/lib/zgrid/zgrid.component.mjs +88 -7
  10. package/esm2020/lib/zgrid/zgrid.service.mjs +8 -1
  11. package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +163 -15
  12. package/esm2020/lib/ztreelist/ztreelist.component.mjs +3 -3
  13. package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +25 -13
  14. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +2 -2
  15. package/esm2020/public-api.mjs +2 -1
  16. package/fesm2015/mmhglobal-dynamicform.mjs +619 -162
  17. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
  18. package/fesm2020/mmhglobal-dynamicform.mjs +601 -160
  19. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
  20. package/lib/mmhglobal-dynamicform.module.d.ts +104 -103
  21. package/lib/zbreadcrumb/zbreadcrumb.component.d.ts +25 -0
  22. package/lib/zchart/zchart.component.d.ts +30 -12
  23. package/lib/zdatetime/zdatetime.component.d.ts +2 -0
  24. package/lib/zgauge/zgauge.component.d.ts +0 -9
  25. package/lib/zgrid/zgrid.binding.directive.d.ts +10 -2
  26. package/lib/zgrid/zgrid.component.d.ts +13 -5
  27. package/lib/zgrid/zgrid.service.d.ts +3 -0
  28. package/lib/ztexteditor/ztexteditor.component.d.ts +19 -4
  29. package/lib/ztrendcard/ztrendcard.component.d.ts +9 -2
  30. package/package.json +1 -1
  31. package/public-api.d.ts +1 -0
package/README.md CHANGED
@@ -7,6 +7,20 @@ This library was generated with [Angular CLI](https://github.com/angular/angular
7
7
 
8
8
 
9
9
 
10
+ ### 2.41.0
11
+ - [zgrid] - Enhancement: Add usage tracking of "Save Setting" and "Reset to Default". Enhancement: Implement a master-detail grid to display parent and child records in a hierarchical table structure.
12
+ - [ztreelist] - Bug Fix: Fixed an issue where the text in a column would wrap to the next line instead of staying next to the expand/collapse icon.
13
+ - [ztexteditor] - Enhancement: Enhance the ztexteditor component by introducing an Image compression feature controlled by a new property, Compression.
14
+ - [ztexteditor] - Enhancement: To add new button 'Enable/ Disable Image Compression' in the toolbar if the Compression property has set it would be displayed.
15
+ - [zdatetime] - Enhancement: Introduced a new feature, datePicker allows you to disable the selection of specified dates by providing a disabledDates value to the component.
16
+ - [ztrendcard] - Enhancement: Added new properties for `header` and `background` to control styling.
17
+ - [zgrid] - Enhancement: Introduced grouping feature, to display grouped table data. You can configure the component to group the data by single or multiple fields during the Grid initialization or let the user dynamically group the data through interactions with the component.
18
+ - [zgrid] - Enhancement: Added new properties `CheckboxOnly`, to determines if the selection is performed only through clicking a checkbox. If enabled, clicking the row itself will not select the row.
19
+ - [sfdatetimepicker] - Fix: To handle the same field value within the same field element.
20
+ - [zbreadcrumb] - Added new component `zbreadcrumb` to provide breadcrumb navigation for dynamic forms.
21
+ - [workflowButton] - Enhanced: Passing `0` as `documentId` instead of `null`.
22
+ - [uiactionbutton] - Enhanced: Passing `0` as `documentId` instead of `null`.
23
+
10
24
  ### 2.40.0
11
25
  - [zradiobutton] - Added new component `zradiobutton`.
12
26
  - [ztexteditor] - Enhancement: Enhance the ztexteditor component by introducing an "enlarge" feature controlled by a new property, AllowEnlarge.
@@ -79,6 +79,7 @@ import { UiactionbuttonComponent } from './uiactionbutton/uiactionbutton.compone
79
79
  import { UivalidationmessageComponent } from './uivalidationmessage/uivalidationmessage.component';
80
80
  import { ZBulletComponent } from "./zbullet/zbullet.component";
81
81
  import { ZbuttonsComponent } from "./zbuttons/zbuttons.component";
82
+ import { ZbreadcrumbComponent } from './zbreadcrumb/zbreadcrumb.component';
82
83
  import { ZcardComponent } from "./zcard/zcard.component";
83
84
  import { ZchartComponent } from './zchart/zchart.component';
84
85
  import { ZcheckboxComponent } from './zcheckbox/zcheckbox.component';
@@ -165,6 +166,7 @@ MmhglobalDynamicformModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
165
166
  UivalidationmessageComponent,
166
167
  ZBulletComponent,
167
168
  ZbuttonsComponent,
169
+ ZbreadcrumbComponent,
168
170
  ZcardComponent,
169
171
  ZchartComponent,
170
172
  ZcheckboxComponent,
@@ -301,6 +303,7 @@ MmhglobalDynamicformModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
301
303
  UivalidationmessageComponent,
302
304
  ZBulletComponent,
303
305
  ZbuttonsComponent,
306
+ ZbreadcrumbComponent,
304
307
  ZcardComponent,
305
308
  ZchartComponent,
306
309
  ZcheckboxComponent,
@@ -445,6 +448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
445
448
  UivalidationmessageComponent,
446
449
  ZBulletComponent,
447
450
  ZbuttonsComponent,
451
+ ZbreadcrumbComponent,
448
452
  ZcardComponent,
449
453
  ZchartComponent,
450
454
  ZcheckboxComponent,
@@ -587,6 +591,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
587
591
  UivalidationmessageComponent,
588
592
  ZBulletComponent,
589
593
  ZbuttonsComponent,
594
+ ZbreadcrumbComponent,
590
595
  ZcardComponent,
591
596
  ZchartComponent,
592
597
  ZcheckboxComponent,
@@ -654,4 +659,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
654
659
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
655
660
  }]
656
661
  }] });
657
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW1oZ2xvYmFsLWR5bmFtaWNmb3JtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL21taGdsb2JhbC1keW5hbWljZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELGtGQUFrRjtBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsNkJBQTZCO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RCw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLElBQUksb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV6RSw2QkFBNkI7QUFDN0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxN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QWtCO3dCQUNsQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQiwrQkFBK0I7d0JBQy9CLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QseUJBQXlCO3dCQUN6QixvQkFBb0I7d0JBQ3BCLHdCQUF3QjtxQkFDekI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuLy8gaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgSW9uaWNTZWxlY3RhYmxlTW9kdWxlIH0gZnJvbSAnaW9uaWMtc2VsZWN0YWJsZSc7XHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgQWNlRWRpdG9yTW9kdWxlIH0gZnJvbSAnbmcyLWFjZS1lZGl0b3InO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHsgUXVlcnlCdWlsZGVyTW9kdWxlIH0gZnJvbSBcImFuZ3VsYXIyLXF1ZXJ5LWJ1aWxkZXJcIjtcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mbGV4LWxheW91dFwiO1xyXG5cclxuLyoqKioqKioqKiogU3luY0Z1c2lvbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBRdWVyeUJ1aWxkZXJNb2R1bGUgYXMgU0ZRdWVyeUJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1xdWVyeWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBEYXRlVGltZVBpY2tlck1vZHVsZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNhbGVuZGFycyc7XHJcblxyXG4vKioqKioqKioqKiBLZW5kbyAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBBcmNHYXVnZU1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdhdWdlcyc7XHJcbmltcG9ydCB7IEJ1dHRvbnNNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1idXR0b25zJztcclxuaW1wb3J0IHsgQ2hhcnRzTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUsIERhdGVJbnB1dHNNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kYXRlaW5wdXRzJztcclxuaW1wb3J0IHsgRHJvcERvd25zTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZHJvcGRvd25zJztcclxuaW1wb3J0IHsgRWRpdG9yTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZWRpdG9yJztcclxuaW1wb3J0IHsgRXhjZWxNb2R1bGUsIEdyaWRNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcclxuaW1wb3J0IHsgRmlsdGVyTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZmlsdGVyJztcclxuaW1wb3J0IHsgSW5kaWNhdG9yc01vZHVsZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1pbmRpY2F0b3JzXCI7XHJcbmltcG9ydCB7IEludGxNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1pbnRsJztcclxuaW1wb3J0IHsgQ29sb3JQaWNrZXJNb2R1bGUsIElucHV0c01vZHVsZSwgU3dpdGNoTW9kdWxlLCBUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItaW5wdXRzJztcclxuaW1wb3J0IHsgTGFiZWxNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1sYWJlbCc7XHJcbmltcG9ydCB7IExheW91dE1vZHVsZSwgUGFuZWxCYXJNb2R1bGUsIFRhYlN0cmlwTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbGF5b3V0JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbm90aWZpY2F0aW9uJztcclxuaW1wb3J0IHsgUG9wdXBNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1wb3B1cCc7XHJcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXByb2dyZXNzYmFyXCI7XHJcbmltcG9ydCB7IFRlbGVyaWtSZXBvcnRpbmdNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3MvdGVsZXJpay1hbmd1bGFyLXJlcG9ydC12aWV3ZXInO1xyXG5pbXBvcnQgeyBTY2hlZHVsZXJNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1zY2hlZHVsZXInO1xyXG5pbXBvcnQgeyBUcmVlTGlzdE1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXRyZWVsaXN0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10cmVldmlldyc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10b29sdGlwJztcclxuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10b29sdGlwXCI7XHJcbmltcG9ydCB7IFVwbG9hZE1vZHVsZSwgVXBsb2Fkc01vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXVwbG9hZCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25Nb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1uYXZpZ2F0aW9uJztcclxuaW1wb3J0IHsgTWVudXNNb2R1bGUgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbWVudVwiO1xyXG5pbXBvcnQgeyBHYW50dE1vZHVsZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1nYW50dFwiO1xyXG5cclxuLyoqKioqKioqKiogU2VydmljZSAmIERpcmVjdGl2ZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBaQ29yZU1vZHVsZSwgWkdyb3VwIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgTW1oZ2xvYmFsTWlkZGxld2FyZU1vZHVsZSB9IGZyb20gJ21taGdsb2JhbC1taWRkbGV3YXJlJztcclxuaW1wb3J0IHsgTW1oZ2xvYmFsWm1vZGFsTW9kdWxlLCBNb2RhbFNlcnZpY2UgfSBmcm9tICdtbWhnbG9iYWwtem1vZGFsJztcclxuaW1wb3J0IHsgTWFpblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21haW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFNjcm9sbGJhclRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Njcm9sbGJhci50aGVtZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGaWVsZEVsZW1lbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZmllbGRlbGVtZW50LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFpHcmlkQmluZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vemdyaWQvemdyaWQuYmluZGluZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBaR3JpZFBvcHVwQW5jaG9yRGlyZWN0aXZlIH0gZnJvbSAnLi96Z3JpZC96Z3JpZC5wb3B1cC5hbmNob3ItdGFyZ2V0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE9wZW5PbkZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZWxlbWVudGNvbnRhaW5lci5kaXJlY3RpdmUnO1xyXG5cclxuLyoqKioqKioqKiogQWRkb24gKioqKioqKioqKi9cclxuaW1wb3J0IHsgRGF0ZVBhcnNlckZpbHRlciB9IGZyb20gJy4vemRhdGV0aW1lL2RhdGVQYXJzZXIucGlwZSc7XHJcbmltcG9ydCB7IEVkaXRvckZpbHRlciB9IGZyb20gJy4vemNvZGVlZGl0b3IvemNvZGVlZGl0b3IucGlwZSc7XHJcbmltcG9ydCB7IERpdnpMYXlvdXQgfSBmcm9tICcuL3pkaXYvemRpdi5waXBlJztcclxuaW1wb3J0IHsgVGFiRmlsdGVyIH0gZnJvbSAnLi96dGFiL3p0YWIucGlwZSc7XHJcbmltcG9ydCB7IFBhbmVsQXJlYUZpbHRlciB9IGZyb20gJy4vcGlwZS9wYW5lbC1hcmVhLnBpcGUnO1xyXG5pbXBvcnQgeyBaSW5wdXRQYXJzZXIgfSBmcm9tICcuL3ppbnB1dC1jb250YWluZXIvemlucHV0LWNvbnRhaW5lci5waXBlJztcclxuaW1wb3J0IHsgSHRtbFNhbml0aXplUGlwZSB9IGZyb20gJy4vcGlwZS9odG1sU2FuaXRpemUucGlwZSc7XHJcbmltcG9ydCB7IERhdGVSYW5nZUZpbHRlckNlbGxDb21wb25lbnQgfSBmcm9tICcuL3pncmlkL2RhdGUtcmFuZ2UtY2VsbC1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWlNjaGVkdWxlclRvb2xCYXJDb21wb25lbnQgfSBmcm9tICcuL3pzY2hlZHVsZXIvenNjaGVkdWxlci50b29sYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpTZWxlY3RUcmFuc2xhdGlvblBhcnNlciB9IGZyb20gJy4venNlbGVjdG11bHRpcGxlL3pzZWxlY3RtdWx0aXBsZS5waXBlJztcclxuaW1wb3J0IHsgWk51bWVyaWNQYXJzZXIgfSBmcm9tICcuL3pudW1lcmljL3pudW1lcmljLmNvbXBvbmVudC5waXBlJztcclxuaW1wb3J0IHsgRGF0ZUtlbmRvRm9ybWF0UGFyc2VyIH0gZnJvbSAnLi96ZGF0ZXRpbWUvZGF0ZUtlbmRvRm9ybWF0UGFyc2VyLnBpcGUnO1xyXG5pbXBvcnQgeyBEYXRlSW9uaWNGb3JtYXRQYXJzZXIgfSBmcm9tICcuL3pkYXRldGltZS9kYXRlSW9uaWNGb3JtYXRQYXJzZXIucGlwZSc7XHJcblxyXG4vKioqKioqKioqKiB6Q29tcG9uZW50ICoqKioqKioqKiovXHJcbmltcG9ydCB7IFVpcGFnZUNvbXBvbmVudCB9IGZyb20gJy4vdWlwYWdlL3VpcGFnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaWhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdWloZWFkZXIvdWloZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWljb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3VpY29udGFpbmVyL3VpY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpY29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdWljb250ZW50L3VpY29udGVudC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgVWltZW51Y29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdWltZW51Y29udGVudC91aW1lbnVjb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpbWVudWJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vdWltZW51YnV0dG9uL3VpbWVudWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaWFwcG1lbnVjb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi91aWFwcG1lbnVjb250ZW50L3VpYXBwbWVudWNvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlidWxsZXRpbkNvbXBvbmVudCB9IGZyb20gJy4vdWlidWxsZXRpbi91aWJ1bGxldGluLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpYWN0aW9uYnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi91aWFjdGlvbmJ1dHRvbi91aWFjdGlvbmJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaXZhbGlkYXRpb25tZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi91aXZhbGlkYXRpb25tZXNzYWdlL3VpdmFsaWRhdGlvbm1lc3NhZ2UuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IFpCdWxsZXRDb21wb25lbnQgfSBmcm9tIFwiLi96YnVsbGV0L3pidWxsZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpidXR0b25zQ29tcG9uZW50IH0gZnJvbSBcIi4vemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpjYXJkQ29tcG9uZW50IH0gZnJvbSBcIi4vemNhcmQvemNhcmQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpjaGFydENvbXBvbmVudCB9IGZyb20gJy4vemNoYXJ0L3pjaGFydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaY2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3pjaGVja2JveC96Y2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgWkNoaXBDb21wb25lbnQgfSBmcm9tIFwiLi96Y2hpcC96Y2hpcC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWmNvZGVlZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL3pjb2RlZWRpdG9yL3pjb2RlZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpkYXRlcmFuZ2VDb21wb25lbnQgfSBmcm9tICcuL3pkYXRlcmFuZ2UvemRhdGVyYW5nZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaZGF0ZXRpbWVDb21wb25lbnQgfSBmcm9tICcuL3pkYXRldGltZS96ZGF0ZXRpbWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWmRpdkNvbXBvbmVudCB9IGZyb20gJy4vemRpdi96ZGl2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpmb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4vemZvcm0vemZvcm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpmb3JtY29udHJvbENvbXBvbmVudCB9IGZyb20gXCIuL3pmb3JtY29udHJvbC96Zm9ybWNvbnRyb2wuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpnYXVnZUNvbXBvbmVudCB9IGZyb20gJy4vemdhdWdlL3pnYXVnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaZ3JpZENvbXBvbmVudCB9IGZyb20gXCIuL3pncmlkL3pncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaZ3JpZENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gXCIuL3pncmlkL2NvbnRhaW5lci96Z3JpZC1jb250YWluZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFppbWdDb21wb25lbnQgfSBmcm9tICcuL3ppbWcvemltZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBabGFiZWxDb21wb25lbnQgfSBmcm9tICcuL3psYWJlbC96bGFiZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWm1mYkNvbXBvbmVudCB9IGZyb20gJy4vem1mYi96bWZiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFptb2RhbENvbXBvbmVudCB9IGZyb20gXCIuL3ptb2RhbC96bW9kYWwuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFptb2RhbE1vYmlsZUNvbXBvbmVudCB9IGZyb20gXCIuL3ptb2RhbC96bW9kYWwtbW9iaWxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBabnVtZXJpY0NvbXBvbmVudCB9IGZyb20gJy4vem51bWVyaWMvem51bWVyaWMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnBvc3RzZWxlY3RpbnB1dENvbXBvbmVudCB9IGZyb20gJy4venBvc3RzZWxlY3RpbnB1dC96cG9zdHNlbGVjdGlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpyYWRpb2J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4venJhZGlvYnV0dG9uL3pyYWRpb2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBacmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi96cmVwb3J0L3pyZXBvcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnNjaGVkdWxlckNvbXBvbmVudCB9IGZyb20gJy4venNjaGVkdWxlci96c2NoZWR1bGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpzZWxlY3RtdWx0aXBsZUNvbXBvbmVudCB9IGZyb20gXCIuL3pzZWxlY3RtdWx0aXBsZS96c2VsZWN0bXVsdGlwbGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFp0YWJDb21wb25lbnQgfSBmcm9tIFwiLi96dGFiL3p0YWIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFp0ZXh0Q29tcG9uZW50IH0gZnJvbSBcIi4venRleHQvenRleHQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFp0ZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4venRleHRhcmVhL3p0ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBadGV4dGVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4venRleHRlZGl0b3IvenRleHRlZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnRyZWVDb21wb25lbnQgfSBmcm9tICcuL3p0cmVlL3p0cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFp0cmVlbGlzdENvbXBvbmVudCB9IGZyb20gJy4venRyZWVsaXN0L3p0cmVlbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBadHJlbmRjYXJkQ29tcG9uZW50IH0gZnJvbSAnLi96dHJlbmRjYXJkL3p0cmVuZGNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnVua25vd25Db21wb25lbnQgfSBmcm9tIFwiLi96dW5rbm93bi96dW5rbm93bi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWnVkZkNvbXBvbmVudCB9IGZyb20gJy4venVkZi96dWRmLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFp1cGxvYWRDb21wb25lbnQgfSBmcm9tICcuL3p1cGxvYWQvenVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBad29ya2Zsb3didXR0b25zQ29tcG9uZW50IH0gZnJvbSBcIi4vendvcmtmbG93YnV0dG9ucy96d29ya2Zsb3didXR0b25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBLY2FyZENvbXBvbmVudCB9IGZyb20gJy4va2NhcmQva2NhcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWklucHV0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi96aW5wdXQtY29udGFpbmVyL3ppbnB1dC1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnByb2dyZXNzYmFyQ29tcG9uZW50IH0gZnJvbSAnLi96cHJvZ3Jlc3NiYXIvenByb2dyZXNzYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0RXJyb3JNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1lcnJvci1tZXNzYWdlL2lucHV0LWVycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5wdXRGaWVsZEFkZE9uc0NvbXBvbmVudCB9IGZyb20gJy4vZW1iZWQtY29tcG9uZW50cy9pbnB1dC1maWVsZC1hZGRvbnMvaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2Nlc3NpbmdSZWNvcmRMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2VtYmVkLWNvbXBvbmVudHMvcHJvY2Vzc2luZy1yZWNvcmQtbG9hZGVyL3Byb2Nlc3NpbmctcmVjb3JkLWxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlSW9uaWNNaW5NYXhQYXJzZXIgfSBmcm9tICcuL3pkYXRldGltZS9kYXRlSW9uaWNNaW5NYXhEYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBTZnF1ZXJ5YnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4vc2ZxdWVyeWJ1aWxkZXIvc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWmxvb3BDb21wb25lbnQgfSBmcm9tICcuL3psb29wL3psb29wLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEtzcGxpdHRlckNvbXBvbmVudCB9IGZyb20gJy4va3NwbGl0dGVyL2tzcGxpdHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50IH0gZnJvbSAnLi92aXJ0dWFsLXNjcm9sbC92aXJ0dWFsLXNjcm9sbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9lbWJlZC1jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdlTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9lbWJlZC1jb21wb25lbnRzL3BhZ2UtbG9hZGVyL3BhZ2UtbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpjb2xvcnBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vemNvbG9ycGlja2VyL3pjb2xvcnBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBLbWVudUNvbXBvbmVudCB9IGZyb20gJy4va21lbnUva21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgS1Njcm9sbFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2tzY3JvbGx2aWV3L2tzY3JvbGx2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNjcm9sbFZpZXdNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1zY3JvbGx2aWV3JztcclxuaW1wb3J0IHsgQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2VtYmVkLWNvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWNvbkNvbXBvbmVudCB9IGZyb20gJy4vZmljb24vZmljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ZkYXRldGltZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vc2ZkYXRldGltZXBpY2tlci9zZmRhdGV0aW1lcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpnYW50dGNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi96Z2FudHRjaGFydC96Z2FudHRjaGFydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEcm9wRG93bkJ1dHRvbnNDb21wb25lbnQgfSBmcm9tICcuL2Ryb3Bkb3duX2J1dHRvbnMvZHJvcGRvd25fYnV0dG9ucy5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNjcm9sbGJhclRoZW1lRGlyZWN0aXZlLFxyXG4gICAgRmllbGRFbGVtZW50RGlyZWN0aXZlLFxyXG4gICAgWkdyaWRCaW5kaW5nRGlyZWN0aXZlLFxyXG4gICAgWkdyaWRQb3B1cEFuY2hvckRpcmVjdGl2ZSxcclxuICAgIE9wZW5PbkZvY3VzRGlyZWN0aXZlLFxyXG4gICAgRWxlbWVudENvbnRhaW5lckRpcmVjdGl2ZSxcclxuICAgIERhdGVQYXJzZXJGaWx0ZXIsIC8vIHpncmlkIGFkZG9uXHJcbiAgICBFZGl0b3JGaWx0ZXIsIC8vIHpjb2RlIGFkZG9uXHJcbiAgICBEaXZ6TGF5b3V0LCAvLyB6ZGl2IGFkZG9uXHJcbiAgICBUYWJGaWx0ZXIsIC8vIHp0YWIgYWRkb25cclxuICAgIFBhbmVsQXJlYUZpbHRlciwgLy8gcGFuZWwgYXJlYSBhZGRvblxyXG4gICAgRGF0ZVJhbmdlRmlsdGVyQ2VsbENvbXBvbmVudCwgLy8gemdyaWQgYWRkb25cclxuICAgIFpTY2hlZHVsZXJUb29sQmFyQ29tcG9uZW50LCAvLyB6c2NoZWR1bGVyIGFkZG9uXHJcbiAgICBVaWhlYWRlckNvbXBvbmVudCxcclxuICAgIFVpY29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgVWljb250ZW50Q29tcG9uZW50LFxyXG4gICAgVWlwYWdlQ29tcG9uZW50LFxyXG4gICAgVWlidWxsZXRpbkNvbXBvbmVudCxcclxuICAgIFVpYWN0aW9uYnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVWltZW51Y29udGVudENvbXBvbmVudCxcclxuICAgIFVpbWVudWJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFVpYXBwbWVudWNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBVaXZhbGlkYXRpb25tZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgWkJ1bGxldENvbXBvbmVudCxcclxuICAgIFpidXR0b25zQ29tcG9uZW50LFxyXG4gICAgWmNhcmRDb21wb25lbnQsXHJcbiAgICBaY2hhcnRDb21wb25lbnQsXHJcbiAgICBaY2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBaQ2hpcENvbXBvbmVudCxcclxuICAgIFpjb2RlZWRpdG9yQ29tcG9uZW50LFxyXG4gICAgWmRhdGVyYW5nZUNvbXBvbmVudCxcclxuICAgIFpkYXRldGltZUNvbXBvbmVudCxcclxuICAgIFpkaXZDb21wb25lbnQsXHJcbiAgICBaZm9ybUNvbXBvbmVudCxcclxuICAgIFpmb3JtY29udHJvbENvbXBvbmVudCxcclxuICAgIFpnYXVnZUNvbXBvbmVudCxcclxuICAgIFpncmlkQ29tcG9uZW50LFxyXG4gICAgWmltZ0NvbXBvbmVudCxcclxuICAgIFpsYWJlbENvbXBvbmVudCxcclxuICAgIFptZmJDb21wb25lbnQsXHJcbiAgICBabW9kYWxDb21wb25lbnQsXHJcbiAgICBabW9kYWxNb2JpbGVDb21wb25lbnQsXHJcbiAgICBabnVtZXJpY0NvbXBvbmVudCxcclxuICAgIFpwb3N0c2VsZWN0aW5wdXRDb21wb25lbnQsXHJcbiAgICBacmFkaW9idXR0b25Db21wb25lbnQsXHJcbiAgICBacmVwb3J0Q29tcG9uZW50LFxyXG4gICAgWnNjaGVkdWxlckNvbXBvbmVudCxcclxuICAgIFpzZWxlY3RtdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIFp0YWJDb21wb25lbnQsXHJcbiAgICBadGV4dENvbXBvbmVudCxcclxuICAgIFp0ZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIFp0ZXh0ZWRpdG9yQ29tcG9uZW50LFxyXG4gICAgWnRyZWVDb21wb25lbnQsXHJcbiAgICBadHJlZWxpc3RDb21wb25lbnQsXHJcbiAgICBadHJlbmRjYXJkQ29tcG9uZW50LFxyXG4gICAgWnVua25vd25Db21wb25lbnQsXHJcbiAgICBadWRmQ29tcG9uZW50LFxyXG4gICAgWnVwbG9hZENvbXBvbmVudCxcclxuICAgIFp3b3JrZmxvd2J1dHRvbnNDb21wb25lbnQsXHJcbiAgICBLY2FyZENvbXBvbmVudCxcclxuICAgIFpJbnB1dENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFpwcm9ncmVzc2JhckNvbXBvbmVudCxcclxuICAgIFpJbnB1dFBhcnNlcixcclxuICAgIFpTZWxlY3RUcmFuc2xhdGlvblBhcnNlcixcclxuICAgIEh0bWxTYW5pdGl6ZVBpcGUsXHJcbiAgICBJbnB1dEVycm9yTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIElucHV0RmllbGRBZGRPbnNDb21wb25lbnQsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgUGFnZUxvYWRlckNvbXBvbmVudCxcclxuICAgIFByb2Nlc3NpbmdSZWNvcmRMb2FkZXJDb21wb25lbnQsXHJcbiAgICBaTnVtZXJpY1BhcnNlcixcclxuICAgIFpncmlkQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgRGF0ZUtlbmRvRm9ybWF0UGFyc2VyLFxyXG4gICAgRGF0ZUlvbmljRm9ybWF0UGFyc2VyLFxyXG4gICAgRGF0ZUlvbmljTWluTWF4UGFyc2VyLFxyXG4gICAgU2ZxdWVyeWJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBabG9vcENvbXBvbmVudCxcclxuICAgIEtzcGxpdHRlckNvbXBvbmVudCxcclxuICAgIFZpcnR1YWxTY3JvbGxDb21wb25lbnQsXHJcbiAgICBaY29sb3JwaWNrZXJDb21wb25lbnQsXHJcbiAgICBLbWVudUNvbXBvbmVudCxcclxuICAgIEtTY3JvbGxWaWV3Q29tcG9uZW50LFxyXG4gICAgQ29udGV4dE1lbnVDb21wb25lbnQsXHJcbiAgICBGaWNvbkNvbXBvbmVudCxcclxuICAgIFNmZGF0ZXRpbWVwaWNrZXJDb21wb25lbnQsXHJcbiAgICBaZ2FudHRjaGFydENvbXBvbmVudCxcclxuICAgIERyb3BEb3duQnV0dG9uc0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBJb25pY1NlbGVjdGFibGVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBBY2VFZGl0b3JNb2R1bGUsXHJcbiAgICBGb250QXdlc29tZU1vZHVsZSxcclxuICAgIFF1ZXJ5QnVpbGRlck1vZHVsZSxcclxuICAgIEFyY0dhdWdlTW9kdWxlLFxyXG4gICAgQnV0dG9uc01vZHVsZSxcclxuICAgIENoYXJ0c01vZHVsZSxcclxuICAgIENhbGVuZGFyTW9kdWxlLFxyXG4gICAgRGF0ZUlucHV0c01vZHVsZSxcclxuICAgIERyb3BEb3duc01vZHVsZSxcclxuICAgIEVkaXRvck1vZHVsZSxcclxuICAgIEV4Y2VsTW9kdWxlLFxyXG4gICAgR3JpZE1vZHVsZSxcclxuICAgIEZpbHRlck1vZHVsZSxcclxuICAgIEluZGljYXRvcnNNb2R1bGUsXHJcbiAgICBJbnRsTW9kdWxlLFxyXG4gICAgSW5wdXRzTW9kdWxlLFxyXG4gICAgU3dpdGNoTW9kdWxlLFxyXG4gICAgVGV4dEJveE1vZHVsZSxcclxuICAgIExhYmVsTW9kdWxlLFxyXG4gICAgTGF5b3V0TW9kdWxlLFxyXG4gICAgUGFuZWxCYXJNb2R1bGUsXHJcbiAgICBUYWJTdHJpcE1vZHVsZSxcclxuICAgIE5vdGlmaWNhdGlvbk1vZHVsZSxcclxuICAgIFBvcHVwTW9kdWxlLFxyXG4gICAgUHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBUZWxlcmlrUmVwb3J0aW5nTW9kdWxlLFxyXG4gICAgU2NoZWR1bGVyTW9kdWxlLFxyXG4gICAgVHJlZUxpc3RNb2R1bGUsXHJcbiAgICBUcmVlVmlld01vZHVsZSxcclxuICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICBQb3BvdmVyTW9kdWxlLFxyXG4gICAgVXBsb2FkTW9kdWxlLFxyXG4gICAgVXBsb2Fkc01vZHVsZSxcclxuICAgIFpDb3JlTW9kdWxlLFxyXG4gICAgTW1oZ2xvYmFsWm1vZGFsTW9kdWxlLFxyXG4gICAgTmF2aWdhdGlvbk1vZHVsZSxcclxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICBTRlF1ZXJ5QnVpbGRlck1vZHVsZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIFF1ZXJ5QnVpbGRlck1vZHVsZSxcclxuICAgIENvbG9yUGlja2VyTW9kdWxlLFxyXG4gICAgU2Nyb2xsVmlld01vZHVsZSxcclxuICAgIE1lbnVzTW9kdWxlLFxyXG4gICAgRGF0ZVRpbWVQaWNrZXJNb2R1bGUsXHJcbiAgICBHYW50dE1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2Nyb2xsYmFyVGhlbWVEaXJlY3RpdmUsXHJcbiAgICBGaWVsZEVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICBaR3JpZEJpbmRpbmdEaXJlY3RpdmUsXHJcbiAgICBaR3JpZFBvcHVwQW5jaG9yRGlyZWN0aXZlLFxyXG4gICAgT3Blbk9uRm9jdXNEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50Q29udGFpbmVyRGlyZWN0aXZlLFxyXG4gICAgRGF0ZVBhcnNlckZpbHRlciwgLy8gemRhdGV0aW1lIGFkZG9uXHJcbiAgICBFZGl0b3JGaWx0ZXIsIC8vIHpjb2RlIGFkZG9uXHJcbiAgICBEaXZ6TGF5b3V0LCAvLyB6ZGl2IGFkZG9uXHJcbiAgICBUYWJGaWx0ZXIsIC8vIHp0YWIgYWRkb25cclxuICAgIFBhbmVsQXJlYUZpbHRlciwgLy8gcGFuZWwgYXJlYSBhZGRvblxyXG4gICAgRGF0ZVJhbmdlRmlsdGVyQ2VsbENvbXBvbmVudCwgLy8gemdyaWQgYWRkb25cclxuICAgIFpTY2hlZHVsZXJUb29sQmFyQ29tcG9uZW50LCAvLyB6c2NoZWR1bGVyIGFkZG9uXHJcbiAgICBVaWhlYWRlckNvbXBvbmVudCxcclxuICAgIFVpY29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgVWljb250ZW50Q29tcG9uZW50LFxyXG4gICAgVWlwYWdlQ29tcG9uZW50LFxyXG4gICAgVWltZW51Y29udGVudENvbXBvbmVudCxcclxuICAgIFVpbWVudWJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFVpYXBwbWVudWNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBVaWJ1bGxldGluQ29tcG9uZW50LFxyXG4gICAgVWlhY3Rpb25idXR0b25Db21wb25lbnQsXHJcbiAgICBVaXZhbGlkYXRpb25tZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgWkJ1bGxldENvbXBvbmVudCxcclxuICAgIFpidXR0b25zQ29tcG9uZW50LFxyXG4gICAgWmNhcmRDb21wb25lbnQsXHJcbiAgICBaY2hhcnRDb21wb25lbnQsXHJcbiAgICBaY2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBaQ2hpcENvbXBvbmVudCxcclxuICAgIFpjb2RlZWRpdG9yQ29tcG9uZW50LFxyXG4gICAgWmRhdGVyYW5nZUNvbXBvbmVudCxcclxuICAgIFpkYXRldGltZUNvbXBvbmVudCxcclxuICAgIFpkaXZDb21wb25lbnQsXHJcbiAgICBaZm9ybUNvbXBvbmVudCxcclxuICAgIFpmb3JtY29udHJvbENvbXBvbmVudCxcclxuICAgIFpnYXVnZUNvbXBvbmVudCxcclxuICAgIFpncmlkQ29tcG9uZW50LFxyXG4gICAgWmltZ0NvbXBvbmVudCxcclxuICAgIFpsYWJlbENvbXBvbmVudCxcclxuICAgIFptZmJDb21wb25lbnQsXHJcbiAgICBabW9kYWxDb21wb25lbnQsXHJcbiAgICBabW9kYWxNb2JpbGVDb21wb25lbnQsXHJcbiAgICBabnVtZXJpY0NvbXBvbmVudCxcclxuICAgIFpwb3N0c2VsZWN0aW5wdXRDb21wb25lbnQsXHJcbiAgICBacmFkaW9idXR0b25Db21wb25lbnQsXHJcbiAgICBacmVwb3J0Q29tcG9uZW50LFxyXG4gICAgWnNjaGVkdWxlckNvbXBvbmVudCxcclxuICAgIFpzZWxlY3RtdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIFp0YWJDb21wb25lbnQsXHJcbiAgICBadGV4dENvbXBvbmVudCxcclxuICAgIFp0ZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIFp0ZXh0ZWRpdG9yQ29tcG9uZW50LFxyXG4gICAgWnRyZWVDb21wb25lbnQsXHJcbiAgICBadHJlZWxpc3RDb21wb25lbnQsXHJcbiAgICBadHJlbmRjYXJkQ29tcG9uZW50LFxyXG4gICAgWnVua25vd25Db21wb25lbnQsXHJcbiAgICBadWRmQ29tcG9uZW50LFxyXG4gICAgWnVwbG9hZENvbXBvbmVudCxcclxuICAgIFp3b3JrZmxvd2J1dHRvbnNDb21wb25lbnQsXHJcbiAgICBaSW5wdXRDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBacHJvZ3Jlc3NiYXJDb21wb25lbnQsXHJcbiAgICBaSW5wdXRQYXJzZXIsXHJcbiAgICBaU2VsZWN0VHJhbnNsYXRpb25QYXJzZXIsXHJcbiAgICBIdG1sU2FuaXRpemVQaXBlLFxyXG4gICAgSW5wdXRFcnJvck1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBJbnB1dEZpZWxkQWRkT25zQ29tcG9uZW50LFxyXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcclxuICAgIFBhZ2VMb2FkZXJDb21wb25lbnQsXHJcbiAgICBQcm9jZXNzaW5nUmVjb3JkTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgWk51bWVyaWNQYXJzZXIsXHJcbiAgICBaZ3JpZENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIERhdGVLZW5kb0Zvcm1hdFBhcnNlcixcclxuICAgIERhdGVJb25pY0Zvcm1hdFBhcnNlcixcclxuICAgIERhdGVJb25pY01pbk1heFBhcnNlcixcclxuICAgIFNmcXVlcnlidWlsZGVyQ29tcG9uZW50LFxyXG4gICAgWmxvb3BDb21wb25lbnQsXHJcbiAgICBLc3BsaXR0ZXJDb21wb25lbnQsXHJcbiAgICBWaXJ0dWFsU2Nyb2xsQ29tcG9uZW50LFxyXG4gICAgWmNvbG9ycGlja2VyQ29tcG9uZW50LFxyXG4gICAgS21lbnVDb21wb25lbnQsXHJcbiAgICBLU2Nyb2xsVmlld0NvbXBvbmVudCxcclxuICAgIEZpY29uQ29tcG9uZW50LFxyXG4gICAgU2ZkYXRldGltZXBpY2tlckNvbXBvbmVudCxcclxuICAgIFpnYW50dGNoYXJ0Q29tcG9uZW50LFxyXG4gICAgRHJvcERvd25CdXR0b25zQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIE1vZGFsU2VydmljZVxyXG4gIF0sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTW1oZ2xvYmFsRHluYW1pY2Zvcm1Nb2R1bGUgeyB9XHJcbiJdfQ==
662
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW1oZ2xvYmFsLWR5bmFtaWNmb3JtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL21taGdsb2JhbC1keW5hbWljZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELGtGQUFrRjtBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsNkJBQTZCO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RCw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLElBQUksb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV6RSw2QkFBNkI7QUFDN0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxN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KioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBOZ01vZHVsZSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuLy8gaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgSW9uaWNTZWxlY3RhYmxlTW9kdWxlIH0gZnJvbSAnaW9uaWMtc2VsZWN0YWJsZSc7XHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgQWNlRWRpdG9yTW9kdWxlIH0gZnJvbSAnbmcyLWFjZS1lZGl0b3InO1xyXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHsgUXVlcnlCdWlsZGVyTW9kdWxlIH0gZnJvbSBcImFuZ3VsYXIyLXF1ZXJ5LWJ1aWxkZXJcIjtcclxuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mbGV4LWxheW91dFwiO1xyXG5cclxuLyoqKioqKioqKiogU3luY0Z1c2lvbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBRdWVyeUJ1aWxkZXJNb2R1bGUgYXMgU0ZRdWVyeUJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1xdWVyeWJ1aWxkZXInO1xyXG5pbXBvcnQgeyBEYXRlVGltZVBpY2tlck1vZHVsZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNhbGVuZGFycyc7XHJcblxyXG4vKioqKioqKioqKiBLZW5kbyAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBBcmNHYXVnZU1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLWdhdWdlcyc7XHJcbmltcG9ydCB7IEJ1dHRvbnNNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1idXR0b25zJztcclxuaW1wb3J0IHsgQ2hhcnRzTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUsIERhdGVJbnB1dHNNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kYXRlaW5wdXRzJztcclxuaW1wb3J0IHsgRHJvcERvd25zTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZHJvcGRvd25zJztcclxuaW1wb3J0IHsgRWRpdG9yTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZWRpdG9yJztcclxuaW1wb3J0IHsgRXhjZWxNb2R1bGUsIEdyaWRNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcclxuaW1wb3J0IHsgRmlsdGVyTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItZmlsdGVyJztcclxuaW1wb3J0IHsgSW5kaWNhdG9yc01vZHVsZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1pbmRpY2F0b3JzXCI7XHJcbmltcG9ydCB7IEludGxNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1pbnRsJztcclxuaW1wb3J0IHsgQ29sb3JQaWNrZXJNb2R1bGUsIElucHV0c01vZHVsZSwgU3dpdGNoTW9kdWxlLCBUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItaW5wdXRzJztcclxuaW1wb3J0IHsgTGFiZWxNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1sYWJlbCc7XHJcbmltcG9ydCB7IExheW91dE1vZHVsZSwgUGFuZWxCYXJNb2R1bGUsIFRhYlN0cmlwTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbGF5b3V0JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uTW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbm90aWZpY2F0aW9uJztcclxuaW1wb3J0IHsgUG9wdXBNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1wb3B1cCc7XHJcbmltcG9ydCB7IFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSBcIkBwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXByb2dyZXNzYmFyXCI7XHJcbmltcG9ydCB7IFRlbGVyaWtSZXBvcnRpbmdNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3MvdGVsZXJpay1hbmd1bGFyLXJlcG9ydC12aWV3ZXInO1xyXG5pbXBvcnQgeyBTY2hlZHVsZXJNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1zY2hlZHVsZXInO1xyXG5pbXBvcnQgeyBUcmVlTGlzdE1vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXRyZWVsaXN0JztcclxuaW1wb3J0IHsgVHJlZVZpZXdNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10cmVldmlldyc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10b29sdGlwJztcclxuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10b29sdGlwXCI7XHJcbmltcG9ydCB7IFVwbG9hZE1vZHVsZSwgVXBsb2Fkc01vZHVsZSB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1hbmd1bGFyLXVwbG9hZCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25Nb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1uYXZpZ2F0aW9uJztcclxuaW1wb3J0IHsgTWVudXNNb2R1bGUgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItbWVudVwiO1xyXG5pbXBvcnQgeyBHYW50dE1vZHVsZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1nYW50dFwiO1xyXG5cclxuLyoqKioqKioqKiogU2VydmljZSAmIERpcmVjdGl2ZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBaQ29yZU1vZHVsZSwgWkdyb3VwIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgTW1oZ2xvYmFsTWlkZGxld2FyZU1vZHVsZSB9IGZyb20gJ21taGdsb2JhbC1taWRkbGV3YXJlJztcclxuaW1wb3J0IHsgTW1oZ2xvYmFsWm1vZGFsTW9kdWxlLCBNb2RhbFNlcnZpY2UgfSBmcm9tICdtbWhnbG9iYWwtem1vZGFsJztcclxuaW1wb3J0IHsgTWFpblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21haW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFNjcm9sbGJhclRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Njcm9sbGJhci50aGVtZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGaWVsZEVsZW1lbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZmllbGRlbGVtZW50LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFpHcmlkQmluZGluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vemdyaWQvemdyaWQuYmluZGluZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBaR3JpZFBvcHVwQW5jaG9yRGlyZWN0aXZlIH0gZnJvbSAnLi96Z3JpZC96Z3JpZC5wb3B1cC5hbmNob3ItdGFyZ2V0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE9wZW5PbkZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZWxlbWVudGNvbnRhaW5lci5kaXJlY3RpdmUnO1xyXG5cclxuLyoqKioqKioqKiogQWRkb24gKioqKioqKioqKi9cclxuaW1wb3J0IHsgRGF0ZVBhcnNlckZpbHRlciB9IGZyb20gJy4vemRhdGV0aW1lL2RhdGVQYXJzZXIucGlwZSc7XHJcbmltcG9ydCB7IEVkaXRvckZpbHRlciB9IGZyb20gJy4vemNvZGVlZGl0b3IvemNvZGVlZGl0b3IucGlwZSc7XHJcbmltcG9ydCB7IERpdnpMYXlvdXQgfSBmcm9tICcuL3pkaXYvemRpdi5waXBlJztcclxuaW1wb3J0IHsgVGFiRmlsdGVyIH0gZnJvbSAnLi96dGFiL3p0YWIucGlwZSc7XHJcbmltcG9ydCB7IFBhbmVsQXJlYUZpbHRlciB9IGZyb20gJy4vcGlwZS9wYW5lbC1hcmVhLnBpcGUnO1xyXG5pbXBvcnQgeyBaSW5wdXRQYXJzZXIgfSBmcm9tICcuL3ppbnB1dC1jb250YWluZXIvemlucHV0LWNvbnRhaW5lci5waXBlJztcclxuaW1wb3J0IHsgSHRtbFNhbml0aXplUGlwZSB9IGZyb20gJy4vcGlwZS9odG1sU2FuaXRpemUucGlwZSc7XHJcbmltcG9ydCB7IERhdGVSYW5nZUZpbHRlckNlbGxDb21wb25lbnQgfSBmcm9tICcuL3pncmlkL2RhdGUtcmFuZ2UtY2VsbC1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWlNjaGVkdWxlclRvb2xCYXJDb21wb25lbnQgfSBmcm9tICcuL3pzY2hlZHVsZXIvenNjaGVkdWxlci50b29sYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpTZWxlY3RUcmFuc2xhdGlvblBhcnNlciB9IGZyb20gJy4venNlbGVjdG11bHRpcGxlL3pzZWxlY3RtdWx0aXBsZS5waXBlJztcclxuaW1wb3J0IHsgWk51bWVyaWNQYXJzZXIgfSBmcm9tICcuL3pudW1lcmljL3pudW1lcmljLmNvbXBvbmVudC5waXBlJztcclxuaW1wb3J0IHsgRGF0ZUtlbmRvRm9ybWF0UGFyc2VyIH0gZnJvbSAnLi96ZGF0ZXRpbWUvZGF0ZUtlbmRvRm9ybWF0UGFyc2VyLnBpcGUnO1xyXG5pbXBvcnQgeyBEYXRlSW9uaWNGb3JtYXRQYXJzZXIgfSBmcm9tICcuL3pkYXRldGltZS9kYXRlSW9uaWNGb3JtYXRQYXJzZXIucGlwZSc7XHJcblxyXG4vKioqKioqKioqKiB6Q29tcG9uZW50ICoqKioqKioqKiovXHJcbmltcG9ydCB7IFVpcGFnZUNvbXBvbmVudCB9IGZyb20gJy4vdWlwYWdlL3VpcGFnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaWhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdWloZWFkZXIvdWloZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWljb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3VpY29udGFpbmVyL3VpY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpY29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdWljb250ZW50L3VpY29udGVudC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgVWltZW51Y29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdWltZW51Y29udGVudC91aW1lbnVjb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpbWVudWJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vdWltZW51YnV0dG9uL3VpbWVudWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaWFwcG1lbnVjb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi91aWFwcG1lbnVjb250ZW50L3VpYXBwbWVudWNvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlidWxsZXRpbkNvbXBvbmVudCB9IGZyb20gJy4vdWlidWxsZXRpbi91aWJ1bGxldGluLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpYWN0aW9uYnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi91aWFjdGlvbmJ1dHRvbi91aWFjdGlvbmJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVaXZhbGlkYXRpb25tZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi91aXZhbGlkYXRpb25tZXNzYWdlL3VpdmFsaWRhdGlvbm1lc3NhZ2UuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IFpCdWxsZXRDb21wb25lbnQgfSBmcm9tIFwiLi96YnVsbGV0L3pidWxsZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpidXR0b25zQ29tcG9uZW50IH0gZnJvbSBcIi4vemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpicmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi96YnJlYWRjcnVtYi96YnJlYWRjcnVtYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaY2FyZENvbXBvbmVudCB9IGZyb20gXCIuL3pjYXJkL3pjYXJkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaY2hhcnRDb21wb25lbnQgfSBmcm9tICcuL3pjaGFydC96Y2hhcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWmNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi96Y2hlY2tib3gvemNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpDaGlwQ29tcG9uZW50IH0gZnJvbSBcIi4vemNoaXAvemNoaXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpjb2RlZWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi96Y29kZWVkaXRvci96Y29kZWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaZGF0ZXJhbmdlQ29tcG9uZW50IH0gZnJvbSAnLi96ZGF0ZXJhbmdlL3pkYXRlcmFuZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWmRhdGV0aW1lQ29tcG9uZW50IH0gZnJvbSAnLi96ZGF0ZXRpbWUvemRhdGV0aW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpkaXZDb21wb25lbnQgfSBmcm9tICcuL3pkaXYvemRpdi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaZm9ybUNvbXBvbmVudCB9IGZyb20gXCIuL3pmb3JtL3pmb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaZm9ybWNvbnRyb2xDb21wb25lbnQgfSBmcm9tIFwiLi96Zm9ybWNvbnRyb2wvemZvcm1jb250cm9sLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaZ2F1Z2VDb21wb25lbnQgfSBmcm9tICcuL3pnYXVnZS96Z2F1Z2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWmdyaWRDb21wb25lbnQgfSBmcm9tIFwiLi96Z3JpZC96Z3JpZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWmdyaWRDb250YWluZXJDb21wb25lbnQgfSBmcm9tIFwiLi96Z3JpZC9jb250YWluZXIvemdyaWQtY29udGFpbmVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaaW1nQ29tcG9uZW50IH0gZnJvbSAnLi96aW1nL3ppbWcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWmxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi96bGFiZWwvemxhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFptZmJDb21wb25lbnQgfSBmcm9tICcuL3ptZmIvem1mYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBabW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi96bW9kYWwvem1vZGFsLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBabW9kYWxNb2JpbGVDb21wb25lbnQgfSBmcm9tIFwiLi96bW9kYWwvem1vZGFsLW1vYmlsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWm51bWVyaWNDb21wb25lbnQgfSBmcm9tICcuL3pudW1lcmljL3pudW1lcmljLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpwb3N0c2VsZWN0aW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3pwb3N0c2VsZWN0aW5wdXQvenBvc3RzZWxlY3RpbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBacmFkaW9idXR0b25Db21wb25lbnQgfSBmcm9tICcuL3pyYWRpb2J1dHRvbi96cmFkaW9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4venJlcG9ydC96cmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpzY2hlZHVsZXJDb21wb25lbnQgfSBmcm9tICcuL3pzY2hlZHVsZXIvenNjaGVkdWxlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBac2VsZWN0bXVsdGlwbGVDb21wb25lbnQgfSBmcm9tIFwiLi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBadGFiQ29tcG9uZW50IH0gZnJvbSBcIi4venRhYi96dGFiLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBadGV4dENvbXBvbmVudCB9IGZyb20gXCIuL3p0ZXh0L3p0ZXh0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBadGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3p0ZXh0YXJlYS96dGV4dGFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnRleHRlZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL3p0ZXh0ZWRpdG9yL3p0ZXh0ZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFp0cmVlQ29tcG9uZW50IH0gZnJvbSAnLi96dHJlZS96dHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBadHJlZWxpc3RDb21wb25lbnQgfSBmcm9tICcuL3p0cmVlbGlzdC96dHJlZWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWnRyZW5kY2FyZENvbXBvbmVudCB9IGZyb20gJy4venRyZW5kY2FyZC96dHJlbmRjYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFp1bmtub3duQ29tcG9uZW50IH0gZnJvbSBcIi4venVua25vd24venVua25vd24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFp1ZGZDb21wb25lbnQgfSBmcm9tICcuL3p1ZGYvenVkZi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBadXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi96dXBsb2FkL3p1cGxvYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWndvcmtmbG93YnV0dG9uc0NvbXBvbmVudCB9IGZyb20gXCIuL3p3b3JrZmxvd2J1dHRvbnMvendvcmtmbG93YnV0dG9ucy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgS2NhcmRDb21wb25lbnQgfSBmcm9tICcuL2tjYXJkL2tjYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpJbnB1dENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vemlucHV0LWNvbnRhaW5lci96aW5wdXQtY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpwcm9ncmVzc2JhckNvbXBvbmVudCB9IGZyb20gJy4venByb2dyZXNzYmFyL3pwcm9ncmVzc2Jhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dEVycm9yTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtZXJyb3ItbWVzc2FnZS9pbnB1dC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0RmllbGRBZGRPbnNDb21wb25lbnQgfSBmcm9tICcuL2VtYmVkLWNvbXBvbmVudHMvaW5wdXQtZmllbGQtYWRkb25zL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9jZXNzaW5nUmVjb3JkTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9lbWJlZC1jb21wb25lbnRzL3Byb2Nlc3NpbmctcmVjb3JkLWxvYWRlci9wcm9jZXNzaW5nLXJlY29yZC1sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZUlvbmljTWluTWF4UGFyc2VyIH0gZnJvbSAnLi96ZGF0ZXRpbWUvZGF0ZUlvbmljTWluTWF4RGF0ZS5waXBlJztcclxuaW1wb3J0IHsgU2ZxdWVyeWJ1aWxkZXJDb21wb25lbnQgfSBmcm9tICcuL3NmcXVlcnlidWlsZGVyL3NmcXVlcnlidWlsZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpsb29wQ29tcG9uZW50IH0gZnJvbSAnLi96bG9vcC96bG9vcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBLc3BsaXR0ZXJDb21wb25lbnQgfSBmcm9tICcuL2tzcGxpdHRlci9rc3BsaXR0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmlydHVhbFNjcm9sbENvbXBvbmVudCB9IGZyb20gJy4vdmlydHVhbC1zY3JvbGwvdmlydHVhbC1zY3JvbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZW1iZWQtY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnZUxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vZW1iZWQtY29tcG9uZW50cy9wYWdlLWxvYWRlci9wYWdlLWxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaY29sb3JwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3pjb2xvcnBpY2tlci96Y29sb3JwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgS21lbnVDb21wb25lbnQgfSBmcm9tICcuL2ttZW51L2ttZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEtTY3JvbGxWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9rc2Nyb2xsdmlldy9rc2Nyb2xsdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTY3JvbGxWaWV3TW9kdWxlIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItc2Nyb2xsdmlldyc7XHJcbmltcG9ydCB7IENvbnRleHRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9lbWJlZC1jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmljb25Db21wb25lbnQgfSBmcm9tICcuL2ZpY29uL2ZpY29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNmZGF0ZXRpbWVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL3NmZGF0ZXRpbWVwaWNrZXIvc2ZkYXRldGltZXBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBaZ2FudHRjaGFydENvbXBvbmVudCB9IGZyb20gJy4vemdhbnR0Y2hhcnQvemdhbnR0Y2hhcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcERvd25CdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wZG93bl9idXR0b25zL2Ryb3Bkb3duX2J1dHRvbnMuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTY3JvbGxiYXJUaGVtZURpcmVjdGl2ZSxcclxuICAgIEZpZWxkRWxlbWVudERpcmVjdGl2ZSxcclxuICAgIFpHcmlkQmluZGluZ0RpcmVjdGl2ZSxcclxuICAgIFpHcmlkUG9wdXBBbmNob3JEaXJlY3RpdmUsXHJcbiAgICBPcGVuT25Gb2N1c0RpcmVjdGl2ZSxcclxuICAgIEVsZW1lbnRDb250YWluZXJEaXJlY3RpdmUsXHJcbiAgICBEYXRlUGFyc2VyRmlsdGVyLCAvLyB6Z3JpZCBhZGRvblxyXG4gICAgRWRpdG9yRmlsdGVyLCAvLyB6Y29kZSBhZGRvblxyXG4gICAgRGl2ekxheW91dCwgLy8gemRpdiBhZGRvblxyXG4gICAgVGFiRmlsdGVyLCAvLyB6dGFiIGFkZG9uXHJcbiAgICBQYW5lbEFyZWFGaWx0ZXIsIC8vIHBhbmVsIGFyZWEgYWRkb25cclxuICAgIERhdGVSYW5nZUZpbHRlckNlbGxDb21wb25lbnQsIC8vIHpncmlkIGFkZG9uXHJcbiAgICBaU2NoZWR1bGVyVG9vbEJhckNvbXBvbmVudCwgLy8genNjaGVkdWxlciBhZGRvblxyXG4gICAgVWloZWFkZXJDb21wb25lbnQsXHJcbiAgICBVaWNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFVpY29udGVudENvbXBvbmVudCxcclxuICAgIFVpcGFnZUNvbXBvbmVudCxcclxuICAgIFVpYnVsbGV0aW5Db21wb25lbnQsXHJcbiAgICBVaWFjdGlvbmJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFVpbWVudWNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBVaW1lbnVidXR0b25Db21wb25lbnQsXHJcbiAgICBVaWFwcG1lbnVjb250ZW50Q29tcG9uZW50LFxyXG4gICAgVWl2YWxpZGF0aW9ubWVzc2FnZUNvbXBvbmVudCxcclxuICAgIFpCdWxsZXRDb21wb25lbnQsXHJcbiAgICBaYnV0dG9uc0NvbXBvbmVudCxcclxuICAgIFpicmVhZGNydW1iQ29tcG9uZW50LFxyXG4gICAgWmNhcmRDb21wb25lbnQsXHJcbiAgICBaY2hhcnRDb21wb25lbnQsXHJcbiAgICBaY2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBaQ2hpcENvbXBvbmVudCxcclxuICAgIFpjb2RlZWRpdG9yQ29tcG9uZW50LFxyXG4gICAgWmRhdGVyYW5nZUNvbXBvbmVudCxcclxuICAgIFpkYXRldGltZUNvbXBvbmVudCxcclxuICAgIFpkaXZDb21wb25lbnQsXHJcbiAgICBaZm9ybUNvbXBvbmVudCxcclxuICAgIFpmb3JtY29udHJvbENvbXBvbmVudCxcclxuICAgIFpnYXVnZUNvbXBvbmVudCxcclxuICAgIFpncmlkQ29tcG9uZW50LFxyXG4gICAgWmltZ0NvbXBvbmVudCxcclxuICAgIFpsYWJlbENvbXBvbmVudCxcclxuICAgIFptZmJDb21wb25lbnQsXHJcbiAgICBabW9kYWxDb21wb25lbnQsXHJcbiAgICBabW9kYWxNb2JpbGVDb21wb25lbnQsXHJcbiAgICBabnVtZXJpY0NvbXBvbmVudCxcclxuICAgIFpwb3N0c2VsZWN0aW5wdXRDb21wb25lbnQsXHJcbiAgICBacmFkaW9idXR0b25Db21wb25lbnQsXHJcbiAgICBacmVwb3J0Q29tcG9uZW50LFxyXG4gICAgWnNjaGVkdWxlckNvbXBvbmVudCxcclxuICAgIFpzZWxlY3RtdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIFp0YWJDb21wb25lbnQsXHJcbiAgICBadGV4dENvbXBvbmVudCxcclxuICAgIFp0ZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIFp0ZXh0ZWRpdG9yQ29tcG9uZW50LFxyXG4gICAgWnRyZWVDb21wb25lbnQsXHJcbiAgICBadHJlZWxpc3RDb21wb25lbnQsXHJcbiAgICBadHJlbmRjYXJkQ29tcG9uZW50LFxyXG4gICAgWnVua25vd25Db21wb25lbnQsXHJcbiAgICBadWRmQ29tcG9uZW50LFxyXG4gICAgWnVwbG9hZENvbXBvbmVudCxcclxuICAgIFp3b3JrZmxvd2J1dHRvbnNDb21wb25lbnQsXHJcbiAgICBLY2FyZENvbXBvbmVudCxcclxuICAgIFpJbnB1dENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFpwcm9ncmVzc2JhckNvbXBvbmVudCxcclxuICAgIFpJbnB1dFBhcnNlcixcclxuICAgIFpTZWxlY3RUcmFuc2xhdGlvblBhcnNlcixcclxuICAgIEh0bWxTYW5pdGl6ZVBpcGUsXHJcbiAgICBJbnB1dEVycm9yTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIElucHV0RmllbGRBZGRPbnNDb21wb25lbnQsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgUGFnZUxvYWRlckNvbXBvbmVudCxcclxuICAgIFByb2Nlc3NpbmdSZWNvcmRMb2FkZXJDb21wb25lbnQsXHJcbiAgICBaTnVtZXJpY1BhcnNlcixcclxuICAgIFpncmlkQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgRGF0ZUtlbmRvRm9ybWF0UGFyc2VyLFxyXG4gICAgRGF0ZUlvbmljRm9ybWF0UGFyc2VyLFxyXG4gICAgRGF0ZUlvbmljTWluTWF4UGFyc2VyLFxyXG4gICAgU2ZxdWVyeWJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBabG9vcENvbXBvbmVudCxcclxuICAgIEtzcGxpdHRlckNvbXBvbmVudCxcclxuICAgIFZpcnR1YWxTY3JvbGxDb21wb25lbnQsXHJcbiAgICBaY29sb3JwaWNrZXJDb21wb25lbnQsXHJcbiAgICBLbWVudUNvbXBvbmVudCxcclxuICAgIEtTY3JvbGxWaWV3Q29tcG9uZW50LFxyXG4gICAgQ29udGV4dE1lbnVDb21wb25lbnQsXHJcbiAgICBGaWNvbkNvbXBvbmVudCxcclxuICAgIFNmZGF0ZXRpbWVwaWNrZXJDb21wb25lbnQsXHJcbiAgICBaZ2FudHRjaGFydENvbXBvbmVudCxcclxuICAgIERyb3BEb3duQnV0dG9uc0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgSW9uaWNNb2R1bGUsXHJcbiAgICBJb25pY1NlbGVjdGFibGVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBBY2VFZGl0b3JNb2R1bGUsXHJcbiAgICBGb250QXdlc29tZU1vZHVsZSxcclxuICAgIFF1ZXJ5QnVpbGRlck1vZHVsZSxcclxuICAgIEFyY0dhdWdlTW9kdWxlLFxyXG4gICAgQnV0dG9uc01vZHVsZSxcclxuICAgIENoYXJ0c01vZHVsZSxcclxuICAgIENhbGVuZGFyTW9kdWxlLFxyXG4gICAgRGF0ZUlucHV0c01vZHVsZSxcclxuICAgIERyb3BEb3duc01vZHVsZSxcclxuICAgIEVkaXRvck1vZHVsZSxcclxuICAgIEV4Y2VsTW9kdWxlLFxyXG4gICAgR3JpZE1vZHVsZSxcclxuICAgIEZpbHRlck1vZHVsZSxcclxuICAgIEluZGljYXRvcnNNb2R1bGUsXHJcbiAgICBJbnRsTW9kdWxlLFxyXG4gICAgSW5wdXRzTW9kdWxlLFxyXG4gICAgU3dpdGNoTW9kdWxlLFxyXG4gICAgVGV4dEJveE1vZHVsZSxcclxuICAgIExhYmVsTW9kdWxlLFxyXG4gICAgTGF5b3V0TW9kdWxlLFxyXG4gICAgUGFuZWxCYXJNb2R1bGUsXHJcbiAgICBUYWJTdHJpcE1vZHVsZSxcclxuICAgIE5vdGlmaWNhdGlvbk1vZHVsZSxcclxuICAgIFBvcHVwTW9kdWxlLFxyXG4gICAgUHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBUZWxlcmlrUmVwb3J0aW5nTW9kdWxlLFxyXG4gICAgU2NoZWR1bGVyTW9kdWxlLFxyXG4gICAgVHJlZUxpc3RNb2R1bGUsXHJcbiAgICBUcmVlVmlld01vZHVsZSxcclxuICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICBQb3BvdmVyTW9kdWxlLFxyXG4gICAgVXBsb2FkTW9kdWxlLFxyXG4gICAgVXBsb2Fkc01vZHVsZSxcclxuICAgIFpDb3JlTW9kdWxlLFxyXG4gICAgTW1oZ2xvYmFsWm1vZGFsTW9kdWxlLFxyXG4gICAgTmF2aWdhdGlvbk1vZHVsZSxcclxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICBTRlF1ZXJ5QnVpbGRlck1vZHVsZSxcclxuICAgIFNjcm9sbGluZ01vZHVsZSxcclxuICAgIFF1ZXJ5QnVpbGRlck1vZHVsZSxcclxuICAgIENvbG9yUGlja2VyTW9kdWxlLFxyXG4gICAgU2Nyb2xsVmlld01vZHVsZSxcclxuICAgIE1lbnVzTW9kdWxlLFxyXG4gICAgRGF0ZVRpbWVQaWNrZXJNb2R1bGUsXHJcbiAgICBHYW50dE1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2Nyb2xsYmFyVGhlbWVEaXJlY3RpdmUsXHJcbiAgICBGaWVsZEVsZW1lbnREaXJlY3RpdmUsXHJcbiAgICBaR3JpZEJpbmRpbmdEaXJlY3RpdmUsXHJcbiAgICBaR3JpZFBvcHVwQW5jaG9yRGlyZWN0aXZlLFxyXG4gICAgT3Blbk9uRm9jdXNEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50Q29udGFpbmVyRGlyZWN0aXZlLFxyXG4gICAgRGF0ZVBhcnNlckZpbHRlciwgLy8gemRhdGV0aW1lIGFkZG9uXHJcbiAgICBFZGl0b3JGaWx0ZXIsIC8vIHpjb2RlIGFkZG9uXHJcbiAgICBEaXZ6TGF5b3V0LCAvLyB6ZGl2IGFkZG9uXHJcbiAgICBUYWJGaWx0ZXIsIC8vIHp0YWIgYWRkb25cclxuICAgIFBhbmVsQXJlYUZpbHRlciwgLy8gcGFuZWwgYXJlYSBhZGRvblxyXG4gICAgRGF0ZVJhbmdlRmlsdGVyQ2VsbENvbXBvbmVudCwgLy8gemdyaWQgYWRkb25cclxuICAgIFpTY2hlZHVsZXJUb29sQmFyQ29tcG9uZW50LCAvLyB6c2NoZWR1bGVyIGFkZG9uXHJcbiAgICBVaWhlYWRlckNvbXBvbmVudCxcclxuICAgIFVpY29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgVWljb250ZW50Q29tcG9uZW50LFxyXG4gICAgVWlwYWdlQ29tcG9uZW50LFxyXG4gICAgVWltZW51Y29udGVudENvbXBvbmVudCxcclxuICAgIFVpbWVudWJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFVpYXBwbWVudWNvbnRlbnRDb21wb25lbnQsXHJcbiAgICBVaWJ1bGxldGluQ29tcG9uZW50LFxyXG4gICAgVWlhY3Rpb25idXR0b25Db21wb25lbnQsXHJcbiAgICBVaXZhbGlkYXRpb25tZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgWkJ1bGxldENvbXBvbmVudCxcclxuICAgIFpidXR0b25zQ29tcG9uZW50LFxyXG4gICAgWmJyZWFkY3J1bWJDb21wb25lbnQsXHJcbiAgICBaY2FyZENvbXBvbmVudCxcclxuICAgIFpjaGFydENvbXBvbmVudCxcclxuICAgIFpjaGVja2JveENvbXBvbmVudCxcclxuICAgIFpDaGlwQ29tcG9uZW50LFxyXG4gICAgWmNvZGVlZGl0b3JDb21wb25lbnQsXHJcbiAgICBaZGF0ZXJhbmdlQ29tcG9uZW50LFxyXG4gICAgWmRhdGV0aW1lQ29tcG9uZW50LFxyXG4gICAgWmRpdkNvbXBvbmVudCxcclxuICAgIFpmb3JtQ29tcG9uZW50LFxyXG4gICAgWmZvcm1jb250cm9sQ29tcG9uZW50LFxyXG4gICAgWmdhdWdlQ29tcG9uZW50LFxyXG4gICAgWmdyaWRDb21wb25lbnQsXHJcbiAgICBaaW1nQ29tcG9uZW50LFxyXG4gICAgWmxhYmVsQ29tcG9uZW50LFxyXG4gICAgWm1mYkNvbXBvbmVudCxcclxuICAgIFptb2RhbENvbXBvbmVudCxcclxuICAgIFptb2RhbE1vYmlsZUNvbXBvbmVudCxcclxuICAgIFpudW1lcmljQ29tcG9uZW50LFxyXG4gICAgWnBvc3RzZWxlY3RpbnB1dENvbXBvbmVudCxcclxuICAgIFpyYWRpb2J1dHRvbkNvbXBvbmVudCxcclxuICAgIFpyZXBvcnRDb21wb25lbnQsXHJcbiAgICBac2NoZWR1bGVyQ29tcG9uZW50LFxyXG4gICAgWnNlbGVjdG11bHRpcGxlQ29tcG9uZW50LFxyXG4gICAgWnRhYkNvbXBvbmVudCxcclxuICAgIFp0ZXh0Q29tcG9uZW50LFxyXG4gICAgWnRleHRhcmVhQ29tcG9uZW50LFxyXG4gICAgWnRleHRlZGl0b3JDb21wb25lbnQsXHJcbiAgICBadHJlZUNvbXBvbmVudCxcclxuICAgIFp0cmVlbGlzdENvbXBvbmVudCxcclxuICAgIFp0cmVuZGNhcmRDb21wb25lbnQsXHJcbiAgICBadW5rbm93bkNvbXBvbmVudCxcclxuICAgIFp1ZGZDb21wb25lbnQsXHJcbiAgICBadXBsb2FkQ29tcG9uZW50LFxyXG4gICAgWndvcmtmbG93YnV0dG9uc0NvbXBvbmVudCxcclxuICAgIFpJbnB1dENvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFpwcm9ncmVzc2JhckNvbXBvbmVudCxcclxuICAgIFpJbnB1dFBhcnNlcixcclxuICAgIFpTZWxlY3RUcmFuc2xhdGlvblBhcnNlcixcclxuICAgIEh0bWxTYW5pdGl6ZVBpcGUsXHJcbiAgICBJbnB1dEVycm9yTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIElucHV0RmllbGRBZGRPbnNDb21wb25lbnQsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgUGFnZUxvYWRlckNvbXBvbmVudCxcclxuICAgIFByb2Nlc3NpbmdSZWNvcmRMb2FkZXJDb21wb25lbnQsXHJcbiAgICBaTnVtZXJpY1BhcnNlcixcclxuICAgIFpncmlkQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgRGF0ZUtlbmRvRm9ybWF0UGFyc2VyLFxyXG4gICAgRGF0ZUlvbmljRm9ybWF0UGFyc2VyLFxyXG4gICAgRGF0ZUlvbmljTWluTWF4UGFyc2VyLFxyXG4gICAgU2ZxdWVyeWJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBabG9vcENvbXBvbmVudCxcclxuICAgIEtzcGxpdHRlckNvbXBvbmVudCxcclxuICAgIFZpcnR1YWxTY3JvbGxDb21wb25lbnQsXHJcbiAgICBaY29sb3JwaWNrZXJDb21wb25lbnQsXHJcbiAgICBLbWVudUNvbXBvbmVudCxcclxuICAgIEtTY3JvbGxWaWV3Q29tcG9uZW50LFxyXG4gICAgRmljb25Db21wb25lbnQsXHJcbiAgICBTZmRhdGV0aW1lcGlja2VyQ29tcG9uZW50LFxyXG4gICAgWmdhbnR0Y2hhcnRDb21wb25lbnQsXHJcbiAgICBEcm9wRG93bkJ1dHRvbnNDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgTW9kYWxTZXJ2aWNlXHJcbiAgXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBNbWhnbG9iYWxEeW5hbWljZm9ybU1vZHVsZSB7IH1cclxuIl19
@@ -181,7 +181,7 @@ export class UiactionbuttonComponent extends ButtonFieldBase {
181
181
  // When loading also to get current Status Information if any.
182
182
  const docInfoParam = {
183
183
  "WorkflowMasterCode": this.data.WorkflowCode,
184
- "DocumentId": documentId,
184
+ "DocumentId": documentId ?? 0,
185
185
  };
186
186
  this.webApiService.httpPost$(this.e1wfs_wfc_getDocumentStatusURL, docInfoParam).pipe(map(res => {
187
187
  this.workflowService.setCurrentDocumentStatus(res);
@@ -226,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
226
226
  type: Component,
227
227
  args: [{ selector: 'app-uiactionbutton', template: "<ion-button (click)=\"onAction()\" [disabled]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n *ngIf=\"isMobileScreen() && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"ion-activatable ripple-parent\">\r\n <!-- <ion-icon name=\"more\" slot=\"icon-only\"></ion-icon> -->\r\n <fa-icon [icon]=\"'ellipsis-v'\"></fa-icon>\r\n <ion-ripple-effect type=\"unbounded\"></ion-ripple-effect>\r\n</ion-button>\r\n", styles: [":host ion-button{width:48px;height:48px;justify-content:center;margin-right:4px;cursor:pointer}:host ion-button fa-icon{text-align:center;justify-content:center;text-overflow:ellipsis;text-transform:none;white-space:nowrap;font-kerning:none;text-decoration:none;font-size:21px}:host ion-button:hover{color:#fff;background-color:#0006;border-radius:20px}\n"] }]
228
228
  }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FieldService }, { type: i2.WebApiService }, { type: i2.ResourceApiService }, { type: i2.WorkflowService }, { type: i3.ActionSheetController }]; } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlhY3Rpb25idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQywyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTFFLE9BQU8sRUFFRyxnQkFBZ0IsRUFBYyxRQUFRLEVBQUUsYUFBYSxFQUM5RCxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBU3pCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUFlO0lBSzFELFlBQ1MsZ0JBQW1DLEVBQ2xDLFlBQTBCLEVBQzFCLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxlQUFnQyxFQUNoQyxlQUFzQztRQUU5QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVBqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQVZoRCx5QkFBb0IsR0FBVSxFQUFFLENBQUM7UUFFakMscUJBQWdCLEdB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QUF1Qjt3R0FBdkIsdUJBQXVCLGlGQ3hCcEMsNGtCQU9BOzJGRGlCYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQWN0aW9uU2hlZXRDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQnV0dG9uRmllbGRCYXNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9idXR0b25maWVsZGJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEZpZWxkU2VydmljZSwgV2ViQXBpU2VydmljZSwgUmVzb3VyY2VBcGlTZXJ2aWNlLCBXb3JrZmxvd1NlcnZpY2UsXHJcbiAgWkZpZWxkLCBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50LCBGb3JtVHlwZSwgQ29tcG9uZW50VHlwZVxyXG59IGZyb20gJ21taGdsb2JhbC16Y29yZSc7ICBcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11aWFjdGlvbmJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpYWN0aW9uYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91aWFjdGlvbmJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVpYWN0aW9uYnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQnV0dG9uRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICB0b3BSaWdodEFjdGlvbkJ1dHRvbjogYW55W10gPSBbXTtcclxuICBhY3Rpb25CdG5MaXN0OiBBcnJheTxaRmllbGQ+O1xyXG4gIGlzV29ya2Zsb3dCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY29tcG9uZW50U2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZpZWxkU2VydmljZTogRmllbGRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3ZWJBcGlTZXJ2aWNlOiBXZWJBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXNvdXJjZUFwaVNlcnZpY2U6IFJlc291cmNlQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgd29ya2Zsb3dTZXJ2aWNlOiBXb3JrZmxvd1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGlvblNoZWV0Q3RybDogQWN0aW9uU2hlZXRDb250cm9sbGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIC8qKioqKioqKioqKioqKioqKioqKiBDb21tb24gZnVuY3Rpb24gKioqKioqKioqKioqKioqKioqKiovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmdldEZpcnN0ekJ1dHRvbih0aGlzLmdyb3VwLmZpZWxkcyk7XHJcbiAgICAvLyB0aGlzLnZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmlzVmlzaWJsZShidXR0b25EYXRhKTtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhKSB7XHJcbiAgICAgIHN1cGVyLmluaXRDb21wb25lbnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZEJ1dHRvbigpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50U2VydmljZS5kZWNyZW1lbnRDb21wb25lbnRDb3VudGVyRm9yRmllbGQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEJ1dHRvbigpIHtcclxuICAgIGlmICghWkNvbXBvbmVudEhlbHBlci5pc051bGxVbmRlZmluZWRFbXB0eSh0aGlzLmRhdGEuV29ya2Zsb3dDb2RlKSkge1xyXG4gICAgICAvLyBoYW5kbGUgYXMgeldvcmtmbG93QnV0dG9uXHJcbiAgICAgIHRoaXMuaXNXb3JrZmxvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9hZFdvcmtmbG93QnV0dG9uKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gaGFuZGxlIGFzIHpCdXR0b25cclxuICAgICAgY29uc3QgZmllbGQkID0gdGhpcy5maWVsZFNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29kZShcclxuICAgICAgICB0aGlzLmRhdGEuVmFsdWUsXHJcbiAgICAgICAgRm9ybVR5cGUuZm9ybUZpZWxkLFxyXG4gICAgICAgIG51bGwsXHJcbiAgICAgICAgbnVsbFxyXG4gICAgICApO1xyXG4gICAgICBmaWVsZCQuc3Vic2NyaWJlKChkYXRhOiBBcnJheTxaRmllbGQ+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25CdG5MaXN0ID0gZGF0YTtcclxuICAgICAgICB0aGlzLnJlbG9hZEJ1dHRvbkxpc3QoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogekJ1dHRvbiAqKioqKioqKioqKioqKioqKioqKi9cclxuICBnZXRGaXJzdHpCdXR0b24oZGF0YTogYW55W10pIHtcclxuICAgIC8vIGRhdGEuZm9yRWFjaChkID0+IHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgaWYgKGRhdGFbaV0uVHlwZSA9PT0gQ29tcG9uZW50VHlwZS5idXR0b24gfHwgZGF0YVtpXS5UeXBlID09PSBDb21wb25lbnRUeXBlLndvcmtmbG93YnV0dG9uKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFbaV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtpXS5WYWx1ZSkpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0Rmlyc3R6QnV0dG9uKGRhdGFbaV0uVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBvbkFjdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmlzV29ya2Zsb3dCdXR0b24pIHtcclxuICAgICAgLy90aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICB0aGlzLmFjdGlvblNoZWV0Q3RybFxyXG4gICAgICAgIC5jcmVhdGUoe1xyXG4gICAgICAgICAgaGVhZGVyOiBcIkNob29zZSBhbiBBY3Rpb25cIixcclxuICAgICAgICAgIGJ1dHRvbnM6IHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b25cclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKGFjdGlvblNoZWV0RWwgPT4ge1xyXG4gICAgICAgICAgYWN0aW9uU2hlZXRFbC5wcmVzZW50KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy90aGlzLnJlbG9hZEJ1dHRvbkxpc3QoKTtcclxuICAgICAgdGhpcy5hY3Rpb25TaGVldEN0cmxcclxuICAgICAgICAuY3JlYXRlKHtcclxuICAgICAgICAgIGhlYWRlcjogXCJDaG9vc2UgYW4gQWN0aW9uXCIsXHJcbiAgICAgICAgICBidXR0b25zOiB0aGlzLnRvcFJpZ2h0QWN0aW9uQnV0dG9uXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhY3Rpb25TaGVldEVsID0+IHtcclxuICAgICAgICAgIGFjdGlvblNoZWV0RWwucHJlc2VudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWxvYWRCdXR0b25MaXN0KCkge1xyXG4gICAgdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvbiA9IFtdO1xyXG4gICAgdGhpcy5hY3Rpb25CdG5MaXN0LmZvckVhY2goKGJ1dHRvbjogWkZpZWxkKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBidXR0b24uVmlzaWJsZSxcclxuICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh2aXNpYmxlICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5nZXRCdXR0b25MYWJlbChidXR0b24pO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvblJvbGUgPSB0aGlzLmdldEJ1dHRvblJvbGUoYnV0dG9uLCBsYWJlbCk7XHJcbiAgICAgICAgdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvbi5wdXNoKHtcclxuICAgICAgICAgIHRleHQ6IGxhYmVsLFxyXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcm9sZTogYnV0dG9uUm9sZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBidXR0b25DbGljayhidXR0b246IGFueSkge1xyXG4gICAgLy8gZGVidWdnZXI7XHJcbiAgICB0aGlzLmdyb3VwWydEaXNtaXNzVHlwZSddID0gYnV0dG9uLkRpc21pc3NUeXBlO1xyXG4gICAgc3VwZXIuYnV0dG9uQ2xpY2soYnV0dG9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnV0dG9uUm9sZShidXR0b246IGFueSwgbGFiZWw6IHN0cmluZykge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJnZXRCdXR0b25Sb2xlOiBcIiwgbGFiZWwsIGJ1dHRvbi5DbGlja0V2ZW50KTtcclxuICAgIGNvbnN0IGxvd2VyQ2FzZUxhYmVsID0gbGFiZWwudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmIChcclxuICAgICAgbG93ZXJDYXNlTGFiZWwuaW5kZXhPZihcImNhbmNlbFwiKSAhPT0gLTEgfHxcclxuICAgICAgbG93ZXJDYXNlTGFiZWwuaW5kZXhPZihcImNsb3NlXCIpICE9PSAtMVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBcImNhbmNlbFwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogeldvcmtmbG93QnV0dG9uICoqKioqKioqKioqKioqKioqKioqL1xyXG4gIC8vIFVSTCByZXF1aXJlZFxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtYmxhY2tsaXN0LGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTFwiKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWJsYWNrbGlzdCxpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwgPSB0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRVUkwoXCJlMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMXCIpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sIG5vLXVuZGVyc2NvcmUtZGFuZ2xlLCBpZC1ibGFja2xpc3QsIGlkLW1hdGNoXHJcbiAgZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMXCIpO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBsb2FkV29ya2Zsb3dCdXR0b24oKSB7XHJcbiAgICAvLyAgYWN0aW9uQnRuTGlzdDogQXJyYXk8WkZpZWxkPjtcclxuICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24gPSBbXTtcclxuXHJcbiAgICAvLyBHZXQgV0ZTX0RvY3VtZW50SWQgaWYgYW55LlxyXG4gICAgbGV0IGRvY3VtZW50SWQgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuek1vZGVsKSB7XHJcbiAgICAgIGRvY3VtZW50SWQgPSB0aGlzLmdyb3VwLnpNb2RlbFsnV0ZTX0RvY3VtZW50SWQnXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZXQgdGhlIGRvY3VtZW50SWQgdG8gdGhlIHNlcnZpY2VcclxuICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLmFwcGVuZFdGU19Eb2N1bWVudHNJbmZvKHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsIGRvY3VtZW50SWQpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIC8vIFNldCBwYXJhbSBmb3IgZmllbGRcclxuICAgICAgY29uc3QgZmllbGQkID0gdGhpcy53b3JrZmxvd1NlcnZpY2UuZ2V0V29ya2Zsb3dCdXR0b25zRmllbGQoXHJcbiAgICAgICAgdGhpcy5kYXRhLldvcmtmbG93Q29kZSxcclxuICAgICAgICB0aGlzLmUxd2ZzX3dmY0dldFdvcmtmbG93QnV0dG9uVVJMLFxyXG4gICAgICAgIFN0cmluZyhmYWxzZSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGZpZWxkJC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKChidXR0b246IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmdldEJ1dHRvbkxhYmVsKGJ1dHRvbik7XHJcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICAgICAgICBjb25zdCBidXR0b25MYWJlbCA9IGxhYmVsIHx8IGF0dHJpYnV0ZXMuTGFiZWw7XHJcbiAgICAgICAgICBjb25zdCBfaXNWaXNpYmxlID0gdGhpcy5pc0J0blZpc2libGUoYnV0dG9uLlZpc2libGUpO1xyXG5cclxuICAgICAgICAgIGlmIChfaXNWaXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24ucHVzaCh7XHJcbiAgICAgICAgICAgICAgdGV4dDogYnV0dG9uTGFiZWwsXHJcbiAgICAgICAgICAgICAgZmllbGRBdHRyaWJ1dGU6IGJ1dHRvbixcclxuICAgICAgICAgICAgICBpY29uTmFtZTogYXR0cmlidXRlcy5JY29uLFxyXG4gICAgICAgICAgICAgIGhhbmRsZXI6ICh5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9aQ29tcG9uZW50SGVscGVyLmNvbGxlY3RXb3JrZmxvd0J1dHRvbih0aGlzLmdyb3VwLCB0aGlzLmRhdGEuV29ya2Zsb3dDb2RlLCBidXR0b25MYWJlbCwgYnV0dG9uLCBhdHRyaWJ1dGVzLCBtYXBwZWRJbmZvKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuZGF0YS5EaXNhYmxlU3luY1dvcmtmbG93U3RhdHVzKSB7XHJcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgc3RhdHVzXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9kb3Qtbm90YXRpb25cclxuICAgICAgICBpZiAoIXRoaXMuZ3JvdXAuek1vZGVsW1wiV0ZTX1N0YXR1c05hbWVcIl0pIHtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgXCJXb3JrZmxvd01hc3RlckNvZGVcIjogdGhpcy5kYXRhLldvcmtmbG93Q29kZVxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy53ZWJBcGlTZXJ2aWNlLmh0dHBQb3N0JCh0aGlzLmUxd2ZzX3dmY19nZXRXb3JrZmxvd0luaXRpYWxTdGF0dXNVUkwsIHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcy5EYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzSWRcIiwgcmVzLkRhdGFbXCJJZFwiXSwgdGhpcy5ncm91cCk7XHJcbiAgICAgICAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLnByZXNldE1vZGVsVmFsdWUoXCJXRlNfU3RhdHVzTmFtZVwiLCByZXMuRGF0YVtcIk5hbWVcIl0sIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKFwiV0ZTX1N0YXR1c0NvZGVcIiwgcmVzLkRhdGFbXCJDb2RlXCJdLCB0aGlzLmdyb3VwKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS5zZXRDdXJyZW50RG9jdW1lbnRTdGF0dXMocmVzLkRhdGEpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFdoZW4gbG9hZGluZyBhbHNvIHRvIGdldCBjdXJyZW50IFN0YXR1cyBJbmZvcm1hdGlvbiBpZiBhbnkuXHJcbiAgICAgICAgICBjb25zdCBkb2NJbmZvUGFyYW0gPSB7XHJcbiAgICAgICAgICAgIFwiV29ya2Zsb3dNYXN0ZXJDb2RlXCI6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgICAgIFwiRG9jdW1lbnRJZFwiOiBkb2N1bWVudElkLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cFBvc3QkKHRoaXMuZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMLCBkb2NJbmZvUGFyYW0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMpO1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcy5EYXRhKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHtcclxuICAgIC8vIFR5cGUgMSA9PSBmdW5jdGlvbmFsO1xyXG4gICAgLy8gVHlwZSAyID09IEdPVE87XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICBzd2l0Y2ggKGJ1dHRvbi5UeXBlQ29kZS50b1VwcGVyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgXCJGVU5DVElPTlwiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRnVuY3Rpb25hbCBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZnVuY3Rpb25hbEJ1dHRvbl9PbkNsaWNrKGF0dHJpYnV0ZXMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiR09UT1wiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiR09UTyBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZ290b0J1dHRvbl9PbmNsaWNrKGJ1dHRvbiwgdGhpcy5kYXRhLCBhdHRyaWJ1dGVzLCB0aGlzLmdyb3VwLCBmYWxzZSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS50cmlnZ2VyU2VuZEVtYWlsKHRoaXMuZ3JvdXApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBCdXR0b24gVHlwZS4gXCIsIGJ1dHRvbi5OYW1lKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uQWN0aW9uKClcIiBbZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW9uLWFjdGl2YXRhYmxlIHJpcHBsZS1wYXJlbnRcIj5cclxuICA8IS0tIDxpb24taWNvbiBuYW1lPVwibW9yZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPiAtLT5cclxuICA8ZmEtaWNvbiBbaWNvbl09XCInZWxsaXBzaXMtdidcIj48L2ZhLWljb24+XHJcbiAgPGlvbi1yaXBwbGUtZWZmZWN0IHR5cGU9XCJ1bmJvdW5kZWRcIj48L2lvbi1yaXBwbGUtZWZmZWN0PlxyXG48L2lvbi1idXR0b24+XHJcbiJdfQ==
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlhY3Rpb25idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvdWlhY3Rpb25idXR0b24vdWlhY3Rpb25idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQywyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTFFLE9BQU8sRUFFRyxnQkFBZ0IsRUFBYyxRQUFRLEVBQUUsYUFBYSxFQUM5RCxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBU3pCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxlQUFlO0lBSzFELFlBQ1MsZ0JBQW1DLEVBQ2xDLFlBQTBCLEVBQzFCLGFBQTRCLEVBQzVCLGtCQUFzQyxFQUN0QyxlQUFnQyxFQUNoQyxlQUFzQztRQUU5QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVBqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQVZoRCx5QkFBb0IsR0FBVSxFQUFFLENBQUM7UUFFakMscUJBQWdCLEdB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O29IQXpQVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixpRkN4QnBDLDRrQkFPQTsyRkRpQmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcbmltcG9ydCB7IEFjdGlvblNoZWV0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEJ1dHRvbkZpZWxkQmFzZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBGaWVsZFNlcnZpY2UsIFdlYkFwaVNlcnZpY2UsIFJlc291cmNlQXBpU2VydmljZSwgV29ya2Zsb3dTZXJ2aWNlLFxyXG4gIFpGaWVsZCwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudCwgRm9ybVR5cGUsIENvbXBvbmVudFR5cGVcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnOyAgXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdWlhY3Rpb25idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91aWFjdGlvbmJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdWlhY3Rpb25idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBVaWFjdGlvbmJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEJ1dHRvbkZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgdG9wUmlnaHRBY3Rpb25CdXR0b246IGFueVtdID0gW107XHJcbiAgYWN0aW9uQnRuTGlzdDogQXJyYXk8WkZpZWxkPjtcclxuICBpc1dvcmtmbG93QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWVsZFNlcnZpY2U6IEZpZWxkU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ViQXBpU2VydmljZTogV2ViQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzb3VyY2VBcGlTZXJ2aWNlOiBSZXNvdXJjZUFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHdvcmtmbG93U2VydmljZTogV29ya2Zsb3dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25TaGVldEN0cmw6IEFjdGlvblNoZWV0Q29udHJvbGxlclxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICAvKioqKioqKioqKioqKioqKioqKiogQ29tbW9uIGZ1bmN0aW9uICoqKioqKioqKioqKioqKioqKioqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5nZXRGaXJzdHpCdXR0b24odGhpcy5ncm91cC5maWVsZHMpO1xyXG4gICAgLy8gdGhpcy52aXNpYmxlID0gWkNvbXBvbmVudEhlbHBlci5pc1Zpc2libGUoYnV0dG9uRGF0YSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRCdXR0b24oKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFNlcnZpY2UuZGVjcmVtZW50Q29tcG9uZW50Q291bnRlckZvckZpZWxkKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRCdXR0b24oKSB7XHJcbiAgICBpZiAoIVpDb21wb25lbnRIZWxwZXIuaXNOdWxsVW5kZWZpbmVkRW1wdHkodGhpcy5kYXRhLldvcmtmbG93Q29kZSkpIHtcclxuICAgICAgLy8gaGFuZGxlIGFzIHpXb3JrZmxvd0J1dHRvblxyXG4gICAgICB0aGlzLmlzV29ya2Zsb3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIGhhbmRsZSBhcyB6QnV0dG9uXHJcbiAgICAgIGNvbnN0IGZpZWxkJCA9IHRoaXMuZmllbGRTZXJ2aWNlLmdldEZvcm1GaWVsZENvZGUoXHJcbiAgICAgICAgdGhpcy5kYXRhLlZhbHVlLFxyXG4gICAgICAgIEZvcm1UeXBlLmZvcm1GaWVsZCxcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIG51bGxcclxuICAgICAgKTtcclxuICAgICAgZmllbGQkLnN1YnNjcmliZSgoZGF0YTogQXJyYXk8WkZpZWxkPikgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aW9uQnRuTGlzdCA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5yZWxvYWRCdXR0b25MaXN0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqKioqKioqKioqKioqKioqKioqIHpCdXR0b24gKioqKioqKioqKioqKioqKioqKiovXHJcbiAgZ2V0Rmlyc3R6QnV0dG9uKGRhdGE6IGFueVtdKSB7XHJcbiAgICAvLyBkYXRhLmZvckVhY2goZCA9PiB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmIChkYXRhW2ldLlR5cGUgPT09IENvbXBvbmVudFR5cGUuYnV0dG9uIHx8IGRhdGFbaV0uVHlwZSA9PT0gQ29tcG9uZW50VHlwZS53b3JrZmxvd2J1dHRvbikge1xyXG4gICAgICAgIHJldHVybiBkYXRhW2ldO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFbaV0uVmFsdWUpKSB7XHJcbiAgICAgICAgICB0aGlzLmdldEZpcnN0ekJ1dHRvbihkYXRhW2ldLlZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25BY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5pc1dvcmtmbG93QnV0dG9uKSB7XHJcbiAgICAgIC8vdGhpcy5sb2FkV29ya2Zsb3dCdXR0b24oKTtcclxuICAgICAgdGhpcy5hY3Rpb25TaGVldEN0cmxcclxuICAgICAgICAuY3JlYXRlKHtcclxuICAgICAgICAgIGhlYWRlcjogXCJDaG9vc2UgYW4gQWN0aW9uXCIsXHJcbiAgICAgICAgICBidXR0b25zOiB0aGlzLnRvcFJpZ2h0QWN0aW9uQnV0dG9uXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihhY3Rpb25TaGVldEVsID0+IHtcclxuICAgICAgICAgIGFjdGlvblNoZWV0RWwucHJlc2VudCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vdGhpcy5yZWxvYWRCdXR0b25MaXN0KCk7XHJcbiAgICAgIHRoaXMuYWN0aW9uU2hlZXRDdHJsXHJcbiAgICAgICAgLmNyZWF0ZSh7XHJcbiAgICAgICAgICBoZWFkZXI6IFwiQ2hvb3NlIGFuIEFjdGlvblwiLFxyXG4gICAgICAgICAgYnV0dG9uczogdGhpcy50b3BSaWdodEFjdGlvbkJ1dHRvblxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oYWN0aW9uU2hlZXRFbCA9PiB7XHJcbiAgICAgICAgICBhY3Rpb25TaGVldEVsLnByZXNlbnQoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVsb2FkQnV0dG9uTGlzdCgpIHtcclxuICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24gPSBbXTtcclxuICAgIHRoaXMuYWN0aW9uQnRuTGlzdC5mb3JFYWNoKChidXR0b246IFpGaWVsZCkgPT4ge1xyXG4gICAgICBjb25zdCB2aXNpYmxlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgYnV0dG9uLlZpc2libGUsXHJcbiAgICAgICAgdGhpcy5ncm91cFxyXG4gICAgICApO1xyXG4gICAgICBpZiAodmlzaWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0QnV0dG9uTGFiZWwoYnV0dG9uKTtcclxuICAgICAgICBjb25zdCBidXR0b25Sb2xlID0gdGhpcy5nZXRCdXR0b25Sb2xlKGJ1dHRvbiwgbGFiZWwpO1xyXG4gICAgICAgIHRoaXMudG9wUmlnaHRBY3Rpb25CdXR0b24ucHVzaCh7XHJcbiAgICAgICAgICB0ZXh0OiBsYWJlbCxcclxuICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5idXR0b25DbGljayhidXR0b24pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHJvbGU6IGJ1dHRvblJvbGVcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHtcclxuICAgIC8vIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5ncm91cFsnRGlzbWlzc1R5cGUnXSA9IGJ1dHRvbi5EaXNtaXNzVHlwZTtcclxuICAgIHN1cGVyLmJ1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEJ1dHRvblJvbGUoYnV0dG9uOiBhbnksIGxhYmVsOiBzdHJpbmcpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiZ2V0QnV0dG9uUm9sZTogXCIsIGxhYmVsLCBidXR0b24uQ2xpY2tFdmVudCk7XHJcbiAgICBjb25zdCBsb3dlckNhc2VMYWJlbCA9IGxhYmVsLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgIGxvd2VyQ2FzZUxhYmVsLmluZGV4T2YoXCJjYW5jZWxcIikgIT09IC0xIHx8XHJcbiAgICAgIGxvd2VyQ2FzZUxhYmVsLmluZGV4T2YoXCJjbG9zZVwiKSAhPT0gLTFcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gXCJjYW5jZWxcIjtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqKioqKioqKioqKioqKioqKioqIHpXb3JrZmxvd0J1dHRvbiAqKioqKioqKioqKioqKioqKioqKi9cclxuICAvLyBVUkwgcmVxdWlyZWRcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWJsYWNrbGlzdCxpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY0dldFdvcmtmbG93QnV0dG9uVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjR2V0V29ya2Zsb3dCdXR0b25VUkxcIik7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbixuby11bmRlcnNjb3JlLWRhbmdsZSxpZC1ibGFja2xpc3QsaWQtbWF0Y2hcclxuICBlMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMID0gdGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0VVJMKFwiZTF3ZnNfd2ZjX2dldFdvcmtmbG93SW5pdGlhbFN0YXR1c1VSTFwiKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLCBuby11bmRlcnNjb3JlLWRhbmdsZSwgaWQtYmxhY2tsaXN0LCBpZC1tYXRjaFxyXG4gIGUxd2ZzX3dmY19nZXREb2N1bWVudFN0YXR1c1VSTCA9IHRoaXMucmVzb3VyY2VBcGlTZXJ2aWNlLmdldFVSTChcImUxd2ZzX3dmY19nZXREb2N1bWVudFN0YXR1c1VSTFwiKTtcclxuXHJcblxyXG4gIHByaXZhdGUgbG9hZFdvcmtmbG93QnV0dG9uKCkge1xyXG4gICAgLy8gIGFjdGlvbkJ0bkxpc3Q6IEFycmF5PFpGaWVsZD47XHJcbiAgICB0aGlzLnRvcFJpZ2h0QWN0aW9uQnV0dG9uID0gW107XHJcblxyXG4gICAgLy8gR2V0IFdGU19Eb2N1bWVudElkIGlmIGFueS5cclxuICAgIGxldCBkb2N1bWVudElkID0gbnVsbDtcclxuICAgIGlmICh0aGlzLmdyb3VwLnpNb2RlbCkge1xyXG4gICAgICBkb2N1bWVudElkID0gdGhpcy5ncm91cC56TW9kZWxbJ1dGU19Eb2N1bWVudElkJ107XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2V0IHRoZSBkb2N1bWVudElkIHRvIHRoZSBzZXJ2aWNlXHJcbiAgICB0aGlzLndvcmtmbG93U2VydmljZS5hcHBlbmRXRlNfRG9jdW1lbnRzSW5mbyh0aGlzLmRhdGEuV29ya2Zsb3dDb2RlLCBkb2N1bWVudElkKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICAvLyBTZXQgcGFyYW0gZm9yIGZpZWxkXHJcbiAgICAgIGNvbnN0IGZpZWxkJCA9IHRoaXMud29ya2Zsb3dTZXJ2aWNlLmdldFdvcmtmbG93QnV0dG9uc0ZpZWxkKFxyXG4gICAgICAgIHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGUsXHJcbiAgICAgICAgdGhpcy5lMXdmc193ZmNHZXRXb3JrZmxvd0J1dHRvblVSTCxcclxuICAgICAgICBTdHJpbmcoZmFsc2UpXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBmaWVsZCQuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgIGRhdGEuZm9yRWFjaCgoYnV0dG9uOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5nZXRCdXR0b25MYWJlbChidXR0b24pO1xyXG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IEpTT04ucGFyc2UoYnV0dG9uLkF0dHJpYnV0ZXMpO1xyXG4gICAgICAgICAgY29uc3QgYnV0dG9uTGFiZWwgPSBsYWJlbCB8fCBhdHRyaWJ1dGVzLkxhYmVsO1xyXG4gICAgICAgICAgY29uc3QgX2lzVmlzaWJsZSA9IHRoaXMuaXNCdG5WaXNpYmxlKGJ1dHRvbi5WaXNpYmxlKTtcclxuXHJcbiAgICAgICAgICBpZiAoX2lzVmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvcFJpZ2h0QWN0aW9uQnV0dG9uLnB1c2goe1xyXG4gICAgICAgICAgICAgIHRleHQ6IGJ1dHRvbkxhYmVsLFxyXG4gICAgICAgICAgICAgIGZpZWxkQXR0cmlidXRlOiBidXR0b24sXHJcbiAgICAgICAgICAgICAgaWNvbk5hbWU6IGF0dHJpYnV0ZXMuSWNvbixcclxuICAgICAgICAgICAgICBoYW5kbGVyOiAoeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbkNsaWNrKGJ1dHRvbik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vWkNvbXBvbmVudEhlbHBlci5jb2xsZWN0V29ya2Zsb3dCdXR0b24odGhpcy5ncm91cCwgdGhpcy5kYXRhLldvcmtmbG93Q29kZSwgYnV0dG9uTGFiZWwsIGJ1dHRvbiwgYXR0cmlidXRlcywgbWFwcGVkSW5mbyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmRhdGEuRGlzYWJsZVN5bmNXb3JrZmxvd1N0YXR1cykge1xyXG4gICAgICAgIC8vIFNldCBkZWZhdWx0IHN0YXR1c1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uXHJcbiAgICAgICAgaWYgKCF0aGlzLmdyb3VwLnpNb2RlbFtcIldGU19TdGF0dXNOYW1lXCJdKSB7XHJcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgIFwiV29ya2Zsb3dNYXN0ZXJDb2RlXCI6IHRoaXMuZGF0YS5Xb3JrZmxvd0NvZGVcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMud2ViQXBpU2VydmljZS5odHRwUG9zdCQodGhpcy5lMXdmc193ZmNfZ2V0V29ya2Zsb3dJbml0aWFsU3RhdHVzVVJMLCBwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKFwiV0ZTX1N0YXR1c0lkXCIsIHJlcy5EYXRhW1wiSWRcIl0sIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5wcmVzZXRNb2RlbFZhbHVlKFwiV0ZTX1N0YXR1c05hbWVcIiwgcmVzLkRhdGFbXCJOYW1lXCJdLCB0aGlzLmdyb3VwKTtcclxuICAgICAgICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIucHJlc2V0TW9kZWxWYWx1ZShcIldGU19TdGF0dXNDb2RlXCIsIHJlcy5EYXRhW1wiQ29kZVwiXSwgdGhpcy5ncm91cCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcy5EYXRhKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBXaGVuIGxvYWRpbmcgYWxzbyB0byBnZXQgY3VycmVudCBTdGF0dXMgSW5mb3JtYXRpb24gaWYgYW55LlxyXG4gICAgICAgICAgY29uc3QgZG9jSW5mb1BhcmFtID0ge1xyXG4gICAgICAgICAgICBcIldvcmtmbG93TWFzdGVyQ29kZVwiOiB0aGlzLmRhdGEuV29ya2Zsb3dDb2RlLFxyXG4gICAgICAgICAgICBcIkRvY3VtZW50SWRcIjogZG9jdW1lbnRJZCA/PyAwLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLndlYkFwaVNlcnZpY2UuaHR0cFBvc3QkKHRoaXMuZTF3ZnNfd2ZjX2dldERvY3VtZW50U3RhdHVzVVJMLCBkb2NJbmZvUGFyYW0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTZXJ2aWNlLnNldEN1cnJlbnREb2N1bWVudFN0YXR1cyhyZXMpO1xyXG4gICAgICAgICAgICAgIGlmIChyZXMuRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2Uuc2V0Q3VycmVudERvY3VtZW50U3RhdHVzKHJlcy5EYXRhKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdvcmtmbG93QnV0dG9uQ2xpY2soYnV0dG9uOiBhbnkpIHtcclxuICAgIC8vIFR5cGUgMSA9PSBmdW5jdGlvbmFsO1xyXG4gICAgLy8gVHlwZSAyID09IEdPVE87XHJcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gSlNPTi5wYXJzZShidXR0b24uQXR0cmlidXRlcyk7XHJcbiAgICBzd2l0Y2ggKGJ1dHRvbi5UeXBlQ29kZS50b1VwcGVyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgXCJGVU5DVElPTlwiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiRnVuY3Rpb25hbCBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZnVuY3Rpb25hbEJ1dHRvbl9PbkNsaWNrKGF0dHJpYnV0ZXMsIHRoaXMuZ3JvdXApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiR09UT1wiOlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiR09UTyBCdXR0b246IFwiLCBidXR0b24uTmFtZSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd1NlcnZpY2UuZ290b0J1dHRvbl9PbmNsaWNrKGJ1dHRvbiwgdGhpcy5kYXRhLCBhdHRyaWJ1dGVzLCB0aGlzLmdyb3VwLCBmYWxzZSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRXb3JrZmxvd0J1dHRvbigpO1xyXG4gICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICB0aGlzLndvcmtmbG93U2VydmljZS50cmlnZ2VyU2VuZEVtYWlsKHRoaXMuZ3JvdXApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiSW52YWxpZCBCdXR0b24gVHlwZS4gXCIsIGJ1dHRvbi5OYW1lKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uQWN0aW9uKClcIiBbZGlzYWJsZWRdPVwiKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5RmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHlGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVhZE9ubHkpXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJpc01vYmlsZVNjcmVlbigpICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW9uLWFjdGl2YXRhYmxlIHJpcHBsZS1wYXJlbnRcIj5cclxuICA8IS0tIDxpb24taWNvbiBuYW1lPVwibW9yZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPiAtLT5cclxuICA8ZmEtaWNvbiBbaWNvbl09XCInZWxsaXBzaXMtdidcIj48L2ZhLWljb24+XHJcbiAgPGlvbi1yaXBwbGUtZWZmZWN0IHR5cGU9XCJ1bmJvdW5kZWRcIj48L2lvbi1yaXBwbGUtZWZmZWN0PlxyXG48L2lvbi1idXR0b24+XHJcbiJdfQ==
@@ -0,0 +1,88 @@
1
+ /********** Angular **********/
2
+ import { Component } from "@angular/core";
3
+ import { ZComponentHelper } from 'mmhglobal-zcore';
4
+ import { ContainerFieldBase } from "../components/containerfieldbase.component";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../services/zcomponent.service";
7
+ import * as i2 from "@angular/router";
8
+ import * as i3 from "../services/main.service";
9
+ import * as i4 from "mmhglobal-zcore";
10
+ import * as i5 from "@ionic/angular";
11
+ import * as i6 from "@progress/kendo-angular-navigation";
12
+ import * as i7 from "@fortawesome/angular-fontawesome";
13
+ import * as i8 from "@angular/common";
14
+ import * as i9 from "@angular/flex-layout/extended";
15
+ export class ZbreadcrumbComponent extends ContainerFieldBase {
16
+ constructor(componentService, router, mainService, cacheService) {
17
+ super(componentService);
18
+ this.componentService = componentService;
19
+ this.router = router;
20
+ this.mainService = mainService;
21
+ this.cacheService = cacheService;
22
+ this.navItems = [];
23
+ this.options = {
24
+ navItems: this.navItems,
25
+ };
26
+ this.setData = (gData) => {
27
+ this.getFieldDeclarationForSetup(this.data);
28
+ };
29
+ }
30
+ ngOnInit() {
31
+ super.initComponent().subscribe(() => {
32
+ if (this.data.Options) {
33
+ const optionType = typeof (this.data.Options);
34
+ if (optionType === 'object') {
35
+ Object.assign(this.options, this.data.Options);
36
+ }
37
+ else if (optionType === 'string') {
38
+ const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);
39
+ if (typeof (optionValue) === 'object') {
40
+ Object.assign(this.options, optionValue);
41
+ }
42
+ }
43
+ }
44
+ if (this.data.Options && this.data.Options.navItems && typeof (this.data.Options.navItems) === 'string') {
45
+ this.options.navItems =
46
+ ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.navItems);
47
+ }
48
+ this.getFieldDeclarationForSetup(this.data);
49
+ this.isLoading = false;
50
+ });
51
+ }
52
+ getFieldDeclarationForSetup(field) {
53
+ this.options.navItems = ZComponentHelper.getGroupEvalValue.call(this, field.NavItems) || [];
54
+ }
55
+ onNavItemClick(navItem) {
56
+ if (navItem.action) {
57
+ // Get the function expression from the configuration
58
+ let expression = navItem.action;
59
+ // Ensure the expression starts with 'this.' to avoid accessing global scope
60
+ if (!expression.startsWith('this.')) {
61
+ expression = `this.${expression}`;
62
+ }
63
+ const func = eval(expression);
64
+ if (func) {
65
+ const callFunc = func.bind(this.group);
66
+ return callFunc(navItem);
67
+ }
68
+ }
69
+ else if (navItem.route) {
70
+ // clear cloneNewModel cache(if have)
71
+ if (this.cacheService.getCache("cloneNewModel")) {
72
+ this.cacheService.clearCache("cloneNewModel");
73
+ }
74
+ this.mainService.removeLastRouteParam();
75
+ if (navItem.routeParam) {
76
+ this.mainService.setRouteParam(navItem.routeParam);
77
+ }
78
+ this.router.navigateByUrl(navItem.route, { replaceUrl: true });
79
+ }
80
+ }
81
+ }
82
+ ZbreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZbreadcrumbComponent, deps: [{ token: i1.ZComponentService }, { token: i2.Router }, { token: i3.MainService }, { token: i4.CacheService }], target: i0.ɵɵFactoryTarget.Component });
83
+ ZbreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ZbreadcrumbComponent, selector: "app-zbreadcrumb", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-grid>\r\n <ion-row *ngIf=\"!group.isLoading && !isMobileScreen() && options && options.navItems\">\r\n <kendo-breadcrumb [items]=\"options.navItems\" class=\"nav-bar\" (itemClick)=\"onNavItemClick($event)\">\r\n <ng-template kendoBreadCrumbItemTemplate let-item let-index=\"index\">\r\n <div class=\"nav-bar-item\" [class.current]=\"!item.route\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\" class=\"zcard-header-icon\"\r\n [ngClass]=\"{'icon-with-text': item.text}\"></fa-icon>\r\n <span>{{ item.text }}</span>\r\n </div>\r\n </ng-template>\r\n </kendo-breadcrumb>\r\n </ion-row>\r\n </ion-grid>\r\n</div>\r\n", styles: [""], components: [{ type: i5.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { type: i5.IonRow, selector: "ion-row" }, { type: i6.BreadCrumbComponent, selector: "kendo-breadcrumb", inputs: ["items", "separatorIcon", "collapseMode"], outputs: ["itemClick"], exportAs: ["kendoBreadCrumb"] }, { type: i7.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.BreadCrumbItemTemplateDirective, selector: "[kendoBreadCrumbItemTemplate]" }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ZbreadcrumbComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'app-zbreadcrumb', template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <ion-grid>\r\n <ion-row *ngIf=\"!group.isLoading && !isMobileScreen() && options && options.navItems\">\r\n <kendo-breadcrumb [items]=\"options.navItems\" class=\"nav-bar\" (itemClick)=\"onNavItemClick($event)\">\r\n <ng-template kendoBreadCrumbItemTemplate let-item let-index=\"index\">\r\n <div class=\"nav-bar-item\" [class.current]=\"!item.route\">\r\n <fa-icon *ngIf=\"item.icon\" [icon]=\"item.icon\" class=\"zcard-header-icon\"\r\n [ngClass]=\"{'icon-with-text': item.text}\"></fa-icon>\r\n <span>{{ item.text }}</span>\r\n </div>\r\n </ng-template>\r\n </kendo-breadcrumb>\r\n </ion-row>\r\n </ion-grid>\r\n</div>\r\n", styles: [""] }]
87
+ }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.Router }, { type: i3.MainService }, { type: i4.CacheService }]; } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemJyZWFkY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJyZWFkY3J1bWIvemJyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemJyZWFkY3J1bWIvemJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFVbEQsT0FBTyxFQUE0QixnQkFBZ0IsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBSXJGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7OztBQVNoRixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBUTFELFlBQ1MsZ0JBQW1DLEVBQ2xDLE1BQWMsRUFDZCxXQUF3QixFQUN4QixZQUEwQjtRQUVsQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUxqQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVY1QixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBRXRCLFlBQU8sR0FBRztZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO1FBeUVLLFlBQU8sR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFBO0lBbEVELENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLGFBQWEs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QUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7O2lIQTdFVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw4RUN4QmpDLG8yQkFlQTsyRkRTYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbi8vIGltcG9ydCB7IGdyb3VwQnksIEdyb3VwUmVzdWx0IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBEYXRhTGlzdGluZ0ZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2RhdGFsaXN0aW5nZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlLCBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyLCBaRmllbGQgfSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5pbXBvcnQgeyBFbGVtZW50LCBHcm91cCwgUGF0aCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1kcmF3aW5nJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBNYWluU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9tYWluLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29udGFpbmVyRmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvY29udGFpbmVyZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXpicmVhZGNydW1iJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vemJyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3picmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWmJyZWFkY3J1bWJDb21wb25lbnQgZXh0ZW5kcyBDb250YWluZXJGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG5cclxuICBwcml2YXRlIG5hdkl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgb3B0aW9ucyA9IHtcclxuICAgIG5hdkl0ZW1zOiB0aGlzLm5hdkl0ZW1zLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbWFpblNlcnZpY2U6IE1haW5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYWNoZVNlcnZpY2U6IENhY2hlU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5PcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uVHlwZSA9IHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICAgIGlmIChvcHRpb25UeXBlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm9wdGlvbnMsIHRoaXMuZGF0YS5PcHRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAob3B0aW9uVHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIGNvbnN0IG9wdGlvblZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5PcHRpb25zKTtcclxuICAgICAgICAgIGlmICh0eXBlb2YgKG9wdGlvblZhbHVlKSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm9wdGlvbnMsIG9wdGlvblZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEuT3B0aW9ucyAmJiB0aGlzLmRhdGEuT3B0aW9ucy5uYXZJdGVtcyAmJiB0eXBlb2YgKHRoaXMuZGF0YS5PcHRpb25zLm5hdkl0ZW1zKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMubmF2SXRlbXMgPVxyXG4gICAgICAgICAgWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5PcHRpb25zLm5hdkl0ZW1zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5nZXRGaWVsZERlY2xhcmF0aW9uRm9yU2V0dXAodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWVsZERlY2xhcmF0aW9uRm9yU2V0dXAoZmllbGQ6IFpGaWVsZCkge1xyXG4gICAgdGhpcy5vcHRpb25zLm5hdkl0ZW1zID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLk5hdkl0ZW1zKSB8fCBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5hdkl0ZW1DbGljayhuYXZJdGVtOiBhbnkpIHtcclxuICAgIGlmIChuYXZJdGVtLmFjdGlvbikge1xyXG4gICAgICAvLyBHZXQgdGhlIGZ1bmN0aW9uIGV4cHJlc3Npb24gZnJvbSB0aGUgY29uZmlndXJhdGlvblxyXG4gICAgICBsZXQgZXhwcmVzc2lvbiA9IG5hdkl0ZW0uYWN0aW9uO1xyXG5cclxuICAgICAgLy8gRW5zdXJlIHRoZSBleHByZXNzaW9uIHN0YXJ0cyB3aXRoICd0aGlzLicgdG8gYXZvaWQgYWNjZXNzaW5nIGdsb2JhbCBzY29wZVxyXG4gICAgICBpZiAoIWV4cHJlc3Npb24uc3RhcnRzV2l0aCgndGhpcy4nKSkge1xyXG4gICAgICAgIGV4cHJlc3Npb24gPSBgdGhpcy4ke2V4cHJlc3Npb259YDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgZnVuYyA9IGV2YWwoZXhwcmVzc2lvbik7XHJcbiAgICAgIGlmIChmdW5jKSB7XHJcbiAgICAgICAgY29uc3QgY2FsbEZ1bmMgPSBmdW5jLmJpbmQodGhpcy5ncm91cCk7XHJcbiAgICAgICAgcmV0dXJuIGNhbGxGdW5jKG5hdkl0ZW0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobmF2SXRlbS5yb3V0ZSkge1xyXG4gICAgICAvLyBjbGVhciBjbG9uZU5ld01vZGVsIGNhY2hlKGlmIGhhdmUpXHJcbiAgICAgIGlmICh0aGlzLmNhY2hlU2VydmljZS5nZXRDYWNoZShcImNsb25lTmV3TW9kZWxcIikpIHtcclxuICAgICAgICB0aGlzLmNhY2hlU2VydmljZS5jbGVhckNhY2hlKFwiY2xvbmVOZXdNb2RlbFwiKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5tYWluU2VydmljZS5yZW1vdmVMYXN0Um91dGVQYXJhbSgpO1xyXG5cclxuICAgICAgaWYgKG5hdkl0ZW0ucm91dGVQYXJhbSkge1xyXG4gICAgICAgIHRoaXMubWFpblNlcnZpY2Uuc2V0Um91dGVQYXJhbShuYXZJdGVtLnJvdXRlUGFyYW0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKG5hdkl0ZW0ucm91dGUsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRhID0gKGdEYXRhOiBhbnkpID0+IHtcclxuICAgIHRoaXMuZ2V0RmllbGREZWNsYXJhdGlvbkZvclNldHVwKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICghIWNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGQgPyBncm91cFtjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkXSA6IGNvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlKVwiPlxyXG4gIDxpb24tZ3JpZD5cclxuICAgIDxpb24tcm93ICpuZ0lmPVwiIWdyb3VwLmlzTG9hZGluZyAmJiAhaXNNb2JpbGVTY3JlZW4oKSAmJiBvcHRpb25zICYmIG9wdGlvbnMubmF2SXRlbXNcIj5cclxuICAgICAgPGtlbmRvLWJyZWFkY3J1bWIgW2l0ZW1zXT1cIm9wdGlvbnMubmF2SXRlbXNcIiBjbGFzcz1cIm5hdi1iYXJcIiAoaXRlbUNsaWNrKT1cIm9uTmF2SXRlbUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9CcmVhZENydW1iSXRlbVRlbXBsYXRlIGxldC1pdGVtIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWJhci1pdGVtXCIgW2NsYXNzLmN1cnJlbnRdPVwiIWl0ZW0ucm91dGVcIj5cclxuICAgICAgICAgICAgPGZhLWljb24gKm5nSWY9XCJpdGVtLmljb25cIiBbaWNvbl09XCJpdGVtLmljb25cIiBjbGFzcz1cInpjYXJkLWhlYWRlci1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpY29uLXdpdGgtdGV4dCc6IGl0ZW0udGV4dH1cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0udGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwva2VuZG8tYnJlYWRjcnVtYj5cclxuICAgIDwvaW9uLXJvdz5cclxuICA8L2lvbi1ncmlkPlxyXG48L2Rpdj5cclxuIl19