@po-ui/ng-templates 17.20.0 → 18.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +1 -1
  2. package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +2 -2
  3. package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +69 -69
  4. package/esm2022/lib/components/po-page-background/po-page-background.component.mjs +15 -15
  5. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +2 -2
  6. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +8 -8
  7. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +2 -2
  8. package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +2 -2
  9. package/esm2022/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +2 -2
  10. package/esm2022/lib/components/po-page-change-password/po-page-change-password.component.mjs +41 -40
  11. package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +1 -1
  12. package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +12 -12
  13. package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +1 -1
  14. package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +27 -27
  15. package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +2 -2
  16. package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +1 -1
  17. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +2 -2
  18. package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +5 -4
  19. package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +2 -2
  20. package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +1 -1
  21. package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +2 -2
  22. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +2 -2
  23. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +82 -81
  24. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/po-job-scheduler-parameters-template.directive.mjs +1 -1
  25. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +14 -14
  26. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +9 -9
  27. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +19 -18
  28. package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +1 -1
  29. package/esm2022/lib/components/po-page-login/po-page-login-base.component.mjs +2 -2
  30. package/esm2022/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +12 -12
  31. package/esm2022/lib/components/po-page-login/po-page-login.component.mjs +74 -74
  32. package/esm2022/lib/components/po-page-login/po-page-login.service.mjs +1 -1
  33. package/esm2022/lib/services/po-page-customization/po-page-customization.service.mjs +1 -1
  34. package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +1 -1
  35. package/esm2022/lib/utils/util.mjs +1 -1
  36. package/fesm2022/po-ui-ng-templates.mjs +388 -384
  37. package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
  38. package/package.json +12 -12
  39. package/po-ui-ng-templates-18.0.0-rc.0.tgz +0 -0
  40. package/schematics/ng-add/index.js +1 -1
  41. package/schematics/ng-add/index.js.map +1 -1
  42. package/po-ui-ng-templates-17.20.0.tgz +0 -0
@@ -23,18 +23,18 @@ function PoPageLoginComponent_po_tag_10_Template(rf, ctx) { if (rf & 1) {
23
23
  function PoPageLoginComponent_div_19_po_icon_1_Template(rf, ctx) { if (rf & 1) {
24
24
  i0.ɵɵelement(0, "po-icon", 31);
25
25
  } if (rf & 2) {
26
- const ctx_r13 = i0.ɵɵnextContext(2);
27
- i0.ɵɵproperty("p-tooltip", ctx_r13.pageLoginLiterals.loginHint);
26
+ const ctx_r1 = i0.ɵɵnextContext(2);
27
+ i0.ɵɵproperty("p-tooltip", ctx_r1.pageLoginLiterals.loginHint);
28
28
  } }
29
29
  function PoPageLoginComponent_div_19_Template(rf, ctx) { if (rf & 1) {
30
30
  i0.ɵɵelementStart(0, "div", 29);
31
31
  i0.ɵɵtemplate(1, PoPageLoginComponent_div_19_po_icon_1_Template, 1, 1, "po-icon", 30);
32
32
  i0.ɵɵelementEnd();
33
33
  } if (rf & 2) {
34
- const ctx_r3 = i0.ɵɵnextContext();
35
- i0.ɵɵclassProp("po-page-login-info-icon-container-dynamic", !ctx_r3.pageLoginLiterals.loginHint && !ctx_r3.pageLoginLiterals.rememberUserHint);
34
+ const ctx_r1 = i0.ɵɵnextContext();
35
+ i0.ɵɵclassProp("po-page-login-info-icon-container-dynamic", !ctx_r1.pageLoginLiterals.loginHint && !ctx_r1.pageLoginLiterals.rememberUserHint);
36
36
  i0.ɵɵadvance();
37
- i0.ɵɵproperty("ngIf", ctx_r3.pageLoginLiterals.loginHint);
37
+ i0.ɵɵproperty("ngIf", ctx_r1.pageLoginLiterals.loginHint);
38
38
  } }
39
39
  function PoPageLoginComponent_div_21_Template(rf, ctx) { if (rf & 1) {
40
40
  i0.ɵɵelementStart(0, "div", 32);
@@ -43,27 +43,27 @@ function PoPageLoginComponent_div_21_Template(rf, ctx) { if (rf & 1) {
43
43
  i0.ɵɵtext(3);
44
44
  i0.ɵɵelementEnd()();
45
45
  } if (rf & 2) {
46
- const error_r14 = ctx.$implicit;
46
+ const error_r4 = ctx.$implicit;
47
47
  i0.ɵɵadvance(3);
48
- i0.ɵɵtextInterpolate(error_r14);
48
+ i0.ɵɵtextInterpolate(error_r4);
49
49
  } }
50
50
  function PoPageLoginComponent_div_25_po_page_login_popover_1_Template(rf, ctx) { if (rf & 1) {
51
- const _r17 = i0.ɵɵgetCurrentView();
51
+ const _r5 = i0.ɵɵgetCurrentView();
52
52
  i0.ɵɵelementStart(0, "po-page-login-popover", 37);
53
- i0.ɵɵlistener("p-forgot-password", function PoPageLoginComponent_div_25_po_page_login_popover_1_Template_po_page_login_popover_p_forgot_password_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.openUrl($event)); });
53
+ i0.ɵɵlistener("p-forgot-password", function PoPageLoginComponent_div_25_po_page_login_popover_1_Template_po_page_login_popover_p_forgot_password_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openUrl($event)); });
54
54
  i0.ɵɵelementEnd();
55
55
  } if (rf & 2) {
56
- const ctx_r15 = i0.ɵɵnextContext(2);
57
- i0.ɵɵproperty("p-literals", ctx_r15.pageLoginLiterals)("p-recovery", ctx_r15.recovery)("p-remaining-attempts", ctx_r15.exceededAttemptsWarning);
56
+ const ctx_r1 = i0.ɵɵnextContext(2);
57
+ i0.ɵɵproperty("p-literals", ctx_r1.pageLoginLiterals)("p-recovery", ctx_r1.recovery)("p-remaining-attempts", ctx_r1.exceededAttemptsWarning);
58
58
  } }
59
59
  function PoPageLoginComponent_div_25_Template(rf, ctx) { if (rf & 1) {
60
60
  i0.ɵɵelementStart(0, "div", 35);
61
61
  i0.ɵɵtemplate(1, PoPageLoginComponent_div_25_po_page_login_popover_1_Template, 1, 3, "po-page-login-popover", 36);
62
62
  i0.ɵɵelementEnd();
63
63
  } if (rf & 2) {
64
- const ctx_r5 = i0.ɵɵnextContext();
64
+ const ctx_r1 = i0.ɵɵnextContext();
65
65
  i0.ɵɵadvance();
66
- i0.ɵɵproperty("ngIf", ctx_r5.showExceededAttemptsWarning && ctx_r5.exceededAttemptsWarning);
66
+ i0.ɵɵproperty("ngIf", ctx_r1.showExceededAttemptsWarning && ctx_r1.exceededAttemptsWarning);
67
67
  } }
68
68
  function PoPageLoginComponent_div_27_Template(rf, ctx) { if (rf & 1) {
69
69
  i0.ɵɵelementStart(0, "div", 32);
@@ -72,97 +72,97 @@ function PoPageLoginComponent_div_27_Template(rf, ctx) { if (rf & 1) {
72
72
  i0.ɵɵtext(3);
73
73
  i0.ɵɵelementEnd()();
74
74
  } if (rf & 2) {
75
- const error_r18 = ctx.$implicit;
75
+ const error_r6 = ctx.$implicit;
76
76
  i0.ɵɵadvance(3);
77
- i0.ɵɵtextInterpolate(error_r18);
77
+ i0.ɵɵtextInterpolate(error_r6);
78
78
  } }
79
79
  function PoPageLoginComponent_po_input_28_Template(rf, ctx) { if (rf & 1) {
80
- const _r20 = i0.ɵɵgetCurrentView();
80
+ const _r7 = i0.ɵɵgetCurrentView();
81
81
  i0.ɵɵelementStart(0, "po-input", 38);
82
- i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_po_input_28_Template_po_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r19.customFieldObject.value, $event) || (ctx_r19.customFieldObject.value = $event); return i0.ɵɵresetView($event); });
83
- i0.ɵɵlistener("keyup.enter", function PoPageLoginComponent_po_input_28_Template_po_input_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r20); const ctx_r21 = i0.ɵɵnextContext(); const _r2 = i0.ɵɵreference(14); return i0.ɵɵresetView(_r2.valid && ctx_r21.onLoginSubmit()); });
82
+ i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_po_input_28_Template_po_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.customFieldObject.value, $event) || (ctx_r1.customFieldObject.value = $event); return i0.ɵɵresetView($event); });
83
+ i0.ɵɵlistener("keyup.enter", function PoPageLoginComponent_po_input_28_Template_po_input_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); const loginForm_r3 = i0.ɵɵreference(14); return i0.ɵɵresetView(loginForm_r3.valid && ctx_r1.onLoginSubmit()); });
84
84
  i0.ɵɵelementEnd();
85
85
  } if (rf & 2) {
86
- const ctx_r7 = i0.ɵɵnextContext();
87
- i0.ɵɵclassProp("po-page-login-field-size-dynamic", !ctx_r7.pageLoginLiterals.loginHint && !ctx_r7.pageLoginLiterals.rememberUserHint);
88
- i0.ɵɵtwoWayProperty("ngModel", ctx_r7.customFieldObject.value);
89
- i0.ɵɵproperty("p-error-pattern", ctx_r7.customFieldObject.errorPattern || ctx_r7.pageLoginLiterals.customFieldErrorPattern)("p-pattern", ctx_r7.customFieldObject.pattern)("p-placeholder", ctx_r7.customFieldObject.placeholder || ctx_r7.pageLoginLiterals.customFieldPlaceholder);
86
+ const ctx_r1 = i0.ɵɵnextContext();
87
+ i0.ɵɵclassProp("po-page-login-field-size-dynamic", !ctx_r1.pageLoginLiterals.loginHint && !ctx_r1.pageLoginLiterals.rememberUserHint);
88
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.customFieldObject.value);
89
+ i0.ɵɵproperty("p-error-pattern", ctx_r1.customFieldObject.errorPattern || ctx_r1.pageLoginLiterals.customFieldErrorPattern)("p-pattern", ctx_r1.customFieldObject.pattern)("p-placeholder", ctx_r1.customFieldObject.placeholder || ctx_r1.pageLoginLiterals.customFieldPlaceholder);
90
90
  } }
91
91
  function PoPageLoginComponent_po_combo_29_Template(rf, ctx) { if (rf & 1) {
92
- const _r23 = i0.ɵɵgetCurrentView();
92
+ const _r8 = i0.ɵɵgetCurrentView();
93
93
  i0.ɵɵelementStart(0, "po-combo", 39);
94
- i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_po_combo_29_Template_po_combo_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r22.customFieldObject.value, $event) || (ctx_r22.customFieldObject.value = $event); return i0.ɵɵresetView($event); });
94
+ i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_po_combo_29_Template_po_combo_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.customFieldObject.value, $event) || (ctx_r1.customFieldObject.value = $event); return i0.ɵɵresetView($event); });
95
95
  i0.ɵɵelementEnd();
96
96
  } if (rf & 2) {
97
- const ctx_r8 = i0.ɵɵnextContext();
98
- i0.ɵɵclassProp("po-page-login-field-size-dynamic", !ctx_r8.pageLoginLiterals.loginHint && !ctx_r8.pageLoginLiterals.rememberUserHint);
99
- i0.ɵɵtwoWayProperty("ngModel", ctx_r8.customFieldObject.value);
100
- i0.ɵɵproperty("p-field-value", ctx_r8.customFieldObject.fieldValue)("p-filter-service", ctx_r8.customFieldObject.url)("p-placeholder", ctx_r8.customFieldObject.placeholder || ctx_r8.pageLoginLiterals.customFieldPlaceholder);
97
+ const ctx_r1 = i0.ɵɵnextContext();
98
+ i0.ɵɵclassProp("po-page-login-field-size-dynamic", !ctx_r1.pageLoginLiterals.loginHint && !ctx_r1.pageLoginLiterals.rememberUserHint);
99
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.customFieldObject.value);
100
+ i0.ɵɵproperty("p-field-value", ctx_r1.customFieldObject.fieldValue)("p-filter-service", ctx_r1.customFieldObject.url)("p-placeholder", ctx_r1.customFieldObject.placeholder || ctx_r1.pageLoginLiterals.customFieldPlaceholder);
101
101
  } }
102
102
  function PoPageLoginComponent_po_select_30_Template(rf, ctx) { if (rf & 1) {
103
- const _r25 = i0.ɵɵgetCurrentView();
103
+ const _r9 = i0.ɵɵgetCurrentView();
104
104
  i0.ɵɵelementStart(0, "po-select", 40);
105
- i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_po_select_30_Template_po_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r24.customFieldObject.value, $event) || (ctx_r24.customFieldObject.value = $event); return i0.ɵɵresetView($event); });
105
+ i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_po_select_30_Template_po_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.customFieldObject.value, $event) || (ctx_r1.customFieldObject.value = $event); return i0.ɵɵresetView($event); });
106
106
  i0.ɵɵelementEnd();
107
107
  } if (rf & 2) {
108
- const ctx_r9 = i0.ɵɵnextContext();
109
- i0.ɵɵclassProp("po-page-login-field-size-dynamic", !ctx_r9.pageLoginLiterals.loginHint && !ctx_r9.pageLoginLiterals.rememberUserHint);
110
- i0.ɵɵtwoWayProperty("ngModel", ctx_r9.customFieldObject.value);
111
- i0.ɵɵproperty("p-placeholder", ctx_r9.customFieldObject.placeholder || ctx_r9.pageLoginLiterals.customFieldPlaceholder)("p-options", ctx_r9.customFieldObject.options);
108
+ const ctx_r1 = i0.ɵɵnextContext();
109
+ i0.ɵɵclassProp("po-page-login-field-size-dynamic", !ctx_r1.pageLoginLiterals.loginHint && !ctx_r1.pageLoginLiterals.rememberUserHint);
110
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.customFieldObject.value);
111
+ i0.ɵɵproperty("p-placeholder", ctx_r1.customFieldObject.placeholder || ctx_r1.pageLoginLiterals.customFieldPlaceholder)("p-options", ctx_r1.customFieldObject.options);
112
112
  } }
113
113
  function PoPageLoginComponent_div_32_div_2_po_icon_1_Template(rf, ctx) { if (rf & 1) {
114
114
  i0.ɵɵelement(0, "po-icon", 31);
115
115
  } if (rf & 2) {
116
- const ctx_r27 = i0.ɵɵnextContext(3);
117
- i0.ɵɵproperty("p-tooltip", ctx_r27.pageLoginLiterals.rememberUserHint);
116
+ const ctx_r1 = i0.ɵɵnextContext(3);
117
+ i0.ɵɵproperty("p-tooltip", ctx_r1.pageLoginLiterals.rememberUserHint);
118
118
  } }
119
119
  function PoPageLoginComponent_div_32_div_2_Template(rf, ctx) { if (rf & 1) {
120
120
  i0.ɵɵelementStart(0, "div", 43);
121
121
  i0.ɵɵtemplate(1, PoPageLoginComponent_div_32_div_2_po_icon_1_Template, 1, 1, "po-icon", 30);
122
122
  i0.ɵɵelementEnd();
123
123
  } if (rf & 2) {
124
- const ctx_r26 = i0.ɵɵnextContext(2);
125
- i0.ɵɵclassProp("po-page-login-info-icon-container-dynamic", !ctx_r26.pageLoginLiterals.rememberUserHint);
124
+ const ctx_r1 = i0.ɵɵnextContext(2);
125
+ i0.ɵɵclassProp("po-page-login-info-icon-container-dynamic", !ctx_r1.pageLoginLiterals.rememberUserHint);
126
126
  i0.ɵɵadvance();
127
- i0.ɵɵproperty("ngIf", ctx_r26.pageLoginLiterals.rememberUserHint);
127
+ i0.ɵɵproperty("ngIf", ctx_r1.pageLoginLiterals.rememberUserHint);
128
128
  } }
129
129
  function PoPageLoginComponent_div_32_Template(rf, ctx) { if (rf & 1) {
130
- const _r29 = i0.ɵɵgetCurrentView();
130
+ const _r10 = i0.ɵɵgetCurrentView();
131
131
  i0.ɵɵelementStart(0, "div", 13)(1, "po-switch", 41);
132
- i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_div_32_Template_po_switch_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r28.rememberUser, $event) || (ctx_r28.rememberUser = $event); return i0.ɵɵresetView($event); });
133
- i0.ɵɵlistener("keyup.enter", function PoPageLoginComponent_div_32_Template_po_switch_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(); const _r2 = i0.ɵɵreference(14); return i0.ɵɵresetView(_r2.valid && ctx_r30.onLoginSubmit()); });
132
+ i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_div_32_Template_po_switch_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.rememberUser, $event) || (ctx_r1.rememberUser = $event); return i0.ɵɵresetView($event); });
133
+ i0.ɵɵlistener("keyup.enter", function PoPageLoginComponent_div_32_Template_po_switch_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(); const loginForm_r3 = i0.ɵɵreference(14); return i0.ɵɵresetView(loginForm_r3.valid && ctx_r1.onLoginSubmit()); });
134
134
  i0.ɵɵelementEnd();
