@thetradeengineorg1/snova-shell-module 1.0.2 → 1.0.4

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.
@@ -1,7 +1,7 @@
1
1
  import { Component } from "@angular/core";
2
2
  import { NavigationEnd } from "@angular/router";
3
3
  import { select } from "@ngrx/store";
4
- import { tap } from "rxjs/operators";
4
+ import { tap, map } from "rxjs/operators";
5
5
  import * as sharedModuleReducers from "./../../store/reducers/index";
6
6
  import { GetAllMenuItemsTriggered } from "../../store/actions/menuitems.actions";
7
7
  import { MenuCategories } from "../../constants/menu-categories";
@@ -28,13 +28,13 @@ function SideBarComponent_div_9_ng_container_3_Template(rf, ctx) { if (rf & 1) {
28
28
  const item_r1 = i0.ɵɵnextContext().$implicit;
29
29
  const ctx_r3 = i0.ɵɵnextContext();
30
30
  i0.ɵɵadvance(2);
31
- i0.ɵɵtextInterpolate(item_r1.icon);
31
+ i0.ɵɵtextInterpolate1(" ", item_r1.icon, " ");
32
32
  i0.ɵɵadvance(2);
33
33
  i0.ɵɵtextInterpolate1(" ", item_r1.menu ? i0.ɵɵpipeBind2(5, 2, item_r1.menu, ctx_r3.softLabels) : i0.ɵɵpipeBind1(6, 5, item_r1.name), " ");
34
34
  } }
35
35
  function SideBarComponent_div_9_ng_container_4_Template(rf, ctx) { if (rf & 1) {
36
36
  i0.ɵɵelementContainerStart(0);
37
- i0.ɵɵelementStart(1, "a", 12);
37
+ i0.ɵɵelementStart(1, "a", 10);
38
38
  i0.ɵɵelementStart(2, "mat-icon", 5);
39
39
  i0.ɵɵtext(3);
40
40
  i0.ɵɵelementEnd();
@@ -51,121 +51,55 @@ function SideBarComponent_div_9_ng_container_4_Template(rf, ctx) { if (rf & 1) {
51
51
  i0.ɵɵadvance(1);
52
52
  i0.ɵɵproperty("href", item_r1.state, i0.ɵɵsanitizeUrl);
53
53
  i0.ɵɵadvance(2);
54
- i0.ɵɵtextInterpolate(item_r1.icon);
54
+ i0.ɵɵtextInterpolate1(" ", item_r1.icon, " ");
55
55
  i0.ɵɵadvance(2);
56
56
  i0.ɵɵtextInterpolate1(" ", item_r1.menu ? i0.ɵɵpipeBind2(6, 3, item_r1.menu, ctx_r4.softLabels) : i0.ɵɵpipeBind1(7, 6, item_r1.name), " ");
57
57
  } }
58
- function SideBarComponent_div_9_div_5_Template(rf, ctx) { if (rf & 1) {
59
- const _r12 = i0.ɵɵgetCurrentView();
60
- i0.ɵɵelementStart(0, "div", 13);
61
- i0.ɵɵlistener("click", function SideBarComponent_div_9_div_5_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r12); const item_r1 = i0.ɵɵnextContext().$implicit; const ctx_r10 = i0.ɵɵnextContext(); return ctx_r10.toggleDropdown(item_r1); });
62
- i0.ɵɵelementStart(1, "mat-icon", 5);
63
- i0.ɵɵtext(2);
64
- i0.ɵɵelementEnd();
65
- i0.ɵɵelementStart(3, "h6", 6);
66
- i0.ɵɵtext(4);
67
- i0.ɵɵpipe(5, "softLabelsPipe");
68
- i0.ɵɵpipe(6, "translate");
69
- i0.ɵɵelementEnd();
70
- i0.ɵɵelementStart(7, "mat-icon", 14);
71
- i0.ɵɵtext(8);
72
- i0.ɵɵelementEnd();
73
- i0.ɵɵelementEnd();
74
- } if (rf & 2) {
75
- const item_r1 = i0.ɵɵnextContext().$implicit;
76
- const ctx_r5 = i0.ɵɵnextContext();
77
- i0.ɵɵadvance(2);
78
- i0.ɵɵtextInterpolate(item_r1.icon);
79
- i0.ɵɵadvance(2);
80
- i0.ɵɵtextInterpolate1(" ", item_r1.menu ? i0.ɵɵpipeBind2(5, 3, item_r1.menu, ctx_r5.softLabels) : i0.ɵɵpipeBind1(6, 6, item_r1.name), " ");
81
- i0.ɵɵadvance(4);
82
- i0.ɵɵtextInterpolate1(" ", item_r1.open ? "expand_less" : "expand_more", " ");
83
- } }
84
58
  const _c0 = function (a0) { return { background: a0 }; };
85
- function SideBarComponent_div_9_div_6_span_1_Template(rf, ctx) { if (rf & 1) {
86
- i0.ɵɵelementStart(0, "span", 17);
59
+ function SideBarComponent_div_9_div_5_span_1_Template(rf, ctx) { if (rf & 1) {
60
+ i0.ɵɵelementStart(0, "span", 13);
87
61
  i0.ɵɵtext(1);
88
62
  i0.ɵɵelementEnd();
89
63
  } if (rf & 2) {
90
- const badge_r15 = ctx.$implicit;
91
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c0, badge_r15.color));
64
+ const badge_r9 = ctx.$implicit;
65
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(2, _c0, badge_r9.color));
92
66
  i0.ɵɵadvance(1);
93
- i0.ɵɵtextInterpolate1(" ", badge_r15.value, " ");
67
+ i0.ɵɵtextInterpolate1(" ", badge_r9.value, " ");
94
68
  } }
