@wemake4u/form-player-se 1.0.24 → 1.0.26
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.
- package/esm2022/lib/dialog/dialog.component.mjs +15 -7
- package/esm2022/lib/directives/collapse.directive.mjs +20 -12
- package/esm2022/lib/directives/date.directive.mjs +2 -2
- package/esm2022/lib/directives/dialog.directive.mjs +2 -1
- package/esm2022/lib/directives/dropdown.directive.mjs +23 -5
- package/esm2022/lib/directives/formIndex.directive.mjs +25 -0
- package/esm2022/lib/directives/grid.directive.mjs +64 -19
- package/esm2022/lib/directives/readonly.directive.mjs +101 -0
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +51 -25
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +123 -107
- package/esm2022/lib/locale/locale-de.mjs +3 -2
- package/esm2022/lib/locale/locale-en.mjs +3 -2
- package/esm2022/lib/locale/locale-es.mjs +3 -2
- package/esm2022/lib/locale/locale-fr.mjs +3 -2
- package/esm2022/lib/locale/locale-it.mjs +3 -2
- package/esm2022/lib/locale/locale-pt.mjs +3 -2
- package/esm2022/lib/services/chart.service.mjs +62 -56
- package/esm2022/lib/services/dialog.service.mjs +17 -2
- package/esm2022/lib/services/feel.service.mjs +186 -19
- package/esm2022/lib/services/form.service.mjs +100 -12
- package/esm2022/lib/services/formatter.service.mjs +68 -54
- package/esm2022/lib/services/function.service.mjs +2 -4
- package/esm2022/lib/services/grid.service.mjs +163 -51
- package/esm2022/lib/services/metadata.service.mjs +1 -8
- package/esm2022/lib/services/programmability.service.mjs +318 -64
- package/esm2022/lib/services/weak.service.mjs +3 -5
- package/esm2022/lib/utils/groupByRow.mjs +3 -1
- package/fesm2022/wemake4u-form-player-se.mjs +1337 -582
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/components/deleteRowRenderer/deleteRowRenderer.component.d.ts +1 -0
- package/lib/components/objectURLRenderer/objectURLRenderer.component.d.ts +1 -0
- package/lib/components/setFilter/setFilter.component.d.ts +1 -0
- package/lib/dialog/dialog.component.d.ts +11 -0
- package/lib/directives/collapse.directive.d.ts +7 -4
- package/lib/directives/dropdown.directive.d.ts +4 -0
- package/lib/directives/formIndex.directive.d.ts +10 -0
- package/lib/directives/grid.directive.d.ts +12 -5
- package/lib/directives/{disable.directive.d.ts → readonly.directive.d.ts} +7 -4
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +27 -4
- package/lib/dynamic-form/dynamic-form.component.d.ts +19 -10
- package/lib/locale/locale-de.d.ts +1 -0
- package/lib/locale/locale-en.d.ts +1 -0
- package/lib/locale/locale-es.d.ts +1 -0
- package/lib/locale/locale-fr.d.ts +1 -0
- package/lib/locale/locale-it.d.ts +1 -0
- package/lib/locale/locale-pt.d.ts +1 -0
- package/lib/locale/locale.d.ts +7 -0
- package/lib/services/chart.service.d.ts +5 -2
- package/lib/services/dialog.service.d.ts +1 -1
- package/lib/services/feel.service.d.ts +8 -0
- package/lib/services/form.service.d.ts +12 -1
- package/lib/services/formatter.service.d.ts +8 -6
- package/lib/services/grid.service.d.ts +13 -3
- package/lib/services/metadata.service.d.ts +0 -3
- package/lib/services/programmability.service.d.ts +28 -4
- package/lib/utils/groupByRow.d.ts +2 -0
- package/package.json +2 -2
- package/esm2022/lib/directives/disable.directive.mjs +0 -90
- package/esm2022/lib/directives/disable.path.directive.mjs +0 -40
- package/lib/directives/disable.path.directive.d.ts +0 -16
|
@@ -34,6 +34,7 @@ export const Texts = {
|
|
|
34
34
|
NotBlank: "Nicht leer",
|
|
35
35
|
Information: "Informationen",
|
|
36
36
|
OpenMenu: "Menü öffnen",
|
|
37
|
-
CloseMenu: "Menü schließen"
|
|
37
|
+
CloseMenu: "Menü schließen",
|
|
38
|
+
LoadingFailed: "Beim Laden der Daten ist ein Fehler aufgetreten"
|
|
38
39
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLHNCQUFzQjtJQUNwQyxNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkMsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsZUFBZSxFQUFFLHNCQUFzQjtJQUN2QyxXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLElBQUksRUFBRSxVQUFVO0lBQ2hCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLEtBQUssRUFBRSxXQUFXO0lBQ2xCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsTUFBTSxFQUFFLFdBQVc7SUFDbkIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsTUFBTSxFQUFFLFlBQVk7SUFDcEIsR0FBRyxFQUFFLElBQUk7SUFDVCxFQUFFLEVBQUUsTUFBTTtJQUNWLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsS0FBSztJQUNYLE9BQU8sRUFBRSxVQUFVO0lBQ25CLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFNBQVMsRUFBRSxpQkFBaUI7SUFDNUIsU0FBUyxFQUFFLG1CQUFtQjtJQUM5QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLE1BQU07SUFDYixRQUFRLEVBQUUsWUFBWTtJQUN0QixXQUFXLEVBQUUsZUFBZTtJQUM1QixRQUFRLEVBQUUsYUFBYTtJQUN2QixTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLGFBQWEsRUFBRSxpREFBaUQ7Q0FDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUZXh0cyA9IHtcclxuICBUeXBlVG9TZWFyY2g6IFwiWnVtIFN1Y2hlbiB0aXBwZW4uLi5cIixcclxuICBVcGxvYWQ6IFwiSG9jaGxhZGVuXCIsXHJcbiAgU2Nyb2xsTGVmdDogXCJOYWNoIGxpbmtzIHNjcm9sbGVuXCIsXHJcbiAgU2Nyb2xsUmlnaHQ6IFwiTmFjaCByZWNodHMgc2Nyb2xsZW5cIixcclxuICBBZGRJdGVtOiBcIkhpbnp1ZsO8Z2VuXCIsXHJcbiAgUmVtb3ZlSXRlbTogXCJFbnRmZXJuZW5cIixcclxuICBQcmV2aW91c1NlY3Rpb246IFwiVm9yaGVyaWdlciBBYnNjaG5pdHRcIixcclxuICBOZXh0U2VjdGlvbjogXCJOw6RjaHN0ZXIgQWJzY2huaXR0XCIsXHJcbiAgU2hvdzogXCJBbnplaWdlblwiLFxyXG4gIFJlbW92ZTogXCJFbnRmZXJuZW5cIixcclxuICBDbG9zZTogXCJTY2hsaWXDn2VuXCIsXHJcbiAgQ29uZmlybTogXCJCZXN0w6R0aWdlblwiLFxyXG4gIE9LOiBcIk9LXCIsXHJcbiAgQ2FuY2VsOiBcIkFiYnJlY2hlblwiLFxyXG4gIEFib3J0OiBcIkFiYnJlY2hlblwiLFxyXG4gIFJldHJ5OiBcIldpZWRlcmhvbGVuXCIsXHJcbiAgSWdub3JlOiBcIklnbm9yaWVyZW5cIixcclxuICBZZXM6IFwiSmFcIixcclxuICBObzogXCJOZWluXCIsXHJcbiAgVHJ5OiBcIlZlcnN1Y2hlblwiLFxyXG4gIENvbnRpbnVlOiBcIkZvcnRzZXR6ZW5cIixcclxuICBOYW1lOiBcIk5hbWVcIixcclxuICBTaXplOiBcIkdyw7bDn2VcIixcclxuICBUeXBlOiBcIlR5cFwiLFxyXG4gIEFjdGlvbnM6IFwiQWt0aW9uZW5cIixcclxuICBSZWFkTW9yZTogXCJNZWhyIGxlc2VuXCIsXHJcbiAgUmVhZExlc3M6IFwiV2VuaWdlciBsZXNlblwiLFxyXG4gIFNlbGVjdEFsbDogXCJBbGxlcyBhdXN3w6RobGVuXCIsXHJcbiAgQ2hvb3NlT25lOiBcIlfDpGhsZSBlaW5lIE9wdGlvblwiLFxyXG4gIFRydWU6IFwiV2FoclwiLFxyXG4gIEZhbHNlOiBcIkZhbHNjaFwiLFxyXG4gIEJsYW5rOiBcIkxlZXJcIixcclxuICBOb3RCbGFuazogXCJOaWNodCBsZWVyXCIsXHJcbiAgSW5mb3JtYXRpb246IFwiSW5mb3JtYXRpb25lblwiLFxyXG4gIE9wZW5NZW51OiBcIk1lbsO8IMO2ZmZuZW5cIixcclxuICBDbG9zZU1lbnU6IFwiTWVuw7wgc2NobGllw59lblwiLFxyXG4gIExvYWRpbmdGYWlsZWQ6IFwiQmVpbSBMYWRlbiBkZXIgRGF0ZW4gaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW5cIlxyXG59O1xyXG4iXX0=
|
|
@@ -34,6 +34,7 @@ export const Texts = {
|
|
|
34
34
|
NotBlank: "Not blank",
|
|
35
35
|
Information: "Information",
|
|
36
36
|
OpenMenu: "Open menu",
|
|
37
|
-
CloseMenu: "Close menu"
|
|
37
|
+
CloseMenu: "Close menu",
|
|
38
|
+
LoadingFailed: "An error occurred while loading data"
|
|
38
39
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1lbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixVQUFVLEVBQUUsYUFBYTtJQUN6QixXQUFXLEVBQUUsY0FBYztJQUMzQixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsV0FBVyxFQUFFLGNBQWM7SUFDM0IsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsUUFBUTtJQUNoQixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsRUFBRSxFQUFFLElBQUk7SUFDUixHQUFHLEVBQUUsS0FBSztJQUNWLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLGFBQWEsRUFBRSxzQ0FBc0M7Q0FDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUZXh0cyA9IHtcclxuICBUeXBlVG9TZWFyY2g6IFwiVHlwZSB0byBzZWFyY2guLi5cIixcclxuICBVcGxvYWQ6IFwiVXBsb2FkXCIsXHJcbiAgU2Nyb2xsTGVmdDogXCJTY3JvbGwgbGVmdFwiLFxyXG4gIFNjcm9sbFJpZ2h0OiBcIlNjcm9sbCByaWdodFwiLFxyXG4gIEFkZEl0ZW06IFwiQWRkXCIsXHJcbiAgUmVtb3ZlSXRlbTogXCJSZW1vdmVcIixcclxuICBQcmV2aW91c1NlY3Rpb246IFwiUHJldmlvdXMgc2VjdGlvblwiLFxyXG4gIE5leHRTZWN0aW9uOiBcIk5leHQgc2VjdGlvblwiLFxyXG4gIFNob3c6IFwiU2hvd1wiLFxyXG4gIFJlbW92ZTogXCJSZW1vdmVcIixcclxuICBDbG9zZTogXCJDbG9zZVwiLFxyXG4gIENvbmZpcm06IFwiQ29uZmlybVwiLFxyXG4gIE9LOiBcIk9LXCIsXHJcbiAgQ2FuY2VsOiBcIkNhbmNlbFwiLFxyXG4gIEFib3J0OiBcIkFib3J0XCIsXHJcbiAgUmV0cnk6IFwiUmV0cnlcIixcclxuICBJZ25vcmU6IFwiSWdub3JlXCIsXHJcbiAgWWVzOiBcIlllc1wiLFxyXG4gIE5vOiBcIk5vXCIsXHJcbiAgVHJ5OiBcIlRyeVwiLFxyXG4gIENvbnRpbnVlOiBcIkNvbnRpbnVlXCIsXHJcbiAgTmFtZTogXCJOYW1lXCIsXHJcbiAgU2l6ZTogXCJTaXplXCIsXHJcbiAgVHlwZTogXCJUeXBlXCIsXHJcbiAgQWN0aW9uczogXCJBY3Rpb25zXCIsXHJcbiAgUmVhZE1vcmU6IFwiUmVhZCBtb3JlXCIsXHJcbiAgUmVhZExlc3M6IFwiUmVhZCBsZXNzXCIsXHJcbiAgU2VsZWN0QWxsOiBcIlNlbGVjdCBhbGxcIixcclxuICBDaG9vc2VPbmU6IFwiQ2hvb3NlIG9uZVwiLFxyXG4gIFRydWU6IFwiVHJ1ZVwiLFxyXG4gIEZhbHNlOiBcIkZhbHNlXCIsXHJcbiAgQmxhbms6IFwiQmxhbmtcIixcclxuICBOb3RCbGFuazogXCJOb3QgYmxhbmtcIixcclxuICBJbmZvcm1hdGlvbjogXCJJbmZvcm1hdGlvblwiLFxyXG4gIE9wZW5NZW51OiBcIk9wZW4gbWVudVwiLFxyXG4gIENsb3NlTWVudTogXCJDbG9zZSBtZW51XCIsXHJcbiAgTG9hZGluZ0ZhaWxlZDogXCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIGRhdGFcIlxyXG59O1xyXG4iXX0=
|
|
@@ -34,6 +34,7 @@ export const Texts = {
|
|
|
34
34
|
NotBlank: "No vacío",
|
|
35
35
|
Information: "Información",
|
|
36
36
|
OpenMenu: "Abrir menú",
|
|
37
|
-
CloseMenu: "Cerrar menú"
|
|
37
|
+
CloseMenu: "Cerrar menú",
|
|
38
|
+
LoadingFailed: "Error al cargar los datos"
|
|
38
39
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLHdCQUF3QjtJQUN0QyxNQUFNLEVBQUUsT0FBTztJQUNmLFVBQVUsRUFBRSwwQkFBMEI7SUFDdEMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsVUFBVTtJQUN0QixlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLFdBQVcsRUFBRSxtQkFBbUI7SUFDaEMsSUFBSSxFQUFFLFNBQVM7SUFDZixNQUFNLEVBQUUsVUFBVTtJQUNsQixLQUFLLEVBQUUsUUFBUTtJQUNmLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsTUFBTSxFQUFFLFVBQVU7SUFDbEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLFlBQVk7SUFDbkIsTUFBTSxFQUFFLFNBQVM7SUFDakIsR0FBRyxFQUFFLElBQUk7SUFDVCxFQUFFLEVBQUUsSUFBSTtJQUNSLEdBQUcsRUFBRSxVQUFVO0lBQ2YsUUFBUSxFQUFFLFdBQVc7SUFDckIsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFVBQVU7SUFDbkIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsUUFBUSxFQUFFLFlBQVk7SUFDdEIsU0FBUyxFQUFFLGtCQUFrQjtJQUM3QixTQUFTLEVBQUUsV0FBVztJQUN0QixJQUFJLEVBQUUsV0FBVztJQUNqQixLQUFLLEVBQUUsT0FBTztJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsUUFBUSxFQUFFLFVBQVU7SUFDcEIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsUUFBUSxFQUFFLFlBQVk7SUFDdEIsU0FBUyxFQUFFLGFBQWE7SUFDeEIsYUFBYSxFQUFFLDJCQUEyQjtDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRleHRzID0ge1xyXG4gIFR5cGVUb1NlYXJjaDogXCJFc2NyaWJlIHBhcmEgYnVzY2FyLi4uXCIsXHJcbiAgVXBsb2FkOiBcIlN1YmlyXCIsXHJcbiAgU2Nyb2xsTGVmdDogXCJEZXNwbGF6YXIgYSBsYSBpenF1aWVyZGFcIixcclxuICBTY3JvbGxSaWdodDogXCJEZXNwbGF6YXIgYSBsYSBkZXJlY2hhXCIsXHJcbiAgQWRkSXRlbTogXCJBZ3JlZ2FyXCIsXHJcbiAgUmVtb3ZlSXRlbTogXCJFbGltaW5hclwiLFxyXG4gIFByZXZpb3VzU2VjdGlvbjogXCJTZWNjacOzbiBhbnRlcmlvclwiLFxyXG4gIE5leHRTZWN0aW9uOiBcIlNlY2Npw7NuIHNpZ3VpZW50ZVwiLFxyXG4gIFNob3c6IFwiTW9zdHJhclwiLFxyXG4gIFJlbW92ZTogXCJFbGltaW5hclwiLFxyXG4gIENsb3NlOiBcIkNlcnJhclwiLFxyXG4gIENvbmZpcm06IFwiQ29uZmlybWFyXCIsXHJcbiAgT0s6IFwiT0tcIixcclxuICBDYW5jZWw6IFwiQ2FuY2VsYXJcIixcclxuICBBYm9ydDogXCJBYm9ydGFyXCIsXHJcbiAgUmV0cnk6IFwiUmVpbnRlbnRhclwiLFxyXG4gIElnbm9yZTogXCJJZ25vcmFyXCIsXHJcbiAgWWVzOiBcIlPDrVwiLFxyXG4gIE5vOiBcIk5vXCIsXHJcbiAgVHJ5OiBcIkludGVudGFyXCIsXHJcbiAgQ29udGludWU6IFwiQ29udGludWFyXCIsXHJcbiAgTmFtZTogXCJOb21icmVcIixcclxuICBTaXplOiBcIlRhbWHDsW9cIixcclxuICBUeXBlOiBcIlRpcG9cIixcclxuICBBY3Rpb25zOiBcIkFjY2lvbmVzXCIsXHJcbiAgUmVhZE1vcmU6IFwiTGVlciBtw6FzXCIsXHJcbiAgUmVhZExlc3M6IFwiTGVlciBtZW5vc1wiLFxyXG4gIFNlbGVjdEFsbDogXCJTZWxlY2Npb25hciB0b2RvXCIsXHJcbiAgQ2hvb3NlT25lOiBcIkVsaWdlIHVub1wiLFxyXG4gIFRydWU6IFwiVmVyZGFkZXJvXCIsXHJcbiAgRmFsc2U6IFwiRmFsc29cIixcclxuICBCbGFuazogXCJWYWPDrW9cIixcclxuICBOb3RCbGFuazogXCJObyB2YWPDrW9cIixcclxuICBJbmZvcm1hdGlvbjogXCJJbmZvcm1hY2nDs25cIixcclxuICBPcGVuTWVudTogXCJBYnJpciBtZW7DulwiLFxyXG4gIENsb3NlTWVudTogXCJDZXJyYXIgbWVuw7pcIixcclxuICBMb2FkaW5nRmFpbGVkOiBcIkVycm9yIGFsIGNhcmdhciBsb3MgZGF0b3NcIlxyXG59O1xyXG4iXX0=
|
|
@@ -34,6 +34,7 @@ export const Texts = {
|
|
|
34
34
|
NotBlank: "Non vide",
|
|
35
35
|
Information: "Informations",
|
|
36
36
|
OpenMenu: "Ouvrir le menu",
|
|
37
|
-
CloseMenu: "Fermer le menu"
|
|
37
|
+
CloseMenu: "Fermer le menu",
|
|
38
|
+
LoadingFailed: "Erreur lors du chargement des données"
|
|
38
39
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWZyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1mci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLDBCQUEwQjtJQUN4QyxNQUFNLEVBQUUsWUFBWTtJQUNwQixVQUFVLEVBQUUsOEJBQThCO0lBQzFDLFdBQVcsRUFBRSw4QkFBOEI7SUFDM0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsZUFBZSxFQUFFLG9CQUFvQjtJQUNyQyxXQUFXLEVBQUUsa0JBQWtCO0lBQy9CLElBQUksRUFBRSxVQUFVO0lBQ2hCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLEtBQUssRUFBRSxRQUFRO0lBQ2YsT0FBTyxFQUFFLFdBQVc7SUFDcEIsRUFBRSxFQUFFLElBQUk7SUFDUixNQUFNLEVBQUUsU0FBUztJQUNqQixLQUFLLEVBQUUsWUFBWTtJQUNuQixLQUFLLEVBQUUsV0FBVztJQUNsQixNQUFNLEVBQUUsU0FBUztJQUNqQixHQUFHLEVBQUUsS0FBSztJQUNWLEVBQUUsRUFBRSxLQUFLO0lBQ1QsR0FBRyxFQUFFLFNBQVM7SUFDZCxRQUFRLEVBQUUsV0FBVztJQUNyQixJQUFJLEVBQUUsS0FBSztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsZUFBZTtJQUN6QixRQUFRLEVBQUUsWUFBWTtJQUN0QixTQUFTLEVBQUUsbUJBQW1CO0lBQzlCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE1BQU07SUFDYixLQUFLLEVBQUUsTUFBTTtJQUNiLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsU0FBUyxFQUFFLGdCQUFnQjtJQUMzQixhQUFhLEVBQUUsdUNBQXVDO0NBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVGV4dHMgPSB7XHJcbiAgVHlwZVRvU2VhcmNoOiBcIlRhcGV6IHBvdXIgcmVjaGVyY2hlci4uLlwiLFxyXG4gIFVwbG9hZDogXCJUw6lsw6l2ZXJzZXJcIixcclxuICBTY3JvbGxMZWZ0OiBcIkZhaXJlIGTDqWZpbGVyIHZlcnMgbGEgZ2F1Y2hlXCIsXHJcbiAgU2Nyb2xsUmlnaHQ6IFwiRmFpcmUgZMOpZmlsZXIgdmVycyBsYSBkcm9pdGVcIixcclxuICBBZGRJdGVtOiBcIkFqb3V0ZXJcIixcclxuICBSZW1vdmVJdGVtOiBcIlN1cHByaW1lclwiLFxyXG4gIFByZXZpb3VzU2VjdGlvbjogXCJTZWN0aW9uIHByw6ljw6lkZW50ZVwiLFxyXG4gIE5leHRTZWN0aW9uOiBcIlNlY3Rpb24gc3VpdmFudGVcIixcclxuICBTaG93OiBcIkFmZmljaGVyXCIsXHJcbiAgUmVtb3ZlOiBcIlN1cHByaW1lclwiLFxyXG4gIENsb3NlOiBcIkZlcm1lclwiLFxyXG4gIENvbmZpcm06IFwiQ29uZmlybWVyXCIsXHJcbiAgT0s6IFwiT0tcIixcclxuICBDYW5jZWw6IFwiQW5udWxlclwiLFxyXG4gIEFib3J0OiBcIkFiYW5kb25uZXJcIixcclxuICBSZXRyeTogXCJSw6llc3NheWVyXCIsXHJcbiAgSWdub3JlOiBcIklnbm9yZXJcIixcclxuICBZZXM6IFwiT3VpXCIsXHJcbiAgTm86IFwiTm9uXCIsXHJcbiAgVHJ5OiBcIkVzc2F5ZXJcIixcclxuICBDb250aW51ZTogXCJDb250aW51ZXJcIixcclxuICBOYW1lOiBcIk5vbVwiLFxyXG4gIFNpemU6IFwiVGFpbGxlXCIsXHJcbiAgVHlwZTogXCJUeXBlXCIsXHJcbiAgQWN0aW9uczogXCJBY3Rpb25zXCIsXHJcbiAgUmVhZE1vcmU6IFwiTGlyZSBsYSBzdWl0ZVwiLFxyXG4gIFJlYWRMZXNzOiBcIkxpcmUgbW9pbnNcIixcclxuICBTZWxlY3RBbGw6IFwiVG91dCBzw6lsZWN0aW9ubmVyXCIsXHJcbiAgQ2hvb3NlT25lOiBcIkNob2lzaXIgdW5cIixcclxuICBUcnVlOiBcIlZyYWlcIixcclxuICBGYWxzZTogXCJGYXV4XCIsXHJcbiAgQmxhbms6IFwiVmlkZVwiLFxyXG4gIE5vdEJsYW5rOiBcIk5vbiB2aWRlXCIsXHJcbiAgSW5mb3JtYXRpb246IFwiSW5mb3JtYXRpb25zXCIsXHJcbiAgT3Blbk1lbnU6IFwiT3V2cmlyIGxlIG1lbnVcIixcclxuICBDbG9zZU1lbnU6IFwiRmVybWVyIGxlIG1lbnVcIixcclxuICBMb2FkaW5nRmFpbGVkOiBcIkVycmV1ciBsb3JzIGR1IGNoYXJnZW1lbnQgZGVzIGRvbm7DqWVzXCJcclxufTtcclxuIl19
|
|
@@ -34,6 +34,7 @@ export const Texts = {
|
|
|
34
34
|
NotBlank: "Non vuoto",
|
|
35
35
|
Information: "Informazioni",
|
|
36
36
|
OpenMenu: "Apri Menu",
|
|
37
|
-
CloseMenu: "Chiudi Menu"
|
|
37
|
+
CloseMenu: "Chiudi Menu",
|
|
38
|
+
LoadingFailed: "Si è verificato un errore durante il caricamento dei dati"
|
|
38
39
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLHVCQUF1QjtJQUNyQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixVQUFVLEVBQUUsbUJBQW1CO0lBQy9CLFdBQVcsRUFBRSxpQkFBaUI7SUFDOUIsT0FBTyxFQUFFLFVBQVU7SUFDbkIsVUFBVSxFQUFFLFNBQVM7SUFDckIsZUFBZSxFQUFFLG9CQUFvQjtJQUNyQyxXQUFXLEVBQUUsb0JBQW9CO0lBQ2pDLElBQUksRUFBRSxZQUFZO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxRQUFRO0lBQ2YsT0FBTyxFQUFFLFVBQVU7SUFDbkIsRUFBRSxFQUFFLElBQUk7SUFDUixNQUFNLEVBQUUsU0FBUztJQUNqQixLQUFLLEVBQUUsWUFBWTtJQUNuQixLQUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixHQUFHLEVBQUUsSUFBSTtJQUNULEVBQUUsRUFBRSxJQUFJO0lBQ1IsR0FBRyxFQUFFLE9BQU87SUFDWixRQUFRLEVBQUUsVUFBVTtJQUNwQixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLGNBQWM7SUFDeEIsUUFBUSxFQUFFLGVBQWU7SUFDekIsU0FBUyxFQUFFLGlCQUFpQjtJQUM1QixTQUFTLEVBQUUsWUFBWTtJQUN2QixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxRQUFRLEVBQUUsV0FBVztJQUNyQixXQUFXLEVBQUUsY0FBYztJQUMzQixRQUFRLEVBQUUsV0FBVztJQUNyQixTQUFTLEVBQUUsYUFBYTtJQUN4QixhQUFhLEVBQUUsMkRBQTJEO0NBQzNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVGV4dHMgPSB7XHJcbiAgVHlwZVRvU2VhcmNoOiBcIkRpZ2l0YSBwZXIgY2VyY2FyZS4uLlwiLFxyXG4gIFVwbG9hZDogXCJVcGxvYWRcIixcclxuICBTY3JvbGxMZWZ0OiBcIlNjb3JyaSBhIHNpbmlzdHJhXCIsXHJcbiAgU2Nyb2xsUmlnaHQ6IFwiU2NvcnJpIGEgZGVzdHJhXCIsXHJcbiAgQWRkSXRlbTogXCJBZ2dpdW5naVwiLFxyXG4gIFJlbW92ZUl0ZW06IFwiUmltdW92aVwiLFxyXG4gIFByZXZpb3VzU2VjdGlvbjogXCJTZXppb25lIHByZWNlZGVudGVcIixcclxuICBOZXh0U2VjdGlvbjogXCJTZXppb25lIHN1Y2Nlc3NpdmFcIixcclxuICBTaG93OiBcIlZpc3VhbGl6emFcIixcclxuICBSZW1vdmU6IFwiUmltdW92aVwiLFxyXG4gIENsb3NlOiBcIkNoaXVkaVwiLFxyXG4gIENvbmZpcm06IFwiQ29uZmVybWFcIixcclxuICBPSzogXCJPS1wiLFxyXG4gIENhbmNlbDogXCJBbm51bGxhXCIsXHJcbiAgQWJvcnQ6IFwiSW50ZXJyb21waVwiLFxyXG4gIFJldHJ5OiBcIlJpcHJvdmFcIixcclxuICBJZ25vcmU6IFwiSWdub3JhXCIsXHJcbiAgWWVzOiBcIlPDrFwiLFxyXG4gIE5vOiBcIk5vXCIsXHJcbiAgVHJ5OiBcIlByb3ZhXCIsXHJcbiAgQ29udGludWU6IFwiQ29udGludWFcIixcclxuICBOYW1lOiBcIk5vbWVcIixcclxuICBTaXplOiBcIkRpbWVuc2lvbmVcIixcclxuICBUeXBlOiBcIlRpcG9cIixcclxuICBBY3Rpb25zOiBcIkF6aW9uaVwiLFxyXG4gIFJlYWRNb3JlOiBcIkxlZ2dpIGRpIHBpw7lcIixcclxuICBSZWFkTGVzczogXCJMZWdnaSBkaSBtZW5vXCIsXHJcbiAgU2VsZWN0QWxsOiBcIlNlbGV6aW9uYSB0dXR0b1wiLFxyXG4gIENob29zZU9uZTogXCJTY2VnbGkgdW5vXCIsXHJcbiAgVHJ1ZTogXCJWZXJvXCIsXHJcbiAgRmFsc2U6IFwiRmFsc29cIixcclxuICBCbGFuazogXCJWdW90b1wiLFxyXG4gIE5vdEJsYW5rOiBcIk5vbiB2dW90b1wiLFxyXG4gIEluZm9ybWF0aW9uOiBcIkluZm9ybWF6aW9uaVwiLFxyXG4gIE9wZW5NZW51OiBcIkFwcmkgTWVudVwiLFxyXG4gIENsb3NlTWVudTogXCJDaGl1ZGkgTWVudVwiLFxyXG4gIExvYWRpbmdGYWlsZWQ6IFwiU2kgw6ggdmVyaWZpY2F0byB1biBlcnJvcmUgZHVyYW50ZSBpbCBjYXJpY2FtZW50byBkZWkgZGF0aVwiXHJcbn07XHJcbiJdfQ==
|
|
@@ -34,6 +34,7 @@ export const Texts = {
|
|
|
34
34
|
NotBlank: "Não vazio",
|
|
35
35
|
Information: "Informações",
|
|
36
36
|
OpenMenu: "Abrir menu",
|
|
37
|
-
CloseMenu: "Fechar menu"
|
|
37
|
+
CloseMenu: "Fechar menu",
|
|
38
|
+
LoadingFailed: "Erro ao carregar os dados"
|
|
38
39
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvbG9jYWxlL2xvY2FsZS1wdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsWUFBWSxFQUFFLDBCQUEwQjtJQUN4QyxNQUFNLEVBQUUsUUFBUTtJQUNoQixVQUFVLEVBQUUsdUJBQXVCO0lBQ25DLFdBQVcsRUFBRSxzQkFBc0I7SUFDbkMsT0FBTyxFQUFFLFdBQVc7SUFDcEIsVUFBVSxFQUFFLFNBQVM7SUFDckIsZUFBZSxFQUFFLGdCQUFnQjtJQUNqQyxXQUFXLEVBQUUsZUFBZTtJQUM1QixJQUFJLEVBQUUsU0FBUztJQUNmLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxRQUFRO0lBQ2YsT0FBTyxFQUFFLFdBQVc7SUFDcEIsRUFBRSxFQUFFLElBQUk7SUFDUixNQUFNLEVBQUUsVUFBVTtJQUNsQixLQUFLLEVBQUUsU0FBUztJQUNoQixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsRUFBRSxFQUFFLEtBQUs7SUFDVCxHQUFHLEVBQUUsUUFBUTtJQUNiLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLFNBQVM7SUFDZixJQUFJLEVBQUUsTUFBTTtJQUNaLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLFNBQVMsRUFBRSxpQkFBaUI7SUFDNUIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLFNBQVMsRUFBRSxhQUFhO0lBQ3hCLGFBQWEsRUFBRSwyQkFBMkI7Q0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUZXh0cyA9IHtcclxuICBUeXBlVG9TZWFyY2g6IFwiRGlnaXRlIHBhcmEgcGVzcXVpc2FyLi4uXCIsXHJcbiAgVXBsb2FkOiBcIkVudmlhclwiLFxyXG4gIFNjcm9sbExlZnQ6IFwiUm9sYXIgcGFyYSBhIGVzcXVlcmRhXCIsXHJcbiAgU2Nyb2xsUmlnaHQ6IFwiUm9sYXIgcGFyYSBhIGRpcmVpdGFcIixcclxuICBBZGRJdGVtOiBcIkFkaWNpb25hclwiLFxyXG4gIFJlbW92ZUl0ZW06IFwiUmVtb3ZlclwiLFxyXG4gIFByZXZpb3VzU2VjdGlvbjogXCJTZcOnw6NvIGFudGVyaW9yXCIsXHJcbiAgTmV4dFNlY3Rpb246IFwiUHLDs3hpbWEgc2XDp8Ojb1wiLFxyXG4gIFNob3c6IFwiTW9zdHJhclwiLFxyXG4gIFJlbW92ZTogXCJSZW1vdmVyXCIsXHJcbiAgQ2xvc2U6IFwiRmVjaGFyXCIsXHJcbiAgQ29uZmlybTogXCJDb25maXJtYXJcIixcclxuICBPSzogXCJPS1wiLFxyXG4gIENhbmNlbDogXCJDYW5jZWxhclwiLFxyXG4gIEFib3J0OiBcIkFib3J0YXJcIixcclxuICBSZXRyeTogXCJUZW50YXIgbm92YW1lbnRlXCIsXHJcbiAgSWdub3JlOiBcIklnbm9yYXJcIixcclxuICBZZXM6IFwiU2ltXCIsXHJcbiAgTm86IFwiTsOjb1wiLFxyXG4gIFRyeTogXCJUZW50YXJcIixcclxuICBDb250aW51ZTogXCJDb250aW51YXJcIixcclxuICBOYW1lOiBcIk5vbWVcIixcclxuICBTaXplOiBcIlRhbWFuaG9cIixcclxuICBUeXBlOiBcIlRpcG9cIixcclxuICBBY3Rpb25zOiBcIkHDp8O1ZXNcIixcclxuICBSZWFkTW9yZTogXCJMZWlhIG1haXNcIixcclxuICBSZWFkTGVzczogXCJMZWlhIG1lbm9zXCIsXHJcbiAgU2VsZWN0QWxsOiBcIlNlbGVjaW9uYXIgdHVkb1wiLFxyXG4gIENob29zZU9uZTogXCJFc2NvbGhhIHVtXCIsXHJcbiAgVHJ1ZTogXCJWZXJkYWRlaXJvXCIsXHJcbiAgRmFsc2U6IFwiRmFsc29cIixcclxuICBCbGFuazogXCJWYXppb1wiLFxyXG4gIE5vdEJsYW5rOiBcIk7Do28gdmF6aW9cIixcclxuICBJbmZvcm1hdGlvbjogXCJJbmZvcm1hw6fDtWVzXCIsXHJcbiAgT3Blbk1lbnU6IFwiQWJyaXIgbWVudVwiLFxyXG4gIENsb3NlTWVudTogXCJGZWNoYXIgbWVudVwiLFxyXG4gIExvYWRpbmdGYWlsZWQ6IFwiRXJybyBhbyBjYXJyZWdhciBvcyBkYWRvc1wiXHJcbn07XHJcbiJdfQ==
|
|
@@ -4,16 +4,19 @@ import { observableAll } from '../utils/observableAll';
|
|
|
4
4
|
import { localize } from '../locale/localize';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../services/programmability.service";
|
|
7
|
+
import * as i2 from "@wemake4u/interact";
|
|
7
8
|
export class ChartService {
|
|
8
9
|
programmability;
|
|
9
|
-
|
|
10
|
+
languageService;
|
|
11
|
+
constructor(programmability, languageService) {
|
|
10
12
|
this.programmability = programmability;
|
|
13
|
+
this.languageService = languageService;
|
|
11
14
|
}
|
|
12
|
-
getOptions(component, formGroup
|
|
15
|
+
getOptions(component, formGroup) {
|
|
13
16
|
const expression = this.getDataExpression(component);
|
|
14
17
|
const data = this.programmability.evaluate(formGroup, expression);
|
|
15
18
|
return observableAll(data).pipe(map((chartData) => {
|
|
16
|
-
const series = this.getSeries(component, formGroup
|
|
19
|
+
const series = this.getSeries(component, formGroup);
|
|
17
20
|
const options = {
|
|
18
21
|
theme: this.getTheme(),
|
|
19
22
|
series: series,
|
|
@@ -48,8 +51,11 @@ export class ChartService {
|
|
|
48
51
|
});
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
|
-
|
|
52
|
-
return
|
|
54
|
+
get language() {
|
|
55
|
+
return this.languageService.getLanguage();
|
|
56
|
+
}
|
|
57
|
+
locale(component, key) {
|
|
58
|
+
return localize(this.language, component, key);
|
|
53
59
|
}
|
|
54
60
|
getTheme() {
|
|
55
61
|
return {
|
|
@@ -70,24 +76,24 @@ export class ChartService {
|
|
|
70
76
|
}
|
|
71
77
|
};
|
|
72
78
|
}
|
|
73
|
-
getSeries(component, formGroup
|
|
79
|
+
getSeries(component, formGroup) {
|
|
74
80
|
if (Array.isArray(component.series)) {
|
|
75
81
|
const series = component.series.map((serie) => {
|
|
76
82
|
switch (serie.type) {
|
|
77
83
|
case "bar":
|
|
78
|
-
return this.getBarSeriesOptions(serie, formGroup
|
|
84
|
+
return this.getBarSeriesOptions(serie, formGroup);
|
|
79
85
|
case "line":
|
|
80
|
-
return this.getLineSeriesOptions(serie, formGroup
|
|
86
|
+
return this.getLineSeriesOptions(serie, formGroup);
|
|
81
87
|
case "area":
|
|
82
|
-
return this.getAreaSeriesOptions(serie, formGroup
|
|
88
|
+
return this.getAreaSeriesOptions(serie, formGroup);
|
|
83
89
|
case "scatter":
|
|
84
|
-
return this.getScatterSeriesOptions(serie, formGroup
|
|
90
|
+
return this.getScatterSeriesOptions(serie, formGroup);
|
|
85
91
|
case "bubble":
|
|
86
|
-
return this.getBubbleSeriesOptions(serie, formGroup
|
|
92
|
+
return this.getBubbleSeriesOptions(serie, formGroup);
|
|
87
93
|
case "pie":
|
|
88
|
-
return this.getPieSeriesOptions(serie, formGroup
|
|
94
|
+
return this.getPieSeriesOptions(serie, formGroup);
|
|
89
95
|
case "donut":
|
|
90
|
-
return this.getDonutSeriesOptions(serie, formGroup
|
|
96
|
+
return this.getDonutSeriesOptions(serie, formGroup);
|
|
91
97
|
default:
|
|
92
98
|
return {};
|
|
93
99
|
}
|
|
@@ -98,14 +104,14 @@ export class ChartService {
|
|
|
98
104
|
return [];
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
|
-
getSeriesOptionsNames(serie
|
|
107
|
+
getSeriesOptionsNames(serie) {
|
|
102
108
|
const options = {};
|
|
103
109
|
if (this.isString(serie.xName))
|
|
104
|
-
options.xName = this.locale(serie, "xName"
|
|
110
|
+
options.xName = this.locale(serie, "xName");
|
|
105
111
|
if (this.isString(serie.yName))
|
|
106
|
-
options.yName = this.locale(serie, "yName"
|
|
112
|
+
options.yName = this.locale(serie, "yName");
|
|
107
113
|
if (this.isString(serie.legendItemName))
|
|
108
|
-
options.legendItemName = this.locale(serie, "legendItemName"
|
|
114
|
+
options.legendItemName = this.locale(serie, "legendItemName");
|
|
109
115
|
return options;
|
|
110
116
|
}
|
|
111
117
|
getBaseSeriesOptions(serie, formGroup) {
|
|
@@ -114,13 +120,13 @@ export class ChartService {
|
|
|
114
120
|
options.visible = serie.visible;
|
|
115
121
|
return options;
|
|
116
122
|
}
|
|
117
|
-
getBarSeriesOptions(serie, formGroup
|
|
123
|
+
getBarSeriesOptions(serie, formGroup) {
|
|
118
124
|
const options = {
|
|
119
125
|
type: "bar",
|
|
120
126
|
xKey: serie.xKey,
|
|
121
127
|
yKey: serie.yKey,
|
|
122
128
|
...this.getBaseSeriesOptions(serie, formGroup),
|
|
123
|
-
...this.getSeriesOptionsNames(serie
|
|
129
|
+
...this.getSeriesOptionsNames(serie)
|
|
124
130
|
};
|
|
125
131
|
if (this.isDirection(serie.direction))
|
|
126
132
|
options.direction = serie.direction;
|
|
@@ -132,13 +138,13 @@ export class ChartService {
|
|
|
132
138
|
options.stackGroup = serie.stackGroup;
|
|
133
139
|
return options;
|
|
134
140
|
}
|
|
135
|
-
getLineSeriesOptions(serie, formGroup
|
|
141
|
+
getLineSeriesOptions(serie, formGroup) {
|
|
136
142
|
const options = {
|
|
137
143
|
type: "line",
|
|
138
144
|
xKey: serie.xKey,
|
|
139
145
|
yKey: serie.yKey,
|
|
140
146
|
...this.getBaseSeriesOptions(serie, formGroup),
|
|
141
|
-
...this.getSeriesOptionsNames(serie
|
|
147
|
+
...this.getSeriesOptionsNames(serie)
|
|
142
148
|
};
|
|
143
149
|
if (this.isInterpolation(serie.interpolation)) {
|
|
144
150
|
options.interpolation = {
|
|
@@ -147,13 +153,13 @@ export class ChartService {
|
|
|
147
153
|
}
|
|
148
154
|
return options;
|
|
149
155
|
}
|
|
150
|
-
getAreaSeriesOptions(serie, formGroup
|
|
156
|
+
getAreaSeriesOptions(serie, formGroup) {
|
|
151
157
|
const options = {
|
|
152
158
|
type: "area",
|
|
153
159
|
xKey: serie.xKey,
|
|
154
160
|
yKey: serie.yKey,
|
|
155
161
|
...this.getBaseSeriesOptions(serie, formGroup),
|
|
156
|
-
...this.getAreaSeriesOptionsNames(serie
|
|
162
|
+
...this.getAreaSeriesOptionsNames(serie)
|
|
157
163
|
};
|
|
158
164
|
if (this.isBoolean(serie.stacked))
|
|
159
165
|
options.stacked = serie.stacked;
|
|
@@ -161,35 +167,35 @@ export class ChartService {
|
|
|
161
167
|
options.normalizedTo = serie.normalizedTo;
|
|
162
168
|
return options;
|
|
163
169
|
}
|
|
164
|
-
getAreaSeriesOptionsNames(serie
|
|
170
|
+
getAreaSeriesOptionsNames(serie) {
|
|
165
171
|
const options = {};
|
|
166
172
|
if (serie.xName)
|
|
167
|
-
options.xName = this.locale(serie, "xName"
|
|
173
|
+
options.xName = this.locale(serie, "xName");
|
|
168
174
|
if (serie.yName)
|
|
169
|
-
options.yName = this.locale(serie, "yName"
|
|
175
|
+
options.yName = this.locale(serie, "yName");
|
|
170
176
|
return options;
|
|
171
177
|
}
|
|
172
|
-
getScatterSeriesOptions(serie, formGroup
|
|
178
|
+
getScatterSeriesOptions(serie, formGroup) {
|
|
173
179
|
return {
|
|
174
180
|
type: "scatter",
|
|
175
181
|
xKey: serie.xKey,
|
|
176
182
|
yKey: serie.yKey,
|
|
177
183
|
labelKey: serie.labelKey,
|
|
178
184
|
...this.getBaseSeriesOptions(serie, formGroup),
|
|
179
|
-
...this.getScatterSeriesOptionsNames(serie
|
|
185
|
+
...this.getScatterSeriesOptionsNames(serie)
|
|
180
186
|
};
|
|
181
187
|
}
|
|
182
|
-
getScatterSeriesOptionsNames(serie
|
|
188
|
+
getScatterSeriesOptionsNames(serie) {
|
|
183
189
|
const options = {};
|
|
184
190
|
if (serie.xName)
|
|
185
|
-
options.xName = this.locale(serie, "xName"
|
|
191
|
+
options.xName = this.locale(serie, "xName");
|
|
186
192
|
if (serie.yName)
|
|
187
|
-
options.yName = this.locale(serie, "yName"
|
|
193
|
+
options.yName = this.locale(serie, "yName");
|
|
188
194
|
if (serie.labelName)
|
|
189
|
-
options.labelName = this.locale(serie, "labelName"
|
|
195
|
+
options.labelName = this.locale(serie, "labelName");
|
|
190
196
|
return options;
|
|
191
197
|
}
|
|
192
|
-
getBubbleSeriesOptions(serie, formGroup
|
|
198
|
+
getBubbleSeriesOptions(serie, formGroup) {
|
|
193
199
|
return {
|
|
194
200
|
type: "bubble",
|
|
195
201
|
xKey: serie.xKey,
|
|
@@ -197,27 +203,27 @@ export class ChartService {
|
|
|
197
203
|
sizeKey: serie.sizeKey,
|
|
198
204
|
labelKey: serie.labelKey,
|
|
199
205
|
...this.getBaseSeriesOptions(serie, formGroup),
|
|
200
|
-
...this.getBubbleSeriesOptionsNames(serie
|
|
206
|
+
...this.getBubbleSeriesOptionsNames(serie)
|
|
201
207
|
};
|
|
202
208
|
}
|
|
203
|
-
getBubbleSeriesOptionsNames(serie
|
|
209
|
+
getBubbleSeriesOptionsNames(serie) {
|
|
204
210
|
const options = {};
|
|
205
211
|
if (serie.xName)
|
|
206
|
-
options.xName = this.locale(serie, "xName"
|
|
212
|
+
options.xName = this.locale(serie, "xName");
|
|
207
213
|
if (serie.yName)
|
|
208
|
-
options.yName = this.locale(serie, "yName"
|
|
214
|
+
options.yName = this.locale(serie, "yName");
|
|
209
215
|
if (serie.sizeName)
|
|
210
|
-
options.sizeName = this.locale(serie, "sizeName"
|
|
216
|
+
options.sizeName = this.locale(serie, "sizeName");
|
|
211
217
|
if (serie.labelName)
|
|
212
|
-
options.labelName = this.locale(serie, "labelName"
|
|
218
|
+
options.labelName = this.locale(serie, "labelName");
|
|
213
219
|
return options;
|
|
214
220
|
}
|
|
215
|
-
getPieSeriesOptions(serie, formGroup
|
|
221
|
+
getPieSeriesOptions(serie, formGroup) {
|
|
216
222
|
const options = {
|
|
217
223
|
type: "pie",
|
|
218
224
|
angleKey: serie.angleKey,
|
|
219
225
|
...this.getBaseSeriesOptions(serie, formGroup),
|
|
220
|
-
...this.getPieSeriesOptionsNames(serie
|
|
226
|
+
...this.getPieSeriesOptionsNames(serie)
|
|
221
227
|
};
|
|
222
228
|
if (this.isString(serie.radiusKey))
|
|
223
229
|
options.radiusKey = serie.radiusKey;
|
|
@@ -229,24 +235,24 @@ export class ChartService {
|
|
|
229
235
|
options.legendItemKey = serie.legendItemKey;
|
|
230
236
|
return options;
|
|
231
237
|
}
|
|
232
|
-
getPieSeriesOptionsNames(serie
|
|
238
|
+
getPieSeriesOptionsNames(serie) {
|
|
233
239
|
const options = {};
|
|
234
240
|
if (serie.angleName)
|
|
235
|
-
options.angleName = this.locale(serie, "angleName"
|
|
241
|
+
options.angleName = this.locale(serie, "angleName");
|
|
236
242
|
if (serie.radiusName)
|
|
237
|
-
options.radiusName = this.locale(serie, "radiusName"
|
|
243
|
+
options.radiusName = this.locale(serie, "radiusName");
|
|
238
244
|
if (serie.calloutLabelName)
|
|
239
|
-
options.calloutLabelName = this.locale(serie, "calloutLabelName"
|
|
245
|
+
options.calloutLabelName = this.locale(serie, "calloutLabelName");
|
|
240
246
|
if (serie.sectorLabelName)
|
|
241
|
-
options.sectorLabelName = this.locale(serie, "sectorLabelName"
|
|
247
|
+
options.sectorLabelName = this.locale(serie, "sectorLabelName");
|
|
242
248
|
return options;
|
|
243
249
|
}
|
|
244
|
-
getDonutSeriesOptions(serie, formGroup
|
|
250
|
+
getDonutSeriesOptions(serie, formGroup) {
|
|
245
251
|
const options = {
|
|
246
252
|
type: "donut",
|
|
247
253
|
angleKey: serie.angleKey,
|
|
248
254
|
...this.getBaseSeriesOptions(serie, formGroup),
|
|
249
|
-
...this.getDonutSeriesOptionsNames(serie
|
|
255
|
+
...this.getDonutSeriesOptionsNames(serie)
|
|
250
256
|
};
|
|
251
257
|
if (this.isString(serie.radiusKey))
|
|
252
258
|
options.radiusKey = serie.radiusKey;
|
|
@@ -258,16 +264,16 @@ export class ChartService {
|
|
|
258
264
|
options.legendItemKey = serie.legendItemKey;
|
|
259
265
|
return options;
|
|
260
266
|
}
|
|
261
|
-
getDonutSeriesOptionsNames(serie
|
|
267
|
+
getDonutSeriesOptionsNames(serie) {
|
|
262
268
|
const options = {};
|
|
263
269
|
if (serie.angleName)
|
|
264
|
-
options.angleName = this.locale(serie, "angleName"
|
|
270
|
+
options.angleName = this.locale(serie, "angleName");
|
|
265
271
|
if (serie.radiusName)
|
|
266
|
-
options.radiusName = this.locale(serie, "radiusName"
|
|
272
|
+
options.radiusName = this.locale(serie, "radiusName");
|
|
267
273
|
if (serie.calloutLabelName)
|
|
268
|
-
options.calloutLabelName = this.locale(serie, "calloutLabelName"
|
|
274
|
+
options.calloutLabelName = this.locale(serie, "calloutLabelName");
|
|
269
275
|
if (serie.sectorLabelName)
|
|
270
|
-
options.sectorLabelName = this.locale(serie, "sectorLabelName"
|
|
276
|
+
options.sectorLabelName = this.locale(serie, "sectorLabelName");
|
|
271
277
|
return options;
|
|
272
278
|
}
|
|
273
279
|
getProps(component) {
|
|
@@ -295,10 +301,10 @@ export class ChartService {
|
|
|
295
301
|
isInterpolation(value) {
|
|
296
302
|
return value === 'linear' || value === 'smooth' || value === 'step';
|
|
297
303
|
}
|
|
298
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartService, deps: [{ token: i1.ProgrammabilityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
304
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartService, deps: [{ token: i1.ProgrammabilityService }, { token: i2.LanguageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
299
305
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartService });
|
|
300
306
|
}
|
|
301
307
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChartService, decorators: [{
|
|
302
308
|
type: Injectable
|
|
303
|
-
}], ctorParameters: () => [{ type: i1.ProgrammabilityService }] });
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRzlDLE1BQU0sT0FBTyxZQUFZO0lBR2I7SUFEVixZQUNVLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtJQUNqRCxDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQWMsRUFBRSxTQUFvQixFQUFFLFFBQWdCO1FBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEUsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUM3QixHQUFHLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUQsTUFBTSxPQUFPLEdBQW1CO2dCQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQzthQUM1QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxP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LENBQUM7WUFDakMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxLQUFLLENBQUMsUUFBUSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQVU7UUFDMUIsT0FBTyxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxZQUFZLE9BQU8sQ0FBQztJQUNoRSxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQVU7UUFDekIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQztJQUM5RCxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQVU7UUFDekIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVTtRQUM1QixPQUFPLEtBQUssS0FBSyxZQUFZLElBQUksS0FBSyxLQUFLLFVBQVUsQ0FBQztJQUN4RCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQVU7UUFDaEMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLE1BQU0sQ0FBQztJQUN0RSxDQUFDO3dHQXpYVSxZQUFZOzRHQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUHJvZ3JhbW1hYmlsaXR5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2dyYW1tYWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IG9ic2VydmFibGVBbGwgfSBmcm9tICcuLi91dGlscy9vYnNlcnZhYmxlQWxsJztcclxuaW1wb3J0IHtcclxuICBBZ0NoYXJ0T3B0aW9ucywgQWdDaGFydFRoZW1lLCBBZ0Jhc2VTZXJpZXNPcHRpb25zLFxyXG4gIEFnQmFyU2VyaWVzT3B0aW9ucywgQWdCYXJTZXJpZXNPcHRpb25zTmFtZXMsIFxyXG4gIEFnTGluZVNlcmllc09wdGlvbnMsIEFnTGluZVNlcmllc09wdGlvbnNOYW1lcyxcclxuICBBZ0FyZWFTZXJpZXNPcHRpb25zLCBBZ0FyZWFTZXJpZXNPcHRpb25zTmFtZXMsXHJcbiAgQWdTY2F0dGVyU2VyaWVzT3B0aW9ucywgQWdTY2F0dGVyU2VyaWVzT3B0aW9uc05hbWVzLFxyXG4gIEFnQnViYmxlU2VyaWVzT3B0aW9ucywgQWdCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMsXHJcbiAgQWdQaWVTZXJpZXNPcHRpb25zLCBBZ1BpZVNlcmllc09wdGlvbnNOYW1lcyxcclxuICBBZ0RvbnV0U2VyaWVzT3B0aW9ucywgQWdEb251dFNlcmllc09wdGlvbnNOYW1lc1xyXG59IGZyb20gJ2FnLWNoYXJ0cy1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBsb2NhbGl6ZSB9IGZyb20gJy4uL2xvY2FsZS9sb2NhbGl6ZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDaGFydFNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcHJvZ3JhbW1hYmlsaXR5OiBQcm9ncmFtbWFiaWxpdHlTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25zKGNvbXBvbmVudDogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCwgbGFuZ3VhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8QWdDaGFydE9wdGlvbnM+IHtcclxuICAgIGNvbnN0IGV4cHJlc3Npb24gPSB0aGlzLmdldERhdGFFeHByZXNzaW9uKGNvbXBvbmVudCk7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5wcm9ncmFtbWFiaWxpdHkuZXZhbHVhdGUoZm9ybUdyb3VwLCBleHByZXNzaW9uKTtcclxuICAgIHJldHVybiBvYnNlcnZhYmxlQWxsKGRhdGEpLnBpcGUoXHJcbiAgICAgIG1hcCgoY2hhcnREYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBzZXJpZXMgPSB0aGlzLmdldFNlcmllcyhjb21wb25lbnQsIGZvcm1Hcm91cCwgbGFuZ3VhZ2UpO1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IEFnQ2hhcnRPcHRpb25zID0ge1xyXG4gICAgICAgICAgdGhlbWU6IHRoaXMuZ2V0VGhlbWUoKSxcclxuICAgICAgICAgIHNlcmllczogc2VyaWVzLFxyXG4gICAgICAgICAgLi4udGhpcy5nZXRQcm9wcyhjb21wb25lbnQpXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmJpbmREYXRhKG9wdGlvbnMsIGNoYXJ0RGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgICAgIH0pXHJcbiAgICApOyAgIFxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YUV4cHJlc3Npb24oY29tcG9uZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGdldEV4cHJlc3Npb24gPSAoZXhwcmVzc2lvbjogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnByb2dyYW1tYWJpbGl0eS5pc0V4cHJlc3Npb24oZXhwcmVzc2lvbilcclxuICAgICAgICA/IHRoaXMucHJvZ3JhbW1hYmlsaXR5LmdldEV4cHJlc3Npb24oZXhwcmVzc2lvbilcclxuICAgICAgICA6IFwibnVsbFwiXHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhRXhwciA9IGdldEV4cHJlc3Npb24oY29tcG9uZW50LmRhdGEpO1xyXG4gICAgY29uc3Qgc2VyaWVzRXhwcnMgPSAoY29tcG9uZW50LnNlcmllcyA/PyBbXSlcclxuICAgICAgLm1hcCgoc2VyaWU6IGFueSkgPT4gZ2V0RXhwcmVzc2lvbihzZXJpZS5kYXRhKSlcclxuICAgICAgLm1hcCgoZXhwcjogc3RyaW5nKSA9PiBgKCR7ZXhwcn0pYClcclxuICAgICAgLmpvaW4oXCIsIFwiKTtcclxuXHJcbiAgICByZXR1cm4gYD17IGRhdGE6ICgke2RhdGFFeHByfSksIHNlcmllczogWyR7c2VyaWVzRXhwcnN9XSB9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmluZERhdGEob3B0aW9uczogQWdDaGFydE9wdGlvbnMsIGNoYXJ0RGF0YTogYW55KSB7XHJcbiAgICBpZiAoY2hhcnREYXRhLmRhdGEpIHtcclxuICAgICAgb3B0aW9ucy5kYXRhID0gY2hhcnREYXRhLmRhdGE7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnNlcmllcykpIHtcclxuICAgICAgb3B0aW9ucy5zZXJpZXMuZm9yRWFjaCgoc2VyaWU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChjaGFydERhdGEuc2VyaWVzW2luZGV4XSkge1xyXG4gICAgICAgICAgc2VyaWUuZGF0YSA9IGNoYXJ0RGF0YS5zZXJpZXNbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvY2FsZShjb21wb25lbnQ6IGFueSwga2V5OiBzdHJpbmcsIGxhbmd1YWdlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsaXplKGxhbmd1YWdlLCBjb21wb25lbnQsIGtleSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRoZW1lKCk6IEFnQ2hhcnRUaGVtZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBiYXNlVGhlbWU6IFwiYWctZGVmYXVsdFwiLFxyXG4gICAgICBwYXJhbXM6IHtcclxuICAgICAgICBmb250RmFtaWx5OiBcImluaGVyaXRcIixcclxuICAgICAgICB0ZXh0Q29sb3I6IFwiIzAwMTIxQVwiLFxyXG4gICAgICAgIGNocm9tZUZvbnRGYW1pbHk6IFwiaW5oZXJpdFwiLFxyXG4gICAgICAgIGNocm9tZVRleHRDb2xvcjogXCIjMDAxMjFBXCJcclxuICAgICAgfSxcclxuICAgICAgb3ZlcnJpZGVzOiB7XHJcbiAgICAgICAgY29tbW9uOiB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB7XHJcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgIGZpbGw6IFwidHJhbnNwYXJlbnRcIixcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlcmllcyhjb21wb25lbnQ6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGxhbmd1YWdlOiBzdHJpbmcpOiBhbnlbXSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb21wb25lbnQuc2VyaWVzKSkge1xyXG4gICAgICBjb25zdCBzZXJpZXMgPSBjb21wb25lbnQuc2VyaWVzLm1hcCgoc2VyaWU6IGFueSkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoc2VyaWUudHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBcImJhclwiOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCYXJTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXAsIGxhbmd1YWdlKTtcclxuICAgICAgICAgIGNhc2UgXCJsaW5lXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldExpbmVTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXAsIGxhbmd1YWdlKTtcclxuICAgICAgICAgIGNhc2UgXCJhcmVhXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFyZWFTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXAsIGxhbmd1YWdlKTtcclxuICAgICAgICAgIGNhc2UgXCJzY2F0dGVyXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNjYXR0ZXJTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXAsIGxhbmd1YWdlKTtcclxuICAgICAgICAgIGNhc2UgXCJidWJibGVcIjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnViYmxlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwLCBsYW5ndWFnZSk7XHJcbiAgICAgICAgICBjYXNlIFwicGllXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFBpZVNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCwgbGFuZ3VhZ2UpO1xyXG4gICAgICAgICAgY2FzZSBcImRvbnV0XCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERvbnV0U2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwLCBsYW5ndWFnZSk7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4ge307XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHNlcmllcztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlcmllc09wdGlvbnNOYW1lcyhzZXJpZTogYW55LCBsYW5ndWFnZTogc3RyaW5nKVxyXG4gICAgOiBBZ0JhclNlcmllc09wdGlvbnNOYW1lcyB8IEFnTGluZVNlcmllc09wdGlvbnNOYW1lcyAge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdCYXJTZXJpZXNPcHRpb25zTmFtZXMgfCBBZ0xpbmVTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZyhzZXJpZS54TmFtZSkpXHJcbiAgICAgIG9wdGlvbnMueE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ4TmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUueU5hbWUpKVxyXG4gICAgICBvcHRpb25zLnlOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwieU5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLmxlZ2VuZEl0ZW1OYW1lKSlcclxuICAgICAgb3B0aW9ucy5sZWdlbmRJdGVtTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImxlZ2VuZEl0ZW1OYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcbiAgXHJcbiAgcHJpdmF0ZSBnZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZTogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IEFnQmFzZVNlcmllc09wdGlvbnM8YW55PlxyXG4gIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnQmFzZVNlcmllc09wdGlvbnM8YW55PiA9IHsgfTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0Jvb2xlYW4oc2VyaWUudmlzaWJsZSkpXHJcbiAgICAgIG9wdGlvbnMudmlzaWJsZSA9IHNlcmllLnZpc2libGU7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEJhclNlcmllc09wdGlvbnMoc2VyaWU6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGxhbmd1YWdlOiBzdHJpbmcpOiBBZ0JhclNlcmllc09wdGlvbnMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdCYXJTZXJpZXNPcHRpb25zID0ge1xyXG4gICAgICB0eXBlOiBcImJhclwiLFxyXG4gICAgICB4S2V5OiBzZXJpZS54S2V5LFxyXG4gICAgICB5S2V5OiBzZXJpZS55S2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldFNlcmllc09wdGlvbnNOYW1lcyhzZXJpZSwgbGFuZ3VhZ2UpXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmlzRGlyZWN0aW9uKHNlcmllLmRpcmVjdGlvbikpXHJcbiAgICAgIG9wdGlvbnMuZGlyZWN0aW9uID0gc2VyaWUuZGlyZWN0aW9uO1xyXG5cclxuICAgIGlmICh0aGlzLmlzQm9vbGVhbihzZXJpZS5zdGFja2VkKSlcclxuICAgICAgb3B0aW9ucy5zdGFja2VkID0gc2VyaWUuc3RhY2tlZDtcclxuXHJcbiAgICBpZiAodGhpcy5pc051bWJlcihzZXJpZS5ub3JtYWxpemVkVG8pKVxyXG4gICAgICBvcHRpb25zLm5vcm1hbGl6ZWRUbyA9IHNlcmllLm5vcm1hbGl6ZWRUbztcclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZyhzZXJpZS5zdGFja0dyb3VwKSlcclxuICAgICAgb3B0aW9ucy5zdGFja0dyb3VwID0gc2VyaWUuc3RhY2tHcm91cDtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TGluZVNlcmllc09wdGlvbnMoc2VyaWU6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGxhbmd1YWdlOiBzdHJpbmcpOiBBZ0xpbmVTZXJpZXNPcHRpb25zIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnTGluZVNlcmllc09wdGlvbnMgPSB7XHJcbiAgICAgIHR5cGU6IFwibGluZVwiLFxyXG4gICAgICB4S2V5OiBzZXJpZS54S2V5LFxyXG4gICAgICB5S2V5OiBzZXJpZS55S2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldFNlcmllc09wdGlvbnNOYW1lcyhzZXJpZSwgbGFuZ3VhZ2UpXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmlzSW50ZXJwb2xhdGlvbihzZXJpZS5pbnRlcnBvbGF0aW9uKSkgeyBcclxuICAgICAgb3B0aW9ucy5pbnRlcnBvbGF0aW9uID0ge1xyXG4gICAgICAgIHR5cGU6IHNlcmllLmludGVycG9sYXRpb25cclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QXJlYVNlcmllc09wdGlvbnMoc2VyaWU6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGxhbmd1YWdlOiBzdHJpbmcpOiBBZ0FyZWFTZXJpZXNPcHRpb25zIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnQXJlYVNlcmllc09wdGlvbnMgPSB7XHJcbiAgICAgIHR5cGU6IFwiYXJlYVwiLFxyXG4gICAgICB4S2V5OiBzZXJpZS54S2V5LFxyXG4gICAgICB5S2V5OiBzZXJpZS55S2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldEFyZWFTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWUsIGxhbmd1YWdlKVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5pc0Jvb2xlYW4oc2VyaWUuc3RhY2tlZCkpXHJcbiAgICAgIG9wdGlvbnMuc3RhY2tlZCA9IHNlcmllLnN0YWNrZWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNOdW1iZXIoc2VyaWUubm9ybWFsaXplZFRvKSlcclxuICAgICAgb3B0aW9ucy5ub3JtYWxpemVkVG8gPSBzZXJpZS5ub3JtYWxpemVkVG87XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFyZWFTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSwgbGFuZ3VhZ2U6IHN0cmluZylcclxuICAgIDogQWdBcmVhU2VyaWVzT3B0aW9uc05hbWVzIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnQXJlYVNlcmllc09wdGlvbnNOYW1lcyA9IHt9O1xyXG5cclxuICAgIGlmIChzZXJpZS54TmFtZSlcclxuICAgICAgb3B0aW9ucy54TmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInhOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUueU5hbWUpXHJcbiAgICAgIG9wdGlvbnMueU5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ5TmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNjYXR0ZXJTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsYW5ndWFnZTogc3RyaW5nKTogQWdTY2F0dGVyU2VyaWVzT3B0aW9ucyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiBcInNjYXR0ZXJcIixcclxuICAgICAgeEtleTogc2VyaWUueEtleSxcclxuICAgICAgeUtleTogc2VyaWUueUtleSxcclxuICAgICAgbGFiZWxLZXk6IHNlcmllLmxhYmVsS2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldFNjYXR0ZXJTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWUsIGxhbmd1YWdlKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2NhdHRlclNlcmllc09wdGlvbnNOYW1lcyhzZXJpZTogYW55LCBsYW5ndWFnZTogc3RyaW5nKVxyXG4gICAgOiBBZ1NjYXR0ZXJTZXJpZXNPcHRpb25zTmFtZXMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdTY2F0dGVyU2VyaWVzT3B0aW9uc05hbWVzID0ge307XHJcblxyXG4gICAgaWYgKHNlcmllLnhOYW1lKVxyXG4gICAgICBvcHRpb25zLnhOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwieE5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmIChzZXJpZS55TmFtZSlcclxuICAgICAgb3B0aW9ucy55TmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInlOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUubGFiZWxOYW1lKVxyXG4gICAgICBvcHRpb25zLmxhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImxhYmVsTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEJ1YmJsZVNlcmllc09wdGlvbnMoc2VyaWU6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGxhbmd1YWdlOiBzdHJpbmcpOiBBZ0J1YmJsZVNlcmllc09wdGlvbnMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogXCJidWJibGVcIixcclxuICAgICAgeEtleTogc2VyaWUueEtleSxcclxuICAgICAgeUtleTogc2VyaWUueUtleSxcclxuICAgICAgc2l6ZUtleTogc2VyaWUuc2l6ZUtleSxcclxuICAgICAgbGFiZWxLZXk6IHNlcmllLmxhYmVsS2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldEJ1YmJsZVNlcmllc09wdGlvbnNOYW1lcyhzZXJpZSwgbGFuZ3VhZ2UpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSwgbGFuZ3VhZ2U6IHN0cmluZylcclxuICAgIDogQWdCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAoc2VyaWUueE5hbWUpXHJcbiAgICAgIG9wdGlvbnMueE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ4TmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHNlcmllLnlOYW1lKVxyXG4gICAgICBvcHRpb25zLnlOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwieU5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmIChzZXJpZS5zaXplTmFtZSlcclxuICAgICAgb3B0aW9ucy5zaXplTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInNpemVOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUubGFiZWxOYW1lKVxyXG4gICAgICBvcHRpb25zLmxhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImxhYmVsTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBpZVNlcmllc09wdGlvbnMoc2VyaWU6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGxhbmd1YWdlOiBzdHJpbmcpOiBBZ1BpZVNlcmllc09wdGlvbnMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdQaWVTZXJpZXNPcHRpb25zID0ge1xyXG4gICAgICB0eXBlOiBcInBpZVwiLFxyXG4gICAgICBhbmdsZUtleTogc2VyaWUuYW5nbGVLZXksXHJcbiAgICAgIC4uLnRoaXMuZ2V0QmFzZVNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCksXHJcbiAgICAgIC4uLnRoaXMuZ2V0UGllU2VyaWVzT3B0aW9uc05hbWVzKHNlcmllLCBsYW5ndWFnZSlcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUucmFkaXVzS2V5KSlcclxuICAgICAgb3B0aW9ucy5yYWRpdXNLZXkgPSBzZXJpZS5yYWRpdXNLZXk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUuY2FsbG91dExhYmVsS2V5KSlcclxuICAgICAgb3B0aW9ucy5jYWxsb3V0TGFiZWxLZXkgPSBzZXJpZS5jYWxsb3V0TGFiZWxLZXk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUuc2VjdG9yTGFiZWxLZXkpKVxyXG4gICAgICBvcHRpb25zLnNlY3RvckxhYmVsS2V5ID0gc2VyaWUuc2VjdG9yTGFiZWxLZXk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUubGVnZW5kSXRlbUtleSkpXHJcbiAgICAgIG9wdGlvbnMubGVnZW5kSXRlbUtleSA9IHNlcmllLmxlZ2VuZEl0ZW1LZXk7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBpZVNlcmllc09wdGlvbnNOYW1lcyhzZXJpZTogYW55LCBsYW5ndWFnZTogc3RyaW5nKVxyXG4gICAgOiBBZ1BpZVNlcmllc09wdGlvbnNOYW1lcyB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBBZ1BpZVNlcmllc09wdGlvbnNOYW1lcyA9IHt9O1xyXG5cclxuICAgIGlmIChzZXJpZS5hbmdsZU5hbWUpXHJcbiAgICAgIG9wdGlvbnMuYW5nbGVOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwiYW5nbGVOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUucmFkaXVzTmFtZSlcclxuICAgICAgb3B0aW9ucy5yYWRpdXNOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwicmFkaXVzTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHNlcmllLmNhbGxvdXRMYWJlbE5hbWUpXHJcbiAgICAgIG9wdGlvbnMuY2FsbG91dExhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImNhbGxvdXRMYWJlbE5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmIChzZXJpZS5zZWN0b3JMYWJlbE5hbWUpXHJcbiAgICAgIG9wdGlvbnMuc2VjdG9yTGFiZWxOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwic2VjdG9yTGFiZWxOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RG9udXRTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwLCBsYW5ndWFnZTogc3RyaW5nKTogQWdEb251dFNlcmllc09wdGlvbnMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdEb251dFNlcmllc09wdGlvbnMgPSB7XHJcbiAgICAgIHR5cGU6IFwiZG9udXRcIixcclxuICAgICAgYW5nbGVLZXk6IHNlcmllLmFuZ2xlS2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldERvbnV0U2VyaWVzT3B0aW9uc05hbWVzKHNlcmllLCBsYW5ndWFnZSlcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUucmFkaXVzS2V5KSlcclxuICAgICAgb3B0aW9ucy5yYWRpdXNLZXkgPSBzZXJpZS5yYWRpdXNLZXk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUuY2FsbG91dExhYmVsS2V5KSlcclxuICAgICAgb3B0aW9ucy5jYWxsb3V0TGFiZWxLZXkgPSBzZXJpZS5jYWxsb3V0TGFiZWxLZXk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUuc2VjdG9yTGFiZWxLZXkpKVxyXG4gICAgICBvcHRpb25zLnNlY3RvckxhYmVsS2V5ID0gc2VyaWUuc2VjdG9yTGFiZWxLZXk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUubGVnZW5kSXRlbUtleSkpXHJcbiAgICAgIG9wdGlvbnMubGVnZW5kSXRlbUtleSA9IHNlcmllLmxlZ2VuZEl0ZW1LZXk7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldERvbnV0U2VyaWVzT3B0aW9uc05hbWVzKHNlcmllOiBhbnksIGxhbmd1YWdlOiBzdHJpbmcpXHJcbiAgICA6IEFnRG9udXRTZXJpZXNPcHRpb25zTmFtZXMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdEb251dFNlcmllc09wdGlvbnNOYW1lcyA9IHt9O1xyXG5cclxuICAgIGlmIChzZXJpZS5hbmdsZU5hbWUpXHJcbiAgICAgIG9wdGlvbnMuYW5nbGVOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwiYW5nbGVOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAoc2VyaWUucmFkaXVzTmFtZSlcclxuICAgICAgb3B0aW9ucy5yYWRpdXNOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwicmFkaXVzTmFtZVwiLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgaWYgKHNlcmllLmNhbGxvdXRMYWJlbE5hbWUpXHJcbiAgICAgIG9wdGlvbnMuY2FsbG91dExhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImNhbGxvdXRMYWJlbE5hbWVcIiwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGlmIChzZXJpZS5zZWN0b3JMYWJlbE5hbWUpXHJcbiAgICAgIG9wdGlvbnMuc2VjdG9yTGFiZWxOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwic2VjdG9yTGFiZWxOYW1lXCIsIGxhbmd1YWdlKTtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UHJvcHMoY29tcG9uZW50OiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgcHJvcHM6IGFueSA9IHt9O1xyXG5cclxuICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50LnRpdGxlKSB7XHJcbiAgICAgIHByb3BzLnRpdGxlID0geyB0ZXh0OiBjb21wb25lbnQudGl0bGUgfTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudC5zdWJ0aXRsZSkge1xyXG4gICAgICBwcm9wcy5zdWJ0aXRsZSA9IHsgdGV4dDogY29tcG9uZW50LnN1YnRpdGxlIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHByb3BzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0Jvb2xlYW4odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8IHZhbHVlIGluc3RhbmNlb2YgQm9vbGVhbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTdHJpbmcodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNEaXJlY3Rpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSAnaG9yaXpvbnRhbCcgfHwgdmFsdWUgPT09ICd2ZXJ0aWNhbCc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzSW50ZXJwb2xhdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgPT09ICdsaW5lYXInIHx8IHZhbHVlID09PSAnc21vb3RoJyB8fCB2YWx1ZSA9PT0gJ3N0ZXAnO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
309
|
+
}], ctorParameters: () => [{ type: i1.ProgrammabilityService }, { type: i2.LanguageService }] });
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL3NlcnZpY2VzL2NoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBYXZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUc5QyxNQUFNLE9BQU8sWUFBWTtJQUdiO0lBQ0U7SUFGWixZQUNVLGVBQXVDLEVBQ3JDLGVBQWdDO1FBRGxDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUNyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDNUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFjLEVBQUUsU0FBb0I7UUFDN0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRSxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sT0FBTyxHQUFtQjtnQkFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7YUFDNUIsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBYztRQUM5QixNQUFNLGFBQWEsR0FBRyxDQUFDLFVBQWUsRUFBRSxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO2dCQUNsRCxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO2dCQUNoRCxDQUFDLENBQUMsTUFBTSxDQUFBO1FBQ1osQ0FBQyxDQUFBO1FBQ0QsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO2FBQ3pDLEdBQUcsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM5QyxHQUFHLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUM7YUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWQsT0FBTyxhQUFhLFFBQVEsZUFBZSxXQUFXLEtBQUssQ0FBQztJQUM5RCxDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQXVCLEVBQUUsU0FBYztRQUN0RCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQVUsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDbkQsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzVCLEtBQUssQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTyxNQUFNLENBQUMsU0FBYyxFQUFFLEdBQVc7UUFDeEMsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLFFBQVE7UUFDZCxPQUFPO1lBQ0wsU0FBUyxFQUFFLFlBQVk7WUFDdkIsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxTQUFTO2dCQUNyQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsZ0JBQWdCLEVBQUUsU0FBUztnQkFDM0IsZUFBZSxFQUFFLFNBQVM7YUFDM0I7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLFVBQVUsRUFBRTt3QkFDVixPQUFPLEVBQUUsSUFBSTt3QkFDYixJQUFJLEVBQUUsYUFBYTtxQkFDcEI7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sU0FBUyxDQUFDLFNBQWMsRUFBRSxTQUFvQjtRQUNwRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDakQsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25CLEtBQUssS0FBSzt3QkFDUixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3BELEtBQUssTUFBTTt3QkFDVCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3JELEtBQUssTUFBTTt3QkFDVCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3JELEtBQUssU0FBUzt3QkFDWixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3hELEtBQUssUUFBUTt3QkFDWCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3ZELEtBQUssS0FBSzt3QkFDUixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3BELEtBQUssT0FBTzt3QkFDVixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3REO3dCQUNFLE9BQU8sRUFBRSxDQUFDO2dCQUNkLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7YUFDSSxDQUFDO1lBQ0osT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQVU7UUFFdEMsTUFBTSxPQUFPLEdBQXVELEVBQUUsQ0FBQztRQUV2RSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUM1QixPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDckMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxLQUFVLEVBQUUsU0FBb0I7UUFFM0QsTUFBTSxPQUFPLEdBQTZCLEVBQUcsQ0FBQztRQUU5QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUMvQixPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFbEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQVUsRUFBRSxTQUFvQjtRQUMxRCxNQUFNLE9BQU8sR0FBdUI7WUFDbEMsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDOUMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDO1NBQ3JDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNuQyxPQUFPLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDL0IsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUU1QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUNqQyxPQUFPLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFFeEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQVUsRUFBRSxTQUFvQjtRQUMzRCxNQUFNLE9BQU8sR0FBd0I7WUFDbkMsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDOUMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDO1NBQ3JDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDOUMsT0FBTyxDQUFDLGFBQWEsR0FBRztnQkFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhO2FBQzFCLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQVUsRUFBRSxTQUFvQjtRQUMzRCxNQUFNLE9BQU8sR0FBd0I7WUFDbkMsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDOUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDO1NBQ3pDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUMvQixPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDbkMsT0FBTyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBRTVDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxLQUFVO1FBRTFDLE1BQU0sT0FBTyxHQUE2QixFQUFFLENBQUM7UUFFN0MsSUFBSSxLQUFLLENBQUMsS0FBSztZQUNiLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxLQUFLLENBQUMsS0FBSztZQUNiLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEtBQVUsRUFBRSxTQUFvQjtRQUM5RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1lBQzlDLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQztTQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUVPLDRCQUE0QixDQUFDLEtBQVU7UUFFN0MsTUFBTSxPQUFPLEdBQWdDLEVBQUUsQ0FBQztRQUVoRCxJQUFJLEtBQUssQ0FBQyxLQUFLO1lBQ2IsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5QyxJQUFJLEtBQUssQ0FBQyxLQUFLO1lBQ2IsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5QyxJQUFJLEtBQUssQ0FBQyxTQUFTO1lBQ2pCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFdEQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQVUsRUFBRSxTQUFvQjtRQUM3RCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVE7WUFDZCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUM5QyxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUM7U0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxLQUFVO1FBRTVDLE1BQU0sT0FBTyxHQUErQixFQUFFLENBQUM7UUFFL0MsSUFBSSxLQUFLLENBQUMsS0FBSztZQUNiLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxLQUFLLENBQUMsS0FBSztZQUNiLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxLQUFLLENBQUMsUUFBUTtZQUNoQixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXBELElBQUksS0FBSyxDQUFDLFNBQVM7WUFDakIsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV0RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsS0FBVSxFQUFFLFNBQW9CO1FBQzFELE1BQU0sT0FBTyxHQUF1QjtZQUNsQyxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1lBQzlDLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQztTQUN4QyxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBRXRDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNyQyxPQUFPLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFFaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDcEMsT0FBTyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBRTlDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxLQUFVO1FBRXpDLE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUM7UUFFNUMsSUFBSSxLQUFLLENBQUMsU0FBUztZQUNqQixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXRELElBQUksS0FBSyxDQUFDLFVBQVU7WUFDbEIsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV4RCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEIsT0FBTyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFcEUsSUFBSSxLQUFLLENBQUMsZUFBZTtZQUN2QixPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFFbEUsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQVUsRUFBRSxTQUFvQjtRQUM1RCxNQUFNLE9BQU8sR0FBeUI7WUFDcEMsSUFBSSxFQUFFLE9BQU87WUFDYixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUM5QyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUM7U0FDMUMsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUV0QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUN0QyxPQUFPLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDckMsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBRWhELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUU5QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sMEJBQTBCLENBQUMsS0FBVTtRQUUzQyxNQUFNLE9BQU8sR0FBOEIsRUFBRSxDQUFDO1FBRTlDLElBQUksS0FBSyxDQUFDLFNBQVM7WUFDakIsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV0RCxJQUFJLEtBQUssQ0FBQyxVQUFVO1lBQ2xCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFeEQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hCLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRXBFLElBQUksS0FBSyxDQUFDLGVBQWU7WUFDdkIsT0FBTyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRWxFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxRQUFRLENBQUMsU0FBYztRQUM3QixNQUFNLEtBQUssR0FBUSxFQUFFLENBQUM7UUFFdEIsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFDLENBQUM7UUFFRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMsS0FBSyxDQUFDLFFBQVEsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFVO1FBQzFCLE9BQU8sT0FBTyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssWUFBWSxPQUFPLENBQUM7SUFDaEUsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssWUFBWSxNQUFNLENBQUM7SUFDOUQsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDNUIsT0FBTyxLQUFLLEtBQUssWUFBWSxJQUFJLEtBQUssS0FBSyxVQUFVLENBQUM7SUFDeEQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFVO1FBQ2hDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxNQUFNLENBQUM7SUFDdEUsQ0FBQzt3R0E5WFUsWUFBWTs0R0FBWixZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFByb2dyYW1tYWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9ncmFtbWFiaWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBvYnNlcnZhYmxlQWxsIH0gZnJvbSAnLi4vdXRpbHMvb2JzZXJ2YWJsZUFsbCc7XHJcbmltcG9ydCB7XHJcbiAgQWdDaGFydE9wdGlvbnMsIEFnQ2hhcnRUaGVtZSwgQWdCYXNlU2VyaWVzT3B0aW9ucyxcclxuICBBZ0JhclNlcmllc09wdGlvbnMsIEFnQmFyU2VyaWVzT3B0aW9uc05hbWVzLCBcclxuICBBZ0xpbmVTZXJpZXNPcHRpb25zLCBBZ0xpbmVTZXJpZXNPcHRpb25zTmFtZXMsXHJcbiAgQWdBcmVhU2VyaWVzT3B0aW9ucywgQWdBcmVhU2VyaWVzT3B0aW9uc05hbWVzLFxyXG4gIEFnU2NhdHRlclNlcmllc09wdGlvbnMsIEFnU2NhdHRlclNlcmllc09wdGlvbnNOYW1lcyxcclxuICBBZ0J1YmJsZVNlcmllc09wdGlvbnMsIEFnQnViYmxlU2VyaWVzT3B0aW9uc05hbWVzLFxyXG4gIEFnUGllU2VyaWVzT3B0aW9ucywgQWdQaWVTZXJpZXNPcHRpb25zTmFtZXMsXHJcbiAgQWdEb251dFNlcmllc09wdGlvbnMsIEFnRG9udXRTZXJpZXNPcHRpb25zTmFtZXNcclxufSBmcm9tICdhZy1jaGFydHMtY29tbXVuaXR5JztcclxuXHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0B3ZW1ha2U0dS9pbnRlcmFjdCc7XHJcbmltcG9ydCB7IGxvY2FsaXplIH0gZnJvbSAnLi4vbG9jYWxlL2xvY2FsaXplJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENoYXJ0U2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwcm9ncmFtbWFiaWxpdHk6IFByb2dyYW1tYWJpbGl0eVNlcnZpY2VcclxuICAgICwgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgZ2V0T3B0aW9ucyhjb21wb25lbnQ6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXApOiBPYnNlcnZhYmxlPEFnQ2hhcnRPcHRpb25zPiB7XHJcbiAgICBjb25zdCBleHByZXNzaW9uID0gdGhpcy5nZXREYXRhRXhwcmVzc2lvbihjb21wb25lbnQpO1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMucHJvZ3JhbW1hYmlsaXR5LmV2YWx1YXRlKGZvcm1Hcm91cCwgZXhwcmVzc2lvbik7XHJcbiAgICByZXR1cm4gb2JzZXJ2YWJsZUFsbChkYXRhKS5waXBlKFxyXG4gICAgICBtYXAoKGNoYXJ0RGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VyaWVzID0gdGhpcy5nZXRTZXJpZXMoY29tcG9uZW50LCBmb3JtR3JvdXApO1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IEFnQ2hhcnRPcHRpb25zID0ge1xyXG4gICAgICAgICAgdGhlbWU6IHRoaXMuZ2V0VGhlbWUoKSxcclxuICAgICAgICAgIHNlcmllczogc2VyaWVzLFxyXG4gICAgICAgICAgLi4udGhpcy5nZXRQcm9wcyhjb21wb25lbnQpXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmJpbmREYXRhKG9wdGlvbnMsIGNoYXJ0RGF0YSk7XHJcbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgICAgIH0pXHJcbiAgICApOyAgIFxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YUV4cHJlc3Npb24oY29tcG9uZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGdldEV4cHJlc3Npb24gPSAoZXhwcmVzc2lvbjogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnByb2dyYW1tYWJpbGl0eS5pc0V4cHJlc3Npb24oZXhwcmVzc2lvbilcclxuICAgICAgICA/IHRoaXMucHJvZ3JhbW1hYmlsaXR5LmdldEV4cHJlc3Npb24oZXhwcmVzc2lvbilcclxuICAgICAgICA6IFwibnVsbFwiXHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhRXhwciA9IGdldEV4cHJlc3Npb24oY29tcG9uZW50LmRhdGEpO1xyXG4gICAgY29uc3Qgc2VyaWVzRXhwcnMgPSAoY29tcG9uZW50LnNlcmllcyA/PyBbXSlcclxuICAgICAgLm1hcCgoc2VyaWU6IGFueSkgPT4gZ2V0RXhwcmVzc2lvbihzZXJpZS5kYXRhKSlcclxuICAgICAgLm1hcCgoZXhwcjogc3RyaW5nKSA9PiBgKCR7ZXhwcn0pYClcclxuICAgICAgLmpvaW4oXCIsIFwiKTtcclxuXHJcbiAgICByZXR1cm4gYD17IGRhdGE6ICgke2RhdGFFeHByfSksIHNlcmllczogWyR7c2VyaWVzRXhwcnN9XSB9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmluZERhdGEob3B0aW9uczogQWdDaGFydE9wdGlvbnMsIGNoYXJ0RGF0YTogYW55KSB7XHJcbiAgICBpZiAoY2hhcnREYXRhLmRhdGEpIHtcclxuICAgICAgb3B0aW9ucy5kYXRhID0gY2hhcnREYXRhLmRhdGE7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLnNlcmllcykpIHtcclxuICAgICAgb3B0aW9ucy5zZXJpZXMuZm9yRWFjaCgoc2VyaWU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChjaGFydERhdGEuc2VyaWVzW2luZGV4XSkge1xyXG4gICAgICAgICAgc2VyaWUuZGF0YSA9IGNoYXJ0RGF0YS5zZXJpZXNbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmdldExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvY2FsZShjb21wb25lbnQ6IGFueSwga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGxvY2FsaXplKHRoaXMubGFuZ3VhZ2UsIGNvbXBvbmVudCwga2V5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VGhlbWUoKTogQWdDaGFydFRoZW1lIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGJhc2VUaGVtZTogXCJhZy1kZWZhdWx0XCIsXHJcbiAgICAgIHBhcmFtczoge1xyXG4gICAgICAgIGZvbnRGYW1pbHk6IFwiaW5oZXJpdFwiLFxyXG4gICAgICAgIHRleHRDb2xvcjogXCIjMDAxMjFBXCIsXHJcbiAgICAgICAgY2hyb21lRm9udEZhbWlseTogXCJpbmhlcml0XCIsXHJcbiAgICAgICAgY2hyb21lVGV4dENvbG9yOiBcIiMwMDEyMUFcIlxyXG4gICAgICB9LFxyXG4gICAgICBvdmVycmlkZXM6IHtcclxuICAgICAgICBjb21tb246IHtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IHtcclxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgZmlsbDogXCJ0cmFuc3BhcmVudFwiLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VyaWVzKGNvbXBvbmVudDogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IGFueVtdIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbXBvbmVudC5zZXJpZXMpKSB7XHJcbiAgICAgIGNvbnN0IHNlcmllcyA9IGNvbXBvbmVudC5zZXJpZXMubWFwKChzZXJpZTogYW55KSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChzZXJpZS50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIFwiYmFyXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEJhclNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCk7XHJcbiAgICAgICAgICBjYXNlIFwibGluZVwiOlxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMaW5lU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKTtcclxuICAgICAgICAgIGNhc2UgXCJhcmVhXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFyZWFTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApO1xyXG4gICAgICAgICAgY2FzZSBcInNjYXR0ZXJcIjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2NhdHRlclNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCk7XHJcbiAgICAgICAgICBjYXNlIFwiYnViYmxlXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEJ1YmJsZVNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCk7XHJcbiAgICAgICAgICBjYXNlIFwicGllXCI6XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFBpZVNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCk7XHJcbiAgICAgICAgICBjYXNlIFwiZG9udXRcIjpcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RG9udXRTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBzZXJpZXM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSlcclxuICAgIDogQWdCYXJTZXJpZXNPcHRpb25zTmFtZXMgfCBBZ0xpbmVTZXJpZXNPcHRpb25zTmFtZXMgIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnQmFyU2VyaWVzT3B0aW9uc05hbWVzIHwgQWdMaW5lU2VyaWVzT3B0aW9uc05hbWVzID0ge307XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUueE5hbWUpKVxyXG4gICAgICBvcHRpb25zLnhOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwieE5hbWVcIik7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUueU5hbWUpKVxyXG4gICAgICBvcHRpb25zLnlOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwieU5hbWVcIik7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNTdHJpbmcoc2VyaWUubGVnZW5kSXRlbU5hbWUpKVxyXG4gICAgICBvcHRpb25zLmxlZ2VuZEl0ZW1OYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwibGVnZW5kSXRlbU5hbWVcIik7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG4gIFxyXG4gIHByaXZhdGUgZ2V0QmFzZVNlcmllc09wdGlvbnMoc2VyaWU6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXApOiBBZ0Jhc2VTZXJpZXNPcHRpb25zPGFueT5cclxuICB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBBZ0Jhc2VTZXJpZXNPcHRpb25zPGFueT4gPSB7IH07XHJcblxyXG4gICAgaWYgKHRoaXMuaXNCb29sZWFuKHNlcmllLnZpc2libGUpKVxyXG4gICAgICBvcHRpb25zLnZpc2libGUgPSBzZXJpZS52aXNpYmxlO1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCYXJTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwKTogQWdCYXJTZXJpZXNPcHRpb25zIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnQmFyU2VyaWVzT3B0aW9ucyA9IHtcclxuICAgICAgdHlwZTogXCJiYXJcIixcclxuICAgICAgeEtleTogc2VyaWUueEtleSxcclxuICAgICAgeUtleTogc2VyaWUueUtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXRTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWUpXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmlzRGlyZWN0aW9uKHNlcmllLmRpcmVjdGlvbikpXHJcbiAgICAgIG9wdGlvbnMuZGlyZWN0aW9uID0gc2VyaWUuZGlyZWN0aW9uO1xyXG5cclxuICAgIGlmICh0aGlzLmlzQm9vbGVhbihzZXJpZS5zdGFja2VkKSlcclxuICAgICAgb3B0aW9ucy5zdGFja2VkID0gc2VyaWUuc3RhY2tlZDtcclxuXHJcbiAgICBpZiAodGhpcy5pc051bWJlcihzZXJpZS5ub3JtYWxpemVkVG8pKVxyXG4gICAgICBvcHRpb25zLm5vcm1hbGl6ZWRUbyA9IHNlcmllLm5vcm1hbGl6ZWRUbztcclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZyhzZXJpZS5zdGFja0dyb3VwKSlcclxuICAgICAgb3B0aW9ucy5zdGFja0dyb3VwID0gc2VyaWUuc3RhY2tHcm91cDtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TGluZVNlcmllc09wdGlvbnMoc2VyaWU6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXApOiBBZ0xpbmVTZXJpZXNPcHRpb25zIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnTGluZVNlcmllc09wdGlvbnMgPSB7XHJcbiAgICAgIHR5cGU6IFwibGluZVwiLFxyXG4gICAgICB4S2V5OiBzZXJpZS54S2V5LFxyXG4gICAgICB5S2V5OiBzZXJpZS55S2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldFNlcmllc09wdGlvbnNOYW1lcyhzZXJpZSlcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuaXNJbnRlcnBvbGF0aW9uKHNlcmllLmludGVycG9sYXRpb24pKSB7IFxyXG4gICAgICBvcHRpb25zLmludGVycG9sYXRpb24gPSB7XHJcbiAgICAgICAgdHlwZTogc2VyaWUuaW50ZXJwb2xhdGlvblxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBcmVhU2VyaWVzT3B0aW9ucyhzZXJpZTogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IEFnQXJlYVNlcmllc09wdGlvbnMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdBcmVhU2VyaWVzT3B0aW9ucyA9IHtcclxuICAgICAgdHlwZTogXCJhcmVhXCIsXHJcbiAgICAgIHhLZXk6IHNlcmllLnhLZXksXHJcbiAgICAgIHlLZXk6IHNlcmllLnlLZXksXHJcbiAgICAgIC4uLnRoaXMuZ2V0QmFzZVNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCksXHJcbiAgICAgIC4uLnRoaXMuZ2V0QXJlYVNlcmllc09wdGlvbnNOYW1lcyhzZXJpZSlcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuaXNCb29sZWFuKHNlcmllLnN0YWNrZWQpKVxyXG4gICAgICBvcHRpb25zLnN0YWNrZWQgPSBzZXJpZS5zdGFja2VkO1xyXG5cclxuICAgIGlmICh0aGlzLmlzTnVtYmVyKHNlcmllLm5vcm1hbGl6ZWRUbykpXHJcbiAgICAgIG9wdGlvbnMubm9ybWFsaXplZFRvID0gc2VyaWUubm9ybWFsaXplZFRvO1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBcmVhU2VyaWVzT3B0aW9uc05hbWVzKHNlcmllOiBhbnkpXHJcbiAgICA6IEFnQXJlYVNlcmllc09wdGlvbnNOYW1lcyB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBBZ0FyZWFTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAoc2VyaWUueE5hbWUpXHJcbiAgICAgIG9wdGlvbnMueE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ4TmFtZVwiKTtcclxuXHJcbiAgICBpZiAoc2VyaWUueU5hbWUpXHJcbiAgICAgIG9wdGlvbnMueU5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ5TmFtZVwiKTtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2NhdHRlclNlcmllc09wdGlvbnMoc2VyaWU6IGFueSwgZm9ybUdyb3VwOiBGb3JtR3JvdXApOiBBZ1NjYXR0ZXJTZXJpZXNPcHRpb25zIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IFwic2NhdHRlclwiLFxyXG4gICAgICB4S2V5OiBzZXJpZS54S2V5LFxyXG4gICAgICB5S2V5OiBzZXJpZS55S2V5LFxyXG4gICAgICBsYWJlbEtleTogc2VyaWUubGFiZWxLZXksXHJcbiAgICAgIC4uLnRoaXMuZ2V0QmFzZVNlcmllc09wdGlvbnMoc2VyaWUsIGZvcm1Hcm91cCksXHJcbiAgICAgIC4uLnRoaXMuZ2V0U2NhdHRlclNlcmllc09wdGlvbnNOYW1lcyhzZXJpZSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNjYXR0ZXJTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSlcclxuICAgIDogQWdTY2F0dGVyU2VyaWVzT3B0aW9uc05hbWVzIHtcclxuICAgIGNvbnN0IG9wdGlvbnM6IEFnU2NhdHRlclNlcmllc09wdGlvbnNOYW1lcyA9IHt9O1xyXG5cclxuICAgIGlmIChzZXJpZS54TmFtZSlcclxuICAgICAgb3B0aW9ucy54TmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInhOYW1lXCIpO1xyXG5cclxuICAgIGlmIChzZXJpZS55TmFtZSlcclxuICAgICAgb3B0aW9ucy55TmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInlOYW1lXCIpO1xyXG5cclxuICAgIGlmIChzZXJpZS5sYWJlbE5hbWUpXHJcbiAgICAgIG9wdGlvbnMubGFiZWxOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwibGFiZWxOYW1lXCIpO1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCdWJibGVTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwKTogQWdCdWJibGVTZXJpZXNPcHRpb25zIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IFwiYnViYmxlXCIsXHJcbiAgICAgIHhLZXk6IHNlcmllLnhLZXksXHJcbiAgICAgIHlLZXk6IHNlcmllLnlLZXksXHJcbiAgICAgIHNpemVLZXk6IHNlcmllLnNpemVLZXksXHJcbiAgICAgIGxhYmVsS2V5OiBzZXJpZS5sYWJlbEtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXRCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWUpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSlcclxuICAgIDogQWdCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdCdWJibGVTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAoc2VyaWUueE5hbWUpXHJcbiAgICAgIG9wdGlvbnMueE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ4TmFtZVwiKTtcclxuXHJcbiAgICBpZiAoc2VyaWUueU5hbWUpXHJcbiAgICAgIG9wdGlvbnMueU5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJ5TmFtZVwiKTtcclxuXHJcbiAgICBpZiAoc2VyaWUuc2l6ZU5hbWUpXHJcbiAgICAgIG9wdGlvbnMuc2l6ZU5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJzaXplTmFtZVwiKTtcclxuXHJcbiAgICBpZiAoc2VyaWUubGFiZWxOYW1lKVxyXG4gICAgICBvcHRpb25zLmxhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImxhYmVsTmFtZVwiKTtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGllU2VyaWVzT3B0aW9ucyhzZXJpZTogYW55LCBmb3JtR3JvdXA6IEZvcm1Hcm91cCk6IEFnUGllU2VyaWVzT3B0aW9ucyB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBBZ1BpZVNlcmllc09wdGlvbnMgPSB7XHJcbiAgICAgIHR5cGU6IFwicGllXCIsXHJcbiAgICAgIGFuZ2xlS2V5OiBzZXJpZS5hbmdsZUtleSxcclxuICAgICAgLi4udGhpcy5nZXRCYXNlU2VyaWVzT3B0aW9ucyhzZXJpZSwgZm9ybUdyb3VwKSxcclxuICAgICAgLi4udGhpcy5nZXRQaWVTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWUpXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLnJhZGl1c0tleSkpXHJcbiAgICAgIG9wdGlvbnMucmFkaXVzS2V5ID0gc2VyaWUucmFkaXVzS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLmNhbGxvdXRMYWJlbEtleSkpXHJcbiAgICAgIG9wdGlvbnMuY2FsbG91dExhYmVsS2V5ID0gc2VyaWUuY2FsbG91dExhYmVsS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLnNlY3RvckxhYmVsS2V5KSlcclxuICAgICAgb3B0aW9ucy5zZWN0b3JMYWJlbEtleSA9IHNlcmllLnNlY3RvckxhYmVsS2V5O1xyXG5cclxuICAgIGlmICh0aGlzLmlzU3RyaW5nKHNlcmllLmxlZ2VuZEl0ZW1LZXkpKVxyXG4gICAgICBvcHRpb25zLmxlZ2VuZEl0ZW1LZXkgPSBzZXJpZS5sZWdlbmRJdGVtS2V5O1xyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQaWVTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSlcclxuICAgIDogQWdQaWVTZXJpZXNPcHRpb25zTmFtZXMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdQaWVTZXJpZXNPcHRpb25zTmFtZXMgPSB7fTtcclxuXHJcbiAgICBpZiAoc2VyaWUuYW5nbGVOYW1lKVxyXG4gICAgICBvcHRpb25zLmFuZ2xlTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImFuZ2xlTmFtZVwiKTtcclxuXHJcbiAgICBpZiAoc2VyaWUucmFkaXVzTmFtZSlcclxuICAgICAgb3B0aW9ucy5yYWRpdXNOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwicmFkaXVzTmFtZVwiKTtcclxuXHJcbiAgICBpZiAoc2VyaWUuY2FsbG91dExhYmVsTmFtZSlcclxuICAgICAgb3B0aW9ucy5jYWxsb3V0TGFiZWxOYW1lID0gdGhpcy5sb2NhbGUoc2VyaWUsIFwiY2FsbG91dExhYmVsTmFtZVwiKTtcclxuXHJcbiAgICBpZiAoc2VyaWUuc2VjdG9yTGFiZWxOYW1lKVxyXG4gICAgICBvcHRpb25zLnNlY3RvckxhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInNlY3RvckxhYmVsTmFtZVwiKTtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RG9udXRTZXJpZXNPcHRpb25zKHNlcmllOiBhbnksIGZvcm1Hcm91cDogRm9ybUdyb3VwKTogQWdEb251dFNlcmllc09wdGlvbnMge1xyXG4gICAgY29uc3Qgb3B0aW9uczogQWdEb251dFNlcmllc09wdGlvbnMgPSB7XHJcbiAgICAgIHR5cGU6IFwiZG9udXRcIixcclxuICAgICAgYW5nbGVLZXk6IHNlcmllLmFuZ2xlS2V5LFxyXG4gICAgICAuLi50aGlzLmdldEJhc2VTZXJpZXNPcHRpb25zKHNlcmllLCBmb3JtR3JvdXApLFxyXG4gICAgICAuLi50aGlzLmdldERvbnV0U2VyaWVzT3B0aW9uc05hbWVzKHNlcmllKVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZyhzZXJpZS5yYWRpdXNLZXkpKVxyXG4gICAgICBvcHRpb25zLnJhZGl1c0tleSA9IHNlcmllLnJhZGl1c0tleTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZyhzZXJpZS5jYWxsb3V0TGFiZWxLZXkpKVxyXG4gICAgICBvcHRpb25zLmNhbGxvdXRMYWJlbEtleSA9IHNlcmllLmNhbGxvdXRMYWJlbEtleTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZyhzZXJpZS5zZWN0b3JMYWJlbEtleSkpXHJcbiAgICAgIG9wdGlvbnMuc2VjdG9yTGFiZWxLZXkgPSBzZXJpZS5zZWN0b3JMYWJlbEtleTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1N0cmluZyhzZXJpZS5sZWdlbmRJdGVtS2V5KSlcclxuICAgICAgb3B0aW9ucy5sZWdlbmRJdGVtS2V5ID0gc2VyaWUubGVnZW5kSXRlbUtleTtcclxuXHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RG9udXRTZXJpZXNPcHRpb25zTmFtZXMoc2VyaWU6IGFueSlcclxuICAgIDogQWdEb251dFNlcmllc09wdGlvbnNOYW1lcyB7XHJcbiAgICBjb25zdCBvcHRpb25zOiBBZ0RvbnV0U2VyaWVzT3B0aW9uc05hbWVzID0ge307XHJcblxyXG4gICAgaWYgKHNlcmllLmFuZ2xlTmFtZSlcclxuICAgICAgb3B0aW9ucy5hbmdsZU5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJhbmdsZU5hbWVcIik7XHJcblxyXG4gICAgaWYgKHNlcmllLnJhZGl1c05hbWUpXHJcbiAgICAgIG9wdGlvbnMucmFkaXVzTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcInJhZGl1c05hbWVcIik7XHJcblxyXG4gICAgaWYgKHNlcmllLmNhbGxvdXRMYWJlbE5hbWUpXHJcbiAgICAgIG9wdGlvbnMuY2FsbG91dExhYmVsTmFtZSA9IHRoaXMubG9jYWxlKHNlcmllLCBcImNhbGxvdXRMYWJlbE5hbWVcIik7XHJcblxyXG4gICAgaWYgKHNlcmllLnNlY3RvckxhYmVsTmFtZSlcclxuICAgICAgb3B0aW9ucy5zZWN0b3JMYWJlbE5hbWUgPSB0aGlzLmxvY2FsZShzZXJpZSwgXCJzZWN0b3JMYWJlbE5hbWVcIik7XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFByb3BzKGNvbXBvbmVudDogYW55KTogYW55IHtcclxuICAgIGNvbnN0IHByb3BzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudC50aXRsZSkge1xyXG4gICAgICBwcm9wcy50aXRsZSA9IHsgdGV4dDogY29tcG9uZW50LnRpdGxlIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuc3VidGl0bGUpIHtcclxuICAgICAgcHJvcHMuc3VidGl0bGUgPSB7IHRleHQ6IGNvbXBvbmVudC5zdWJ0aXRsZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9wcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNCb29sZWFuKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIEJvb2xlYW47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc051bWJlcih2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc0Zpbml0ZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzRGlyZWN0aW9uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2YWx1ZSA9PT0gJ2hvcml6b250YWwnIHx8IHZhbHVlID09PSAndmVydGljYWwnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0ludGVycG9sYXRpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlID09PSAnbGluZWFyJyB8fCB2YWx1ZSA9PT0gJ3Ntb290aCcgfHwgdmFsdWUgPT09ICdzdGVwJztcclxuICB9XHJcbn1cclxuIl19
|