135
135
  i0.ɵɵtemplate(2, PoPageLoginComponent_div_32_div_2_Template, 2, 3, "div", 42);
136
136
  i0.ɵɵelementEnd();
137
137
  } if (rf & 2) {
138
- const ctx_r10 = i0.ɵɵnextContext();
138
+ const ctx_r1 = i0.ɵɵnextContext();
139
139
  i0.ɵɵadvance();
140
- i0.ɵɵtwoWayProperty("ngModel", ctx_r10.rememberUser);
141
- i0.ɵɵproperty("p-label-off", ctx_r10.pageLoginLiterals.rememberUser)("p-label-on", ctx_r10.pageLoginLiterals.rememberUser);
140
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.rememberUser);
141
+ i0.ɵɵproperty("p-label-off", ctx_r1.pageLoginLiterals.rememberUser)("p-label-on", ctx_r1.pageLoginLiterals.rememberUser);
142
142
  i0.ɵɵadvance();
143
- i0.ɵɵproperty("ngIf", ctx_r10.pageLoginLiterals.loginHint || ctx_r10.pageLoginLiterals.rememberUserHint);
143
+ i0.ɵɵproperty("ngIf", ctx_r1.pageLoginLiterals.loginHint || ctx_r1.pageLoginLiterals.rememberUserHint);
144
144
  } }
145
145
  function PoPageLoginComponent_div_34_Template(rf, ctx) { if (rf & 1) {
146
- const _r32 = i0.ɵɵgetCurrentView();
146
+ const _r11 = i0.ɵɵgetCurrentView();
147
147
  i0.ɵɵelementStart(0, "div", 44)(1, "a", 45);
148
- i0.ɵɵlistener("click", function PoPageLoginComponent_div_34_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.openUrl(ctx_r31.recovery)); });
148
+ i0.ɵɵlistener("click", function PoPageLoginComponent_div_34_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openUrl(ctx_r1.recovery)); });
149
149
  i0.ɵɵtext(2);
150
150
  i0.ɵɵelementEnd()();
151
151
  } if (rf & 2) {
152
- const ctx_r11 = i0.ɵɵnextContext();
152
+ const ctx_r1 = i0.ɵɵnextContext();
153
153
  i0.ɵɵadvance(2);
154
- i0.ɵɵtextInterpolate(ctx_r11.pageLoginLiterals.forgotPassword);
154
+ i0.ɵɵtextInterpolate(ctx_r1.pageLoginLiterals.forgotPassword);
155
155
  } }
156
156
  function PoPageLoginComponent_div_35_Template(rf, ctx) { if (rf & 1) {
157
- const _r34 = i0.ɵɵgetCurrentView();
157
+ const _r12 = i0.ɵɵgetCurrentView();
158
158
  i0.ɵɵelementStart(0, "div", 46)(1, "a", 45);
159
- i0.ɵɵlistener("click", function PoPageLoginComponent_div_35_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.openUrl(ctx_r33.registerUrl)); });
159
+ i0.ɵɵlistener("click", function PoPageLoginComponent_div_35_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openUrl(ctx_r1.registerUrl)); });
160
160
  i0.ɵɵtext(2);
161
161
  i0.ɵɵelementEnd()();
162
162
  } if (rf & 2) {
163
- const ctx_r12 = i0.ɵɵnextContext();
163
+ const ctx_r1 = i0.ɵɵnextContext();
164
164
  i0.ɵɵadvance(2);
165
- i0.ɵɵtextInterpolate(ctx_r12.pageLoginLiterals.registerUrl);
165
+ i0.ɵɵtextInterpolate(ctx_r1.pageLoginLiterals.registerUrl);
166
166
  } }
