@byuhbll/components 4.0.0-alpha.9 → 4.0.1

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 (52) hide show
  1. package/esm2022/lib/animations/animations.mjs +5 -5
  2. package/esm2022/lib/checkbox/checkbox.component.mjs +15 -0
  3. package/esm2022/lib/contact-utils.mjs +41 -0
  4. package/esm2022/lib/copy-tooltip/copy-tooltip.component.mjs +3 -3
  5. package/esm2022/lib/expand-collapse/expand-collapse.component.mjs +3 -3
  6. package/esm2022/lib/hbll-footer/hbll-footer.component.mjs +98 -0
  7. package/esm2022/lib/hbll-header/hbll-header.component.mjs +30 -25
  8. package/esm2022/lib/hbll-header/nav-bar/nav-bar.component.mjs +252 -218
  9. package/esm2022/lib/hbll-header/nav-bar-dropdown/nav-bar-dropdown.component.mjs +3 -3
  10. package/esm2022/lib/header-with-impersonation/header-with-impersonation.component.mjs +39 -0
  11. package/esm2022/lib/impersonate-modal/impersonate-modal.component.mjs +190 -0
  12. package/esm2022/lib/impersonation-banner/impersonation-banner.component.mjs +149 -0
  13. package/esm2022/lib/impersonation-banner/models/application-access.mjs +7 -0
  14. package/esm2022/lib/impersonation-banner/models/person-summary.mjs +15 -0
  15. package/esm2022/lib/models/token-payload.mjs +2 -0
  16. package/esm2022/lib/multi-select/multi-select.component.mjs +115 -0
  17. package/esm2022/lib/pipes/hbll-item-type-icon.pipe.mjs +128 -0
  18. package/esm2022/lib/ss-search-bar/advanced-search/advanced-search.component.mjs +5 -5
  19. package/esm2022/lib/ss-search-bar/date-range/date-range.component.mjs +3 -3
  20. package/esm2022/lib/ss-search-bar/ss-search-bar.component.mjs +3 -3
  21. package/esm2022/lib/utils.mjs +2 -3
  22. package/esm2022/public-api.mjs +7 -2
  23. package/fesm2022/byuhbll-components.mjs +809 -457
  24. package/fesm2022/byuhbll-components.mjs.map +1 -1
  25. package/lib/{hbll-checkbox/hbll-checkbox.component.d.ts → checkbox/checkbox.component.d.ts} +1 -1
  26. package/lib/contact-utils.d.ts +19 -0
  27. package/lib/hbll-footer/hbll-footer.component.d.ts +30 -0
  28. package/lib/hbll-header/hbll-header.component.d.ts +12 -16
  29. package/lib/hbll-header/nav-bar/nav-bar.component.d.ts +5 -3
  30. package/lib/header-with-impersonation/header-with-impersonation.component.d.ts +20 -0
  31. package/lib/{hbll-header/impersonate-modal → impersonate-modal}/impersonate-modal.component.d.ts +3 -1
  32. package/lib/impersonation-banner/impersonation-banner.component.d.ts +52 -0
  33. package/lib/{hbll-multi-select/hbll-multi-select.component.d.ts → multi-select/multi-select.component.d.ts} +1 -1
  34. package/lib/pipes/hbll-item-type-icon.pipe.d.ts +17 -0
  35. package/lib/ss-search-bar/advanced-search/advanced-search.component.d.ts +4 -1
  36. package/package.json +1 -1
  37. package/public-api.d.ts +6 -1
  38. package/styles/scss/_mixins.scss +1 -1
  39. package/styles/scss/_vars.scss +1 -0
  40. package/styles/scss/base.scss +1 -2
  41. package/styles/scss/shared.scss +8 -0
  42. package/esm2022/lib/hbll-checkbox/hbll-checkbox.component.mjs +0 -15
  43. package/esm2022/lib/hbll-header/impersonate-modal/impersonate-modal.component.mjs +0 -188
  44. package/esm2022/lib/hbll-header/models/application-access.mjs +0 -7
  45. package/esm2022/lib/hbll-header/models/person-summary.mjs +0 -15
  46. package/esm2022/lib/hbll-header/models/token-payload.mjs +0 -2
  47. package/esm2022/lib/hbll-impersonation-banner/hbll-impersonation-banner.component.mjs +0 -129
  48. package/esm2022/lib/hbll-multi-select/hbll-multi-select.component.mjs +0 -115
  49. package/lib/hbll-impersonation-banner/hbll-impersonation-banner.component.d.ts +0 -30
  50. /package/lib/{hbll-header → impersonation-banner}/models/application-access.d.ts +0 -0
  51. /package/lib/{hbll-header → impersonation-banner}/models/person-summary.d.ts +0 -0
  52. /package/lib/{hbll-header/models → models}/token-payload.d.ts +0 -0
@@ -1,14 +1,14 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, inject, input, ViewChildren } from '@angular/core';
2
+ import { Component, computed, inject, input, ViewChildren } from '@angular/core';
3
3
  import { NavBarDropdownComponent } from '../nav-bar-dropdown/nav-bar-dropdown.component';
4
4
  import { isScreenSmallSignal } from '../../utils';
5
5
  import { BreakpointObserver } from '@angular/cdk/layout';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
