design-angular-kit 1.0.0-3 → 1.0.0-5

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 (29) hide show
  1. package/README.md +7 -2
  2. package/assets/i18n/en.json +84 -0
  3. package/assets/i18n/it.json +3 -0
  4. package/esm2020/lib/components/core/notifications/notifications.component.mjs +1 -1
  5. package/esm2020/lib/components/form/input/input.component.mjs +1 -1
  6. package/esm2020/lib/components/form/textarea/textarea.component.mjs +2 -2
  7. package/esm2020/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +7 -4
  8. package/esm2020/lib/components/form/upload-file-list/upload-file-list.component.mjs +6 -4
  9. package/esm2020/lib/components/utils/language-switcher/language-switcher.component.mjs +39 -0
  10. package/esm2020/lib/design-angular-kit.module.mjs +23 -8
  11. package/esm2020/lib/interfaces/form.mjs +1 -1
  12. package/esm2020/lib/interfaces/utils.mjs +2 -0
  13. package/esm2020/lib/modules/components.module.mjs +5 -1
  14. package/esm2020/lib/validators/it-validators.mjs +13 -10
  15. package/esm2020/public_api.mjs +3 -1
  16. package/fesm2015/design-angular-kit.mjs +114 -61
  17. package/fesm2015/design-angular-kit.mjs.map +1 -1
  18. package/fesm2020/design-angular-kit.mjs +117 -59
  19. package/fesm2020/design-angular-kit.mjs.map +1 -1
  20. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +1 -1
  21. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +3 -1
  22. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +23 -0
  23. package/lib/design-angular-kit.module.d.ts +4 -1
  24. package/lib/interfaces/form.d.ts +2 -1
  25. package/lib/interfaces/utils.d.ts +10 -0
  26. package/lib/modules/components.module.d.ts +7 -6
  27. package/lib/validators/it-validators.d.ts +7 -7
  28. package/package.json +4 -2
  29. package/public_api.d.ts +2 -0
package/README.md CHANGED
@@ -63,7 +63,6 @@ Procedi a registrare `DesignAngularKitModule` nel tuo **app.module.ts**.
63
63
  ```typescript
64
64
  imports: [
65
65
  ...
66
- TranslateModule.forRoot(),
67
66
  DesignAngularKitModule
68
67
  ]
69
68
  ```
@@ -145,6 +144,12 @@ Modifica il tuo `angular.json` aggiungendo:
145
144
  ]