167
167
  /**
168
168
  * @docsExtends PoPageLoginBaseComponent
@@ -378,27 +378,27 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
378
378
  let _t;
379
379
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loginForm = _t.first);
380
380
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pageLogin = _t.first);
381
- } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 36, vars: 42, consts: [[1, "po-page-login-support", 3, "hidden", "click"], ["p-icon", "ICON_HELP"], [3, "p-show-select-language", "p-languages", "p-initial-language", "p-background", "p-highlight-info", "p-logo", "p-secondary-logo", "p-selected-language"], ["pageLogin", ""], [1, "po-page-login-header"], [1, "po-page-login-header-product-name"], [1, "po-page-login-header-product-environment", "po-mb-md-4", "po-mb-sm-1"], ["p-type", "warning", 3, "p-value", 4, "ngIf"], [1, "po-page-login-header-welcome", "po-mb-md-4", "po-mb-sm-2"], [1, "po-page-login-form"], ["loginForm", "ngForm"], [1, "po-row"], [1, "po-lg-12"], [1, "po-page-login-hint", "po-page-login-info-container"], ["name", "login", "p-auto-focus", "", "p-required", "", 1, "po-page-login-info-field", 3, "ngModel", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder", "ngModelChange", "click", "keyup.enter", "p-change-model"], ["class", "po-page-login-info-icon-container", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-field-container-bottom", "po-field-container-error-container"], ["class", "po-field-container-bottom-text-error po-field-container-error-item", 4, "ngFor", "ngForOf"], [1, "po-page-login-password-container"], ["name", "password", "p-required", "", 1, "po-page-login-field-size", "po-page-login-password-item", 3, "ngModel", "p-hide-password-peek", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder", "ngModelChange", "click", "keyup.enter", "p-change-model"], ["class", "po-page-login-password-item po-page-login-password-popover-container", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldInput", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder", "ngModelChange", "keyup.enter", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldCombo", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-field-value", "p-filter-service", "p-placeholder", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldSelect", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-placeholder", "p-options", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-hint po-page-login-info-container", 4, "ngIf"], ["p-kind", "primary", 1, "po-lg-12", "po-page-login-button", "po-page-login-field-size", 3, "p-disabled", "p-label", "p-loading", "p-click"], ["class", "po-page-login-recovery-link", 4, "ngIf"], ["class", "po-page-login-register-link", 4, "ngIf"], ["p-type", "warning", 3, "p-value"], [1, "po-page-login-info-icon-container"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip", 4, "ngIf"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip"], [1, "po-field-container-bottom-text-error", "po-field-container-error-item"], ["p-icon", "ICON_EXCLAMATION"], [1, "po-field-container-error-text"], [1, "po-page-login-password-item", "po-page-login-password-popover-container"], [3, "p-literals", "p-recovery", "p-remaining-attempts", "p-forgot-password", 4, "ngIf"], [3, "p-literals", "p-recovery", "p-remaining-attempts", "p-forgot-password"], ["name", "customFieldInput", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModel", "p-error-pattern", "p-pattern", "p-placeholder", "ngModelChange", "keyup.enter"], ["name", "customFieldCombo", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModel", "p-field-value", "p-filter-service", "p-placeholder", "ngModelChange"], ["name", "customFieldSelect", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModel", "p-placeholder", "p-options", "ngModelChange"], ["name", "rememberUser", "p-label-position", "1", 1, "po-page-login-info-field", "po-lg-7", "po-offset-lg-5", "po-offset-xl-5", 3, "ngModel", "p-label-off", "p-label-on", "ngModelChange", "keyup.enter"], ["class", "po-page-login-info-icon-container po-page-login-info-icon-remember-user", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-page-login-info-icon-container", "po-page-login-info-icon-remember-user"], [1, "po-page-login-recovery-link"], [1, "po-font-text-large-bold", 3, "click"], [1, "po-page-login-register-link"]], template: function PoPageLoginComponent_Template(rf, ctx) { if (rf & 1) {
382
- const _r35 = i0.ɵɵgetCurrentView();
383
- i0.ɵɵelementStart(0, "button", 0);
384
- i0.ɵɵlistener("click", function PoPageLoginComponent_Template_button_click_0_listener() { return ctx.activateSupport(); });
385
- i0.ɵɵelement(1, "po-icon", 1);
381
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 36, vars: 42, consts: [["pageLogin", ""], ["loginForm", "ngForm"], [1, "po-page-login-support", 3, "click", "hidden"], ["p-icon", "ICON_HELP"], [3, "p-selected-language", "p-show-select-language", "p-languages", "p-initial-language", "p-background", "p-highlight-info", "p-logo", "p-secondary-logo"], [1, "po-page-login-header"], [1, "po-page-login-header-product-name"], [1, "po-page-login-header-product-environment", "po-mb-md-4", "po-mb-sm-1"], ["p-type", "warning", 3, "p-value", 4, "ngIf"], [1, "po-page-login-header-welcome", "po-mb-md-4", "po-mb-sm-2"], [1, "po-page-login-form"], [1, "po-row"], [1, "po-lg-12"], [1, "po-page-login-hint", "po-page-login-info-container"], ["name", "login", "p-auto-focus", "", "p-required", "", 1, "po-page-login-info-field", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-info-icon-container", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-field-container-bottom", "po-field-container-error-container"], ["class", "po-field-container-bottom-text-error po-field-container-error-item", 4, "ngFor", "ngForOf"], [1, "po-page-login-password-container"], ["name", "password", "p-required", "", 1, "po-page-login-field-size", "po-page-login-password-item", 3, "ngModelChange", "click", "keyup.enter", "p-change-model", "ngModel", "p-hide-password-peek", "p-label", "p-no-autocomplete", "p-pattern", "p-placeholder"], ["class", "po-page-login-password-item po-page-login-password-popover-container", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldInput", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder", "ngModelChange", "keyup.enter", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldCombo", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-field-value", "p-filter-service", "p-placeholder", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-field-size po-lg-12", "name", "customFieldSelect", "p-required", "", 3, "po-page-login-field-size-dynamic", "ngModel", "p-placeholder", "p-options", "ngModelChange", 4, "ngIf"], ["class", "po-page-login-hint po-page-login-info-container", 4, "ngIf"], ["p-kind", "primary", 1, "po-lg-12", "po-page-login-button", "po-page-login-field-size", 3, "p-click", "p-disabled", "p-label", "p-loading"], ["class", "po-page-login-recovery-link", 4, "ngIf"], ["class", "po-page-login-register-link", 4, "ngIf"], ["p-type", "warning", 3, "p-value"], [1, "po-page-login-info-icon-container"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip", 4, "ngIf"], ["p-icon", "ICON_INFO po-field-icon", "p-tooltip-position", "right", 3, "p-tooltip"], [1, "po-field-container-bottom-text-error", "po-field-container-error-item"], ["p-icon", "ICON_EXCLAMATION"], [1, "po-field-container-error-text"], [1, "po-page-login-password-item", "po-page-login-password-popover-container"], [3, "p-literals", "p-recovery", "p-remaining-attempts", "p-forgot-password", 4, "ngIf"], [3, "p-forgot-password", "p-literals", "p-recovery", "p-remaining-attempts"], ["name", "customFieldInput", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "keyup.enter", "ngModel", "p-error-pattern", "p-pattern", "p-placeholder"], ["name", "customFieldCombo", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-field-value", "p-filter-service", "p-placeholder"], ["name", "customFieldSelect", "p-required", "", 1, "po-page-login-field-size", "po-lg-12", 3, "ngModelChange", "ngModel", "p-placeholder", "p-options"], ["name", "rememberUser", "p-label-position", "1", 1, "po-page-login-info-field", "po-lg-7", "po-offset-lg-5", "po-offset-xl-5", 3, "ngModelChange", "keyup.enter", "ngModel", "p-label-off", "p-label-on"], ["class", "po-page-login-info-icon-container po-page-login-info-icon-remember-user", 3, "po-page-login-info-icon-container-dynamic", 4, "ngIf"], [1, "po-page-login-info-icon-container", "po-page-login-info-icon-remember-user"], [1, "po-page-login-recovery-link"], [1, "po-font-text-large-bold", 3, "click"], [1, "po-page-login-register-link"]], template: function PoPageLoginComponent_Template(rf, ctx) { if (rf & 1) {
382
+ const _r1 = i0.ɵɵgetCurrentView();
383
+ i0.ɵɵelementStart(0, "button", 2);
384
+ i0.ɵɵlistener("click", function PoPageLoginComponent_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.activateSupport()); });
385
+ i0.ɵɵelement(1, "po-icon", 3);
386
386
  i0.ɵɵtext(2);
387
387
  i0.ɵɵelementEnd();
388
- i0.ɵɵelementStart(3, "po-page-background", 2, 3);
389
- i0.ɵɵlistener("p-selected-language", function PoPageLoginComponent_Template_po_page_background_p_selected_language_3_listener($event) { return ctx.onSelectedLanguage($event); });
390
- i0.ɵɵelementStart(5, "header", 4)(6, "div", 5)(7, "h1");
388
+ i0.ɵɵelementStart(3, "po-page-background", 4, 0);
389
+ i0.ɵɵlistener("p-selected-language", function PoPageLoginComponent_Template_po_page_background_p_selected_language_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSelectedLanguage($event)); });
390
+ i0.ɵɵelementStart(5, "header", 5)(6, "div", 6)(7, "h1");
391
391
  i0.ɵɵtext(8);
392
392
  i0.ɵɵelementEnd()();
393
- i0.ɵɵelementStart(9, "div", 6);
394
- i0.ɵɵtemplate(10, PoPageLoginComponent_po_tag_10_Template, 1, 1, "po-tag", 7);
393
+ i0.ɵɵelementStart(9, "div", 7);
394
+ i0.ɵɵtemplate(10, PoPageLoginComponent_po_tag_10_Template, 1, 1, "po-tag", 8);
395
395
  i0.ɵɵelementEnd();
396
- i0.ɵɵelementStart(11, "div", 8);
396
+ i0.ɵɵelementStart(11, "div", 9);
397
397
  i0.ɵɵtext(12);
398
398
  i0.ɵɵelementEnd()();
399
- i0.ɵɵelementStart(13, "form", 9, 10)(15, "div", 11)(16, "div", 12)(17, "div", 13)(18, "po-login", 14);
400
- i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_Template_po_login_ngModelChange_18_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.login, $event) || (ctx.login = $event); return $event; });
401
- i0.ɵɵlistener("click", function PoPageLoginComponent_Template_po_login_click_18_listener() { return ctx.closePopover(); })("keyup.enter", function PoPageLoginComponent_Template_po_login_keyup_enter_18_listener() { i0.ɵɵrestoreView(_r35); const _r2 = i0.ɵɵreference(14); return i0.ɵɵresetView(_r2.valid && ctx.onLoginSubmit()); })("p-change-model", function PoPageLoginComponent_Template_po_login_p_change_model_18_listener() { return ctx.changeLoginModel(); });
399
+ i0.ɵɵelementStart(13, "form", 10, 1)(15, "div", 11)(16, "div", 12)(17, "div", 13)(18, "po-login", 14);
400
+ i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_Template_po_login_ngModelChange_18_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.login, $event) || (ctx.login = $event); return i0.ɵɵresetView($event); });
401
+ i0.ɵɵlistener("click", function PoPageLoginComponent_Template_po_login_click_18_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closePopover()); })("keyup.enter", function PoPageLoginComponent_Template_po_login_keyup_enter_18_listener() { i0.ɵɵrestoreView(_r1); const loginForm_r3 = i0.ɵɵreference(14); return i0.ɵɵresetView(loginForm_r3.valid && ctx.onLoginSubmit()); })("p-change-model", function PoPageLoginComponent_Template_po_login_p_change_model_18_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changeLoginModel()); });
402
402
  i0.ɵɵelementEnd();
403
403
  i0.ɵɵtemplate(19, PoPageLoginComponent_div_19_Template, 2, 3, "div", 15);
404
404
  i0.ɵɵelementEnd();
@@ -406,8 +406,8 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
406
406
  i0.ɵɵtemplate(21, PoPageLoginComponent_div_21_Template, 4, 1, "div", 17);
407
407
  i0.ɵɵelementEnd()();
408
408
  i0.ɵɵelementStart(22, "div", 12)(23, "div", 18)(24, "po-password", 19);
409
- i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_Template_po_password_ngModelChange_24_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.password, $event) || (ctx.password = $event); return $event; });
410
- i0.ɵɵlistener("click", function PoPageLoginComponent_Template_po_password_click_24_listener() { return ctx.closePopover(); })("keyup.enter", function PoPageLoginComponent_Template_po_password_keyup_enter_24_listener() { i0.ɵɵrestoreView(_r35); const _r2 = i0.ɵɵreference(14); return i0.ɵɵresetView(_r2.valid && ctx.onLoginSubmit()); })("p-change-model", function PoPageLoginComponent_Template_po_password_p_change_model_24_listener() { return ctx.changePasswordModel(); });
409
+ i0.ɵɵtwoWayListener("ngModelChange", function PoPageLoginComponent_Template_po_password_ngModelChange_24_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.password, $event) || (ctx.password = $event); return i0.ɵɵresetView($event); });
410
+ i0.ɵɵlistener("click", function PoPageLoginComponent_Template_po_password_click_24_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closePopover()); })("keyup.enter", function PoPageLoginComponent_Template_po_password_keyup_enter_24_listener() { i0.ɵɵrestoreView(_r1); const loginForm_r3 = i0.ɵɵreference(14); return i0.ɵɵresetView(loginForm_r3.valid && ctx.onLoginSubmit()); })("p-change-model", function PoPageLoginComponent_Template_po_password_p_change_model_24_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.changePasswordModel()); });
411
411
  i0.ɵɵelementEnd();
412
412
  i0.ɵɵtemplate(25, PoPageLoginComponent_div_25_Template, 2, 1, "div", 20);
413
413
  i0.ɵɵelementEnd();
@@ -419,12 +419,12 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
419
419
  i0.ɵɵtemplate(32, PoPageLoginComponent_div_32_Template, 3, 4, "div", 24);
420
420
  i0.ɵɵelementEnd();
421
421
  i0.ɵɵelementStart(33, "po-button", 25);
422
- i0.ɵɵlistener("p-click", function PoPageLoginComponent_Template_po_button_p_click_33_listener() { return ctx.onLoginSubmit(); });
422
+ i0.ɵɵlistener("p-click", function PoPageLoginComponent_Template_po_button_p_click_33_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onLoginSubmit()); });
423
423
  i0.ɵɵelementEnd();
424
424
  i0.ɵɵtemplate(34, PoPageLoginComponent_div_34_Template, 3, 1, "div", 26)(35, PoPageLoginComponent_div_35_Template, 3, 1, "div", 27);
425
425
  i0.ɵɵelementEnd()()();
426
426
  } if (rf & 2) {
427
- const _r2 = i0.ɵɵreference(14);
427
+ const loginForm_r3 = i0.ɵɵreference(14);
428
428
  i0.ɵɵproperty("hidden", !ctx.support);
429
429
  i0.ɵɵadvance(2);
430
430
  i0.ɵɵtextInterpolate1(" ", ctx.pageLoginLiterals == null ? null : ctx.pageLoginLiterals.support, "\n");
@@ -462,7 +462,7 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
462
462
  i0.ɵɵproperty("ngIf", !ctx.hideRememberUser);
463
463
  i0.ɵɵadvance();
464
464
  i0.ɵɵclassProp("po-page-login-button-dynamic", !ctx.pageLoginLiterals.loginHint && !ctx.pageLoginLiterals.rememberUserHint);
465
- i0.ɵɵproperty("p-disabled", _r2.invalid)("p-label", ctx.loading ? ctx.pageLoginLiterals.submittedLabel : ctx.pageLoginLiterals.submitLabel)("p-loading", ctx.loading);
465
+ i0.ɵɵproperty("p-disabled", loginForm_r3.invalid)("p-label", ctx.loading ? ctx.pageLoginLiterals.submittedLabel : ctx.pageLoginLiterals.submitLabel)("p-loading", ctx.loading);
466
466
  i0.ɵɵadvance();
467
467
  i0.ɵɵproperty("ngIf", ctx.recovery);
468
468
  i0.ɵɵadvance();
@@ -480,4 +480,4 @@ export class PoPageLoginComponent extends PoPageLoginBaseComponent {
480
480
  args: ['pageLogin', { read: ViewContainerRef, static: true }]
481
481
  }] }); })();
482
482
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoPageLoginComponent, { className: "PoPageLoginComponent", filePath: "lib/components/po-page-login/po-page-login.component.ts", lineNumber: 60 }); })();
483
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtbG9naW4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtbG9naW4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFHTCxTQUFTLEVBSVQsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDdEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDdkgsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzNCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7OztJQ0ZsQyw2QkFBK0U7OztJQUFsQyw0Q0FBdUI7OztJQW1DOUQsOEJBTVU7OztJQUZSLCtEQUF5Qzs7O0lBWDdDLCtCQU1DO0lBQ0MscUZBTVU7SUFDWixpQkFBTTs7O0lBWEosOElBRUM7SUFJRSxjQUFpQztJQUFqQyx5REFBaUM7OztJQVN0QywrQkFHQztJQUNDLDhCQUE2QztJQUM3QyxnQ0FBNEM7SUFBQSxZQUFXO0lBQUEsaUJBQU8sRUFBQTs7O0lBQWxCLGVBQVc7SUFBWCwrQkFBVzs7OztJQTZCdkQsaURBTUM7SUFEQywwT0FBcUIsZUFBQSx1QkFBZSxDQUFBLElBQUM7SUFFdkMsaUJB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LElBQUksRUFBRTs7a0ZBRnJELG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEl0ZXJhYmxlRGlmZmVycyxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBvTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBpc0V4dGVybmFsTGluayB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9Db21wb25lbnRJbmplY3RvclNlcnZpY2UgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkuY29tcG9uZW50JztcbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZSB9IGZyb20gJy4uL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5L2VudW1zL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXR5cGUuZW51bSc7XG5pbXBvcnQge1xuICBQb1BhZ2VMb2dpbkJhc2VDb21wb25lbnQsXG4gIHBvUGFnZUxvZ2luTGl0ZXJhbEluLFxuICBwb1BhZ2VMb2dpbkxpdGVyYWxzRGVmYXVsdFxufSBmcm9tICcuL3BvLXBhZ2UtbG9naW4tYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5SZWNvdmVyeSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWxvZ2luLXJlY292ZXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1BhZ2VMb2dpblNlcnZpY2UgfSBmcm9tICcuL3BvLXBhZ2UtbG9naW4uc2VydmljZSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvUGFnZUxvZ2luQmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtbG9naW4tYmFzaWNcIiB0aXRsZT1cIlBPIFBhZ2UgTG9naW4gQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4tYmFzaWMvc2FtcGxlLXBvLXBhZ2UtbG9naW4tYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1iYXNpYy9zYW1wbGUtcG8tcGFnZS1sb2dpbi1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWxvZ2luLWxhYnNcIiB0aXRsZT1cIlBPIFBhZ2UgTG9naW4gTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1sYWJzL3NhbXBsZS1wby1wYWdlLWxvZ2luLWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1sYWJzL3NhbXBsZS1wby1wYWdlLWxvZ2luLWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXNcIiB0aXRsZT1cIlBPIFBhZ2UgTG9naW4gLSBIdW1hbiBSZXNvdXJjZXNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzL3NhbXBsZS1wby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlcy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlcy9zYW1wbGUtcG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzL3NhbXBsZS1wby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlcy5tb2R1bGUudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWxvZ2luLWF1dG9tYXRpYy1zZXJ2aWNlXCIgdGl0bGU9XCJQTyBQYWdlIExvZ2luIC0gQXV0b21hdGljIFNlcnZpY2VcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4tYXV0b21hdGljLXNlcnZpY2Uvc2FtcGxlLXBvLXBhZ2UtbG9naW4tYXV0b21hdGljLXNlcnZpY2UuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1hdXRvbWF0aWMtc2VydmljZS9zYW1wbGUtcG8tcGFnZS1sb2dpbi1hdXRvbWF0aWMtc2VydmljZS5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BvLXBhZ2UtbG9naW4nLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9QYWdlTG9naW5Db21wb25lbnQgZXh0ZW5kcyBQb1BhZ2VMb2dpbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkluaXQge1xuICBAVmlld0NoaWxkKCdsb2dpbkZvcm0nLCB7IHJlYWQ6IE5nRm9ybSwgc3RhdGljOiB0cnVlIH0pIGxvZ2luRm9ybTogTmdGb3JtO1xuICBAVmlld0NoaWxkKCdwYWdlTG9naW4nLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwYWdlTG9naW46IFZpZXdDb250YWluZXJSZWY7XG5cbiAgaW5pdGlhbFNlbGVjdExhbmd1YWdlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gbnVsbDtcbiAgcHJpdmF0ZSBkaWZmZXI6IGFueTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21QYXNzd29yZEVycm9yID0geyBjdXN0b206IGZhbHNlIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHBvQ29tcG9uZW50SW5qZWN0b3I6IFBvQ29tcG9uZW50SW5qZWN0b3JTZXJ2aWNlLFxuICAgIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICBsb2dpblNlcnZpY2U6IFBvUGFnZUxvZ2luU2VydmljZSxcbiAgICByb3V0ZXI6IFJvdXRlcixcbiAgICBwb0xhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIobG9naW5TZXJ2aWNlLCByb3V0ZXIsIHBvTGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgICB0aGlzLmRpZmZlciA9IGRpZmZlcnMuZmluZChbXSkuY3JlYXRlKG51bGwpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIGlmICh0aGlzLmRpZmZlcikge1xuICAgICAgdGhpcy52YWxpZGF0ZUFycmF5Q2hhbmdlcyh0aGlzLmRpZmZlciwgW1xuICAgICAgICB7IGFycmF5OiB0aGlzLmxvZ2luRXJyb3JzLCBjYWxsYmFjazogdGhpcy5nZW5lcmF0ZUxvZ2luRXJyb3IuYmluZCh0aGlzKSB9LFxuICAgICAgICB7IGFycmF5OiB0aGlzLnBhc3N3b3JkRXJyb3JzLCBjYWxsYmFjazogdGhpcy5nZW5lcmF0ZVBhc3N3b3JkRXJyb3IuYmluZCh0aGlzKSB9XG4gICAgICBdKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNoZWNraW5nRm9yUm91dGVNZXRhZGF0YSh0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LmRhdGEpO1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IHRoaXMuaW5pdGlhbGl6ZUxhbmd1YWdlKCk7XG4gICAgdGhpcy5pbml0aWFsU2VsZWN0TGFuZ3VhZ2UgPSB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2U7XG4gIH1cblxuICBhY3RpdmF0ZVN1cHBvcnQoKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgdGhpcy5zdXBwb3J0KSB7XG4gICAgICBjYXNlICdzdHJpbmcnOiB7XG4gICAgICAgIHRoaXMuc2V0VXJsUmVkaXJlY3QodGhpcy5zdXBwb3J0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdmdW5jdGlvbic6IHtcbiAgICAgICAgdGhpcy5zdXBwb3J0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZUxvZ2luTW9kZWwoKSB7XG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMubG9naW5FcnJvcnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRMb2dpbkVycm9ycyh0aGlzLmxvZ2luRXJyb3JzKTtcbiAgICAgIHRoaXMubG9naW5DaGFuZ2UuZW1pdCh0aGlzLmxvZ2luKTtcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VQYXNzd29yZE1vZGVsKCkge1xuICAgIGlmICh0aGlzLmF1dGhlbnRpY2F0aW9uVXJsKSB7XG4gICAgICB0aGlzLnBhc3N3b3JkRXJyb3JzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0UGFzc3dvcmRFcnJvcnModGhpcy5wYXNzd29yZEVycm9ycyk7XG4gICAgICB0aGlzLnBhc3N3b3JkQ2hhbmdlLmVtaXQodGhpcy5wYXNzd29yZCk7XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3RlZExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlLmVtaXQodGhpcy5sYW5ndWFnZXNMaXN0LmZpbmQobGFuZ3VhZ2VJdGVtID0+IGxhbmd1YWdlSXRlbS5sYW5ndWFnZSA9PT0gbGFuZ3VhZ2UpKTtcbiAgICB0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgfVxuXG4gIG9wZW5VcmwocmVjb3Zlcnk6IGFueSk6IHZvaWQge1xuICAgIHN3aXRjaCAodHlwZW9mIHJlY292ZXJ5KSB7XG4gICAgICBjYXNlICdzdHJpbmcnOiB7XG4gICAgICAgIHRoaXMuc2V0VXJsUmVkaXJlY3QocmVjb3ZlcnkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzoge1xuICAgICAgICByZWNvdmVyeSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ29iamVjdCc6IHtcbiAgICAgICAgdGhpcy5jcmVhdGVNb2RhbFBhc3N3b3JkUmVjb3ZlcnlDb21wb25lbnQocmVjb3ZlcnkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uY2F0ZW5hdGVMb2dpbkhpbnRXaXRoQ29udGFjdEVtYWlsKGNvbnRhY3RFbWFpbDogc3RyaW5nKSB7XG4gICAgY29uc3QgZGVmYXVsdExvZ2luSGludExpdGVyYWwgPSBwb1BhZ2VMb2dpbkxpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXS5sb2dpbkhpbnQ7XG4gICAgY29uc3QgcHJlcG9zaXRpb25MaXRlcmFsID0gcG9QYWdlTG9naW5MaXRlcmFsSW5bdGhpcy5sYW5ndWFnZV07XG5cbiAgICByZXR1cm4gdGhpcy5jb25jYXRlbmF0ZUxpdGVyYWwoY29udGFjdEVtYWlsLCAnbG9naW5IaW50JywgZGVmYXVsdExvZ2luSGludExpdGVyYWwsIHByZXBvc2l0aW9uTGl0ZXJhbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TG9naW5FcnJvcnMoZXJyb3JzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMubG9naW5Gb3JtLmZvcm0uY29udHJvbHNbJ2xvZ2luJ107XG4gICAgdGhpcy5zZXRDb250cm9sRXJyb3JzKCdhbGxMb2dpbkVycm9ycycsIGNvbnRyb2wsIGVycm9ycywgdGhpcy5wYWdlTG9naW5MaXRlcmFscy5sb2dpbkVycm9yUGF0dGVybik7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UGFzc3dvcmRFcnJvcnMoZXJyb3JzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMubG9naW5Gb3JtLmZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ107XG4gICAgdGhpcy5zZXRDb250cm9sRXJyb3JzKCdhbGxQYXNzd29yZEVycm9ycycsIGNvbnRyb2wsIGVycm9ycywgdGhpcy5wYWdlTG9naW5MaXRlcmFscy5wYXNzd29yZEVycm9yUGF0dGVybik7XG4gIH1cblxuICBwcml2YXRlIGNoZWNraW5nRm9yTWV0YWRhdGFQcm9wZXJ0eShvYmplY3QsIHByb3BlcnR5KSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KSkge1xuICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eV07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja2luZ0ZvclJvdXRlTWV0YWRhdGEoZGF0YSkge1xuICAgIGlmIChPYmplY3Qua2V5cyhkYXRhKS5sZW5ndGggIT09IDApIHtcbiAgICAgIHRoaXMuYXV0aGVudGljYXRpb25VcmwgPSB0aGlzLmNoZWNraW5nRm9yTWV0YWRhdGFQcm9wZXJ0eShkYXRhLCAnc2VydmljZUFwaScpIHx8IHRoaXMuYXV0aGVudGljYXRpb25Vcmw7XG4gICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uVHlwZSA9IHRoaXMuY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KGRhdGEsICdhdXRoZW50aWNhdGlvblR5cGUnKSB8fCB0aGlzLmF1dGhlbnRpY2F0aW9uVHlwZTtcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSB0aGlzLmNoZWNraW5nRm9yTWV0YWRhdGFQcm9wZXJ0eShkYXRhLCAnZW52aXJvbm1lbnQnKSB8fCB0aGlzLmVudmlyb25tZW50O1xuICAgICAgdGhpcy5yZWNvdmVyeSA9IHRoaXMuY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KGRhdGEsICdyZWNvdmVyeScpIHx8IHRoaXMucmVjb3Zlcnk7XG4gICAgICB0aGlzLnJlZ2lzdGVyVXJsID0gdGhpcy5jaGVja2luZ0Zvck1ldGFkYXRhUHJvcGVydHkoZGF0YSwgJ3JlZ2lzdGVyVXJsJykgfHwgdGhpcy5yZWdpc3RlclVybDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbmNhdGVuYXRlKGRlZmF1bHRMaXRlcmFsOiBzdHJpbmcsIHByZWZpeExpdGVyYWw6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiBgJHtkZWZhdWx0TGl0ZXJhbH0gJHtwcmVmaXhMaXRlcmFsfSAke3ZhbHVlfWA7XG4gIH1cblxuICBwcml2YXRlIGNvbmNhdGVuYXRlTGl0ZXJhbCh2YWx1ZTogc3RyaW5nLCBsaXRlcmFsOiBzdHJpbmcsIGRlZmF1bHRMaXRlcmFsOiBzdHJpbmcsIHByZXBvc2l0aW9uTGl0ZXJhbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHsgW2xpdGVyYWxdOiB0aGlzLmNvbmNhdGVuYXRlKGRlZmF1bHRMaXRlcmFsLCBwcmVwb3NpdGlvbkxpdGVyYWwsIHZhbHVlKSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVNb2RhbFBhc3N3b3JkUmVjb3ZlcnlDb21wb25lbnQocG9QYWdlTG9naW5SZWNvdmVyeTogUG9QYWdlTG9naW5SZWNvdmVyeSkge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5wb0NvbXBvbmVudEluamVjdG9yLmRlc3Ryb3lDb21wb25lbnRJbkFwcGxpY2F0aW9uKHRoaXMuY29tcG9uZW50UmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMucG9Db21wb25lbnRJbmplY3Rvci5jcmVhdGVDb21wb25lbnRJbkFwcGxpY2F0aW9uKFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5Q29tcG9uZW50KTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS51cmxSZWNvdmVyeSA9IHBvUGFnZUxvZ2luUmVjb3ZlcnkudXJsO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRhY3RFbWFpbCA9IHBvUGFnZUxvZ2luUmVjb3ZlcnkuY29udGFjdE1haWw7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UucGhvbmVNYXNrID0gcG9QYWdlTG9naW5SZWNvdmVyeS5waG9uZU1hc2s7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudHlwZSA9IHBvUGFnZUxvZ2luUmVjb3ZlcnkudHlwZSB8fCBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWw7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2Uub3BlbigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUxvZ2luRXJyb3IoKSB7XG4gICAgaWYgKHRoaXMubG9naW5FcnJvcnMgJiYgdGhpcy5sb2dpbkVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2V0TG9naW5FcnJvcnModGhpcy5sb2dpbkVycm9ycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmxvZ2luRm9ybS5mb3JtLmNvbnRyb2xzWydsb2dpbiddO1xuICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5yZXNldENvbnRyb2woY29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVBhc3N3b3JkRXJyb3IoKSB7XG4gICAgaWYgKHRoaXMucGFzc3dvcmRFcnJvcnMgJiYgdGhpcy5wYXNzd29yZEVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2V0UGFzc3dvcmRFcnJvcnModGhpcy5wYXNzd29yZEVycm9ycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmxvZ2luRm9ybS5mb3JtLmNvbnRyb2xzWydwYXNzd29yZCddO1xuXG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICB0aGlzLnJlc2V0Q29udHJvbChjb250cm9sKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Q29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBjb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgY29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29udHJvbEVycm9ycyhhbGxFcnJvcnM6IHN0cmluZywgY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBlcnJvcnM6IEFycmF5PHN0cmluZz4sIHBhdHRlcm5FcnJvcjogc3RyaW5nKSB7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHRoaXNbYWxsRXJyb3JzXSA9IGNvbnRyb2wuaGFzRXJyb3IoJ3BhdHRlcm4nKSA/IFsuLi5lcnJvcnMsIC4uLltwYXR0ZXJuRXJyb3JdXSA6IFsuLi5lcnJvcnNdO1xuXG4gICAgICBpZiAoZXJyb3JzICYmIGVycm9ycy5sZW5ndGggJiYgKGNvbnRyb2wudmFsaWQgfHwgY29udHJvbC5wcmlzdGluZSkpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnModGhpcy5jdXN0b21QYXNzd29yZEVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFVybFJlZGlyZWN0KHVybCkge1xuICAgIGlzRXh0ZXJuYWxMaW5rKHVybCkgPyB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKSA6IHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVBcnJheUNoYW5nZXMoZGlmZmVyOiBhbnksIGFycmF5OiBBcnJheTx7IGFycmF5OiBBcnJheTxhbnk+OyBjYWxsYmFjazogYW55IH0+KSB7XG4gICAgYXJyYXkuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSBkaWZmZXIuZGlmZihlbGVtZW50LmFycmF5KTtcbiAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgIGVsZW1lbnQuY2FsbGJhY2soKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVMYW5ndWFnZSgpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2VzTGlzdC5maW5kKGxhbmd1YWdlSXRlbSA9PiBsYW5ndWFnZUl0ZW0ubGFuZ3VhZ2UgPT09IHRoaXMubGFuZ3VhZ2UpO1xuICAgIHJldHVybiBsYW5ndWFnZT8ubGFuZ3VhZ2UgfHwgdGhpcy5sYW5ndWFnZXNMaXN0WzBdLmxhbmd1YWdlO1xuICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1zdXBwb3J0XCIgKGNsaWNrKT1cImFjdGl2YXRlU3VwcG9ydCgpXCIgW2hpZGRlbl09XCIhc3VwcG9ydFwiPlxuICA8cG8taWNvbiBwLWljb249XCJJQ09OX0hFTFBcIj48L3BvLWljb24+XG4gIHt7IHBhZ2VMb2dpbkxpdGVyYWxzPy5zdXBwb3J0IH19XG48L2J1dHRvbj5cblxuPHBvLXBhZ2UtYmFja2dyb3VuZFxuICAjcGFnZUxvZ2luXG4gIFtwLXNob3ctc2VsZWN0LWxhbmd1YWdlXT1cInNob3dMYW5ndWFnZVwiXG4gIFtwLWxhbmd1YWdlc109XCJsYW5ndWFnZXNMaXN0XCJcbiAgW3AtaW5pdGlhbC1sYW5ndWFnZV09XCJpbml0aWFsU2VsZWN0TGFuZ3VhZ2VcIlxuICBbcC1iYWNrZ3JvdW5kXT1cImJhY2tncm91bmRcIlxuICBbcC1oaWdobGlnaHQtaW5mb109XCJwYWdlTG9naW5MaXRlcmFscy5oaWdobGlnaHRJbmZvXCJcbiAgW3AtbG9nb109XCJsb2dvXCJcbiAgW3Atc2Vjb25kYXJ5LWxvZ29dPVwic2Vjb25kYXJ5TG9nb1wiXG4gIChwLXNlbGVjdGVkLWxhbmd1YWdlKT1cIm9uU2VsZWN0ZWRMYW5ndWFnZSgkZXZlbnQpXCJcbj5cbiAgPGhlYWRlciBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGVhZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGVhZGVyLXByb2R1Y3QtbmFtZVwiPlxuICAgICAgPGgxPnt7IHByb2R1Y3ROYW1lIH19PC9oMT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWhlYWRlci1wcm9kdWN0LWVudmlyb25tZW50IHBvLW1iLW1kLTQgcG8tbWItc20tMVwiPlxuICAgICAgPHBvLXRhZyAqbmdJZj1cImVudmlyb25tZW50XCIgcC10eXBlPVwid2FybmluZ1wiIFtwLXZhbHVlXT1cImVudmlyb25tZW50XCI+IDwvcG8tdGFnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWhlYWRlci13ZWxjb21lIHBvLW1iLW1kLTQgcG8tbWItc20tMlwiPnt7IHBhZ2VMb2dpbkxpdGVyYWxzLndlbGNvbWUgfX08L2Rpdj5cbiAgPC9oZWFkZXI+XG5cbiAgPGZvcm0gI2xvZ2luRm9ybT1cIm5nRm9ybVwiIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1mb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvLWxnLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWhpbnQgcG8tcGFnZS1sb2dpbi1pbmZvLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxwby1sb2dpblxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWluZm8tZmllbGRcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4taW5mby1maWVsZC1keW5hbWljXT1cIlxuICAgICAgICAgICAgICAhcGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50ICYmICFwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgbmFtZT1cImxvZ2luXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9naW5cIlxuICAgICAgICAgICAgcC1hdXRvLWZvY3VzXG4gICAgICAgICAgICBwLXJlcXVpcmVkXG4gICAgICAgICAgICBbcC1sYWJlbF09XCJwYWdlTG9naW5MaXRlcmFscy5sb2dpbkxhYmVsXCJcbiAgICAgICAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJub0F1dG9jb21wbGV0ZUxvZ2luXCJcbiAgICAgICAgICAgIFtwLXBhdHRlcm5dPVwibG9naW5QYXR0ZXJuXCJcbiAgICAgICAgICAgIFtwLXBsYWNlaG9sZGVyXT1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJsb2dpbkZvcm0udmFsaWQgJiYgb25Mb2dpblN1Ym1pdCgpXCJcbiAgICAgICAgICAgIChwLWNoYW5nZS1tb2RlbCk9XCJjaGFuZ2VMb2dpbk1vZGVsKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3BvLWxvZ2luPlxuXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgfHwgcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFwiXG4gICAgICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4taW5mby1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1pbmZvLWljb24tY29udGFpbmVyLWR5bmFtaWNdPVwiXG4gICAgICAgICAgICAgICFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBvLWljb25cbiAgICAgICAgICAgICAgcC1pY29uPVwiSUNPTl9JTkZPIHBvLWZpZWxkLWljb25cIlxuICAgICAgICAgICAgICAqbmdJZj1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludFwiXG4gICAgICAgICAgICAgIHAtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgW3AtdG9vbHRpcF09XCJwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBwby1maWVsZC1jb250YWluZXItZXJyb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVycm9yIG9mIGFsbExvZ2luRXJyb3JzXCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWJvdHRvbS10ZXh0LWVycm9yIHBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci1pdGVtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cG8taWNvbiBwLWljb249XCJJQ09OX0VYQ0xBTUFUSU9OXCI+PC9wby1pY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItZXJyb3ItdGV4dFwiPnt7IGVycm9yIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbGctMTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcGFzc3dvcmQtY29udGFpbmVyXCI+XG4gICAgICAgICAgPHBvLXBhc3N3b3JkXG4gICAgICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZSBwby1wYWdlLWxvZ2luLXBhc3N3b3JkLWl0ZW1cIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZS1keW5hbWljXT1cIlxuICAgICAgICAgICAgICAhcGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50ICYmICFwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgcC1yZXF1aXJlZFxuICAgICAgICAgICAgW3AtaGlkZS1wYXNzd29yZC1wZWVrXT1cImhpZGVQYXNzd29yZFBlZWtcIlxuICAgICAgICAgICAgW3AtbGFiZWxdPVwicGFnZUxvZ2luTGl0ZXJhbHMucGFzc3dvcmRMYWJlbFwiXG4gICAgICAgICAgICBbcC1uby1hdXRvY29tcGxldGVdPVwibm9BdXRvY29tcGxldGVQYXNzd29yZFwiXG4gICAgICAgICAgICBbcC1wYXR0ZXJuXT1cInBhc3N3b3JkUGF0dGVyblwiXG4gICAgICAgICAgICBbcC1wbGFjZWhvbGRlcl09XCJwYWdlTG9naW5MaXRlcmFscy5wYXNzd29yZFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVBvcG92ZXIoKVwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwibG9naW5Gb3JtLnZhbGlkICYmIG9uTG9naW5TdWJtaXQoKVwiXG4gICAgICAgICAgICAocC1jaGFuZ2UtbW9kZWwpPVwiY2hhbmdlUGFzc3dvcmRNb2RlbCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wby1wYXNzd29yZD5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCB8fCBwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1wYXNzd29yZC1pdGVtIHBvLXBhZ2UtbG9naW4tcGFzc3dvcmQtcG9wb3Zlci1jb250YWluZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwby1wYWdlLWxvZ2luLXBvcG92ZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RXhjZWVkZWRBdHRlbXB0c1dhcm5pbmcgJiYgZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmdcIlxuICAgICAgICAgICAgICBbcC1saXRlcmFsc109XCJwYWdlTG9naW5MaXRlcmFsc1wiXG4gICAgICAgICAgICAgIFtwLXJlY292ZXJ5XT1cInJlY292ZXJ5XCJcbiAgICAgICAgICAgICAgW3AtcmVtYWluaW5nLWF0dGVtcHRzXT1cImV4Y2VlZGVkQXR0ZW1wdHNXYXJuaW5nXCJcbiAgICAgICAgICAgICAgKHAtZm9yZ290LXBhc3N3b3JkKT1cIm9wZW5VcmwoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3BvLXBhZ2UtbG9naW4tcG9wb3Zlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tIHBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgYWxsUGFzc3dvcmRFcnJvcnNcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tLXRleHQtZXJyb3IgcG8tZmllbGQtY29udGFpbmVyLWVycm9yLWl0ZW1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwby1pY29uIHAtaWNvbj1cIklDT05fRVhDTEFNQVRJT05cIj48L3BvLWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci10ZXh0XCI+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxwby1pbnB1dFxuICAgICAgICAqbmdJZj1cImN1c3RvbUZpZWxkICYmIGN1c3RvbUZpZWxkVHlwZSA9PT0gJ2lucHV0J1wiXG4gICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWZpZWxkLXNpemUtZHluYW1pY109XCIhcGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50ICYmICFwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWZpZWxkLXNpemUgcG8tbGctMTJcIlxuICAgICAgICBuYW1lPVwiY3VzdG9tRmllbGRJbnB1dFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tRmllbGRPYmplY3QudmFsdWVcIlxuICAgICAgICBwLXJlcXVpcmVkXG4gICAgICAgIFtwLWVycm9yLXBhdHRlcm5dPVwiY3VzdG9tRmllbGRPYmplY3QuZXJyb3JQYXR0ZXJuIHx8IHBhZ2VMb2dpbkxpdGVyYWxzLmN1c3RvbUZpZWxkRXJyb3JQYXR0ZXJuXCJcbiAgICAgICAgW3AtcGF0dGVybl09XCJjdXN0b21GaWVsZE9iamVjdC5wYXR0ZXJuXCJcbiAgICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiY3VzdG9tRmllbGRPYmplY3QucGxhY2Vob2xkZXIgfHwgcGFnZUxvZ2luTGl0ZXJhbHMuY3VzdG9tRmllbGRQbGFjZWhvbGRlclwiXG4gICAgICAgIChrZXl1cC5lbnRlcik9XCJsb2dpbkZvcm0udmFsaWQgJiYgb25Mb2dpblN1Ym1pdCgpXCJcbiAgICAgID5cbiAgICAgIDwvcG8taW5wdXQ+XG5cbiAgICAgIDxwby1jb21ib1xuICAgICAgICAqbmdJZj1cImN1c3RvbUZpZWxkICYmIGN1c3RvbUZpZWxkVHlwZSA9PT0gJ2NvbWJvJ1wiXG4gICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWZpZWxkLXNpemUtZHluYW1pY109XCIhcGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50ICYmICFwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWZpZWxkLXNpemUgcG8tbGctMTJcIlxuICAgICAgICBuYW1lPVwiY3VzdG9tRmllbGRDb21ib1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tRmllbGRPYmplY3QudmFsdWVcIlxuICAgICAgICBwLXJlcXVpcmVkXG4gICAgICAgIFtwLWZpZWxkLXZhbHVlXT1cImN1c3RvbUZpZWxkT2JqZWN0LmZpZWxkVmFsdWVcIlxuICAgICAgICBbcC1maWx0ZXItc2VydmljZV09XCJjdXN0b21GaWVsZE9iamVjdC51cmxcIlxuICAgICAgICBbcC1wbGFjZWhvbGRlcl09XCJjdXN0b21GaWVsZE9iamVjdC5wbGFjZWhvbGRlciB8fCBwYWdlTG9naW5MaXRlcmFscy5jdXN0b21GaWVsZFBsYWNlaG9sZGVyXCJcbiAgICAgID5cbiAgICAgIDwvcG8tY29tYm8+XG5cbiAgICAgIDxwby1zZWxlY3RcbiAgICAgICAgKm5nSWY9XCJjdXN0b21GaWVsZCAmJiBjdXN0b21GaWVsZFR5cGUgPT09ICdzZWxlY3QnXCJcbiAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZS1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZSBwby1sZy0xMlwiXG4gICAgICAgIG5hbWU9XCJjdXN0b21GaWVsZFNlbGVjdFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tRmllbGRPYmplY3QudmFsdWVcIlxuICAgICAgICBwLXJlcXVpcmVkXG4gICAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImN1c3RvbUZpZWxkT2JqZWN0LnBsYWNlaG9sZGVyIHx8IHBhZ2VMb2dpbkxpdGVyYWxzLmN1c3RvbUZpZWxkUGxhY2Vob2xkZXJcIlxuICAgICAgICBbcC1vcHRpb25zXT1cImN1c3RvbUZpZWxkT2JqZWN0Lm9wdGlvbnNcIlxuICAgICAgPlxuICAgICAgPC9wby1zZWxlY3Q+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1sZy0xMlwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWhpZGVSZW1lbWJlclVzZXJcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGludCBwby1wYWdlLWxvZ2luLWluZm8tY29udGFpbmVyXCI+XG4gICAgICAgICAgPHBvLXN3aXRjaFxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWluZm8tZmllbGQgcG8tbGctNyBwby1vZmZzZXQtbGctNSBwby1vZmZzZXQteGwtNVwiXG4gICAgICAgICAgICBuYW1lPVwicmVtZW1iZXJVc2VyXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVtZW1iZXJVc2VyXCJcbiAgICAgICAgICAgIHAtbGFiZWwtcG9zaXRpb249XCIxXCJcbiAgICAgICAgICAgIFtwLWxhYmVsLW9mZl09XCJwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJcIlxuICAgICAgICAgICAgW3AtbGFiZWwtb25dPVwicGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VyXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJsb2dpbkZvcm0udmFsaWQgJiYgb25Mb2dpblN1Ym1pdCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wby1zd2l0Y2g+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCB8fCBwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1pbmZvLWljb24tY29udGFpbmVyIHBvLXBhZ2UtbG9naW4taW5mby1pY29uLXJlbWVtYmVyLXVzZXJcIlxuICAgICAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4taW5mby1pY29uLWNvbnRhaW5lci1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cG8taWNvblxuICAgICAgICAgICAgICBwLWljb249XCJJQ09OX0lORk8gcG8tZmllbGQtaWNvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFwiXG4gICAgICAgICAgICAgIHAtdG9vbHRpcC1wb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgW3AtdG9vbHRpcF09XCJwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHBvLWJ1dHRvblxuICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1idXR0b24tZHluYW1pY109XCIhcGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50ICYmICFwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgY2xhc3M9XCJwby1sZy0xMiBwby1wYWdlLWxvZ2luLWJ1dHRvbiBwby1wYWdlLWxvZ2luLWZpZWxkLXNpemVcIlxuICAgICAgICBwLWtpbmQ9XCJwcmltYXJ5XCJcbiAgICAgICAgW3AtZGlzYWJsZWRdPVwibG9naW5Gb3JtLmludmFsaWRcIlxuICAgICAgICBbcC1sYWJlbF09XCJsb2FkaW5nID8gcGFnZUxvZ2luTGl0ZXJhbHMuc3VibWl0dGVkTGFiZWwgOiBwYWdlTG9naW5MaXRlcmFscy5zdWJtaXRMYWJlbFwiXG4gICAgICAgIFtwLWxvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgICAgIChwLWNsaWNrKT1cIm9uTG9naW5TdWJtaXQoKVwiXG4gICAgICA+XG4gICAgICA8L3BvLWJ1dHRvbj5cblxuICAgICAgPGRpdiAqbmdJZj1cInJlY292ZXJ5XCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXJlY292ZXJ5LWxpbmtcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwby1mb250LXRleHQtbGFyZ2UtYm9sZFwiIChjbGljayk9XCJvcGVuVXJsKHJlY292ZXJ5KVwiPnt7IHBhZ2VMb2dpbkxpdGVyYWxzLmZvcmdvdFBhc3N3b3JkIH19PC9hPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJyZWdpc3RlclVybFwiIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1yZWdpc3Rlci1saW5rXCI+XG4gICAgICAgIDxhIGNsYXNzPVwicG8tZm9udC10ZXh0LWxhcmdlLWJvbGRcIiAoY2xpY2spPVwib3BlblVybChyZWdpc3RlclVybClcIj57eyBwYWdlTG9naW5MaXRlcmFscy5yZWdpc3RlclVybCB9fTwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L3BvLXBhZ2UtYmFja2dyb3VuZD5cbiJdfQ==
483
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtbG9naW4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtbG9naW4vcG8tcGFnZS1sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFHTCxTQUFTLEVBSVQsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDdEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDdkgsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzNCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7OztJQ0ZsQyw2QkFBK0U7OztJQUFsQyw0Q0FBdUI7OztJQW1DOUQsOEJBTVU7OztJQUZSLDhEQUF5Qzs7O0lBWDdDLCtCQU1DO0lBQ0MscUZBS0M7SUFFSCxpQkFBTTs7O0lBWEosOElBRUM7SUFJRSxjQUFpQztJQUFqQyx5REFBaUM7OztJQVN0QywrQkFHQztJQUNDLDhCQUE2QztJQUM3QyxnQ0FBNEM7SUFBQSxZQUFXO0lBQ3pELEFBRHlELGlCQUFPLEVBQzFEOzs7SUFEd0MsZUFBVztJQUFYLDhCQUFXOzs7O0lBNkJ2RCxpREFNQztJQURDLHVQQUFxQixzQkFBZSxLQUFDO0lBRXZDLGlCQUF3Qjs7O0lBSHRCLEFBREEsQUFEQSxxREFBZ0MsK0JBQ1Qsd0RBQ3lCOzs7SUFScEQsK0JBR0M7SUFDQyxpSEFNQztJQUVILGlCQUFNOzs7SUFQRCxjQUE0RDtJQUE1RCwyRkFBNEQ7OztJQVVqRSwrQkFHQztJQUNDLDhCQUE2QztJQUM3QyxnQ0FBNEM7SUFBQSxZQUFXO0lBQ3pELEFBRHlELGlCQUFPLEVBQzFEOzs7SUFEd0MsZUFBVztJQUFYLDhCQUFXOzs7O0lBSzdELG9DQVdDO0lBTkMsMlVBQXFDO0lBS3JDLG1RQUFrQyxzQkFBZSxLQUFDO0lBRXBELGlCQUFXOzs7SUFWVCxxSUFBOEc7SUFHOUcsOERBQXFDO0lBSXJDLEFBREEsQUFEQSwySEFBK0YsK0NBQ3hELDBHQUNvRDs7OztJQUs3RixvQ0FVQztJQUxDLDJVQUFxQztJQU12QyxpQkFBVzs7O0lBVFQscUlBQThHO0lBRzlHLDhEQUFxQztJQUlyQyxBQURBLEFBREEsbUVBQThDLGtEQUNKLDBHQUNpRDs7OztJQUk3RixxQ0FTQztJQUpDLDZVQUFxQztJQUt2QyxpQkFBWTs7O0lBUlYscUlBQThHO0lBRzlHLDhEQUFxQztJQUdyQyxBQURBLHVIQUEyRiwrQ0FDcEQ7OztJQXNCbkMsOEJBTVU7OztJQUZSLHFFQUFnRDs7O0lBVHBELCtCQUlDO0lBQ0MsMkZBS0M7SUFFSCxpQkFBTTs7O0lBVEosdUdBQXVGO0lBSXBGLGNBQXdDO0lBQXhDLGdFQUF3Qzs7OztJQWxCN0MsQUFERiwrQkFBdUYsb0JBU3BGO0lBTEMsa1RBQTBCO0lBSTFCLGdRQUFrQyxzQkFBZSxLQUFDO0lBRXBELGlCQUFZO0lBRVosNkVBSUM7SUFTSCxpQkFBTTs7O0lBckJGLGNBQTBCO0lBQTFCLG1EQUEwQjtJQUcxQixBQURBLG1FQUE4QyxxREFDRDtJQU01QyxjQUF1RTtJQUF2RSxzR0FBdUU7Ozs7SUEyQjVFLEFBREYsK0JBQTBELFlBQ087SUFBNUIsNktBQVMsK0JBQWlCLEtBQUM7SUFBQyxZQUFzQztJQUN2RyxBQUR1RyxpQkFBSSxFQUNyRzs7O0lBRDJELGVBQXNDO0lBQXRDLDZEQUFzQzs7OztJQUlyRyxBQURGLCtCQUE2RCxZQUNPO0lBQS9CLDZLQUFTLGtDQUFvQixLQUFDO0lBQUMsWUFBbUM7SUFDdkcsQUFEdUcsaUJBQUksRUFDckc7OztJQUQ4RCxlQUFtQztJQUFuQywwREFBbUM7O0FEbkw3Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQU1ILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx3QkFBd0I7SUFXdkQ7SUFDQztJQUNBO0lBWjhDLFNBQVMsQ0FBUztJQUNSLFNBQVMsQ0FBbUI7SUFFOUYscUJBQXFCLENBQVM7SUFFdEIsWUFBWSxHQUFzQixJQUFJLENBQUM7SUFDdkMsTUFBTSxDQUFNO0lBQ0gsbUJBQW1CLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFekQsWUFDUyxjQUFpQyxFQUNoQyxjQUE4QixFQUM5QixtQkFBK0MsRUFDdkQsT0FBd0IsRUFDeEIsWUFBZ0MsRUFDaEMsTUFBYyxFQUNkLGlCQUFvQztRQUVwQyxLQUFLLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBUnhDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE0QjtRQU92RCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7YUFDaEYsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3JELENBQUM7SUFFRCxlQUFlO1FBQ2IsUUFBUSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xDLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBZ0I7UUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQWE7UUFDbkIsUUFBUSxPQUFPLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDaEIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNwRCxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVMsb0NBQW9DLENBQUMsWUFBb0I7UUFDakUsTUFBTSx1QkFBdUIsR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9ELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRVMsY0FBYyxDQUFDLE1BQXFCO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsTUFBcUI7UUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxNQUFNLEVBQUUsUUFBUTtRQUNsRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVPLHdCQUF3QixDQUFDLElBQUk7UUFDbkMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDeEcsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDbEgsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDN0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDcEYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDL0YsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsY0FBc0IsRUFBRSxhQUFxQixFQUFFLEtBQWE7UUFDOUUsT0FBTyxHQUFHLGNBQWMsSUFBSSxhQUFhLElBQUksS0FBSyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsY0FBc0IsRUFBRSxrQkFBMEI7UUFDM0csT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNwRixDQUFDO0lBRU8sb0NBQW9DLENBQUMsbUJBQXdDO1FBQ25GLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLDRCQUE0QixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztRQUNqRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxDQUFDO1FBQzFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUM7UUFDckUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDLElBQUksSUFBSSwyQkFBMkIsQ0FBQyxLQUFLLENBQUM7UUFDaEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUV6RCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQXdCO1FBQzNDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUIsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsT0FBd0IsRUFBRSxNQUFxQixFQUFFLFlBQW9CO1FBQy9HLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBRTdGLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNuRSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsR0FBRztRQUN4QixjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQVcsRUFBRSxLQUFrRDtRQUMxRixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRyxPQUFPLFFBQVEsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDOUQsQ0FBQzs4RUE5TVUsb0JBQW9COzZEQUFwQixvQkFBb0I7bUNBQ0MsTUFBTTttQ0FDTixnQkFBZ0I7Ozs7Ozs7WUM3RGxELGlDQUFzRjtZQUFoRCx1SUFBUyxxQkFBaUIsS0FBQztZQUMvRCw2QkFBc0M7WUFDdEMsWUFDRjtZQUFBLGlCQUFTO1lBRVQsZ0RBVUM7WUFEQyxxTEFBdUIsOEJBQTBCLEtBQUM7WUFJOUMsQUFERixBQURGLGlDQUFxQyxhQUNZLFNBQ3pDO1lBQUEsWUFBaUI7WUFDdkIsQUFEdUIsaUJBQUssRUFDdEI7WUFFTiw4QkFBNEU7WUFDMUUsNkVBQXFFO1lBQ3ZFLGlCQUFNO1lBQ04sK0JBQWdFO1lBQUEsYUFBK0I7WUFDakcsQUFEaUcsaUJBQU0sRUFDOUY7WUFNRCxBQURGLEFBREYsQUFERixBQURGLG9DQUFxRCxlQUMvQixlQUNJLGVBQ3lDLG9CQWlCMUQ7WUFWQyxtUEFBbUI7WUFTbkIsQUFEQSxBQURBLDBJQUFTLGtCQUFjLEtBQUMsd01BQ1UsbUJBQWUsS0FBQywrSUFDaEMsc0JBQWtCLEtBQUM7WUFFdkMsaUJBQVc7WUFFWCx3RUFNQztZQVNILGlCQUFNO1lBRU4sZ0NBQTBFO1lBQ3hFLHdFQUdDO1lBS0wsQUFERSxpQkFBTSxFQUNGO1lBSUYsQUFERixBQURGLGdDQUFzQixlQUMwQix1QkFpQjNDO1lBVkMsNFBBQXNCO1lBU3RCLEFBREEsQUFEQSw2SUFBUyxrQkFBYyxLQUFDLDJNQUNVLG1CQUFlLEtBQUMsa0pBQ2hDLHlCQUFxQixLQUFDO1lBRTFDLGlCQUFjO1lBQ2Qsd0VBR0M7WUFVSCxpQkFBTTtZQUNOLGdDQUEwRTtZQUN4RSx3RUFHQztZQUtMLEFBREUsaUJBQU0sRUFDRjtZQTZCTixBQWJBLEFBZEEsa0ZBV0MscUVBYUEsdUVBWUE7WUFHRCxnQ0FBc0I7WUFDcEIsd0VBQXVGO1lBMEJ6RixpQkFBTTtZQUVOLHNDQVFDO1lBREMsK0lBQVcsbUJBQWUsS0FBQztZQUU3QixpQkFBWTtZQU1aLEFBSkEsd0VBQTBELDJEQUlHO1lBS25FLEFBREUsQUFERSxpQkFBTSxFQUNELEVBQ1k7OztZQW5ONkMscUNBQW1CO1lBRW5GLGVBQ0Y7WUFERSxzR0FDRjtZQUlFLGNBQXVDO1lBTXZDLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLHlEQUF1QyxrQ0FDVixpREFDZSxnQ0FDakIseURBQ3lCLG9CQUNyQyx1Q0FDbUI7WUFLMUIsZUFBaUI7WUFBakIscUNBQWlCO1lBSVosZUFBaUI7WUFBakIsc0NBQWlCO1lBRW9DLGVBQStCO1lBQS9CLG1EQUErQjtZQVN2RixlQUVDO1lBRkQsK0hBRUM7WUFFRCx5Q0FBbUI7WUFNbkIsQUFEQSxBQURBLEFBREEsMERBQXdDLDhDQUNDLCtCQUNmLHlEQUMwQjtZQVFuRCxjQUF1RTtZQUF2RSxnR0FBdUU7WUFrQnRELGVBQWlCO1lBQWpCLDRDQUFpQjtZQWFuQyxlQUVDO1lBRkQsK0hBRUM7WUFFRCw0Q0FBc0I7WUFNdEIsQUFEQSxBQURBLEFBREEsQUFEQSwyREFBeUMsZ0RBQ0UsaURBQ0Msa0NBQ2YsNERBQzBCO1lBT3RELGNBQXVFO1lBQXZFLGdHQUF1RTtZQWV0RCxlQUFvQjtZQUFwQiwrQ0FBb0I7WUFVekMsY0FBZ0Q7WUFBaEQseUVBQWdEO1lBY2hELGNBQWdEO1lBQWhELHlFQUFnRDtZQWFoRCxjQUFpRDtZQUFqRCwwRUFBaUQ7WUFZNUMsZUFBdUI7WUFBdkIsNENBQXVCO1lBNkI3QixjQUEwRztZQUExRywySEFBMEc7WUFLMUcsQUFEQSxBQURBLGlEQUFnQyxtR0FDc0QsMEJBQ2pFO1lBS2pCLGNBQWM7WUFBZCxtQ0FBYztZQUlkLGNBQWlCO1lBQWpCLHNDQUFpQjs7O2lGRG5KaEIsb0JBQW9CO2NBSmhDLFNBQVM7MkJBQ0UsZUFBZTs0T0FJK0IsU0FBUztrQkFBaEUsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDWSxTQUFTO2tCQUExRSxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztrRkFGckQsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgSXRlcmFibGVEaWZmZXJzLFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IGlzRXh0ZXJuYWxMaW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBQb0NvbXBvbmVudEluamVjdG9yU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlDb21wb25lbnQgfSBmcm9tICcuLi9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlIH0gZnJvbSAnLi4vcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkvZW51bXMvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdHlwZS5lbnVtJztcbmltcG9ydCB7XG4gIFBvUGFnZUxvZ2luQmFzZUNvbXBvbmVudCxcbiAgcG9QYWdlTG9naW5MaXRlcmFsSW4sXG4gIHBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0XG59IGZyb20gJy4vcG8tcGFnZS1sb2dpbi1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1BhZ2VMb2dpblJlY292ZXJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtbG9naW4tcmVjb3ZlcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luU2VydmljZSB9IGZyb20gJy4vcG8tcGFnZS1sb2dpbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9QYWdlTG9naW5CYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1sb2dpbi1iYXNpY1wiIHRpdGxlPVwiUE8gUGFnZSBMb2dpbiBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1iYXNpYy9zYW1wbGUtcG8tcGFnZS1sb2dpbi1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWJhc2ljL3NhbXBsZS1wby1wYWdlLWxvZ2luLWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtbG9naW4tbGFic1wiIHRpdGxlPVwiUE8gUGFnZSBMb2dpbiBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWxhYnMvc2FtcGxlLXBvLXBhZ2UtbG9naW4tbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWxhYnMvc2FtcGxlLXBvLXBhZ2UtbG9naW4tbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlc1wiIHRpdGxlPVwiUE8gUGFnZSBMb2dpbiAtIEh1bWFuIFJlc291cmNlc1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzL3NhbXBsZS1wby1wYWdlLWxvZ2luLWh1bWFuLXJlc291cmNlcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLXBhZ2UtbG9naW4taHVtYW4tcmVzb3VyY2VzLm1vZHVsZS50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLXBhZ2UtbG9naW4tYXV0b21hdGljLXNlcnZpY2VcIiB0aXRsZT1cIlBPIFBhZ2UgTG9naW4gLSBBdXRvbWF0aWMgU2VydmljZVwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1sb2dpbi1hdXRvbWF0aWMtc2VydmljZS9zYW1wbGUtcG8tcGFnZS1sb2dpbi1hdXRvbWF0aWMtc2VydmljZS5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWxvZ2luLWF1dG9tYXRpYy1zZXJ2aWNlL3NhbXBsZS1wby1wYWdlLWxvZ2luLWF1dG9tYXRpYy1zZXJ2aWNlLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tcGFnZS1sb2dpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1wYWdlLWxvZ2luLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb1BhZ2VMb2dpbkNvbXBvbmVudCBleHRlbmRzIFBvUGFnZUxvZ2luQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQsIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ2xvZ2luRm9ybScsIHsgcmVhZDogTmdGb3JtLCBzdGF0aWM6IHRydWUgfSkgbG9naW5Gb3JtOiBOZ0Zvcm07XG4gIEBWaWV3Q2hpbGQoJ3BhZ2VMb2dpbicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHBhZ2VMb2dpbjogVmlld0NvbnRhaW5lclJlZjtcblxuICBpbml0aWFsU2VsZWN0TGFuZ3VhZ2U6IHN0cmluZztcblxuICBwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSBudWxsO1xuICBwcml2YXRlIGRpZmZlcjogYW55O1xuICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbVBhc3N3b3JkRXJyb3IgPSB7IGN1c3RvbTogZmFsc2UgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcG9Db21wb25lbnRJbmplY3RvcjogUG9Db21wb25lbnRJbmplY3RvclNlcnZpY2UsXG4gICAgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgIGxvZ2luU2VydmljZTogUG9QYWdlTG9naW5TZXJ2aWNlLFxuICAgIHJvdXRlcjogUm91dGVyLFxuICAgIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihsb2dpblNlcnZpY2UsIHJvdXRlciwgcG9MYW5ndWFnZVNlcnZpY2UpO1xuICAgIHRoaXMuZGlmZmVyID0gZGlmZmVycy5maW5kKFtdKS5jcmVhdGUobnVsbCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgaWYgKHRoaXMuZGlmZmVyKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQXJyYXlDaGFuZ2VzKHRoaXMuZGlmZmVyLCBbXG4gICAgICAgIHsgYXJyYXk6IHRoaXMubG9naW5FcnJvcnMsIGNhbGxiYWNrOiB0aGlzLmdlbmVyYXRlTG9naW5FcnJvci5iaW5kKHRoaXMpIH0sXG4gICAgICAgIHsgYXJyYXk6IHRoaXMucGFzc3dvcmRFcnJvcnMsIGNhbGxiYWNrOiB0aGlzLmdlbmVyYXRlUGFzc3dvcmRFcnJvci5iaW5kKHRoaXMpIH1cbiAgICAgIF0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hlY2tpbmdGb3JSb3V0ZU1ldGFkYXRhKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QuZGF0YSk7XG4gICAgdGhpcy5zZWxlY3RlZExhbmd1YWdlID0gdGhpcy5pbml0aWFsaXplTGFuZ3VhZ2UoKTtcbiAgICB0aGlzLmluaXRpYWxTZWxlY3RMYW5ndWFnZSA9IHRoaXMuc2VsZWN0ZWRMYW5ndWFnZTtcbiAgfVxuXG4gIGFjdGl2YXRlU3VwcG9ydCgpIHtcbiAgICBzd2l0Y2ggKHR5cGVvZiB0aGlzLnN1cHBvcnQpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6IHtcbiAgICAgICAgdGhpcy5zZXRVcmxSZWRpcmVjdCh0aGlzLnN1cHBvcnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzoge1xuICAgICAgICB0aGlzLnN1cHBvcnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlTG9naW5Nb2RlbCgpIHtcbiAgICBpZiAodGhpcy5hdXRoZW50aWNhdGlvblVybCkge1xuICAgICAgdGhpcy5sb2dpbkVycm9ycyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldExvZ2luRXJyb3JzKHRoaXMubG9naW5FcnJvcnMpO1xuICAgICAgdGhpcy5sb2dpbkNoYW5nZS5lbWl0KHRoaXMubG9naW4pO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBhc3N3b3JkTW9kZWwoKSB7XG4gICAgaWYgKHRoaXMuYXV0aGVudGljYXRpb25VcmwpIHtcbiAgICAgIHRoaXMucGFzc3dvcmRFcnJvcnMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRQYXNzd29yZEVycm9ycyh0aGlzLnBhc3N3b3JkRXJyb3JzKTtcbiAgICAgIHRoaXMucGFzc3dvcmRDaGFuZ2UuZW1pdCh0aGlzLnBhc3N3b3JkKTtcbiAgICB9XG4gIH1cblxuICBvblNlbGVjdGVkTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIHRoaXMubGFuZ3VhZ2VDaGFuZ2UuZW1pdCh0aGlzLmxhbmd1YWdlc0xpc3QuZmluZChsYW5ndWFnZUl0ZW0gPT4gbGFuZ3VhZ2VJdGVtLmxhbmd1YWdlID09PSBsYW5ndWFnZSkpO1xuICAgIHRoaXMuc2VsZWN0ZWRMYW5ndWFnZSA9IGxhbmd1YWdlO1xuICB9XG5cbiAgb3BlblVybChyZWNvdmVyeTogYW55KTogdm9pZCB7XG4gICAgc3dpdGNoICh0eXBlb2YgcmVjb3ZlcnkpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6IHtcbiAgICAgICAgdGhpcy5zZXRVcmxSZWRpcmVjdChyZWNvdmVyeSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZnVuY3Rpb24nOiB7XG4gICAgICAgIHJlY292ZXJ5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnb2JqZWN0Jzoge1xuICAgICAgICB0aGlzLmNyZWF0ZU1vZGFsUGFzc3dvcmRSZWNvdmVyeUNvbXBvbmVudChyZWNvdmVyeSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjb25jYXRlbmF0ZUxvZ2luSGludFdpdGhDb250YWN0RW1haWwoY29udGFjdEVtYWlsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkZWZhdWx0TG9naW5IaW50TGl0ZXJhbCA9IHBvUGFnZUxvZ2luTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLmxvZ2luSGludDtcbiAgICBjb25zdCBwcmVwb3NpdGlvbkxpdGVyYWwgPSBwb1BhZ2VMb2dpbkxpdGVyYWxJblt0aGlzLmxhbmd1YWdlXTtcblxuICAgIHJldHVybiB0aGlzLmNvbmNhdGVuYXRlTGl0ZXJhbChjb250YWN0RW1haWwsICdsb2dpbkhpbnQnLCBkZWZhdWx0TG9naW5IaW50TGl0ZXJhbCwgcHJlcG9zaXRpb25MaXRlcmFsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRMb2dpbkVycm9ycyhlcnJvcnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5sb2dpbkZvcm0uZm9ybS5jb250cm9sc1snbG9naW4nXTtcbiAgICB0aGlzLnNldENvbnRyb2xFcnJvcnMoJ2FsbExvZ2luRXJyb3JzJywgY29udHJvbCwgZXJyb3JzLCB0aGlzLnBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luRXJyb3JQYXR0ZXJuKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRQYXNzd29yZEVycm9ycyhlcnJvcnM6IEFycmF5PHN0cmluZz4pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5sb2dpbkZvcm0uZm9ybS5jb250cm9sc1sncGFzc3dvcmQnXTtcbiAgICB0aGlzLnNldENvbnRyb2xFcnJvcnMoJ2FsbFBhc3N3b3JkRXJyb3JzJywgY29udHJvbCwgZXJyb3JzLCB0aGlzLnBhZ2VMb2dpbkxpdGVyYWxzLnBhc3N3b3JkRXJyb3JQYXR0ZXJuKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KG9iamVjdCwgcHJvcGVydHkpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpKSB7XG4gICAgICByZXR1cm4gb2JqZWN0W3Byb3BlcnR5XTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNraW5nRm9yUm91dGVNZXRhZGF0YShkYXRhKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCAhPT0gMCkge1xuICAgICAgdGhpcy5hdXRoZW50aWNhdGlvblVybCA9IHRoaXMuY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KGRhdGEsICdzZXJ2aWNlQXBpJykgfHwgdGhpcy5hdXRoZW50aWNhdGlvblVybDtcbiAgICAgIHRoaXMuYXV0aGVudGljYXRpb25UeXBlID0gdGhpcy5jaGVja2luZ0Zvck1ldGFkYXRhUHJvcGVydHkoZGF0YSwgJ2F1dGhlbnRpY2F0aW9uVHlwZScpIHx8IHRoaXMuYXV0aGVudGljYXRpb25UeXBlO1xuICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IHRoaXMuY2hlY2tpbmdGb3JNZXRhZGF0YVByb3BlcnR5KGRhdGEsICdlbnZpcm9ubWVudCcpIHx8IHRoaXMuZW52aXJvbm1lbnQ7XG4gICAgICB0aGlzLnJlY292ZXJ5ID0gdGhpcy5jaGVja2luZ0Zvck1ldGFkYXRhUHJvcGVydHkoZGF0YSwgJ3JlY292ZXJ5JykgfHwgdGhpcy5yZWNvdmVyeTtcbiAgICAgIHRoaXMucmVnaXN0ZXJVcmwgPSB0aGlzLmNoZWNraW5nRm9yTWV0YWRhdGFQcm9wZXJ0eShkYXRhLCAncmVnaXN0ZXJVcmwnKSB8fCB0aGlzLnJlZ2lzdGVyVXJsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGUoZGVmYXVsdExpdGVyYWw6IHN0cmluZywgcHJlZml4TGl0ZXJhbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke2RlZmF1bHRMaXRlcmFsfSAke3ByZWZpeExpdGVyYWx9ICR7dmFsdWV9YDtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0ZW5hdGVMaXRlcmFsKHZhbHVlOiBzdHJpbmcsIGxpdGVyYWw6IHN0cmluZywgZGVmYXVsdExpdGVyYWw6IHN0cmluZywgcHJlcG9zaXRpb25MaXRlcmFsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4geyBbbGl0ZXJhbF06IHRoaXMuY29uY2F0ZW5hdGUoZGVmYXVsdExpdGVyYWwsIHByZXBvc2l0aW9uTGl0ZXJhbCwgdmFsdWUpIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU1vZGFsUGFzc3dvcmRSZWNvdmVyeUNvbXBvbmVudChwb1BhZ2VMb2dpblJlY292ZXJ5OiBQb1BhZ2VMb2dpblJlY292ZXJ5KSB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLnBvQ29tcG9uZW50SW5qZWN0b3IuZGVzdHJveUNvbXBvbmVudEluQXBwbGljYXRpb24odGhpcy5jb21wb25lbnRSZWYpO1xuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5wb0NvbXBvbmVudEluamVjdG9yLmNyZWF0ZUNvbXBvbmVudEluQXBwbGljYXRpb24oUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlDb21wb25lbnQpO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnVybFJlY292ZXJ5ID0gcG9QYWdlTG9naW5SZWNvdmVyeS51cmw7XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGFjdEVtYWlsID0gcG9QYWdlTG9naW5SZWNvdmVyeS5jb250YWN0TWFpbDtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5waG9uZU1hc2sgPSBwb1BhZ2VMb2dpblJlY292ZXJ5LnBob25lTWFzaztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50eXBlID0gcG9QYWdlTG9naW5SZWNvdmVyeS50eXBlIHx8IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5FbWFpbDtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlTG9naW5FcnJvcigpIHtcbiAgICBpZiAodGhpcy5sb2dpbkVycm9ycyAmJiB0aGlzLmxvZ2luRXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRMb2dpbkVycm9ycyh0aGlzLmxvZ2luRXJyb3JzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubG9naW5Gb3JtLmZvcm0uY29udHJvbHNbJ2xvZ2luJ107XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICB0aGlzLnJlc2V0Q29udHJvbChjb250cm9sKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlUGFzc3dvcmRFcnJvcigpIHtcbiAgICBpZiAodGhpcy5wYXNzd29yZEVycm9ycyAmJiB0aGlzLnBhc3N3b3JkRXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZXRQYXNzd29yZEVycm9ycyh0aGlzLnBhc3N3b3JkRXJyb3JzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubG9naW5Gb3JtLmZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ107XG5cbiAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgIHRoaXMucmVzZXRDb250cm9sKGNvbnRyb2wpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRDb250cm9sKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb250cm9sRXJyb3JzKGFsbEVycm9yczogc3RyaW5nLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGVycm9yczogQXJyYXk8c3RyaW5nPiwgcGF0dGVybkVycm9yOiBzdHJpbmcpIHtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgdGhpc1thbGxFcnJvcnNdID0gY29udHJvbC5oYXNFcnJvcigncGF0dGVybicpID8gWy4uLmVycm9ycywgLi4uW3BhdHRlcm5FcnJvcl1dIDogWy4uLmVycm9yc107XG5cbiAgICAgIGlmIChlcnJvcnMgJiYgZXJyb3JzLmxlbmd0aCAmJiAoY29udHJvbC52YWxpZCB8fCBjb250cm9sLnByaXN0aW5lKSkge1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICBjb250cm9sLnNldEVycm9ycyh0aGlzLmN1c3RvbVBhc3N3b3JkRXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0VXJsUmVkaXJlY3QodXJsKSB7XG4gICAgaXNFeHRlcm5hbExpbmsodXJsKSA/IHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycpIDogdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFycmF5Q2hhbmdlcyhkaWZmZXI6IGFueSwgYXJyYXk6IEFycmF5PHsgYXJyYXk6IEFycmF5PGFueT47IGNhbGxiYWNrOiBhbnkgfT4pIHtcbiAgICBhcnJheS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IGRpZmZlci5kaWZmKGVsZW1lbnQuYXJyYXkpO1xuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgZWxlbWVudC5jYWxsYmFjaygpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUxhbmd1YWdlKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZXNMaXN0LmZpbmQobGFuZ3VhZ2VJdGVtID0+IGxhbmd1YWdlSXRlbS5sYW5ndWFnZSA9PT0gdGhpcy5sYW5ndWFnZSk7XG4gICAgcmV0dXJuIGxhbmd1YWdlPy5sYW5ndWFnZSB8fCB0aGlzLmxhbmd1YWdlc0xpc3RbMF0ubGFuZ3VhZ2U7XG4gIH1cbn1cbiIsIjxidXR0b24gY2xhc3M9XCJwby1wYWdlLWxvZ2luLXN1cHBvcnRcIiAoY2xpY2spPVwiYWN0aXZhdGVTdXBwb3J0KClcIiBbaGlkZGVuXT1cIiFzdXBwb3J0XCI+XG4gIDxwby1pY29uIHAtaWNvbj1cIklDT05fSEVMUFwiPjwvcG8taWNvbj5cbiAge3sgcGFnZUxvZ2luTGl0ZXJhbHM/LnN1cHBvcnQgfX1cbjwvYnV0dG9uPlxuXG48cG8tcGFnZS1iYWNrZ3JvdW5kXG4gICNwYWdlTG9naW5cbiAgW3Atc2hvdy1zZWxlY3QtbGFuZ3VhZ2VdPVwic2hvd0xhbmd1YWdlXCJcbiAgW3AtbGFuZ3VhZ2VzXT1cImxhbmd1YWdlc0xpc3RcIlxuICBbcC1pbml0aWFsLWxhbmd1YWdlXT1cImluaXRpYWxTZWxlY3RMYW5ndWFnZVwiXG4gIFtwLWJhY2tncm91bmRdPVwiYmFja2dyb3VuZFwiXG4gIFtwLWhpZ2hsaWdodC1pbmZvXT1cInBhZ2VMb2dpbkxpdGVyYWxzLmhpZ2hsaWdodEluZm9cIlxuICBbcC1sb2dvXT1cImxvZ29cIlxuICBbcC1zZWNvbmRhcnktbG9nb109XCJzZWNvbmRhcnlMb2dvXCJcbiAgKHAtc2VsZWN0ZWQtbGFuZ3VhZ2UpPVwib25TZWxlY3RlZExhbmd1YWdlKCRldmVudClcIlxuPlxuICA8aGVhZGVyIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oZWFkZXItcHJvZHVjdC1uYW1lXCI+XG4gICAgICA8aDE+e3sgcHJvZHVjdE5hbWUgfX08L2gxPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGVhZGVyLXByb2R1Y3QtZW52aXJvbm1lbnQgcG8tbWItbWQtNCBwby1tYi1zbS0xXCI+XG4gICAgICA8cG8tdGFnICpuZ0lmPVwiZW52aXJvbm1lbnRcIiBwLXR5cGU9XCJ3YXJuaW5nXCIgW3AtdmFsdWVdPVwiZW52aXJvbm1lbnRcIj4gPC9wby10YWc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGVhZGVyLXdlbGNvbWUgcG8tbWItbWQtNCBwby1tYi1zbS0yXCI+e3sgcGFnZUxvZ2luTGl0ZXJhbHMud2VsY29tZSB9fTwvZGl2PlxuICA8L2hlYWRlcj5cblxuICA8Zm9ybSAjbG9naW5Gb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWZvcm1cIj5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbGctMTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLXBhZ2UtbG9naW4taGludCBwby1wYWdlLWxvZ2luLWluZm8tY29udGFpbmVyXCI+XG4gICAgICAgICAgPHBvLWxvZ2luXG4gICAgICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4taW5mby1maWVsZFwiXG4gICAgICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1pbmZvLWZpZWxkLWR5bmFtaWNdPVwiXG4gICAgICAgICAgICAgICFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBuYW1lPVwibG9naW5cIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dpblwiXG4gICAgICAgICAgICBwLWF1dG8tZm9jdXNcbiAgICAgICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgICAgIFtwLWxhYmVsXT1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luTGFiZWxcIlxuICAgICAgICAgICAgW3Atbm8tYXV0b2NvbXBsZXRlXT1cIm5vQXV0b2NvbXBsZXRlTG9naW5cIlxuICAgICAgICAgICAgW3AtcGF0dGVybl09XCJsb2dpblBhdHRlcm5cIlxuICAgICAgICAgICAgW3AtcGxhY2Vob2xkZXJdPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5QbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKClcIlxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luRm9ybS52YWxpZCAmJiBvbkxvZ2luU3VibWl0KClcIlxuICAgICAgICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cImNoYW5nZUxvZ2luTW9kZWwoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcG8tbG9naW4+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCB8fCBwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1pbmZvLWljb24tY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWluZm8taWNvbi1jb250YWluZXItZHluYW1pY109XCJcbiAgICAgICAgICAgICAgIXBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCAmJiAhcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cG8taWNvblxuICAgICAgICAgICAgICBwLWljb249XCJJQ09OX0lORk8gcG8tZmllbGQtaWNvblwiXG4gICAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50XCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3BvLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tIHBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgYWxsTG9naW5FcnJvcnNcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tLXRleHQtZXJyb3IgcG8tZmllbGQtY29udGFpbmVyLWVycm9yLWl0ZW1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwby1pY29uIHAtaWNvbj1cIklDT05fRVhDTEFNQVRJT05cIj48L3BvLWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci10ZXh0XCI+e3sgZXJyb3IgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1sZy0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG8tcGFnZS1sb2dpbi1wYXNzd29yZC1jb250YWluZXJcIj5cbiAgICAgICAgICA8cG8tcGFzc3dvcmRcbiAgICAgICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1maWVsZC1zaXplIHBvLXBhZ2UtbG9naW4tcGFzc3dvcmQtaXRlbVwiXG4gICAgICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1maWVsZC1zaXplLWR5bmFtaWNdPVwiXG4gICAgICAgICAgICAgICFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiXG4gICAgICAgICAgICBwLXJlcXVpcmVkXG4gICAgICAgICAgICBbcC1oaWRlLXBhc3N3b3JkLXBlZWtdPVwiaGlkZVBhc3N3b3JkUGVla1wiXG4gICAgICAgICAgICBbcC1sYWJlbF09XCJwYWdlTG9naW5MaXRlcmFscy5wYXNzd29yZExhYmVsXCJcbiAgICAgICAgICAgIFtwLW5vLWF1dG9jb21wbGV0ZV09XCJub0F1dG9jb21wbGV0ZVBhc3N3b3JkXCJcbiAgICAgICAgICAgIFtwLXBhdHRlcm5dPVwicGFzc3dvcmRQYXR0ZXJuXCJcbiAgICAgICAgICAgIFtwLXBsYWNlaG9sZGVyXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnBhc3N3b3JkUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJsb2dpbkZvcm0udmFsaWQgJiYgb25Mb2dpblN1Ym1pdCgpXCJcbiAgICAgICAgICAgIChwLWNoYW5nZS1tb2RlbCk9XCJjaGFuZ2VQYXNzd29yZE1vZGVsKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3BvLXBhc3N3b3JkPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50IHx8IHBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXBhc3N3b3JkLWl0ZW0gcG8tcGFnZS1sb2dpbi1wYXNzd29yZC1wb3BvdmVyLWNvbnRhaW5lclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBvLXBhZ2UtbG9naW4tcG9wb3ZlclxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dFeGNlZWRlZEF0dGVtcHRzV2FybmluZyAmJiBleGNlZWRlZEF0dGVtcHRzV2FybmluZ1wiXG4gICAgICAgICAgICAgIFtwLWxpdGVyYWxzXT1cInBhZ2VMb2dpbkxpdGVyYWxzXCJcbiAgICAgICAgICAgICAgW3AtcmVjb3ZlcnldPVwicmVjb3ZlcnlcIlxuICAgICAgICAgICAgICBbcC1yZW1haW5pbmctYXR0ZW1wdHNdPVwiZXhjZWVkZWRBdHRlbXB0c1dhcm5pbmdcIlxuICAgICAgICAgICAgICAocC1mb3Jnb3QtcGFzc3dvcmQpPVwib3BlblVybCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8tcGFnZS1sb2dpbi1wb3BvdmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20gcG8tZmllbGQtY29udGFpbmVyLWVycm9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlcnJvciBvZiBhbGxQYXNzd29yZEVycm9yc1wiXG4gICAgICAgICAgICBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20tdGV4dC1lcnJvciBwby1maWVsZC1jb250YWluZXItZXJyb3ItaXRlbVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBvLWljb24gcC1pY29uPVwiSUNPTl9FWENMQU1BVElPTlwiPjwvcG8taWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWVycm9yLXRleHRcIj57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHBvLWlucHV0XG4gICAgICAgICpuZ0lmPVwiY3VzdG9tRmllbGQgJiYgY3VzdG9tRmllbGRUeXBlID09PSAnaW5wdXQnXCJcbiAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZS1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZSBwby1sZy0xMlwiXG4gICAgICAgIG5hbWU9XCJjdXN0b21GaWVsZElucHV0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21GaWVsZE9iamVjdC52YWx1ZVwiXG4gICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgW3AtZXJyb3ItcGF0dGVybl09XCJjdXN0b21GaWVsZE9iamVjdC5lcnJvclBhdHRlcm4gfHwgcGFnZUxvZ2luTGl0ZXJhbHMuY3VzdG9tRmllbGRFcnJvclBhdHRlcm5cIlxuICAgICAgICBbcC1wYXR0ZXJuXT1cImN1c3RvbUZpZWxkT2JqZWN0LnBhdHRlcm5cIlxuICAgICAgICBbcC1wbGFjZWhvbGRlcl09XCJjdXN0b21GaWVsZE9iamVjdC5wbGFjZWhvbGRlciB8fCBwYWdlTG9naW5MaXRlcmFscy5jdXN0b21GaWVsZFBsYWNlaG9sZGVyXCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luRm9ybS52YWxpZCAmJiBvbkxvZ2luU3VibWl0KClcIlxuICAgICAgPlxuICAgICAgPC9wby1pbnB1dD5cblxuICAgICAgPHBvLWNvbWJvXG4gICAgICAgICpuZ0lmPVwiY3VzdG9tRmllbGQgJiYgY3VzdG9tRmllbGRUeXBlID09PSAnY29tYm8nXCJcbiAgICAgICAgW2NsYXNzLnBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZS1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZSBwby1sZy0xMlwiXG4gICAgICAgIG5hbWU9XCJjdXN0b21GaWVsZENvbWJvXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21GaWVsZE9iamVjdC52YWx1ZVwiXG4gICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgW3AtZmllbGQtdmFsdWVdPVwiY3VzdG9tRmllbGRPYmplY3QuZmllbGRWYWx1ZVwiXG4gICAgICAgIFtwLWZpbHRlci1zZXJ2aWNlXT1cImN1c3RvbUZpZWxkT2JqZWN0LnVybFwiXG4gICAgICAgIFtwLXBsYWNlaG9sZGVyXT1cImN1c3RvbUZpZWxkT2JqZWN0LnBsYWNlaG9sZGVyIHx8IHBhZ2VMb2dpbkxpdGVyYWxzLmN1c3RvbUZpZWxkUGxhY2Vob2xkZXJcIlxuICAgICAgPlxuICAgICAgPC9wby1jb21ibz5cblxuICAgICAgPHBvLXNlbGVjdFxuICAgICAgICAqbmdJZj1cImN1c3RvbUZpZWxkICYmIGN1c3RvbUZpZWxkVHlwZSA9PT0gJ3NlbGVjdCdcIlxuICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1maWVsZC1zaXplLWR5bmFtaWNdPVwiIXBhZ2VMb2dpbkxpdGVyYWxzLmxvZ2luSGludCAmJiAhcGFnZUxvZ2luTGl0ZXJhbHMucmVtZW1iZXJVc2VySGludFwiXG4gICAgICAgIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1maWVsZC1zaXplIHBvLWxnLTEyXCJcbiAgICAgICAgbmFtZT1cImN1c3RvbUZpZWxkU2VsZWN0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21GaWVsZE9iamVjdC52YWx1ZVwiXG4gICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgW3AtcGxhY2Vob2xkZXJdPVwiY3VzdG9tRmllbGRPYmplY3QucGxhY2Vob2xkZXIgfHwgcGFnZUxvZ2luTGl0ZXJhbHMuY3VzdG9tRmllbGRQbGFjZWhvbGRlclwiXG4gICAgICAgIFtwLW9wdGlvbnNdPVwiY3VzdG9tRmllbGRPYmplY3Qub3B0aW9uc1wiXG4gICAgICA+XG4gICAgICA8L3BvLXNlbGVjdD5cblxuICAgICAgPGRpdiBjbGFzcz1cInBvLWxnLTEyXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhaGlkZVJlbWVtYmVyVXNlclwiIGNsYXNzPVwicG8tcGFnZS1sb2dpbi1oaW50IHBvLXBhZ2UtbG9naW4taW5mby1jb250YWluZXJcIj5cbiAgICAgICAgICA8cG8tc3dpdGNoXG4gICAgICAgICAgICBjbGFzcz1cInBvLXBhZ2UtbG9naW4taW5mby1maWVsZCBwby1sZy03IHBvLW9mZnNldC1sZy01IHBvLW9mZnNldC14bC01XCJcbiAgICAgICAgICAgIG5hbWU9XCJyZW1lbWJlclVzZXJcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZW1lbWJlclVzZXJcIlxuICAgICAgICAgICAgcC1sYWJlbC1wb3NpdGlvbj1cIjFcIlxuICAgICAgICAgICAgW3AtbGFiZWwtb2ZmXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlclwiXG4gICAgICAgICAgICBbcC1sYWJlbC1vbl09XCJwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJcIlxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvZ2luRm9ybS52YWxpZCAmJiBvbkxvZ2luU3VibWl0KClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3BvLXN3aXRjaD5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwicGFnZUxvZ2luTGl0ZXJhbHMubG9naW5IaW50IHx8IHBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJwby1wYWdlLWxvZ2luLWluZm8taWNvbi1jb250YWluZXIgcG8tcGFnZS1sb2dpbi1pbmZvLWljb24tcmVtZW1iZXItdXNlclwiXG4gICAgICAgICAgICBbY2xhc3MucG8tcGFnZS1sb2dpbi1pbmZvLWljb24tY29udGFpbmVyLWR5bmFtaWNdPVwiIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwby1pY29uXG4gICAgICAgICAgICAgIHAtaWNvbj1cIklDT05fSU5GTyBwby1maWVsZC1pY29uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlTG9naW5MaXRlcmFscy5yZW1lbWJlclVzZXJIaW50XCJcbiAgICAgICAgICAgICAgcC10b29sdGlwLXBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICBbcC10b29sdGlwXT1cInBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8cG8tYnV0dG9uXG4gICAgICAgIFtjbGFzcy5wby1wYWdlLWxvZ2luLWJ1dHRvbi1keW5hbWljXT1cIiFwYWdlTG9naW5MaXRlcmFscy5sb2dpbkhpbnQgJiYgIXBhZ2VMb2dpbkxpdGVyYWxzLnJlbWVtYmVyVXNlckhpbnRcIlxuICAgICAgICBjbGFzcz1cInBvLWxnLTEyIHBvLXBhZ2UtbG9naW4tYnV0dG9uIHBvLXBhZ2UtbG9naW4tZmllbGQtc2l6ZVwiXG4gICAgICAgIHAta2luZD1cInByaW1hcnlcIlxuICAgICAgICBbcC1kaXNhYmxlZF09XCJsb2dpbkZvcm0uaW52YWxpZFwiXG4gICAgICAgIFtwLWxhYmVsXT1cImxvYWRpbmcgPyBwYWdlTG9naW5MaXRlcmFscy5zdWJtaXR0ZWRMYWJlbCA6IHBhZ2VMb2dpbkxpdGVyYWxzLnN1Ym1pdExhYmVsXCJcbiAgICAgICAgW3AtbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICAgICAgKHAtY2xpY2spPVwib25Mb2dpblN1Ym1pdCgpXCJcbiAgICAgID5cbiAgICAgIDwvcG8tYnV0dG9uPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwicmVjb3ZlcnlcIiBjbGFzcz1cInBvLXBhZ2UtbG9naW4tcmVjb3ZlcnktbGlua1wiPlxuICAgICAgICA8YSBjbGFzcz1cInBvLWZvbnQtdGV4dC1sYXJnZS1ib2xkXCIgKGNsaWNrKT1cIm9wZW5VcmwocmVjb3ZlcnkpXCI+e3sgcGFnZUxvZ2luTGl0ZXJhbHMuZm9yZ290UGFzc3dvcmQgfX08L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cInJlZ2lzdGVyVXJsXCIgY2xhc3M9XCJwby1wYWdlLWxvZ2luLXJlZ2lzdGVyLWxpbmtcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJwby1mb250LXRleHQtbGFyZ2UtYm9sZFwiIChjbGljayk9XCJvcGVuVXJsKHJlZ2lzdGVyVXJsKVwiPnt7IHBhZ2VMb2dpbkxpdGVyYWxzLnJlZ2lzdGVyVXJsIH19PC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvcG8tcGFnZS1iYWNrZ3JvdW5kPlxuIl19
@@ -29,4 +29,4 @@ export class PoPageLoginService {
29
29
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageLoginService, [{
30
30
  type: Injectable
31
31
  }], () => [{ type: i1.HttpClient }], null); })();
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlLWxvZ2luL3BvLXBhZ2UtbG9naW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7O0FBRy9GLE1BQU0sT0FBTyxrQkFBa0I7SUFDVDtJQUFwQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUcsQ0FBQztJQUV4QyxPQUFPLENBQUMsR0FBVyxFQUFFLElBQW1DLEVBQUUsU0FBc0I7UUFDOUUsSUFBSSxJQUFJLEtBQUssNkJBQTZCLENBQUMsTUFBTSxFQUFFO1lBQ2pELFNBQVMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN2QzthQUFNO1lBQ0wsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztnQkFDOUIsZUFBZSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzthQUN6QyxDQUFDLENBQUM7WUFDSCxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDdkIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDOzRFQWhCVSxrQkFBa0I7Z0VBQWxCLGtCQUFrQixXQUFsQixrQkFBa0I7O2lGQUFsQixrQkFBa0I7Y0FEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFBvUGFnZUxvZ2luIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtbG9naW4uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlIH0gZnJvbSAnLi9lbnVtcy9wby1wYWdlLWxvZ2luLWF1dGhlbnRpY2F0aW9uLXR5cGUuZW51bSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQb1BhZ2VMb2dpblNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgb25Mb2dpbih1cmw6IHN0cmluZywgdHlwZTogUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUsIGxvZ2luRm9ybTogUG9QYWdlTG9naW4pOiBPYnNlcnZhYmxlPE9iamVjdD4ge1xuICAgIGlmICh0eXBlID09PSBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZS5CZWFyZXIpIHtcbiAgICAgIGxvZ2luRm9ybS5wYXNzd29yZCA9IGJ0b2EobG9naW5Gb3JtLnBhc3N3b3JkKTtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGxvZ2luRm9ybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVzZXIgPSBgKCR7bG9naW5Gb3JtLmxvZ2lufToke2xvZ2luRm9ybS5wYXNzd29yZH0pYDtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAnQXV0aG9yaXphdGlvbic6IGAke3R5cGV9IGAgKyBidG9hKHVzZXIpXG4gICAgICB9KTtcbiAgICAgIGRlbGV0ZSBsb2dpbkZvcm0ubG9naW47XG4gICAgICBkZWxldGUgbG9naW5Gb3JtLnBhc3N3b3JkO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgbG9naW5Gb3JtLCB7IGhlYWRlcnMgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1sb2dpbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlLWxvZ2luL3BvLXBhZ2UtbG9naW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7O0FBRy9GLE1BQU0sT0FBTyxrQkFBa0I7SUFDVDtJQUFwQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUcsQ0FBQztJQUV4QyxPQUFPLENBQUMsR0FBVyxFQUFFLElBQW1DLEVBQUUsU0FBc0I7UUFDOUUsSUFBSSxJQUFJLEtBQUssNkJBQTZCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEQsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQztZQUMxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQztnQkFDOUIsZUFBZSxFQUFFLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzthQUN6QyxDQUFDLENBQUM7WUFDSCxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDdkIsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7NEVBaEJVLGtCQUFrQjtnRUFBbEIsa0JBQWtCLFdBQWxCLGtCQUFrQjs7aUZBQWxCLGtCQUFrQjtjQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUG9QYWdlTG9naW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1sb2dpbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlTG9naW5BdXRoZW50aWNhdGlvblR5cGUgfSBmcm9tICcuL2VudW1zL3BvLXBhZ2UtbG9naW4tYXV0aGVudGljYXRpb24tdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvUGFnZUxvZ2luU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICBvbkxvZ2luKHVybDogc3RyaW5nLCB0eXBlOiBQb1BhZ2VMb2dpbkF1dGhlbnRpY2F0aW9uVHlwZSwgbG9naW5Gb3JtOiBQb1BhZ2VMb2dpbik6IE9ic2VydmFibGU8T2JqZWN0PiB7XG4gICAgaWYgKHR5cGUgPT09IFBvUGFnZUxvZ2luQXV0aGVudGljYXRpb25UeXBlLkJlYXJlcikge1xuICAgICAgbG9naW5Gb3JtLnBhc3N3b3JkID0gYnRvYShsb2dpbkZvcm0ucGFzc3dvcmQpO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgbG9naW5Gb3JtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdXNlciA9IGAoJHtsb2dpbkZvcm0ubG9naW59OiR7bG9naW5Gb3JtLnBhc3N3b3JkfSlgO1xuICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICdBdXRob3JpemF0aW9uJzogYCR7dHlwZX0gYCArIGJ0b2EodXNlcilcbiAgICAgIH0pO1xuICAgICAgZGVsZXRlIGxvZ2luRm9ybS5sb2dpbjtcbiAgICAgIGRlbGV0ZSBsb2dpbkZvcm0ucGFzc3dvcmQ7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBsb2dpbkZvcm0sIHsgaGVhZGVycyB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -83,4 +83,4 @@ export class PoPageCustomizationService {
83
83
  providedIn: 'root'
84
84
  }]
85
85
  }], () => [{ type: i1.HttpClient }], null); })();
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1jdXN0b21pemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9zZXJ2aWNlcy9wby1wYWdlLWN1c3RvbWl6YXRpb24vcG8tcGFnZS1jdXN0b21pemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBU3JDLE1BQU0sT0FBTywwQkFBMEI7SUFDakI7SUFBcEIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFHLENBQUM7SUFFeEMsZ0JBQWdCLENBQ2QsTUFBcUIsRUFDckIsY0FBaUIsRUFDakIsWUFBMkM7UUFFM0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUksTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUksY0FBYyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUM5RixDQUFDO0lBQ0osQ0FBQztJQUVELGlDQUFpQyxDQUFzQixjQUFpQixFQUFFLFVBQWE7UUFDckYsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksR0FBRyxJQUFJLGNBQWMsRUFBRTtnQkFDekIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUN4QixjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FB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QUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUNuRyxDQUFDO1FBQ0YsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQy9ELE1BQU0sT0FBTyxHQUNYLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDO1lBQzdHLE9BQU8sRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcscUJBQXFCLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7b0ZBekZVLDBCQUEwQjtnRUFBMUIsMEJBQTBCLFdBQTFCLDBCQUEwQixtQkFGekIsTUFBTTs7aUZBRVAsMEJBQTBCO2NBSHRDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUG9QYWdlRHluYW1pY09wdGlvbnNTY2hlbWEsIFBvUGFnZUR5bmFtaWNPcHRpb25zUHJvcCB9IGZyb20gJy4vcG8tcGFnZS1keW5hbWljLW9wdGlvbnMuaW50ZXJmYWNlJztcblxudHlwZSB1cmxPckZ1bmN0aW9uID0gc3RyaW5nIHwgRnVuY3Rpb247XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIGdldEN1c3RvbU9wdGlvbnM8VD4oXG4gICAgb3JpZ2luOiB1cmxPckZ1bmN0aW9uLFxuICAgIG9yaWdpbmFsT3B0aW9uOiBULFxuICAgIG9wdGlvblNjaGVtYTogUG9QYWdlRHluYW1pY09wdGlvbnNTY2hlbWE8VD5cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT2JzZXJ2YWJsZTxUPihvcmlnaW4pLnBpcGUoXG4gICAgICBtYXAobmV3UGFnZU9wdGlvbnMgPT4gdGhpcy5tZXJnZVBhZ2VPcHRpb25zPFQ+KG9yaWdpbmFsT3B0aW9uLCBuZXdQYWdlT3B0aW9ucywgb3B0aW9uU2NoZW1hKSlcbiAgICApO1xuICB9XG5cbiAgY2hhbmdlT3JpZ2luYWxPcHRpb25zVG9OZXdPcHRpb25zPFQgZXh0ZW5kcyBvYmplY3QsIEs+KG9iamVjdFRvQ2hhbmdlOiBULCBuZXdPcHRpb25zOiBLKSB7XG4gICAgT2JqZWN0LmtleXMobmV3T3B0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBuZXdPcHRpb25zW2tleV07XG4gICAgICBpZiAoa2V5IGluIG9iamVjdFRvQ2hhbmdlKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIG9iamVjdFRvQ2hhbmdlW2tleV0gPSBbLi4udmFsdWVdO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgb2JqZWN0VG9DaGFuZ2Vba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIG9iamVjdFRvQ2hhbmdlW2tleV0gPSB7IC4uLnZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT2JzZXJ2YWJsZTxUPihvcmlnaW46IHVybE9yRnVuY3Rpb24pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBpZiAodHlwZW9mIG9yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihvcmlnaW4sIHt9KTtcbiAgICB9XG4gICAgcmV0dXJuIGZyb20oUHJvbWlzZS5yZXNvbHZlKG9yaWdpbigpKSk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlUGFnZU9wdGlvbnM8VD4ob3JpZ2luYWxPcHRpb246IFQsIG5ld1BhZ2VPcHRpb25zOiBULCBvcHRpb25TY2hlbWE6IFBvUGFnZUR5bmFtaWNPcHRpb25zU2NoZW1hPFQ+KSB7XG4gICAgY29uc3QgbWVyZ2VQYWdlT3B0aW9uczogVCA9IG9wdGlvblNjaGVtYS5zY2hlbWEucmVkdWNlKFxuICAgICAgKG9ialdpdGhOZXdQcm9wLCBwcm9wKSA9PiAoe1xuICAgICAgICAuLi5vYmpXaXRoTmV3UHJvcCxcbiAgICAgICAgW3Byb3AubmFtZVByb3BdOiB0aGlzLmNyZWF0ZU5ld1Byb3AocHJvcCwgb3JpZ2luYWxPcHRpb24sIG5ld1BhZ2VPcHRpb25zKVxuICAgICAgfSksXG4gICAgICB7fSBhcyBUXG4gICAgKTtcblxuICAgIE9iamVjdC5rZXlzKG1lcmdlUGFnZU9wdGlvbnMpLmZvckVhY2goa2V5ID0+IG1lcmdlUGFnZU9wdGlvbnNba2V5XSA9PT0gdW5kZWZpbmVkICYmIGRlbGV0ZSBtZXJnZVBhZ2VPcHRpb25zW2tleV0pO1xuXG4gICAgcmV0dXJuIG1lcmdlUGFnZU9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5ld1Byb3A8VD4ocHJvcDogUG9QYWdlRHluYW1pY09wdGlvbnNQcm9wPFQ+LCBvcmlnaW5hbE9wdGlvbjogVCwgbmV3UGFnZU9wdGlvbnM6IFQpIHtcbiAgICBpZiAocHJvcC5tZXJnZSkge1xuICAgICAgcmV0dXJuIHRoaXMubWVyZ2VPcHRpb25zKG9yaWdpbmFsT3B0aW9uW3Byb3AubmFtZVByb3BdLCBuZXdQYWdlT3B0aW9uc1twcm9wLm5hbWVQcm9wXSwgcHJvcC5rZXlGb3JNZXJnZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXdQYWdlT3B0aW9uc1twcm9wLm5hbWVQcm9wXSA/PyBvcmlnaW5hbE9wdGlvbltwcm9wLm5hbWVQcm9wXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lcmdlT3B0aW9uczxUPihvcmlnaW5hbE9wdGlvbnM6IEFycmF5PFQ+IHwgVCwgbmV3T3B0aW9uczogQXJyYXk8VD4gfCBULCBmaWx0ZXJQcm9wPzoga2V5b2YgVCkge1xuICAgIGlmICghb3JpZ2luYWxPcHRpb25zICYmICFuZXdPcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghbmV3T3B0aW9ucykge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsT3B0aW9ucztcbiAgICB9XG4gICAgaWYgKCFvcmlnaW5hbE9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBuZXdPcHRpb25zO1xuICAgIH1cblxuICAgIGlmIChvcmlnaW5hbE9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSAmJiBuZXdPcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1lcmdlT3B0aW9uc0FycmF5KG9yaWdpbmFsT3B0aW9ucywgbmV3T3B0aW9ucywgZmlsdGVyUHJvcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgLi4ub3JpZ2luYWxPcHRpb25zLCAuLi5uZXdPcHRpb25zIH07XG4gIH1cblxuICBwcml2YXRlIG1lcmdlT3B0aW9uc0FycmF5PFQ+KG9yaWdpbmFsT3B0aW9uczogQXJyYXk8VD4sIG5ld09wdGlvbnM6IEFycmF5PFQ+LCBmaWx0ZXJQcm9wOiBrZXlvZiBUKSB7XG4gICAgY29uc3QgZGVkdXBsaWNhdGVOZXdPcHRpb25zID0gbmV3T3B0aW9ucy5maWx0ZXIoXG4gICAgICBuZXdJdGVtID0+ICFvcmlnaW5hbE9wdGlvbnMuZmluZChvcmlnaW5hbEl0ZW0gPT4gb3JpZ2luYWxJdGVtW2ZpbHRlclByb3BdID09PSBuZXdJdGVtW2ZpbHRlclByb3BdKVxuICAgICk7XG4gICAgY29uc3QgbWVyZ2VkT3JpZ2luYWxPcHRpb25zID0gb3JpZ2luYWxPcHRpb25zLm1hcChvcmlnaW5hbEl0ZW0gPT4ge1xuICAgICAgY29uc3QgbmV3SXRlbSA9XG4gICAgICAgIG5ld09wdGlvbnMuZmluZChuZXdPcHRpb25zSXRlbSA9PiBvcmlnaW5hbEl0ZW1bZmlsdGVyUHJvcF0gPT09IG5ld09wdGlvbnNJdGVtW2ZpbHRlclByb3BdKSB8fCBvcmlnaW5hbEl0ZW07XG4gICAgICByZXR1cm4geyAuLi5vcmlnaW5hbEl0ZW0sIC4uLm5ld0l0ZW0gfTtcbiAgICB9KTtcbiAgICByZXR1cm4gWy4uLm1lcmdlZE9yaWdpbmFsT3B0aW9ucywgLi4uZGVkdXBsaWNhdGVOZXdPcHRpb25zXTtcbiAgfVxufVxuIl19
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1jdXN0b21pemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9zZXJ2aWNlcy9wby1wYWdlLWN1c3RvbWl6YXRpb24vcG8tcGFnZS1jdXN0b21pemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBU3JDLE1BQU0sT0FBTywwQkFBMEI7SUFDakI7SUFBcEIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFHLENBQUM7SUFFeEMsZ0JBQWdCLENBQ2QsTUFBcUIsRUFDckIsY0FBaUIsRUFDakIsWUFBMkM7UUFFM0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUksTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUksY0FBYyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUM5RixDQUFDO0lBQ0osQ0FBQztJQUVELGlDQUFpQyxDQUFzQixjQUFpQixFQUFFLFVBQWE7UUFDckYsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDekIsY0FBYyxDQUFDLEdBQUcsQ0FB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Q0FBQztJQUVPLGlCQUFpQixDQUFJLGVBQXlCLEVBQUUsVUFBb0IsRUFBRSxVQUFtQjtRQUMvRixNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQzdDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUNuRyxDQUFDO1FBQ0YsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQy9ELE1BQU0sT0FBTyxHQUNYLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDO1lBQzdHLE9BQU8sRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcscUJBQXFCLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7b0ZBekZVLDBCQUEwQjtnRUFBMUIsMEJBQTBCLFdBQTFCLDBCQUEwQixtQkFGekIsTUFBTTs7aUZBRVAsMEJBQTBCO2NBSHRDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUG9QYWdlRHluYW1pY09wdGlvbnNTY2hlbWEsIFBvUGFnZUR5bmFtaWNPcHRpb25zUHJvcCB9IGZyb20gJy4vcG8tcGFnZS1keW5hbWljLW9wdGlvbnMuaW50ZXJmYWNlJztcblxudHlwZSB1cmxPckZ1bmN0aW9uID0gc3RyaW5nIHwgRnVuY3Rpb247XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIGdldEN1c3RvbU9wdGlvbnM8VD4oXG4gICAgb3JpZ2luOiB1cmxPckZ1bmN0aW9uLFxuICAgIG9yaWdpbmFsT3B0aW9uOiBULFxuICAgIG9wdGlvblNjaGVtYTogUG9QYWdlRHluYW1pY09wdGlvbnNTY2hlbWE8VD5cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT2JzZXJ2YWJsZTxUPihvcmlnaW4pLnBpcGUoXG4gICAgICBtYXAobmV3UGFnZU9wdGlvbnMgPT4gdGhpcy5tZXJnZVBhZ2VPcHRpb25zPFQ+KG9yaWdpbmFsT3B0aW9uLCBuZXdQYWdlT3B0aW9ucywgb3B0aW9uU2NoZW1hKSlcbiAgICApO1xuICB9XG5cbiAgY2hhbmdlT3JpZ2luYWxPcHRpb25zVG9OZXdPcHRpb25zPFQgZXh0ZW5kcyBvYmplY3QsIEs+KG9iamVjdFRvQ2hhbmdlOiBULCBuZXdPcHRpb25zOiBLKSB7XG4gICAgT2JqZWN0LmtleXMobmV3T3B0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBuZXdPcHRpb25zW2tleV07XG4gICAgICBpZiAoa2V5IGluIG9iamVjdFRvQ2hhbmdlKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIG9iamVjdFRvQ2hhbmdlW2tleV0gPSBbLi4udmFsdWVdO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgb2JqZWN0VG9DaGFuZ2Vba2V5XSA9IHZhbHVlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIG9iamVjdFRvQ2hhbmdlW2tleV0gPSB7IC4uLnZhbHVlIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT2JzZXJ2YWJsZTxUPihvcmlnaW46IHVybE9yRnVuY3Rpb24pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBpZiAodHlwZW9mIG9yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPihvcmlnaW4sIHt9KTtcbiAgICB9XG4gICAgcmV0dXJuIGZyb20oUHJvbWlzZS5yZXNvbHZlKG9yaWdpbigpKSk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlUGFnZU9wdGlvbnM8VD4ob3JpZ2luYWxPcHRpb246IFQsIG5ld1BhZ2VPcHRpb25zOiBULCBvcHRpb25TY2hlbWE6IFBvUGFnZUR5bmFtaWNPcHRpb25zU2NoZW1hPFQ+KSB7XG4gICAgY29uc3QgbWVyZ2VQYWdlT3B0aW9uczogVCA9IG9wdGlvblNjaGVtYS5zY2hlbWEucmVkdWNlKFxuICAgICAgKG9ialdpdGhOZXdQcm9wLCBwcm9wKSA9PiAoe1xuICAgICAgICAuLi5vYmpXaXRoTmV3UHJvcCxcbiAgICAgICAgW3Byb3AubmFtZVByb3BdOiB0aGlzLmNyZWF0ZU5ld1Byb3AocHJvcCwgb3JpZ2luYWxPcHRpb24sIG5ld1BhZ2VPcHRpb25zKVxuICAgICAgfSksXG4gICAgICB7fSBhcyBUXG4gICAgKTtcblxuICAgIE9iamVjdC5rZXlzKG1lcmdlUGFnZU9wdGlvbnMpLmZvckVhY2goa2V5ID0+IG1lcmdlUGFnZU9wdGlvbnNba2V5XSA9PT0gdW5kZWZpbmVkICYmIGRlbGV0ZSBtZXJnZVBhZ2VPcHRpb25zW2tleV0pO1xuXG4gICAgcmV0dXJuIG1lcmdlUGFnZU9wdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5ld1Byb3A8VD4ocHJvcDogUG9QYWdlRHluYW1pY09wdGlvbnNQcm9wPFQ+LCBvcmlnaW5hbE9wdGlvbjogVCwgbmV3UGFnZU9wdGlvbnM6IFQpIHtcbiAgICBpZiAocHJvcC5tZXJnZSkge1xuICAgICAgcmV0dXJuIHRoaXMubWVyZ2VPcHRpb25zKG9yaWdpbmFsT3B0aW9uW3Byb3AubmFtZVByb3BdLCBuZXdQYWdlT3B0aW9uc1twcm9wLm5hbWVQcm9wXSwgcHJvcC5rZXlGb3JNZXJnZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXdQYWdlT3B0aW9uc1twcm9wLm5hbWVQcm9wXSA/PyBvcmlnaW5hbE9wdGlvbltwcm9wLm5hbWVQcm9wXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lcmdlT3B0aW9uczxUPihvcmlnaW5hbE9wdGlvbnM6IEFycmF5PFQ+IHwgVCwgbmV3T3B0aW9uczogQXJyYXk8VD4gfCBULCBmaWx0ZXJQcm9wPzoga2V5b2YgVCkge1xuICAgIGlmICghb3JpZ2luYWxPcHRpb25zICYmICFuZXdPcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghbmV3T3B0aW9ucykge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsT3B0aW9ucztcbiAgICB9XG4gICAgaWYgKCFvcmlnaW5hbE9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBuZXdPcHRpb25zO1xuICAgIH1cblxuICAgIGlmIChvcmlnaW5hbE9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSAmJiBuZXdPcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1lcmdlT3B0aW9uc0FycmF5KG9yaWdpbmFsT3B0aW9ucywgbmV3T3B0aW9ucywgZmlsdGVyUHJvcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgLi4ub3JpZ2luYWxPcHRpb25zLCAuLi5uZXdPcHRpb25zIH07XG4gIH1cblxuICBwcml2YXRlIG1lcmdlT3B0aW9uc0FycmF5PFQ+KG9yaWdpbmFsT3B0aW9uczogQXJyYXk8VD4sIG5ld09wdGlvbnM6IEFycmF5PFQ+LCBmaWx0ZXJQcm9wOiBrZXlvZiBUKSB7XG4gICAgY29uc3QgZGVkdXBsaWNhdGVOZXdPcHRpb25zID0gbmV3T3B0aW9ucy5maWx0ZXIoXG4gICAgICBuZXdJdGVtID0+ICFvcmlnaW5hbE9wdGlvbnMuZmluZChvcmlnaW5hbEl0ZW0gPT4gb3JpZ2luYWxJdGVtW2ZpbHRlclByb3BdID09PSBuZXdJdGVtW2ZpbHRlclByb3BdKVxuICAgICk7XG4gICAgY29uc3QgbWVyZ2VkT3JpZ2luYWxPcHRpb25zID0gb3JpZ2luYWxPcHRpb25zLm1hcChvcmlnaW5hbEl0ZW0gPT4ge1xuICAgICAgY29uc3QgbmV3SXRlbSA9XG4gICAgICAgIG5ld09wdGlvbnMuZmluZChuZXdPcHRpb25zSXRlbSA9PiBvcmlnaW5hbEl0ZW1bZmlsdGVyUHJvcF0gPT09IG5ld09wdGlvbnNJdGVtW2ZpbHRlclByb3BdKSB8fCBvcmlnaW5hbEl0ZW07XG4gICAgICByZXR1cm4geyAuLi5vcmlnaW5hbEl0ZW0sIC4uLm5ld0l0ZW0gfTtcbiAgICB9KTtcbiAgICByZXR1cm4gWy4uLm1lcmdlZE9yaWdpbmFsT3B0aW9ucywgLi4uZGVkdXBsaWNhdGVOZXdPcHRpb25zXTtcbiAgfVxufVxuIl19