95
- function SideBarComponent_div_9_div_6_Template(rf, ctx) { if (rf & 1) {
96
- i0.ɵɵelementStart(0, "div", 15);
97
- i0.ɵɵtemplate(1, SideBarComponent_div_9_div_6_span_1_Template, 2, 4, "span", 16);
69
+ function SideBarComponent_div_9_div_5_Template(rf, ctx) { if (rf & 1) {
70
+ i0.ɵɵelementStart(0, "div", 11);
71
+ i0.ɵɵtemplate(1, SideBarComponent_div_9_div_5_span_1_Template, 2, 4, "span", 12);
98
72
  i0.ɵɵelementEnd();
99
73
  } if (rf & 2) {
100
74
  const item_r1 = i0.ɵɵnextContext().$implicit;
101
75
  i0.ɵɵadvance(1);
102
76
  i0.ɵɵproperty("ngForOf", item_r1.badges);
103
77
  } }
104
- function SideBarComponent_div_9_div_7_div_1_Template(rf, ctx) { if (rf & 1) {
105
- const _r21 = i0.ɵɵgetCurrentView();
106
- i0.ɵɵelementStart(0, "div", 2);
107
- i0.ɵɵelementStart(1, "div", 19);
108
- i0.ɵɵlistener("click", function SideBarComponent_div_9_div_7_div_1_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r21); const itemLvL2_r18 = restoredCtx.$implicit; const ctx_r20 = i0.ɵɵnextContext(2); const i_r2 = ctx_r20.index; const item_r1 = ctx_r20.$implicit; const ctx_r19 = i0.ɵɵnextContext(); return ctx_r19.selectMenu(i_r2, "/" + item_r1.state + "/" + itemLvL2_r18.state); });
109
- i0.ɵɵelementStart(2, "div", 4);
110
- i0.ɵɵelementStart(3, "mat-icon", 5);
111
- i0.ɵɵtext(4);
112
- i0.ɵɵelementEnd();
113
- i0.ɵɵelementStart(5, "h6", 6);
114
- i0.ɵɵtext(6);
115
- i0.ɵɵpipe(7, "softLabelsPipe");
116
- i0.ɵɵpipe(8, "translate");
117
- i0.ɵɵelementEnd();
118
- i0.ɵɵelementEnd();
119
- i0.ɵɵelementEnd();
120
- i0.ɵɵelementEnd();
121
- } if (rf & 2) {
122
- const itemLvL2_r18 = ctx.$implicit;
123
- const ctx_r17 = i0.ɵɵnextContext(3);
124
- i0.ɵɵadvance(4);
125
- i0.ɵɵtextInterpolate(itemLvL2_r18.icon);
126
- i0.ɵɵadvance(2);
127
- i0.ɵɵtextInterpolate1(" ", itemLvL2_r18.menu ? i0.ɵɵpipeBind2(7, 2, itemLvL2_r18.menu, ctx_r17.softLabels) : i0.ɵɵpipeBind1(8, 5, itemLvL2_r18.name), " ");
128
- } }
129
- function SideBarComponent_div_9_div_7_Template(rf, ctx) { if (rf & 1) {
130
- i0.ɵɵelementStart(0, "div", 18);
131
- i0.ɵɵtemplate(1, SideBarComponent_div_9_div_7_div_1_Template, 9, 7, "div", 7);
132
- i0.ɵɵelementEnd();
133
- } if (rf & 2) {
134
- const item_r1 = i0.ɵɵnextContext().$implicit;
135
- i0.ɵɵadvance(1);
136
- i0.ɵɵproperty("ngForOf", item_r1.sub);
137
- } }
138
- const _c1 = function () { return { "background-color": "#DBEAFE", "border-image": "linear-gradient(135deg,#5de0e6,#004aad) 1", "box-shadow": "0 4px 15px rgba(0,0,0,0.15)" }; };
78
+ const _c1 = function () { return { "background-color": "#DBEAFE", "border-image": "linear-gradient(135deg,#f79a6b,#f1580c) 1", "box-shadow": "0 4px 15px rgba(0,0,0,0.15)" }; };
139
79
  function SideBarComponent_div_9_Template(rf, ctx) { if (rf & 1) {
140
- const _r24 = i0.ɵɵgetCurrentView();
80
+ const _r12 = i0.ɵɵgetCurrentView();
141
81
  i0.ɵɵelementStart(0, "div", 2);
142
82
  i0.ɵɵelementStart(1, "div", 3);
143
- i0.ɵɵlistener("mouseenter", function SideBarComponent_div_9_Template_div_mouseenter_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r24); const i_r2 = restoredCtx.index; const ctx_r23 = i0.ɵɵnextContext(); return ctx_r23.enter(i_r2); })("mouseleave", function SideBarComponent_div_9_Template_div_mouseleave_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r24); const i_r2 = restoredCtx.index; const ctx_r25 = i0.ɵɵnextContext(); return ctx_r25.leave(i_r2); })("click", function SideBarComponent_div_9_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r24); const i_r2 = restoredCtx.index; const item_r1 = restoredCtx.$implicit; const ctx_r26 = i0.ɵɵnextContext(); return ctx_r26.selectMenu(i_r2, item_r1.state); });
83
+ i0.ɵɵlistener("mouseenter", function SideBarComponent_div_9_Template_div_mouseenter_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r12); const i_r2 = restoredCtx.index; const ctx_r11 = i0.ɵɵnextContext(); return ctx_r11.enter(i_r2); })("mouseleave", function SideBarComponent_div_9_Template_div_mouseleave_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r12); const i_r2 = restoredCtx.index; const ctx_r13 = i0.ɵɵnextContext(); return ctx_r13.leave(i_r2); })("click", function SideBarComponent_div_9_Template_div_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r12); const i_r2 = restoredCtx.index; const item_r1 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(); return ctx_r14.selectMenu(i_r2, item_r1.state); });
144
84
  i0.ɵɵelementStart(2, "div", 4);
145
85
  i0.ɵɵtemplate(3, SideBarComponent_div_9_ng_container_3_Template, 7, 7, "ng-container", 8);
146
86
  i0.ɵɵtemplate(4, SideBarComponent_div_9_ng_container_4_Template, 8, 8, "ng-container", 8);
147
- i0.ɵɵtemplate(5, SideBarComponent_div_9_div_5_Template, 9, 8, "div", 9);
148
- i0.ɵɵtemplate(6, SideBarComponent_div_9_div_6_Template, 2, 1, "div", 10);
87
+ i0.ɵɵtemplate(5, SideBarComponent_div_9_div_5_Template, 2, 1, "div", 9);
149
88
  i0.ɵɵelementEnd();
150
89
  i0.ɵɵelementEnd();
151
- i0.ɵɵtemplate(7, SideBarComponent_div_9_div_7_Template, 2, 1, "div", 11);
152
90
  i0.ɵɵelementEnd();
153
91
  } if (rf & 2) {
154
92
  const item_r1 = ctx.$implicit;
155
93
  const i_r2 = ctx.index;
156
94
  const ctx_r0 = i0.ɵɵnextContext();
157
95
  i0.ɵɵadvance(1);
158
- i0.ɵɵproperty("ngStyle", (ctx_r0.selectedRowIndex == i_r2 || ctx_r0.showBackGroundColor == i_r2) && i0.ɵɵpureFunction0(6, _c1));
96
+ i0.ɵɵproperty("ngStyle", (ctx_r0.selectedRowIndex == i_r2 || ctx_r0.showBackGroundColor == i_r2) && i0.ɵɵpureFunction0(4, _c1));
159
97
  i0.ɵɵadvance(2);
160
98
  i0.ɵɵproperty("ngIf", item_r1.type === "link" || item_r1.type === "applicationlink");
161
99
  i0.ɵɵadvance(1);
162
100
  i0.ɵɵproperty("ngIf", item_r1.type === "extLink");
163
101
  i0.ɵɵadvance(1);
164
- i0.ɵɵproperty("ngIf", item_r1.type === "dropDown");
165
- i0.ɵɵadvance(1);
166
102
  i0.ɵɵproperty("ngIf", item_r1.badges == null ? null : item_r1.badges.length);
167
- i0.ɵɵadvance(1);
168
- i0.ɵɵproperty("ngIf", item_r1.open && item_r1.type === "dropDown");
169
103
  } }