146
145
  ```
147
146
 
147
+ Puoi anche utilizzare le label localizzate di `design-angular-kit` nella tua applicazione. [Vedi le nostre label](projects/design-angular-kit/assets/i18n/it.json)
148
+
149
+ Es: `{{'it.errors.required-field' | translate}}`
150
+
151
+ #### Caricamento file localizzazione app
152
+
148
153
  Se utilizzi già i file di localizzazione nella tua app, puoi utilizzare la libreria [ngx-translate-multi-http-loader](https://www.npmjs.com/package/ngx-translate-multi-http-loader)
149
154
  per caricare i file di localizzazione dell'app e di `design-angular-kit`
150
155
 
@@ -171,7 +176,7 @@ imports: [
171
176
 
172
177
  #### Usa la localizzazione personalizzata
173
178
 
174
- Aggiungi la localizzazione personalizzata nella tua cartella `assets/bootstrap-italia/i18n/` (crea il percorso se non esiste). Il json deve avere [questo formato](projects/design-angular-kit/assets/i18n/it.json).
179
+ Non includere il supporto i18n nel tuo `angular.json` ma crea i tuoi file di localizzazione personalizzata nella tua cartella `assets/bootstrap-italia/i18n/` (crea il percorso se non esiste). Il json deve avere [questo formato](projects/design-angular-kit/assets/i18n/it.json).
175
180
 
176
181
  Se utilizzi già i file di localizzazione nella tua app, puoi aggiungere le localizzazioni nei tuoi file json, sovrascrivendo le chiavi del json della libreria.
177
182
 
@@ -0,0 +1,84 @@
1
+ {
2
+ "it": {
3
+ "general": {
4
+ "save": "Save",
5
+ "send": "Send",
6
+ "abort": "Abort",
7
+ "continue": "Continue",
8
+ "edit": "Edit",
9
+ "show-all": "Show all",
10
+ "details": "Details"
11
+ },
12
+ "errors": {
13
+ "generic": "An error has occurred",
14
+ "generic-support-message": "There was an unexpected error. Please try again later or contact support.",
15
+ "invalid-field": "This field is invalid",
16
+ "required-field": "This field is required",
17
+ "check-all-fields": "Check that you have filled in all the fields correctly",
18
+ "min-invalid": "The minimum value for this field is: {{min}}",
19
+ "max-invalid": "The maximum value for this field is: {{max}}",
20
+ "min-length-invalid": "The minimum length for this field is: {{min}}",
21
+ "max-length-invalid": "The minimum length for this field is: {{max}}",
22
+ "email-invalid": "Enter a valid email",
23
+ "tel-invalid": "Please enter a valid phone number format",
24
+ "url-invalid": "Please enter a valid URL",
25
+ "tax-code-invalid": "Enter a valid tax code",
26
+ "vat-number-invalid": "Enter a valid VAT number",
27
+ "cap-invalid": "Enter a valid zip code",
28
+ "regex-invalid": "Please enter a valid REGEX expression",
29
+ "pattern-invalid": "The field must have the pattern {{pattern}}",
30
+ "password-no-match": "Passwords must match",
31
+ "password-min-length": "Password must contain at least {{minLength}} characters!",
32
+ "password-number": "The password must have at least 1 number!",
33
+ "password-capital-case": "The password should contain at least 1 uppercase character!",
34
+ "password-small-case": "Password must contain at least 1 lowercase character!",
35
+ "password-special-character": "Password must contain at least 1 special character!"
36
+ },
37
+ "core": {
38
+ "close-modal": "Close modal window",
39
+ "close-notification": "Close Notification: {{title}}",
40
+ "close-alert": "Close alert",
41
+ "page": "Page",
42
+ "previous-page": "Previous page",
43
+ "next-page": "Next page",
44
+ "progress": "Progress",
45
+ "loading": "Loading",
46
+ "active": "Active",
47
+ "remove": "Delete"
48
+ },
49
+ "form": {
50
+ "increase-value": "Increase value",
51
+ "decrease-value": "Decrease value",
52
+ "upload": "Upload",
53
+ "upload-drag-file": "Drag the file to upload it",
54
+ "upload-loading": "Loading...",
55
+ "upload-complete": "Upload completed",
56
+ "upload-or": "or",
57
+ "upload-select-device": "select it from the device",
58
+ "uploaded-file": "File uploaded: {{name}}",
59
+ "delete-file": "Delete file {{name}}"
60
+ },
61
+ "navigation": {
62
+ "home": "Home",
63
+ "go-back": "Go back",
64
+ "upper-level": "Upper level",
65
+ "secondary-navigation": "Secondary navigation",
66
+ "login": "Log in",
67
+ "full-login": "Access the personal area",
68
+ "search": "Search",
69
+ "website-search": "Search in the site",
70
+ "navigation-path": "Navigation path"
71
+ },
72
+ "utils": {
73
+ "selected": "Selected",
74
+ "language-selection": "Language selection: {{lang}}",
75
+ "select-language": "Select a language",
76
+ "404": {
77
+ "title": "Resource not found",
78
+ "description": "Oops! The resource you are looking for was not found, go back to the homepage and use the menu to continue browsing.",
79
+ "go-back": "Go back",
80
+ "go-to-homepage": "Return to homepage"
81
+ }
82
+ }
83
+ }
84
+ }
@@ -70,6 +70,9 @@
70
70
  "navigation-path": "Percorso di navigazione"
71
71
  },
72
72
  "utils": {
73
+ "selected": "Selezionata",
74
+ "language-selection": "Selezione lingua: {{lang}}",
75
+ "select-language": "Seleziona una lingua",
73
76
  "404": {
74
77
  "title": "Risorsa non trovata",
75
78
  "description": "Oops! La risorsa che cerchi non è stata trovata, torna alla homepage e utilizza il menu per continuare la navigazione.",
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
63
63
  }], position: [{
64
64
  type: Input
65
65
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFzQyxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxZQUFZLElBQUksY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQU9sRSxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxZQUNtQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQWY3RDs7O1dBR0c7UUFDTSxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBUWpDLGtCQUFhLEdBQXlDLEVBQUUsQ0FBQztRQUt2RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7Z0JBQzFCLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLDZCQUE2QjthQUNyRTtZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzNDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLDZCQUE2QjthQUNyRTtZQUVELE1BQU0sZUFBZSxHQUFHO2dCQUN0QixHQUFHLFlBQVk7Z0JBQ2YsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sZUFBZTthQUNyRSxDQUFDO1lBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFdkQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCx3QkFBd0I7Z0JBQ3hCLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUM5RCxPQUFPLEVBQUUsWUFBWSxDQUFDLFFBQVE7aUJBQy9CLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFVix3Q0FBd0M7Z0JBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELENBQUMsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEVBQVU7UUFDekIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEUsQ0FBQzs7bUhBN0RVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGdIQ1puQyxzNEJBa0JBOzJGRE5hLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxrQkFBa0I7MkdBVW5CLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uUG9zaXRpb24sIE5vdGlmaWNhdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NvcmUnO1xuXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gYXMgQlNOb3RpZmljYXRpb24gfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtbm90aWZpY2F0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9ucy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG5vdGlmaWNhdGlvbnMgZHVyYXRpb25cbiAgICogQGRlZmF1bHQgODAwMFxuICAgKi9cbiAgQElucHV0KCkgZHVyYXRpb246IG51bWJlciA9IDgwMDA7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbm90aWZpY2F0aW9ucyBwb3NpdGlvblxuICAgKi9cbiAgQElucHV0KCkgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBub3RpZmljYXRpb25zOiBBcnJheTxOb3RpZmljYXRpb24gJiB7IGlkOiBzdHJpbmcgfT4gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZVxuICApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uub25Ob3RpZmljYXRpb24oKS5zdWJzY3JpYmUobm90aWZpY2F0aW9uID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmR1cmF0aW9uKSB7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5kdXJhdGlvbiA9IHRoaXMuZHVyYXRpb247IC8vIEFkZCBkdXJhdGlvbiBpZiBub3QgaXMgc2V0XG4gICAgICB9XG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5wb3NpdGlvbiAmJiB0aGlzLnBvc2l0aW9uKSB7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb247IC8vIEFkZCBwb3NpdGlvbiBpZiBub3QgaXMgc2V0XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld05vdGlmaWNhdGlvbiA9IHtcbiAgICAgICAgLi4ubm90aWZpY2F0aW9uLFxuICAgICAgICBpZDogYCR7bm90aWZpY2F0aW9uLnR5cGV9LSR7dGhpcy5ub3RpZmljYXRpb25zLmxlbmd0aH0tbm90aWZpY2F0aW9uYFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5ub3RpZmljYXRpb25zLnB1c2gobmV3Tm90aWZpY2F0aW9uKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIFNob3cgdGhlIG5vdGlmaWNhdGlvblxuICAgICAgICBuZXcgQlNOb3RpZmljYXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmV3Tm90aWZpY2F0aW9uLmlkKSwge1xuICAgICAgICAgIHRpbWVvdXQ6IG5vdGlmaWNhdGlvbi5kdXJhdGlvblxuICAgICAgICB9KS5zaG93KCk7XG5cbiAgICAgICAgLy8gQ2xlYXIgbm90aWZpY2F0aW9uIGFmdGVyIHRoZSBkdXJhdGlvblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSB0aGlzLm5vdGlmaWNhdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfSwgbm90aWZpY2F0aW9uLmR1cmF0aW9uKTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IE5vdGlmaWNhdGlvblR5cGUoKTogdHlwZW9mIE5vdGlmaWNhdGlvblR5cGUge1xuICAgIHJldHVybiBOb3RpZmljYXRpb25UeXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGUgdGhlIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIGhpZGVOb3RpZmljYXRpb24oaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIEJTTm90aWZpY2F0aW9uLmdldEluc3RhbmNlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSk/LmhpZGUoKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnM7IGxldCBpID0gaW5kZXhcIlxuICAgICBbaWRdPVwibm90aWZpY2F0aW9uLmlkXCJcbiAgICAgY2xhc3M9XCJub3RpZmljYXRpb24ge3tub3RpZmljYXRpb24ucG9zaXRpb259fSB7e25vdGlmaWNhdGlvbi50eXBlfX1cIlxuICAgICBbY2xhc3Mud2l0aC1pY29uXT1cIm5vdGlmaWNhdGlvbi50eXBlICE9PSBOb3RpZmljYXRpb25UeXBlLlN0YW5kYXJkXCJcbiAgICAgW2NsYXNzLmRpc21pc3NhYmxlXT1cIm5vdGlmaWNhdGlvbi5kaXNtaXNzYWJsZVwiXG4gICAgIHJvbGU9XCJhbGVydFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJub3RpZmljYXRpb24uaWQrJy10aXRsZSdcIj5cblxuICA8aDIgW2lkXT1cIm5vdGlmaWNhdGlvbi5pZCsnLXRpdGxlJ1wiIGNsYXNzPVwiaDVcIj5cbiAgICA8bmctY29udGFpbmVyPnt7bm90aWZpY2F0aW9uLnRpdGxlfX08L25nLWNvbnRhaW5lcj5cbiAgPC9oMj5cbiAgPHAgKm5nSWY9XCJub3RpZmljYXRpb24ubWVzc2FnZVwiPnt7bm90aWZpY2F0aW9uLm1lc3NhZ2V9fTwvcD5cblxuICA8YnV0dG9uICpuZ0lmPVwibm90aWZpY2F0aW9uLmRpc21pc3NhYmxlXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIG5vdGlmaWNhdGlvbi1jbG9zZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImhpZGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLmlkKVwiPlxuICAgIDxpdC1pY29uIG5hbWU9XCJjbG9zZVwiPjwvaXQtaWNvbj5cbiAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmNvcmUuY2xvc2Utbm90aWZpY2F0aW9uJ3x0cmFuc2xhdGU6e3RpdGxlOiBub3RpZmljYXRpb24udGl0bGV9IH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFzQyxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxZQUFZLElBQUksY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQU9sRSxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxZQUNtQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQWY3RDs7O1dBR0c7UUFDTSxhQUFRLEdBQVcsSUFBSSxDQUFDO1FBUWpDLGtCQUFhLEdBQXlDLEVBQUUsQ0FBQztRQUt2RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7Z0JBQzFCLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLDZCQUE2QjthQUNyRTtZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzNDLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLDZCQUE2QjthQUNyRTtZQUVELE1BQU0sZUFBZSxHQUFHO2dCQUN0QixHQUFHLFlBQVk7Z0JBQ2YsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sZUFBZTthQUNyRSxDQUFDO1lBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFFdkQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCx3QkFBd0I7Z0JBQ3hCLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBRSxFQUFFO29CQUMvRCxPQUFPLEVBQUUsWUFBWSxDQUFDLFFBQVE7aUJBQy9CLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFVix3Q0FBd0M7Z0JBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELENBQUMsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEVBQVU7UUFDekIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbkUsQ0FBQzs7bUhBN0RVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGdIQ1puQyxzNEJBa0JBOzJGRE5hLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxrQkFBa0I7MkdBVW5CLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uUG9zaXRpb24sIE5vdGlmaWNhdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2NvcmUnO1xuXG5pbXBvcnQgeyBOb3RpZmljYXRpb24gYXMgQlNOb3RpZmljYXRpb24gfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtbm90aWZpY2F0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9ucy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG5vdGlmaWNhdGlvbnMgZHVyYXRpb25cbiAgICogQGRlZmF1bHQgODAwMFxuICAgKi9cbiAgQElucHV0KCkgZHVyYXRpb246IG51bWJlciA9IDgwMDA7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbm90aWZpY2F0aW9ucyBwb3NpdGlvblxuICAgKi9cbiAgQElucHV0KCkgcG9zaXRpb24/OiBOb3RpZmljYXRpb25Qb3NpdGlvbjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBub3RpZmljYXRpb25zOiBBcnJheTxOb3RpZmljYXRpb24gJiB7IGlkOiBzdHJpbmcgfT4gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZVxuICApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuX25vdGlmaWNhdGlvblNlcnZpY2Uub25Ob3RpZmljYXRpb24oKS5zdWJzY3JpYmUobm90aWZpY2F0aW9uID0+IHtcbiAgICAgIGlmICghbm90aWZpY2F0aW9uLmR1cmF0aW9uKSB7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5kdXJhdGlvbiA9IHRoaXMuZHVyYXRpb247IC8vIEFkZCBkdXJhdGlvbiBpZiBub3QgaXMgc2V0XG4gICAgICB9XG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5wb3NpdGlvbiAmJiB0aGlzLnBvc2l0aW9uKSB7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb247IC8vIEFkZCBwb3NpdGlvbiBpZiBub3QgaXMgc2V0XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld05vdGlmaWNhdGlvbiA9IHtcbiAgICAgICAgLi4ubm90aWZpY2F0aW9uLFxuICAgICAgICBpZDogYCR7bm90aWZpY2F0aW9uLnR5cGV9LSR7dGhpcy5ub3RpZmljYXRpb25zLmxlbmd0aH0tbm90aWZpY2F0aW9uYFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5ub3RpZmljYXRpb25zLnB1c2gobmV3Tm90aWZpY2F0aW9uKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIFNob3cgdGhlIG5vdGlmaWNhdGlvblxuICAgICAgICBuZXcgQlNOb3RpZmljYXRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobmV3Tm90aWZpY2F0aW9uLmlkKSEsIHtcbiAgICAgICAgICB0aW1lb3V0OiBub3RpZmljYXRpb24uZHVyYXRpb25cbiAgICAgICAgfSkuc2hvdygpO1xuXG4gICAgICAgIC8vIENsZWFyIG5vdGlmaWNhdGlvbiBhZnRlciB0aGUgZHVyYXRpb25cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gdGhpcy5ub3RpZmljYXRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH0sIG5vdGlmaWNhdGlvbi5kdXJhdGlvbik7XG4gICAgICB9LCAyMDApO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldCBOb3RpZmljYXRpb25UeXBlKCk6IHR5cGVvZiBOb3RpZmljYXRpb25UeXBlIHtcbiAgICByZXR1cm4gTm90aWZpY2F0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlIHRoZSBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIGlkXG4gICAqL1xuICBoaWRlTm90aWZpY2F0aW9uKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBCU05vdGlmaWNhdGlvbi5nZXRJbnN0YW5jZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkhKT8uaGlkZSgpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0Zvcj1cImxldCBub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgIFtpZF09XCJub3RpZmljYXRpb24uaWRcIlxuICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbiB7e25vdGlmaWNhdGlvbi5wb3NpdGlvbn19IHt7bm90aWZpY2F0aW9uLnR5cGV9fVwiXG4gICAgIFtjbGFzcy53aXRoLWljb25dPVwibm90aWZpY2F0aW9uLnR5cGUgIT09IE5vdGlmaWNhdGlvblR5cGUuU3RhbmRhcmRcIlxuICAgICBbY2xhc3MuZGlzbWlzc2FibGVdPVwibm90aWZpY2F0aW9uLmRpc21pc3NhYmxlXCJcbiAgICAgcm9sZT1cImFsZXJ0XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIm5vdGlmaWNhdGlvbi5pZCsnLXRpdGxlJ1wiPlxuXG4gIDxoMiBbaWRdPVwibm90aWZpY2F0aW9uLmlkKyctdGl0bGUnXCIgY2xhc3M9XCJoNVwiPlxuICAgIDxuZy1jb250YWluZXI+e3tub3RpZmljYXRpb24udGl0bGV9fTwvbmctY29udGFpbmVyPlxuICA8L2gyPlxuICA8cCAqbmdJZj1cIm5vdGlmaWNhdGlvbi5tZXNzYWdlXCI+e3tub3RpZmljYXRpb24ubWVzc2FnZX19PC9wPlxuXG4gIDxidXR0b24gKm5nSWY9XCJub3RpZmljYXRpb24uZGlzbWlzc2FibGVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gbm90aWZpY2F0aW9uLWNsb3NlXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGlkZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uaWQpXCI+XG4gICAgPGl0LWljb24gbmFtZT1cImNsb3NlXCI+PC9pdC1pY29uPlxuICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snaXQuY29yZS5jbG9zZS1ub3RpZmljYXRpb24nfHRyYW5zbGF0ZTp7dGl0bGU6IG5vdGlmaWNhdGlvbi50aXRsZX0gfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -223,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
223
223
  }], autoCompleteData: [{
224
224
  type: Input
225
225
  }] } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVuRixPQUFPLEVBQWdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFRLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPakQsTUFBTSxPQUFPLGNBQWUsU0FBUSxxQkFBc0M7SUFMMUU7O1FBT0U7OztXQUdHO1FBQ00sU0FBSSxHQUFxQixNQUFNLENBQUM7UUFFekM7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQW1EMUIsc0JBQWlCLEdBQTRCLEVBQUUsQ0FBQztRQUV4RCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUEwRTNCLDJFQUEyRTtRQUMzRSx5QkFBb0IsR0FBNEgsSUFBSSxVQUFVLEVBQUUsQ0FBQztLQWdIbEs7SUFyTUM7Ozs7T0FJRztJQUNILElBQ0ksZ0JBQWdCLENBQUMsS0FBOEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFD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T0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsS0FBdUIsRUFBRSxLQUFZO1FBQ2hELHlHQUF5RztRQUN6Ryx3R0FBd0c7UUFDeEcsSUFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDZCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBYSxFQUFFLElBQXNCO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztJQUNuRCxDQUFDOzsyR0ExUFUsY0FBYzsrRkFBZCxjQUFjLHFVQ2IzQiw0d0lBK0dBOzJGRGxHYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGNBQWM7OEJBVWYsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxHQUFHO3NCQUFYLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQVFGLGdCQUFnQjtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC1mb3JtLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVJdGVtLCBJbnB1dENvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9mb3JtJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJdFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi8uLi92YWxpZGF0b3JzL2l0LXZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBpc1RydWVCb29sZWFuSW5wdXQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ib29sZWFuLWlucHV0JztcbmltcG9ydCB7IGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtaW5wdXRbaWRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Rm9ybUNvbXBvbmVudDxzdHJpbmcgfCBudW1iZXI+IHtcblxuICAvKipcbiAgICogVGhlIGlucHV0IHR5cGVcbiAgICogQGRlZmF1bHQgdGV4dFxuICAgKi9cbiAgQElucHV0KCkgdHlwZTogSW5wdXRDb250cm9sVHlwZSA9ICd0ZXh0JztcblxuICAvKipcbiAgICogVGhlIGlucHV0IHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBkZXNjcmlwdGlvblxuICAgKi9cbiAgQElucHV0KCkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvIHByZXZlbnQgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250YWluZWQgdmFsdWUuXG4gICAqIC0gPGI+cGxhaW50ZXh0PC9iPjogUmVhZG9ubHkgZmllbGQgaW4gdGhlIGZvcm0gc3R5bGl6ZWQgYXMgcGxhaW4gdGV4dFxuICAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHk/OiBCb29sZWFuSW5wdXQgfCAncGxhaW50ZXh0JztcblxuICAvKipcbiAgICogVGhlIG1heCB2YWx1ZSBbVXNlZCBvbmx5IGluIHR5cGUgPSAnbnVtYmVyJ11cbiAgICovXG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbiB2YWx1ZSBbVXNlZCBvbmx5IGluIHR5cGUgPSAnbnVtYmVyJ11cbiAgICovXG4gIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHN0ZXAgdmFsdWUgW1VzZWQgb25seSBpbiB0eXBlID0gJ251bWJlciddXG4gICAqL1xuICBASW5wdXQoKSBzdGVwPzogbnVtYmVyIHwgJ2FueSc7XG5cbiAgLyoqXG4gICAqIElmIGlzIGEgY3VycmVuY3kgbnVtYmVyIFtVc2VkIG9ubHkgaW4gdHlwZSA9ICdudW1iZXInXVxuICAgKi9cbiAgQElucHV0KCkgY3VycmVuY3k/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIElmIGlzIGEgcGVyY2VudGFnZSBudW1iZXIgW1VzZWQgb25seSBpbiB0eXBlID0gJ251bWJlciddXG4gICAqL1xuICBASW5wdXQoKSBwZXJjZW50YWdlPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBUbyBtYWtlIHRoZSBudW1lcmljIGZpZWxkIGF1dG9tYXRpY2FsbHkgcmVzaXplIGFjY29yZGluZyB0byB0aGUgdmFsdWUgY29udGFpbmVkIGluIGl0LiBbVXNlZCBvbmx5IGluIHR5cGUgPSAnbnVtYmVyJ11cbiAgICovXG4gIEBJbnB1dCgpIGFkYXB0aXZlPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBPcHppb25hbGUuXG4gICAqIERpc3BvbmliaWxlIHNvbG8gc2UgaWwgdHlwZSDDqCBzZWFyY2guXG4gICAqIEluZGljYSBsYSBsaXN0YSBkaSBlbGVtZW50aSByaWNlcmNhYmlsaSBzdSBjdWkgYmFzYXJlIGlsIHNpc3RlbWEgZGkgYXV0b2NvbXBsZXRhbWVudG8gZGVsbGEgaW5wdXRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBhdXRvQ29tcGxldGVEYXRhKHZhbHVlOiBBcnJheTxBdXRvQ29tcGxldGVJdGVtPikgeyB0aGlzLl9hdXRvQ29tcGxldGVEYXRhID0gdmFsdWU7IH1cbiAgZ2V0IGF1dG9Db21wbGV0ZURhdGEoKTogQXJyYXk8QXV0b0NvbXBsZXRlSXRlbT4geyByZXR1cm4gdGhpcy5fYXV0b0NvbXBsZXRlRGF0YTsgfVxuICBwcml2YXRlIF9hdXRvQ29tcGxldGVEYXRhOiBBcnJheTxBdXRvQ29tcGxldGVJdGVtPiA9IFtdO1xuXG4gIHNob3dBdXRvY29tcGxldGlvbiA9IGZhbHNlO1xuXG5cbiAgZ2V0IGlzQWN0aXZlTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XG4gICAgaWYgKCghIXZhbHVlICYmIHZhbHVlICE9PSAwKSB8fCB2YWx1ZSA9PT0gMCB8fCAhIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdudW1iZXInICYmIChpc1RydWVCb29sZWFuSW5wdXQodGhpcy5jdXJyZW5jeSkgfHwgaXNUcnVlQm9vbGVhbklucHV0KHRoaXMucGVyY2VudGFnZSkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnZGF0ZScgfHwgdGhpcy50eXBlID09PSAndGltZSc7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaXMgcmVhZG9ubHkgZmllbGRcbiAgICovXG4gIGdldCBpc1JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID09PSAncGxhaW50ZXh0JyB8fCBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5yZWFkb25seSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBpbnZhbGlkIG1lc3NhZ2Ugc3RyaW5nIGZyb20gVHJhbnNsYXRlU2VydmljZVxuICAgKi9cbiAgb3ZlcnJpZGUgZ2V0IGludmFsaWRNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ21pbicpICYmIHRoaXMubWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5taW4taW52YWxpZCcsIHtcbiAgICAgICAgbWluOiB0aGlzLm1pblxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdtYXgnKSAmJiB0aGlzLm1heCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMubWF4LWludmFsaWQnLCB7XG4gICAgICAgIG1heDogdGhpcy5tYXhcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5nZXRFcnJvcignbWlubGVuZ3RoJyk7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5taW4tbGVuZ3RoLWludmFsaWQnLCB7IG1pbjogZXJyb3IucmVxdWlyZWRMZW5ndGggfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xuICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmdldEVycm9yKCdtYXhsZW5ndGgnKTtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLm1heC1sZW5ndGgtaW52YWxpZCcsIHsgbWF4OiBlcnJvci5yZXF1aXJlZExlbmd0aCB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2VtYWlsJykgfHwgdGhpcy5oYXNFcnJvcignaW52YWxpZEVtYWlsJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLmVtYWlsLWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRUZWwnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMudGVsLWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRVcmwnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMudXJsLWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRUYXhDb2RlJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnRheC1jb2RlLWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRWYXROdW1iZXInKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMudmF0LW51bWJlci1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkQ2FwJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLmNhcC1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkUmVnZXgnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMucmVnZXgtaW52YWxpZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNFcnJvcigncGF0dGVybicpKSB7XG4gICAgICBjb25zdCBlcnJvciA9IHRoaXMuZ2V0RXJyb3IoJ3BhdHRlcm4nKTtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnBhdHRlcm4taW52YWxpZCcsIHsgcGF0dGVybjogZXJyb3IucmVxdWlyZWRQYXR0ZXJuIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5pbnZhbGlkTWVzc2FnZTtcbiAgfVxuXG4gIC8qKiBPYnNlcnZhYmxlIGRhIGN1aSB2ZW5nb25vIGVtZXNzaSBpIHJpc3VsdGF0aSBkZWxsJ2F1dG8gY29tcGxldGFtZW50byAqL1xuICBhdXRvY29tcGxldGVSZXN1bHRzJDogT2JzZXJ2YWJsZTx7IHNlYXJjaGVkVmFsdWU6IHN0cmluZywgcmVsYXRlZEVudHJpZXM6IEFycmF5PEF1dG9Db21wbGV0ZUl0ZW0gJiB7IG9yaWdpbmFsOiBzdHJpbmcsIGxvd2VyY2FzZTogc3RyaW5nIH0+fT4gPSBuZXcgT2JzZXJ2YWJsZSgpO1xuXG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPiA9IFtdO1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBpZiAoaXNUcnVlQm9vbGVhbklucHV0KHRoaXMucGVyY2VudGFnZSkpIHtcbiAgICAgICAgICB0aGlzLm1pbiA9IHRoaXMubWluIHx8IDA7XG4gICAgICAgICAgdGhpcy5tYXggPSB0aGlzLm1heCB8fCAxMDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEeW5hbWljIG1pbi9tYXggdmFsaWRhdG9yc1xuICAgICAgICB2YWxpZGF0b3JzLnB1c2goKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gdGhpcy5taW4gPyBWYWxpZGF0b3JzLm1pbih0aGlzLm1pbikoY29udHJvbCkgOiBudWxsKTtcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHRoaXMubWF4ID8gVmFsaWRhdG9ycy5tYXgodGhpcy5tYXgpKGNvbnRyb2wpIDogbnVsbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goSXRWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0ZWwnOlxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goSXRWYWxpZGF0b3JzLnRlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndXJsJzpcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKEl0VmFsaWRhdG9ycy51cmwpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmFkZFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVSZXN1bHRzJCA9IHRoaXMuZ2V0QXV0b2NvbXBsZXRlUmVzdWx0cyQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmNyZW1lbnQgb3IgZGVjcmVhc2UgdGhlIGlucHV0IG51bWJlciB2YWx1ZSBvZiBzdGVwXG4gICAqIEBwYXJhbSBkZWNyZWFzZSB0cnVlIHRvIGRlY3JlYXNlIHZhbHVlXG4gICAqL1xuICBpbmNyZW1lbnROdW1iZXIoZGVjcmVhc2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnR5cGUgIT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0ZXAgPSAodGhpcy5zdGVwID09PSAnYW55JyA/IDEgOiAodGhpcy5zdGVwID8/IDEpKTtcbiAgICBsZXQgdmFsdWUgPSBOdW1iZXIodGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICB2YWx1ZSA9IChpc05hTih2YWx1ZSkgPyAwIDogdmFsdWUpICsgKGRlY3JlYXNlID8gLXN0ZXAgOiBzdGVwKTtcbiAgICB2YWx1ZSA9IE1hdGgucm91bmQodmFsdWUgKiAxZTEyKSAvIDFlMTI7IC8vIHByZXZlbnQganMgZGVjaW1hbCBlcnJvclxuXG4gICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgPCB0aGlzLm1pbikge1xuICAgICAgdmFsdWUgPSB0aGlzLm1pbjtcbiAgICB9IGVsc2UgaWYgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgPiB0aGlzLm1heCkge1xuICAgICAgdmFsdWUgPSB0aGlzLm1heDtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cblxuICBcbiAgZ2V0QXV0b2NvbXBsZXRlUmVzdWx0cyQoKTogT2JzZXJ2YWJsZTx7IHNlYXJjaGVkVmFsdWU6IHN0cmluZywgcmVsYXRlZEVudHJpZXM6IEFycmF5PEF1dG9Db21wbGV0ZUl0ZW0gJiB7IG9yaWdpbmFsOiBzdHJpbmcsIGxvd2VyY2FzZTogc3RyaW5nIH0+fT4ge1xuXG4gICAgaWYodGhpcy50eXBlID09PSAnc2VhcmNoJykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShtYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHNlYXJjaGVkVmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBsb3dlcmNhc2VWYWx1ZSA9IHNlYXJjaGVkVmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBjb25zdCBsb3dlcmNhc2VEYXRhID0gdGhpcy5fYXV0b0NvbXBsZXRlRGF0YS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmFsdWUpLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIG9yaWdpbmFsIDogaXRlbS52YWx1ZSwgbG93ZXJjYXNlIDogaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpIH07XG4gICAgICAgICAgfSk7XG4gICAgXG4gICAgICAgICAgY29uc3QgcmVsYXRlZEVudHJpZXM6IEFycmF5PEF1dG9Db21wbGV0ZUl0ZW0gJiB7IG9yaWdpbmFsOiBzdHJpbmcsIGxvd2VyY2FzZTogc3RyaW5nIH0+ID0gW107XG4gICAgICAgICAgbG93ZXJjYXNlRGF0YS5mb3JFYWNoKGxvd2VyY2FzZUVudHJ5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nID0gKGxvd2VyY2FzZUVudHJ5Lmxvd2VyY2FzZSkuaW5jbHVkZXMobG93ZXJjYXNlVmFsdWUpO1xuICAgICAgICAgICAgaWYgKG1hdGNoaW5nKSB7XG4gICAgICAgICAgICAgIHJlbGF0ZWRFbnRyaWVzLnB1c2gobG93ZXJjYXNlRW50cnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICBcbiAgICAgICAgICByZXR1cm4geyBzZWFyY2hlZFZhbHVlLCByZWxhdGVkRW50cmllcyB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IHNlYXJjaGVkVmFsdWUsIHJlbGF0ZWRFbnRyaWVzOiBbXX07XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKHtzZWFyY2hlZFZhbHVlOiAnJywgcmVsYXRlZEVudHJpZXM6IFtdfSk7XG4gICAgfVxuICAgIFxuICB9XG5cbiAgaXNBdXRvY29tcGxldGFibGUoKSB7XG4gICAgaWYgKHRoaXMuX2F1dG9Db21wbGV0ZURhdGEgJiYgdGhpcy50eXBlID09PSAnc2VhcmNoJykge1xuICAgICAgcmV0dXJuIHRoaXMuX2F1dG9Db21wbGV0ZURhdGEubGVuZ3RoID4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uRW50cnlDbGljayhlbnRyeTogQXV0b0NvbXBsZXRlSXRlbSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgLy8gU2Ugbm9uIMOoIHN0YXRvIGRlZmluaXRvIHVuIGxpbmsgYXNzb2NpYXRvIGFsbCdlbGVtZW50byBkZWxsJ2F1dG9jb21wbGV0ZSwgcHJvYmFiaWxtZW50ZSBpbCBkZXNpZGVyYXRhIFxuICAgIC8vIG5vbiDDqCBlZmZldHR1YXJlIGxhIG5hdmlnYXppb25lIGFsIGRlZmF1bHQgJyMnLCBwZXJ0YW50byBpbiB0YWwgY2FzbyBtZWdsaW8gYW5udWxsYXJlIGxhIG5hdmlnYXppb25lLlxuICAgIGlmKCFlbnRyeS5saW5rKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZW50cnkudmFsdWUpO1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0aW9uID0gZmFsc2U7XG4gIH1cblxuICBhdXRvY29tcGxldGVJdGVtVHJhY2tCeVZhbHVlRm4oaW5kZXg6IG51bWJlciwgaXRlbTogQXV0b0NvbXBsZXRlSXRlbSkge1xuICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICB9XG5cbiAgb25LZXlEb3duKCkge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0aW9uID0gdGhpcy50eXBlID09PSAnc2VhcmNoJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXByZXBlbmRcIiBbY2xhc3MuZC1ub25lXT1cIiFwcmVwZW5kVGV4dC5oYXNDaGlsZE5vZGVzKCkgJiYgIXByZXBlbmQuaGFzQ2hpbGROb2RlcygpXCI+XG4gICAgICA8ZGl2ICNwcmVwZW5kPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHJlcGVuZF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgI3ByZXBlbmRUZXh0PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHJlcGVuZFRleHRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtmb3JdPVwiaWRcIiBbY2xhc3MuYWN0aXZlXT1cImlzQWN0aXZlTGFiZWxcIlxuICAgICAgICAgICBbY2xhc3MuZW1wdHktcHJlcGVuZC1sYWJlbF09XCIhcHJlcGVuZFRleHQuaGFzQ2hpbGROb2RlcygpICYmICFwcmVwZW5kLmhhc0NoaWxkTm9kZXMoKVwiPlxuICAgICAge3tsYWJlbH19XG4gICAgPC9sYWJlbD5cblxuICAgIDxzcGFuICpuZ0lmPVwidHlwZSA9PT0gJ251bWJlcidcIlxuICAgICAgICAgIGNsYXNzPVwiaW5wdXQtbnVtYmVyXCJcbiAgICAgICAgICBbY2xhc3MuaW5wdXQtbnVtYmVyLWN1cnJlbmN5XT1cImN1cnJlbmN5XCJcbiAgICAgICAgICBbY2xhc3MuaW5wdXQtbnVtYmVyLXBlcmNlbnRhZ2VdPVwicGVyY2VudGFnZVwiXG4gICAgICAgICAgW2NsYXNzLmlucHV0LW51bWJlci1hZGFwdGl2ZV09XCJhZGFwdGl2ZVwiPlxuXG4gICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICBbc3RlcF09XCJzdGVwID8/IG51bGxcIlxuICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImlzSW52YWxpZFwiXG4gICAgICAgICAgICAgW2NsYXNzLmlzLXZhbGlkXT1cImlzVmFsaWRcIlxuICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgIFtyZWFkb25seV09XCJpc1JlYWRvbmx5XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1kZXNjcmlwdGlvbidcIlxuICAgICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiIC8+XG5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWFkZFwiIChjbGljayk9XCJpbmNyZW1lbnROdW1iZXIoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0uaW5jcmVhc2UtdmFsdWUnfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW5wdXQtbnVtYmVyLXN1YlwiIChjbGljayk9XCJpbmNyZW1lbnROdW1iZXIodHJ1ZSlcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydpdC5mb3JtLmRlY3JlYXNlLXZhbHVlJ319PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuXG4gICAgPGlucHV0ICpuZ0lmPVwidHlwZSAhPT0gJ251bWJlcidcIlxuICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgW2NsYXNzLmZvcm0tY29udHJvbF09XCJyZWFkb25seSAhPT0gJ3BsYWludGV4dCdcIlxuICAgICAgICAgICBbY2xhc3MuZm9ybS1jb250cm9sLXBsYWludGV4dF09XCJyZWFkb25seSA9PT0gJ3BsYWludGV4dCdcIlxuICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJpc0ludmFsaWRcIlxuICAgICAgICAgICBbY2xhc3MuaXMtdmFsaWRdPVwiaXNWYWxpZFwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxuICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oKVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLWRlc2NyaXB0aW9uJ1wiXG4gICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FwcGVuZF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthcHBlbmRUZXh0XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8c21hbGwgKm5nSWY9XCJkZXNjcmlwdGlvblwiIFtpZF09XCJpZCArICctZGVzY3JpcHRpb24nXCIgY2xhc3M9XCJmb3JtLXRleHRcIj57e2Rlc2NyaXB0aW9ufX08L3NtYWxsPlxuXG5cblxuXG4gIDwhLS0gSU5JWklPIGdlc3Rpb25lIEFVVE9DT01QTEVUQU1FTlRPIC0tPlxuXG5cbiAgPCEtLSBJY29uYSBsZW50ZSBwZXIgYXV0b2NvbXBsZXRhbWVudG8gLS0+XG4gIDxzcGFuIGNsYXNzPVwiYXV0b2NvbXBsZXRlLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIiAqbmdJZj1cImlzQXV0b2NvbXBsZXRhYmxlKClcIj5cbiAgICA8aXQtaWNvbiBuYW1lID0gXCJzZWFyY2hcIiBzaXplPVwic21cIj48L2l0LWljb24+XG4gIDwvc3Bhbj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXV0b2NvbXBsZXRlUmVzdWx0cyQgfCBhc3luYyBhcyBhdXRvY29tcGxldGVcIj5cbiAgICA8IS0tIExpc3RhIGRpIGF1dG9jb21wbGV0YW1lbnRvIC0tPlxuICAgIDx1bCBjbGFzcz1cImF1dG9jb21wbGV0ZS1saXN0XCIgKm5nSWY9XCJpc0F1dG9jb21wbGV0YWJsZSgpXCIgIFtjbGFzcy5hdXRvY29tcGxldGUtbGlzdC1zaG93XT1cImF1dG9jb21wbGV0ZS5yZWxhdGVkRW50cmllcz8ubGVuZ3RoICYmIHNob3dBdXRvY29tcGxldGlvblwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBhdXRvY29tcGxldGUucmVsYXRlZEVudHJpZXM7IHRyYWNrQnk6IGF1dG9jb21wbGV0ZUl0ZW1UcmFja0J5VmFsdWVGblwiIChjbGljayk9XCJvbkVudHJ5Q2xpY2soZW50cnksICRldmVudClcIj5cbiAgICAgICAgPGEgW2hyZWZdPVwiZW50cnkubGlua1wiID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXV0b2NvbXBsZXRlSXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhdXRvY29tcGxldGVJdGVtVGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhciBzaXplLXNtXCIgKm5nSWY9XCJlbnRyeS5hdmF0YXJTcmNQYXRoXCI+XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiZW50cnkuYXZhdGFyU3JjUGF0aFwiIFthbHRdPVwiZW50cnkuYXZhdGFyQWx0VGV4dFwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpdC1pY29uICpuZ0lmPVwiZW50cnkuaWNvblwiIFtuYW1lXT1cImVudHJ5Lmljb25cIiBzaXplPVwic21cIj48L2l0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRvY29tcGxldGUtbGlzdC10ZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXSA9IFwiZW50cnkub3JpZ2luYWwgfCBtYXJrTWF0Y2hpbmdUZXh0OiBhdXRvY29tcGxldGUuc2VhcmNoZWRWYWx1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxlbSAqbmdJZj1cImVudHJ5LmxhYmVsXCI+e3tlbnRyeS5sYWJlbH19PC9lbT5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvbmctY29udGFpbmVyPlxuICBcblxuICA8IS0tIEZJTkUgZ2VzdGlvbmUgQVVUT0NPTVBMRVRBTUVOVE8gLS0+XG5cblxuXG5cbiAgPGRpdiAqbmdJZj1cImlzSW52YWxpZFwiIGNsYXNzPVwiZm9ybS1mZWVkYmFjayBqdXN0LXZhbGlkYXRlLWVycm9yLWxhYmVsXCIgW2lkXT1cImlkICsgJy1lcnJvcidcIj5cbiAgICA8ZGl2ICNjdXN0b21FcnJvcj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlcnJvcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21FcnJvci5oYXNDaGlsZE5vZGVzKClcIj57e2ludmFsaWRNZXNzYWdlIHwgYXN5bmN9fTwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVuRixPQUFPLEVBQWdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPM0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxxQkFBc0M7SUFMMUU7O1FBT0U7OztXQUdHO1FBQ00sU0FBSSxHQUFxQixNQUFNLENBQUM7UUFFekM7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQW1EMUIsc0JBQWlCLEdBQTRCLEVBQUUsQ0FBQztRQUV4RCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUEwRTNCLDJFQUEyRTtRQUMzRSx5QkFBb0IsR0FBNEgsSUFBSSxVQUFVLEVBQUUsQ0FBQztLQWdIbEs7SUFyTUM7Ozs7T0FJRztJQUNILElBQ0ksZ0JBQWdCLENBQUMsS0FBOEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFD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T0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsS0FBdUIsRUFBRSxLQUFZO1FBQ2hELHlHQUF5RztRQUN6Ryx3R0FBd0c7UUFDeEcsSUFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDZCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBYSxFQUFFLElBQXNCO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztJQUNuRCxDQUFDOzsyR0ExUFUsY0FBYzsrRkFBZCxjQUFjLHFVQ2IzQiw0d0lBK0dBOzJGRGxHYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGNBQWM7OEJBVWYsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxHQUFHO3NCQUFYLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQVFGLGdCQUFnQjtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC1mb3JtLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVJdGVtLCBJbnB1dENvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9mb3JtJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJdFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi8uLi92YWxpZGF0b3JzL2l0LXZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBpc1RydWVCb29sZWFuSW5wdXQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ib29sZWFuLWlucHV0JztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtaW5wdXRbaWRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Rm9ybUNvbXBvbmVudDxzdHJpbmcgfCBudW1iZXI+IHtcblxuICAvKipcbiAgICogVGhlIGlucHV0IHR5cGVcbiAgICogQGRlZmF1bHQgdGV4dFxuICAgKi9cbiAgQElucHV0KCkgdHlwZTogSW5wdXRDb250cm9sVHlwZSA9ICd0ZXh0JztcblxuICAvKipcbiAgICogVGhlIGlucHV0IHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBkZXNjcmlwdGlvblxuICAgKi9cbiAgQElucHV0KCkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvIHByZXZlbnQgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250YWluZWQgdmFsdWUuXG4gICAqIC0gPGI+cGxhaW50ZXh0PC9iPjogUmVhZG9ubHkgZmllbGQgaW4gdGhlIGZvcm0gc3R5bGl6ZWQgYXMgcGxhaW4gdGV4dFxuICAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHk/OiBCb29sZWFuSW5wdXQgfCAncGxhaW50ZXh0JztcblxuICAvKipcbiAgICogVGhlIG1heCB2YWx1ZSBbVXNlZCBvbmx5IGluIHR5cGUgPSAnbnVtYmVyJ11cbiAgICovXG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG1pbiB2YWx1ZSBbVXNlZCBvbmx5IGluIHR5cGUgPSAnbnVtYmVyJ11cbiAgICovXG4gIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHN0ZXAgdmFsdWUgW1VzZWQgb25seSBpbiB0eXBlID0gJ251bWJlciddXG4gICAqL1xuICBASW5wdXQoKSBzdGVwPzogbnVtYmVyIHwgJ2FueSc7XG5cbiAgLyoqXG4gICAqIElmIGlzIGEgY3VycmVuY3kgbnVtYmVyIFtVc2VkIG9ubHkgaW4gdHlwZSA9ICdudW1iZXInXVxuICAgKi9cbiAgQElucHV0KCkgY3VycmVuY3k/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIElmIGlzIGEgcGVyY2VudGFnZSBudW1iZXIgW1VzZWQgb25seSBpbiB0eXBlID0gJ251bWJlciddXG4gICAqL1xuICBASW5wdXQoKSBwZXJjZW50YWdlPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBUbyBtYWtlIHRoZSBudW1lcmljIGZpZWxkIGF1dG9tYXRpY2FsbHkgcmVzaXplIGFjY29yZGluZyB0byB0aGUgdmFsdWUgY29udGFpbmVkIGluIGl0LiBbVXNlZCBvbmx5IGluIHR5cGUgPSAnbnVtYmVyJ11cbiAgICovXG4gIEBJbnB1dCgpIGFkYXB0aXZlPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBPcHppb25hbGUuXG4gICAqIERpc3BvbmliaWxlIHNvbG8gc2UgaWwgdHlwZSDDqCBzZWFyY2guXG4gICAqIEluZGljYSBsYSBsaXN0YSBkaSBlbGVtZW50aSByaWNlcmNhYmlsaSBzdSBjdWkgYmFzYXJlIGlsIHNpc3RlbWEgZGkgYXV0b2NvbXBsZXRhbWVudG8gZGVsbGEgaW5wdXRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBhdXRvQ29tcGxldGVEYXRhKHZhbHVlOiBBcnJheTxBdXRvQ29tcGxldGVJdGVtPikgeyB0aGlzLl9hdXRvQ29tcGxldGVEYXRhID0gdmFsdWU7IH1cbiAgZ2V0IGF1dG9Db21wbGV0ZURhdGEoKTogQXJyYXk8QXV0b0NvbXBsZXRlSXRlbT4geyByZXR1cm4gdGhpcy5fYXV0b0NvbXBsZXRlRGF0YTsgfVxuICBwcml2YXRlIF9hdXRvQ29tcGxldGVEYXRhOiBBcnJheTxBdXRvQ29tcGxldGVJdGVtPiA9IFtdO1xuXG4gIHNob3dBdXRvY29tcGxldGlvbiA9IGZhbHNlO1xuXG5cbiAgZ2V0IGlzQWN0aXZlTGFiZWwoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XG4gICAgaWYgKCghIXZhbHVlICYmIHZhbHVlICE9PSAwKSB8fCB2YWx1ZSA9PT0gMCB8fCAhIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdudW1iZXInICYmIChpc1RydWVCb29sZWFuSW5wdXQodGhpcy5jdXJyZW5jeSkgfHwgaXNUcnVlQm9vbGVhbklucHV0KHRoaXMucGVyY2VudGFnZSkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50eXBlID09PSAnZGF0ZScgfHwgdGhpcy50eXBlID09PSAndGltZSc7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaXMgcmVhZG9ubHkgZmllbGRcbiAgICovXG4gIGdldCBpc1JlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID09PSAncGxhaW50ZXh0JyB8fCBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5yZWFkb25seSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBpbnZhbGlkIG1lc3NhZ2Ugc3RyaW5nIGZyb20gVHJhbnNsYXRlU2VydmljZVxuICAgKi9cbiAgb3ZlcnJpZGUgZ2V0IGludmFsaWRNZXNzYWdlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ21pbicpICYmIHRoaXMubWluKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5taW4taW52YWxpZCcsIHtcbiAgICAgICAgbWluOiB0aGlzLm1pblxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdtYXgnKSAmJiB0aGlzLm1heCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMubWF4LWludmFsaWQnLCB7XG4gICAgICAgIG1heDogdGhpcy5tYXhcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5nZXRFcnJvcignbWlubGVuZ3RoJyk7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5taW4tbGVuZ3RoLWludmFsaWQnLCB7IG1pbjogZXJyb3IucmVxdWlyZWRMZW5ndGggfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xuICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmdldEVycm9yKCdtYXhsZW5ndGgnKTtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLm1heC1sZW5ndGgtaW52YWxpZCcsIHsgbWF4OiBlcnJvci5yZXF1aXJlZExlbmd0aCB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2VtYWlsJykgfHwgdGhpcy5oYXNFcnJvcignaW52YWxpZEVtYWlsJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLmVtYWlsLWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRUZWwnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMudGVsLWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRVcmwnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMudXJsLWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRUYXhDb2RlJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnRheC1jb2RlLWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRWYXROdW1iZXInKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMudmF0LW51bWJlci1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkQ2FwJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLmNhcC1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkUmVnZXgnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMucmVnZXgtaW52YWxpZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNFcnJvcigncGF0dGVybicpKSB7XG4gICAgICBjb25zdCBlcnJvciA9IHRoaXMuZ2V0RXJyb3IoJ3BhdHRlcm4nKTtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnBhdHRlcm4taW52YWxpZCcsIHsgcGF0dGVybjogZXJyb3IucmVxdWlyZWRQYXR0ZXJuIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5pbnZhbGlkTWVzc2FnZTtcbiAgfVxuXG4gIC8qKiBPYnNlcnZhYmxlIGRhIGN1aSB2ZW5nb25vIGVtZXNzaSBpIHJpc3VsdGF0aSBkZWxsJ2F1dG8gY29tcGxldGFtZW50byAqL1xuICBhdXRvY29tcGxldGVSZXN1bHRzJDogT2JzZXJ2YWJsZTx7IHNlYXJjaGVkVmFsdWU6IHN0cmluZywgcmVsYXRlZEVudHJpZXM6IEFycmF5PEF1dG9Db21wbGV0ZUl0ZW0gJiB7IG9yaWdpbmFsOiBzdHJpbmcsIGxvd2VyY2FzZTogc3RyaW5nIH0+fT4gPSBuZXcgT2JzZXJ2YWJsZSgpO1xuXG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPiA9IFtdO1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICBpZiAoaXNUcnVlQm9vbGVhbklucHV0KHRoaXMucGVyY2VudGFnZSkpIHtcbiAgICAgICAgICB0aGlzLm1pbiA9IHRoaXMubWluIHx8IDA7XG4gICAgICAgICAgdGhpcy5tYXggPSB0aGlzLm1heCB8fCAxMDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEeW5hbWljIG1pbi9tYXggdmFsaWRhdG9yc1xuICAgICAgICB2YWxpZGF0b3JzLnB1c2goKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gdGhpcy5taW4gPyBWYWxpZGF0b3JzLm1pbih0aGlzLm1pbikoY29udHJvbCkgOiBudWxsKTtcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHRoaXMubWF4ID8gVmFsaWRhdG9ycy5tYXgodGhpcy5tYXgpKGNvbnRyb2wpIDogbnVsbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goSXRWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0ZWwnOlxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goSXRWYWxpZGF0b3JzLnRlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndXJsJzpcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKEl0VmFsaWRhdG9ycy51cmwpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmFkZFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVSZXN1bHRzJCA9IHRoaXMuZ2V0QXV0b2NvbXBsZXRlUmVzdWx0cyQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmNyZW1lbnQgb3IgZGVjcmVhc2UgdGhlIGlucHV0IG51bWJlciB2YWx1ZSBvZiBzdGVwXG4gICAqIEBwYXJhbSBkZWNyZWFzZSB0cnVlIHRvIGRlY3JlYXNlIHZhbHVlXG4gICAqL1xuICBpbmNyZW1lbnROdW1iZXIoZGVjcmVhc2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnR5cGUgIT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0ZXAgPSAodGhpcy5zdGVwID09PSAnYW55JyA/IDEgOiAodGhpcy5zdGVwID8/IDEpKTtcbiAgICBsZXQgdmFsdWUgPSBOdW1iZXIodGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICB2YWx1ZSA9IChpc05hTih2YWx1ZSkgPyAwIDogdmFsdWUpICsgKGRlY3JlYXNlID8gLXN0ZXAgOiBzdGVwKTtcbiAgICB2YWx1ZSA9IE1hdGgucm91bmQodmFsdWUgKiAxZTEyKSAvIDFlMTI7IC8vIHByZXZlbnQganMgZGVjaW1hbCBlcnJvclxuXG4gICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgPCB0aGlzLm1pbikge1xuICAgICAgdmFsdWUgPSB0aGlzLm1pbjtcbiAgICB9IGVsc2UgaWYgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgPiB0aGlzLm1heCkge1xuICAgICAgdmFsdWUgPSB0aGlzLm1heDtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cblxuICBcbiAgZ2V0QXV0b2NvbXBsZXRlUmVzdWx0cyQoKTogT2JzZXJ2YWJsZTx7IHNlYXJjaGVkVmFsdWU6IHN0cmluZywgcmVsYXRlZEVudHJpZXM6IEFycmF5PEF1dG9Db21wbGV0ZUl0ZW0gJiB7IG9yaWdpbmFsOiBzdHJpbmcsIGxvd2VyY2FzZTogc3RyaW5nIH0+fT4ge1xuXG4gICAgaWYodGhpcy50eXBlID09PSAnc2VhcmNoJykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShtYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHNlYXJjaGVkVmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBsb3dlcmNhc2VWYWx1ZSA9IHNlYXJjaGVkVmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBjb25zdCBsb3dlcmNhc2VEYXRhID0gdGhpcy5fYXV0b0NvbXBsZXRlRGF0YS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0udmFsdWUpLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIG9yaWdpbmFsIDogaXRlbS52YWx1ZSwgbG93ZXJjYXNlIDogaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpIH07XG4gICAgICAgICAgfSk7XG4gICAgXG4gICAgICAgICAgY29uc3QgcmVsYXRlZEVudHJpZXM6IEFycmF5PEF1dG9Db21wbGV0ZUl0ZW0gJiB7IG9yaWdpbmFsOiBzdHJpbmcsIGxvd2VyY2FzZTogc3RyaW5nIH0+ID0gW107XG4gICAgICAgICAgbG93ZXJjYXNlRGF0YS5mb3JFYWNoKGxvd2VyY2FzZUVudHJ5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoaW5nID0gKGxvd2VyY2FzZUVudHJ5Lmxvd2VyY2FzZSkuaW5jbHVkZXMobG93ZXJjYXNlVmFsdWUpO1xuICAgICAgICAgICAgaWYgKG1hdGNoaW5nKSB7XG4gICAgICAgICAgICAgIHJlbGF0ZWRFbnRyaWVzLnB1c2gobG93ZXJjYXNlRW50cnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICBcbiAgICAgICAgICByZXR1cm4geyBzZWFyY2hlZFZhbHVlLCByZWxhdGVkRW50cmllcyB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IHNlYXJjaGVkVmFsdWUsIHJlbGF0ZWRFbnRyaWVzOiBbXX07XG4gICAgICAgIH1cbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKHtzZWFyY2hlZFZhbHVlOiAnJywgcmVsYXRlZEVudHJpZXM6IFtdfSk7XG4gICAgfVxuICAgIFxuICB9XG5cbiAgaXNBdXRvY29tcGxldGFibGUoKSB7XG4gICAgaWYgKHRoaXMuX2F1dG9Db21wbGV0ZURhdGEgJiYgdGhpcy50eXBlID09PSAnc2VhcmNoJykge1xuICAgICAgcmV0dXJuIHRoaXMuX2F1dG9Db21wbGV0ZURhdGEubGVuZ3RoID4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uRW50cnlDbGljayhlbnRyeTogQXV0b0NvbXBsZXRlSXRlbSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgLy8gU2Ugbm9uIMOoIHN0YXRvIGRlZmluaXRvIHVuIGxpbmsgYXNzb2NpYXRvIGFsbCdlbGVtZW50byBkZWxsJ2F1dG9jb21wbGV0ZSwgcHJvYmFiaWxtZW50ZSBpbCBkZXNpZGVyYXRhIFxuICAgIC8vIG5vbiDDqCBlZmZldHR1YXJlIGxhIG5hdmlnYXppb25lIGFsIGRlZmF1bHQgJyMnLCBwZXJ0YW50byBpbiB0YWwgY2FzbyBtZWdsaW8gYW5udWxsYXJlIGxhIG5hdmlnYXppb25lLlxuICAgIGlmKCFlbnRyeS5saW5rKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZW50cnkudmFsdWUpO1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0aW9uID0gZmFsc2U7XG4gIH1cblxuICBhdXRvY29tcGxldGVJdGVtVHJhY2tCeVZhbHVlRm4oaW5kZXg6IG51bWJlciwgaXRlbTogQXV0b0NvbXBsZXRlSXRlbSkge1xuICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICB9XG5cbiAgb25LZXlEb3duKCkge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0aW9uID0gdGhpcy50eXBlID09PSAnc2VhcmNoJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXByZXBlbmRcIiBbY2xhc3MuZC1ub25lXT1cIiFwcmVwZW5kVGV4dC5oYXNDaGlsZE5vZGVzKCkgJiYgIXByZXBlbmQuaGFzQ2hpbGROb2RlcygpXCI+XG4gICAgICA8ZGl2ICNwcmVwZW5kPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHJlcGVuZF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCIgI3ByZXBlbmRUZXh0PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHJlcGVuZFRleHRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtmb3JdPVwiaWRcIiBbY2xhc3MuYWN0aXZlXT1cImlzQWN0aXZlTGFiZWxcIlxuICAgICAgICAgICBbY2xhc3MuZW1wdHktcHJlcGVuZC1sYWJlbF09XCIhcHJlcGVuZFRleHQuaGFzQ2hpbGROb2RlcygpICYmICFwcmVwZW5kLmhhc0NoaWxkTm9kZXMoKVwiPlxuICAgICAge3tsYWJlbH19XG4gICAgPC9sYWJlbD5cblxuICAgIDxzcGFuICpuZ0lmPVwidHlwZSA9PT0gJ251bWJlcidcIlxuICAgICAgICAgIGNsYXNzPVwiaW5wdXQtbnVtYmVyXCJcbiAgICAgICAgICBbY2xhc3MuaW5wdXQtbnVtYmVyLWN1cnJlbmN5XT1cImN1cnJlbmN5XCJcbiAgICAgICAgICBbY2xhc3MuaW5wdXQtbnVtYmVyLXBlcmNlbnRhZ2VdPVwicGVyY2VudGFnZVwiXG4gICAgICAgICAgW2NsYXNzLmlucHV0LW51bWJlci1hZGFwdGl2ZV09XCJhZGFwdGl2ZVwiPlxuXG4gICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICBbc3RlcF09XCJzdGVwID8/IG51bGxcIlxuICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImlzSW52YWxpZFwiXG4gICAgICAgICAgICAgW2NsYXNzLmlzLXZhbGlkXT1cImlzVmFsaWRcIlxuICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgIFtyZWFkb25seV09XCJpc1JlYWRvbmx5XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1kZXNjcmlwdGlvbidcIlxuICAgICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiIC8+XG5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW5wdXQtbnVtYmVyLWFkZFwiIChjbGljayk9XCJpbmNyZW1lbnROdW1iZXIoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0uaW5jcmVhc2UtdmFsdWUnfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW5wdXQtbnVtYmVyLXN1YlwiIChjbGljayk9XCJpbmNyZW1lbnROdW1iZXIodHJ1ZSlcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydpdC5mb3JtLmRlY3JlYXNlLXZhbHVlJ319PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9zcGFuPlxuXG4gICAgPGlucHV0ICpuZ0lmPVwidHlwZSAhPT0gJ251bWJlcidcIlxuICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgW2NsYXNzLmZvcm0tY29udHJvbF09XCJyZWFkb25seSAhPT0gJ3BsYWludGV4dCdcIlxuICAgICAgICAgICBbY2xhc3MuZm9ybS1jb250cm9sLXBsYWludGV4dF09XCJyZWFkb25seSA9PT0gJ3BsYWludGV4dCdcIlxuICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJpc0ludmFsaWRcIlxuICAgICAgICAgICBbY2xhc3MuaXMtdmFsaWRdPVwiaXNWYWxpZFwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxuICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oKVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLWRlc2NyaXB0aW9uJ1wiXG4gICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FwcGVuZF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthcHBlbmRUZXh0XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8c21hbGwgKm5nSWY9XCJkZXNjcmlwdGlvblwiIFtpZF09XCJpZCArICctZGVzY3JpcHRpb24nXCIgY2xhc3M9XCJmb3JtLXRleHRcIj57e2Rlc2NyaXB0aW9ufX08L3NtYWxsPlxuXG5cblxuXG4gIDwhLS0gSU5JWklPIGdlc3Rpb25lIEFVVE9DT01QTEVUQU1FTlRPIC0tPlxuXG5cbiAgPCEtLSBJY29uYSBsZW50ZSBwZXIgYXV0b2NvbXBsZXRhbWVudG8gLS0+XG4gIDxzcGFuIGNsYXNzPVwiYXV0b2NvbXBsZXRlLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIiAqbmdJZj1cImlzQXV0b2NvbXBsZXRhYmxlKClcIj5cbiAgICA8aXQtaWNvbiBuYW1lID0gXCJzZWFyY2hcIiBzaXplPVwic21cIj48L2l0LWljb24+XG4gIDwvc3Bhbj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXV0b2NvbXBsZXRlUmVzdWx0cyQgfCBhc3luYyBhcyBhdXRvY29tcGxldGVcIj5cbiAgICA8IS0tIExpc3RhIGRpIGF1dG9jb21wbGV0YW1lbnRvIC0tPlxuICAgIDx1bCBjbGFzcz1cImF1dG9jb21wbGV0ZS1saXN0XCIgKm5nSWY9XCJpc0F1dG9jb21wbGV0YWJsZSgpXCIgIFtjbGFzcy5hdXRvY29tcGxldGUtbGlzdC1zaG93XT1cImF1dG9jb21wbGV0ZS5yZWxhdGVkRW50cmllcz8ubGVuZ3RoICYmIHNob3dBdXRvY29tcGxldGlvblwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBhdXRvY29tcGxldGUucmVsYXRlZEVudHJpZXM7IHRyYWNrQnk6IGF1dG9jb21wbGV0ZUl0ZW1UcmFja0J5VmFsdWVGblwiIChjbGljayk9XCJvbkVudHJ5Q2xpY2soZW50cnksICRldmVudClcIj5cbiAgICAgICAgPGEgW2hyZWZdPVwiZW50cnkubGlua1wiID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYXV0b2NvbXBsZXRlSXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhdXRvY29tcGxldGVJdGVtVGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhciBzaXplLXNtXCIgKm5nSWY9XCJlbnRyeS5hdmF0YXJTcmNQYXRoXCI+XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiZW50cnkuYXZhdGFyU3JjUGF0aFwiIFthbHRdPVwiZW50cnkuYXZhdGFyQWx0VGV4dFwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpdC1pY29uICpuZ0lmPVwiZW50cnkuaWNvblwiIFtuYW1lXT1cImVudHJ5Lmljb25cIiBzaXplPVwic21cIj48L2l0LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRvY29tcGxldGUtbGlzdC10ZXh0XCI+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXSA9IFwiZW50cnkub3JpZ2luYWwgfCBtYXJrTWF0Y2hpbmdUZXh0OiBhdXRvY29tcGxldGUuc2VhcmNoZWRWYWx1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxlbSAqbmdJZj1cImVudHJ5LmxhYmVsXCI+e3tlbnRyeS5sYWJlbH19PC9lbT5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvbmctY29udGFpbmVyPlxuICBcblxuICA8IS0tIEZJTkUgZ2VzdGlvbmUgQVVUT0NPTVBMRVRBTUVOVE8gLS0+XG5cblxuXG5cbiAgPGRpdiAqbmdJZj1cImlzSW52YWxpZFwiIGNsYXNzPVwiZm9ybS1mZWVkYmFjayBqdXN0LXZhbGlkYXRlLWVycm9yLWxhYmVsXCIgW2lkXT1cImlkICsgJy1lcnJvcidcIj5cbiAgICA8ZGl2ICNjdXN0b21FcnJvcj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlcnJvcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21FcnJvci5oYXNDaGlsZE5vZGVzKClcIj57e2ludmFsaWRNZXNzYWdlIHwgYXN5bmN9fTwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -32,10 +32,10 @@ export class TextareaComponent extends AbstractFormComponent {
32
32
  }
33
33
  }
34
34
  TextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
- TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TextareaComponent, selector: "it-textarea[id]", inputs: { rows: "rows", placeholder: "placeholder", description: "description" }, usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"markAsTouched()\"></textarea>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n", styles: ["textarea.is-invalid{border-color:#d9364f}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
35
+ TextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: TextareaComponent, selector: "it-textarea[id]", inputs: { rows: "rows", placeholder: "placeholder", description: "description" }, usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"markAsTouched()\"></textarea>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n", styles: ["textarea.is-invalid{border-color:#cc334d}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: TextareaComponent, decorators: [{
37
37
  type: Component,
38
- args: [{ selector: 'it-textarea[id]', template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"markAsTouched()\"></textarea>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n", styles: ["textarea.is-invalid{border-color:#d9364f}\n"] }]
38
+ args: [{ selector: 'it-textarea[id]', template: "<div class=\"form-group\">\n <label *ngIf=\"label\" [for]=\"id\" [class.active]=\"!!control.value || !!placeholder\">{{label}}</label>\n <textarea\n [id]=\"id\"\n [rows]=\"rows\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n (blur)=\"markAsTouched()\"></textarea>\n\n <small *ngIf=\"description\" [id]=\"id + '-description'\" class=\"form-text\">{{description}}</small>\n <div *ngIf=\"isInvalid\" class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n <ng-container *ngIf=\"!customError.hasChildNodes()\">{{invalidMessage | async}}</ng-container>\n </div>\n</div>\n", styles: ["textarea.is-invalid{border-color:#cc334d}\n"] }]
39
39
  }], propDecorators: { rows: [{
40
40
  type: Input
41
41
  }], placeholder: [{
@@ -72,7 +72,7 @@ export class UploadDragDropComponent extends AbstractComponent {
72
72
  if (this.accept !== '*' && !this.accept.includes(file.type)) {
73
73
  return;
74
74
  }
75
- this.donut?.set(0);
75
+ this.reset();
76
76
  this.isLoading = true;
77
77
  const splitName = file.name.split('.');
78
78
  this.filename = splitName[0];
@@ -82,9 +82,12 @@ export class UploadDragDropComponent extends AbstractComponent {
82
82
  }
83
83
  /**
84
84
  * Percentage of upload
85
- * @param value the percentage
85
+ * @param value the percentage [0 - 100]
86
86
  */
87
87
  progress(value) {
88
+ if (!this.isLoading) {
89
+ return;
90
+ }
88
91
  if (value >= 100) {
89
92
  this.success();
90
93
  }
@@ -110,7 +113,7 @@ export class UploadDragDropComponent extends AbstractComponent {
110
113
  }
111
114
  }
112
115
  UploadDragDropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadDragDropComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
113
- UploadDragDropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadDragDropComponent, selector: "it-upload-drag-drop[id]", inputs: { accept: "accept" }, outputs: { fileStartUpload: "fileStartUpload" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, viewQueries: [{ propertyName: "donutElement", first: true, predicate: ["donutElement"], descendants: true }], exportAs: ["itUploadDragDrop"], usesInheritance: true, ngImport: i0, template: "<div class=\"upload-dragdrop\" [class.dragover]=\"isDragover\" [class.loading]=\"isLoading\" [class.success]=\"isSuccess\">\n <div class=\"upload-dragdrop-image\">\n <img src=\"/bootstrap-italia/dist/assets/upload-drag-drop-icon.svg\" alt=\"drag-drop-icon\" aria-hidden=\"true\">\n <div class=\"upload-dragdrop-loading\">\n <div class=\"progress-donut\" #donutElement></div>\n </div>\n <div class=\"upload-dragdrop-success\">\n <it-icon name=\"check\"></it-icon>\n </div>\n </div>\n <div class=\"upload-dragdrop-text\">\n <p class=\"upload-dragdrop-weight\">\n <it-icon name=\"file\" size=\"xs\"></it-icon>\n {{extension}} ({{fileSize}})\n </p>\n <h5>{{filename || ('it.form.upload-drag-file'|translate)}}</h5>\n <p *ngIf=\"isLoading\">{{'it.form.upload-loading'|translate}}</p>\n <p *ngIf=\"isSuccess\">{{'it.form.upload-complete'|translate}}</p>\n <p *ngIf=\"!isLoading && !isSuccess\">{{'it.form.upload-or'|translate}}\n <input type=\"file\" [id]=\"id\" class=\"upload-dragdrop-input\" [accept]=\"accept\" (change)=\"onLoadFile($event)\"/>\n <label [for]=\"id\">{{'it.form.upload-select-device'|translate}}</label>\n </p>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
116
+ UploadDragDropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadDragDropComponent, selector: "it-upload-drag-drop[id]", inputs: { accept: "accept" }, outputs: { fileStartUpload: "fileStartUpload" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, viewQueries: [{ propertyName: "donutElement", first: true, predicate: ["donutElement"], descendants: true }], exportAs: ["itUploadDragDrop"], usesInheritance: true, ngImport: i0, template: "<div class=\"upload-dragdrop\" [class.dragover]=\"isDragover\" [class.loading]=\"isLoading\" [class.success]=\"isSuccess\">\n <div class=\"upload-dragdrop-image\">\n <img src=\"/bootstrap-italia/dist/assets/upload-drag-drop-icon.svg\" alt=\"drag-drop-icon\" aria-hidden=\"true\">\n <div class=\"upload-dragdrop-loading\">\n <div class=\"progress-donut\" #donutElement></div>\n </div>\n <div class=\"upload-dragdrop-success\">\n <it-icon name=\"check\"></it-icon>\n </div>\n </div>\n <div class=\"upload-dragdrop-text\">\n <p class=\"upload-dragdrop-weight\">\n <it-icon name=\"file\" size=\"xs\"></it-icon>\n {{extension}} ({{fileSize}})\n </p>\n <h5>{{filename || ('it.form.upload-drag-file'|translate)}}</h5>\n <p *ngIf=\"isLoading\">{{'it.form.upload-loading'|translate}}</p>\n <p *ngIf=\"isSuccess\">{{'it.form.upload-complete'|translate}}</p>\n <p *ngIf=\"!isLoading && !isSuccess\">{{'it.form.upload-or'|translate}}\n <input type=\"file\" [id]=\"id\" class=\"upload-dragdrop-input\" [accept]=\"accept\" (change)=\"onLoadFile($event)\"/>\n <label [for]=\"id\">{{'it.form.upload-select-device'|translate}}</label>\n </p>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
114
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadDragDropComponent, decorators: [{
115
118
  type: Component,
116
119
  args: [{ selector: 'it-upload-drag-drop[id]', exportAs: 'itUploadDragDrop', template: "<div class=\"upload-dragdrop\" [class.dragover]=\"isDragover\" [class.loading]=\"isLoading\" [class.success]=\"isSuccess\">\n <div class=\"upload-dragdrop-image\">\n <img src=\"/bootstrap-italia/dist/assets/upload-drag-drop-icon.svg\" alt=\"drag-drop-icon\" aria-hidden=\"true\">\n <div class=\"upload-dragdrop-loading\">\n <div class=\"progress-donut\" #donutElement></div>\n </div>\n <div class=\"upload-dragdrop-success\">\n <it-icon name=\"check\"></it-icon>\n </div>\n </div>\n <div class=\"upload-dragdrop-text\">\n <p class=\"upload-dragdrop-weight\">\n <it-icon name=\"file\" size=\"xs\"></it-icon>\n {{extension}} ({{fileSize}})\n </p>\n <h5>{{filename || ('it.form.upload-drag-file'|translate)}}</h5>\n <p *ngIf=\"isLoading\">{{'it.form.upload-loading'|translate}}</p>\n <p *ngIf=\"isSuccess\">{{'it.form.upload-complete'|translate}}</p>\n <p *ngIf=\"!isLoading && !isSuccess\">{{'it.form.upload-or'|translate}}\n <input type=\"file\" [id]=\"id\" class=\"upload-dragdrop-input\" [accept]=\"accept\" (change)=\"onLoadFile($event)\"/>\n <label [for]=\"id\">{{'it.form.upload-select-device'|translate}}</label>\n </p>\n </div>\n</div>\n" }]
@@ -131,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
131
134
  type: HostListener,
132
135
  args: ['drop', ['$event']]
133
136
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRyYWctZHJvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdXBsb2FkLWRyYWctZHJvcC91cGxvYWQtZHJhZy1kcm9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZHJhZy1kcm9wL3VwbG9hZC1kcmFnLWRyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBUWpELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFOOUQ7O1FBUUU7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBRTlCOztXQUVHO1FBQ08sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJELGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVksS0FBSyxDQUFDO0tBK0c1QjtJQXBHVSxlQUFlO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsbUJB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LElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUMzRCxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDOztvSEE5SFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNGFDWHBDLCtyQ0F3QkE7MkZEYmEsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLHlCQUF5QixZQUd6QixrQkFBa0I7OEJBVW5CLE1BQU07c0JBQWQsS0FBSztnQkFLSSxlQUFlO3NCQUF4QixNQUFNO2dCQVNDLFlBQVk7c0JBRG5CLFNBQVM7dUJBQUMsY0FBYztnQkFnQmxCLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVU3QixXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTOUIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ZpbGUtdXRpbHMnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NEb251dCB9IGZyb20gJ2Jvb3RzdHJhcC1pdGFsaWEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdC11cGxvYWQtZHJhZy1kcm9wW2lkXScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZHJhZy1kcm9wLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLWRyYWctZHJvcC5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ2l0VXBsb2FkRHJhZ0Ryb3AnXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZERyYWdEcm9wQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQge1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjZXB0ZWQgZmlsZSB0eXBlIHRvIHVwbG9hZCA8YnI+XG4gICAqIFBvc3NpYmxlIHZhbHVlczogPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQmFzaWNzX29mX0hUVFAvTUlNRV90eXBlcy9Db21tb25fdHlwZXNcIj5NSU1FIFR5cGVzPC9hPiBzZXBhcmF0ZWQgYnkgY29tbWFcbiAgICogQGV4YW1wbGUgYXBwbGljYXRpb24vcGRmLGltYWdlL3BuZ1xuICAgKiBAZGVmYXVsdCAqXG4gICAqL1xuICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZyA9ICcqJztcblxuICAvKipcbiAgICogRmlyZWQgd2hlbiBmaWxlIHN0YXJ0IHRvIHVwbG9hZFxuICAgKi9cbiAgQE91dHB1dCgpIGZpbGVTdGFydFVwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcblxuICBpc0RyYWdvdmVyOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1N1Y2Nlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBkb251dD86IGFueTtcblxuICBAVmlld0NoaWxkKCdkb251dEVsZW1lbnQnKVxuICBwcml2YXRlIGRvbnV0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIGZpbGVuYW1lPzogc3RyaW5nO1xuICBleHRlbnNpb24/OiBzdHJpbmc7XG4gIGZpbGVTaXplPzogc3RyaW5nO1xuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICBpZiAodGhpcy5kb251dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuZG9udXQgPSBQcm9ncmVzc0RvbnV0LmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcy5kb251dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gRHJhZ292ZXIgbGlzdGVuZXJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnT3ZlcihldnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ292ZXIgPSAhdGhpcy5pc0xvYWRpbmc7XG4gIH1cblxuXG4gIC8vIERyYWdsZWF2ZSBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnTGVhdmUoZXZ0OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdvdmVyID0gZmFsc2U7XG4gIH1cblxuICAvLyBEcm9wIGxlYXZlIGxpc3RlbmVyXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Ecm9wKGV2dDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5pc0RyYWdvdmVyID0gZmFsc2U7XG4gICAgY29uc3QgZmlsZXMgPSBldnQuZGF0YVRyYW5zZmVyPy5maWxlcztcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgIWZpbGVzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGFydChmaWxlc1swXSk7XG4gIH1cblxuICAvKipcbiAgICogT24gbG9hZCBmaWxlIGZyb20gaW5wdXRcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBvbkxvYWRGaWxlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVzID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KT8uZmlsZXM7XG4gICAgaWYgKCFmaWxlcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhcnQoZmlsZXNbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSB1cGxvYWQgZmlsZVxuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXJ0KGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY2NlcHQgIT09ICcqJyAmJiAhdGhpcy5hY2NlcHQuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZG9udXQ/LnNldCgwKTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICBjb25zdCBzcGxpdE5hbWUgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKTtcbiAgICB0aGlzLmZpbGVuYW1lID0gc3BsaXROYW1lWzBdO1xuICAgIHRoaXMuZXh0ZW5zaW9uID0gc3BsaXROYW1lWzFdPy50b1VwcGVyQ2FzZSgpO1xuICAgIHRoaXMuZmlsZVNpemUgPSBGaWxlVXRpbHMuZ2V0RmlsZVNpemVTdHJpbmcoZmlsZSk7XG5cbiAgICB0aGlzLmZpbGVTdGFydFVwbG9hZC5lbWl0KGZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmNlbnRhZ2Ugb2YgdXBsb2FkXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgcGVyY2VudGFnZVxuICAgKi9cbiAgcHVibGljIHByb2dyZXNzKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPj0gMTAwKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kb251dD8uc2V0KCgodmFsdWUgPCAwKSA/IDAgOiB2YWx1ZSkgLyAxMDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgc3VjY2Vzc1xuICAgKi9cbiAgcHVibGljIHN1Y2Nlc3MoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlzU3VjY2VzcyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgZmlsZSB1cGxvYWRlclxuICAgKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVuYW1lID0gdGhpcy5leHRlbnNpb24gPSB0aGlzLmZpbGVTaXplID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZG9udXQ/LnNldCgwKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidXBsb2FkLWRyYWdkcm9wXCIgW2NsYXNzLmRyYWdvdmVyXT1cImlzRHJhZ292ZXJcIiBbY2xhc3MubG9hZGluZ109XCJpc0xvYWRpbmdcIiBbY2xhc3Muc3VjY2Vzc109XCJpc1N1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC1pbWFnZVwiPlxuICAgIDxpbWcgc3JjPVwiL2Jvb3RzdHJhcC1pdGFsaWEvZGlzdC9hc3NldHMvdXBsb2FkLWRyYWctZHJvcC1pY29uLnN2Z1wiIGFsdD1cImRyYWctZHJvcC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC1sb2FkaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtZG9udXRcIiAjZG9udXRFbGVtZW50PjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3Atc3VjY2Vzc1wiPlxuICAgICAgPGl0LWljb24gbmFtZT1cImNoZWNrXCI+PC9pdC1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC10ZXh0XCI+XG4gICAgPHAgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3Atd2VpZ2h0XCI+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiZmlsZVwiIHNpemU9XCJ4c1wiPjwvaXQtaWNvbj5cbiAgICAgIHt7ZXh0ZW5zaW9ufX0gKHt7ZmlsZVNpemV9fSlcbiAgICA8L3A+XG4gICAgPGg1Pnt7ZmlsZW5hbWUgfHwgKCdpdC5mb3JtLnVwbG9hZC1kcmFnLWZpbGUnfHRyYW5zbGF0ZSl9fTwvaDU+XG4gICAgPHAgKm5nSWY9XCJpc0xvYWRpbmdcIj57eydpdC5mb3JtLnVwbG9hZC1sb2FkaW5nJ3x0cmFuc2xhdGV9fTwvcD5cbiAgICA8cCAqbmdJZj1cImlzU3VjY2Vzc1wiPnt7J2l0LmZvcm0udXBsb2FkLWNvbXBsZXRlJ3x0cmFuc2xhdGV9fTwvcD5cbiAgICA8cCAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWlzU3VjY2Vzc1wiPnt7J2l0LmZvcm0udXBsb2FkLW9yJ3x0cmFuc2xhdGV9fVxuICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgW2lkXT1cImlkXCIgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3AtaW5wdXRcIiBbYWNjZXB0XT1cImFjY2VwdFwiIChjaGFuZ2UpPVwib25Mb2FkRmlsZSgkZXZlbnQpXCIvPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIj57eydpdC5mb3JtLnVwbG9hZC1zZWxlY3QtZGV2aWNlJ3x0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPC9wPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWRyYWctZHJvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdXBsb2FkLWRyYWctZHJvcC91cGxvYWQtZHJhZy1kcm9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZHJhZy1kcm9wL3VwbG9hZC1kcmFnLWRyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBT2pELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFMOUQ7O1FBT0U7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBRTlCOztXQUVHO1FBQ08sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXJELGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVksS0FBSyxDQUFDO0tBbUg1QjtJQXhHVSxlQUFlO1FBQ3RCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsbUJB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Q0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUMzRCxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDOztvSEFsSVUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNGFDVnBDLCtyQ0F3QkE7MkZEZGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHlCQUF5QixZQUV6QixrQkFBa0I7OEJBVW5CLE1BQU07c0JBQWQsS0FBSztnQkFLSSxlQUFlO3NCQUF4QixNQUFNO2dCQVNDLFlBQVk7c0JBRG5CLFNBQVM7dUJBQUMsY0FBYztnQkFnQmxCLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVU3QixXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTOUIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ZpbGUtdXRpbHMnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NEb251dCB9IGZyb20gJ2Jvb3RzdHJhcC1pdGFsaWEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdC11cGxvYWQtZHJhZy1kcm9wW2lkXScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQtZHJhZy1kcm9wLmNvbXBvbmVudC5odG1sJyxcbiAgZXhwb3J0QXM6ICdpdFVwbG9hZERyYWdEcm9wJ1xufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWREcmFnRHJvcENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IHtcblxuICAvKipcbiAgICogVGhlIGFjY2VwdGVkIGZpbGUgdHlwZSB0byB1cGxvYWQgPGJyPlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6IDxhIGhyZWY9XCJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0Jhc2ljc19vZl9IVFRQL01JTUVfdHlwZXMvQ29tbW9uX3R5cGVzXCI+TUlNRSBUeXBlczwvYT4gc2VwYXJhdGVkIGJ5IGNvbW1hXG4gICAqIEBleGFtcGxlIGFwcGxpY2F0aW9uL3BkZixpbWFnZS9wbmdcbiAgICogQGRlZmF1bHQgKlxuICAgKi9cbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmcgPSAnKic7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gZmlsZSBzdGFydCB0byB1cGxvYWRcbiAgICovXG4gIEBPdXRwdXQoKSBmaWxlU3RhcnRVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgaXNEcmFnb3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTdWNjZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZG9udXQ/OiBhbnk7XG5cbiAgQFZpZXdDaGlsZCgnZG9udXRFbGVtZW50JylcbiAgcHJpdmF0ZSBkb251dEVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBmaWxlbmFtZT86IHN0cmluZztcbiAgZXh0ZW5zaW9uPzogc3RyaW5nO1xuICBmaWxlU2l6ZT86IHN0cmluZztcblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgaWYgKHRoaXMuZG9udXRFbGVtZW50KSB7XG4gICAgICB0aGlzLmRvbnV0ID0gUHJvZ3Jlc3NEb251dC5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMuZG9udXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERyYWdvdmVyIGxpc3RlbmVyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ092ZXIoZXZ0OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdvdmVyID0gIXRoaXMuaXNMb2FkaW5nO1xuICB9XG5cblxuICAvLyBEcmFnbGVhdmUgbGlzdGVuZXJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJhZ0xlYXZlKGV2dDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnb3ZlciA9IGZhbHNlO1xuICB9XG5cbiAgLy8gRHJvcCBsZWF2ZSBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRHJvcChldnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuaXNEcmFnb3ZlciA9IGZhbHNlO1xuICAgIGNvbnN0IGZpbGVzID0gZXZ0LmRhdGFUcmFuc2Zlcj8uZmlsZXM7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nIHx8ICFmaWxlcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RhcnQoZmlsZXNbMF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uIGxvYWQgZmlsZSBmcm9tIGlucHV0XG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgb25Mb2FkRmlsZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmZpbGVzO1xuICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0YXJ0KGZpbGVzWzBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCB0aGUgdXBsb2FkIGZpbGVcbiAgICogQHBhcmFtIGZpbGVcbiAgICovXG4gIHB1YmxpYyBzdGFydChmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWNjZXB0ICE9PSAnKicgJiYgIXRoaXMuYWNjZXB0LmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2V0KCk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgY29uc3Qgc3BsaXROYW1lID0gZmlsZS5uYW1lLnNwbGl0KCcuJyk7XG4gICAgdGhpcy5maWxlbmFtZSA9IHNwbGl0TmFtZVswXTtcbiAgICB0aGlzLmV4dGVuc2lvbiA9IHNwbGl0TmFtZVsxXT8udG9VcHBlckNhc2UoKTtcbiAgICB0aGlzLmZpbGVTaXplID0gRmlsZVV0aWxzLmdldEZpbGVTaXplU3RyaW5nKGZpbGUpO1xuXG4gICAgdGhpcy5maWxlU3RhcnRVcGxvYWQuZW1pdChmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJjZW50YWdlIG9mIHVwbG9hZFxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIHBlcmNlbnRhZ2UgWzAgLSAxMDBdXG4gICAqL1xuICBwdWJsaWMgcHJvZ3Jlc3ModmFsdWU6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPj0gMTAwKSB7XG4gICAgICB0aGlzLnN1Y2Nlc3MoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kb251dD8uc2V0KCgodmFsdWUgPCAwKSA/IDAgOiB2YWx1ZSkgLyAxMDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgc3VjY2Vzc1xuICAgKi9cbiAgcHVibGljIHN1Y2Nlc3MoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlzU3VjY2VzcyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgZmlsZSB1cGxvYWRlclxuICAgKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pc1N1Y2Nlc3MgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVuYW1lID0gdGhpcy5leHRlbnNpb24gPSB0aGlzLmZpbGVTaXplID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZG9udXQ/LnNldCgwKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidXBsb2FkLWRyYWdkcm9wXCIgW2NsYXNzLmRyYWdvdmVyXT1cImlzRHJhZ292ZXJcIiBbY2xhc3MubG9hZGluZ109XCJpc0xvYWRpbmdcIiBbY2xhc3Muc3VjY2Vzc109XCJpc1N1Y2Nlc3NcIj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC1pbWFnZVwiPlxuICAgIDxpbWcgc3JjPVwiL2Jvb3RzdHJhcC1pdGFsaWEvZGlzdC9hc3NldHMvdXBsb2FkLWRyYWctZHJvcC1pY29uLnN2Z1wiIGFsdD1cImRyYWctZHJvcC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC1sb2FkaW5nXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtZG9udXRcIiAjZG9udXRFbGVtZW50PjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3Atc3VjY2Vzc1wiPlxuICAgICAgPGl0LWljb24gbmFtZT1cImNoZWNrXCI+PC9pdC1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1kcmFnZHJvcC10ZXh0XCI+XG4gICAgPHAgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3Atd2VpZ2h0XCI+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiZmlsZVwiIHNpemU9XCJ4c1wiPjwvaXQtaWNvbj5cbiAgICAgIHt7ZXh0ZW5zaW9ufX0gKHt7ZmlsZVNpemV9fSlcbiAgICA8L3A+XG4gICAgPGg1Pnt7ZmlsZW5hbWUgfHwgKCdpdC5mb3JtLnVwbG9hZC1kcmFnLWZpbGUnfHRyYW5zbGF0ZSl9fTwvaDU+XG4gICAgPHAgKm5nSWY9XCJpc0xvYWRpbmdcIj57eydpdC5mb3JtLnVwbG9hZC1sb2FkaW5nJ3x0cmFuc2xhdGV9fTwvcD5cbiAgICA8cCAqbmdJZj1cImlzU3VjY2Vzc1wiPnt7J2l0LmZvcm0udXBsb2FkLWNvbXBsZXRlJ3x0cmFuc2xhdGV9fTwvcD5cbiAgICA8cCAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWlzU3VjY2Vzc1wiPnt7J2l0LmZvcm0udXBsb2FkLW9yJ3x0cmFuc2xhdGV9fVxuICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgW2lkXT1cImlkXCIgY2xhc3M9XCJ1cGxvYWQtZHJhZ2Ryb3AtaW5wdXRcIiBbYWNjZXB0XT1cImFjY2VwdFwiIChjaGFuZ2UpPVwib25Mb2FkRmlsZSgkZXZlbnQpXCIvPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIj57eydpdC5mb3JtLnVwbG9hZC1zZWxlY3QtZGV2aWNlJ3x0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPC9wPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -13,7 +13,9 @@ export class UploadFileListComponent extends AbstractComponent {
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  /**
16
- * The accepted file type to upload
16
+ * The accepted file type to upload <br>
17
+ * Possible values: <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types">MIME Types</a> separated by comma
18
+ * @example application/pdf,image/png
17
19
  * @default *
18
20
  */
19
21
  this.accept = "*";
@@ -77,10 +79,10 @@ export class UploadFileListComponent extends AbstractComponent {
77
79
  }
78
80
  }
79
81
  UploadFileListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadFileListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
80
- UploadFileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadFileListComponent, selector: "it-upload-file-list[id][fileList]", inputs: { fileList: "fileList", accept: "accept", multiple: "multiple", images: "images", hideLoadButton: "hideLoadButton" }, outputs: { uploadFiles: "uploadFiles", deleteItem: "deleteItem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"!!item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? 'primary' : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button disabled *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\">\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress\"></it-progress-bar>\n </li>\n</ul>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[itTooltip]", inputs: ["itTooltip", "tooltipPlacement", "tooltipHtml"], outputs: ["onShow", "onShown", "onHide", "onHidden", "onInserted"], exportAs: ["itTooltip"] }, { kind: "component", type: i4.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
82
+ UploadFileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: UploadFileListComponent, selector: "it-upload-file-list[id][fileList]", inputs: { fileList: "fileList", accept: "accept", multiple: "multiple", images: "images", hideLoadButton: "hideLoadButton" }, outputs: { uploadFiles: "uploadFiles", deleteItem: "deleteItem" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? (item.progress ? 'secondary' : 'primary') : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" type=\"button\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\" type=\"button\" disabled>\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress\"></it-progress-bar>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ProgressBarComponent, selector: "it-progress-bar[value]", inputs: ["value", "showLabel", "indeterminate", "color"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[itTooltip]", inputs: ["itTooltip", "tooltipPlacement", "tooltipHtml"], outputs: ["onShow", "onShown", "onHide", "onHidden", "onInserted"], exportAs: ["itTooltip"] }, { kind: "component", type: i4.IconComponent, selector: "it-icon[name]", inputs: ["name", "size", "color", "padded", "class"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
81
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: UploadFileListComponent, decorators: [{
82
84
  type: Component,
83
- args: [{ selector: 'it-upload-file-list[id][fileList]', template: "<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"!!item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? 'primary' : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button disabled *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\">\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress\"></it-progress-bar>\n </li>\n</ul>\n" }]
85
+ args: [{ selector: 'it-upload-file-list[id][fileList]', template: "<ng-container *ngIf=\"!isHideLoadButton\">\n <input type=\"file\" [id]=\"id\" class=\"upload\" [accept]=\"accept\" [multiple]=\"isMultipleInput\"\n (change)=\"onLoadFiles($event)\" />\n <label [for]=\"id\">\n <it-icon name=\"upload\" size=\"sm\"></it-icon>\n <span>{{'it.form.upload'|translate}}</span>\n </label>\n</ng-container>\n\n<ul class=\"upload-file-list\" [class.upload-file-list-image]=\"isImageList\" *ngIf=\"fileList.length\">\n <li *ngFor=\"let item of fileList\" class=\"upload-file\"\n [class.error]=\"item.error\"\n [class.uploading]=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [class.success]=\"!item.error && (!item.progress || item.progress >= 100)\">\n\n <div class=\"upload-image\" *ngIf=\"isImageList; else icon\">\n <img [attr.src]=\"previewImages.get(item.id)\" [alt]=\"item.file.name\" />\n </div>\n <ng-template #icon>\n <it-icon name=\"file\" size=\"sm\" [color]=\"!item.error ? (item.progress ? 'secondary' : 'primary') : 'danger'\"></it-icon>\n </ng-template>\n\n <p [itTooltip]=\"item.tooltip\">\n <span class=\"visually-hidden\">{{'it.form.uploaded-file'|translate : { name: item.file.name } }}</span>\n {{item.file.name}} <span class=\"upload-file-weight\">{{getFileSize(item.file)}}</span>\n </p>\n\n <button *ngIf=\"item.removable && (!item.progress || item.progress < 100)\" type=\"button\" (click)=\"deleteItem.emit(item)\">\n <span class=\"visually-hidden\">{{'it.form.delete-file'|translate : { name: item.file.name } }}</span>\n <it-icon name=\"close\"></it-icon>\n </button>\n <button *ngIf=\"(!item.removable && !item.progress) || (item.progress !== undefined && item.progress >= 100)\" type=\"button\" disabled>\n <span class=\"visually-hidden\">{{'it.form.upload-complete'|translate}}</span>\n <it-icon name=\"check\"></it-icon>\n </button>\n\n <it-progress-bar *ngIf=\"!item.error && item.progress !== undefined && item.progress > 0 && item.progress < 100\"\n [value]=\"item.progress\"></it-progress-bar>\n </li>\n</ul>\n" }]
84
86
  }], propDecorators: { fileList: [{
85
87
  type: Input
86
88
  }], accept: [{
@@ -96,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
96
98
  }], deleteItem: [{
97
99
  type: Output
98
100
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdXBsb2FkLWZpbGUtbGlzdC91cGxvYWQtZmlsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZmlsZS1saXN0L3VwbG9hZC1maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBZSxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRTlFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTzFCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFMOUQ7O1FBWUU7OztXQUdHO1FBQ00sV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUU5Qjs7V0FFRztRQUNNLGFBQVEsR0FBaUIsSUFBSSxDQUFDO1FBWXZDOztXQUVHO1FBQ08sZ0JBQVcsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUU3RTs7V0FFRztRQUNPLGVBQVUsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFaEc7O1dBRUc7UUFDSCxrQkFBYSxHQUF3QixJQUFJLEdBQUcsRUFBa0IsQ0FBQztLQWtEaEU7SUFoREMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtZQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQTtTQUN4QjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0IsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsS0FBWTtRQUN0QixNQUFNLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBMkIsRUFBRSxLQUFLLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDM0IsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLE9BQU8sU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7O29IQXpGVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixzVENacEMsa2lFQXdDQTsyRkQ1QmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLG1DQUFtQzs4QkFTcEMsUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vYWJzdHJhY3RzL2Fic3RyYWN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGlzVHJ1ZUJvb2xlYW5JbnB1dH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2Jvb2xlYW4taW5wdXRcIjtcbmltcG9ydCB7VXBsb2FkRmlsZUxpc3RJdGVtfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy9mb3JtXCI7XG5pbXBvcnQge0ZpbGVVdGlsc30gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2ZpbGUtdXRpbHNcIjtcbmltcG9ydCB7dGFrZX0gZnJvbSBcInJ4anNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtdXBsb2FkLWZpbGUtbGlzdFtpZF1bZmlsZUxpc3RdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQtZmlsZS1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkRmlsZUxpc3RDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgZmlsZXMgdG8gc2hvdyBpbiBsaXN0XG4gICAqL1xuICBASW5wdXQoKSBmaWxlTGlzdCE6IEFycmF5PFVwbG9hZEZpbGVMaXN0SXRlbT47XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NlcHRlZCBmaWxlIHR5cGUgdG8gdXBsb2FkXG4gICAqIEBkZWZhdWx0ICpcbiAgICovXG4gIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nID0gXCIqXCI7XG5cbiAgLyoqXG4gICAqIElmIHVwbG9hZCBtdWx0aXBsZSBmaWxlc1xuICAgKi9cbiAgQElucHV0KCkgbXVsdGlwbGU6IEJvb2xlYW5JbnB1dCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIElmIGlzIGZpbGUgbGlzdCBpbWFnZVxuICAgKi9cbiAgQElucHV0KCkgaW1hZ2VzPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBIaWRlIHRoZSBsb2FkIGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgaGlkZUxvYWRCdXR0b24/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdXBsb2FkIG5ldyBmaWxlc1xuICAgKi9cbiAgQE91dHB1dCgpIHVwbG9hZEZpbGVzOiBFdmVudEVtaXR0ZXI8RmlsZUxpc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTGlzdD4oKTtcblxuICAvKipcbiAgICogRmlyZWQgb24gZGVsZXRlIGl0ZW0gYnV0dG9uIGNsaWNrXG4gICAqL1xuICBAT3V0cHV0KCkgZGVsZXRlSXRlbTogRXZlbnRFbWl0dGVyPFVwbG9hZEZpbGVMaXN0SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFVwbG9hZEZpbGVMaXN0SXRlbT4oKTtcblxuICAvKipcbiAgICogQ2FjaGUgdG8gcHJldmlldyBpbWFnZVxuICAgKi9cbiAgcHJldmlld0ltYWdlczogTWFwPG51bWJlciwgc3RyaW5nPiA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJbWFnZUxpc3QgJiYgdGhpcy5hY2NlcHQgPT09ICcqJykge1xuICAgICAgdGhpcy5hY2NlcHQgPSAnaW1hZ2UvKidcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2ZpbGVMaXN0J10gJiYgdGhpcy5pc0ltYWdlTGlzdCkge1xuICAgICAgdGhpcy5maWxlTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBGaWxlVXRpbHMuZmlsZVRvQmFzZTY0KGl0ZW0uZmlsZSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoYmFzZTY0ID0+IHtcbiAgICAgICAgICB0aGlzLnByZXZpZXdJbWFnZXMuc2V0KGl0ZW0uaWQsIGJhc2U2NCk7XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGdldCBpc011bHRpcGxlSW5wdXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLm11bHRpcGxlKTtcbiAgfVxuXG4gIGdldCBpc0ltYWdlTGlzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuaW1hZ2VzKTtcbiAgfVxuXG4gIGdldCBpc0hpZGVMb2FkQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5oaWRlTG9hZEJ1dHRvbik7XG4gIH1cblxuICAvKipcbiAgICogT24gbG9hZCBmaWxlIGZyb20gaW5wdXRcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBvbkxvYWRGaWxlcyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmZpbGVzO1xuICAgIGlmICghZmlsZXMgfHwgIWZpbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwbG9hZEZpbGVzLmVtaXQoZmlsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmlsZSBzaXplIHN0cmluZ1xuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgZ2V0RmlsZVNpemUoZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZpbGVVdGlscy5nZXRGaWxlU2l6ZVN0cmluZyhmaWxlKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSGlkZUxvYWRCdXR0b25cIj5cbiAgPGlucHV0IHR5cGU9XCJmaWxlXCIgW2lkXT1cImlkXCIgY2xhc3M9XCJ1cGxvYWRcIiBbYWNjZXB0XT1cImFjY2VwdFwiIFttdWx0aXBsZV09XCJpc011bHRpcGxlSW5wdXRcIlxuICAgICAgICAgKGNoYW5nZSk9XCJvbkxvYWRGaWxlcygkZXZlbnQpXCIgLz5cbiAgPGxhYmVsIFtmb3JdPVwiaWRcIj5cbiAgICA8aXQtaWNvbiBuYW1lPVwidXBsb2FkXCIgc2l6ZT1cInNtXCI+PC9pdC1pY29uPlxuICAgIDxzcGFuPnt7J2l0LmZvcm0udXBsb2FkJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctY29udGFpbmVyPlxuXG48dWwgY2xhc3M9XCJ1cGxvYWQtZmlsZS1saXN0XCIgW2NsYXNzLnVwbG9hZC1maWxlLWxpc3QtaW1hZ2VdPVwiaXNJbWFnZUxpc3RcIiAqbmdJZj1cImZpbGVMaXN0Lmxlbmd0aFwiPlxuICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsZUxpc3RcIiBjbGFzcz1cInVwbG9hZC1maWxlXCJcbiAgICAgIFtjbGFzcy5lcnJvcl09XCIhIWl0ZW0uZXJyb3JcIlxuICAgICAgW2NsYXNzLnVwbG9hZGluZ109XCIhaXRlbS5lcnJvciAmJiBpdGVtLnByb2dyZXNzICE9PSB1bmRlZmluZWQgJiYgaXRlbS5wcm9ncmVzcyA+IDAgJiYgaXRlbS5wcm9ncmVzcyA8IDEwMFwiXG4gICAgICBbY2xhc3Muc3VjY2Vzc109XCIhaXRlbS5lcnJvciAmJiAoIWl0ZW0ucHJvZ3Jlc3MgfHwgaXRlbS5wcm9ncmVzcyA+PSAxMDApXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWltYWdlXCIgKm5nSWY9XCJpc0ltYWdlTGlzdDsgZWxzZSBpY29uXCI+XG4gICAgICA8aW1nIFthdHRyLnNyY109XCJwcmV2aWV3SW1hZ2VzLmdldChpdGVtLmlkKVwiIFthbHRdPVwiaXRlbS5maWxlLm5hbWVcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjaWNvbj5cbiAgICAgIDxpdC1pY29uIG5hbWU9XCJmaWxlXCIgc2l6ZT1cInNtXCIgW2NvbG9yXT1cIiFpdGVtLmVycm9yID8gJ3ByaW1hcnknIDogJ2RhbmdlcidcIj48L2l0LWljb24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxwIFtpdFRvb2x0aXBdPVwiaXRlbS50b29sdGlwXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0udXBsb2FkZWQtZmlsZSd8dHJhbnNsYXRlIDogeyBuYW1lOiBpdGVtLmZpbGUubmFtZSB9IH19PC9zcGFuPlxuICAgICAge3tpdGVtLmZpbGUubmFtZX19IDxzcGFuIGNsYXNzPVwidXBsb2FkLWZpbGUtd2VpZ2h0XCI+e3tnZXRGaWxlU2l6ZShpdGVtLmZpbGUpfX08L3NwYW4+XG4gICAgPC9wPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cIml0ZW0ucmVtb3ZhYmxlICYmICghaXRlbS5wcm9ncmVzcyB8fCBpdGVtLnByb2dyZXNzIDwgMTAwKVwiIChjbGljayk9XCJkZWxldGVJdGVtLmVtaXQoaXRlbSlcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snaXQuZm9ybS5kZWxldGUtZmlsZSd8dHJhbnNsYXRlIDogeyBuYW1lOiBpdGVtLmZpbGUubmFtZSB9IH19PC9zcGFuPlxuICAgICAgPGl0LWljb24gbmFtZT1cImNsb3NlXCI+PC9pdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gZGlzYWJsZWQgKm5nSWY9XCIoIWl0ZW0ucmVtb3ZhYmxlICYmICFpdGVtLnByb2dyZXNzKSB8fCAoaXRlbS5wcm9ncmVzcyAhPT0gdW5kZWZpbmVkICYmIGl0ZW0ucHJvZ3Jlc3MgPj0gMTAwKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eydpdC5mb3JtLnVwbG9hZC1jb21wbGV0ZSd8dHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiY2hlY2tcIj48L2l0LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8aXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwiIWl0ZW0uZXJyb3IgJiYgaXRlbS5wcm9ncmVzcyAhPT0gdW5kZWZpbmVkICYmIGl0ZW0ucHJvZ3Jlc3MgPiAwICYmIGl0ZW0ucHJvZ3Jlc3MgPCAxMDBcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLnByb2dyZXNzXCI+PC9pdC1wcm9ncmVzcy1iYXI+XG4gIDwvbGk+XG48L3VsPlxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdXBsb2FkLWZpbGUtbGlzdC91cGxvYWQtZmlsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS91cGxvYWQtZmlsZS1saXN0L3VwbG9hZC1maWxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBZSxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRTlFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBTTFCLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFKOUQ7O1FBV0U7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQVcsR0FBRyxDQUFDO1FBRTlCOztXQUVHO1FBQ00sYUFBUSxHQUFpQixJQUFJLENBQUM7UUFZdkM7O1dBRUc7UUFDTyxnQkFBVyxHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBRTdFOztXQUVHO1FBQ08sZUFBVSxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUVoRzs7V0FFRztRQUNILGtCQUFhLEdBQXdCLElBQUksR0FBRyxFQUFrQixDQUFDO0tBa0RoRTtJQWhEQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFBO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNqRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFZO1FBQ3RCLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixFQUFFLEtBQUssQ0FBQztRQUN4RCxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLElBQVU7UUFDcEIsT0FBTyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7b0hBM0ZVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHNUQ1hwQyxnbUVBd0NBOzJGRDdCYSx1QkFBdUI7a0JBSm5DLFNBQVM7K0JBQ0UsbUNBQW1DOzhCQVFwQyxRQUFRO3NCQUFoQixLQUFLO2dCQVFHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50XCI7XG5pbXBvcnQge0Jvb2xlYW5JbnB1dCwgaXNUcnVlQm9vbGVhbklucHV0fSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvYm9vbGVhbi1pbnB1dFwiO1xuaW1wb3J0IHtVcGxvYWRGaWxlTGlzdEl0ZW19IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2VzL2Zvcm1cIjtcbmltcG9ydCB7RmlsZVV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZmlsZS11dGlsc1wiO1xuaW1wb3J0IHt0YWtlfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpdC11cGxvYWQtZmlsZS1saXN0W2lkXVtmaWxlTGlzdF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWZpbGUtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkRmlsZUxpc3RDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgZmlsZXMgdG8gc2hvdyBpbiBsaXN0XG4gICAqL1xuICBASW5wdXQoKSBmaWxlTGlzdCE6IEFycmF5PFVwbG9hZEZpbGVMaXN0SXRlbT47XG5cbiAgLyoqXG4gICAqIFRoZSBhY2NlcHRlZCBmaWxlIHR5cGUgdG8gdXBsb2FkIDxicj5cbiAgICogUG9zc2libGUgdmFsdWVzOiA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzL0NvbW1vbl90eXBlc1wiPk1JTUUgVHlwZXM8L2E+IHNlcGFyYXRlZCBieSBjb21tYVxuICAgKiBAZXhhbXBsZSBhcHBsaWNhdGlvbi9wZGYsaW1hZ2UvcG5nXG4gICAqIEBkZWZhdWx0ICpcbiAgICovXG4gIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nID0gXCIqXCI7XG5cbiAgLyoqXG4gICAqIElmIHVwbG9hZCBtdWx0aXBsZSBmaWxlc1xuICAgKi9cbiAgQElucHV0KCkgbXVsdGlwbGU6IEJvb2xlYW5JbnB1dCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIElmIGlzIGZpbGUgbGlzdCBpbWFnZVxuICAgKi9cbiAgQElucHV0KCkgaW1hZ2VzPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBIaWRlIHRoZSBsb2FkIGJ1dHRvblxuICAgKi9cbiAgQElucHV0KCkgaGlkZUxvYWRCdXR0b24/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdXBsb2FkIG5ldyBmaWxlc1xuICAgKi9cbiAgQE91dHB1dCgpIHVwbG9hZEZpbGVzOiBFdmVudEVtaXR0ZXI8RmlsZUxpc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTGlzdD4oKTtcblxuICAvKipcbiAgICogRmlyZWQgb24gZGVsZXRlIGl0ZW0gYnV0dG9uIGNsaWNrXG4gICAqL1xuICBAT3V0cHV0KCkgZGVsZXRlSXRlbTogRXZlbnRFbWl0dGVyPFVwbG9hZEZpbGVMaXN0SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFVwbG9hZEZpbGVMaXN0SXRlbT4oKTtcblxuICAvKipcbiAgICogQ2FjaGUgdG8gcHJldmlldyBpbWFnZVxuICAgKi9cbiAgcHJldmlld0ltYWdlczogTWFwPG51bWJlciwgc3RyaW5nPiA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJbWFnZUxpc3QgJiYgdGhpcy5hY2NlcHQgPT09ICcqJykge1xuICAgICAgdGhpcy5hY2NlcHQgPSAnaW1hZ2UvKidcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2ZpbGVMaXN0J10gJiYgdGhpcy5pc0ltYWdlTGlzdCkge1xuICAgICAgdGhpcy5maWxlTGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBGaWxlVXRpbHMuZmlsZVRvQmFzZTY0KGl0ZW0uZmlsZSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoYmFzZTY0ID0+IHtcbiAgICAgICAgICB0aGlzLnByZXZpZXdJbWFnZXMuc2V0KGl0ZW0uaWQsIGJhc2U2NCk7XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGdldCBpc011bHRpcGxlSW5wdXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVHJ1ZUJvb2xlYW5JbnB1dCh0aGlzLm11bHRpcGxlKTtcbiAgfVxuXG4gIGdldCBpc0ltYWdlTGlzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNUcnVlQm9vbGVhbklucHV0KHRoaXMuaW1hZ2VzKTtcbiAgfVxuXG4gIGdldCBpc0hpZGVMb2FkQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1RydWVCb29sZWFuSW5wdXQodGhpcy5oaWRlTG9hZEJ1dHRvbik7XG4gIH1cblxuICAvKipcbiAgICogT24gbG9hZCBmaWxlIGZyb20gaW5wdXRcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBvbkxvYWRGaWxlcyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlcyA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmZpbGVzO1xuICAgIGlmICghZmlsZXMgfHwgIWZpbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwbG9hZEZpbGVzLmVtaXQoZmlsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmlsZSBzaXplIHN0cmluZ1xuICAgKiBAcGFyYW0gZmlsZVxuICAgKi9cbiAgZ2V0RmlsZVNpemUoZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZpbGVVdGlscy5nZXRGaWxlU2l6ZVN0cmluZyhmaWxlKTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSGlkZUxvYWRCdXR0b25cIj5cbiAgPGlucHV0IHR5cGU9XCJmaWxlXCIgW2lkXT1cImlkXCIgY2xhc3M9XCJ1cGxvYWRcIiBbYWNjZXB0XT1cImFjY2VwdFwiIFttdWx0aXBsZV09XCJpc011bHRpcGxlSW5wdXRcIlxuICAgICAgICAgKGNoYW5nZSk9XCJvbkxvYWRGaWxlcygkZXZlbnQpXCIgLz5cbiAgPGxhYmVsIFtmb3JdPVwiaWRcIj5cbiAgICA8aXQtaWNvbiBuYW1lPVwidXBsb2FkXCIgc2l6ZT1cInNtXCI+PC9pdC1pY29uPlxuICAgIDxzcGFuPnt7J2l0LmZvcm0udXBsb2FkJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctY29udGFpbmVyPlxuXG48dWwgY2xhc3M9XCJ1cGxvYWQtZmlsZS1saXN0XCIgW2NsYXNzLnVwbG9hZC1maWxlLWxpc3QtaW1hZ2VdPVwiaXNJbWFnZUxpc3RcIiAqbmdJZj1cImZpbGVMaXN0Lmxlbmd0aFwiPlxuICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsZUxpc3RcIiBjbGFzcz1cInVwbG9hZC1maWxlXCJcbiAgICAgIFtjbGFzcy5lcnJvcl09XCJpdGVtLmVycm9yXCJcbiAgICAgIFtjbGFzcy51cGxvYWRpbmddPVwiIWl0ZW0uZXJyb3IgJiYgaXRlbS5wcm9ncmVzcyAhPT0gdW5kZWZpbmVkICYmIGl0ZW0ucHJvZ3Jlc3MgPiAwICYmIGl0ZW0ucHJvZ3Jlc3MgPCAxMDBcIlxuICAgICAgW2NsYXNzLnN1Y2Nlc3NdPVwiIWl0ZW0uZXJyb3IgJiYgKCFpdGVtLnByb2dyZXNzIHx8IGl0ZW0ucHJvZ3Jlc3MgPj0gMTAwKVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pbWFnZVwiICpuZ0lmPVwiaXNJbWFnZUxpc3Q7IGVsc2UgaWNvblwiPlxuICAgICAgPGltZyBbYXR0ci5zcmNdPVwicHJldmlld0ltYWdlcy5nZXQoaXRlbS5pZClcIiBbYWx0XT1cIml0ZW0uZmlsZS5uYW1lXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI2ljb24+XG4gICAgICA8aXQtaWNvbiBuYW1lPVwiZmlsZVwiIHNpemU9XCJzbVwiIFtjb2xvcl09XCIhaXRlbS5lcnJvciA/IChpdGVtLnByb2dyZXNzID8gJ3NlY29uZGFyeScgOiAncHJpbWFyeScpIDogJ2RhbmdlcidcIj48L2l0LWljb24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxwIFtpdFRvb2x0aXBdPVwiaXRlbS50b29sdGlwXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0udXBsb2FkZWQtZmlsZSd8dHJhbnNsYXRlIDogeyBuYW1lOiBpdGVtLmZpbGUubmFtZSB9IH19PC9zcGFuPlxuICAgICAge3tpdGVtLmZpbGUubmFtZX19IDxzcGFuIGNsYXNzPVwidXBsb2FkLWZpbGUtd2VpZ2h0XCI+e3tnZXRGaWxlU2l6ZShpdGVtLmZpbGUpfX08L3NwYW4+XG4gICAgPC9wPlxuXG4gICAgPGJ1dHRvbiAqbmdJZj1cIml0ZW0ucmVtb3ZhYmxlICYmICghaXRlbS5wcm9ncmVzcyB8fCBpdGVtLnByb2dyZXNzIDwgMTAwKVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZGVsZXRlSXRlbS5lbWl0KGl0ZW0pXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0uZGVsZXRlLWZpbGUnfHRyYW5zbGF0ZSA6IHsgbmFtZTogaXRlbS5maWxlLm5hbWUgfSB9fTwvc3Bhbj5cbiAgICAgIDxpdC1pY29uIG5hbWU9XCJjbG9zZVwiPjwvaXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiKCFpdGVtLnJlbW92YWJsZSAmJiAhaXRlbS5wcm9ncmVzcykgfHwgKGl0ZW0ucHJvZ3Jlc3MgIT09IHVuZGVmaW5lZCAmJiBpdGVtLnByb2dyZXNzID49IDEwMClcIiB0eXBlPVwiYnV0dG9uXCIgZGlzYWJsZWQ+XG4gICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7J2l0LmZvcm0udXBsb2FkLWNvbXBsZXRlJ3x0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDxpdC1pY29uIG5hbWU9XCJjaGVja1wiPjwvaXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxpdC1wcm9ncmVzcy1iYXIgKm5nSWY9XCIhaXRlbS5lcnJvciAmJiBpdGVtLnByb2dyZXNzICE9PSB1bmRlZmluZWQgJiYgaXRlbS5wcm9ncmVzcyA+IDAgJiYgaXRlbS5wcm9ncmVzcyA8IDEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ucHJvZ3Jlc3NcIj48L2l0LXByb2dyZXNzLWJhcj5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { map } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "../../core/dropdown/dropdown/dropdown.component";
7
+ import * as i4 from "../../core/dropdown/dropdown-item/dropdown-item.component";
8
+ export class LanguageSwitcherComponent {
9
+ constructor(translateService) {
10
+ this.translateService = translateService;
11
+ this.currentLang$ = translateService.onLangChange.pipe(map(event => this.availableLanguages?.find(l => l.code === event.lang)));
12
+ }
13
+ ngOnInit() {
14
+ if (!this.availableLanguages) {
15
+ this.availableLanguages = this.translateService.getLangs().map(lang => ({
16
+ code: lang,
17
+ label: lang,
18
+ ...(lang === 'it' && { label: 'ITA' }),
19
+ ...(lang === 'en' && { label: 'ENG' })
20
+ }));
21
+ }
22
+ }
23
+ /**
24
+ * Change the current language
25
+ * @param lang the language code
26
+ */
27
+ changeLanguage(lang) {
28
+ this.translateService.use(lang);
29
+ }
30
+ }
31
+ LanguageSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LanguageSwitcherComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
32
+ LanguageSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: LanguageSwitcherComponent, selector: "it-language-switcher", inputs: { availableLanguages: "availableLanguages" }, ngImport: i0, template: "<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropdownComponent, selector: "it-dropdown[id]", inputs: ["color", "direction", "fullWidth", "dark"] }, { kind: "component", type: i4.DropdownItemComponent, selector: "it-dropdown-item", inputs: ["divider", "active", "large", "iconName", "iconPosition"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: LanguageSwitcherComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'it-language-switcher', template: "<it-dropdown id=\"language-switcher\">\n <ng-container button>\n <span class=\"visually-hidden\">{{'it.utils.selected' | translate: { lang: (currentLang$ | async)?.label } }}</span>\n <span>{{(currentLang$ | async)?.label || ('it.utils.select-language' | translate)}}</span>\n </ng-container>\n\n <ng-container list>\n <it-dropdown-item *ngFor=\"let lang of availableLanguages\" (click)=\"changeLanguage(lang.code)\"\n [active]=\"lang.code === (currentLang$ | async)?.code\">\n {{lang.label}}\n <span class=\"visually-hidden\" *ngIf=\"lang.code === (currentLang$ | async)?.code\">\n {{'it.utils.selected' | translate}}\n </span>\n </it-dropdown-item>\n </ng-container>\n</it-dropdown>\n" }]
36
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { availableLanguages: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc3dpdGNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy91dGlscy9sYW5ndWFnZS1zd2l0Y2hlci9sYW5ndWFnZS1zd2l0Y2hlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL3V0aWxzL2xhbmd1YWdlLXN3aXRjaGVyL2xhbmd1YWdlLXN3aXRjaGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVF2QyxNQUFNLE9BQU8seUJBQXlCO0lBVXBDLFlBQ21CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRW5ELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLEVBQUUsSUFBSTtnQkFDVixLQUFLLEVBQUUsSUFBSTtnQkFDWCxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsQ0FBQztnQkFDcEMsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUM7YUFDckMsQ0FBQyxDQUFDLENBQUM7U0FDTDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O3NIQW5DVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixrSENUdEMsMnVCQWdCQTsyRkRQYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usc0JBQXNCO3VHQVN2QixrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQXZhaWxhYmxlTGFuZ3VhZ2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXQtbGFuZ3VhZ2Utc3dpdGNoZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbGFuZ3VhZ2Utc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlU3dpdGNoZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBUaGUgYXZhaWxhYmxlIGxhbmd1YWdlc1xuICAgKiBAZGVmYXVsdCBUaGUgbGFuZ3VhZ2VzIGF2YWlsYWJsZSB0aHJvdWdoIFRyYW5zbGF0ZVNlcnZpY2UgKG5neC10cmFuc2xhdGUpXG4gICAqL1xuICBASW5wdXQoKSBhdmFpbGFibGVMYW5ndWFnZXM/OiBBcnJheTxBdmFpbGFibGVMYW5ndWFnZT47XG5cbiAgY3VycmVudExhbmckOiBPYnNlcnZhYmxlPEF2YWlsYWJsZUxhbmd1YWdlIHwgdW5kZWZpbmVkPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jdXJyZW50TGFuZyQgPSB0cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5waXBlKFxuICAgICAgbWFwKGV2ZW50ID0+IHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzPy5maW5kKGwgPT4gbC5jb2RlID09PSBldmVudC5sYW5nKSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcykge1xuICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0TGFuZ3MoKS5tYXAobGFuZyA9PiAoe1xuICAgICAgICBjb2RlOiBsYW5nLFxuICAgICAgICBsYWJlbDogbGFuZyxcbiAgICAgICAgLi4uKGxhbmcgPT09ICdpdCcgJiYge2xhYmVsOiAnSVRBJ30pLFxuICAgICAgICAuLi4obGFuZyA9PT0gJ2VuJyAmJiB7bGFiZWw6ICdFTkcnfSlcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSBjdXJyZW50IGxhbmd1YWdlXG4gICAqIEBwYXJhbSBsYW5nIHRoZSBsYW5ndWFnZSBjb2RlXG4gICAqL1xuICBjaGFuZ2VMYW5ndWFnZShsYW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmcpO1xuICB9XG5cbn1cbiIsIjxpdC1kcm9wZG93biBpZD1cImxhbmd1YWdlLXN3aXRjaGVyXCI+XG4gIDxuZy1jb250YWluZXIgYnV0dG9uPlxuICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3snaXQudXRpbHMuc2VsZWN0ZWQnIHwgdHJhbnNsYXRlOiB7IGxhbmc6IChjdXJyZW50TGFuZyQgfCBhc3luYyk/LmxhYmVsIH0gfX08L3NwYW4+XG4gICAgPHNwYW4+e3soY3VycmVudExhbmckIHwgYXN5bmMpPy5sYWJlbCB8fCAoJ2l0LnV0aWxzLnNlbGVjdC1sYW5ndWFnZScgfCB0cmFuc2xhdGUpfX08L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgbGlzdD5cbiAgICA8aXQtZHJvcGRvd24taXRlbSAqbmdGb3I9XCJsZXQgbGFuZyBvZiBhdmFpbGFibGVMYW5ndWFnZXNcIiAoY2xpY2spPVwiY2hhbmdlTGFuZ3VhZ2UobGFuZy5jb2RlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJsYW5nLmNvZGUgPT09IChjdXJyZW50TGFuZyQgfCBhc3luYyk/LmNvZGVcIj5cbiAgICAgIHt7bGFuZy5sYWJlbH19XG4gICAgICA8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiICpuZ0lmPVwibGFuZy5jb2RlID09PSAoY3VycmVudExhbmckIHwgYXN5bmMpPy5jb2RlXCI+XG4gICAgICAgIHt7J2l0LnV0aWxzLnNlbGVjdGVkJyB8IHRyYW5zbGF0ZX19XG4gICAgICA8L3NwYW4+XG4gICAgPC9pdC1kcm9wZG93bi1pdGVtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvaXQtZHJvcGRvd24+XG4iXX0=