- const mainSiteBaseUri = 'https://lib.byu.edu';
9
8
  export class NavBarComponent {
10
9
  constructor() {
11
10
  this.bo = inject(BreakpointObserver);
11
+ this.mainSiteBaseUrl = input.required();
12
12
  this.height = input(null);
13
13
  // If any section opens up, close all others. Only one section open at a time.
14
14
  this.handleDropdownOpenEvent = (title) => {
@@ -19,289 +19,323 @@ export class NavBarComponent {
19
19
  });
20
20
  };
21
21
  this.isScreenSmall = isScreenSmallSignal(this.bo);
22
- this.navInfos = [
23
- {
24
- title: 'Materials',
25
- mainSection: {
26
- title: 'Formats',
27
- links: [
28
- { label: 'Articles', url: `${mainSiteBaseUri}/articles` },
29
- { label: 'Audio', url: `${mainSiteBaseUri}/audio` },
30
- { label: 'Books', url: `${mainSiteBaseUri}/books` },
31
- { label: 'Video', url: `${mainSiteBaseUri}/video` },
32
- ],
33
- auxiliaryLink: {
34
- label: 'See all formats',
35
- url: `${mainSiteBaseUri}/formats`,
36
- },
37
- },
38
- otherSections: [
39
- {
22
+ this.navInfos = computed(() => {
23
+ return [
24
+ {
25
+ title: 'Materials',
26
+ mainSection: {
40
27
  title: 'Resource Collections',
41
28
  links: [
42
29
  {
43
30
  label: 'Subject Area Collections',
44
- url: `${mainSiteBaseUri}/collections`,
31
+ url: `${this.mainSiteBaseUrl()}/collections`,
45
32
  },
46
- { label: 'Databases', url: `${mainSiteBaseUri}/databases` },
47
- { label: 'Journals', url: `${mainSiteBaseUri}/journals` },
33
+ { label: 'Databases', url: `${this.mainSiteBaseUrl()}/databases` },
34
+ { label: 'Journals', url: `${this.mainSiteBaseUrl()}/journals` },
48
35
  {
49
36
  label: 'Theses & Dissertations',
50
- url: `${mainSiteBaseUri}/theses-and-dissertations`,
51
- },
52
- ],
53
- },
54
- {
55
- title: 'Equipment',
56
- links: [
57
- {
58
- label: 'Available for Checkout',
59
- url: `${mainSiteBaseUri}/services?categories=available-for-checkout`,
60
- },
61
- {
62
- label: 'Available with Reservation',
63
- url: `${mainSiteBaseUri}/services?categories=available-via-reservation`,
37
+ url: `${this.mainSiteBaseUrl()}/theses-and-dissertations`,
64
38
  },
65
39
  {
66
- label: 'Public Computers',
67
- url: `${mainSiteBaseUri}/services/public-computers`,
40
+ label: 'Special Collections',
41
+ url: `${this.mainSiteBaseUrl()}/special-collections`,
68
42
  },
69
43
  {
70
- label: 'Printers and Copying',
71
- url: `${mainSiteBaseUri}/services?categories=printing-and-copying`,
44
+ label: 'Digital Collections',
45
+ url: `${this.mainSiteBaseUrl()}/collections/digital`,
72
46
  },
73
47
  ],
74
48
  },
75
- ],
76
- },
77
- {
78
- title: 'Places',
79
- mainSection: {
80
- title: 'Popular Places',
81
- links: [
82
- { label: 'Help Desks', url: `${mainSiteBaseUri}/services/help-desks` },
83
- { label: 'Family History', url: `${mainSiteBaseUri}/religion-family-history` },
49
+ otherSections: [
84
50
  {
85
- label: 'Research and Writing Center',
86
- url: `${mainSiteBaseUri}/services/research-and-writing-center`,
51
+ title: 'Formats',
52
+ links: [
53
+ { label: 'Articles', url: `${this.mainSiteBaseUrl()}/articles` },
54
+ { label: 'Audio', url: `${this.mainSiteBaseUrl()}/audio` },
55
+ { label: 'Books', url: `${this.mainSiteBaseUrl()}/books` },
56
+ { label: 'Video', url: `${this.mainSiteBaseUrl()}/video` },
57
+ ],
58
+ auxiliaryLink: {
59
+ label: 'See all formats',
60
+ url: `${this.mainSiteBaseUrl()}/formats`,
61
+ },
62
+ },
63
+ {
64
+ title: 'Equipment',
65
+ links: [
66
+ {
67
+ label: 'Available for Checkout',
68
+ url: `${this.mainSiteBaseUrl()}/services?categories=available-for-checkout`,
69
+ },
70
+ {
71
+ label: 'Available with Reservation',
72
+ url: `${this.mainSiteBaseUrl()}/services?categories=available-via-reservation`,
73
+ },
74
+ {
75
+ label: 'Public Computers',
76
+ url: `${this.mainSiteBaseUrl()}/services/public-computers`,
77
+ },
78
+ {
79
+ label: 'Printers and Copying',
80
+ url: `${this.mainSiteBaseUrl()}/services?categories=printing-and-copying`,
81
+ },
82
+ ],
87
83
  },
88
- { label: 'Special Collections', url: `${mainSiteBaseUri}/special-collections` },
89
84
  ],
90
- auxiliaryLink: {
91
- label: 'View Floor Maps',
92
- url: `${mainSiteBaseUri}/floormaps`,
93
- },
94
85
  },
95
- otherSections: [
96
- {
97
- title: 'Spaces',
86
+ {
87
+ title: 'Places',
88
+ mainSection: {
89
+ title: 'Popular Places',
98
90
  links: [
99
91
  {
100
- label: 'Collections & Archives',
101
- url: `${mainSiteBaseUri}/services?categories=collections-and-archives`,
92
+ label: 'Help Desks',
93
+ url: `${this.mainSiteBaseUrl()}/services/help-desks`,
102
94
  },
103
95
  {
104
- label: 'Group Study Spaces',
105
- url: `${mainSiteBaseUri}/services/group-study-rooms`,
96
+ label: 'Family History',
97
+ url: `${this.mainSiteBaseUrl()}/religion-family-history`,
106
98
  },
107
99
  {
108
- label: 'Individual Study Spaces',
109
- url: `${mainSiteBaseUri}/services?categories=individual-study-spaces`,
100
+ label: 'Research and Writing Center',
101
+ url: `${this.mainSiteBaseUrl()}/services/research-and-writing-center`,
110
102
  },
111
103
  {
112
- label: 'Multimedia Creation Spaces',
113
- url: `${mainSiteBaseUri}/services?categories=multimedia-creation`,
114
- },
115
- {
116
- label: 'Video View Spaces',
117
- url: `${mainSiteBaseUri}/services?categories=video-viewing`,
104
+ label: 'Special Collections',
105
+ url: `${this.mainSiteBaseUrl()}/special-collections`,
118
106
  },
119
107
  ],
108
+ auxiliaryLink: {
109
+ label: 'View Floor Maps',
110
+ url: 'https://lib.byu.edu/floormaps',
111
+ },
120
112
  },
121
- {
122
- title: 'Rooms',
113
+ otherSections: [
114
+ {
115
+ title: 'Spaces',
116
+ links: [
117
+ {
118
+ label: 'Collections & Archives',
119
+ url: `${this.mainSiteBaseUrl()}/services?categories=collections-and-archives`,
120
+ },
121
+ {
122
+ label: 'Group Study Spaces',
123
+ url: `${this.mainSiteBaseUrl()}/services/group-study-rooms`,
124
+ },
125
+ {
126
+ label: 'Individual Study Spaces',
127
+ url: `${this.mainSiteBaseUrl()}/services?categories=individual-study-spaces`,
128
+ },
129
+ {
130
+ label: 'Multimedia Creation Spaces',
131
+ url: `${this.mainSiteBaseUrl()}/services?categories=multimedia-creation`,
132
+ },
133
+ {
134
+ label: 'Video View Spaces',
135
+ url: `${this.mainSiteBaseUrl()}/services?categories=video-viewing`,
136
+ },
137
+ ],
138
+ },
139
+ {
140
+ title: 'Rooms',
141
+ links: [
142
+ {
143
+ label: 'Classrooms',
144
+ url: `${this.mainSiteBaseUrl()}/services?categories=classrooms`,
145
+ },
146
+ {
147
+ label: 'Conference Rooms',
148
+ url: `${this.mainSiteBaseUrl()}/services?categories=conference-rooms`,
149
+ },
150
+ {
151
+ label: 'Labs & Centers',
152
+ url: `${this.mainSiteBaseUrl()}/services?categories=labs-and-centers`,
153
+ },
154
+ {
155
+ label: 'Research Rooms',
156
+ url: `${this.mainSiteBaseUrl()}/services?categories=research-rooms`,
157
+ },
158
+ ],
159
+ },
160
+ ],
161
+ },
162
+ {
163
+ title: 'Experiences',
164
+ mainSection: {
165
+ title: 'Events',
123
166
  links: [
124
167
  {
125
- label: 'Classrooms',
126
- url: `${mainSiteBaseUri}/services?categories=classrooms`,
168
+ label: 'Concerts & Film Showings',
169
+ url: `${this.mainSiteBaseUrl()}/services/motion-picture-archive-series`,
127
170
  },
128
171
  {
129
- label: 'Conference Rooms',
130
- url: `${mainSiteBaseUri}/services?categories=conference-rooms`,
131
- },
132
- {
133
- label: 'Labs & Centers',
134
- url: `${mainSiteBaseUri}/services?categories=labs-and-centers`,
135
- },
136
- {
137
- label: 'Research Rooms',
138
- url: `${mainSiteBaseUri}/services?categories=research-rooms`,
172
+ label: 'Lectures',
173
+ url: `${this.mainSiteBaseUrl()}/services?categories=lectures`,
139
174
  },
175
+ { label: 'News', url: `${this.mainSiteBaseUrl()}/about/news` },
140
176
  ],
177
+ auxiliaryLink: {
178
+ label: 'See calendar of events',
179
+ url: `${this.mainSiteBaseUrl()}/events`,
180
+ },
141
181
  },
142
- ],
143
- },
144
- {
145
- title: 'Experiences',
146
- mainSection: {
147
- title: 'Events',
148
- links: [
182
+ otherSections: [
149
183
  {
150
- label: 'Concerts & Film Showings',
151
- url: `${mainSiteBaseUri}/services/motion-picture-archive-series`,
184
+ title: 'Learning Opportunities',
185
+ links: [
186
+ {
187
+ label: 'Library Instruction Classes',
188
+ url: `${this.mainSiteBaseUrl()}/library-instruction`,
189
+ },
190
+ {
191
+ label: 'Software Training',
192
+ url: `${this.mainSiteBaseUrl()}/services/software-training`,
193
+ },
194
+ {
195
+ label: 'Family History Classes & Webinars',
196
+ url: `${this.mainSiteBaseUrl()}/services/family-history-classes`,
197
+ },
198
+ ],
199
+ },
200
+ {
201
+ title: 'Displays',
202
+ links: [
203
+ { label: 'Exhibits', url: `${this.mainSiteBaseUrl()}/exhibits` },
204
+ {
205
+ label: 'Galleries',
206
+ url: `${this.mainSiteBaseUrl()}/services?categories=galleries-and-exhibits`,
207
+ },
208
+ ],
152
209
  },
153
- { label: 'Lectures', url: `${mainSiteBaseUri}/services?categories=lectures` },
154
- { label: 'News', url: `${mainSiteBaseUri}/about/news` },
155
210
  ],
156
- auxiliaryLink: {
157
- label: 'See calendar of events',
158
- url: `${mainSiteBaseUri}/events`,
159
- },
160
211
  },
161
- otherSections: [
162
- {
163
- title: 'Learning Opportunities',
212
+ {
213
+ title: 'Services',
214
+ mainSection: {
215
+ title: 'Services For',
164
216
  links: [
165
217
  {
166
- label: 'Library Instruction Classes',
167
- url: `${mainSiteBaseUri}/library-instruction`,
218
+ label: 'Current Students',
219
+ url: `${this.mainSiteBaseUrl()}/services?categories=for-students`,
168
220
  },
169
221
  {
170
- label: 'Software Training',
171
- url: `${mainSiteBaseUri}/services/software-training`,
222
+ label: 'Faculty and Staff',
223
+ url: `${this.mainSiteBaseUrl()}/services?categories=for-faculty`,
172
224
  },
173
225
  {
174
- label: 'Family History Classes & Webinars',
175
- url: `${mainSiteBaseUri}/services/family-history-classes`,
226
+ label: 'Retirees',
227
+ url: `${this.mainSiteBaseUrl()}/services?categories=for-retirees`,
176
228
  },
177
- ],
178
- },
179
- {
180
- title: 'Displays',
181
- links: [
182
- { label: 'Exhibits', url: `${mainSiteBaseUri}/exhibits` },
183
229
  {
184
- label: 'Galleries',
185
- url: `${mainSiteBaseUri}/services?categories=galleries-and-exhibits`,
230
+ label: 'Visitors and Alumni',
231
+ url: `${this.mainSiteBaseUrl()}/services?categories=for-visitors`,
186
232
  },
187
233
  ],
234
+ auxiliaryLink: {
235
+ label: 'See all Services',
236
+ url: `${this.mainSiteBaseUrl()}/services`,
237
+ },
188
238
  },
189
- ],
190
- },
191
- {
192
- title: 'Services',
193
- mainSection: {
194
- title: 'Services For',
195
- links: [
239
+ otherSections: [
196
240
  {
197
- label: 'Current Students',
198
- url: `${mainSiteBaseUri}/services?categories=for-students`,
241
+ title: 'Getting Materials',
242
+ links: [
243
+ {
244
+ label: 'Checkout out Materials',
245
+ url: `${this.mainSiteBaseUrl()}/about/checkout-privileges`,
246
+ },
247
+ {
248
+ label: 'Holds & Renewals',
249
+ url: `${this.mainSiteBaseUrl()}/services/holds`,
250
+ },
251
+ {
252
+ label: 'Borrow from another Library (ILL)',
253
+ url: `${this.mainSiteBaseUrl()}/services/interlibrary-loan`,
254
+ },
255
+ ],
199
256
  },
200
257
  {
201
- label: 'Faculty and Staff',
202
- url: `${mainSiteBaseUri}/services?categories=for-faculty`,
258
+ title: 'Other',
259
+ links: [
260
+ {
261
+ label: 'Internships, Fellowships and Grants',
262
+ url: `${this.mainSiteBaseUrl()}/services?categories=internships-fellowships-grants`,
263
+ },
264
+ {
265
+ label: 'Programs',
266
+ url: `${this.mainSiteBaseUrl()}/services?categories=programs`,
267
+ },
268
+ {
269
+ label: 'Scholarly Publishing',
270
+ url: `${this.mainSiteBaseUrl()}/services?categories=creating-and-publishing-materials`,
271
+ },
272
+ ],
203
273
  },
274
+ ],
275
+ },
276
+ {
277
+ title: 'Ask Us',
278
+ otherSections: [
204
279
  {
205
- label: 'Retirees and Alumni',
206
- url: `${mainSiteBaseUri}/services?categories=for-retirees`,
280
+ title: 'Get Help',
281
+ links: [
282
+ {
283
+ label: 'Ask a Librarian',
284
+ url: `${this.mainSiteBaseUrl()}/chat?url=${window.location.href}`,
285
+ icon: 'chat_bubble',
286
+ },
287
+ {
288
+ label: 'Library Instruction',
289
+ url: `${this.mainSiteBaseUrl()}/library-instruction`,
290
+ },
291
+ { label: 'Research Guides', url: `${this.mainSiteBaseUrl()}/guides` },
292
+ {
293
+ label: 'Help & Guidance',
294
+ url: `${this.mainSiteBaseUrl()}/services?categories=help-and-guidance`,
295
+ },
296
+ ],
207
297
  },
208
298
  {
209
- label: 'Visitors',
210
- url: `${mainSiteBaseUri}/services?categories=for-visitors`,
299
+ title: 'Find a...',
300
+ links: [
301
+ { label: 'Department', url: `${this.mainSiteBaseUrl()}/directory` },
302
+ {
303
+ label: 'Help Desk',
304
+ url: `${this.mainSiteBaseUrl()}/services/help-desks`,
305
+ },
306
+ {
307
+ label: 'Library Employee by Name',
308
+ url: `${this.mainSiteBaseUrl()}/directory`,
309
+ },
310
+ {
311
+ label: 'Subject Librarian',
312
+ url: `${this.mainSiteBaseUrl()}/directory#browse-by-subject`,
313
+ },
314
+ ],
315
+ },
316
+ {
317
+ title: 'About the Library',
318
+ links: [
319
+ {
320
+ label: 'General Information',
321
+ url: `${this.mainSiteBaseUrl()}/about`,
322
+ },
323
+ { label: 'FAQs', url: `${this.mainSiteBaseUrl()}/faq` },
324
+ ],
211
325
  },
212
326
  ],
213
- auxiliaryLink: {
214
- label: 'See all Services',
215
- url: `${mainSiteBaseUri}/services`,
216
- },
217
327
  },
218
- otherSections: [
219
- {
220
- title: 'Getting Materials',
221
- links: [
222
- {
223
- label: 'Checkout out Materials',
224
- url: `${mainSiteBaseUri}/about/checkout-privileges`,
225
- },
226
- { label: 'Holds & Renewals', url: `${mainSiteBaseUri}/services/holds` },
227
- {
228
- label: 'Borrow from another Library (ILL)',
229
- url: `${mainSiteBaseUri}/services/interlibrary-loan`,
230
- },
231
- ],
232
- },
233
- {
234
- title: 'Other',
235
- links: [
236
- {
237
- label: 'Internships, Fellowships and Grants',
238
- url: `${mainSiteBaseUri}/services?categories=internships-fellowships-grants`,
239
- },
240
- {
241
- label: 'Programs',
242
- url: `${mainSiteBaseUri}/services?categories=programs`,
243
- },
244
- {
245
- label: 'Scholarly Publishing',
246
- url: `${mainSiteBaseUri}/services?categories=creating-and-publishing-materials`,
247
- },
248
- ],
249
- },
250
- ],
251
- },
252
- {
253
- title: 'Ask Us',
254
- otherSections: [
255
- {
256
- title: 'Get Help',
257
- links: [
258
- {
259
- label: 'Ask a Librarian',
260
- url: `${mainSiteBaseUri}/chat?url=${window.location.href}`,
261
- icon: 'chat_bubble',
262
- },
263
- {
264
- label: 'Library Instruction',
265
- url: `${mainSiteBaseUri}/library-instruction`,
266
- },
267
- { label: 'Research Guides', url: `${mainSiteBaseUri}/guides` },
268
- {
269
- label: 'Help & Guidance',
270
- url: `${mainSiteBaseUri}/services?categories=help-and-guidance`,
271
- },
272
- ],
273
- },
274
- {
275
- title: 'Find a...',
276
- links: [
277
- { label: 'Department', url: `${mainSiteBaseUri}/directory` },
278
- { label: 'Help Desk', url: `${mainSiteBaseUri}/services/help-desks` },
279
- { label: 'Library Employee by Name', url: `${mainSiteBaseUri}/directory` },
280
- {
281
- label: 'Subject Librarian',
282
- url: `${mainSiteBaseUri}/directory#browse-by-subject`,
283
- },
284
- ],
285
- },
286
- {
287
- title: 'About the Library',
288
- links: [
289
- { label: 'General Information', url: `${mainSiteBaseUri}/about` },
290
- { label: 'FAQs', url: `${mainSiteBaseUri}/faq` },
291
- ],
292
- },
293
- ],
294
- },
295
- ];
328
+ ];
329
+ });
296
330
  }
297
331
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NavBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
298
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NavBarComponent, isStandalone: true, selector: "lib-nav-bar", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdownComps", predicate: NavBarDropdownComponent, descendants: true }], ngImport: i0, template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ desktop: !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"nav-bar\">\n <li id=\"navHome\">\n <a href=\"https://lib.byu.edu\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos; track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div class=\"content\">\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"main links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" href=\"https://lib.byu.edu/search\">\n @if (isScreenSmall()) {\n Search\n }\n <span class=\"material-symbols-outlined\" [ngClass]=\"{ icon: isScreenSmall() }\">\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.desktop .nav-bar li#navHome a,nav.desktop .nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.desktop .nav-bar li#navHome a .icon,nav.desktop .nav-bar li #navSearch .icon{font-size:1.3em;margin-bottom:-.1em}nav.desktop .nav-bar li#navHome a:hover,nav.desktop .nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box}.icon-right{margin-left:.4em}nav{background-color:#0047ba;position:relative;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .nav-bar .links{padding:0}nav .nav-bar li{width:100%}nav .nav-bar li#navHome .icon{margin-right:.2em}nav .nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .nav-bar li #navSearch .icon{margin-left:.2em}nav .nav-bar li .content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .nav-bar li .content section{padding-left:3em}nav .nav-bar li .content section:first-of-type{padding-top:1em}nav .nav-bar li .content section h2,nav .nav-bar li .content section h3{font-weight:600;font-size:1.4em;margin-bottom:.2em}nav .nav-bar li .content section+section{margin-top:1.8em}nav .nav-bar li .content section li a{padding:.4em .6em}nav .nav-bar li .content section .see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .nav-bar li .content section .no-see-all{margin-bottom:1em}nav .nav-bar li .content section .main{padding-bottom:.4em}nav.desktop{overflow:initial;background-color:#fff;padding:0 2em}nav.desktop .nav-bar{flex-direction:row;align-items:center}nav.desktop .nav-bar .links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.desktop .nav-bar .links li{width:100%}nav.desktop .nav-bar .links li a{transition:background-color .1s ease-in-out}nav.desktop .nav-bar .links li a:hover{background-color:#fff3;width:100%}nav.desktop .nav-bar li{width:auto;height:100%}nav.desktop .nav-bar li #navSearch{color:#002e5d;transition:all .2s ease-in-out;background-color:transparent}nav.desktop .nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.desktop .nav-bar li .content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.desktop .nav-bar li .content section{padding-top:0;padding-left:5%;width:30em}nav.desktop .nav-bar li .content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.desktop .nav-bar li .content section .see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.desktop .nav-bar li .content section .see-all:hover{color:#ffffffd9}nav.desktop .nav-bar li .content h2,nav.desktop .nav-bar li .content h3{color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: NavBarDropdownComponent, selector: "lib-nav-bar-dropdown", inputs: ["title", "isSmallScreen"], outputs: ["openEvent"] }] }); }
332
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: NavBarComponent, isStandalone: true, selector: "lib-nav-bar", inputs: { mainSiteBaseUrl: { classPropertyName: "mainSiteBaseUrl", publicName: "mainSiteBaseUrl", isSignal: true, isRequired: true, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdownComps", predicate: NavBarDropdownComponent, descendants: true }], ngImport: i0, template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"hbll-header-nav-bar\">\n <li id=\"navHome\">\n <a [href]=\"mainSiteBaseUrl()\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined hbll-header-icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos(); track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div\n class=\"hbll-header-content\"\n [ngStyle]=\"{\n 'background-color': isScreenSmall() ? '#336cc8' : 'inherit',\n }\"\n >\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"hbll-header-main hbll-header-links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"hbll-header-links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined hbll-header-icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n @if (section.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"section.auxiliaryLink.url\"\n >\n {{ section.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" [href]=\"mainSiteBaseUrl() + '/search'\">\n @if (isScreenSmall()) {\n Search\n }\n <span\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'hbll-header-icon': isScreenSmall() }\"\n >\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a .hbll-header-icon,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a:hover,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-icon-right{margin-left:.4em;font-size:1.2em}nav{background-color:#0047ba;position:absolute;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none;width:100vw;max-width:400px;right:0}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .hbll-header-nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .hbll-header-nav-bar .hbll-header-links{padding:0}nav .hbll-header-nav-bar li{width:100%}nav .hbll-header-nav-bar li#navHome .hbll-header-icon{margin-right:.2em}nav .hbll-header-nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .hbll-header-nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .hbll-header-nav-bar li #navSearch .hbll-header-icon{margin-left:.2em}nav .hbll-header-nav-bar li .hbll-header-content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .hbll-header-nav-bar li .hbll-header-content section{padding-left:3em}nav .hbll-header-nav-bar li .hbll-header-content section:first-of-type{padding-top:1em}nav .hbll-header-nav-bar li .hbll-header-content section h2,nav .hbll-header-nav-bar li .hbll-header-content section h3{font-weight:600;font-size:1.4em;margin-bottom:.4em}nav .hbll-header-nav-bar li .hbll-header-content section+section{margin-top:1.8em}nav .hbll-header-nav-bar li .hbll-header-content section li a{padding:.6em .8em;margin:.2em 0}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-no-see-all{margin-bottom:1em}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-main{padding-bottom:.4em}nav.hbll-header-desktop{overflow:initial;background-color:#fff;padding:0 2em;position:relative;max-width:100%}nav.hbll-header-desktop .hbll-header-nav-bar{flex-direction:row;align-items:center}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li{width:100%}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a{transition:background-color .1s ease-in-out}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a:hover{background-color:#fff3;width:100%}nav.hbll-header-desktop .hbll-header-nav-bar li{width:auto;height:100%}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{transition:all .2s ease-in-out;font-size:1.2em;background-color:transparent}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section{padding-top:0;padding-left:5%;width:30em}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all:hover{color:#ffffffd9}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h2,nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h3{color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: NavBarDropdownComponent, selector: "lib-nav-bar-dropdown", inputs: ["title", "isSmallScreen"], outputs: ["openEvent"] }] }); }
299
333
  }
300
334
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NavBarComponent, decorators: [{
301
335
  type: Component,
302
- args: [{ selector: 'lib-nav-bar', standalone: true, imports: [CommonModule, NavBarDropdownComponent], template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ desktop: !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"nav-bar\">\n <li id=\"navHome\">\n <a href=\"https://lib.byu.edu\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos; track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div class=\"content\">\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"main links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" href=\"https://lib.byu.edu/search\">\n @if (isScreenSmall()) {\n Search\n }\n <span class=\"material-symbols-outlined\" [ngClass]=\"{ icon: isScreenSmall() }\">\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.desktop .nav-bar li#navHome a,nav.desktop .nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.desktop .nav-bar li#navHome a .icon,nav.desktop .nav-bar li #navSearch .icon{font-size:1.3em;margin-bottom:-.1em}nav.desktop .nav-bar li#navHome a:hover,nav.desktop .nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box}.icon-right{margin-left:.4em}nav{background-color:#0047ba;position:relative;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .nav-bar .links{padding:0}nav .nav-bar li{width:100%}nav .nav-bar li#navHome .icon{margin-right:.2em}nav .nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .nav-bar li #navSearch .icon{margin-left:.2em}nav .nav-bar li .content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .nav-bar li .content section{padding-left:3em}nav .nav-bar li .content section:first-of-type{padding-top:1em}nav .nav-bar li .content section h2,nav .nav-bar li .content section h3{font-weight:600;font-size:1.4em;margin-bottom:.2em}nav .nav-bar li .content section+section{margin-top:1.8em}nav .nav-bar li .content section li a{padding:.4em .6em}nav .nav-bar li .content section .see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .nav-bar li .content section .no-see-all{margin-bottom:1em}nav .nav-bar li .content section .main{padding-bottom:.4em}nav.desktop{overflow:initial;background-color:#fff;padding:0 2em}nav.desktop .nav-bar{flex-direction:row;align-items:center}nav.desktop .nav-bar .links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.desktop .nav-bar .links li{width:100%}nav.desktop .nav-bar .links li a{transition:background-color .1s ease-in-out}nav.desktop .nav-bar .links li a:hover{background-color:#fff3;width:100%}nav.desktop .nav-bar li{width:auto;height:100%}nav.desktop .nav-bar li #navSearch{color:#002e5d;transition:all .2s ease-in-out;background-color:transparent}nav.desktop .nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.desktop .nav-bar li .content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.desktop .nav-bar li .content section{padding-top:0;padding-left:5%;width:30em}nav.desktop .nav-bar li .content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.desktop .nav-bar li .content section .see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.desktop .nav-bar li .content section .see-all:hover{color:#ffffffd9}nav.desktop .nav-bar li .content h2,nav.desktop .nav-bar li .content h3{color:#fff}\n"] }]
336
+ args: [{ selector: 'lib-nav-bar', standalone: true, imports: [CommonModule, NavBarDropdownComponent], template: "<nav\n [style]=\"{ height: height() ? height() + 'px' : 'auto' }\"\n [ngClass]=\"{ 'hbll-header-desktop': !isScreenSmall() }\"\n data-testid=\"nav\"\n>\n <ul class=\"hbll-header-nav-bar\">\n <li id=\"navHome\">\n <a [href]=\"mainSiteBaseUrl()\">\n @if (isScreenSmall()) {\n <span class=\"material-symbols-outlined hbll-header-icon\"> home </span>\n }\n Home\n </a>\n </li>\n @for (navInfo of navInfos(); track navInfo.title) {\n <li>\n <lib-nav-bar-dropdown\n [title]=\"navInfo.title\"\n [isSmallScreen]=\"isScreenSmall() ?? true\"\n (openEvent)=\"handleDropdownOpenEvent($event)\"\n >\n <div\n class=\"hbll-header-content\"\n [ngStyle]=\"{\n 'background-color': isScreenSmall() ? '#336cc8' : 'inherit',\n }\"\n >\n @if (navInfo.mainSection) {\n <section>\n <h2>{{ navInfo.mainSection.title }}</h2>\n <ul class=\"hbll-header-main hbll-header-links\">\n @for (link of navInfo.mainSection.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n @if (navInfo.mainSection.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"navInfo.mainSection.auxiliaryLink.url\"\n >\n {{ navInfo.mainSection.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n @for (section of navInfo.otherSections; track section.title) {\n <section>\n <h3>{{ section.title }}</h3>\n <ul class=\"hbll-header-links\">\n @for (link of section.links; track link.label) {\n <li>\n <a [href]=\"link.url\">\n {{ link.label }}\n @if (link.icon) {\n <span\n class=\"material-symbols-outlined hbll-header-icon-right\"\n >\n {{ link.icon }}\n </span>\n }\n </a>\n </li>\n }\n </ul>\n @if (section.auxiliaryLink) {\n <a\n class=\"hbll-header-see-all\"\n [href]=\"section.auxiliaryLink.url\"\n >\n {{ section.auxiliaryLink.label }}\n <span class=\"material-symbols-outlined hbll-header-icon\">\n chevron_right\n </span>\n </a>\n }\n </section>\n }\n </div>\n </lib-nav-bar-dropdown>\n </li>\n }\n <li>\n <a id=\"navSearch\" [href]=\"mainSiteBaseUrl() + '/search'\">\n @if (isScreenSmall()) {\n Search\n }\n <span\n class=\"material-symbols-outlined\"\n [ngClass]=\"{ 'hbll-header-icon': isScreenSmall() }\"\n >\n search\n </span>\n </a>\n </li>\n </ul>\n</nav>\n", styles: ["nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{color:#002e5d;background-color:#fff;display:flex;justify-content:center;align-items:center;font-size:1.1em;font-weight:500;border:none;padding:.4em 1em;line-height:1.4em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a .hbll-header-icon,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch .hbll-header-icon{font-size:1.3em;margin-bottom:-.1em}nav.hbll-header-desktop .hbll-header-nav-bar li#navHome a:hover,nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:#0047ba;color:#fff}*{box-sizing:border-box;text-decoration:none;font-size:1em}*:not(.material-symbols-outlined){font-family:inherit}.hbll-header-icon-right{margin-left:.4em;font-size:1.2em}nav{background-color:#0047ba;position:absolute;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none;width:100vw;max-width:400px;right:0}nav li{list-style-type:none}nav ::-webkit-scrollbar{display:none}nav .hbll-header-nav-bar{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding:0}nav .hbll-header-nav-bar .hbll-header-links{padding:0}nav .hbll-header-nav-bar li{width:100%}nav .hbll-header-nav-bar li#navHome .hbll-header-icon{margin-right:.2em}nav .hbll-header-nav-bar li a{color:#fff;display:flex;align-items:center;width:100%;padding:.6em}nav .hbll-header-nav-bar li #navSearch{justify-content:flex-end;font-size:1.3em}nav .hbll-header-nav-bar li #navSearch .hbll-header-icon{margin-left:.2em}nav .hbll-header-nav-bar li .hbll-header-content{border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.4em}nav .hbll-header-nav-bar li .hbll-header-content section{padding-left:3em}nav .hbll-header-nav-bar li .hbll-header-content section:first-of-type{padding-top:1em}nav .hbll-header-nav-bar li .hbll-header-content section h2,nav .hbll-header-nav-bar li .hbll-header-content section h3{font-weight:600;font-size:1.4em;margin-bottom:.4em}nav .hbll-header-nav-bar li .hbll-header-content section+section{margin-top:1.8em}nav .hbll-header-nav-bar li .hbll-header-content section li a{padding:.6em .8em;margin:.2em 0}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{border-top:1px solid rgba(255,255,255,.3);justify-content:flex-end}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-no-see-all{margin-bottom:1em}nav .hbll-header-nav-bar li .hbll-header-content section .hbll-header-main{padding-bottom:.4em}nav.hbll-header-desktop{overflow:initial;background-color:#fff;padding:0 2em;position:relative;max-width:100%}nav.hbll-header-desktop .hbll-header-nav-bar{flex-direction:row;align-items:center}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links{background-color:#0047ba;display:flex;flex-direction:column;align-items:flex-start}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li{width:100%}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a{transition:background-color .1s ease-in-out}nav.hbll-header-desktop .hbll-header-nav-bar .hbll-header-links li a:hover{background-color:#fff3;width:100%}nav.hbll-header-desktop .hbll-header-nav-bar li{width:auto;height:100%}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch{transition:all .2s ease-in-out;font-size:1.2em;background-color:transparent}nav.hbll-header-desktop .hbll-header-nav-bar li #navSearch:hover{background-color:transparent;transform:scale(115%);color:#0047ba}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content{display:flex;justify-content:center;padding-top:1.4em;padding-right:10%;padding-left:10%}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section{padding-top:0;padding-left:5%;width:30em}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section+section{border-left:1px solid rgba(255,255,255,.3);margin-top:0}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all{margin-right:1em;transition:color .1s ease-in-out;width:auto}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content section .hbll-header-see-all:hover{color:#ffffffd9}nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h2,nav.hbll-header-desktop .hbll-header-nav-bar li .hbll-header-content h3{color:#fff}\n"] }]
303
337
  }], propDecorators: { dropdownComps: [{
304
338
  type: ViewChildren,
305
339
  args: [NavBarDropdownComponent]
306
340
  }] } });
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvaGJsbC1oZWFkZXIvbmF2LWJhci9uYXYtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWhlYWRlci9uYXYtYmFyL25hdi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFvQnpELE1BQU0sZUFBZSxHQUFHLHFCQUFxQixDQUFDO0FBUzlDLE1BQU0sT0FBTyxlQUFlO0lBUDVCO1FBUVksT0FBRSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXhDLFdBQU0sR0FBRyxLQUFLLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBSXBDLDhFQUE4RTtRQUNwRSw0QkFBdUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ2xELElBQUksQ0FBQyxhQUFhO2lCQUNiLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQztpQkFDeEMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxD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IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2QmFyRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9uYXYtYmFyLWRyb3Bkb3duL25hdi1iYXItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IGlzU2NyZWVuU21hbGxTaWduYWwgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxudHlwZSBOYXZJbmZvID0ge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgbWFpblNlY3Rpb24/OiBTZWN0aW9uO1xuICAgIG90aGVyU2VjdGlvbnM6IFNlY3Rpb25bXTtcbn07XG5cbnR5cGUgU2VjdGlvbiA9IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGxpbmtzOiBMaW5rW107XG4gICAgYXV4aWxpYXJ5TGluaz86IExpbms7XG59O1xuXG50eXBlIExpbmsgPSB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xufTtcblxuY29uc3QgbWFpblNpdGVCYXNlVXJpID0gJ2h0dHBzOi8vbGliLmJ5dS5lZHUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1uYXYtYmFyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5hdkJhckRyb3Bkb3duQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2LWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL25hdi1iYXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZCYXJDb21wb25lbnQge1xuICAgIHByaXZhdGUgYm8gPSBpbmplY3QoQnJlYWtwb2ludE9ic2VydmVyKTtcblxuICAgIGhlaWdodCA9IGlucHV0PG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gICAgQFZpZXdDaGlsZHJlbihOYXZCYXJEcm9wZG93bkNvbXBvbmVudCkgZHJvcGRvd25Db21wcyE6IE5hdkJhckRyb3Bkb3duQ29tcG9uZW50W107XG5cbiAgICAvLyBJZiBhbnkgc2VjdGlvbiBvcGVucyB1cCwgY2xvc2UgYWxsIG90aGVycy4gT25seSBvbmUgc2VjdGlvbiBvcGVuIGF0IGEgdGltZS5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlRHJvcGRvd25PcGVuRXZlbnQgPSAodGl0bGU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmRyb3Bkb3duQ29tcHNcbiAgICAgICAgICAgIC5maWx0ZXIoKGNvbXApID0+IGNvbXAudGl0bGUoKSAhPT0gdGl0bGUpXG4gICAgICAgICAgICAuZm9yRWFjaCgoY29tcCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbXAuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBpc1NjcmVlblNtYWxsID0gaXNTY3JlZW5TbWFsbFNpZ25hbCh0aGlzLmJvKTtcblxuICAgIHByb3RlY3RlZCBuYXZJbmZvczogTmF2SW5mb1tdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ01hdGVyaWFscycsXG4gICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnRm9ybWF0cycsXG4gICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FydGljbGVzJywgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2FydGljbGVzYCB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQXVkaW8nLCB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vYXVkaW9gIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdCb29rcycsIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9ib29rc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ1ZpZGVvJywgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3ZpZGVvYCB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgYXV4aWxpYXJ5TGluazoge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NlZSBhbGwgZm9ybWF0cycsXG4gICAgICAgICAgICAgICAgICAgIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9mb3JtYXRzYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG90aGVyU2VjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnUmVzb3VyY2UgQ29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU3ViamVjdCBBcmVhIENvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vY29sbGVjdGlvbnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdEYXRhYmFzZXMnLCB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vZGF0YWJhc2VzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0pvdXJuYWxzJywgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2pvdXJuYWxzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVGhlc2VzICYgRGlzc2VydGF0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3RoZXNlcy1hbmQtZGlzc2VydGF0aW9uc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0VxdWlwbWVudCcsXG4gICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBdmFpbGFibGUgZm9yIENoZWNrb3V0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXM/Y2F0ZWdvcmllcz1hdmFpbGFibGUtZm9yLWNoZWNrb3V0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBdmFpbGFibGUgd2l0aCBSZXNlcnZhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9YXZhaWxhYmxlLXZpYS1yZXNlcnZhdGlvbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUHVibGljIENvbXB1dGVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzL3B1YmxpYy1jb21wdXRlcnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1ByaW50ZXJzIGFuZCBDb3B5aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXM/Y2F0ZWdvcmllcz1wcmludGluZy1hbmQtY29weWluZ2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ1BsYWNlcycsXG4gICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnUG9wdWxhciBQbGFjZXMnLFxuICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdIZWxwIERlc2tzJywgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzL2hlbHAtZGVza3NgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdGYW1pbHkgSGlzdG9yeScsIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9yZWxpZ2lvbi1mYW1pbHktaGlzdG9yeWAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdSZXNlYXJjaCBhbmQgV3JpdGluZyBDZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzL3Jlc2VhcmNoLWFuZC13cml0aW5nLWNlbnRlcmAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdTcGVjaWFsIENvbGxlY3Rpb25zJywgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NwZWNpYWwtY29sbGVjdGlvbnNgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBhdXhpbGlhcnlMaW5rOiB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVmlldyBGbG9vciBNYXBzJyxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2Zsb29ybWFwc2AsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdGhlclNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1NwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDb2xsZWN0aW9ucyAmIEFyY2hpdmVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXM/Y2F0ZWdvcmllcz1jb2xsZWN0aW9ucy1hbmQtYXJjaGl2ZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0dyb3VwIFN0dWR5IFNwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzL2dyb3VwLXN0dWR5LXJvb21zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdJbmRpdmlkdWFsIFN0dWR5IFNwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9aW5kaXZpZHVhbC1zdHVkeS1zcGFjZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ011bHRpbWVkaWEgQ3JlYXRpb24gU3BhY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXM/Y2F0ZWdvcmllcz1tdWx0aW1lZGlhLWNyZWF0aW9uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdWaWRlbyBWaWV3IFNwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9dmlkZW8tdmlld2luZ2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1Jvb21zJyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NsYXNzcm9vbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWNsYXNzcm9vbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NvbmZlcmVuY2UgUm9vbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWNvbmZlcmVuY2Utcm9vbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xhYnMgJiBDZW50ZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXM/Y2F0ZWdvcmllcz1sYWJzLWFuZC1jZW50ZXJzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdSZXNlYXJjaCBSb29tcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9cmVzZWFyY2gtcm9vbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdFeHBlcmllbmNlcycsXG4gICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnRXZlbnRzJyxcbiAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NvbmNlcnRzICYgRmlsbSBTaG93aW5ncycsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXMvbW90aW9uLXBpY3R1cmUtYXJjaGl2ZS1zZXJpZXNgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnTGVjdHVyZXMnLCB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXM/Y2F0ZWdvcmllcz1sZWN0dXJlc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ05ld3MnLCB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vYWJvdXQvbmV3c2AgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGF1eGlsaWFyeUxpbms6IHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTZWUgY2FsZW5kYXIgb2YgZXZlbnRzJyxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2V2ZW50c2AsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdGhlclNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0xlYXJuaW5nIE9wcG9ydHVuaXRpZXMnLFxuICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTGlicmFyeSBJbnN0cnVjdGlvbiBDbGFzc2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vbGlicmFyeS1pbnN0cnVjdGlvbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnU29mdHdhcmUgVHJhaW5pbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9zZXJ2aWNlcy9zb2Z0d2FyZS10cmFpbmluZ2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRmFtaWx5IEhpc3RvcnkgQ2xhc3NlcyAmIFdlYmluYXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXMvZmFtaWx5LWhpc3RvcnktY2xhc3Nlc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0Rpc3BsYXlzJyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdFeGhpYml0cycsIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9leGhpYml0c2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0dhbGxlcmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9Z2FsbGVyaWVzLWFuZC1leGhpYml0c2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ1NlcnZpY2VzJyxcbiAgICAgICAgICAgIG1haW5TZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdTZXJ2aWNlcyBGb3InLFxuICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ3VycmVudCBTdHVkZW50cycsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXM/Y2F0ZWdvcmllcz1mb3Itc3R1ZGVudHNgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0ZhY3VsdHkgYW5kIFN0YWZmJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWZvci1mYWN1bHR5YCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdSZXRpcmVlcyBhbmQgQWx1bW5pJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWZvci1yZXRpcmVlc2AsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVmlzaXRvcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9Zm9yLXZpc2l0b3JzYCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGF1eGlsaWFyeUxpbms6IHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTZWUgYWxsIFNlcnZpY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG90aGVyU2VjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnR2V0dGluZyBNYXRlcmlhbHMnLFxuICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ2hlY2tvdXQgb3V0IE1hdGVyaWFscycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2Fib3V0L2NoZWNrb3V0LXByaXZpbGVnZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdIb2xkcyAmIFJlbmV3YWxzJywgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzL2hvbGRzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQm9ycm93IGZyb20gYW5vdGhlciBMaWJyYXJ5IChJTEwpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXMvaW50ZXJsaWJyYXJ5LWxvYW5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdPdGhlcicsXG4gICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdJbnRlcm5zaGlwcywgRmVsbG93c2hpcHMgYW5kIEdyYW50cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9aW50ZXJuc2hpcHMtZmVsbG93c2hpcHMtZ3JhbnRzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdQcm9ncmFtcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9cHJvZ3JhbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NjaG9sYXJseSBQdWJsaXNoaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vc2VydmljZXM/Y2F0ZWdvcmllcz1jcmVhdGluZy1hbmQtcHVibGlzaGluZy1tYXRlcmlhbHNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdBc2sgVXMnLFxuXG4gICAgICAgICAgICBvdGhlclNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0dldCBIZWxwJyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0FzayBhIExpYnJhcmlhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2NoYXQ/dXJsPSR7d2luZG93LmxvY2F0aW9uLmhyZWZ9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnY2hhdF9idWJibGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xpYnJhcnkgSW5zdHJ1Y3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9saWJyYXJ5LWluc3RydWN0aW9uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnUmVzZWFyY2ggR3VpZGVzJywgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2d1aWRlc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0hlbHAgJiBHdWlkYW5jZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L3NlcnZpY2VzP2NhdGVnb3JpZXM9aGVscC1hbmQtZ3VpZGFuY2VgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdGaW5kIGEuLi4nLFxuICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0RlcGFydG1lbnQnLCB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vZGlyZWN0b3J5YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0hlbHAgRGVzaycsIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9zZXJ2aWNlcy9oZWxwLWRlc2tzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0xpYnJhcnkgRW1wbG95ZWUgYnkgTmFtZScsIHVybDogYCR7bWFpblNpdGVCYXNlVXJpfS9kaXJlY3RvcnlgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTdWJqZWN0IExpYnJhcmlhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2RpcmVjdG9yeSNicm93c2UtYnktc3ViamVjdGAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0Fib3V0IHRoZSBMaWJyYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdHZW5lcmFsIEluZm9ybWF0aW9uJywgdXJsOiBgJHttYWluU2l0ZUJhc2VVcml9L2Fib3V0YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0ZBUXMnLCB1cmw6IGAke21haW5TaXRlQmFzZVVyaX0vZmFxYCB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF07XG59XG4iLCI8bmF2XG4gICAgW3N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQoKSA/IGhlaWdodCgpICsgJ3B4JyA6ICdhdXRvJyB9XCJcbiAgICBbbmdDbGFzc109XCJ7IGRlc2t0b3A6ICFpc1NjcmVlblNtYWxsKCkgfVwiXG4gICAgZGF0YS10ZXN0aWQ9XCJuYXZcIlxuPlxuICAgIDx1bCBjbGFzcz1cIm5hdi1iYXJcIj5cbiAgICAgICAgPGxpIGlkPVwibmF2SG9tZVwiPlxuICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vbGliLmJ5dS5lZHVcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGlzU2NyZWVuU21hbGwoKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaWNvblwiPiBob21lIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgSG9tZVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICBAZm9yIChuYXZJbmZvIG9mIG5hdkluZm9zOyB0cmFjayBuYXZJbmZvLnRpdGxlKSB7XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGxpYi1uYXYtYmFyLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJuYXZJbmZvLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzU21hbGxTY3JlZW5dPVwiaXNTY3JlZW5TbWFsbCgpID8/IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAob3BlbkV2ZW50KT1cImhhbmRsZURyb3Bkb3duT3BlbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobmF2SW5mby5tYWluU2VjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDI+e3sgbmF2SW5mby5tYWluU2VjdGlvbi50aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm1haW4gbGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2YgbmF2SW5mby5tYWluU2VjdGlvbi5saW5rczsgdHJhY2sgbGluay5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibGluay51cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobmF2SW5mby5tYWluU2VjdGlvbi5hdXhpbGlhcnlMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VlLWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwibmF2SW5mby5tYWluU2VjdGlvbi5hdXhpbGlhcnlMaW5rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbmF2SW5mby5tYWluU2VjdGlvbi5hdXhpbGlhcnlMaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hldnJvbl9yaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKHNlY3Rpb24gb2YgbmF2SW5mby5vdGhlclNlY3Rpb25zOyB0cmFjayBzZWN0aW9uLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57eyBzZWN0aW9uLnRpdGxlIH19PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGxpbmsgb2Ygc2VjdGlvbi5saW5rczsgdHJhY2sgbGluay5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibGluay51cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobGluay5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGljb24tcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluay5pY29uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGliLW5hdi1iYXItZHJvcGRvd24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICB9XG4gICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxhIGlkPVwibmF2U2VhcmNoXCIgaHJlZj1cImh0dHBzOi8vbGliLmJ5dS5lZHUvc2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgQGlmIChpc1NjcmVlblNtYWxsKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgU2VhcmNoXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiIFtuZ0NsYXNzXT1cInsgaWNvbjogaXNTY3JlZW5TbWFsbCgpIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L25hdj5cbiJdfQ==
341
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvaGJsbC1oZWFkZXIvbmF2LWJhci9uYXYtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWhlYWRlci9uYXYtYmFyL25hdi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBMkJ6RCxNQUFNLE9BQU8sZUFBZTtJQVA1QjtRQVFZLE9BQUUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN4QyxvQkFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUMzQyxXQUFNLEdBQUcsS0FBSyxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUlwQyw4RUFBOEU7UUFDcEUsNEJBQXVCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsYUFBYTtpQkFDYixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxLQUFLLENBQUM7aUJBQ3hDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNkLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FB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O0tBQ047OEdBdlVZLGVBQWU7a0dBQWYsZUFBZSxxWUFLVix1QkFBdUIsZ0RDcEN6QyxtM0pBdUdBLDR4SUQ1RWMsWUFBWSxrTkFBRSx1QkFBdUI7OzJGQUl0QyxlQUFlO2tCQVAzQixTQUFTOytCQUNJLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLENBQUM7OEJBU1QsYUFBYTtzQkFBbkQsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgU2lnbmFsLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdkJhckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2LWJhci1kcm9wZG93bi9uYXYtYmFyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1NjcmVlblNtYWxsU2lnbmFsIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbnR5cGUgTmF2SW5mbyA9IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIG1haW5TZWN0aW9uPzogU2VjdGlvbjtcbiAgICBvdGhlclNlY3Rpb25zOiBTZWN0aW9uW107XG59O1xuXG50eXBlIFNlY3Rpb24gPSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBsaW5rczogTGlua1tdO1xuICAgIGF1eGlsaWFyeUxpbms/OiBMaW5rO1xufTtcblxudHlwZSBMaW5rID0ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLW5hdi1iYXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmF2QmFyRHJvcGRvd25Db21wb25lbnRdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXYtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vbmF2LWJhci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE5hdkJhckNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBibyA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICAgIG1haW5TaXRlQmFzZVVybCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgICBoZWlnaHQgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICAgIEBWaWV3Q2hpbGRyZW4oTmF2QmFyRHJvcGRvd25Db21wb25lbnQpIGRyb3Bkb3duQ29tcHMhOiBOYXZCYXJEcm9wZG93bkNvbXBvbmVudFtdO1xuXG4gICAgLy8gSWYgYW55IHNlY3Rpb24gb3BlbnMgdXAsIGNsb3NlIGFsbCBvdGhlcnMuIE9ubHkgb25lIHNlY3Rpb24gb3BlbiBhdCBhIHRpbWUuXG4gICAgcHJvdGVjdGVkIGhhbmRsZURyb3Bkb3duT3BlbkV2ZW50ID0gKHRpdGxlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5kcm9wZG93bkNvbXBzXG4gICAgICAgICAgICAuZmlsdGVyKChjb21wKSA9PiBjb21wLnRpdGxlKCkgIT09IHRpdGxlKVxuICAgICAgICAgICAgLmZvckVhY2goKGNvbXApID0+IHtcbiAgICAgICAgICAgICAgICBjb21wLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgaXNTY3JlZW5TbWFsbCA9IGlzU2NyZWVuU21hbGxTaWduYWwodGhpcy5ibyk7XG5cbiAgICBwcm90ZWN0ZWQgbmF2SW5mb3M6IFNpZ25hbDxOYXZJbmZvW10+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnTWF0ZXJpYWxzJyxcbiAgICAgICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1Jlc291cmNlIENvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1N1YmplY3QgQXJlYSBDb2xsZWN0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9jb2xsZWN0aW9uc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0RhdGFiYXNlcycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZGF0YWJhc2VzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0pvdXJuYWxzJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9qb3VybmFsc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1RoZXNlcyAmIERpc3NlcnRhdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vdGhlc2VzLWFuZC1kaXNzZXJ0YXRpb25zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTcGVjaWFsIENvbGxlY3Rpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NwZWNpYWwtY29sbGVjdGlvbnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0RpZ2l0YWwgQ29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vY29sbGVjdGlvbnMvZGlnaXRhbGAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3RoZXJTZWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0Zvcm1hdHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQXJ0aWNsZXMnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2FydGljbGVzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBdWRpbycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vYXVkaW9gIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogJ0Jvb2tzJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9ib29rc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnVmlkZW8nLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3ZpZGVvYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1eGlsaWFyeUxpbms6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NlZSBhbGwgZm9ybWF0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9mb3JtYXRzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnRXF1aXBtZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0F2YWlsYWJsZSBmb3IgQ2hlY2tvdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9YXZhaWxhYmxlLWZvci1jaGVja291dGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQXZhaWxhYmxlIHdpdGggUmVzZXJ2YXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9YXZhaWxhYmxlLXZpYS1yZXNlcnZhdGlvbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUHVibGljIENvbXB1dGVycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvcHVibGljLWNvbXB1dGVyc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUHJpbnRlcnMgYW5kIENvcHlpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9cHJpbnRpbmctYW5kLWNvcHlpbmdgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnUGxhY2VzJyxcbiAgICAgICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1BvcHVsYXIgUGxhY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0hlbHAgRGVza3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvaGVscC1kZXNrc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRmFtaWx5IEhpc3RvcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vcmVsaWdpb24tZmFtaWx5LWhpc3RvcnlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Jlc2VhcmNoIGFuZCBXcml0aW5nIENlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcy9yZXNlYXJjaC1hbmQtd3JpdGluZy1jZW50ZXJgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NwZWNpYWwgQ29sbGVjdGlvbnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc3BlY2lhbC1jb2xsZWN0aW9uc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBhdXhpbGlhcnlMaW5rOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1ZpZXcgRmxvb3IgTWFwcycsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2xpYi5ieXUuZWR1L2Zsb29ybWFwcycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvdGhlclNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnU3BhY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NvbGxlY3Rpb25zICYgQXJjaGl2ZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9Y29sbGVjdGlvbnMtYW5kLWFyY2hpdmVzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdHcm91cCBTdHVkeSBTcGFjZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL2dyb3VwLXN0dWR5LXJvb21zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdJbmRpdmlkdWFsIFN0dWR5IFNwYWNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1pbmRpdmlkdWFsLXN0dWR5LXNwYWNlc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTXVsdGltZWRpYSBDcmVhdGlvbiBTcGFjZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9bXVsdGltZWRpYS1jcmVhdGlvbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnVmlkZW8gVmlldyBTcGFjZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9dmlkZW8tdmlld2luZ2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnUm9vbXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ2xhc3Nyb29tcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1jbGFzc3Jvb21zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDb25mZXJlbmNlIFJvb21zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWNvbmZlcmVuY2Utcm9vbXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xhYnMgJiBDZW50ZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWxhYnMtYW5kLWNlbnRlcnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Jlc2VhcmNoIFJvb21zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPXJlc2VhcmNoLXJvb21zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0V4cGVyaWVuY2VzJyxcbiAgICAgICAgICAgICAgICBtYWluU2VjdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0V2ZW50cycsXG4gICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdDb25jZXJ0cyAmIEZpbG0gU2hvd2luZ3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvbW90aW9uLXBpY3R1cmUtYXJjaGl2ZS1zZXJpZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xlY3R1cmVzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9bGVjdHVyZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdOZXdzJywgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9hYm91dC9uZXdzYCB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBhdXhpbGlhcnlMaW5rOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1NlZSBjYWxlbmRhciBvZiBldmVudHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9ldmVudHNgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3RoZXJTZWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0xlYXJuaW5nIE9wcG9ydHVuaXRpZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTGlicmFyeSBJbnN0cnVjdGlvbiBDbGFzc2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9saWJyYXJ5LWluc3RydWN0aW9uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTb2Z0d2FyZSBUcmFpbmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvc29mdHdhcmUtdHJhaW5pbmdgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0ZhbWlseSBIaXN0b3J5IENsYXNzZXMgJiBXZWJpbmFycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXMvZmFtaWx5LWhpc3RvcnktY2xhc3Nlc2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnRGlzcGxheXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnRXhoaWJpdHMnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2V4aGliaXRzYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdHYWxsZXJpZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzP2NhdGVnb3JpZXM9Z2FsbGVyaWVzLWFuZC1leGhpYml0c2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdTZXJ2aWNlcycsXG4gICAgICAgICAgICAgICAgbWFpblNlY3Rpb246IHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdTZXJ2aWNlcyBGb3InLFxuICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQ3VycmVudCBTdHVkZW50cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWZvci1zdHVkZW50c2AsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnRmFjdWx0eSBhbmQgU3RhZmYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1mb3ItZmFjdWx0eWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnUmV0aXJlZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1mb3ItcmV0aXJlZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Zpc2l0b3JzIGFuZCBBbHVtbmknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1mb3ItdmlzaXRvcnNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgYXV4aWxpYXJ5TGluazoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTZWUgYWxsIFNlcnZpY2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXNgLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb3RoZXJTZWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0dldHRpbmcgTWF0ZXJpYWxzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0NoZWNrb3V0IG91dCBNYXRlcmlhbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2Fib3V0L2NoZWNrb3V0LXByaXZpbGVnZXNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0hvbGRzICYgUmVuZXdhbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL2hvbGRzYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdCb3Jyb3cgZnJvbSBhbm90aGVyIExpYnJhcnkgKElMTCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL2ludGVybGlicmFyeS1sb2FuYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdPdGhlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdJbnRlcm5zaGlwcywgRmVsbG93c2hpcHMgYW5kIEdyYW50cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1pbnRlcm5zaGlwcy1mZWxsb3dzaGlwcy1ncmFudHNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ1Byb2dyYW1zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPXByb2dyYW1zYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTY2hvbGFybHkgUHVibGlzaGluZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vc2VydmljZXM/Y2F0ZWdvcmllcz1jcmVhdGluZy1hbmQtcHVibGlzaGluZy1tYXRlcmlhbHNgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnQXNrIFVzJyxcblxuICAgICAgICAgICAgICAgIG90aGVyU2VjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdHZXQgSGVscCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBc2sgYSBMaWJyYXJpYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2NoYXQ/dXJsPSR7d2luZG93LmxvY2F0aW9uLmhyZWZ9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NoYXRfYnViYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdMaWJyYXJ5IEluc3RydWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9saWJyYXJ5LWluc3RydWN0aW9uYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdSZXNlYXJjaCBHdWlkZXMnLCB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L2d1aWRlc2AgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnSGVscCAmIEd1aWRhbmNlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9zZXJ2aWNlcz9jYXRlZ29yaWVzPWhlbHAtYW5kLWd1aWRhbmNlYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdGaW5kIGEuLi4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua3M6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnRGVwYXJ0bWVudCcsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZGlyZWN0b3J5YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdIZWxwIERlc2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMubWFpblNpdGVCYXNlVXJsKCl9L3NlcnZpY2VzL2hlbHAtZGVza3NgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0xpYnJhcnkgRW1wbG95ZWUgYnkgTmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZGlyZWN0b3J5YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdTdWJqZWN0IExpYnJhcmlhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZGlyZWN0b3J5I2Jyb3dzZS1ieS1zdWJqZWN0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdBYm91dCB0aGUgTGlicmFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdHZW5lcmFsIEluZm9ybWF0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgJHt0aGlzLm1haW5TaXRlQmFzZVVybCgpfS9hYm91dGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiAnRkFRcycsIHVybDogYCR7dGhpcy5tYWluU2l0ZUJhc2VVcmwoKX0vZmFxYCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9KTtcbn1cbiIsIjxuYXZcbiAgICBbc3R5bGVdPVwieyBoZWlnaHQ6IGhlaWdodCgpID8gaGVpZ2h0KCkgKyAncHgnIDogJ2F1dG8nIH1cIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2hibGwtaGVhZGVyLWRlc2t0b3AnOiAhaXNTY3JlZW5TbWFsbCgpIH1cIlxuICAgIGRhdGEtdGVzdGlkPVwibmF2XCJcbj5cbiAgICA8dWwgY2xhc3M9XCJoYmxsLWhlYWRlci1uYXYtYmFyXCI+XG4gICAgICAgIDxsaSBpZD1cIm5hdkhvbWVcIj5cbiAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5TaXRlQmFzZVVybCgpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChpc1NjcmVlblNtYWxsKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj4gaG9tZSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEhvbWVcbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgQGZvciAobmF2SW5mbyBvZiBuYXZJbmZvcygpOyB0cmFjayBuYXZJbmZvLnRpdGxlKSB7XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGxpYi1uYXYtYmFyLWRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJuYXZJbmZvLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzU21hbGxTY3JlZW5dPVwiaXNTY3JlZW5TbWFsbCgpID8/IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAob3BlbkV2ZW50KT1cImhhbmRsZURyb3Bkb3duT3BlbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci1jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGlzU2NyZWVuU21hbGwoKSA/ICcjMzM2Y2M4JyA6ICdpbmhlcml0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG5hdkluZm8ubWFpblNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPnt7IG5hdkluZm8ubWFpblNlY3Rpb24udGl0bGUgfX08L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJoYmxsLWhlYWRlci1tYWluIGhibGwtaGVhZGVyLWxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIG5hdkluZm8ubWFpblNlY3Rpb24ubGlua3M7IHRyYWNrIGxpbmsubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImxpbmsudXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG5hdkluZm8ubWFpblNlY3Rpb24uYXV4aWxpYXJ5TGluaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXNlZS1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cIm5hdkluZm8ubWFpblNlY3Rpb24uYXV4aWxpYXJ5TGluay51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5hdkluZm8ubWFpblNlY3Rpb24uYXV4aWxpYXJ5TGluay5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZXZyb25fcmlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChzZWN0aW9uIG9mIG5hdkluZm8ub3RoZXJTZWN0aW9uczsgdHJhY2sgc2VjdGlvbi50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+e3sgc2VjdGlvbi50aXRsZSB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImhibGwtaGVhZGVyLWxpbmtzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsaW5rIG9mIHNlY3Rpb24ubGlua3M7IHRyYWNrIGxpbmsubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImxpbmsudXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGxpbmsuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1pY29uLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxpbmsuaWNvbiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5hdXhpbGlhcnlMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItc2VlLWFsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwic2VjdGlvbi5hdXhpbGlhcnlMaW5rLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VjdGlvbi5hdXhpbGlhcnlMaW5rLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hldnJvbl9yaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saWItbmF2LWJhci1kcm9wZG93bj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgICAgPGxpPlxuICAgICAgICAgICAgPGEgaWQ9XCJuYXZTZWFyY2hcIiBbaHJlZl09XCJtYWluU2l0ZUJhc2VVcmwoKSArICcvc2VhcmNoJ1wiPlxuICAgICAgICAgICAgICAgIEBpZiAoaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIFNlYXJjaFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdoYmxsLWhlYWRlci1pY29uJzogaXNTY3JlZW5TbWFsbCgpIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L25hdj5cbiJdfQ==