170
104
  export class SideBarComponent {
171
105
  constructor(store, router) {
@@ -176,8 +110,28 @@ export class SideBarComponent {
176
110
  ngOnInit() {
177
111
  // load soft labels
178
112
  this.softLabels = JSON.parse(localStorage.getItem("SoftLabels"));
179
- // get menu items from store
180
- this.menuItems$ = this.store.pipe(select(sharedModuleReducers.getCurrentActiveMenuCategoryMenuItems), tap(menuList => this.routerActive(menuList)));
113
+ // get menu items and filter out HR, HR management & Activity Tracker
114
+ this.menuItems$ = this.store.pipe(select(sharedModuleReducers.getCurrentActiveMenuCategoryMenuItems), map(menuList => menuList.filter(item => {
115
+ var _a, _b;
116
+ const menuLabel = ((_a = item.menu) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || "";
117
+ const state = ((_b = item.state) === null || _b === void 0 ? void 0 : _b.toLowerCase()) || "";
118
+ // ❌ remove HR (direct link)
119
+ if (menuLabel === "hr" || state.startsWith("hrmanagment/employeelist")) {
120
+ return false;
121
+ }
122
+ // ❌ remove HR management dropdown & submenus
123
+ if (menuLabel.includes("hr managment") || menuLabel.includes("hr management")) {
124
+ return false;
125
+ }
126
+ if (state.startsWith("hrmanagment") || state.startsWith("hrmdetails")) {
127
+ return false;
128
+ }
129
+ // ❌ remove Activity Tracker
130
+ if (menuLabel.includes("activity tracker") || state.startsWith("activitytracker")) {
131
+ return false;
132
+ }
133
+ return true;
134
+ })), tap(menuList => this.routerActive(menuList)));
181
135
  // trigger menu load
182
136
  this.store.dispatch(new GetAllMenuItemsTriggered(MenuCategories.Main));
183
137
  // listen to route changes
@@ -202,10 +156,6 @@ export class SideBarComponent {
202
156
  leave(i) {
203
157
  this.showBackGroundColor = null;
204
158
  }
205
- toggleDropdown(item) {
206
- item.open = !item.open;
207
- }
208
- // ✅ NEW: unified method
209
159
  selectMenu(index, link) {
210
160
  this.selectedRowIndex = index;
211
161
  if (link) {
@@ -214,7 +164,7 @@ export class SideBarComponent {
214
164
  }
215
165
  }
216
166
  SideBarComponent.ɵfac = function SideBarComponent_Factory(t) { return new (t || SideBarComponent)(i0.ɵɵdirectiveInject(i1.Store), i0.ɵɵdirectiveInject(i2.Router)); };
217
- SideBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideBarComponent, selectors: [["app-sidebar"]], decls: 11, vars: 5, consts: [[1, "d-flex", "flex-column", "justify-content-center", "align-items-center", 2, "width", "100vw", "height", "calc(100vh - 60px)", "background-color", "#F9FAFB", "padding", "30px", "overflow", "auto"], [1, "row", "justify-content-center", "align-items-center", 2, "height", "auto"], [1, "col-6", "col-md-3", "mb-4"], [1, "card", "cursor-pointer", 2, "height", "150px", "border-radius", "12px", "transition", "all 0.3s ease", "background", "#fff", "box-shadow", "0 2px 6px rgba(0,0,0,0.08)", "border", "2px solid transparent", 3, "ngStyle", "mouseenter", "mouseleave", "click"], [1, "card-body", "d-flex", "flex-column", "align-items-center", "justify-content-center"], [2, "font-size", "40px", "margin-bottom", "10px", "width", "48px", "height", "48px", "display", "flex", "align-items", "center", "justify-content", "center", "background", "linear-gradient(135deg,#5de0e6,#004aad)", "-webkit-background-clip", "text", "-webkit-text-fill-color", "transparent", "background-clip", "text", "text-fill-color", "transparent"], [2, "font-size", "14px", "margin", "0", "color", "#111827", "text-align", "center"], ["class", "col-6 col-md-3 mb-4", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["class", "w-100 d-flex flex-column align-items-center cursor-pointer", 3, "click", 4, "ngIf"], ["class", "mt-2", 4, "ngIf"], ["class", "row w-100 mt-2", 4, "ngIf"], ["target", "_blank", 1, "w-100", "d-flex", "flex-column", "align-items-center", 3, "href"], [1, "w-100", "d-flex", "flex-column", "align-items-center", "cursor-pointer", 3, "click"], [2, "font-size", "24px", "margin-top", "5px", "width", "32px", "height", "32px", "background", "linear-gradient(135deg,#5de0e6,#004aad)", "-webkit-background-clip", "text", "-webkit-text-fill-color", "transparent", "background-clip", "text", "text-fill-color", "transparent"], [1, "mt-2"], ["class", "badge rounded-pill", 3, "ngStyle", 4, "ngFor", "ngForOf"], [1, "badge", "rounded-pill", 3, "ngStyle"], [1, "row", "w-100", "mt-2"], [1, "card", "cursor-pointer", 2, "height", "150px", "border-radius", "12px", "transition", "all 0.3s ease", "background", "#fff", "box-shadow", "0 2px 6px rgba(0,0,0,0.08)", "border", "2px solid transparent", 3, "click"]], template: function SideBarComponent_Template(rf, ctx) { if (rf & 1) {
167
+ SideBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideBarComponent, selectors: [["app-sidebar"]], decls: 11, vars: 5, consts: [[1, "d-flex", "flex-column", "justify-content-center", "align-items-center", 2, "width", "100vw", "height", "calc(100vh - 60px)", "padding", "30px", "overflow", "auto", "background", "linear-gradient(rgba(255,255,255,0.7), rgba(255,255,255,0.7))"], [1, "row", "justify-content-center", "align-items-center", 2, "height", "auto"], [1, "col-6", "col-md-3", "mb-4"], [1, "card", "cursor-pointer", 2, "height", "150px", "border-radius", "12px", "transition", "all 0.3s ease", "background", "#fff", "box-shadow", "0 2px 6px rgba(0,0,0,0.08)", "border", "2px solid transparent", 3, "ngStyle", "mouseenter", "mouseleave", "click"], [1, "card-body", "d-flex", "flex-column", "align-items-center", "justify-content-center"], [2, "font-size", "40px", "margin-bottom", "10px", "width", "48px", "height", "48px", "display", "flex", "align-items", "center", "justify-content", "center", "background", "linear-gradient(135deg,#f79a6b,#f1580c)", "-webkit-background-clip", "text", "-webkit-text-fill-color", "transparent", "background-clip", "text", "text-fill-color", "transparent"], [2, "font-size", "14px", "margin", "0", "color", "#111827", "text-align", "center"], ["class", "col-6 col-md-3 mb-4", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["class", "mt-2", 4, "ngIf"], ["target", "_blank", 1, "w-100", "d-flex", "flex-column", "align-items-center", 3, "href"], [1, "mt-2"], ["class", "badge rounded-pill", 3, "ngStyle", 4, "ngFor", "ngForOf"], [1, "badge", "rounded-pill", 3, "ngStyle"]], template: function SideBarComponent_Template(rf, ctx) { if (rf & 1) {
218
168
  i0.ɵɵelementStart(0, "div", 0);
219
169
  i0.ɵɵelementStart(1, "div", 1);
220
170
  i0.ɵɵelementStart(2, "div", 2);
@@ -222,15 +172,15 @@ SideBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideBarCom
222
172
  i0.ɵɵlistener("mouseenter", function SideBarComponent_Template_div_mouseenter_3_listener() { return ctx.enter(99); })("mouseleave", function SideBarComponent_Template_div_mouseleave_3_listener() { return ctx.leave(99); })("click", function SideBarComponent_Template_div_click_3_listener() { return ctx.selectMenu(99, "/dashboard-management"); });
223
173
  i0.ɵɵelementStart(4, "div", 4);
224
174
  i0.ɵɵelementStart(5, "mat-icon", 5);
225
- i0.ɵɵtext(6, "home");
175
+ i0.ɵɵtext(6, " assessment ");
226
176
  i0.ɵɵelementEnd();
227
177
  i0.ɵɵelementStart(7, "h6", 6);
228
- i0.ɵɵtext(8, "Home");
178
+ i0.ɵɵtext(8, "Report");
229
179
  i0.ɵɵelementEnd();
230
180
  i0.ɵɵelementEnd();
231
181
  i0.ɵɵelementEnd();
232
182
  i0.ɵɵelementEnd();
233
- i0.ɵɵtemplate(9, SideBarComponent_div_9_Template, 8, 7, "div", 7);
183
+ i0.ɵɵtemplate(9, SideBarComponent_div_9_Template, 6, 5, "div", 7);
234
184
  i0.ɵɵpipe(10, "async");
235
185
  i0.ɵɵelementEnd();
236
186
  i0.ɵɵelementEnd();
@@ -247,4 +197,4 @@ SideBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SideBarCom
247
197
  templateUrl: "./side-bar.component.html"
248
198
  }]
249
199
  }], function () { return [{ type: i1.Store }, { type: i2.Router }]; }, null); })();
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9zaWRlbmF2L3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvc2lkZW5hdi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEtBQUssb0JBQW9CLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7O0lDNEI3Qyw2QkFBOEU7SUFDMUUsbUNBSTRDO0lBQUEsWUFBZTtJQUFBLGlCQUFXO0lBQ3RFLDZCQUF3RTtJQUNwRSxZQUNKOzs7SUFBQSxpQkFBSztJQUNULDBCQUFlOzs7O0lBSmlDLGVBQWU7SUFBZixrQ0FBZTtJQUV2RCxlQUNKO0lBREksMElBQ0o7OztJQUlKLDZCQUE4QztJQUMxQyw2QkFBMkY7SUFDdkYsbUNBSTBDO0lBQUEsWUFBZTtJQUFBLGlCQUFXO0lBQ3BFLDZCQUF3RTtJQUNwRSxZQUNKOzs7SUFBQSxpQkFB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QUNqRixVQUFNLEVBQUUsQ0FBQyxJQUR3RSw2RUFDN0QsZUFBVyxFQUFFLEVBQUUsdUJBQXVCLENBQUMsSUFEc0I7UUFNL0YsOEJBQW9GO1FBQ2hGLG1DQUk4QztRQUFBLG9CQUFJO1FBQUEsaUJBQVc7UUFDN0QsNkJBQXdFO1FBQUEsb0JBQUk7UUFBQSxpQkFBSztRQUNyRixpQkFBTTtRQUNWLGlCQUFNO1FBQ1YsaUJBQU07UUFHTixpRUF5Rk07O1FBQ1YsaUJBQU07UUFDVixpQkFBTTs7UUE1R3FGLGVBSS9FO1FBSitFLHFIQUkvRTtRQWE4QyxlQUF5QjtRQUF6QiwrREFBeUI7O3VGRFR0RSxnQkFBZ0I7Y0FKNUIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixXQUFXLEVBQUUsMkJBQTJCO2FBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSBcIi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvaW5kZXhcIjtcclxuaW1wb3J0ICogYXMgc2hhcmVkTW9kdWxlUmVkdWNlcnMgZnJvbSBcIi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvaW5kZXhcIjtcclxuaW1wb3J0IHsgR2V0QWxsTWVudUl0ZW1zVHJpZ2dlcmVkIH0gZnJvbSBcIi4uLy4uL3N0b3JlL2FjdGlvbnMvbWVudWl0ZW1zLmFjdGlvbnNcIjtcclxuaW1wb3J0IHsgSU1lbnVJdGVtIH0gZnJvbSBcIi4uLy4uL21vZGVscy9JTWVudUl0ZW1cIjtcclxuaW1wb3J0IHsgTWVudUNhdGVnb3JpZXMgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzL21lbnUtY2F0ZWdvcmllc1wiO1xyXG5pbXBvcnQgeyBTb2Z0TGFiZWxDb25maWd1cmF0aW9uTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NvZnRsYWJlbHMtbW9kZWxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiYXBwLXNpZGViYXJcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vc2lkZS1iYXIuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZUJhckNvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxJTWVudUl0ZW1bXT47XHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRSb3dJbmRleDogbnVtYmVyO1xyXG4gICAgcHVibGljIHNob3dCYWNrR3JvdW5kQ29sb3I6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgcHVibGljIHNvZnRMYWJlbHM6IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPFN0YXRlPiwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLy8gbG9hZCBzb2Z0IGxhYmVsc1xyXG4gICAgICAgIHRoaXMuc29mdExhYmVscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJTb2Z0TGFiZWxzXCIpKTtcclxuXHJcbiAgICAgICAgLy8gZ2V0IG1lbnUgaXRlbXMgZnJvbSBzdG9yZVxyXG4gICAgICAgIHRoaXMubWVudUl0ZW1zJCA9IHRoaXMuc3RvcmUucGlwZShcclxuICAgICAgICAgICAgc2VsZWN0KHNoYXJlZE1vZHVsZVJlZHVjZXJzLmdldEN1cnJlbnRBY3RpdmVNZW51Q2F0ZWdvcnlNZW51SXRlbXMpLFxyXG4gICAgICAgICAgICB0YXAobWVudUxpc3QgPT4gdGhpcy5yb3V0ZXJBY3RpdmUobWVudUxpc3QpKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vIHRyaWdnZXIgbWVudSBsb2FkXHJcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgR2V0QWxsTWVudUl0ZW1zVHJpZ2dlcmVkKE1lbnVDYXRlZ29yaWVzLk1haW4pKTtcclxuXHJcbiAgICAgICAgLy8gbGlzdGVuIHRvIHJvdXRlIGNoYW5nZXNcclxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMkLnN1YnNjcmliZShsaXN0ID0+IHRoaXMucm91dGVyQWN0aXZlKGxpc3QpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJvdXRlckFjdGl2ZShtZW51TGlzdDogSU1lbnVJdGVtW10pIHtcclxuICAgICAgICBpZiAobWVudUxpc3QgJiYgbWVudUxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IG1lbnVMaXN0LmZpbmRJbmRleChpID0+IHRoaXMucm91dGVyLnVybCA9PSBcIi9cIiArIGkuc3RhdGUpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUm93SW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyLnVybC5pbmNsdWRlcyhcIi9kYXNoYm9hcmQtbWFuYWdlbWVudFwiKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvd0luZGV4ID0gOTk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZW50ZXIoaTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zaG93QmFja0dyb3VuZENvbG9yID0gaTtcclxuICAgIH1cclxuXHJcbiAgICBsZWF2ZShpOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNob3dCYWNrR3JvdW5kQ29sb3IgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZURyb3Bkb3duKGl0ZW06IGFueSkge1xyXG4gICAgICAgIGl0ZW0ub3BlbiA9ICFpdGVtLm9wZW47XHJcbiAgICB9XHJcblxyXG4gICAgLy8g4pyFIE5FVzogdW5pZmllZCBtZXRob2RcclxuICAgIHNlbGVjdE1lbnUoaW5kZXg6IG51bWJlciwgbGluaz86IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IGluZGV4O1xyXG4gICAgICAgIGlmIChsaW5rKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtsaW5rXSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgc3R5bGU9XCJ3aWR0aDoxMDB2dzsgaGVpZ2h0OmNhbGMoMTAwdmggLSA2MHB4KTsgYmFja2dyb3VuZC1jb2xvcjojRjlGQUZCOyBwYWRkaW5nOjMwcHg7IG92ZXJmbG93OmF1dG87XCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiaGVpZ2h0OmF1dG87XCI+XHJcblxyXG4gICAgICAgIDwhLS0gRml4ZWQgSG9tZSBDYXJkIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGN1cnNvci1wb2ludGVyXCIgc3R5bGU9XCJoZWlnaHQ6MTUwcHg7IGJvcmRlci1yYWRpdXM6MTJweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOyBiYWNrZ3JvdW5kOiNmZmY7IFxyXG4gICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsMC4wOCk7IGJvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnQ7XCIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoOTkpXCJcclxuICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImxlYXZlKDk5KVwiIChjbGljayk9XCJzZWxlY3RNZW51KDk5LCAnL2Rhc2hib2FyZC1tYW5hZ2VtZW50JylcIiBbbmdTdHlsZV09XCIoc2VsZWN0ZWRSb3dJbmRleCA9PSA5OSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IDk5KSAmJiB7XHJcbiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOicjREJFQUZFJyxcclxuICAgICAgICAgICAgICAnYm9yZGVyLWltYWdlJzonbGluZWFyLWdyYWRpZW50KDEzNWRlZywjNWRlMGU2LCMwMDRhYWQpIDEnLFxyXG4gICAgICAgICAgICAgICdib3gtc2hhZG93JzonMCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMTUpJ1xyXG4gICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6NDBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB3aWR0aDo0OHB4OyBoZWlnaHQ6NDhweDtcclxuICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzVkZTBlNiwjMDA0YWFkKTtcclxuICAgICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6dGV4dDsgdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1wiPmhvbWU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+SG9tZTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gRHluYW1pYyBNZW51IENhcmRzIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgKG1lbnVJdGVtcyQgfCBhc3luYyk7IGxldCBpID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGN1cnNvci1wb2ludGVyXCIgc3R5bGU9XCJoZWlnaHQ6MTUwcHg7IGJvcmRlci1yYWRpdXM6MTJweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOyBiYWNrZ3JvdW5kOiNmZmY7XHJcbiAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTsgYm9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtcIiAobW91c2VlbnRlcik9XCJlbnRlcihpKVwiXHJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZShpKVwiIChjbGljayk9XCJzZWxlY3RNZW51KGksIGl0ZW0uc3RhdGUpXCIgW25nU3R5bGVdPVwiKHNlbGVjdGVkUm93SW5kZXggPT0gaSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IGkpICYmIHtcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6JyNEQkVBRkUnLFxyXG4gICAgICAgICAgICAgICdib3JkZXItaW1hZ2UnOidsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCM1ZGUwZTYsIzAwNGFhZCkgMScsXHJcbiAgICAgICAgICAgICAgJ2JveC1zaGFkb3cnOicwIDRweCAxNXB4IHJnYmEoMCwwLDAsMC4xNSknXHJcbiAgICAgICAgICB9XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBOb3JtYWwgbGluayAvIGFwcGxpY2F0aW9uIGxpbmsgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2xpbmsnIHx8IGl0ZW0udHlwZSA9PT0gJ2FwcGxpY2F0aW9ubGluaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjNWRlMGU2LCMwMDRhYWQpO1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6dGV4dDsgdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1wiPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm1lbnUgPyAoaXRlbS5tZW51IHwgc29mdExhYmVsc1BpcGUgOiBzb2Z0TGFiZWxzKSA6IChpdGVtLm5hbWUgfCB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRXh0ZXJuYWwgbGluayAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZXh0TGluaydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiaXRlbS5zdGF0ZVwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzVkZTBlNiwjMDA0YWFkKTtcclxuICAgICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDp0ZXh0OyB0ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XCI+e3sgaXRlbS5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5tZW51ID8gKGl0ZW0ubWVudSB8IHNvZnRMYWJlbHNQaXBlIDogc29mdExhYmVscykgOiAoaXRlbS5uYW1lIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIERyb3Bkb3duIChwYXJlbnQpIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdkcm9wRG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjNWRlMGU2LCMwMDRhYWQpO1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6dGV4dDsgdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1wiPnt7IGl0ZW0uaWNvbiB9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm1lbnUgPyAoaXRlbS5tZW51IHwgc29mdExhYmVsc1BpcGUgOiBzb2Z0TGFiZWxzKSA6IChpdGVtLm5hbWUgfCB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZToyNHB4OyBtYXJnaW4tdG9wOjVweDsgd2lkdGg6MzJweDsgaGVpZ2h0OjMycHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzVkZTBlNiwjMDA0YWFkKTtcclxuICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ub3BlbiA/ICdleHBhbmRfbGVzcycgOiAnZXhwYW5kX21vcmUnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gQmFkZ2VzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmJhZGdlcz8ubGVuZ3RoXCIgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBpdGVtLmJhZGdlc1wiIGNsYXNzPVwiYmFkZ2Ugcm91bmRlZC1waWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogYmFkZ2UuY29sb3IgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYmFkZ2UudmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gRHJvcGRvd24gc3VibWVudSBhcyB1bmlmb3JtIGNhcmRzIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG10LTJcIiAqbmdJZj1cIml0ZW0ub3BlbiAmJiBpdGVtLnR5cGUgPT09ICdkcm9wRG93bidcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCIgKm5nRm9yPVwibGV0IGl0ZW1MdkwyIG9mIGl0ZW0uc3ViXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cImhlaWdodDoxNTBweDsgYm9yZGVyLXJhZGl1czoxMnB4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7IGJhY2tncm91bmQ6I2ZmZjtcclxuICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTsgYm9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TWVudShpLCAnLycgKyBpdGVtLnN0YXRlICsgJy8nICsgaXRlbUx2TDIuc3RhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6NDBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB3aWR0aDo0OHB4OyBoZWlnaHQ6NDhweDtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjNWRlMGU2LCMwMDRhYWQpO1xyXG4gICAgICAgICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOnRleHQ7IHRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcIj57eyBpdGVtTHZMMi5pY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbUx2TDIubWVudSA/IChpdGVtTHZMMi5tZW51IHwgc29mdExhYmVsc1BpcGUgOiBzb2Z0TGFiZWxzKSA6IChpdGVtTHZMMi5uYW1lIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvY29tcG9uZW50cy9zaWRlbmF2L3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvc2lkZW5hdi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxLQUFLLG9CQUFvQixNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztJQzhCN0MsNkJBQThFO0lBQzFFLG1DQUl5RDtJQUNyRCxZQUNKO0lBQUEsaUJBQVc7SUFDWCw2QkFBd0U7SUFDcEUsWUFDSjs7O0lBQUEsaUJBQUs7SUFDVCwwQkFBZTs7OztJQUxQLGVBQ0o7SUFESSw2Q0FDSjtJQUVJLGVBQ0o7SUFESSwwSUFDSjs7O0lBSUosNkJBQThDO0lBQzFDLDZCQUEyRjtJQUN2RixtQ0FJdUQ7SUFDbkQsWUFDSjtJQUFBLGlCQUFXO0lBQ1gsNkJBQXdFO0lBQ3BFLFlBQ0o7OztJ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RzVFLDhCQUFpQztRQUM3Qiw4QkFNRTtRQUwwRSxvR0FBYyxVQUFNLEVBQUUsQ0FBQyxJQUFDLHVGQUNsRixVQUFNLEVBQUUsQ0FBQyxJQUR5RSw2RUFDOUQsZUFBVyxFQUFFLEVBQUUsdUJBQXVCLENBQUMsSUFEdUI7UUFNaEcsOEJBQW9GO1FBQ2hGLG1DQUkyRDtRQUN2RCw0QkFDSjtRQUFBLGlCQUFXO1FBQ1gsNkJBQXdFO1FBQUEsc0JBQU07UUFBQSxpQkFBSztRQUN2RixpQkFBTTtRQUNWLGlCQUFNO1FBQ1YsaUJBQU07UUFHTixpRUFtRE07O1FBQ1YsaUJBQU07UUFDVixpQkFBTTs7UUF4RXFGLGVBSTlFO1FBSjhFLHFIQUk5RTtRQWU2QyxlQUF5QjtRQUF6QiwrREFBeUI7O3VGRFh0RSxnQkFBZ0I7Y0FKNUIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixXQUFXLEVBQUUsMkJBQTJCO2FBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YXAsIG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuaW1wb3J0IHsgU3RhdGUgfSBmcm9tIFwiLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9pbmRleFwiO1xyXG5pbXBvcnQgKiBhcyBzaGFyZWRNb2R1bGVSZWR1Y2VycyBmcm9tIFwiLi8uLi8uLi9zdG9yZS9yZWR1Y2Vycy9pbmRleFwiO1xyXG5pbXBvcnQgeyBHZXRBbGxNZW51SXRlbXNUcmlnZ2VyZWQgfSBmcm9tIFwiLi4vLi4vc3RvcmUvYWN0aW9ucy9tZW51aXRlbXMuYWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBJTWVudUl0ZW0gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL0lNZW51SXRlbVwiO1xyXG5pbXBvcnQgeyBNZW51Q2F0ZWdvcmllcyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvbWVudS1jYXRlZ29yaWVzXCI7XHJcbmltcG9ydCB7IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvc29mdGxhYmVscy1tb2RlbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhcHAtc2lkZWJhclwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zaWRlLWJhci5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlQmFyQ29tcG9uZW50IHtcclxuICAgIHB1YmxpYyBtZW51SXRlbXMkOiBPYnNlcnZhYmxlPElNZW51SXRlbVtdPjtcclxuICAgIHB1YmxpYyBzZWxlY3RlZFJvd0luZGV4OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgc2hvd0JhY2tHcm91bmRDb2xvcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwdWJsaWMgc29mdExhYmVsczogU29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8U3RhdGU+LCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICAvLyBsb2FkIHNvZnQgbGFiZWxzXHJcbiAgICAgICAgdGhpcy5zb2Z0TGFiZWxzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlNvZnRMYWJlbHNcIikpO1xyXG5cclxuICAgICAgICAvLyBnZXQgbWVudSBpdGVtcyBhbmQgZmlsdGVyIG91dCBIUiwgSFIgbWFuYWdlbWVudCAmIEFjdGl2aXR5IFRyYWNrZXJcclxuICAgICAgICB0aGlzLm1lbnVJdGVtcyQgPSB0aGlzLnN0b3JlLnBpcGUoXHJcbiAgICAgICAgICAgIHNlbGVjdChzaGFyZWRNb2R1bGVSZWR1Y2Vycy5nZXRDdXJyZW50QWN0aXZlTWVudUNhdGVnb3J5TWVudUl0ZW1zKSxcclxuICAgICAgICAgICAgbWFwKG1lbnVMaXN0ID0+XHJcbiAgICAgICAgICAgICAgICBtZW51TGlzdC5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVudUxhYmVsID0gKGl0ZW0gYXMgYW55KS5tZW51Py50b0xvd2VyQ2FzZSgpIHx8IFwiXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBpdGVtLnN0YXRlPy50b0xvd2VyQ2FzZSgpIHx8IFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOKdjCByZW1vdmUgSFIgKGRpcmVjdCBsaW5rKVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtZW51TGFiZWwgPT09IFwiaHJcIiB8fCBzdGF0ZS5zdGFydHNXaXRoKFwiaHJtYW5hZ21lbnQvZW1wbG95ZWVsaXN0XCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOKdjCByZW1vdmUgSFIgbWFuYWdlbWVudCBkcm9wZG93biAmIHN1Ym1lbnVzXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1lbnVMYWJlbC5pbmNsdWRlcyhcImhyIG1hbmFnbWVudFwiKSB8fCBtZW51TGFiZWwuaW5jbHVkZXMoXCJociBtYW5hZ2VtZW50XCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLnN0YXJ0c1dpdGgoXCJocm1hbmFnbWVudFwiKSB8fCBzdGF0ZS5zdGFydHNXaXRoKFwiaHJtZGV0YWlsc1wiKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyDinYwgcmVtb3ZlIEFjdGl2aXR5IFRyYWNrZXJcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWVudUxhYmVsLmluY2x1ZGVzKFwiYWN0aXZpdHkgdHJhY2tlclwiKSB8fCBzdGF0ZS5zdGFydHNXaXRoKFwiYWN0aXZpdHl0cmFja2VyXCIpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGFwKG1lbnVMaXN0ID0+IHRoaXMucm91dGVyQWN0aXZlKG1lbnVMaXN0KSlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvLyB0cmlnZ2VyIG1lbnUgbG9hZFxyXG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEdldEFsbE1lbnVJdGVtc1RyaWdnZXJlZChNZW51Q2F0ZWdvcmllcy5NYWluKSk7XHJcblxyXG4gICAgICAgIC8vIGxpc3RlbiB0byByb3V0ZSBjaGFuZ2VzXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWVudUl0ZW1zJC5zdWJzY3JpYmUobGlzdCA9PiB0aGlzLnJvdXRlckFjdGl2ZShsaXN0KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByb3V0ZXJBY3RpdmUobWVudUxpc3Q6IElNZW51SXRlbVtdKSB7XHJcbiAgICAgICAgaWYgKG1lbnVMaXN0ICYmIG1lbnVMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBtZW51TGlzdC5maW5kSW5kZXgoaSA9PiB0aGlzLnJvdXRlci51cmwgPT0gXCIvXCIgKyBpLnN0YXRlKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvd0luZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoXCIvZGFzaGJvYXJkLW1hbmFnZW1lbnRcIikpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dJbmRleCA9IDk5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVudGVyKGk6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2hvd0JhY2tHcm91bmRDb2xvciA9IGk7XHJcbiAgICB9XHJcblxyXG4gICAgbGVhdmUoaTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zaG93QmFja0dyb3VuZENvbG9yID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RNZW51KGluZGV4OiBudW1iZXIsIGxpbms/OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUm93SW5kZXggPSBpbmRleDtcclxuICAgICAgICBpZiAobGluaykge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbGlua10pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJ3aWR0aDoxMDB2dzsgaGVpZ2h0OmNhbGMoMTAwdmggLSA2MHB4KTsgcGFkZGluZzozMHB4OyBvdmVyZmxvdzphdXRvO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwwLjcpLCByZ2JhKDI1NSwyNTUsMjU1LDAuNykpO1wiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImhlaWdodDphdXRvO1wiPlxyXG5cclxuICAgICAgICA8IS0tIEZpeGVkIFJlcG9ydCBDYXJkIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBjb2wtbWQtMyBtYi00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGN1cnNvci1wb2ludGVyXCIgc3R5bGU9XCJoZWlnaHQ6MTUwcHg7IGJvcmRlci1yYWRpdXM6MTJweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOyBiYWNrZ3JvdW5kOiNmZmY7XHJcbiAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6MCAycHggNnB4IHJnYmEoMCwwLDAsMC4wOCk7IGJvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnQ7XCIgKG1vdXNlZW50ZXIpPVwiZW50ZXIoOTkpXCJcclxuICAgICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImxlYXZlKDk5KVwiIChjbGljayk9XCJzZWxlY3RNZW51KDk5LCAnL2Rhc2hib2FyZC1tYW5hZ2VtZW50JylcIiBbbmdTdHlsZV09XCIoc2VsZWN0ZWRSb3dJbmRleCA9PSA5OSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IDk5KSAmJiB7XHJcbiAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOicjREJFQUZFJyxcclxuICAgICAgICAgICAgICAnYm9yZGVyLWltYWdlJzonbGluZWFyLWdyYWRpZW50KDEzNWRlZywjZjc5YTZiLCNmMTU4MGMpIDEnLFxyXG4gICAgICAgICAgICAgICdib3gtc2hhZG93JzonMCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMTUpJ1xyXG4gICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOjQwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgd2lkdGg6NDhweDsgaGVpZ2h0OjQ4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Y3OWE2YiwjZjE1ODBjKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6dGV4dDsgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDp0ZXh0OyB0ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRcclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBzdHlsZT1cImZvbnQtc2l6ZToxNHB4OyBtYXJnaW46MDsgY29sb3I6IzExMTgyNzsgdGV4dC1hbGlnbjpjZW50ZXI7XCI+UmVwb3J0PC9oNj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBEeW5hbWljIE1lbnUgQ2FyZHMgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1tZC0zIG1iLTRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiAobWVudUl0ZW1zJCB8IGFzeW5jKTsgbGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cImhlaWdodDoxNTBweDsgYm9yZGVyLXJhZGl1czoxMnB4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7IGJhY2tncm91bmQ6I2ZmZjtcclxuICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzowIDJweCA2cHggcmdiYSgwLDAsMCwwLjA4KTsgYm9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtcIiAobW91c2VlbnRlcik9XCJlbnRlcihpKVwiXHJcbiAgICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJsZWF2ZShpKVwiIChjbGljayk9XCJzZWxlY3RNZW51KGksIGl0ZW0uc3RhdGUpXCIgW25nU3R5bGVdPVwiKHNlbGVjdGVkUm93SW5kZXggPT0gaSB8fCBzaG93QmFja0dyb3VuZENvbG9yID09IGkpICYmIHtcclxuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6JyNEQkVBRkUnLFxyXG4gICAgICAgICAgICAgICdib3JkZXItaW1hZ2UnOidsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmNzlhNmIsI2YxNTgwYykgMScsXHJcbiAgICAgICAgICAgICAgJ2JveC1zaGFkb3cnOicwIDRweCAxNXB4IHJnYmEoMCwwLDAsMC4xNSknXHJcbiAgICAgICAgICAgfVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTm9ybWFsIGxpbmsgLyBhcHBsaWNhdGlvbiBsaW5rIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdsaW5rJyB8fCBpdGVtLnR5cGUgPT09ICdhcHBsaWNhdGlvbmxpbmsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo0MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IHdpZHRoOjQ4cHg7IGhlaWdodDo0OHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZjc5YTZiLCNmMTU4MGMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOnRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDp0ZXh0OyB0ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmljb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg2IHN0eWxlPVwiZm9udC1zaXplOjE0cHg7IG1hcmdpbjowOyBjb2xvcjojMTExODI3OyB0ZXh0LWFsaWduOmNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubWVudSA/IChpdGVtLm1lbnUgfCBzb2Z0TGFiZWxzUGlwZSA6IHNvZnRMYWJlbHMpIDogKGl0ZW0ubmFtZSB8IHRyYW5zbGF0ZSkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBFeHRlcm5hbCBsaW5rIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdleHRMaW5rJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJpdGVtLnN0YXRlXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6NDBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB3aWR0aDo0OHB4OyBoZWlnaHQ6NDhweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmNzlhNmIsI2YxNTgwYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0OyAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjp0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDp0ZXh0OyB0ZXh0LWZpbGwtY29sb3I6dHJhbnNwYXJlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pY29uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IHN0eWxlPVwiZm9udC1zaXplOjE0cHg7IG1hcmdpbjowOyBjb2xvcjojMTExODI3OyB0ZXh0LWFsaWduOmNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm1lbnUgPyAoaXRlbS5tZW51IHwgc29mdExhYmVsc1BpcGUgOiBzb2Z0TGFiZWxzKSA6IChpdGVtLm5hbWUgfCB0cmFuc2xhdGUpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gQmFkZ2VzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmJhZGdlcz8ubGVuZ3RoXCIgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBpdGVtLmJhZGdlc1wiIGNsYXNzPVwiYmFkZ2Ugcm91bmRlZC1waWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgYmFja2dyb3VuZDogYmFkZ2UuY29sb3IgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYmFkZ2UudmFsdWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,16 +1,17 @@
1
- import { LiveWelcomePageComponent } from './components/lives/lives-welcome-page';
2
- //import { settingsComponent } from "@thetradeengineorg1/snova-admin-module";
1
+ import { AdminLayoutComponent } from './components/admin-layout/admin-layout.component';
3
2
  import { AccountAndBillingComponent } from './components/Payments/account.component';
4
3
  import { CompanyPlansComponent } from './components/Payments/company-plans.component';
4
+ import { LiveWelcomePageComponent } from './components/lives/lives-welcome-page';
5
5
  export const ShellRouts = [
6
6
  {
7
- path: "",
7
+ path: '',
8
+ component: AdminLayoutComponent,
8
9
  children: [
9
- // { path: 'settings', component: settingsComponent, data: { title: 'settings', breadcrumb: 'settings' } },
10
- { path: 'Accounts', component: AccountAndBillingComponent, data: { title: 'Account & Billing', breadcrumb: 'Account & Billing' } },
11
- { path: 'payments-plans', component: CompanyPlansComponent, data: { title: 'Payments', breadcrumb: 'Payments' } },
12
- { path: 'welcome', component: LiveWelcomePageComponent, data: { title: 'welcome', breadcrumb: 'welcome' } }
10
+ // no default child here on purpose layout shows grid when there’s no child
11
+ { path: 'accounts', component: AccountAndBillingComponent },
12
+ { path: 'payments-plans', component: CompanyPlansComponent },
13
+ { path: 'welcome', component: LiveWelcomePageComponent }
13
14
  ]
14
15
  }
15
16
  ];
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwucm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL3NoZWxsLnJvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsNkVBQTZFO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBVztJQUM5QjtRQUNJLElBQUksRUFBRSxFQUFFO1FBQ1IsUUFBUSxFQUFFO1lBQ2hCLG9IQUFvSDtZQUMxRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsRUFBRTtZQUNsSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDakgsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsRUFBRTtTQUM5RztLQUNKO0NBQ0osQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExpdmVXZWxjb21lUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9saXZlcy9saXZlcy13ZWxjb21lLXBhZ2UnO1xyXG4vL2ltcG9ydCB7IHNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSBcIkB0aGV0cmFkZWVuZ2luZW9yZzEvc25vdmEtYWRtaW4tbW9kdWxlXCI7XHJcbmltcG9ydCB7IEFjY291bnRBbmRCaWxsaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL1BheW1lbnRzL2FjY291bnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcGFueVBsYW5zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL1BheW1lbnRzL2NvbXBhbnktcGxhbnMuY29tcG9uZW50JztcclxuZXhwb3J0IGNvbnN0IFNoZWxsUm91dHM6IFJvdXRlcyA9IFtcclxuICAgIHtcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIGNoaWxkcmVuOiBbXHJcbiAgLy8gICAgICAgICAgeyBwYXRoOiAnc2V0dGluZ3MnLCBjb21wb25lbnQ6IHNldHRpbmdzQ29tcG9uZW50LCBkYXRhOiB7IHRpdGxlOiAnc2V0dGluZ3MnLCBicmVhZGNydW1iOiAnc2V0dGluZ3MnIH0gfSxcclxuICAgICAgICAgICAgeyBwYXRoOiAnQWNjb3VudHMnLCBjb21wb25lbnQ6IEFjY291bnRBbmRCaWxsaW5nQ29tcG9uZW50LCBkYXRhOiB7IHRpdGxlOiAnQWNjb3VudCAmIEJpbGxpbmcnLCBicmVhZGNydW1iOiAnQWNjb3VudCAmIEJpbGxpbmcnIH0gfSxcclxuICAgICAgICAgICAgeyBwYXRoOiAncGF5bWVudHMtcGxhbnMnLCBjb21wb25lbnQ6IENvbXBhbnlQbGFuc0NvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogJ1BheW1lbnRzJywgYnJlYWRjcnVtYjogJ1BheW1lbnRzJyB9IH0sXHJcbiAgICAgICAgICAgIHsgcGF0aDogJ3dlbGNvbWUnLCBjb21wb25lbnQ6IExpdmVXZWxjb21lUGFnZUNvbXBvbmVudCwgZGF0YTogeyB0aXRsZTogJ3dlbGNvbWUnLCBicmVhZGNydW1iOiAnd2VsY29tZScgfSB9XHJcbiAgICAgICAgXVxyXG4gICAgfVxyXG5dIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwucm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL3NoZWxsLnJvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFXO0lBQzlCO1FBQ0ksSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLFFBQVEsRUFBRTtZQUNOLDZFQUE2RTtZQUM3RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFO1lBQzNELEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtZQUM1RCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFO1NBQzNEO0tBQ0o7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWRtaW5MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbGF5b3V0L2FkbWluLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY2NvdW50QW5kQmlsbGluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9QYXltZW50cy9hY2NvdW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbXBhbnlQbGFuc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9QYXltZW50cy9jb21wYW55LXBsYW5zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpdmVXZWxjb21lUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9saXZlcy9saXZlcy13ZWxjb21lLXBhZ2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNoZWxsUm91dHM6IFJvdXRlcyA9IFtcclxuICAgIHtcclxuICAgICAgICBwYXRoOiAnJyxcclxuICAgICAgICBjb21wb25lbnQ6IEFkbWluTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgICAgICAgIC8vIG5vIGRlZmF1bHQgY2hpbGQgaGVyZSBvbiBwdXJwb3NlIOKAkyBsYXlvdXQgc2hvd3MgZ3JpZCB3aGVuIHRoZXJl4oCZcyBubyBjaGlsZFxyXG4gICAgICAgICAgICB7IHBhdGg6ICdhY2NvdW50cycsIGNvbXBvbmVudDogQWNjb3VudEFuZEJpbGxpbmdDb21wb25lbnQgfSxcclxuICAgICAgICAgICAgeyBwYXRoOiAncGF5bWVudHMtcGxhbnMnLCBjb21wb25lbnQ6IENvbXBhbnlQbGFuc0NvbXBvbmVudCB9LFxyXG4gICAgICAgICAgICB7IHBhdGg6ICd3ZWxjb21lJywgY29tcG9uZW50OiBMaXZlV2VsY29tZVBhZ2VDb21wb25lbnQgfVxyXG4gICAgICAgIF1cclxuICAgIH1cclxuXTtcclxuIl19