@rangertechnologies/ngnxt 2.1.254 → 2.1.255

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 (78) hide show
  1. package/fesm2022/rangertechnologies-ngnxt.mjs +138 -169
  2. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
  3. package/lib/components/pick-location/pick-location.component.d.ts +0 -1
  4. package/package.json +4 -6
  5. package/rangertechnologies-ngnxt-2.1.255.tgz +0 -0
  6. package/esm2022/environments/version.mjs +0 -15
  7. package/esm2022/lib/components/button/nxt-button.component.mjs +0 -154
  8. package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +0 -360
  9. package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +0 -263
  10. package/esm2022/lib/components/custom-model/custom-model.component.mjs +0 -53
  11. package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +0 -158
  12. package/esm2022/lib/components/datatable/datatable.component.mjs +0 -1744
  13. package/esm2022/lib/components/file-upload/file-upload.component.mjs +0 -292
  14. package/esm2022/lib/components/icon-selector/icon-selector.component.mjs +0 -106
  15. package/esm2022/lib/components/image-cropper/component/cropper.state.mjs +0 -208
  16. package/esm2022/lib/components/image-cropper/component/image-cropper.component.mjs +0 -562
  17. package/esm2022/lib/components/image-cropper/interfaces/basic-event.interface.mjs +0 -2
  18. package/esm2022/lib/components/image-cropper/interfaces/cropper-options.interface.mjs +0 -2
  19. package/esm2022/lib/components/image-cropper/interfaces/cropper-position.interface.mjs +0 -2
  20. package/esm2022/lib/components/image-cropper/interfaces/dimensions.interface.mjs +0 -2
  21. package/esm2022/lib/components/image-cropper/interfaces/exif-transform.interface.mjs +0 -2
  22. package/esm2022/lib/components/image-cropper/interfaces/image-cropped-event.interface.mjs +0 -2
  23. package/esm2022/lib/components/image-cropper/interfaces/image-transform.interface.mjs +0 -2
  24. package/esm2022/lib/components/image-cropper/interfaces/index.mjs +0 -2
  25. package/esm2022/lib/components/image-cropper/interfaces/loaded-image.interface.mjs +0 -2
  26. package/esm2022/lib/components/image-cropper/interfaces/move-start.interface.mjs +0 -8
  27. package/esm2022/lib/components/image-cropper/services/crop.service.mjs +0 -139
  28. package/esm2022/lib/components/image-cropper/services/load-image.service.mjs +0 -194
  29. package/esm2022/lib/components/image-cropper/utils/cropper-position.utils.mjs +0 -239
  30. package/esm2022/lib/components/image-cropper/utils/exif.utils.mjs +0 -79
  31. package/esm2022/lib/components/image-cropper/utils/keyboard.utils.mjs +0 -40
  32. package/esm2022/lib/components/image-cropper/utils/percentage.utils.mjs +0 -4
  33. package/esm2022/lib/components/image-cropper/utils/resize.utils.mjs +0 -75
  34. package/esm2022/lib/components/list-view-filter/list-view-filter.component.mjs +0 -392
  35. package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +0 -2972
  36. package/esm2022/lib/components/pagination/pagination.component.mjs +0 -105
  37. package/esm2022/lib/components/pick-location/pick-location.component.mjs +0 -220
  38. package/esm2022/lib/components/search-box/search-box.component.mjs +0 -470
  39. package/esm2022/lib/country.json +0 -43237
  40. package/esm2022/lib/interfaces/actionMeta.mjs +0 -2
  41. package/esm2022/lib/interfaces/dependencyMeta.mjs +0 -2
  42. package/esm2022/lib/model/bookletWrapper.mjs +0 -7
  43. package/esm2022/lib/model/changeWrapper.mjs +0 -10
  44. package/esm2022/lib/model/errorWrapper.mjs +0 -6
  45. package/esm2022/lib/nxt-app.component.mjs +0 -22
  46. package/esm2022/lib/nxt-app.module.mjs +0 -115
  47. package/esm2022/lib/nxt-app.service.mjs +0 -14
  48. package/esm2022/lib/pages/booklet/booklet.component.mjs +0 -616
  49. package/esm2022/lib/pages/builder/element/element.component.mjs +0 -483
  50. package/esm2022/lib/pages/builder/form/form.component.mjs +0 -48
  51. package/esm2022/lib/pages/builder/properties/common-fields.constants.mjs +0 -97
  52. package/esm2022/lib/pages/builder/properties/properties.component.mjs +0 -1121
  53. package/esm2022/lib/pages/builder/templates/templates.component.mjs +0 -35
  54. package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +0 -639
  55. package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +0 -1114
  56. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +0 -784
  57. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +0 -2206
  58. package/esm2022/lib/pipe/button-styles.pipe.mjs +0 -26
  59. package/esm2022/lib/pipe/custom-translate.pipe.mjs +0 -37
  60. package/esm2022/lib/pipe/get-value.pipe.mjs +0 -54
  61. package/esm2022/lib/pipe/question-by-row.pipe.mjs +0 -51
  62. package/esm2022/lib/pipe/search-filter/search-filter.pipe.mjs +0 -40
  63. package/esm2022/lib/pipe/svg/svg.pipe.mjs +0 -26
  64. package/esm2022/lib/sample.mjs +0 -3715
  65. package/esm2022/lib/services/change/change.service.mjs +0 -46
  66. package/esm2022/lib/services/country/country.service.mjs +0 -135
  67. package/esm2022/lib/services/data/data.service.mjs +0 -100
  68. package/esm2022/lib/services/form-builder/form-builder.service.mjs +0 -474
  69. package/esm2022/lib/services/pdf-designer/pdf-designer.service.mjs +0 -395
  70. package/esm2022/lib/services/salesforce/salesforce.service.mjs +0 -41
  71. package/esm2022/lib/services/shared/shared.service.mjs +0 -100
  72. package/esm2022/lib/services/storage/storage.service.mjs +0 -59
  73. package/esm2022/lib/services/template/template.service.mjs +0 -335
  74. package/esm2022/lib/services/translation/translation.service.mjs +0 -121
  75. package/esm2022/lib/wrapper.mjs +0 -175
  76. package/esm2022/public-api.mjs +0 -22
  77. package/esm2022/rangertechnologies-ngnxt.mjs +0 -5
  78. package/rangertechnologies-ngnxt-2.1.254.tgz +0 -0
@@ -1,2972 +0,0 @@
1
- //SKS31JAN25
2
- import { CommonModule } from '@angular/common';
3
- import { Component, Input, Output, EventEmitter, forwardRef, ChangeDetectionStrategy, ViewChildren, HostListener, ViewChild } from '@angular/core';
4
- import { FormArray, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
5
- import { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';
6
- import { QuillEditorComponent } from 'ngx-quill';
7
- import Quill from 'quill';
8
- import { Mention } from 'quill-mention';
9
- import ImageResizor from 'quill-image-resizor';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "../../services/change/change.service";
12
- import * as i2 from "../../services/data/data.service";
13
- import * as i3 from "@angular/common";
14
- import * as i4 from "@angular/forms";
15
- import * as i5 from "@danielmoncada/angular-datetime-picker";
16
- // SKS11JUN25 An array fontFamilyArr is created containing a list of font family names as strings.
17
- const fontFamilyArr = ["Roboto", "Roboto Condensed", "Arial", "Verdana", "Tahoma", "Trebuchet MS",
18
- "Georgia", "Times New Roman", "Courier New", "Palatino Linotype",
19
- "Segoe UI", "Calibri", "Calibri Light", "Sans-Serif", "Helvetica",
20
- "Impact", "Garamond", "Comic Sans MS", "Lucida Console", "Franklin Gothic Medium"];
21
- // SKS11JUN25 Register Quill modules
22
- Quill.register('modules/mention', Mention);
23
- ImageResizor.Quill = Quill;
24
- Quill.register('modules/imageResizor', ImageResizor);
25
- // SKS11JUN25 The Quill font style attributor is imported and it is registered with Quil
26
- let fonts = Quill.import("attributors/style/font");
27
- fonts.whitelist = fontFamilyArr;
28
- Quill.register(fonts, true);
29
- const icons = Quill.import('ui/icons');
30
- icons['save'] = `<svg width="12" height="13" viewBox="0 0 12 13" fill="none"
31
- xmlns="http://www.w3.org/2000/svg">
32
- <path
33
- d="M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z"
34
- fill="#259566" />
35
- <path
36
- d="M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z"
37
- fill="white" />
38
- </svg>`;
39
- icons['discard'] = `<svg *ngIf="isDiscardHovered" (click)="discardChanges()" width="12" height="13" viewBox="0 0 12 13"
40
- fill="none" xmlns="http://www.w3.org/2000/svg">
41
- <path
42
- d="M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z"
43
- fill="#FF3636" />
44
- </svg>`;
45
- function getFormArray(size) {
46
- const arr = [];
47
- for (let i = 0; i < size; i++) {
48
- arr.push(new FormControl(''));
49
- }
50
- return new FormArray(arr);
51
- }
52
- export class NxtInput {
53
- renderer;
54
- elRef;
55
- elementRef;
56
- changeService;
57
- dataService;
58
- // SKS30JAN25
59
- label = ''; // Input label
60
- labelFont = ''; // Input label font
61
- labelWeight = ''; // Input label Weight
62
- inputWeight = ''; // Input Weight
63
- labelSize = ''; // Input label Size
64
- inputValueSize = ''; //Input value Size
65
- labelColor = ''; // Input label Color
66
- showLabel = ''; // Input label Color
67
- svgHeight = ''; // Input svg height
68
- svgWidth = ''; // Input svg weight
69
- type = 'text'; // Input type (text, email, password)
70
- inputIconRightSrc = ''; // Path to SVG icon
71
- inputIconLeftSrc = '';
72
- required = false; // Required validation
73
- minLength; // Min length validation
74
- pattern; // Pattern validation (e.g., email regex)
75
- errorMessages = {}; // Custom error messages
76
- maxLength = 0; // Maximum length validation
77
- placeholder = '';
78
- inputBgColor = ''; // Use this input to set a custom background color for the input.
79
- inputBorder = ''; // Use this input to set a custom border style for the input.
80
- placeholderColor = ''; // Use this input to set a custom text color for the input.
81
- placeholderFont = ''; // Use this input to set a custom placeholder font
82
- placeholderWeight = ''; // Use this input to set a custom
83
- placeholderSize = ''; // Use this input to set a custom size
84
- inputTextColor = ''; // Use this input to set a custom text color for the input value.
85
- inputHeight = ''; // Use this input to set a custom height for the input.
86
- inputWidth = ''; // Use this input to set a custom width for the Input.
87
- inputId = 'default'; // Use this input to set a custom ID for the input. Default is 'default'.
88
- inputBorderSize = '0px'; // Use this input to set the border size of the input. Default is '0px' for no border.
89
- inputConfig = ''; // Use this input to pass configuration settings for the input (e.g., styles, actions).
90
- confPassVal = ''; // Password value to check if the current field matches the confirmed password
91
- confPass = false; // Set to true to enable password confirmation validation
92
- mode = 'edit'; // New mode input
93
- value; // input value
94
- question = {};
95
- showSuggestion = false; // showSuggestion the input
96
- ariaOwns;
97
- ariaHasPopup;
98
- isLoading = false; // Set to true to show a loading animation
99
- options = []; // For radio buttons
100
- minDate; // For date/datetime picker
101
- maxDate; // For date/datetime picker
102
- rows = 3; // For textarea
103
- from;
104
- hyperLink;
105
- rawInputVal;
106
- set size(size) {
107
- this.inputs = getFormArray(size);
108
- this.#size = size;
109
- }
110
- valueChange = new EventEmitter(); // Emits input value changes
111
- inputValue = new EventEmitter();
112
- onBlur = new EventEmitter();
113
- onFocus = new EventEmitter();
114
- toggleEmit = new EventEmitter();
115
- nativeInputRef = new EventEmitter();
116
- removeValueEmit = new EventEmitter();
117
- hyperlinkEmit = new EventEmitter();
118
- inputEls;
119
- // Date/Time picker references
120
- dateTimePicker;
121
- datePicker;
122
- timePicker;
123
- dtPicker;
124
- dPicker;
125
- inputRef;
126
- #size = 4;
127
- #scheduledFocus = null;
128
- inputs = getFormArray(this.#size);
129
- control = new FormControl('');
130
- isPasswordVisible = false;
131
- countryCode = '';
132
- // SKS28FEB25 countries list
133
- countries = [
134
- {
135
- "name": "Afghanistan",
136
- "flag": "🇦🇫",
137
- "code": "AF",
138
- "dial_code": "+93",
139
- "regex": "^\\+93[0-9]{9}$",
140
- "placeholder": "+93 70 123 4567"
141
- },
142
- {
143
- "name": "Åland Islands",
144
- "flag": "🇦🇽",
145
- "code": "AX",
146
- "dial_code": "+358",
147
- "regex": "^\\+358[0-9]{6,12}$",
148
- "placeholder": "+358 18 123 45"
149
- },
150
- {
151
- "name": "Albania",
152
- "flag": "🇦🇱",
153
- "code": "AL",
154
- "dial_code": "+355",
155
- "regex": "^\\+355[0-9]{9}$",
156
- "placeholder": "+355 69 123 4567"
157
- },
158
- {
159
- "name": "Algeria",
160
- "flag": "🇩🇿",
161
- "code": "DZ",
162
- "dial_code": "+213",
163
- "regex": "^\\+213[0-9]{9}$",
164
- "placeholder": "+213 551 234 567"
165
- },
166
- {
167
- "name": "American Samoa",
168
- "flag": "🇦🇸",
169
- "code": "AS",
170
- "dial_code": "+1684",
171
- "regex": "^\\+1684[0-9]{7}$",
172
- "placeholder": "+1684 123 4567"
173
- },
174
- {
175
- "name": "Andorra",
176
- "flag": "🇦🇩",
177
- "code": "AD",
178
- "dial_code": "+376",
179
- "regex": "^\\+376[0-9]{6}$",
180
- "placeholder": "+376 123 456"
181
- },
182
- {
183
- "name": "Angola",
184
- "flag": "🇦🇴",
185
- "code": "AO",
186
- "dial_code": "+244",
187
- "regex": "^\\+244[0-9]{9}$",
188
- "placeholder": "+244 923 123 456"
189
- },
190
- {
191
- "name": "Anguilla",
192
- "flag": "🇦🇮",
193
- "code": "AI",
194
- "dial_code": "+1264",
195
- "regex": "^\\+1264[0-9]{7}$",
196
- "placeholder": "+1264 235 1234"
197
- },
198
- {
199
- "name": "Antarctica",
200
- "flag": "🇦🇶",
201
- "code": "AQ",
202
- "dial_code": "+672",
203
- "regex": "^\\+672[0-9]{6,12}$",
204
- "placeholder": "+672 123 456"
205
- },
206
- {
207
- "name": "Antigua and Barbuda",
208
- "flag": "🇦🇬",
209
- "code": "AG",
210
- "dial_code": "+1268",
211
- "regex": "^\\+1268[0-9]{7}$",
212
- "placeholder": "+1268 234 5678"
213
- },
214
- {
215
- "name": "Argentina",
216
- "flag": "🇦🇷",
217
- "code": "AR",
218
- "dial_code": "+54",
219
- "regex": "^\\+54[0-9]{10,11}$",
220
- "placeholder": "+54 9 11 1234 5678"
221
- },
222
- {
223
- "name": "Armenia",
224
- "flag": "🇦🇲",
225
- "code": "AM",
226
- "dial_code": "+374",
227
- "regex": "^\\+374[0-9]{8}$",
228
- "placeholder": "+374 94 123 456"
229
- },
230
- {
231
- "name": "Aruba",
232
- "flag": "🇦🇼",
233
- "code": "AW",
234
- "dial_code": "+297",
235
- "regex": "^\\+297[0-9]{7}$",
236
- "placeholder": "+297 560 1234"
237
- },
238
- {
239
- "name": "Australia",
240
- "flag": "🇦🇺",
241
- "code": "AU",
242
- "dial_code": "+61",
243
- "regex": "^\\+61[0-9]{9}$",
244
- "placeholder": "+61 4 1234 5678"
245
- },
246
- {
247
- "name": "Austria",
248
- "flag": "🇦🇹",
249
- "code": "AT",
250
- "dial_code": "+43",
251
- "regex": "^\\+43[0-9]{10,12}$",
252
- "placeholder": "+43 664 123 4567"
253
- },
254
- {
255
- "name": "Azerbaijan",
256
- "flag": "🇦🇿",
257
- "code": "AZ",
258
- "dial_code": "+994",
259
- "regex": "^\\+994[0-9]{9}$",
260
- "placeholder": "+994 50 123 45 67"
261
- },
262
- {
263
- "name": "Bahamas",
264
- "flag": "🇧🇸",
265
- "code": "BS",
266
- "dial_code": "+1242",
267
- "regex": "^\\+1242[0-9]{7}$",
268
- "placeholder": "+1242 323 1234"
269
- },
270
- {
271
- "name": "Bahrain",
272
- "flag": "🇧🇭",
273
- "code": "BH",
274
- "dial_code": "+973",
275
- "regex": "^\\+973[0-9]{8}$",
276
- "placeholder": "+973 3123 4567"
277
- },
278
- {
279
- "name": "Bangladesh",
280
- "flag": "🇧🇩",
281
- "code": "BD",
282
- "dial_code": "+880",
283
- "regex": "^\\+880[0-9]{10}$",
284
- "placeholder": "+880 1712 345678"
285
- },
286
- {
287
- "name": "Barbados",
288
- "flag": "🇧🇧",
289
- "code": "BB",
290
- "dial_code": "+1246",
291
- "regex": "^\\+1246[0-9]{7}$",
292
- "placeholder": "+1246 250 1234"
293
- },
294
- {
295
- "name": "Belarus",
296
- "flag": "🇧🇾",
297
- "code": "BY",
298
- "dial_code": "+375",
299
- "regex": "^\\+375[0-9]{9}$",
300
- "placeholder": "+375 29 123 45 67"
301
- },
302
- {
303
- "name": "Belgium",
304
- "flag": "🇧🇪",
305
- "code": "BE",
306
- "dial_code": "+32",
307
- "regex": "^\\+32[0-9]{9}$",
308
- "placeholder": "+32 470 12 34 56"
309
- },
310
- {
311
- "name": "Belize",
312
- "flag": "🇧🇿",
313
- "code": "BZ",
314
- "dial_code": "+501",
315
- "regex": "^\\+501[0-9]{7}$",
316
- "placeholder": "+501 610 1234"
317
- },
318
- {
319
- "name": "Benin",
320
- "flag": "🇧🇯",
321
- "code": "BJ",
322
- "dial_code": "+229",
323
- "regex": "^\\+229[0-9]{8}$",
324
- "placeholder": "+229 90 12 3456"
325
- },
326
- {
327
- "name": "Bermuda",
328
- "flag": "🇧🇲",
329
- "code": "BM",
330
- "dial_code": "+1441",
331
- "regex": "^\\+1441[0-9]{7}$",
332
- "placeholder": "+1441 370 1234"
333
- },
334
- {
335
- "name": "Bhutan",
336
- "flag": "🇧🇹",
337
- "code": "BT",
338
- "dial_code": "+975",
339
- "regex": "^\\+975[0-9]{7,8}$",
340
- "placeholder": "+975 17 123 456"
341
- },
342
- {
343
- "name": "Bolivia, Plurinational State of bolivia",
344
- "flag": "🇧🇴",
345
- "code": "BO",
346
- "dial_code": "+591",
347
- "regex": "^\\+591[1-9]\\d{7}$",
348
- "placeholder": "+591 12345678",
349
- "example": "+591 70123456"
350
- },
351
- {
352
- "name": "Bosnia and Herzegovina",
353
- "flag": "🇧🇦",
354
- "code": "BA",
355
- "dial_code": "+387",
356
- "regex": "^\\+387[0-9]{8,9}$",
357
- "placeholder": "+387 61 123 456"
358
- },
359
- {
360
- "name": "Botswana",
361
- "flag": "🇧🇼",
362
- "code": "BW",
363
- "dial_code": "+267",
364
- "regex": "^\\+267[0-9]{8}$",
365
- "placeholder": "+267 71 123 456"
366
- },
367
- {
368
- "name": "Bouvet Island",
369
- "code": "BV",
370
- "dial_code": "+47",
371
- "regex": "^\\+47\\d{8}$",
372
- "placeholder": "+47 XXXXXXXX",
373
- "format": "+47 XX XX XX XX",
374
- "flag": "🇧🇻"
375
- },
376
- {
377
- "name": "Brazil",
378
- "flag": "🇧🇷",
379
- "code": "BR",
380
- "dial_code": "+55",
381
- "regex": "^\\+55[0-9]{10,11}$",
382
- "placeholder": "+55 11 91234 5678"
383
- },
384
- {
385
- "name": "British Indian Ocean Territory",
386
- "flag": "🇮🇴",
387
- "code": "IO",
388
- "dial_code": "+246",
389
- "regex": "^\\+246[0-9]{7}$",
390
- "placeholder": "+246 380 1234"
391
- },
392
- {
393
- "name": "Brunei Darussalam",
394
- "flag": "🇧🇳",
395
- "code": "BN",
396
- "dial_code": "+673",
397
- "regex": "^\\+673[0-9]{7}$",
398
- "placeholder": "+673 712 3456"
399
- },
400
- {
401
- "name": "Bulgaria",
402
- "flag": "🇧🇬",
403
- "code": "BG",
404
- "dial_code": "+359",
405
- "regex": "^\\+359[0-9]{9}$",
406
- "placeholder": "+359 87 123 4567"
407
- },
408
- {
409
- "name": "Burkina Faso",
410
- "flag": "🇧🇫",
411
- "code": "BF",
412
- "dial_code": "+226",
413
- "regex": "^\\+226[0-9]{8}$",
414
- "placeholder": "+226 70 12 3456"
415
- },
416
- {
417
- "name": "Burundi",
418
- "flag": "🇧🇮",
419
- "code": "BI",
420
- "dial_code": "+257",
421
- "regex": "^\\+257[0-9]{8}$",
422
- "placeholder": "+257 79 12 3456"
423
- },
424
- {
425
- "name": "Cambodia",
426
- "flag": "🇰🇭",
427
- "code": "KH",
428
- "dial_code": "+855",
429
- "regex": "^\\+855[0-9]{8,9}$",
430
- "placeholder": "+855 91 234 567"
431
- },
432
- {
433
- "name": "Cameroon",
434
- "flag": "🇨🇲",
435
- "code": "CM",
436
- "dial_code": "+237",
437
- "regex": "^\\+237[0-9]{8}$",
438
- "placeholder": "+237 6 71 23 45 67"
439
- },
440
- {
441
- "name": "Canada",
442
- "flag": "🇨🇦",
443
- "code": "CA",
444
- "dial_code": "+1",
445
- "regex": "^\\+1[0-9]{10}$",
446
- "placeholder": "+1 204 123 4567"
447
- },
448
- {
449
- "name": "Cape Verde",
450
- "flag": "🇨🇻",
451
- "code": "CV",
452
- "dial_code": "+238",
453
- "regex": "^\\+238[0-9]{7}$",
454
- "placeholder": "+238 991 2345"
455
- },
456
- {
457
- "name": "Cayman Islands",
458
- "flag": "🇰🇾",
459
- "code": "KY",
460
- "dial_code": "+345",
461
- "regex": "^\\+345[0-9]{7}$",
462
- "placeholder": "+345 321 1234"
463
- },
464
- {
465
- "name": "Central African Republic",
466
- "flag": "🇨🇫",
467
- "code": "CF",
468
- "dial_code": "+236",
469
- "regex": "^\\+236[0-9]{8}$",
470
- "placeholder": "+236 72 12 3456"
471
- },
472
- {
473
- "name": "Chad",
474
- "flag": "🇹🇩",
475
- "code": "TD",
476
- "dial_code": "+235",
477
- "regex": "^\\+235[0-9]{8}$",
478
- "placeholder": "+235 63 12 3456"
479
- },
480
- {
481
- "name": "Chile",
482
- "flag": "🇨🇱",
483
- "code": "CL",
484
- "dial_code": "+56",
485
- "regex": "^\\+56[0-9]{9}$",
486
- "placeholder": "+56 9 1234 5678"
487
- },
488
- {
489
- "name": "China",
490
- "flag": "🇨🇳",
491
- "code": "CN",
492
- "dial_code": "+86",
493
- "regex": "^\\+86[0-9]{11}$",
494
- "placeholder": "+86 131 2345 6789"
495
- },
496
- {
497
- "name": "Christmas Island",
498
- "flag": "🇨🇽",
499
- "code": "CX",
500
- "dial_code": "+61",
501
- "regex": "^\\+61[0-9]{9}$",
502
- "placeholder": "+61 4 1234 5678"
503
- },
504
- {
505
- "name": "Cocos (Keeling) Islands",
506
- "flag": "🇨🇨",
507
- "code": "CC",
508
- "dial_code": "+61",
509
- "regex": "^\\+61[0-9]{9}$",
510
- "placeholder": "+61 4 1234 5678"
511
- },
512
- {
513
- "name": "Colombia",
514
- "flag": "🇨🇴",
515
- "code": "CO",
516
- "dial_code": "+57",
517
- "regex": "^\\+57[0-9]{10}$",
518
- "placeholder": "+57 312 345 6789"
519
- },
520
- {
521
- "name": "Comoros",
522
- "flag": "🇰🇲",
523
- "code": "KM",
524
- "dial_code": "+269",
525
- "regex": "^\\+269[0-9]{7}$",
526
- "placeholder": "+269 321 2345"
527
- },
528
- {
529
- "name": "Congo",
530
- "flag": "🇨🇬",
531
- "code": "CG",
532
- "dial_code": "+242",
533
- "regex": "^\\+242[0-9]{9}$",
534
- "placeholder": "+242 06 123 4567"
535
- },
536
- {
537
- "name": "Congo, The Democratic Republic of the Congo",
538
- "flag": "🇨🇩",
539
- "code": "CD",
540
- "dial_code": "+243",
541
- "regex": "^\\+243[89]\\d{8}$",
542
- "placeholder": "+243 9XXXXXXXX",
543
- "example": "+243 991234567"
544
- },
545
- {
546
- "name": "Cook Islands",
547
- "flag": "🇨🇰",
548
- "code": "CK",
549
- "dial_code": "+682",
550
- "regex": "^\\+682[0-9]{5}$",
551
- "placeholder": "+682 71 234"
552
- },
553
- {
554
- "name": "Costa Rica",
555
- "flag": "🇨🇷",
556
- "code": "CR",
557
- "dial_code": "+506",
558
- "regex": "^\\+506[0-9]{8}$",
559
- "placeholder": "+506 8123 4567"
560
- },
561
- {
562
- "name": "Cote d'Ivoire",
563
- "flag": "🇨🇮",
564
- "code": "CI",
565
- "dial_code": "+225",
566
- "regex": "^\\+225[0-9]{8}$",
567
- "placeholder": "+225 01 23 45 67"
568
- },
569
- {
570
- "name": "Croatia",
571
- "flag": "🇭🇷",
572
- "code": "HR",
573
- "dial_code": "+385",
574
- "regex": "^\\+385[0-9]{8,9}$",
575
- "placeholder": "+385 98 123 456"
576
- },
577
- {
578
- "name": "Cuba",
579
- "flag": "🇨🇺",
580
- "code": "CU",
581
- "dial_code": "+53",
582
- "regex": "^\\+53[0-9]{8}$",
583
- "placeholder": "+53 5 1234 5678"
584
- },
585
- {
586
- "name": "Cyprus",
587
- "flag": "🇨🇾",
588
- "code": "CY",
589
- "dial_code": "+357",
590
- "regex": "^\\+357[0-9]{8}$",
591
- "placeholder": "+357 96 123 456"
592
- },
593
- {
594
- "name": "Czech Republic",
595
- "flag": "🇨🇿",
596
- "code": "CZ",
597
- "dial_code": "+420",
598
- "regex": "^\\+420[0-9]{9}$",
599
- "placeholder": "+420 601 123 456"
600
- },
601
- {
602
- "name": "Denmark",
603
- "flag": "🇩🇰",
604
- "code": "DK",
605
- "dial_code": "+45",
606
- "regex": "^\\+45[0-9]{8}$",
607
- "placeholder": "+45 20 12 34 56"
608
- },
609
- {
610
- "name": "Djibouti",
611
- "flag": "🇩🇯",
612
- "code": "DJ",
613
- "dial_code": "+253",
614
- "regex": "^\\+253[0-9]{8}$",
615
- "placeholder": "+253 77 12 34 56"
616
- },
617
- {
618
- "name": "Dominica",
619
- "flag": "🇩🇲",
620
- "code": "DM",
621
- "dial_code": "+1767",
622
- "regex": "^\\+1767[0-9]{7}$",
623
- "placeholder": "+1767 235 1234"
624
- },
625
- {
626
- "name": "Dominican Republic",
627
- "flag": "🇩🇴",
628
- "code": "DO",
629
- "dial_code": "+1849",
630
- "regex": "^\\+1849[0-9]{7}$",
631
- "placeholder": "+1849 234 5678"
632
- },
633
- {
634
- "name": "Ecuador",
635
- "flag": "🇪🇨",
636
- "code": "EC",
637
- "dial_code": "+593",
638
- "regex": "^\\+593[0-9]{9}$",
639
- "placeholder": "+593 99 123 4567"
640
- },
641
- {
642
- "name": "Egypt",
643
- "flag": "🇪🇬",
644
- "code": "EG",
645
- "dial_code": "+20",
646
- "regex": "^\\+20[0-9]{10}$",
647
- "placeholder": "+20 100 123 4567"
648
- },
649
- {
650
- "name": "El Salvador",
651
- "flag": "🇸🇻",
652
- "code": "SV",
653
- "dial_code": "+503",
654
- "regex": "^\\+503[0-9]{8}$",
655
- "placeholder": "+503 7123 4567"
656
- },
657
- {
658
- "name": "Equatorial Guinea",
659
- "flag": "🇬🇶",
660
- "code": "GQ",
661
- "dial_code": "+240",
662
- "regex": "^\\+240[0-9]{9}$",
663
- "placeholder": "+240 222 123 456"
664
- },
665
- {
666
- "name": "Eritrea",
667
- "flag": "🇪🇷",
668
- "code": "ER",
669
- "dial_code": "+291",
670
- "regex": "^\\+291[0-9]{7}$",
671
- "placeholder": "+291 7 123 456"
672
- },
673
- {
674
- "name": "Estonia",
675
- "flag": "🇪🇪",
676
- "code": "EE",
677
- "dial_code": "+372",
678
- "regex": "^\\+372[0-9]{7,8}$",
679
- "placeholder": "+372 5123 456"
680
- },
681
- {
682
- "name": "Ethiopia",
683
- "flag": "🇪🇹",
684
- "code": "ET",
685
- "dial_code": "+251",
686
- "regex": "^\\+251[0-9]{9}$",
687
- "placeholder": "+251 91 123 4567"
688
- },
689
- {
690
- "name": "Falkland Islands (Malvinas)",
691
- "flag": "🇫🇰",
692
- "code": "FK",
693
- "dial_code": "+500",
694
- "regex": "^\\+500\\d{5}$",
695
- "placeholder": "+500 XXXXX",
696
- "example": "+500 12345"
697
- },
698
- {
699
- "name": "Faroe Islands",
700
- "flag": "🇫🇴",
701
- "code": "FO",
702
- "dial_code": "+298",
703
- "regex": "^\\+298[0-9]{6}$",
704
- "placeholder": "+298 123 456"
705
- },
706
- {
707
- "name": "Fiji",
708
- "flag": "🇫🇯",
709
- "code": "FJ",
710
- "dial_code": "+679",
711
- "regex": "^\\+679[0-9]{7,8}$",
712
- "placeholder": "+679 701 2345"
713
- },
714
- {
715
- "name": "Finland",
716
- "flag": "🇫🇮",
717
- "code": "FI",
718
- "dial_code": "+358",
719
- "regex": "^\\+358[0-9]{6,12}$",
720
- "placeholder": "+358 40 123 4567"
721
- },
722
- {
723
- "name": "France",
724
- "flag": "🇫🇷",
725
- "code": "FR",
726
- "dial_code": "+33",
727
- "regex": "^\\+33[0-9]{9}$",
728
- "placeholder": "+33 6 12 34 56 78"
729
- },
730
- {
731
- "name": "French Guiana",
732
- "flag": "🇬🇫",
733
- "code": "GF",
734
- "dial_code": "+594",
735
- "regex": "^\\+594[0-9]{9}$",
736
- "placeholder": "+594 694 12 34 56"
737
- },
738
- {
739
- "name": "French Polynesia",
740
- "flag": "🇵🇫",
741
- "code": "PF",
742
- "dial_code": "+689",
743
- "regex": "^\\+689[0-9]{8}$",
744
- "placeholder": "+689 87 12 34 56"
745
- },
746
- {
747
- "name": "French Southern Territories",
748
- "flag": "🇹🇫",
749
- "code": "TF",
750
- "dial_code": "+262",
751
- "regex": "^\\+262[0-9]{9}$",
752
- "placeholder": "+262 639 12 34 56"
753
- },
754
- {
755
- "name": "Gabon",
756
- "flag": "🇬🇦",
757
- "code": "GA",
758
- "dial_code": "+241",
759
- "regex": "^\\+241[0-9]{8}$",
760
- "placeholder": "+241 06 12 34 56"
761
- },
762
- {
763
- "name": "Gambia",
764
- "flag": "🇬🇲",
765
- "code": "GM",
766
- "dial_code": "+220",
767
- "regex": "^\\+220[0-9]{7}$",
768
- "placeholder": "+220 301 2345"
769
- },
770
- {
771
- "name": "Georgia",
772
- "flag": "🇬🇪",
773
- "code": "GE",
774
- "dial_code": "+995",
775
- "regex": "^\\+995[0-9]{9}$",
776
- "placeholder": "+995 555 12 34 56"
777
- },
778
- {
779
- "name": "Germany",
780
- "flag": "🇩🇪",
781
- "code": "DE",
782
- "dial_code": "+49",
783
- "regex": "^\\+49[0-9]{10,11}$",
784
- "placeholder": "+49 151 1234 5678"
785
- },
786
- {
787
- "name": "Ghana",
788
- "flag": "🇬🇭",
789
- "code": "GH",
790
- "dial_code": "+233",
791
- "regex": "^\\+233[0-9]{9}$",
792
- "placeholder": "+233 24 123 4567"
793
- },
794
- {
795
- "name": "Gibraltar",
796
- "flag": "🇬🇮",
797
- "code": "GI",
798
- "dial_code": "+350",
799
- "regex": "^\\+350[0-9]{8}$",
800
- "placeholder": "+350 57123456"
801
- },
802
- {
803
- "name": "Greece",
804
- "flag": "🇬🇷",
805
- "code": "GR",
806
- "dial_code": "+30",
807
- "regex": "^\\+30[0-9]{10}$",
808
- "placeholder": "+30 691 234 5678"
809
- },
810
- {
811
- "name": "Greenland",
812
- "flag": "🇬🇱",
813
- "code": "GL",
814
- "dial_code": "+299",
815
- "regex": "^\\+299[0-9]{6}$",
816
- "placeholder": "+299 22 12 34"
817
- },
818
- {
819
- "name": "Grenada",
820
- "flag": "🇬🇩",
821
- "code": "GD",
822
- "dial_code": "+1473",
823
- "regex": "^\\+1473[0-9]{7}$",
824
- "placeholder": "+1473 403 1234"
825
- },
826
- {
827
- "name": "Guadeloupe",
828
- "code": "GP",
829
- "dial_code": "+590",
830
- "regex": "^\\+590[67]\\d{8}$",
831
- "placeholder": "+590 6XXXXXXXX",
832
- "format": "+590 XXX XX XX XX",
833
- "flag": "🇬🇵"
834
- },
835
- {
836
- "name": "Guam",
837
- "code": "GU",
838
- "dial_code": "+1671",
839
- "regex": "^\\+1671\\d{7}$",
840
- "placeholder": "+1671 XXXXXXX",
841
- "format": "+1671 XXX XXXX",
842
- "flag": "🇬🇺"
843
- },
844
- {
845
- "name": "Guatemala",
846
- "code": "GT",
847
- "dial_code": "+502",
848
- "regex": "^\\+502[2-9]\\d{7}$",
849
- "placeholder": "+502 8XXXXXXX",
850
- "format": "+502 XXXX XXXX",
851
- "flag": "🇬🇹"
852
- },
853
- {
854
- "name": "Guernsey",
855
- "code": "GG",
856
- "dial_code": "+44",
857
- "regex": "^\\+44[1487]\\d{9}$",
858
- "placeholder": "+44 1481 XXXXXX",
859
- "format": "+44 1481 XXXXXX",
860
- "flag": "🇬🇬"
861
- },
862
- {
863
- "name": "Guinea",
864
- "code": "GN",
865
- "dial_code": "+224",
866
- "regex": "^\\+224\\d{9}$",
867
- "placeholder": "+224 XXXXXXXXX",
868
- "format": "+224 XXX XXX XXX",
869
- "flag": "🇬🇳"
870
- },
871
- {
872
- "name": "Guinea-Bissau",
873
- "code": "GW",
874
- "dial_code": "+245",
875
- "regex": "^\\+245\\d{7}$",
876
- "placeholder": "+245 XXXXXXX",
877
- "format": "+245 XXX XXXX",
878
- "flag": "🇬🇼"
879
- },
880
- {
881
- "name": "Guyana",
882
- "code": "GY",
883
- "dial_code": "+592",
884
- "regex": "^\\+592[2-9]\\d{6}$",
885
- "placeholder": "+592 6XXXXXX",
886
- "format": "+592 XXX XXXX",
887
- "flag": "🇬🇾"
888
- },
889
- {
890
- "name": "Haiti",
891
- "code": "HT",
892
- "dial_code": "+509",
893
- "regex": "^\\+509[2-9]\\d{7}$",
894
- "placeholder": "+509 2XXXXXXX",
895
- "format": "+509 XXXX XXXX",
896
- "flag": "🇭🇹"
897
- },
898
- {
899
- "name": "Heard Island and Mcdonald Islands",
900
- "flag": "🇭🇲",
901
- "code": "HM",
902
- "dial_code": "+672",
903
- "regex": "^\\+672\\d{6}$",
904
- "placeholder": "+672 XXXXXX",
905
- "example": "+672 123456"
906
- },
907
- {
908
- "name": "Holy See (Vatican City State)",
909
- "flag": "🇻🇦",
910
- "code": "VA",
911
- "dial_code": "+379",
912
- "regex": "^\\+379\\d{10}$",
913
- "placeholder": "+379 XXXXXXXXXX",
914
- "example": "+379 0612345678"
915
- },
916
- {
917
- "name": "Honduras",
918
- "code": "HN",
919
- "dial_code": "+504",
920
- "regex": "^\\+504[2-9]\\d{7}$",
921
- "placeholder": "+504 9XXXXXXX",
922
- "format": "+504 XXXX XXXX",
923
- "flag": "🇭🇳"
924
- },
925
- {
926
- "name": "Hong Kong",
927
- "code": "HK",
928
- "dial_code": "+852",
929
- "regex": "^\\+852[2-9]\\d{7}$",
930
- "placeholder": "+852 5XXXXXXX",
931
- "format": "+852 XXXX XXXX",
932
- "flag": "🇭🇰"
933
- },
934
- {
935
- "name": "Hungary",
936
- "code": "HU",
937
- "dial_code": "+36",
938
- "regex": "^\\+36[1-9]\\d{7,8}$",
939
- "placeholder": "+36 30XXXXXXX",
940
- "format": "+36 XX XXX XXXX",
941
- "flag": "🇭🇺"
942
- },
943
- {
944
- "name": "Iceland",
945
- "code": "IS",
946
- "dial_code": "+354",
947
- "regex": "^\\+354\\d{7}$",
948
- "placeholder": "+354 XXXXXXX",
949
- "format": "+354 XXX XXXX",
950
- "flag": "🇮🇸"
951
- },
952
- {
953
- "name": "India",
954
- "code": "IN",
955
- "dial_code": "+91",
956
- "regex": "^\\+91[6789]\\d{9}$",
957
- "placeholder": "+91 9XXXXXXXXX",
958
- "format": "+91 XXXXX XXXXX",
959
- "flag": "🇮🇳"
960
- },
961
- {
962
- "name": "Indonesia",
963
- "code": "ID",
964
- "dial_code": "+62",
965
- "regex": "^\\+62[8]\\d{9,10}$",
966
- "placeholder": "+62 8XXXXXXXXX",
967
- "format": "+62 8XX XXXX XXXX",
968
- "flag": "🇮🇩"
969
- },
970
- {
971
- "name": "Iran, Islamic Republic of Persian Gulf",
972
- "flag": "🇮🇷",
973
- "code": "IR",
974
- "dial_code": "+98",
975
- "regex": "^\\+98[1-9]\\d{9}$",
976
- "placeholder": "+98 9XXXXXXXXX",
977
- "example": "+98 9123456789"
978
- },
979
- {
980
- "name": "Iraq",
981
- "code": "IQ",
982
- "dial_code": "+964",
983
- "regex": "^\\+964[7]\\d{9}$",
984
- "placeholder": "+964 7XXXXXXXXX",
985
- "format": "+964 7XX XXX XXXX",
986
- "flag": "🇮🇶"
987
- },
988
- {
989
- "name": "Ireland",
990
- "code": "IE",
991
- "dial_code": "+353",
992
- "regex": "^\\+353[1-9]\\d{8}$",
993
- "placeholder": "+353 8XXXXXXXX",
994
- "format": "+353 XX XXX XXXX",
995
- "flag": "🇮🇪"
996
- },
997
- {
998
- "name": "Isle of Man",
999
- "code": "IM",
1000
- "dial_code": "+44",
1001
- "regex": "^\\+44[1624]\\d{6}$",
1002
- "placeholder": "+44 1624 XXXXXX",
1003
- "format": "+44 1624 XXXXXX",
1004
- "flag": "🇮🇲"
1005
- },
1006
- {
1007
- "name": "Israel",
1008
- "code": "IL",
1009
- "dial_code": "+972",
1010
- "regex": "^\\+972[5-9]\\d{8}$",
1011
- "placeholder": "+972 5XXXXXXXX",
1012
- "format": "+972 5X XXX XXXX",
1013
- "flag": "🇮🇱"
1014
- },
1015
- {
1016
- "name": "Italy",
1017
- "code": "IT",
1018
- "dial_code": "+39",
1019
- "regex": "^\\+39[0-9]\\d{9}$",
1020
- "placeholder": "+39 3XXXXXXXXX",
1021
- "format": "+39 3XX XXX XXXX",
1022
- "flag": "🇮🇹"
1023
- },
1024
- {
1025
- "name": "Jamaica",
1026
- "code": "JM",
1027
- "dial_code": "+1876",
1028
- "regex": "^\\+1876\\d{7}$",
1029
- "placeholder": "+1876 XXXXXXX",
1030
- "format": "+1876 XXX XXXX",
1031
- "flag": "🇯🇲"
1032
- },
1033
- {
1034
- "name": "Japan",
1035
- "code": "JP",
1036
- "dial_code": "+81",
1037
- "regex": "^\\+81[0-9]\\d{9}$",
1038
- "placeholder": "+81 9XXXXXXXXX",
1039
- "format": "+81 XX XXXX XXXX",
1040
- "flag": "🇯🇵"
1041
- },
1042
- {
1043
- "name": "Jersey",
1044
- "code": "JE",
1045
- "dial_code": "+44",
1046
- "regex": "^\\+44[1534]\\d{6}$",
1047
- "placeholder": "+44 1534 XXXXXX",
1048
- "format": "+44 1534 XXXXXX",
1049
- "flag": "🇯🇪"
1050
- },
1051
- {
1052
- "name": "Jordan",
1053
- "code": "JO",
1054
- "dial_code": "+962",
1055
- "regex": "^\\+962[7]\\d{8}$",
1056
- "placeholder": "+962 7XXXXXXXX",
1057
- "format": "+962 7 XXXX XXXX",
1058
- "flag": "🇯🇴"
1059
- },
1060
- {
1061
- "name": "Kazakhstan",
1062
- "code": "KZ",
1063
- "dial_code": "+7",
1064
- "regex": "^\\+7[7]\\d{9}$",
1065
- "placeholder": "+7 7XXXXXXXXX",
1066
- "format": "+7 7XX XXX XXXX",
1067
- "flag": "🇰🇿"
1068
- },
1069
- {
1070
- "name": "Kenya",
1071
- "code": "KE",
1072
- "dial_code": "+254",
1073
- "regex": "^\\+254[7]\\d{8}$",
1074
- "placeholder": "+254 7XXXXXXXX",
1075
- "format": "+254 7XX XXX XXX",
1076
- "flag": "🇰🇪"
1077
- },
1078
- {
1079
- "name": "Kiribati",
1080
- "code": "KI",
1081
- "dial_code": "+686",
1082
- "regex": "^\\+686\\d{5}$",
1083
- "placeholder": "+686 XXXXX",
1084
- "format": "+686 XXXXX",
1085
- "flag": "🇰🇮"
1086
- },
1087
- {
1088
- "name": "Korea, Democratic People's Republic of Korea",
1089
- "flag": "🇰🇵",
1090
- "code": "KP",
1091
- "dial_code": "+850",
1092
- "regex": "^\\+850\\d{7,10}$",
1093
- "placeholder": "+850 XXXXXXXXXX",
1094
- "example": "+850 2123456789"
1095
- },
1096
- {
1097
- "name": "Korea, Republic of South Korea",
1098
- "flag": "🇰🇷",
1099
- "code": "KR",
1100
- "dial_code": "+82",
1101
- "regex": "^\\+82\\d{9,10}$",
1102
- "placeholder": "+82 10XXXXXXXX",
1103
- "example": "+82 1012345678"
1104
- },
1105
- {
1106
- "name": "Kosovo",
1107
- "code": "XK",
1108
- "dial_code": "+383",
1109
- "regex": "^\\+383[4-9]\\d{7}$",
1110
- "placeholder": "+383 4XXXXXXX",
1111
- "format": "+383 4X XXX XXX",
1112
- "flag": "🇽🇰"
1113
- },
1114
- {
1115
- "name": "Kuwait",
1116
- "code": "KW",
1117
- "dial_code": "+965",
1118
- "regex": "^\\+965[5-9]\\d{7}$",
1119
- "placeholder": "+965 5XXXXXXX",
1120
- "format": "+965 5XXX XXXX",
1121
- "flag": "🇰🇼"
1122
- },
1123
- {
1124
- "name": "Kyrgyzstan",
1125
- "code": "KG",
1126
- "dial_code": "+996",
1127
- "regex": "^\\+996[5-9]\\d{8}$",
1128
- "placeholder": "+996 5XXXXXXXX",
1129
- "format": "+996 XXX XXX XXX",
1130
- "flag": "🇰🇬"
1131
- },
1132
- {
1133
- "name": "Laos",
1134
- "code": "LA",
1135
- "dial_code": "+856",
1136
- "regex": "^\\+856[2]\\d{8}$",
1137
- "placeholder": "+856 2XXXXXXXX",
1138
- "format": "+856 20 XXX XXX",
1139
- "flag": "🇱🇦"
1140
- },
1141
- {
1142
- "name": "Latvia",
1143
- "code": "LV",
1144
- "dial_code": "+371",
1145
- "regex": "^\\+371[2]\\d{7}$",
1146
- "placeholder": "+371 2XXXXXXX",
1147
- "format": "+371 2XXX XXXX",
1148
- "flag": "🇱🇻"
1149
- },
1150
- {
1151
- "name": "Lebanon",
1152
- "code": "LB",
1153
- "dial_code": "+961",
1154
- "regex": "^\\+961[3-9]\\d{6,7}$",
1155
- "placeholder": "+961 3XXXXXX",
1156
- "format": "+961 3 XXX XXX",
1157
- "flag": "🇱🇧"
1158
- },
1159
- {
1160
- "name": "Lesotho",
1161
- "code": "LS",
1162
- "dial_code": "+266",
1163
- "regex": "^\\+266[2-9]\\d{7}$",
1164
- "placeholder": "+266 5XXXXXXX",
1165
- "format": "+266 5XXX XXXX",
1166
- "flag": "🇱🇸"
1167
- },
1168
- {
1169
- "name": "Liberia",
1170
- "code": "LR",
1171
- "dial_code": "+231",
1172
- "regex": "^\\+231[4-9]\\d{7}$",
1173
- "placeholder": "+231 4XXXXXXX",
1174
- "format": "+231 XX XXX XXX",
1175
- "flag": "🇱🇷"
1176
- },
1177
- {
1178
- "name": "Libyan Arab Jamahiriya",
1179
- "flag": "🇱🇾",
1180
- "code": "LY",
1181
- "dial_code": "+218",
1182
- "regex": "^\\+218[89]\\d{8}$",
1183
- "placeholder": "+218 9XXXXXXXX",
1184
- "example": "+218 912345678"
1185
- },
1186
- {
1187
- "name": "Liechtenstein",
1188
- "code": "LI",
1189
- "dial_code": "+423",
1190
- "regex": "^\\+423[2-9]\\d{6}$",
1191
- "placeholder": "+423 6XXXXXX",
1192
- "format": "+423 XXX XXXX",
1193
- "flag": "🇱🇮"
1194
- },
1195
- {
1196
- "name": "Lithuania",
1197
- "code": "LT",
1198
- "dial_code": "+370",
1199
- "regex": "^\\+370[6]\\d{7}$",
1200
- "placeholder": "+370 6XXXXXXX",
1201
- "format": "+370 6XX XXXXX",
1202
- "flag": "🇱🇹"
1203
- },
1204
- {
1205
- "name": "Luxembourg",
1206
- "code": "LU",
1207
- "dial_code": "+352",
1208
- "regex": "^\\+352[2689]\\d{7}$",
1209
- "placeholder": "+352 6XXXXXXX",
1210
- "format": "+352 XXX XXX XXX",
1211
- "flag": "🇱🇺"
1212
- },
1213
- {
1214
- "name": "Macao",
1215
- "code": "MO",
1216
- "dial_code": "+853",
1217
- "regex": "^\\+853[6]\\d{7}$",
1218
- "placeholder": "+853 6XXXXXXX",
1219
- "format": "+853 XXXX XXXX",
1220
- "flag": "🇲🇴"
1221
- },
1222
- {
1223
- "name": "Macedonia",
1224
- "code": "MK",
1225
- "dial_code": "+389",
1226
- "regex": "^\\+389[27]\\d{7}$",
1227
- "placeholder": "+389 7XXXXXXX",
1228
- "format": "+389 XX XXX XXX",
1229
- "flag": "🇲🇰"
1230
- },
1231
- {
1232
- "name": "Madagascar",
1233
- "code": "MG",
1234
- "dial_code": "+261",
1235
- "regex": "^\\+261[3]\\d{8}$",
1236
- "placeholder": "+261 3XXXXXXXX",
1237
- "format": "+261 3X XXX XXXX",
1238
- "flag": "🇲🇬"
1239
- },
1240
- {
1241
- "name": "Malawi",
1242
- "code": "MW",
1243
- "dial_code": "+265",
1244
- "regex": "^\\+265[1-9]\\d{7}$",
1245
- "placeholder": "+265 9XXXXXXX",
1246
- "format": "+265 9XX XXX XXX",
1247
- "flag": "🇲🇼"
1248
- },
1249
- {
1250
- "name": "Malaysia",
1251
- "code": "MY",
1252
- "dial_code": "+60",
1253
- "regex": "^\\+60[1-9]\\d{7,9}$",
1254
- "placeholder": "+60 1XXXXXXXXX",
1255
- "format": "+60 1X XXXX XXXX",
1256
- "flag": "🇲🇾"
1257
- },
1258
- {
1259
- "name": "Maldives",
1260
- "code": "MV",
1261
- "dial_code": "+960",
1262
- "regex": "^\\+960[7-9]\\d{6}$",
1263
- "placeholder": "+960 7XXXXXX",
1264
- "format": "+960 XXX XXXX",
1265
- "flag": "🇲🇻"
1266
- },
1267
- {
1268
- "name": "Mali",
1269
- "code": "ML",
1270
- "dial_code": "+223",
1271
- "regex": "^\\+223[6-9]\\d{7}$",
1272
- "placeholder": "+223 7XXXXXXX",
1273
- "format": "+223 XX XX XX XX",
1274
- "flag": "🇲🇱"
1275
- },
1276
- {
1277
- "name": "Malta",
1278
- "code": "MT",
1279
- "dial_code": "+356",
1280
- "regex": "^\\+356[2379]\\d{7}$",
1281
- "placeholder": "+356 7XXXXXXX",
1282
- "format": "+356 XXXX XXXX",
1283
- "flag": "🇲🇹"
1284
- },
1285
- {
1286
- "name": "Marshall Islands",
1287
- "code": "MH",
1288
- "dial_code": "+692",
1289
- "regex": "^\\+692[2-9]\\d{6}$",
1290
- "placeholder": "+692 2XXXXXX",
1291
- "format": "+692 XXX XXXX",
1292
- "flag": "🇲🇭"
1293
- },
1294
- {
1295
- "name": "Martinique",
1296
- "code": "MQ",
1297
- "dial_code": "+596",
1298
- "regex": "^\\+596[6-7]\\d{8}$",
1299
- "placeholder": "+596 6XXXXXXXX",
1300
- "format": "+596 XXX XX XX XX",
1301
- "flag": "🇲🇶"
1302
- },
1303
- {
1304
- "name": "Mauritania",
1305
- "code": "MR",
1306
- "dial_code": "+222",
1307
- "regex": "^\\+222[2-9]\\d{7}$",
1308
- "placeholder": "+222 4XXXXXXX",
1309
- "format": "+222 XXXX XXXX",
1310
- "flag": "🇲🇷"
1311
- },
1312
- {
1313
- "name": "Mauritius",
1314
- "code": "MU",
1315
- "dial_code": "+230",
1316
- "regex": "^\\+230[2-9]\\d{6}$",
1317
- "placeholder": "+230 5XXXXXX",
1318
- "format": "+230 XXXX XXXX",
1319
- "flag": "🇲🇺"
1320
- },
1321
- {
1322
- "name": "Mayotte",
1323
- "code": "YT",
1324
- "dial_code": "+262",
1325
- "regex": "^\\+262[2-9]\\d{7}$",
1326
- "placeholder": "+262 6XXXXXXX",
1327
- "format": "+262 XXX XX XX XX",
1328
- "flag": "🇾🇹"
1329
- },
1330
- {
1331
- "name": "Mexico",
1332
- "code": "MX",
1333
- "dial_code": "+52",
1334
- "regex": "^\\+52[1]\\d{10}$",
1335
- "placeholder": "+52 1XXXXXXXXXX",
1336
- "format": "+52 1 XXX XXX XXXX",
1337
- "flag": "🇲🇽"
1338
- },
1339
- {
1340
- "name": "Micronesia, Federated States of Micronesia",
1341
- "flag": "🇫🇲",
1342
- "code": "FM",
1343
- "dial_code": "+691",
1344
- "regex": "^\\+691[1-9]\\d{6}$",
1345
- "placeholder": "+691 XXXXXXX",
1346
- "example": "+691 3201234"
1347
- },
1348
- {
1349
- "name": "Moldova",
1350
- "code": "MD",
1351
- "dial_code": "+373",
1352
- "regex": "^\\+373[67]\\d{7}$",
1353
- "placeholder": "+373 6XXXXXXX",
1354
- "format": "+373 XX XXX XXX",
1355
- "flag": "🇲🇩"
1356
- },
1357
- {
1358
- "name": "Monaco",
1359
- "code": "MC",
1360
- "dial_code": "+377",
1361
- "regex": "^\\+377[4-9]\\d{7,8}$",
1362
- "placeholder": "+377 6XXXXXXXX",
1363
- "format": "+377 6 XX XX XX XX",
1364
- "flag": "🇲🇨"
1365
- },
1366
- {
1367
- "name": "Mongolia",
1368
- "code": "MN",
1369
- "dial_code": "+976",
1370
- "regex": "^\\+976[5-9]\\d{7}$",
1371
- "placeholder": "+976 8XXXXXXX",
1372
- "format": "+976 XX XX XXXX",
1373
- "flag": "🇲🇳"
1374
- },
1375
- {
1376
- "name": "Montenegro",
1377
- "code": "ME",
1378
- "dial_code": "+382",
1379
- "regex": "^\\+382[2-9]\\d{7,8}$",
1380
- "placeholder": "+382 6XXXXXXXX",
1381
- "format": "+382 6X XXX XXX",
1382
- "flag": "🇲🇪"
1383
- },
1384
- {
1385
- "name": "Montserrat",
1386
- "code": "MS",
1387
- "dial_code": "+1664",
1388
- "regex": "^\\+1664\\d{7}$",
1389
- "placeholder": "+1664 XXXXXXX",
1390
- "format": "+1664 XXX XXXX",
1391
- "flag": "🇲🇸"
1392
- },
1393
- {
1394
- "name": "Morocco",
1395
- "code": "MA",
1396
- "dial_code": "+212",
1397
- "regex": "^\\+212[5-9]\\d{8}$",
1398
- "placeholder": "+212 6XXXXXXXX",
1399
- "format": "+212 6XX XXX XXX",
1400
- "flag": "🇲🇦"
1401
- },
1402
- {
1403
- "name": "Mozambique",
1404
- "code": "MZ",
1405
- "dial_code": "+258",
1406
- "regex": "^\\+258[28]\\d{7}$",
1407
- "placeholder": "+258 8XXXXXXX",
1408
- "format": "+258 8X XXX XXXX",
1409
- "flag": "🇲🇿"
1410
- },
1411
- {
1412
- "name": "Myanmar",
1413
- "code": "MM",
1414
- "dial_code": "+95",
1415
- "regex": "^\\+95[4-9]\\d{8}$",
1416
- "placeholder": "+95 9XXXXXXXX",
1417
- "format": "+95 9 XXX XXX XXX",
1418
- "flag": "🇲🇲"
1419
- },
1420
- {
1421
- "name": "Namibia",
1422
- "code": "NA",
1423
- "dial_code": "+264",
1424
- "regex": "^\\+264[6-8]\\d{7,8}$",
1425
- "placeholder": "+264 81XXXXXXX",
1426
- "format": "+264 81 XXX XXXX",
1427
- "flag": "🇳🇦"
1428
- },
1429
- {
1430
- "name": "Nauru",
1431
- "code": "NR",
1432
- "dial_code": "+674",
1433
- "regex": "^\\+674[0-9]\\d{4}$",
1434
- "placeholder": "+674 XXXXX",
1435
- "format": "+674 XXX XXXX",
1436
- "flag": "🇳🇷"
1437
- },
1438
- {
1439
- "name": "Nepal",
1440
- "code": "NP",
1441
- "dial_code": "+977",
1442
- "regex": "^\\+977[9]\\d{9}$",
1443
- "placeholder": "+977 9XXXXXXXXX",
1444
- "format": "+977 98X XXX XXXX",
1445
- "flag": "🇳🇵"
1446
- },
1447
- {
1448
- "name": "Netherlands",
1449
- "code": "NL",
1450
- "dial_code": "+31",
1451
- "regex": "^\\+31[1-9]\\d{8}$",
1452
- "placeholder": "+31 6XXXXXXXX",
1453
- "format": "+31 6 XXXX XXXX",
1454
- "flag": "🇳🇱"
1455
- },
1456
- {
1457
- "name": "Netherlands Antilles",
1458
- "code": "AN",
1459
- "dial_code": "+599",
1460
- "regex": "^\\+599[9]\\d{6}$",
1461
- "placeholder": "+599 9XXXXXX",
1462
- "format": "+599 9XXX XXXX",
1463
- "flag": ""
1464
- },
1465
- {
1466
- "name": "New Caledonia",
1467
- "code": "NC",
1468
- "dial_code": "+687",
1469
- "regex": "^\\+687\\d{6}$",
1470
- "placeholder": "+687 XXXXXX",
1471
- "format": "+687 XX XX XX",
1472
- "flag": "🇳🇨"
1473
- },
1474
- {
1475
- "name": "New Zealand",
1476
- "code": "NZ",
1477
- "dial_code": "+64",
1478
- "regex": "^\\+64[2-9]\\d{7,9}$",
1479
- "placeholder": "+64 21XXXXXXX",
1480
- "format": "+64 21 XXX XXXX",
1481
- "flag": "🇳🇿"
1482
- },
1483
- {
1484
- "name": "Nicaragua",
1485
- "code": "NI",
1486
- "dial_code": "+505",
1487
- "regex": "^\\+505[5-8]\\d{7}$",
1488
- "placeholder": "+505 8XXXXXXX",
1489
- "format": "+505 XXXX XXXX",
1490
- "flag": "🇳🇮"
1491
- },
1492
- {
1493
- "name": "Niger",
1494
- "code": "NE",
1495
- "dial_code": "+227",
1496
- "regex": "^\\+227[0-9]\\d{7}$",
1497
- "placeholder": "+227 9XXXXXXX",
1498
- "format": "+227 XX XX XX XX",
1499
- "flag": "🇳🇪"
1500
- },
1501
- {
1502
- "name": "Nigeria",
1503
- "code": "NG",
1504
- "dial_code": "+234",
1505
- "regex": "^\\+234[789]\\d{9}$",
1506
- "placeholder": "+234 8XXXXXXXXX",
1507
- "format": "+234 8XX XXX XXXX",
1508
- "flag": "🇳🇬"
1509
- },
1510
- {
1511
- "name": "Niue",
1512
- "code": "NU",
1513
- "dial_code": "+683",
1514
- "regex": "^\\+683\\d{4}$",
1515
- "placeholder": "+683 XXXX",
1516
- "format": "+683 XXXX",
1517
- "flag": "🇳🇺"
1518
- },
1519
- {
1520
- "name": "Norfolk Island",
1521
- "code": "NF",
1522
- "dial_code": "+672",
1523
- "regex": "^\\+672[3]\\d{5}$",
1524
- "placeholder": "+672 3XXXXX",
1525
- "format": "+672 3 XX XXX",
1526
- "flag": "🇳🇫"
1527
- },
1528
- {
1529
- "name": "Northern Mariana Islands",
1530
- "code": "MP",
1531
- "dial_code": "+1670",
1532
- "regex": "^\\+1670\\d{7}$",
1533
- "placeholder": "+1670 XXXXXXX",
1534
- "format": "+1670 XXX XXXX",
1535
- "flag": "🇲🇵"
1536
- },
1537
- {
1538
- "name": "Norway",
1539
- "code": "NO",
1540
- "dial_code": "+47",
1541
- "regex": "^\\+47[2-9]\\d{7}$",
1542
- "placeholder": "+47 4XXXXXXX",
1543
- "format": "+47 XXX XX XXX",
1544
- "flag": "🇳🇴"
1545
- },
1546
- {
1547
- "name": "Oman",
1548
- "code": "OM",
1549
- "dial_code": "+968",
1550
- "regex": "^\\+968[79]\\d{7}$",
1551
- "placeholder": "+968 9XXXXXXX",
1552
- "format": "+968 9XXX XXXX",
1553
- "flag": "🇴🇲"
1554
- },
1555
- {
1556
- "name": "Pakistan",
1557
- "code": "PK",
1558
- "dial_code": "+92",
1559
- "regex": "^\\+92[3]\\d{9}$",
1560
- "placeholder": "+92 3XXXXXXXXX",
1561
- "format": "+92 3XX XXX XXXX",
1562
- "flag": "🇵🇰"
1563
- },
1564
- {
1565
- "name": "Palau",
1566
- "code": "PW",
1567
- "dial_code": "+680",
1568
- "regex": "^\\+680\\d{7}$",
1569
- "placeholder": "+680 XXXXXXX",
1570
- "format": "+680 XXX XXXX",
1571
- "flag": "🇵🇼"
1572
- },
1573
- {
1574
- "name": "Palestinian Territory, Occupied",
1575
- "flag": "🇵🇸",
1576
- "code": "PS",
1577
- "dial_code": "+970",
1578
- "regex": "^\\+970[59]\\d{8}$",
1579
- "placeholder": "+970 5XXXXXXXX",
1580
- "example": "+970 599123456"
1581
- },
1582
- {
1583
- "name": "Panama",
1584
- "code": "PA",
1585
- "dial_code": "+507",
1586
- "regex": "^\\+507[1-9]\\d{6}$",
1587
- "placeholder": "+507 6XXXXXX",
1588
- "format": "+507 XXXX XXXX",
1589
- "flag": "🇵🇦"
1590
- },
1591
- {
1592
- "name": "Papua New Guinea",
1593
- "code": "PG",
1594
- "dial_code": "+675",
1595
- "regex": "^\\+675[7]\\d{7}$",
1596
- "placeholder": "+675 7XXXXXXX",
1597
- "format": "+675 7XXX XXXX",
1598
- "flag": "🇵🇬"
1599
- },
1600
- {
1601
- "name": "Paraguay",
1602
- "code": "PY",
1603
- "dial_code": "+595",
1604
- "regex": "^\\+595[9]\\d{8}$",
1605
- "placeholder": "+595 9XXXXXXXX",
1606
- "format": "+595 9XX XXX XXX",
1607
- "flag": "🇵🇾"
1608
- },
1609
- {
1610
- "name": "Peru",
1611
- "code": "PE",
1612
- "dial_code": "+51",
1613
- "regex": "^\\+51[9]\\d{8}$",
1614
- "placeholder": "+51 9XXXXXXXX",
1615
- "format": "+51 9XX XXX XXX",
1616
- "flag": "🇵🇪"
1617
- },
1618
- {
1619
- "name": "Philippines",
1620
- "code": "PH",
1621
- "dial_code": "+63",
1622
- "regex": "^\\+63[9]\\d{9}$",
1623
- "placeholder": "+63 9XXXXXXXXX",
1624
- "format": "+63 9XX XXX XXXX",
1625
- "flag": "🇵🇭"
1626
- },
1627
- {
1628
- "name": "Pitcairn",
1629
- "code": "PN",
1630
- "dial_code": "+64",
1631
- "regex": "^\\+64\\d{10}$",
1632
- "placeholder": "+64 XXXXXXXXXX",
1633
- "format": "+64 XXX XXX XXXX",
1634
- "flag": "🇵🇳"
1635
- },
1636
- {
1637
- "name": "Poland",
1638
- "code": "PL",
1639
- "dial_code": "+48",
1640
- "regex": "^\\+48[1-9]\\d{8}$",
1641
- "placeholder": "+48 5XXXXXXXX",
1642
- "format": "+48 5XX XXX XXX",
1643
- "flag": "🇵🇱"
1644
- },
1645
- {
1646
- "name": "Portugal",
1647
- "code": "PT",
1648
- "dial_code": "+351",
1649
- "regex": "^\\+351[1-9]\\d{8}$",
1650
- "placeholder": "+351 9XXXXXXXX",
1651
- "format": "+351 9XX XXX XXX",
1652
- "flag": "🇵🇹"
1653
- },
1654
- {
1655
- "name": "Puerto Rico",
1656
- "code": "PR",
1657
- "dial_code": "+1939",
1658
- "regex": "^\\+1939\\d{7}$",
1659
- "placeholder": "+1939 XXXXXXX",
1660
- "format": "+1939 XXX XXXX",
1661
- "flag": "🇵🇷"
1662
- },
1663
- {
1664
- "name": "Qatar",
1665
- "code": "QA",
1666
- "dial_code": "+974",
1667
- "regex": "^\\+974[3-7]\\d{7}$",
1668
- "placeholder": "+974 3XXXXXXX",
1669
- "format": "+974 XXXX XXXX",
1670
- "flag": "🇶🇦"
1671
- },
1672
- {
1673
- "name": "Romania",
1674
- "code": "RO",
1675
- "dial_code": "+40",
1676
- "regex": "^\\+40[7]\\d{8}$",
1677
- "placeholder": "+40 7XXXXXXXX",
1678
- "format": "+40 7XX XXX XXX",
1679
- "flag": "🇷🇴"
1680
- },
1681
- {
1682
- "name": "Russia",
1683
- "code": "RU",
1684
- "dial_code": "+7",
1685
- "regex": "^\\+7[9]\\d{9}$",
1686
- "placeholder": "+7 9XXXXXXXXX",
1687
- "format": "+7 9XX XXX XX XX",
1688
- "flag": "🇷🇺"
1689
- },
1690
- {
1691
- "name": "Rwanda",
1692
- "code": "RW",
1693
- "dial_code": "+250",
1694
- "regex": "^\\+250[7]\\d{8}$",
1695
- "placeholder": "+250 7XXXXXXXX",
1696
- "format": "+250 7XX XXX XXX",
1697
- "flag": "🇷🇼"
1698
- },
1699
- {
1700
- "name": "Reunion",
1701
- "code": "RE",
1702
- "dial_code": "+262",
1703
- "regex": "^\\+262[6-7]\\d{8}$",
1704
- "placeholder": "+262 6XXXXXXXX",
1705
- "format": "+262 6XX XX XX XX",
1706
- "flag": "🇷🇪"
1707
- },
1708
- {
1709
- "name": "Saint Barthelemy",
1710
- "code": "BL",
1711
- "dial_code": "+590",
1712
- "regex": "^\\+590[6-7]\\d{8}$",
1713
- "placeholder": "+590 6XXXXXXXX",
1714
- "format": "+590 6XX XX XX XX",
1715
- "flag": "🇧🇱"
1716
- },
1717
- {
1718
- "name": "Saint Helena, Ascension and Tristan Da Cunha",
1719
- "flag": "🇸🇭",
1720
- "code": "SH",
1721
- "dial_code": "+290",
1722
- "regex": "^\\+290\\d{4}$",
1723
- "placeholder": "+290 XXXX",
1724
- "example": "+290 2380"
1725
- },
1726
- {
1727
- "name": "Saint Kitts and Nevis",
1728
- "code": "KN",
1729
- "dial_code": "+1869",
1730
- "regex": "^\\+1869\\d{7}$",
1731
- "placeholder": "+1869 XXXXXXX",
1732
- "format": "+1869 XXX XXXX",
1733
- "flag": "🇰🇳"
1734
- },
1735
- {
1736
- "name": "Saint Lucia",
1737
- "code": "LC",
1738
- "dial_code": "+1758",
1739
- "regex": "^\\+1758\\d{7}$",
1740
- "placeholder": "+1758 XXXXXXX",
1741
- "format": "+1758 XXX XXXX",
1742
- "flag": "🇱🇨"
1743
- },
1744
- {
1745
- "name": "Saint Martin",
1746
- "code": "MF",
1747
- "dial_code": "+590",
1748
- "regex": "^\\+590[6-7]\\d{8}$",
1749
- "placeholder": "+590 6XXXXXXXX",
1750
- "format": "+590 6XX XX XX XX",
1751
- "flag": "🇲🇫"
1752
- },
1753
- {
1754
- "name": "Saint Pierre and Miquelon",
1755
- "code": "PM",
1756
- "dial_code": "+508",
1757
- "regex": "^\\+508\\d{6}$",
1758
- "placeholder": "+508 XXXXXX",
1759
- "example": "+508 412345",
1760
- "flag": "🇵🇲"
1761
- },
1762
- {
1763
- "name": "Saint Vincent and the Grenadines",
1764
- "code": "VC",
1765
- "dial_code": "+1784",
1766
- "regex": "^\\+1784\\d{7}$",
1767
- "placeholder": "+1784 XXXXXXX",
1768
- "example": "+1784 4561234",
1769
- "flag": "🇻🇨"
1770
- },
1771
- {
1772
- "name": "Samoa",
1773
- "code": "WS",
1774
- "dial_code": "+685",
1775
- "regex": "^\\+685\\d{5,7}$",
1776
- "placeholder": "+685 XXXXXX",
1777
- "example": "+685 721234",
1778
- "flag": "🇼🇸"
1779
- },
1780
- {
1781
- "name": "San Marino",
1782
- "code": "SM",
1783
- "dial_code": "+378",
1784
- "regex": "^\\+378\\d{6,10}$",
1785
- "placeholder": "+378 XXXXXXXX",
1786
- "example": "+378 0549123456",
1787
- "flag": "🇸🇲"
1788
- },
1789
- {
1790
- "name": "Sao Tome and Principe",
1791
- "code": "ST",
1792
- "dial_code": "+239",
1793
- "regex": "^\\+239\\d{7}$",
1794
- "placeholder": "+239 XXXXXXX",
1795
- "example": "+239 9912345",
1796
- "flag": "🇸🇹"
1797
- },
1798
- {
1799
- "name": "Saudi Arabia",
1800
- "code": "SA",
1801
- "dial_code": "+966",
1802
- "regex": "^\\+966\\d{9}$",
1803
- "placeholder": "+966 5XXXXXXXX",
1804
- "example": "+966 512345678",
1805
- "flag": "🇸🇦"
1806
- },
1807
- {
1808
- "name": "Senegal",
1809
- "code": "SN",
1810
- "dial_code": "+221",
1811
- "regex": "^\\+221\\d{9}$",
1812
- "placeholder": "+221 7XXXXXXXX",
1813
- "example": "+221 771234567",
1814
- "flag": "🇸🇳"
1815
- },
1816
- {
1817
- "name": "Serbia",
1818
- "code": "RS",
1819
- "dial_code": "+381",
1820
- "regex": "^\\+381\\d{8,9}$",
1821
- "placeholder": "+381 6XXXXXXXX",
1822
- "example": "+381 601234567",
1823
- "flag": "🇷🇸"
1824
- },
1825
- {
1826
- "name": "Seychelles",
1827
- "code": "SC",
1828
- "dial_code": "+248",
1829
- "regex": "^\\+248\\d{7}$",
1830
- "placeholder": "+248 XXXXXXX",
1831
- "example": "+248 2512345",
1832
- "flag": "🇸🇨"
1833
- },
1834
- {
1835
- "name": "Sierra Leone",
1836
- "code": "SL",
1837
- "dial_code": "+232",
1838
- "regex": "^\\+232\\d{8}$",
1839
- "placeholder": "+232 7XXXXXXX",
1840
- "example": "+232 76123456",
1841
- "flag": "🇸🇱"
1842
- },
1843
- {
1844
- "name": "Singapore",
1845
- "code": "SG",
1846
- "dial_code": "+65",
1847
- "regex": "^\\+65\\d{8}$",
1848
- "placeholder": "+65 8XXXXXXX",
1849
- "example": "+65 81234567",
1850
- "flag": "🇸🇬"
1851
- },
1852
- {
1853
- "name": "Slovakia",
1854
- "code": "SK",
1855
- "dial_code": "+421",
1856
- "regex": "^\\+421\\d{9}$",
1857
- "placeholder": "+421 9XXXXXXXX",
1858
- "example": "+421 912345678",
1859
- "flag": "🇸🇰"
1860
- },
1861
- {
1862
- "name": "Slovenia",
1863
- "code": "SI",
1864
- "dial_code": "+386",
1865
- "regex": "^\\+386\\d{8}$",
1866
- "placeholder": "+386 3XXXXXXX",
1867
- "example": "+386 31234567",
1868
- "flag": "🇸🇮"
1869
- },
1870
- {
1871
- "name": "Solomon Islands",
1872
- "code": "SB",
1873
- "dial_code": "+677",
1874
- "regex": "^\\+677\\d{5,7}$",
1875
- "placeholder": "+677 7XXXXX",
1876
- "example": "+677 7123456",
1877
- "flag": "🇸🇧"
1878
- },
1879
- {
1880
- "name": "Somalia",
1881
- "code": "SO",
1882
- "dial_code": "+252",
1883
- "regex": "^\\+252\\d{8}$",
1884
- "placeholder": "+252 6XXXXXXX",
1885
- "example": "+252 61234567",
1886
- "flag": "🇸🇴"
1887
- },
1888
- {
1889
- "name": "South Africa",
1890
- "code": "ZA",
1891
- "dial_code": "+27",
1892
- "regex": "^\\+27\\d{9}$",
1893
- "placeholder": "+27 8XXXXXXXX",
1894
- "example": "+27 831234567",
1895
- "flag": "🇿🇦"
1896
- },
1897
- {
1898
- "name": "South Sudan",
1899
- "code": "SS",
1900
- "dial_code": "+211",
1901
- "regex": "^\\+211\\d{9}$",
1902
- "placeholder": "+211 9XXXXXXXX",
1903
- "example": "+211 977123456",
1904
- "flag": "🇸🇸"
1905
- },
1906
- {
1907
- "name": "South Georgia and the South Sandwich Islands",
1908
- "flag": "🇬🇸",
1909
- "code": "GS",
1910
- "dial_code": "+500",
1911
- "regex": "^\\+500\\d{5}$",
1912
- "placeholder": "+500 XXXXX",
1913
- "example": "+500 12345"
1914
- },
1915
- {
1916
- "name": "Spain",
1917
- "code": "ES",
1918
- "dial_code": "+34",
1919
- "regex": "^\\+34\\d{9}$",
1920
- "placeholder": "+34 6XXXXXXXX",
1921
- "example": "+34 612345678",
1922
- "flag": "🇪🇸"
1923
- },
1924
- {
1925
- "name": "Sri Lanka",
1926
- "code": "LK",
1927
- "dial_code": "+94",
1928
- "regex": "^\\+94\\d{9}$",
1929
- "placeholder": "+94 7XXXXXXXX",
1930
- "example": "+94 712345678",
1931
- "flag": "🇱🇰"
1932
- },
1933
- {
1934
- "name": "Sudan",
1935
- "code": "SD",
1936
- "dial_code": "+249",
1937
- "regex": "^\\+249\\d{9}$",
1938
- "placeholder": "+249 9XXXXXXXX",
1939
- "example": "+249 912345678",
1940
- "flag": "🇸🇩"
1941
- },
1942
- {
1943
- "name": "Suriname",
1944
- "code": "SR",
1945
- "dial_code": "+597",
1946
- "regex": "^\\+597\\d{6,7}$",
1947
- "placeholder": "+597 XXXXXXX",
1948
- "example": "+597 8123456",
1949
- "flag": "🇸🇷"
1950
- },
1951
- {
1952
- "name": "Svalbard and Jan Mayen",
1953
- "code": "SJ",
1954
- "dial_code": "+47",
1955
- "regex": "^\\+47\\d{8}$",
1956
- "placeholder": "+47 XXXXXXXX",
1957
- "example": "+47 41234567",
1958
- "flag": "🇸🇯"
1959
- },
1960
- {
1961
- "name": "Eswatini",
1962
- "code": "SZ",
1963
- "dial_code": "+268",
1964
- "regex": "^\\+268\\d{8}$",
1965
- "placeholder": "+268 7XXXXXXX",
1966
- "example": "+268 76123456",
1967
- "flag": "🇸🇿"
1968
- },
1969
- {
1970
- "name": "Sweden",
1971
- "code": "SE",
1972
- "dial_code": "+46",
1973
- "regex": "^\\+46\\d{7,10}$",
1974
- "placeholder": "+46 7XXXXXXXX",
1975
- "example": "+46 701234567",
1976
- "flag": "🇸🇪"
1977
- },
1978
- {
1979
- "name": "Switzerland",
1980
- "code": "CH",
1981
- "dial_code": "+41",
1982
- "regex": "^\\+41\\d{9}$",
1983
- "placeholder": "+41 7XXXXXXXX",
1984
- "example": "+41 781234567",
1985
- "flag": "🇨🇭"
1986
- },
1987
- {
1988
- "name": "Syrian Arab Republic",
1989
- "flag": "🇸🇾",
1990
- "code": "SY",
1991
- "dial_code": "+963",
1992
- "regex": "^\\+963[9]\\d{8}$",
1993
- "placeholder": "+963 9XXXXXXXX",
1994
- "example": "+963 991234567"
1995
- },
1996
- {
1997
- "name": "Taiwan",
1998
- "code": "TW",
1999
- "dial_code": "+886",
2000
- "regex": "^\\+886\\d{8,9}$",
2001
- "placeholder": "+886 9XXXXXXXX",
2002
- "example": "+886 912345678",
2003
- "flag": "🇹🇼"
2004
- },
2005
- {
2006
- "name": "Tajikistan",
2007
- "code": "TJ",
2008
- "dial_code": "+992",
2009
- "regex": "^\\+992\\d{9}$",
2010
- "placeholder": "+992 9XXXXXXXX",
2011
- "example": "+992 917123456",
2012
- "flag": "🇹🇯"
2013
- },
2014
- {
2015
- "name": "Tanzania, United Republic of Tanzania",
2016
- "flag": "🇹🇿",
2017
- "code": "TZ",
2018
- "dial_code": "+255",
2019
- "regex": "^\\+255[67]\\d{8}$",
2020
- "placeholder": "+255 7XXXXXXXX",
2021
- "example": "+255 712345678"
2022
- },
2023
- {
2024
- "name": "Thailand",
2025
- "code": "TH",
2026
- "dial_code": "+66",
2027
- "regex": "^\\+66\\d{8,9}$",
2028
- "placeholder": "+66 8XXXXXXXX",
2029
- "example": "+66 812345678",
2030
- "flag": "🇹🇭"
2031
- },
2032
- {
2033
- "name": "Timor-Leste",
2034
- "code": "TL",
2035
- "dial_code": "+670",
2036
- "regex": "^\\+670\\d{8}$",
2037
- "placeholder": "+670 7XXXXXXX",
2038
- "example": "+670 77123456",
2039
- "flag": "🇹🇱"
2040
- },
2041
- {
2042
- "name": "Togo",
2043
- "code": "TG",
2044
- "dial_code": "+228",
2045
- "regex": "^\\+228\\d{8}$",
2046
- "placeholder": "+228 9XXXXXXX",
2047
- "example": "+228 91234567",
2048
- "flag": "🇹🇬"
2049
- },
2050
- {
2051
- "name": "Tokelau",
2052
- "code": "TK",
2053
- "dial_code": "+690",
2054
- "regex": "^\\+690\\d{4}$",
2055
- "placeholder": "+690 XXXX",
2056
- "example": "+690 1234",
2057
- "flag": "🇹🇰"
2058
- },
2059
- {
2060
- "name": "Tonga",
2061
- "code": "TO",
2062
- "dial_code": "+676",
2063
- "regex": "^\\+676\\d{5}$",
2064
- "placeholder": "+676 XXXXX",
2065
- "example": "+676 71234",
2066
- "flag": "🇹🇴"
2067
- },
2068
- {
2069
- "name": "Trinidad and Tobago",
2070
- "code": "TT",
2071
- "dial_code": "+1868",
2072
- "regex": "^\\+1868\\d{7}$",
2073
- "placeholder": "+1868 XXXXXXX",
2074
- "example": "+1868 2841234",
2075
- "flag": "🇹🇹"
2076
- },
2077
- {
2078
- "name": "Tunisia",
2079
- "code": "TN",
2080
- "dial_code": "+216",
2081
- "regex": "^\\+216\\d{8}$",
2082
- "placeholder": "+216 XXXXXXXX",
2083
- "example": "+216 20123456",
2084
- "flag": "🇹🇳"
2085
- },
2086
- {
2087
- "name": "Turkey",
2088
- "code": "TR",
2089
- "dial_code": "+90",
2090
- "regex": "^\\+90\\d{10}$",
2091
- "placeholder": "+90 5XXXXXXXXX",
2092
- "example": "+90 5312345678",
2093
- "flag": "🇹🇷"
2094
- },
2095
- {
2096
- "name": "Turkmenistan",
2097
- "code": "TM",
2098
- "dial_code": "+993",
2099
- "regex": "^\\+993\\d{8}$",
2100
- "placeholder": "+993 6XXXXXXX",
2101
- "example": "+993 61234567",
2102
- "flag": "🇹🇲"
2103
- },
2104
- {
2105
- "name": "Turks and Caicos Islands",
2106
- "code": "TC",
2107
- "dial_code": "+1649",
2108
- "regex": "^\\+1649\\d{7}$",
2109
- "placeholder": "+1649 XXXXXXX",
2110
- "example": "+1649 2311234",
2111
- "flag": "🇹🇨"
2112
- },
2113
- {
2114
- "name": "Tuvalu",
2115
- "code": "TV",
2116
- "dial_code": "+688",
2117
- "regex": "^\\+688\\d{5}$",
2118
- "placeholder": "+688 XXXXX",
2119
- "example": "+688 20123",
2120
- "flag": "🇹🇻"
2121
- },
2122
- {
2123
- "name": "Uganda",
2124
- "code": "UG",
2125
- "dial_code": "+256",
2126
- "regex": "^\\+256\\d{9}$",
2127
- "placeholder": "+256 7XXXXXXXX",
2128
- "example": "+256 712345678",
2129
- "flag": "🇺🇬"
2130
- },
2131
- {
2132
- "name": "Ukraine",
2133
- "code": "UA",
2134
- "dial_code": "+380",
2135
- "regex": "^\\+380\\d{9}$",
2136
- "placeholder": "+380 9XXXXXXXX",
2137
- "example": "+380 931234567",
2138
- "flag": "🇺🇦"
2139
- },
2140
- {
2141
- "name": "United Arab Emirates",
2142
- "code": "AE",
2143
- "dial_code": "+971",
2144
- "regex": "^\\+971\\d{9}$",
2145
- "placeholder": "+971 5XXXXXXXX",
2146
- "example": "+971 501234567",
2147
- "flag": "🇦🇪"
2148
- },
2149
- {
2150
- "name": "United Kingdom",
2151
- "flag": "🇬🇧",
2152
- "code": "GB",
2153
- "dial_code": "+44",
2154
- "regex": "^\\+44[0-9]{10}$",
2155
- "placeholder": "+44 7123 456 789"
2156
- },
2157
- {
2158
- "name": "United States",
2159
- "flag": "🇺🇸",
2160
- "code": "US",
2161
- "dial_code": "+1",
2162
- "regex": "^\\+1[0-9]{10}$",
2163
- "placeholder": "+1 213 123 4567"
2164
- },
2165
- {
2166
- "name": "Uruguay",
2167
- "code": "UY",
2168
- "dial_code": "+598",
2169
- "regex": "^\\+598\\d{8}$",
2170
- "placeholder": "+598 9XXXXXXX",
2171
- "example": "+598 91234567",
2172
- "flag": "🇺🇾"
2173
- },
2174
- {
2175
- "name": "Uzbekistan",
2176
- "code": "UZ",
2177
- "dial_code": "+998",
2178
- "regex": "^\\+998\\d{9}$",
2179
- "placeholder": "+998 9XXXXXXXX",
2180
- "example": "+998 901234567",
2181
- "flag": "🇺🇿"
2182
- },
2183
- {
2184
- "name": "Vanuatu",
2185
- "code": "VU",
2186
- "dial_code": "+678",
2187
- "regex": "^\\+678\\d{5,7}$",
2188
- "placeholder": "+678 XXXXXX",
2189
- "example": "+678 591234",
2190
- "flag": "🇻🇺"
2191
- },
2192
- {
2193
- "name": "Venezuela, Bolivarian Republic of Venezuela",
2194
- "flag": "🇻🇪",
2195
- "code": "VE",
2196
- "dial_code": "+58",
2197
- "regex": "^\\+58[24]\\d{9}$",
2198
- "placeholder": "+58 4XXXXXXXXX",
2199
- "example": "+58 4121234567"
2200
- },
2201
- {
2202
- "name": "Vietnam",
2203
- "code": "VN",
2204
- "dial_code": "+84",
2205
- "regex": "^\\+84\\d{9,10}$",
2206
- "placeholder": "+84 9XXXXXXXX",
2207
- "example": "+84 912345678",
2208
- "flag": "🇻🇳"
2209
- },
2210
- {
2211
- "name": "Virgin Islands, British",
2212
- "flag": "🇻🇬",
2213
- "code": "VG",
2214
- "dial_code": "+1284",
2215
- "regex": "^\\+1284\\d{7}$",
2216
- "placeholder": "+1284 XXXXXXX",
2217
- "example": "+1284 3001234"
2218
- },
2219
- {
2220
- "name": "Virgin Islands, U.S.",
2221
- "flag": "🇻🇮",
2222
- "code": "VI",
2223
- "dial_code": "+1340",
2224
- "regex": "^\\+1340\\d{7}$",
2225
- "placeholder": "+1340 XXXXXXX",
2226
- "example": "+1340 7741234"
2227
- },
2228
- {
2229
- "name": "Wallis and Futuna",
2230
- "code": "WF",
2231
- "dial_code": "+681",
2232
- "regex": "^\\+681\\d{6}$",
2233
- "placeholder": "+681 XXXXXX",
2234
- "example": "+681 501234",
2235
- "flag": "🇼🇫"
2236
- },
2237
- {
2238
- "name": "Yemen",
2239
- "code": "YE",
2240
- "dial_code": "+967",
2241
- "regex": "^\\+967\\d{8,9}$",
2242
- "placeholder": "+967 7XXXXXXXX",
2243
- "example": "+967 712345678",
2244
- "flag": "🇾🇪"
2245
- },
2246
- {
2247
- "name": "Zambia",
2248
- "code": "ZM",
2249
- "dial_code": "+260",
2250
- "regex": "^\\+260\\d{9}$",
2251
- "placeholder": "+260 9XXXXXXXX",
2252
- "example": "+260 971234567",
2253
- "flag": "🇿🇲"
2254
- },
2255
- {
2256
- "name": "Zimbabwe",
2257
- "flag": "🇿🇼",
2258
- "code": "ZW",
2259
- "dial_code": "+263",
2260
- "regex": "^\\+263[0-9]{9}$",
2261
- "placeholder": "+263 71 234 5678"
2262
- }
2263
- ];
2264
- filteredCountries;
2265
- selectedCountry;
2266
- showCountryDropdown = false;
2267
- countrySearch = '';
2268
- subscription;
2269
- // Internal state
2270
- viewEdit = false;
2271
- originalValue; // To store the original value when entering view edit mode
2272
- isSaveHovered = false;
2273
- isDiscardHovered = false;
2274
- lastClickTime = 0;
2275
- cachedInputList = [];
2276
- constructor(renderer, elRef, elementRef, changeService, dataService) {
2277
- this.renderer = renderer;
2278
- this.elRef = elRef;
2279
- this.elementRef = elementRef;
2280
- this.changeService = changeService;
2281
- this.dataService = dataService;
2282
- }
2283
- hasEmittedRef = false;
2284
- ngAfterViewInit() {
2285
- if (this.type === 'location' &&
2286
- this.inputRef &&
2287
- !this.hasEmittedRef) {
2288
- this.nativeInputRef.emit(this.inputRef);
2289
- this.hasEmittedRef = true;
2290
- }
2291
- this.renderer.listen('document', 'click', (event) => {
2292
- if (!this.elRef.nativeElement.contains(event.target)) {
2293
- this.showCountryDropdown = false;
2294
- }
2295
- });
2296
- }
2297
- ngOnChanges(changes) {
2298
- if (changes['mode']) {
2299
- this.viewEdit = false;
2300
- this.updateControlState();
2301
- }
2302
- if (changes['value']) {
2303
- this.writeValue(changes['value'].currentValue);
2304
- }
2305
- if (this.confPass && changes['confPassVal'] && !changes['confPassVal'].firstChange) {
2306
- this.value = ''; // Reset input value
2307
- }
2308
- if (changes['type']) {
2309
- this.setupValidators();
2310
- }
2311
- if (changes['type'] && changes['type'].currentValue === 'location') {
2312
- this.hasEmittedRef = false;
2313
- }
2314
- this.updateInputList();
2315
- }
2316
- ngOnInit() {
2317
- // SKS28FEB25 default country set
2318
- this.selectedCountry = this.countries.find(c => c.code === 'IN') || this.countries[0];
2319
- this.filteredCountries = [...this.countries];
2320
- const validators = [];
2321
- if (this.required)
2322
- validators.push(Validators.required);
2323
- if (this.minLength)
2324
- validators.push(Validators.minLength(this.minLength));
2325
- if (this.pattern)
2326
- validators.push(Validators.pattern(this.pattern));
2327
- if (this.maxLength)
2328
- validators.push(Validators.maxLength(this.maxLength));
2329
- if (this.confPass)
2330
- validators.push(this.passwordMatchValidator());
2331
- this.control.setValidators(validators);
2332
- if (this.type === 'otp') {
2333
- this.inputs.controls.forEach((control) => {
2334
- control.setValidators(validators);
2335
- });
2336
- }
2337
- else if (this.type === 'tel') {
2338
- this.control.setValidators([
2339
- Validators.pattern(this.removeDialCodeFromRegex(this.selectedCountry.regex, this.selectedCountry.dial_code))
2340
- ]);
2341
- }
2342
- //AP-01JUL25 - Disable the field unless in 'edit' mode and question is not marked as read-only
2343
- this.setDisabledState(this.mode === 'edit' ? (this.question?.isReadOnly === true || this.question?.isReadOnly === 'true') : true);
2344
- if (typeof this.question?.subText === 'string') {
2345
- if (this.question.subText.trim() === '') {
2346
- this.question.subText = null;
2347
- }
2348
- else {
2349
- try {
2350
- this.question.subText = JSON.parse(this.question.subText);
2351
- }
2352
- catch (e) {
2353
- this.question.subText = null; // Or handle differently
2354
- }
2355
- }
2356
- }
2357
- if (this.question?.subText != undefined) {
2358
- // this.disabled = true;
2359
- let dependencyObj = this.question?.subText;
2360
- if (dependencyObj.disabled && dependencyObj.disabled == "false") {
2361
- // this.disabled = false;
2362
- }
2363
- else {
2364
- // this.disabled = true;
2365
- }
2366
- // Subscribe for the changes
2367
- this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
2368
- if (changeValue != undefined) {
2369
- if (changeValue.fromQuestionId && changeValue.valueObj !== undefined && (Array.isArray(dependencyObj.sourceQuestionId) ? dependencyObj.sourceQuestionId.includes(changeValue.fromQuestionId) : changeValue.fromQuestionId === dependencyObj.sourceQuestionId)) {
2370
- // VD 20Aug24 handling the multiple object
2371
- if (dependencyObj.valueField) {
2372
- this.value = this.dataService.getValue(changeValue.valueObj, dependencyObj.valueField);
2373
- let change = {};
2374
- change['fromQuestionId'] = this.question.id;
2375
- change['valueObj'] = this.value;
2376
- change['referenceField'] = this.question.referenceField;
2377
- this.inputValue.emit({ question: this.question, value: change });
2378
- }
2379
- }
2380
- this.changeService.confirmChange(changeValue.fromQuestionId);
2381
- }
2382
- });
2383
- }
2384
- document.addEventListener('quill-save', this.saveChanges.bind(this));
2385
- document.addEventListener('quill-discard', this.discardChanges.bind(this));
2386
- this.updateInputList();
2387
- }
2388
- ngOnDestroy() {
2389
- document.removeEventListener('quill-save', this.saveChanges.bind(this));
2390
- document.removeEventListener('quill-discard', this.discardChanges.bind(this));
2391
- }
2392
- updateInputList() {
2393
- this.cachedInputList = this.type !== 'otp' ? this.inputs.controls.slice(0, 1) : this.inputs.controls;
2394
- }
2395
- // SKS14JUN25 Dynamically load Quill editor toolbar
2396
- getQuillModules(questionId) {
2397
- if (this.viewEdit) {
2398
- return {
2399
- imageResizor: {},
2400
- toolbar: {
2401
- container: [
2402
- [{ 'font': fontFamilyArr }], //RS 17JAN2025 Added font family dropdown
2403
- ['bold', 'italic', 'underline', 'strike'],
2404
- ['blockquote', 'code-block'],
2405
- [{ header: [1, 2, 3, 4, 5, 6, false] }],
2406
- [{ list: 'ordered' }, { list: 'bullet' }],
2407
- [{ color: [] }, { background: [] }],
2408
- [{ align: [] }],
2409
- ['link', 'image', 'video'],
2410
- ['formula'],
2411
- ['clean'],
2412
- ['save', 'discard']
2413
- ],
2414
- handlers: {
2415
- save: function () {
2416
- const event = new CustomEvent('quill-save', {
2417
- detail: { id: questionId } // You inject the correct ID directly here
2418
- });
2419
- document.dispatchEvent(event);
2420
- },
2421
- discard: function () {
2422
- const event = new CustomEvent('quill-discard', {
2423
- detail: { id: questionId }
2424
- });
2425
- document.dispatchEvent(event);
2426
- }
2427
- }
2428
- },
2429
- mention: {
2430
- allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
2431
- mentionDenotationChars: ['@', '#'],
2432
- source: function (searchTerm, renderList) {
2433
- const values = [
2434
- { id: 1, value: 'User 1' },
2435
- { id: 2, value: 'User 2' },
2436
- ];
2437
- if (searchTerm.length === 0) {
2438
- renderList(values, searchTerm);
2439
- }
2440
- else {
2441
- const matches = values.filter((item) => item.value.toLowerCase().includes(searchTerm.toLowerCase()));
2442
- renderList(matches, searchTerm);
2443
- }
2444
- },
2445
- },
2446
- };
2447
- }
2448
- else {
2449
- return {
2450
- imageResizor: {},
2451
- toolbar: {
2452
- container: [
2453
- [{ 'font': fontFamilyArr }], //RS 17JAN2025 Added font family dropdown
2454
- ['bold', 'italic', 'underline', 'strike'],
2455
- ['blockquote', 'code-block'],
2456
- [{ header: [1, 2, 3, 4, 5, 6, false] }],
2457
- [{ list: 'ordered' }, { list: 'bullet' }],
2458
- [{ color: [] }, { background: [] }],
2459
- [{ align: [] }],
2460
- ['link', 'image', 'video'],
2461
- ['formula'],
2462
- ['clean'],
2463
- ],
2464
- },
2465
- mention: {
2466
- allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
2467
- mentionDenotationChars: ['@', '#'],
2468
- source: function (searchTerm, renderList) {
2469
- const values = [
2470
- { id: 1, value: 'User 1' },
2471
- { id: 2, value: 'User 2' },
2472
- ];
2473
- if (searchTerm.length === 0) {
2474
- renderList(values, searchTerm);
2475
- }
2476
- else {
2477
- const matches = values.filter((item) => item.value.toLowerCase().includes(searchTerm.toLowerCase()));
2478
- renderList(matches, searchTerm);
2479
- }
2480
- },
2481
- },
2482
- };
2483
- }
2484
- }
2485
- setupValidators() {
2486
- const validators = [];
2487
- if (this.required)
2488
- validators.push(Validators.required);
2489
- if (this.minLength)
2490
- validators.push(Validators.minLength(this.minLength));
2491
- if (this.maxLength)
2492
- validators.push(Validators.maxLength(this.maxLength));
2493
- if (this.pattern)
2494
- validators.push(Validators.pattern(this.pattern));
2495
- this.control.setValidators(validators);
2496
- }
2497
- // SKS28FEB25 Country Dropdown close
2498
- closeDropdown(event) {
2499
- const now = Date.now();
2500
- if (now - this.lastClickTime < 100)
2501
- return; // throttle repeated calls
2502
- this.lastClickTime = now;
2503
- if (!this.elementRef.nativeElement.contains(event.target)) {
2504
- this.showCountryDropdown = false;
2505
- }
2506
- }
2507
- onChange = () => { };
2508
- onTouched = () => { };
2509
- registerOnTouched(fn) {
2510
- this.onTouched = fn;
2511
- }
2512
- onInputChange(event) {
2513
- if (this.type === 'datetime' || this.type === 'date') {
2514
- this.value = event.value;
2515
- }
2516
- else if (this.type === 'richtext') {
2517
- this.value = event;
2518
- }
2519
- else if (this.type === 'checkbox') { // SKS23JUN25 handel checkbox event
2520
- const isChecked = event.target.checked;
2521
- this.value = isChecked;
2522
- }
2523
- else {
2524
- const inputElement = event.target;
2525
- this.rawInputVal = inputElement.value;
2526
- if (this.type === 'tel') {
2527
- this.value = this.selectedCountry.dial_code + " " + inputElement.value;
2528
- }
2529
- else {
2530
- this.value = inputElement.value;
2531
- }
2532
- }
2533
- this.onChange(this.value);
2534
- this.onTouched();
2535
- // SKS11JUN25 Only emit the value if not in view edit mode
2536
- if (!this.viewEdit || this.type === 'list') {
2537
- let change = {};
2538
- change['fromQuestionId'] = this.question?.id;
2539
- change['valueObj'] = this.value;
2540
- change['referenceField'] = this.question?.referenceField;
2541
- this.inputValue.emit({ question: this.question, value: change });
2542
- }
2543
- }
2544
- togglePasswordVisibility() {
2545
- this.isPasswordVisible = !this.isPasswordVisible;
2546
- }
2547
- passwordMatchValidator() {
2548
- return (control) => {
2549
- const confirmPassword = control.value; // Get confirm password field value
2550
- if (this.confPassVal === '') {
2551
- return { passwordMismatch: true };
2552
- }
2553
- return this.confPassVal === confirmPassword ? null : { passwordMismatch: true };
2554
- };
2555
- }
2556
- getErrorMessage() {
2557
- if (this.control.hasError('required'))
2558
- return this.errorMessages['required'] || 'This field is required';
2559
- if (this.control.hasError('minlength'))
2560
- return this.errorMessages['minlength'] || `Minimum ${this.minLength} characters required`;
2561
- if (this.control.hasError('pattern'))
2562
- return this.errorMessages['pattern'] || (this.type === 'tel' ? `Invalid ${this.selectedCountry.name} phone number format` : 'Invalid format');
2563
- if (this.control.hasError('maxlength'))
2564
- return this.errorMessages['maxlength'] || `Maximum ${this.maxLength} characters allowed`;
2565
- if (this.control.hasError('passwordMismatch'))
2566
- return this.errorMessages['confPass'] || `Passwords do not match`;
2567
- return '';
2568
- }
2569
- writeValue(value) {
2570
- if (this.type === 'otp') {
2571
- const values = value.split('').slice(0, this.#size);
2572
- values.forEach((val, index) => this.inputs.controls[index].setValue(val));
2573
- }
2574
- else if (this.type === 'datetime' || this.type === 'date') {
2575
- if (value instanceof Date) {
2576
- this.value = value;
2577
- }
2578
- else if (value && typeof value !== 'string') {
2579
- this.value = new Date(value);
2580
- }
2581
- this.control.setValue(this.value);
2582
- }
2583
- else {
2584
- this.control.setValue(value);
2585
- this.value = value;
2586
- }
2587
- }
2588
- registerOnChange(fn) {
2589
- this.onChange = fn;
2590
- if (this.type === 'otp') {
2591
- this.inputs.valueChanges.subscribe(() => {
2592
- const value = this.inputs.value.join('');
2593
- this.onChange(value);
2594
- });
2595
- }
2596
- else {
2597
- this.control.valueChanges.subscribe((value) => {
2598
- this.onChange(value);
2599
- });
2600
- }
2601
- }
2602
- setDisabledState(isDisabled) {
2603
- if (this.type === 'otp') {
2604
- if (isDisabled) {
2605
- this.inputs.disable();
2606
- }
2607
- else {
2608
- this.inputs.enable();
2609
- }
2610
- }
2611
- else {
2612
- if (isDisabled) {
2613
- this.control.disable();
2614
- }
2615
- else {
2616
- this.control.enable();
2617
- }
2618
- }
2619
- }
2620
- updateControlState() {
2621
- //AP-01JUL25 - Determine if the field should be disabled based on mode and question's read-only status
2622
- const shouldDisable = this.mode === 'edit' ? (this.question?.isReadOnly === true || this.question?.isReadOnly === 'true') : true;
2623
- this.setDisabledState(shouldDisable);
2624
- }
2625
- validate(control) {
2626
- if (this.type === 'otp') {
2627
- if (!control.value || control.value.length < this.#size) {
2628
- return { otpInput: 'Value is incorrect' };
2629
- }
2630
- }
2631
- else {
2632
- if (this.control.invalid) {
2633
- return this.control.errors;
2634
- }
2635
- }
2636
- return null;
2637
- }
2638
- handleKeyDown(e, idx) {
2639
- if (e.key === 'Backspace' || e.key === 'Delete') {
2640
- if (idx > 0) {
2641
- this.#scheduledFocus = idx - 1;
2642
- }
2643
- else {
2644
- this.#scheduledFocus = null;
2645
- }
2646
- }
2647
- }
2648
- // Due to iOS/iPadOS Safari bug/special behavior we are forced to
2649
- // schedule focus transition during keypress/keydown event and only
2650
- // after input event happened - execute the transition
2651
- // otherwise inputs don't get their values filled
2652
- handleInput() {
2653
- this.#updateWiredValue();
2654
- if (this.#scheduledFocus !== null) {
2655
- this.#focusInput(this.#scheduledFocus);
2656
- this.#scheduledFocus = null; // Reset to null after focusing
2657
- }
2658
- }
2659
- handleKeyPress(e, idx) {
2660
- const isDigit = /\d/.test(e.key);
2661
- if (e.key === 'v' && e.metaKey) {
2662
- return true;
2663
- }
2664
- if (isDigit && idx + 1 < this.#size) {
2665
- this.#scheduledFocus = idx + 1;
2666
- }
2667
- else {
2668
- this.#scheduledFocus = null; // Ensure it's null if not moving focus
2669
- }
2670
- if (isDigit && this.inputs.controls[idx].value) {
2671
- this.inputs.controls[idx].setValue('');
2672
- }
2673
- return isDigit;
2674
- }
2675
- handlePaste(e, idx) {
2676
- e.preventDefault();
2677
- if (idx !== 0) {
2678
- // If the target input is not the first one - ignore
2679
- return;
2680
- }
2681
- const pasteData = e.clipboardData?.getData('text');
2682
- const regex = new RegExp(`\\d{${this.#size}}`);
2683
- if (!pasteData || !regex.test(pasteData)) {
2684
- // If there is nothing to be pasted or the pasted data does not
2685
- // comply with the required format - ignore the event
2686
- return;
2687
- }
2688
- for (let i = 0; i < pasteData.length; i++) {
2689
- this.inputs.controls[i].setValue(pasteData[i]);
2690
- }
2691
- this.#focusInput(this.inputEls.length - 1);
2692
- this.#updateWiredValue();
2693
- this.onTouched();
2694
- }
2695
- handleFocus(e) {
2696
- // Select previously entered value to replace with a new input
2697
- e.target.select();
2698
- }
2699
- #focusInput(idx) {
2700
- // In order not to interfere with the input we setTimeout
2701
- // before advancing the focus
2702
- setTimeout(() => this.inputEls.get(idx)?.nativeElement.focus());
2703
- }
2704
- #updateWiredValue() {
2705
- // We want to expose the value as a plain string
2706
- //
2707
- // In order not to interfere with the input we setTimeout
2708
- // before advancing the focus
2709
- setTimeout(() => this.onChange?.(this.inputs.value.join('')));
2710
- }
2711
- // SKS28FEB25 toggle Country Dropdown
2712
- toggleCountryDropdown() {
2713
- this.showCountryDropdown = !this.showCountryDropdown;
2714
- }
2715
- // SKS28FEB25 Country Dropdown search filter
2716
- filterCountries(event) {
2717
- const inputElement = event.target;
2718
- this.countrySearch = inputElement.value;
2719
- this.filteredCountries = this.countries.filter(country => country.name.toLowerCase().includes(this.countrySearch.toLowerCase()) ||
2720
- country.dial_code.includes(this.countrySearch));
2721
- }
2722
- // SKS28FEB25 Country Dropdown select function
2723
- selectCountry(country) {
2724
- this.selectedCountry = country;
2725
- this.showCountryDropdown = false;
2726
- this.control.setValidators([
2727
- Validators.required,
2728
- Validators.pattern(this.removeDialCodeFromRegex(this.selectedCountry.regex, this.selectedCountry.dial_code))
2729
- ]);
2730
- // SKS28FEB25 Update the control's value with the new dial code
2731
- this.control.setValue(this.rawInputVal);
2732
- // SKS28FEB25 Immediately update validity status
2733
- this.control.updateValueAndValidity();
2734
- // SKS28FEB25 Trigger change detection if needed
2735
- this.control.markAsTouched();
2736
- this.value = this.selectedCountry.dial_code + " " + this.rawInputVal;
2737
- this.onChange(this.value);
2738
- }
2739
- // SKS28FEB25 remove DialCode From Regex
2740
- removeDialCodeFromRegex(originalRegex, dialCode) {
2741
- const escapedDialCode = dialCode.replace(/\+/g, "\\+");
2742
- return originalRegex.replace(`^${escapedDialCode}`, '^');
2743
- }
2744
- // SKS28FEB25 remove DialCode From Regex for show in input
2745
- removeDialCode(placeholder) {
2746
- return placeholder.replace(/^\+\d+\s*/, '');
2747
- }
2748
- blurEmit() {
2749
- this.onBlur.emit(this.value);
2750
- }
2751
- focusinEmit(event) {
2752
- this.onFocus.emit(event);
2753
- }
2754
- toggle(event) {
2755
- this.toggleEmit.emit(event);
2756
- }
2757
- onEditorFocusOut() {
2758
- const currentValue = this.value || '';
2759
- this.valueChange.emit(currentValue);
2760
- }
2761
- viewEditClick(ques) {
2762
- this.originalValue = this.value; // Store the original value
2763
- this.viewEdit = true; // Enter view edit mode
2764
- this.mode = 'edit';
2765
- this.updateControlState(); // Update control state
2766
- }
2767
- saveChanges = (event) => {
2768
- // SKS14JUN25 Emit save/discard event only if the current question was changed
2769
- if (event)
2770
- if (event.detail?.id !== this.question?.id)
2771
- return;
2772
- let ques = this.question;
2773
- ques['singleFieldChange'] = true;
2774
- let change;
2775
- change['fromQuestionId'] = this.question?.id;
2776
- change['valueObj'] = this.value;
2777
- change['referenceField'] = this.question?.referenceField;
2778
- this.inputValue.emit({ question: ques, value: change }); // Emit the updated value
2779
- this.viewEdit = false; // Exit view edit mode
2780
- this.mode = 'view'; // Switch back to view mode
2781
- this.updateControlState(); // Update control state
2782
- };
2783
- discardChanges = (event) => {
2784
- // SKS14JUN25 Emit save/discard event only if the current question was changed
2785
- if (event)
2786
- if (event.detail?.id !== this.question?.id)
2787
- return;
2788
- this.writeValue(this.originalValue); // Revert to original value
2789
- this.viewEdit = false; // Exit view edit mode
2790
- this.mode = 'view'; // Switch back to view mode
2791
- this.updateControlState(); // Update control state
2792
- };
2793
- openDatePicker(type) {
2794
- if (type === 'datetime') {
2795
- this.dtPicker.open();
2796
- }
2797
- else if (type === 'date') {
2798
- this.dPicker.open();
2799
- }
2800
- }
2801
- removeValue() {
2802
- this.removeValueEmit.emit();
2803
- }
2804
- onClickHyperlink(event) {
2805
- if (this.hyperLink) {
2806
- this.hyperlinkEmit.emit(event);
2807
- }
2808
- }
2809
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtInput, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ElementRef }, { token: i1.ChangeService }, { token: i2.DataService }], target: i0.ɵɵFactoryTarget.Component });
2810
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NxtInput, isStandalone: true, selector: "nxt-input", inputs: { label: "label", labelFont: "labelFont", labelWeight: "labelWeight", inputWeight: "inputWeight", labelSize: "labelSize", inputValueSize: "inputValueSize", labelColor: "labelColor", showLabel: "showLabel", svgHeight: "svgHeight", svgWidth: "svgWidth", type: "type", inputIconRightSrc: "inputIconRightSrc", inputIconLeftSrc: "inputIconLeftSrc", required: "required", minLength: "minLength", pattern: "pattern", errorMessages: "errorMessages", maxLength: "maxLength", placeholder: "placeholder", inputBgColor: "inputBgColor", inputBorder: "inputBorder", placeholderColor: "placeholderColor", placeholderFont: "placeholderFont", placeholderWeight: "placeholderWeight", placeholderSize: "placeholderSize", inputTextColor: "inputTextColor", inputHeight: "inputHeight", inputWidth: "inputWidth", inputId: "inputId", inputBorderSize: "inputBorderSize", inputConfig: "inputConfig", confPassVal: "confPassVal", confPass: "confPass", mode: "mode", value: "value", question: "question", showSuggestion: "showSuggestion", ariaOwns: "ariaOwns", ariaHasPopup: "ariaHasPopup", isLoading: "isLoading", options: "options", minDate: "minDate", maxDate: "maxDate", rows: "rows", from: "from", hyperLink: "hyperLink", size: "size" }, outputs: { valueChange: "valueChange", inputValue: "inputValue", onBlur: "onBlur", onFocus: "onFocus", toggleEmit: "toggleEmit", nativeInputRef: "nativeInputRef", removeValueEmit: "removeValueEmit", hyperlinkEmit: "hyperlinkEmit" }, host: { listeners: { "document:click": "closeDropdown($event)" } }, providers: [
2811
- {
2812
- provide: NG_VALUE_ACCESSOR,
2813
- useExisting: forwardRef(() => NxtInput),
2814
- multi: true
2815
- },
2816
- {
2817
- provide: NG_VALIDATORS,
2818
- useExisting: forwardRef(() => NxtInput),
2819
- multi: true,
2820
- },
2821
- ], viewQueries: [{ propertyName: "dtPicker", first: true, predicate: ["dt"], descendants: true }, { propertyName: "dPicker", first: true, predicate: ["dt2"], descendants: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }, { propertyName: "inputEls", predicate: ["inputEl"], descendants: true }, { propertyName: "dateTimePicker", predicate: ["dt"], descendants: true }, { propertyName: "datePicker", predicate: ["dt1"], descendants: true }, { propertyName: "timePicker", predicate: ["dt2"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- SKS31JAN25 -->\n<div class=\"hover-wrapper input-wrapper\" (document:click)=\"closeDropdown($event)\">\n <div>\n <div *ngIf=\"label && type != 'checkbox' && showLabel\" [ngStyle]=\"{\n 'padding-top': type === 'label' ? '10px' : '',\n 'padding-bottom': type === 'label' ? '10px' : ''\n }\" [style.font-weight]=\"labelWeight || type === 'label' ? 'bold' : 'normal'\" [style.font-size]=\"labelSize || type === 'label' ? '16px' : '14px'\"\n style=\"display: flex; gap: 5px;\"> {{ label\n }}\n <div *ngIf=\"label && type != 'checkbox' && required && showLabel && mode === 'edit'\" style=\"color: red;\">*</div>\n </div>\n <div *ngIf=\"type !== 'label' && type !== 'richtext' && type !== 'textarea'\" style=\"display: flex;\">\n <div class=\"input-container\" [ngClass]=\"{'checkbox-padding': type === 'checkbox' || type === 'otp'}\"\n [style.backgroundColor]=\"mode === 'edit' ? from === 'nxtTable' ? '' : inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border-radius]=\"mode !== 'edit' && from === 'nxtTable' ? 'none': ''\"\n [style.padding-left]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.padding-right]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.margin-top]=\"showLabel && label ? '' : from === 'nxtTable' || from === 'normalDropDown' ? '' : '21px !important'\"\n [style.border]=\"mode === 'edit' ? from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\"\n style=\"position: relative; width: 100%;\">\n <img *ngIf=\"inputIconLeftSrc && mode === 'edit'\" [src]=\"inputIconLeftSrc\" alt=\"icon\" class=\"icon left-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\" />\n <div *ngIf=\"mode === 'edit' && type === 'list'\">\n <!-- Inline search icon SVG -->\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"#434555\" stroke-opacity=\"0.65\" stroke-width=\"1.5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\">\n <circle cx=\"8.25\" cy=\"8.25\" r=\"5.25\" />\n <path d=\"M15 15L12.75 12.75\" stroke-linecap=\"round\" />\n </svg>\n </div>\n <!-- SKS28FEB25 mobile number input -->\n <div *ngIf=\"type === 'tel'\" class=\"phone-input-container\">\n <div class=\"country-selector\" style=\"padding-left: 10px;\"\n (click)=\"toggleCountryDropdown()\">\n <!-- <span class=\"flag\">{{ selectedCountry.flag }}</span> -->\n <span class=\"dial-code\" [style.font-size]=\"inputValueSize\">{{ selectedCountry.dial_code }}</span>\n <svg class=\"arrow\" width=\"9\" height=\"6\" viewBox=\"0 0 9 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M0.684136 0.767477C0.922999 0.5378 1.30282 0.545248 1.5325 0.784111L4.5 3.93431L7.4675 0.784111C7.69718 0.545248 8.077 0.5378 8.31587 0.767477C8.55473 0.997153 8.56218 1.37698 8.3325 1.61584L4.9325 5.21584C4.81938 5.33349 4.66321 5.39998 4.5 5.39998C4.33679 5.39998 4.18062 5.33349 4.0675 5.21584L0.667501 1.61584C0.437825 1.37698 0.445272 0.997153 0.684136 0.767477Z\"\n fill=\"#626262\" />\n </svg>\n </div>\n <div *ngIf=\"showCountryDropdown\" class=\"country-dropdown\">\n <div class=\"search-box\">\n <input type=\"text\" [readOnly]=\"mode !== 'edit'\" placeholder=\"Search country...\" [value]=\"countrySearch\"\n (input)=\"filterCountries($event)\">\n </div>\n <div class=\"country-list\">\n <div *ngFor=\"let country of filteredCountries\" class=\"country-item\" (click)=\"selectCountry(country)\">\n <span class=\"flag\">{{ country.flag }}</span>\n <span class=\"name\">{{ country.name }}</span>\n <span class=\"dial-code\">{{ country.dial_code }}</span>\n </div>\n </div>\n </div>\n </div>\n @if(type !== 'datetime' && type !== 'date' && type !== 'time'){\n <input *ngFor=\"let input of cachedInputList; let i = index\" #inputEl #inputRef [id]=\"inputId\"\n [type]=\"isPasswordVisible ? 'text' : type === 'otp' || type === 'dropdown' ? 'text' : type\"\n [attr.placeholder]=\"type === 'otp' || mode !== 'edit' ? '' : placeholder || (type === 'tel' ? removeDialCode(selectedCountry.placeholder) : label)\"\n [ngClass]=\"{'fcOtp': type === 'otp','custom-input': type !== 'otp','hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable' }\"\n [formControl]=\"type === 'otp' ? $any(input) : control\"\n [style.backgroundColor]=\"type === 'otp'|| mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"type === 'otp' || mode !== 'edit' ? '' : inputTextColor\"\n [style.border]=\"type === 'otp' || mode !== 'edit' ? '' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"type === 'otp' ? '' : inputHeight\" [style.width]=\"type === 'otp' ? '' : type === 'checkbox' ? 'auto' : inputWidth\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : ''\"\n [value]=\"type === 'tel' ? rawInputVal : value\"\n (input)=\"type === 'otp' ? handleInput() : onInputChange($event)\"\n [checked]=\"type === 'checkbox' ? value : ''\"\n [style.font-size]=\"type === 'otp' ? '' : inputValueSize\" (focus)=\"type === 'otp' ? handleFocus($event) : null\"\n (blur)=\"type === 'otp' ? onTouched() : blurEmit()\"\n (keypress)=\"type === 'otp' ? handleKeyPress($event, i) : null\"\n (keydown)=\"type === 'otp' ? handleKeyDown($event, i) : from === 'normalDropDown' ? $event.preventDefault() : null\"\n (paste)=\"type === 'otp' ? handlePaste($event, i) : null\" inputmode=\"type === 'otp' ? numeric : null\"\n [attr.autocomplete]=\"type === 'otp' && i === 0 ? 'one-time-code' : type === 'list' ? 'list' : 'off'\"\n [attr.aria-expanded]=\"type === 'list' ? showSuggestion : 'off'\"\n [attr.inputmode]=\"type === 'otp' ? 'numeric' : null\" [attr.name]=\"type === 'otp' && i === 0 ? 'otp' : null\"\n (focusin)=\"focusinEmit($event)\" [attr.aria-owns]=\"type === 'list' ? ariaOwns : 'off'\"\n [attr.aria-haspopup]=\"type === 'list' ? ariaHasPopup : 'off'\" \n [readonly]=\"from === 'normalDropDown'\" \n [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" (keydown.enter)=\"type === 'location' ? $event.preventDefault() : ''\"\n autocorrect=\"type === 'location' ? 'off' : ''\" autocapitalize=\"type === 'location' ? 'off' : ''\"\n spellcheck=\"type === 'location' ? 'off' : ''\" \n />\n }\n @else if(type === 'time'){\n <input #inputEl [id]=\"inputId\"\n [type]=\"type\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || 'HH:MM'\"\n [ngClass]=\"'nxt-custom-input'\" [ngClass]=\"{'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\"\n [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n (input)=\"onInputChange($event)\"\n [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" style=\"\n width: 100% !important;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" \n />\n }\n @else if(type === 'datetime' || type === 'date'){\n <input #inputEl [id]=\"inputId\"\n [owlDateTimeTrigger]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : dt\"\n [owlDateTime]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : dt\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || type === 'datetime' ? 'DD/MM/YYYY HH:MM' : type === 'date' ? 'DD/MM/YYYY' : 'DD/MM/YYYY HH:MM'\"\n [ngClass]=\"'nxt-custom-input'\" [ngClass]=\"{'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\"\n [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n (dateTimeInput)=\"onInputChange($event)\"\n [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" style=\"\n width: 100% !important;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" \n />\n <owl-date-time #dt></owl-date-time>\n <owl-date-time [pickerType]=\"'calendar'\" #dt2></owl-date-time>\n }\n <div *ngIf=\"mode !== 'edit'\" class=\"hyperlink-overlay\" (click)=\"hyperLink ? onClickHyperlink($event) : ''\"\n style=\" position: absolute; top: 0; left: 0; width: 94%; height: 100%; z-index: 5; \"></div> \n <div *ngIf=\"mode === 'edit' && (type === 'datetime' || type === 'date')\" (click)=\"openDatePicker(type)\"\n style=\"cursor: pointer;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n <path d=\"M2.32031 7.05285H15.6883\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.3322 9.98254H12.3392\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.00408 9.98254H9.01103\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.66815 9.98254H5.67509\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.3322 12.8976H12.3392\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.00408 12.8976H9.01103\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.66815 12.8976H5.67509\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.0329 1.5V3.96809\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.97435 1.5V3.96809\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.1787 2.68457H5.82822C3.6257 2.68457 2.25 3.91152 2.25 6.16684V12.9541C2.25 15.2449 3.6257 16.5002 5.82822 16.5002H12.1718C14.3812 16.5002 15.75 15.2661 15.75 13.0108V6.16684C15.7569 3.91152 14.3882 2.68457 12.1787 2.68457Z\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div *ngIf=\"mode === 'edit' && type === 'list'\">\n <!-- Minimal Dotted Loader -->\n <div *ngIf=\"isLoading\" class=\"dotted-loader\" aria-label=\"Loading\" role=\"status\">\n <span *ngFor=\"let dot of [].constructor(6); let i = index\" class=\"dot\" [style.--i]=\"i\"></span>\n </div>\n <svg *ngIf=\"!isLoading\" (click)=\"removeValue()\" (keydown.enter)=\"removeValue()\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"cursor: pointer;\">\n <path d=\"M9.16992 14.8299L14.8299 9.16992\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M14.8299 14.8299L9.16992 9.16992\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> \n </div>\n <label class=\"checkboxLab\" *ngIf=\"label && type === 'checkbox' && showLabel\" [style.font-weight]=\"labelWeight\"\n [style.font-size]=\"labelSize\" [style.color]=\"labelColor || '#9a9a9a'\"\n style=\"margin-bottom: 0; padding-left: 10px; padding-right: 10px; width: 100% !important;\"> {{ label }}\n <div *ngIf=\"label && type === 'checkbox' && required && showLabel\" style=\"color: red;\">*</div>\n </label> \n <!-- Always Show Dropdown Icon -->\n <svg *ngIf=\"mode === 'edit' && type === 'dropdown'\" style=\"margin-right: 5px;\" (mousedown)=\"toggle($event); $event.preventDefault()\"\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z\" stroke=\"#292D32\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M8.46997 10.64L12 14.16L15.53 10.64\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n\n <img *ngIf=\"mode === 'edit' && inputIconRightSrc\" [src]=\"inputIconRightSrc\" class=\"icon right-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\">\n <img *ngIf=\"mode === 'edit' && type === 'password'\" class=\"toggle-icon\" (click)=\"togglePasswordVisibility()\"\n [src]=\"!isPasswordVisible ? '/assets/images/icons/general/Hide-Password.svg' : '/assets/images/icons/general/Show-Password.svg'\" />\n <svg *ngIf=\"mode !== 'edit' && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" \n (click)=\"viewEditClick(question)\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS14JUN25 Show save and cancel icons only when the input value is edited -->\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px; display: flex; align-items: center;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\"\n style=\" display: flex; align-items: center;\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n </div>\n </div>\n <div *ngIf=\"type !== 'label' && type !== 'checkbox' && (type === 'richtext' || type === 'textarea')\" style=\"display: flex;\">\n <div class=\"input-container\"\n [style.margin-top]=\"showLabel && label ? '' : from === 'nxtTable' || from === 'normalDropDown' ? '' : '21px !important'\"\n [style.border-radius]=\"mode !== 'edit' && from === 'nxtTable' ? 'none': ''\"\n [style.padding-left]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.padding-right]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.backgroundColor]=\"mode === 'edit' ? from === 'nxtTable' ? '' : inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border]=\"mode === 'edit' ? from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\">\n <!-- SKS14JUN25 Dynamically load Quill editor toolbar -->\n <quill-editor *ngIf=\"mode === 'edit' && type === 'richtext'\" [(ngModel)]=\"value\" (ngModelChange)=\"onInputChange($event)\" [placeholder]=\"placeholder\"\n [readOnly]=\"mode !== 'edit' || question.isReadOnly\"\n (focusout)=\"onEditorFocusOut()\" [class.error]=\"control.invalid && (control.touched || control.dirty)\"\n [modules]=\"getQuillModules(question.id)\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"width: 100%;\n border-radius: 5px;\n border: none;\n font-size: 14px;\">\n </quill-editor>\n <!-- View mode -->\n <div *ngIf=\"mode !== 'edit' && type === 'richtext'\" class=\"quill-view-content\" [innerHTML]=\"value\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"width: 100%;\n border-radius: 5px;\n border: none;\n font-size: 14px;\">\n </div>\n <textarea *ngIf=\"type === 'textarea'\" [id]=\"inputId\" [rows]=\"from === 'nxtTable' ? 1 : rows\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder\" [ngClass]=\"'custom-input'\"\n [ngClass]=\"{ 'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\" [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder\"\n [style.height]=\"inputHeight\" [value]=\"value\" (input)=\" onInputChange($event)\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n [readOnly]=\"mode !== 'edit' || question.isReadOnly\" [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" \n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"\n width: 100%;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\"\n >\n </textarea>\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && from !== 'nxtTable' && (type === 'richtext' || type === 'textarea') && !question.isReadOnly\"\n class=\"edit-icon\" (click)=\"viewEditClick(question)\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n </div>\n </div>\n <!-- SKS23APR25 Use control.invalid to show error on submit click -->\n <div *ngIf=\"type != 'checkbox' && type !== 'label' && control.invalid && (control.touched || control.dirty)\" style=\"height: 20px;\">\n <div class=\"error-message\">\n {{ getErrorMessage() }}\n </div>\n </div>\n </div>\n</div>", styles: ["label{font-size:14px;margin-bottom:10px;color:color-mix(in srgb,black,rgb(0,0,0) 80%)}.toggle-icon{width:20px;height:20px;cursor:pointer;fill:#666}.error-message{color:red;font-size:12px}input[type=text].custom-input,input[type=password].custom-input,input[type=number].custom-input,input[type=email].custom-input,input[type=tel].custom-input,input[type=list].custom-input,input[type=dropdown].custom-input,input[type=location].custom-input{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px}input.nxt-custom-input{width:100%!important;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px}.custom-input:-webkit-autofill,.custom-input:-webkit-autofill:hover,.custom-input:-webkit-autofill:focus,.custom-input:-webkit-autofill:active,.nxt-custom-input:-webkit-autofill,.nxt-custom-input:-webkit-autofill:hover,.nxt-custom-input:-webkit-autofill:focus,.nxt-custom-input:-webkit-autofill:active{transition:background-color 5000s ease-in-out 0s!important;-webkit-text-fill-color:inherit!important}.phone-input-container{display:flex;align-items:center;position:relative}.country-selector{display:flex;align-items:center;cursor:pointer;padding-right:12px;border-right:#ccc;margin-right:12px}.flag{margin-right:8px;font-size:20px}.dial-code{margin-right:8px;font-weight:500}.country-dropdown{position:absolute;top:100%;left:0;width:300px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0000001a;z-index:1000;margin-top:4px}.search-box{padding:8px;border-bottom:1px solid #ccc}.search-box input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px}.country-list{max-height:200px;overflow-y:auto}.country-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer}.country-item:hover{background-color:color-mix(in srgb,#fff,rgba(0,0,0,0) 30%)}.country-item .name{flex:1;margin:0 12px}.fcOtp{width:40px;height:40px;text-align:center;font-size:18px;border:1px solid #ccc;border-radius:5px;margin:5px;outline:none;transition:border-color .2s ease-in-out}input:focus{outline:none;border-color:transparent;box-shadow:none}.input-container{display:flex;align-items:center;width:100%;border-radius:5px;border:1px solid #ccc;padding-left:5px;padding-right:5px}.icon-container{right:15px;padding-right:5px;pointer-events:auto;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.input-container.invalid{border:1px solid #DC3545!important;border-radius:5px}.checkbox-padding{margin-top:20px!important;padding:13px!important;width:100%!important;border:none!important}.view-mode{font-size:14px;color:#333}@media print{.view-mode{font-size:12pt;color:#000}}input::placeholder{font-family:var(--placeholder-font);color:var(--placeholder-color);font-size:var(--placeholder-size);font-weight:var(--placeholder-weight)}.dotted-loader{position:relative;width:10px;height:10px}.dotted-loader .dot{--i: 0;position:absolute;top:50%;left:50%;width:3px;height:3px;margin:-2px 0 0 -2px;border-radius:50%;background-color:#696969;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg));animation:spinDot 1s linear infinite;animation-delay:calc(var(--i) * .1s)}@keyframes spinDot{0%{opacity:.3;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(.9)}50%{opacity:1;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(1.3)}to{opacity:.3;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(.9)}}input:disabled{cursor:default;background-color:light-dark(rgba(239,239,239,0),rgba(59,59,59,0))!important;color:light-dark(rgb(84,84,84),rgb(170,170,170))!important}textarea:disabled{cursor:default;background-color:light-dark(rgba(239,239,239,0),rgba(59,59,59,0))!important;color:light-dark(rgb(84,84,84),rgb(170,170,170))!important}.quill-view-content{cursor:default;background-color:light-dark(rgba(239,239,239,0),rgba(59,59,59,0))!important;color:light-dark(rgb(84,84,84),rgb(170,170,170))!important}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}quill-editor{width:100%}.quill-view-content{border:none;padding:0;font-size:14px;line-height:1.6;color:#333;overflow:hidden}.quill-view-content *{max-width:100%;box-sizing:border-box;word-wrap:break-word}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}input:disabled,textarea:disabled,.quill-view-content{color:#999!important}input:disabled.from-nxt-table,textarea:disabled.from-nxt-table,.quill-view-content.from-nxt-table{color:#2c3137!important}.owl-dt-container-disabled,.owl-dt-trigger-disabled{opacity:unset!important}.input-wrapper{position:relative}.hyperlink-input{color:inherit;text-decoration:none;cursor:default;width:200px;border:1px solid #888}.hyperlink-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:2}.input-wrapper:hover .hyperlink-input{color:#00f!important;text-decoration:underline!important;cursor:pointer}.input-container{pointer-events:auto!important;position:relative;z-index:1}.custom-input,.nxt-custom-input{pointer-events:auto!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: OwlDateTimeModule }, { kind: "directive", type: i5.OwlDateTimeTriggerDirective, selector: "[owlDateTimeTrigger]", inputs: ["owlDateTimeTrigger", "disabled"] }, { kind: "directive", type: i5.OwlDateTimeInputDirective, selector: "input[owlDateTime]", inputs: ["required", "owlDateTime", "owlDateTimeFilter", "_disabled", "min", "max", "selectMode", "rangeSeparator", "value", "values"], outputs: ["dateTimeChange", "dateTimeInput"], exportAs: ["owlDateTimeInput"] }, { kind: "component", type: i5.OwlDateTimeComponent, selector: "owl-date-time", inputs: ["backdropClass", "panelClass", "startAt", "endAt", "pickerType", "pickerMode", "disabled", "opened", "scrollStrategy"], outputs: ["afterPickerClosed", "beforePickerOpen", "afterPickerOpen", "yearSelected", "monthSelected", "dateSelected"], exportAs: ["owlDateTime"] }, { kind: "ngmodule", type: OwlNativeDateTimeModule }, { kind: "component", type: QuillEditorComponent, selector: "quill-editor" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2822
- }
2823
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtInput, decorators: [{
2824
- type: Component,
2825
- args: [{ standalone: true, imports: [CommonModule, ReactiveFormsModule, OwlDateTimeModule, OwlNativeDateTimeModule, QuillEditorComponent, FormsModule], selector: 'nxt-input', providers: [
2826
- {
2827
- provide: NG_VALUE_ACCESSOR,
2828
- useExisting: forwardRef(() => NxtInput),
2829
- multi: true
2830
- },
2831
- {
2832
- provide: NG_VALIDATORS,
2833
- useExisting: forwardRef(() => NxtInput),
2834
- multi: true,
2835
- },
2836
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- SKS31JAN25 -->\n<div class=\"hover-wrapper input-wrapper\" (document:click)=\"closeDropdown($event)\">\n <div>\n <div *ngIf=\"label && type != 'checkbox' && showLabel\" [ngStyle]=\"{\n 'padding-top': type === 'label' ? '10px' : '',\n 'padding-bottom': type === 'label' ? '10px' : ''\n }\" [style.font-weight]=\"labelWeight || type === 'label' ? 'bold' : 'normal'\" [style.font-size]=\"labelSize || type === 'label' ? '16px' : '14px'\"\n style=\"display: flex; gap: 5px;\"> {{ label\n }}\n <div *ngIf=\"label && type != 'checkbox' && required && showLabel && mode === 'edit'\" style=\"color: red;\">*</div>\n </div>\n <div *ngIf=\"type !== 'label' && type !== 'richtext' && type !== 'textarea'\" style=\"display: flex;\">\n <div class=\"input-container\" [ngClass]=\"{'checkbox-padding': type === 'checkbox' || type === 'otp'}\"\n [style.backgroundColor]=\"mode === 'edit' ? from === 'nxtTable' ? '' : inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border-radius]=\"mode !== 'edit' && from === 'nxtTable' ? 'none': ''\"\n [style.padding-left]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.padding-right]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.margin-top]=\"showLabel && label ? '' : from === 'nxtTable' || from === 'normalDropDown' ? '' : '21px !important'\"\n [style.border]=\"mode === 'edit' ? from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\"\n style=\"position: relative; width: 100%;\">\n <img *ngIf=\"inputIconLeftSrc && mode === 'edit'\" [src]=\"inputIconLeftSrc\" alt=\"icon\" class=\"icon left-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\" />\n <div *ngIf=\"mode === 'edit' && type === 'list'\">\n <!-- Inline search icon SVG -->\n <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"#434555\" stroke-opacity=\"0.65\" stroke-width=\"1.5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\">\n <circle cx=\"8.25\" cy=\"8.25\" r=\"5.25\" />\n <path d=\"M15 15L12.75 12.75\" stroke-linecap=\"round\" />\n </svg>\n </div>\n <!-- SKS28FEB25 mobile number input -->\n <div *ngIf=\"type === 'tel'\" class=\"phone-input-container\">\n <div class=\"country-selector\" style=\"padding-left: 10px;\"\n (click)=\"toggleCountryDropdown()\">\n <!-- <span class=\"flag\">{{ selectedCountry.flag }}</span> -->\n <span class=\"dial-code\" [style.font-size]=\"inputValueSize\">{{ selectedCountry.dial_code }}</span>\n <svg class=\"arrow\" width=\"9\" height=\"6\" viewBox=\"0 0 9 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M0.684136 0.767477C0.922999 0.5378 1.30282 0.545248 1.5325 0.784111L4.5 3.93431L7.4675 0.784111C7.69718 0.545248 8.077 0.5378 8.31587 0.767477C8.55473 0.997153 8.56218 1.37698 8.3325 1.61584L4.9325 5.21584C4.81938 5.33349 4.66321 5.39998 4.5 5.39998C4.33679 5.39998 4.18062 5.33349 4.0675 5.21584L0.667501 1.61584C0.437825 1.37698 0.445272 0.997153 0.684136 0.767477Z\"\n fill=\"#626262\" />\n </svg>\n </div>\n <div *ngIf=\"showCountryDropdown\" class=\"country-dropdown\">\n <div class=\"search-box\">\n <input type=\"text\" [readOnly]=\"mode !== 'edit'\" placeholder=\"Search country...\" [value]=\"countrySearch\"\n (input)=\"filterCountries($event)\">\n </div>\n <div class=\"country-list\">\n <div *ngFor=\"let country of filteredCountries\" class=\"country-item\" (click)=\"selectCountry(country)\">\n <span class=\"flag\">{{ country.flag }}</span>\n <span class=\"name\">{{ country.name }}</span>\n <span class=\"dial-code\">{{ country.dial_code }}</span>\n </div>\n </div>\n </div>\n </div>\n @if(type !== 'datetime' && type !== 'date' && type !== 'time'){\n <input *ngFor=\"let input of cachedInputList; let i = index\" #inputEl #inputRef [id]=\"inputId\"\n [type]=\"isPasswordVisible ? 'text' : type === 'otp' || type === 'dropdown' ? 'text' : type\"\n [attr.placeholder]=\"type === 'otp' || mode !== 'edit' ? '' : placeholder || (type === 'tel' ? removeDialCode(selectedCountry.placeholder) : label)\"\n [ngClass]=\"{'fcOtp': type === 'otp','custom-input': type !== 'otp','hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable' }\"\n [formControl]=\"type === 'otp' ? $any(input) : control\"\n [style.backgroundColor]=\"type === 'otp'|| mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"type === 'otp' || mode !== 'edit' ? '' : inputTextColor\"\n [style.border]=\"type === 'otp' || mode !== 'edit' ? '' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"type === 'otp' ? '' : inputHeight\" [style.width]=\"type === 'otp' ? '' : type === 'checkbox' ? 'auto' : inputWidth\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : ''\"\n [value]=\"type === 'tel' ? rawInputVal : value\"\n (input)=\"type === 'otp' ? handleInput() : onInputChange($event)\"\n [checked]=\"type === 'checkbox' ? value : ''\"\n [style.font-size]=\"type === 'otp' ? '' : inputValueSize\" (focus)=\"type === 'otp' ? handleFocus($event) : null\"\n (blur)=\"type === 'otp' ? onTouched() : blurEmit()\"\n (keypress)=\"type === 'otp' ? handleKeyPress($event, i) : null\"\n (keydown)=\"type === 'otp' ? handleKeyDown($event, i) : from === 'normalDropDown' ? $event.preventDefault() : null\"\n (paste)=\"type === 'otp' ? handlePaste($event, i) : null\" inputmode=\"type === 'otp' ? numeric : null\"\n [attr.autocomplete]=\"type === 'otp' && i === 0 ? 'one-time-code' : type === 'list' ? 'list' : 'off'\"\n [attr.aria-expanded]=\"type === 'list' ? showSuggestion : 'off'\"\n [attr.inputmode]=\"type === 'otp' ? 'numeric' : null\" [attr.name]=\"type === 'otp' && i === 0 ? 'otp' : null\"\n (focusin)=\"focusinEmit($event)\" [attr.aria-owns]=\"type === 'list' ? ariaOwns : 'off'\"\n [attr.aria-haspopup]=\"type === 'list' ? ariaHasPopup : 'off'\" \n [readonly]=\"from === 'normalDropDown'\" \n [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" (keydown.enter)=\"type === 'location' ? $event.preventDefault() : ''\"\n autocorrect=\"type === 'location' ? 'off' : ''\" autocapitalize=\"type === 'location' ? 'off' : ''\"\n spellcheck=\"type === 'location' ? 'off' : ''\" \n />\n }\n @else if(type === 'time'){\n <input #inputEl [id]=\"inputId\"\n [type]=\"type\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || 'HH:MM'\"\n [ngClass]=\"'nxt-custom-input'\" [ngClass]=\"{'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\"\n [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n (input)=\"onInputChange($event)\"\n [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" style=\"\n width: 100% !important;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" \n />\n }\n @else if(type === 'datetime' || type === 'date'){\n <input #inputEl [id]=\"inputId\"\n [owlDateTimeTrigger]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : dt\"\n [owlDateTime]=\"type === 'datetime' ? dt : type === 'date' ? dt2 : dt\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder || type === 'datetime' ? 'DD/MM/YYYY HH:MM' : type === 'date' ? 'DD/MM/YYYY' : 'DD/MM/YYYY HH:MM'\"\n [ngClass]=\"'nxt-custom-input'\" [ngClass]=\"{'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\"\n [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? 'none' : inputBorder\"\n [style.height]=\"inputHeight\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n (dateTimeInput)=\"onInputChange($event)\"\n [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" style=\"\n width: 100% !important;\n padding: 10px;\n padding-left: 5px;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\" \n />\n <owl-date-time #dt></owl-date-time>\n <owl-date-time [pickerType]=\"'calendar'\" #dt2></owl-date-time>\n }\n <div *ngIf=\"mode !== 'edit'\" class=\"hyperlink-overlay\" (click)=\"hyperLink ? onClickHyperlink($event) : ''\"\n style=\" position: absolute; top: 0; left: 0; width: 94%; height: 100%; z-index: 5; \"></div> \n <div *ngIf=\"mode === 'edit' && (type === 'datetime' || type === 'date')\" (click)=\"openDatePicker(type)\"\n style=\"cursor: pointer;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n <path d=\"M2.32031 7.05285H15.6883\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.3322 9.98254H12.3392\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.00408 9.98254H9.01103\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.66815 9.98254H5.67509\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.3322 12.8976H12.3392\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.00408 12.8976H9.01103\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.66815 12.8976H5.67509\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.0329 1.5V3.96809\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.97435 1.5V3.96809\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.1787 2.68457H5.82822C3.6257 2.68457 2.25 3.91152 2.25 6.16684V12.9541C2.25 15.2449 3.6257 16.5002 5.82822 16.5002H12.1718C14.3812 16.5002 15.75 15.2661 15.75 13.0108V6.16684C15.7569 3.91152 14.3882 2.68457 12.1787 2.68457Z\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div *ngIf=\"mode === 'edit' && type === 'list'\">\n <!-- Minimal Dotted Loader -->\n <div *ngIf=\"isLoading\" class=\"dotted-loader\" aria-label=\"Loading\" role=\"status\">\n <span *ngFor=\"let dot of [].constructor(6); let i = index\" class=\"dot\" [style.--i]=\"i\"></span>\n </div>\n <svg *ngIf=\"!isLoading\" (click)=\"removeValue()\" (keydown.enter)=\"removeValue()\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"cursor: pointer;\">\n <path d=\"M9.16992 14.8299L14.8299 9.16992\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M14.8299 14.8299L9.16992 9.16992\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg> \n </div>\n <label class=\"checkboxLab\" *ngIf=\"label && type === 'checkbox' && showLabel\" [style.font-weight]=\"labelWeight\"\n [style.font-size]=\"labelSize\" [style.color]=\"labelColor || '#9a9a9a'\"\n style=\"margin-bottom: 0; padding-left: 10px; padding-right: 10px; width: 100% !important;\"> {{ label }}\n <div *ngIf=\"label && type === 'checkbox' && required && showLabel\" style=\"color: red;\">*</div>\n </label> \n <!-- Always Show Dropdown Icon -->\n <svg *ngIf=\"mode === 'edit' && type === 'dropdown'\" style=\"margin-right: 5px;\" (mousedown)=\"toggle($event); $event.preventDefault()\"\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M9 22H15C20 22 22 20 22 15V9C22 4 20 2 15 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22Z\" stroke=\"#292D32\"\n stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n <path d=\"M8.46997 10.64L12 14.16L15.53 10.64\" stroke=\"#292D32\" stroke-width=\"1.5\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n\n <img *ngIf=\"mode === 'edit' && inputIconRightSrc\" [src]=\"inputIconRightSrc\" class=\"icon right-icon\"\n [style.height]=\"svgHeight\" [style.width]=\"svgWidth\">\n <img *ngIf=\"mode === 'edit' && type === 'password'\" class=\"toggle-icon\" (click)=\"togglePasswordVisibility()\"\n [src]=\"!isPasswordVisible ? '/assets/images/icons/general/Hide-Password.svg' : '/assets/images/icons/general/Show-Password.svg'\" />\n <svg *ngIf=\"mode !== 'edit' && !question.isReadOnly && from !== 'nxtTable' \" class=\"edit-icon\" \n (click)=\"viewEditClick(question)\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n <!-- SKS14JUN25 Show save and cancel icons only when the input value is edited -->\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isSaveHovered = true\" (mouseleave)=\"isSaveHovered = false\"\n style=\"padding-right: 5px; display: flex; align-items: center;\">\n <svg *ngIf=\"!isSaveHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.9502 0.5C8.96006 0.500106 11.4004 2.94031 11.4004 5.9502C11.4003 8.95999 8.95999 11.4003 5.9502 11.4004C2.94031 11.4004 0.500106 8.96006 0.5 5.9502C0.5 2.94024 2.94024 0.5 5.9502 0.5Z\"\n stroke=\"#837F8E\" />\n <path\n d=\"M8.88111 3.84583C8.83269 3.7972 8.77513 3.7586 8.71176 3.73227C8.64838 3.70594 8.58043 3.69238 8.5118 3.69238C8.44317 3.69238 8.37521 3.70594 8.31184 3.73227C8.24846 3.7586 8.19091 3.7972 8.14249 3.84583L4.8269 7.16347L3.35253 5.6891C3.30403 5.6406 3.24646 5.60213 3.18309 5.57588C3.11972 5.54964 3.05181 5.53613 2.98322 5.53613C2.91463 5.53613 2.84672 5.54964 2.78335 5.57588C2.71999 5.60213 2.66241 5.6406 2.61391 5.6891C2.56541 5.7376 2.52694 5.79518 2.50069 5.85854C2.47445 5.92191 2.46094 5.98982 2.46094 6.05841C2.46094 6.127 2.47445 6.19491 2.50069 6.25828C2.52694 6.32165 2.56541 6.37922 2.61391 6.42772L4.45677 8.27058C4.50519 8.31922 4.56274 8.35781 4.62612 8.38414C4.6895 8.41047 4.75745 8.42403 4.82608 8.42403C4.89471 8.42403 4.96266 8.41047 5.02604 8.38414C5.08942 8.35781 5.14697 8.31922 5.19539 8.27058L8.88111 4.58445C8.92974 4.53603 8.96834 4.47848 8.99467 4.4151C9.021 4.35173 9.03456 4.28377 9.03456 4.21514C9.03456 4.14651 9.021 4.07856 8.99467 4.01518C8.96834 3.9518 8.92974 3.89425 8.88111 3.84583Z\"\n fill=\"#837F8E\" />\n </svg>\n\n <svg *ngIf=\"isSaveHovered\" (click)=\"saveChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5.95 12.8004C9.23609 12.8004 11.9 10.1365 11.9 6.85039C11.9 3.5643 9.23609 0.900391 5.95 0.900391C2.66391 0.900391 0 3.5643 0 6.85039C0 10.1365 2.66391 12.8004 5.95 12.8004Z\"\n fill=\"#259566\" />\n <path\n d=\"M8.88111 4.74622C8.83269 4.69759 8.77513 4.65899 8.71176 4.63266C8.64838 4.60633 8.58043 4.59277 8.5118 4.59277C8.44317 4.59277 8.37521 4.60633 8.31184 4.63266C8.24846 4.65899 8.19091 4.69759 8.14249 4.74622L4.8269 8.06386L3.35253 6.58949C3.30403 6.54099 3.24646 6.50252 3.18309 6.47627C3.11972 6.45003 3.05181 6.43652 2.98322 6.43652C2.91463 6.43652 2.84672 6.45003 2.78335 6.47627C2.71999 6.50252 2.66241 6.54099 2.61391 6.58949C2.56541 6.63799 2.52694 6.69557 2.50069 6.75893C2.47445 6.8223 2.46094 6.89022 2.46094 6.9588C2.46094 7.02739 2.47445 7.09531 2.50069 7.15867C2.52694 7.22204 2.56541 7.27961 2.61391 7.32811L4.45677 9.17097C4.50519 9.21961 4.56274 9.2582 4.62612 9.28453C4.6895 9.31086 4.75745 9.32442 4.82608 9.32442C4.89471 9.32442 4.96266 9.31086 5.02604 9.28453C5.08942 9.2582 5.14697 9.21961 5.19539 9.17097L8.88111 5.48484C8.92974 5.43642 8.96834 5.37887 8.99467 5.31549C9.021 5.25212 9.03456 5.18416 9.03456 5.11553C9.03456 5.0469 9.021 4.97895 8.99467 4.91557C8.96834 4.8522 8.92974 4.79465 8.88111 4.74622Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div *ngIf=\"viewEdit && originalValue !== value\" (mouseenter)=\"isDiscardHovered = true\" (mouseleave)=\"isDiscardHovered = false\"\n style=\" display: flex; align-items: center;\">\n <svg *ngIf=\"!isDiscardHovered\" width=\"16\" height=\"16\" viewBox=\"0 0 12 12\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.00883L5.94 5.12438L4.82445 4.00883C4.57861 3.76299 4.18191 3.76299 3.93607 4.00883C3.69023 4.25467 3.69023 4.65137 3.93607 4.89721L5.05162 6.01276L3.93607 7.12831C3.69023 7.37415 3.69023 7.77085 3.93607 8.01669C4.18191 8.26253 4.57861 8.26253 4.82445 8.01669L5.94 6.90114L7.05555 8.01669C7.30139 8.26253 7.69809 8.26253 7.94393 8.01669C8.18977 7.77085 8.18977 7.37415 7.94393 7.12831L6.82838 6.01276L7.94393 4.89721C8.18977 4.65137 8.18977 4.25467 7.94393 4.00883C7.69809 3.77285 7.30021 3.77285 7.05555 4.00883ZM5.94 0.0820312C2.70017 0.0820312 0.0808594 2.70134 0.0808594 5.94118C0.0808594 9.18101 2.70017 11.8003 5.94 11.8003C9.17983 11.8003 11.7991 9.18101 11.7991 5.94118C11.7991 2.70134 9.17983 0.0820312 5.94 0.0820312ZM5.94 10.6367C3.35426 10.6367 1.24422 8.52667 1.24422 5.94118C1.24422 3.35553 3.35426 1.24549 5.94 1.24549C8.52558 1.24549 10.6356 3.35553 10.6356 5.94118C10.6356 8.52667 8.52558 10.6367 5.94 10.6367Z\"\n fill=\"#B0ADAB\" />\n </svg>\n\n <svg *ngIf=\"isDiscardHovered\" (click)=\"discardChanges()\" width=\"16\" height=\"16\" viewBox=\"0 0 12 13\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.05555 4.97471L5.94 6.09026L4.82445 4.97471C4.57861 4.72887 4.18191 4.72887 3.93607 4.97471C3.69023 5.22055 3.69023 5.61725 3.93607 5.86309L5.05162 6.97864L3.93607 8.09419C3.69023 8.34003 3.69023 8.73673 3.93607 8.98257C4.18191 9.22841 4.57861 9.22841 4.82445 8.98257L5.94 7.86702L7.05555 8.98257C7.30139 9.22841 7.69809 9.22841 7.94393 8.98257C8.18977 8.73673 8.18977 8.34003 7.94393 8.09419L6.82838 6.97864L7.94393 5.86309C8.18977 5.61725 8.18977 5.22055 7.94393 4.97471C7.69809 4.73873 7.30021 4.73873 7.05555 4.97471ZM5.94 1.06062C2.70017 1.06062 0.0808594 3.67993 0.0808594 6.91977C0.0808594 10.1596 2.70017 12.7789 5.94 12.7789C9.17983 12.7789 11.7991 10.1596 11.7991 6.91977C11.7991 3.67993 9.17983 1.06062 5.94 1.06062ZM5.94 11.6153C3.35426 11.6153 1.24422 9.50525 1.24422 6.91977C1.24422 4.33412 3.35426 2.22408 5.94 2.22408C8.52558 2.22408 10.6356 4.33412 10.6356 6.91977C10.6356 9.50525 8.52558 11.6153 5.94 11.6153Z\"\n fill=\"#FF3636\" />\n </svg>\n </div>\n </div>\n </div>\n <div *ngIf=\"type !== 'label' && type !== 'checkbox' && (type === 'richtext' || type === 'textarea')\" style=\"display: flex;\">\n <div class=\"input-container\"\n [style.margin-top]=\"showLabel && label ? '' : from === 'nxtTable' || from === 'normalDropDown' ? '' : '21px !important'\"\n [style.border-radius]=\"mode !== 'edit' && from === 'nxtTable' ? 'none': ''\"\n [style.padding-left]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.padding-right]=\"mode !== 'edit' && from === 'nxtTable' ? '0px' : ''\"\n [style.backgroundColor]=\"mode === 'edit' ? from === 'nxtTable' ? '' : inputBgColor : ''\"\n [class.invalid]=\"control.invalid && control.touched\"\n [style.border]=\"mode === 'edit' ? from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder === 'none' ? ('1px solid ' + inputBgColor) : inputBorder : 'none'\">\n <!-- SKS14JUN25 Dynamically load Quill editor toolbar -->\n <quill-editor *ngIf=\"mode === 'edit' && type === 'richtext'\" [(ngModel)]=\"value\" (ngModelChange)=\"onInputChange($event)\" [placeholder]=\"placeholder\"\n [readOnly]=\"mode !== 'edit' || question.isReadOnly\"\n (focusout)=\"onEditorFocusOut()\" [class.error]=\"control.invalid && (control.touched || control.dirty)\"\n [modules]=\"getQuillModules(question.id)\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"width: 100%;\n border-radius: 5px;\n border: none;\n font-size: 14px;\">\n </quill-editor>\n <!-- View mode -->\n <div *ngIf=\"mode !== 'edit' && type === 'richtext'\" class=\"quill-view-content\" [innerHTML]=\"value\"\n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"width: 100%;\n border-radius: 5px;\n border: none;\n font-size: 14px;\">\n </div>\n <textarea *ngIf=\"type === 'textarea'\" [id]=\"inputId\" [rows]=\"from === 'nxtTable' ? 1 : rows\"\n [attr.placeholder]=\"mode !== 'edit' ? '' : placeholder\" [ngClass]=\"'custom-input'\"\n [ngClass]=\"{ 'hyperlink-input': hyperLink,'from-nxt-table': from === 'nxtTable'}\" [formControl]=\"control\"\n [style.backgroundColor]=\"mode !== 'edit' ? '' : from === 'nxtTable' ? '' : inputBgColor\"\n [style.color]=\"mode !== 'edit' ? '' : inputTextColor\" [style.border]=\"mode !== 'edit' ? 'none' : from === 'nxtTable' ? '1px solid #d2d2d2' : inputBorder\"\n [style.height]=\"inputHeight\" [value]=\"value\" (input)=\" onInputChange($event)\"\n [style.font-size]=\"inputValueSize\" (blur)=\" blurEmit()\" (focusin)=\"focusinEmit($event)\"\n [readOnly]=\"mode !== 'edit' || question.isReadOnly\" [ngStyle]=\"{\n '--placeholder-font': mode === 'edit' ? placeholderFont || labelFont : '',\n '--placeholder-color': mode === 'edit' ? placeholderColor || '#9a9a9a' : '',\n '--placeholder-size': mode === 'edit' ? placeholderSize || inputValueSize : '',\n '--placeholder-weight': mode === 'edit' ? placeholderWeight || labelWeight : ''\n }\" \n [style.padding]=\"from === 'nxtTable' ? '0px' : '10px 10px 10px 5px'\"\n style=\"\n width: 100%;\n border-radius: 5px;\n border: none !important;\n font-size: 14px;\"\n >\n </textarea>\n <svg *ngIf=\"mode !== 'edit' && !viewEdit && from !== 'nxtTable' && (type === 'richtext' || type === 'textarea') && !question.isReadOnly\"\n class=\"edit-icon\" (click)=\"viewEditClick(question)\" width=\"13\" height=\"14\" viewBox=\"0 0 13 14\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M1.99987 9.0017L4.39602 11.3979C4.50371 11.5055 4.66525 11.5055 4.77294 11.3979L10.7499 5.39401C10.8576 5.28631 10.8576 5.12477 10.7499 5.01708L8.38064 2.64785C8.27294 2.54016 8.11141 2.54016 8.00371 2.64785L1.99987 8.6517C1.89217 8.75939 1.89217 8.92093 1.99987 9.0017ZM9.1614 1.54401C9.05371 1.6517 9.05371 1.81324 9.1614 1.92093L11.5306 4.29016C11.6383 4.39785 11.7999 4.39785 11.9076 4.29016L12.5806 3.61708C13.0114 3.21324 13.0114 2.56708 12.5806 2.13631L11.3153 0.870928C10.8845 0.440159 10.2114 0.440159 9.78063 0.870928L9.1614 1.54401ZM0.00755862 12.9863C-0.0462875 13.2555 0.19602 13.4979 0.465251 13.444L3.39987 12.744C3.50756 12.7171 3.58833 12.6632 3.64217 12.6094L3.69602 12.5555C3.74987 12.5017 3.77679 12.3132 3.6691 12.2055L1.24602 9.78247C1.13833 9.67478 0.949866 9.7017 0.89602 9.75554L0.842174 9.80939C0.761405 9.89016 0.734482 9.97093 0.707559 10.0517L0.00755862 12.9863Z\"\n fill=\"#B0ADAB\" />\n </svg>\n </div>\n </div>\n <!-- SKS23APR25 Use control.invalid to show error on submit click -->\n <div *ngIf=\"type != 'checkbox' && type !== 'label' && control.invalid && (control.touched || control.dirty)\" style=\"height: 20px;\">\n <div class=\"error-message\">\n {{ getErrorMessage() }}\n </div>\n </div>\n </div>\n</div>", styles: ["label{font-size:14px;margin-bottom:10px;color:color-mix(in srgb,black,rgb(0,0,0) 80%)}.toggle-icon{width:20px;height:20px;cursor:pointer;fill:#666}.error-message{color:red;font-size:12px}input[type=text].custom-input,input[type=password].custom-input,input[type=number].custom-input,input[type=email].custom-input,input[type=tel].custom-input,input[type=list].custom-input,input[type=dropdown].custom-input,input[type=location].custom-input{width:100%;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px}input.nxt-custom-input{width:100%!important;padding:10px 10px 10px 5px;border-radius:5px;border:none;font-size:14px}.custom-input:-webkit-autofill,.custom-input:-webkit-autofill:hover,.custom-input:-webkit-autofill:focus,.custom-input:-webkit-autofill:active,.nxt-custom-input:-webkit-autofill,.nxt-custom-input:-webkit-autofill:hover,.nxt-custom-input:-webkit-autofill:focus,.nxt-custom-input:-webkit-autofill:active{transition:background-color 5000s ease-in-out 0s!important;-webkit-text-fill-color:inherit!important}.phone-input-container{display:flex;align-items:center;position:relative}.country-selector{display:flex;align-items:center;cursor:pointer;padding-right:12px;border-right:#ccc;margin-right:12px}.flag{margin-right:8px;font-size:20px}.dial-code{margin-right:8px;font-weight:500}.country-dropdown{position:absolute;top:100%;left:0;width:300px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0000001a;z-index:1000;margin-top:4px}.search-box{padding:8px;border-bottom:1px solid #ccc}.search-box input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px}.country-list{max-height:200px;overflow-y:auto}.country-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer}.country-item:hover{background-color:color-mix(in srgb,#fff,rgba(0,0,0,0) 30%)}.country-item .name{flex:1;margin:0 12px}.fcOtp{width:40px;height:40px;text-align:center;font-size:18px;border:1px solid #ccc;border-radius:5px;margin:5px;outline:none;transition:border-color .2s ease-in-out}input:focus{outline:none;border-color:transparent;box-shadow:none}.input-container{display:flex;align-items:center;width:100%;border-radius:5px;border:1px solid #ccc;padding-left:5px;padding-right:5px}.icon-container{right:15px;padding-right:5px;pointer-events:auto;width:22px;height:22px;display:flex;align-items:center;justify-content:center}.input-container.invalid{border:1px solid #DC3545!important;border-radius:5px}.checkbox-padding{margin-top:20px!important;padding:13px!important;width:100%!important;border:none!important}.view-mode{font-size:14px;color:#333}@media print{.view-mode{font-size:12pt;color:#000}}input::placeholder{font-family:var(--placeholder-font);color:var(--placeholder-color);font-size:var(--placeholder-size);font-weight:var(--placeholder-weight)}.dotted-loader{position:relative;width:10px;height:10px}.dotted-loader .dot{--i: 0;position:absolute;top:50%;left:50%;width:3px;height:3px;margin:-2px 0 0 -2px;border-radius:50%;background-color:#696969;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg));animation:spinDot 1s linear infinite;animation-delay:calc(var(--i) * .1s)}@keyframes spinDot{0%{opacity:.3;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(.9)}50%{opacity:1;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(1.3)}to{opacity:.3;transform:rotate(calc(var(--i) * 60deg)) translate(8px) rotate(calc(var(--i) * -60deg)) scale(.9)}}input:disabled{cursor:default;background-color:light-dark(rgba(239,239,239,0),rgba(59,59,59,0))!important;color:light-dark(rgb(84,84,84),rgb(170,170,170))!important}textarea:disabled{cursor:default;background-color:light-dark(rgba(239,239,239,0),rgba(59,59,59,0))!important;color:light-dark(rgb(84,84,84),rgb(170,170,170))!important}.quill-view-content{cursor:default;background-color:light-dark(rgba(239,239,239,0),rgba(59,59,59,0))!important;color:light-dark(rgb(84,84,84),rgb(170,170,170))!important}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}quill-editor{width:100%}.quill-view-content{border:none;padding:0;font-size:14px;line-height:1.6;color:#333;overflow:hidden}.quill-view-content *{max-width:100%;box-sizing:border-box;word-wrap:break-word}.edit-icon{display:none;cursor:pointer}.hover-wrapper:hover .edit-icon{display:block}input:disabled,textarea:disabled,.quill-view-content{color:#999!important}input:disabled.from-nxt-table,textarea:disabled.from-nxt-table,.quill-view-content.from-nxt-table{color:#2c3137!important}.owl-dt-container-disabled,.owl-dt-trigger-disabled{opacity:unset!important}.input-wrapper{position:relative}.hyperlink-input{color:inherit;text-decoration:none;cursor:default;width:200px;border:1px solid #888}.hyperlink-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;z-index:2}.input-wrapper:hover .hyperlink-input{color:#00f!important;text-decoration:underline!important;cursor:pointer}.input-container{pointer-events:auto!important;position:relative;z-index:1}.custom-input,.nxt-custom-input{pointer-events:auto!important}\n"] }]
2837
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ElementRef }, { type: i1.ChangeService }, { type: i2.DataService }], propDecorators: { label: [{
2838
- type: Input
2839
- }], labelFont: [{
2840
- type: Input
2841
- }], labelWeight: [{
2842
- type: Input
2843
- }], inputWeight: [{
2844
- type: Input
2845
- }], labelSize: [{
2846
- type: Input
2847
- }], inputValueSize: [{
2848
- type: Input
2849
- }], labelColor: [{
2850
- type: Input
2851
- }], showLabel: [{
2852
- type: Input
2853
- }], svgHeight: [{
2854
- type: Input
2855
- }], svgWidth: [{
2856
- type: Input
2857
- }], type: [{
2858
- type: Input
2859
- }], inputIconRightSrc: [{
2860
- type: Input
2861
- }], inputIconLeftSrc: [{
2862
- type: Input
2863
- }], required: [{
2864
- type: Input
2865
- }], minLength: [{
2866
- type: Input
2867
- }], pattern: [{
2868
- type: Input
2869
- }], errorMessages: [{
2870
- type: Input
2871
- }], maxLength: [{
2872
- type: Input
2873
- }], placeholder: [{
2874
- type: Input
2875
- }], inputBgColor: [{
2876
- type: Input
2877
- }], inputBorder: [{
2878
- type: Input
2879
- }], placeholderColor: [{
2880
- type: Input
2881
- }], placeholderFont: [{
2882
- type: Input
2883
- }], placeholderWeight: [{
2884
- type: Input
2885
- }], placeholderSize: [{
2886
- type: Input
2887
- }], inputTextColor: [{
2888
- type: Input
2889
- }], inputHeight: [{
2890
- type: Input
2891
- }], inputWidth: [{
2892
- type: Input
2893
- }], inputId: [{
2894
- type: Input
2895
- }], inputBorderSize: [{
2896
- type: Input
2897
- }], inputConfig: [{
2898
- type: Input
2899
- }], confPassVal: [{
2900
- type: Input
2901
- }], confPass: [{
2902
- type: Input
2903
- }], mode: [{
2904
- type: Input
2905
- }], value: [{
2906
- type: Input
2907
- }], question: [{
2908
- type: Input
2909
- }], showSuggestion: [{
2910
- type: Input
2911
- }], ariaOwns: [{
2912
- type: Input
2913
- }], ariaHasPopup: [{
2914
- type: Input
2915
- }], isLoading: [{
2916
- type: Input
2917
- }], options: [{
2918
- type: Input
2919
- }], minDate: [{
2920
- type: Input
2921
- }], maxDate: [{
2922
- type: Input
2923
- }], rows: [{
2924
- type: Input
2925
- }], from: [{
2926
- type: Input
2927
- }], hyperLink: [{
2928
- type: Input
2929
- }], size: [{
2930
- type: Input
2931
- }], valueChange: [{
2932
- type: Output
2933
- }], inputValue: [{
2934
- type: Output
2935
- }], onBlur: [{
2936
- type: Output
2937
- }], onFocus: [{
2938
- type: Output
2939
- }], toggleEmit: [{
2940
- type: Output
2941
- }], nativeInputRef: [{
2942
- type: Output
2943
- }], removeValueEmit: [{
2944
- type: Output
2945
- }], hyperlinkEmit: [{
2946
- type: Output
2947
- }], inputEls: [{
2948
- type: ViewChildren,
2949
- args: ['inputEl']
2950
- }], dateTimePicker: [{
2951
- type: ViewChildren,
2952
- args: ['dt']
2953
- }], datePicker: [{
2954
- type: ViewChildren,
2955
- args: ['dt1']
2956
- }], timePicker: [{
2957
- type: ViewChildren,
2958
- args: ['dt2']
2959
- }], dtPicker: [{
2960
- type: ViewChild,
2961
- args: ['dt']
2962
- }], dPicker: [{
2963
- type: ViewChild,
2964
- args: ['dt2']
2965
- }], inputRef: [{
2966
- type: ViewChild,
2967
- args: ['inputRef', { static: false }]
2968
- }], closeDropdown: [{
2969
- type: HostListener,
2970
- args: ['document:click', ['$event']]
2971
- }] } });
2972
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnh0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvbnh0LWlucHV0L254dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBQ1osT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBd0MsWUFBWSxFQUFFLFNBQVMsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDbk4sT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQWlDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhMLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxSCxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0sV0FBVyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sWUFBWSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBSS9DLGtHQUFrRztBQUNsRyxNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjO0lBQy9GLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxh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QUFJO2dCQUNHLFVBQVU7c0JBQTlCLFlBQVk7dUJBQUMsS0FBSztnQkFDRSxVQUFVO3NCQUE5QixZQUFZO3VCQUFDLEtBQUs7Z0JBQ0YsUUFBUTtzQkFBeEIsU0FBUzt1QkFBQyxJQUFJO2dCQUNHLE9BQU87c0JBQXhCLFNBQVM7dUJBQUMsS0FBSztnQkFDMEIsUUFBUTtzQkFBakQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQWswRXhDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vU0tTMzFKQU4yNVxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEVsZW1lbnRSZWYsIFNpbXBsZUNoYW5nZXMsIEhvc3RMaXN0ZW5lciwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVDb21wb25lbnQsIE93bERhdGVUaW1lTW9kdWxlLCBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BkYW5pZWxtb25jYWRhL2FuZ3VsYXItZGF0ZXRpbWUtcGlja2VyJztcbmltcG9ydCB7IFF1aWxsRWRpdG9yQ29tcG9uZW50LCBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xuaW1wb3J0IFF1aWxsIGZyb20gJ3F1aWxsJztcbmltcG9ydCB7IE1lbnRpb24gfSBmcm9tICdxdWlsbC1tZW50aW9uJztcbmltcG9ydCBJbWFnZVJlc2l6b3IgZnJvbSAncXVpbGwtaW1hZ2UtcmVzaXpvcic7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlL2NoYW5nZS5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS9kYXRhLnNlcnZpY2UnO1xuXG4vLyBTS1MxMUpVTjI1IEFuIGFycmF5IGZvbnRGYW1pbHlBcnIgaXMgY3JlYXRlZCBjb250YWluaW5nIGEgbGlzdCBvZiBmb250IGZhbWlseSBuYW1lcyBhcyBzdHJpbmdzLlxuY29uc3QgZm9udEZhbWlseUFyciA9IFtcIlJvYm90b1wiLCBcIlJvYm90byBDb25kZW5zZWRcIiwgXCJBcmlhbFwiLCBcIlZlcmRhbmFcIiwgXCJUYWhvbWFcIiwgXCJUcmVidWNoZXQgTVNcIixcbiAgXCJHZW9yZ2lhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiQ291cmllciBOZXdcIiwgXCJQYWxhdGlubyBMaW5vdHlwZVwiLFxuICBcIlNlZ29lIFVJXCIsIFwiQ2FsaWJyaVwiLCBcIkNhbGlicmkgTGlnaHRcIiwgXCJTYW5zLVNlcmlmXCIsIFwiSGVsdmV0aWNhXCIsXG4gIFwiSW1wYWN0XCIsIFwiR2FyYW1vbmRcIiwgXCJDb21pYyBTYW5zIE1TXCIsIFwiTHVjaWRhIENvbnNvbGVcIiwgXCJGcmFua2xpbiBHb3RoaWMgTWVkaXVtXCJdO1xuLy8gU0tTMTFKVU4yNSBSZWdpc3RlciBRdWlsbCBtb2R1bGVzXG5RdWlsbC5yZWdpc3RlcignbW9kdWxlcy9tZW50aW9uJywgTWVudGlvbik7XG5JbWFnZVJlc2l6b3IuUXVpbGwgPSBRdWlsbDtcblF1aWxsLnJlZ2lzdGVyKCdtb2R1bGVzL2ltYWdlUmVzaXpvcicsIEltYWdlUmVzaXpvcik7XG5cbi8vIFNLUzExSlVOMjUgVGhlIFF1aWxsIGZvbnQgc3R5bGUgYXR0cmlidXRvciBpcyBpbXBvcnRlZCBhbmQgaXQgaXMgcmVnaXN0ZXJlZCB3aXRoIFF1aWxcbmxldCBmb250czogYW55ID0gUXVpbGwuaW1wb3J0KFwiYXR0cmlidXRvcnMvc3R5bGUvZm9udFwiKTtcbmZvbnRzLndoaXRlbGlzdCA9IGZvbnRGYW1pbHlBcnI7XG5RdWlsbC5yZWdpc3Rlcihmb250cywgdHJ1ZSk7XG5jb25zdCBpY29ucyA9IFF1aWxsLmltcG9ydCgndWkvaWNvbnMnKTtcbmljb25zWydzYXZlJ10gPSBgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk01Ljk1IDEyLjgwMDRDOS4yMzYwOSAxMi44MDA0IDExLjkgMTAuMTM2NSAxMS45IDYuODUwMzlDMTEuOSAzLjU2NDMgOS4yMzYwOSAwLjkwMDM5MSA1Ljk1IDAuOTAwMzkxQzIuNjYzOTEgMC45MDAzOTEgMCAzLjU2NDMgMCA2Ljg1MDM5QzAgMTAuMTM2NSAyLjY2MzkxIDEyLjgwMDQgNS45NSAxMi44MDA0WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjMjU5NTY2XCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNOC44ODExMSA0Ljc0NjIyQzguODMyNjkgNC42OTc1OSA4Ljc3NTEzIDQuNjU4OTkgOC43MTE3NiA0LjYzMjY2QzguNjQ4MzggNC42MDYzMyA4LjU4MDQzIDQuNTkyNzcgOC41MTE4IDQuNTkyNzdDOC40NDMxNyA0LjU5Mjc3IDguMzc1MjEgNC42MDYzMyA4LjMxMTg0IDQuNjMyNjZDOC4yNDg0NiA0LjY1ODk5IDguMTkwOTEgNC42OTc1OSA4LjE0MjQ5IDQuNzQ2MjJMNC44MjY5IDguMDYzODZMMy4zNTI1MyA2LjU4OTQ5QzMuMzA0MDMgNi41NDA5OSAzLjI0NjQ2IDYuNTAyNTIgMy4xODMwOSA2LjQ3NjI3QzMuMTE5NzIgNi40NTAwMyAzLjA1MTgxIDYuNDM2NTIgMi45ODMyMiA2LjQzNjUyQzIuOTE0NjMgNi40MzY1MiAyLjg0NjcyIDYuNDUwMDMgMi43ODMzNSA2LjQ3NjI3QzIuNzE5OTkgNi41MDI1MiAyLjY2MjQxIDYuNTQwOTkgMi42MTM5MSA2LjU4OTQ5QzIuNTY1NDEgNi42Mzc5OSAyLjUyNjk0IDYuNjk1NTcgMi41MDA2OSA2Ljc1ODkzQzIuNDc0NDUgNi44MjIzIDIuNDYwOTQgNi44OTAyMiAyLjQ2MDk0IDYuOTU4OEMyLjQ2MDk0IDcuMDI3MzkgMi40NzQ0NSA3LjA5NTMxIDIuNTAwNjkgNy4xNTg2N0MyLjUyNjk0IDcuMjIyMDQgMi41NjU0MSA3LjI3OTYxIDIuNjEzOTEgNy4zMjgxMUw0LjQ1Njc3IDkuMTcwOTdDNC41MDUxOSA5LjIxOTYxIDQuNTYyNzQgOS4yNTgyIDQuNjI2MTIgOS4yODQ1M0M0LjY4OTUgOS4zMTA4NiA0Ljc1NzQ1IDkuMzI0NDIgNC44MjYwOCA5LjMyNDQyQzQuODk0NzEgOS4zMjQ0MiA0Ljk2MjY2IDkuMzEwODYgNS4wMjYwNCA5LjI4NDUzQzUuMDg5NDIgOS4yNTgyIDUuMTQ2OTcgOS4yMTk2MSA1LjE5NTM5IDkuMTcwOTdMOC44ODExMSA1LjQ4NDg0QzguOTI5NzQgNS40MzY0MiA4Ljk2ODM0IDUuMzc4ODcgOC45OTQ2NyA1LjMxNTQ5QzkuMDIxIDUuMjUyMTIgOS4wMzQ1NiA1LjE4NDE2IDkuMDM0NTYgNS4xMTU1M0M5LjAzNDU2IDUuMDQ2OSA5LjAyMSA0Ljk3ODk1IDguOTk0NjcgNC45MTU1N0M4Ljk2ODM0IDQuODUyMiA4LjkyOTc0IDQuNzk0NjUgOC44ODExMSA0Ljc0NjIyWlwiXG4gICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgICAgPC9zdmc+YDtcbmljb25zWydkaXNjYXJkJ10gPSBgPHN2ZyAqbmdJZj1cImlzRGlzY2FyZEhvdmVyZWRcIiAoY2xpY2spPVwiZGlzY2FyZENoYW5nZXMoKVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBkPVwiTTcuMDU1NTUgNC45NzQ3MUw1Ljk0IDYuMDkwMjZMNC44MjQ0NSA0Ljk3NDcxQzQuNTc4NjEgNC43Mjg4NyA0LjE4MTkxIDQuNzI4ODcgMy45MzYwNyA0Ljk3NDcxQzMuNjkwMjMgNS4yMjA1NSAzLjY5MDIzIDUuNjE3MjUgMy45MzYwNyA1Ljg2MzA5TDUuMDUxNjIgNi45Nzg2NEwzLjkzNjA3IDguMDk0MTlDMy42OTAyMyA4LjM0MDAzIDMuNjkwMjMgOC43MzY3MyAzLjkzNjA3IDguOTgyNTdDNC4xODE5MSA5LjIyODQxIDQuNTc4NjEgOS4yMjg0MSA0LjgyNDQ1IDguOTgyNTdMNS45NCA3Ljg2NzAyTDcuMDU1NTUgOC45ODI1N0M3LjMwMTM5IDkuMjI4NDEgNy42OTgwOSA5LjIyODQxIDcuOTQzOTMgOC45ODI1N0M4LjE4OTc3IDguNzM2NzMgOC4xODk3NyA4LjM0MDAzIDcuOTQzOTMgOC4wOTQxOUw2LjgyODM4IDYuOTc4NjRMNy45NDM5MyA1Ljg2MzA5QzguMTg5NzcgNS42MTcyNSA4LjE4OTc3IDUuMjIwNTUgNy45NDM5MyA0Ljk3NDcxQzcuNjk4MDkgNC43Mzg3MyA3LjMwMDIxIDQuNzM4NzMgNy4wNTU1NSA0Ljk3NDcxWk01Ljk0IDEuMDYwNjJDMi43MDAxNyAxLjA2MDYyIDAuMDgwODU5NCAzLjY3OTkzIDAuMDgwODU5NCA2LjkxOTc3QzAuMDgwODU5NCAxMC4xNTk2IDIuNzAwMTcgMTIuNzc4OSA1Ljk0IDEyLjc3ODlDOS4xNzk4MyAxMi43Nzg5IDExLjc5OTEgMTAuMTU5NiAxMS43OTkxIDYuOTE5NzdDMTEuNzk5MSAzLjY3OTkzIDkuMTc5ODMgMS4wNjA2MiA1Ljk0IDEuMDYwNjJaTTUuOTQgMTEuNjE1M0MzLjM1NDI2IDExLjYxNTMgMS4yNDQyMiA5LjUwNTI1IDEuMjQ0MjIgNi45MTk3N0MxLjI0NDIyIDQuMzM0MTIgMy4zNTQyNiAyLjIyNDA4IDUuOTQgMi4yMjQwOEM4LjUyNTU4IDIuMjI0MDggMTAuNjM1NiA0LjMzNDEyIDEwLjYzNTYgNi45MTk3N0MxMC42MzU2IDkuNTA1MjUgOC41MjU1OCAxMS42MTUzIDUuOTQgMTEuNjE1M1pcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIiNGRjM2MzZcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPmA7XG5cbmZ1bmN0aW9uIGdldEZvcm1BcnJheShzaXplOiBudW1iZXIpOiBGb3JtQXJyYXkge1xuICBjb25zdCBhcnIgPSBbXTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgIGFyci5wdXNoKG5ldyBGb3JtQ29udHJvbCgnJykpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBGb3JtQXJyYXkoYXJyKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE93bERhdGVUaW1lTW9kdWxlLCBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSwgUXVpbGxFZGl0b3JDb21wb25lbnQsIEZvcm1zTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdueHQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnh0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbnh0LWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOeHRJbnB1dCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE54dElucHV0KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOeHRJbnB1dCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAvLyBTS1MzMEpBTjI1XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IGxhYmVsXG4gIEBJbnB1dCgpIGxhYmVsRm9udDogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBsYWJlbCBmb250XG4gIEBJbnB1dCgpIGxhYmVsV2VpZ2h0OiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IGxhYmVsIFdlaWdodFxuICBASW5wdXQoKSBpbnB1dFdlaWdodDogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBXZWlnaHRcbiAgQElucHV0KCkgbGFiZWxTaXplOiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IGxhYmVsIFNpemVcbiAgQElucHV0KCkgaW5wdXRWYWx1ZVNpemU6IHN0cmluZyA9ICcnOyAvL0lucHV0IHZhbHVlIFNpemVcbiAgQElucHV0KCkgbGFiZWxDb2xvcjogc3RyaW5nID0gJyc7ICAvLyBJbnB1dCBsYWJlbCBDb2xvclxuICBASW5wdXQoKSBzaG93TGFiZWw6IHN0cmluZyA9ICcnOyAgLy8gSW5wdXQgbGFiZWwgQ29sb3JcbiAgQElucHV0KCkgc3ZnSGVpZ2h0OiBzdHJpbmcgPSAnJzsgIC8vIElucHV0IHN2ZyBoZWlnaHRcbiAgQElucHV0KCkgc3ZnV2lkdGg6IHN0cmluZyA9ICcnOyAgLy8gSW5wdXQgc3ZnIHdlaWdodFxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgPSAndGV4dCc7ICAvLyBJbnB1dCB0eXBlICh0ZXh0LCBlbWFpbCwgcGFzc3dvcmQpXG4gIEBJbnB1dCgpIGlucHV0SWNvblJpZ2h0U3JjOiBzdHJpbmcgPSAnJzsgIC8vIFBhdGggdG8gU1ZHIGljb25cbiAgQElucHV0KCkgaW5wdXRJY29uTGVmdFNyYzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7ICAvLyBSZXF1aXJlZCB2YWxpZGF0aW9uXG4gIEBJbnB1dCgpIG1pbkxlbmd0aD86IG51bWJlcjsgIC8vIE1pbiBsZW5ndGggdmFsaWRhdGlvblxuICBASW5wdXQoKSBwYXR0ZXJuPzogYW55OyAgLy8gUGF0dGVybiB2YWxpZGF0aW9uIChlLmcuLCBlbWFpbCByZWdleClcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9OyAgIC8vIEN1c3RvbSBlcnJvciBtZXNzYWdlc1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciA9IDA7IC8vIE1heGltdW0gbGVuZ3RoIHZhbGlkYXRpb25cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpbnB1dEJnQ29sb3I6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGlucHV0LlxuICBASW5wdXQoKSBpbnB1dEJvcmRlcjogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSBib3JkZXIgc3R5bGUgZm9yIHRoZSBpbnB1dC5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXJDb2xvcjogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSB0ZXh0IGNvbG9yIGZvciB0aGUgaW5wdXQuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyRm9udDogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSBwbGFjZWhvbGRlciBmb250XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyV2VpZ2h0OiBzdHJpbmcgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gc2V0IGEgY3VzdG9tXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyU2l6ZTogc3RyaW5nID0gJyc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCBhIGN1c3RvbSBzaXplXG4gIEBJbnB1dCgpIGlucHV0VGV4dENvbG9yOiBzdHJpbmcgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gc2V0IGEgY3VzdG9tIHRleHQgY29sb3IgZm9yIHRoZSBpbnB1dCB2YWx1ZS5cbiAgQElucHV0KCkgaW5wdXRIZWlnaHQ6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gaGVpZ2h0IGZvciB0aGUgaW5wdXQuXG4gIEBJbnB1dCgpIGlucHV0V2lkdGg6IHN0cmluZyA9ICcnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gd2lkdGggZm9yIHRoZSBJbnB1dC5cbiAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nID0gJ2RlZmF1bHQnOyAvLyBVc2UgdGhpcyBpbnB1dCB0byBzZXQgYSBjdXN0b20gSUQgZm9yIHRoZSBpbnB1dC4gRGVmYXVsdCBpcyAnZGVmYXVsdCcuXG4gIEBJbnB1dCgpIGlucHV0Qm9yZGVyU2l6ZTogc3RyaW5nID0gJzBweCc7IC8vIFVzZSB0aGlzIGlucHV0IHRvIHNldCB0aGUgYm9yZGVyIHNpemUgb2YgdGhlIGlucHV0LiBEZWZhdWx0IGlzICcwcHgnIGZvciBubyBib3JkZXIuXG4gIEBJbnB1dCgpIGlucHV0Q29uZmlnOiBhbnkgPSAnJzsgLy8gVXNlIHRoaXMgaW5wdXQgdG8gcGFzcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgaW5wdXQgKGUuZy4sIHN0eWxlcywgYWN0aW9ucykuXG4gIEBJbnB1dCgpIGNvbmZQYXNzVmFsOiBhbnkgPSAnJzsgLy8gUGFzc3dvcmQgdmFsdWUgdG8gY2hlY2sgaWYgdGhlIGN1cnJlbnQgZmllbGQgbWF0Y2hlcyB0aGUgY29uZmlybWVkIHBhc3N3b3JkXG4gIEBJbnB1dCgpIGNvbmZQYXNzOiBib29sZWFuID0gZmFsc2U7IC8vIFNldCB0byB0cnVlIHRvIGVuYWJsZSBwYXNzd29yZCBjb25maXJtYXRpb24gdmFsaWRhdGlvblxuICBASW5wdXQoKSBtb2RlOiAndmlldycgfCAnZWRpdCcgfCAncHJpbnQnID0gJ2VkaXQnOyAvLyBOZXcgbW9kZSBpbnB1dFxuICBASW5wdXQoKSB2YWx1ZTogYW55IDsgLy8gaW5wdXQgdmFsdWVcbiAgQElucHV0KCkgcXVlc3Rpb246IGFueSA9IHt9XG4gIEBJbnB1dCgpIHNob3dTdWdnZXN0aW9uOiBib29sZWFuID0gZmFsc2U7IC8vIHNob3dTdWdnZXN0aW9uIHRoZSBpbnB1dFxuICBASW5wdXQoKSBhcmlhT3ducz86IHN0cmluZztcbiAgQElucHV0KCkgYXJpYUhhc1BvcHVwPzogc3RyaW5nO1xuICBASW5wdXQoKSBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTsgLy8gU2V0IHRvIHRydWUgdG8gc2hvdyBhIGxvYWRpbmcgYW5pbWF0aW9uXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueVtdID0gW107IC8vIEZvciByYWRpbyBidXR0b25zXG4gIEBJbnB1dCgpIG1pbkRhdGU6IGFueTsgLy8gRm9yIGRhdGUvZGF0ZXRpbWUgcGlja2VyXG4gIEBJbnB1dCgpIG1heERhdGU6IGFueTsgLy8gRm9yIGRhdGUvZGF0ZXRpbWUgcGlja2VyXG4gIEBJbnB1dCgpIHJvd3M6IG51bWJlciA9IDM7IC8vIEZvciB0ZXh0YXJlYVxuICBASW5wdXQoKSBmcm9tOiBhbnk7XG4gIEBJbnB1dCgpIGh5cGVyTGluazogYW55O1xuXG4gIHJhd0lucHV0VmFsOiBhbnk7XG4gIEBJbnB1dCgpIC8vb3RwIGJveCBzaXplXG4gIHNldCBzaXplKHNpemU6IG51bWJlcikge1xuICAgIHRoaXMuaW5wdXRzID0gZ2V0Rm9ybUFycmF5KHNpemUpO1xuICAgIHRoaXMuI3NpemUgPSBzaXplO1xuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpOyAgLy8gRW1pdHMgaW5wdXQgdmFsdWUgY2hhbmdlc1xuICBAT3V0cHV0KCkgaW5wdXRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyBcbiAgQE91dHB1dCgpIG9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgdG9nZ2xlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgbmF0aXZlSW5wdXRSZWYgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRSZWY+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVWYWx1ZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGh5cGVybGlua0VtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBcbiAgQFZpZXdDaGlsZHJlbignaW5wdXRFbCcpIGlucHV0RWxzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+O1xuICAvLyBEYXRlL1RpbWUgcGlja2VyIHJlZmVyZW5jZXNcbiAgQFZpZXdDaGlsZHJlbignZHQnKSBkYXRlVGltZVBpY2tlcjogYW55O1xuICBAVmlld0NoaWxkcmVuKCdkdDEnKSBkYXRlUGlja2VyOiBhbnk7XG4gIEBWaWV3Q2hpbGRyZW4oJ2R0MicpIHRpbWVQaWNrZXI6IGFueTtcbiAgQFZpZXdDaGlsZCgnZHQnKSBkdFBpY2tlcjogT3dsRGF0ZVRpbWVDb21wb25lbnQ8RGF0ZT47XG4gIEBWaWV3Q2hpbGQoJ2R0MicpIGRQaWNrZXI6IE93bERhdGVUaW1lQ29tcG9uZW50PERhdGU+O1xuICBAVmlld0NoaWxkKCdpbnB1dFJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dFJlZjogRWxlbWVudFJlZjtcblxuICAjc2l6ZSA9IDQ7XG4gICNzY2hlZHVsZWRGb2N1czogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgaW5wdXRzID0gZ2V0Rm9ybUFycmF5KHRoaXMuI3NpemUpO1xuICBjb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIGlzUGFzc3dvcmRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGNvdW50cnlDb2RlOiBzdHJpbmcgPSAnJztcbiAgLy8gU0tTMjhGRUIyNSBjb3VudHJpZXMgbGlzdFxuICBjb3VudHJpZXMgPSBbXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQWZnaGFuaXN0YW5cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4erXCIsXG4gICAgICBcImNvZGVcIjogXCJBRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5M1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5MyA3MCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCLDhWxhbmQgSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh71cIixcbiAgICAgIFwiY29kZVwiOiBcIkFYXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNThbMC05XXs2LDEyfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzU4IDE4IDEyMyA0NVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbGJhbmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HsVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQUxcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1NVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTUgNjkgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQWxnZXJpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqfCfh79cIixcbiAgICAgIFwiY29kZVwiOiBcIkRaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMTNbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjEzIDU1MSAyMzQgNTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFtZXJpY2FuIFNhbW9hXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HuFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2ODRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjg0WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2ODQgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQW5kb3JyYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh6lcIixcbiAgICAgIFwiY29kZVwiOiBcIkFEXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzZbMC05XXs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc2IDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQW5nb2xhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HtFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQU9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0NFswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDQgOTIzIDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQW5ndWlsbGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJBSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTI2NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzEyNjRbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTI2NCAyMzUgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbnRhcmN0aWNhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HtlwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY3MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY3MlswLTldezYsMTJ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NzIgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJBbnRpZ3VhIGFuZCBCYXJidWRhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HrFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQUdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzEyNjhcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxMjY4WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEyNjggMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXJnZW50aW5hXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQVJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTRbMC05XXsxMCwxMX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU0IDkgMTEgMTIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFybWVuaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6bwn4eyXCIsXG4gICAgICBcImNvZGVcIjogXCJBTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzc0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzc0WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM3NCA5NCAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkFydWJhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HvFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI5N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI5N1swLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyOTcgNTYwIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXVzdHJhbGlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4em8J+HulwiLFxuICAgICAgXCJjb2RlXCI6IFwiQVVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzYxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjFbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjEgNCAxMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXVzdHJpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh7lcIixcbiAgICAgIFwiY29kZVwiOiBcIkFUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQzWzAtOV17MTAsMTJ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0MyA2NjQgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQXplcmJhaWphblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh79cIixcbiAgICAgIFwiY29kZVwiOiBcIkFaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5OTRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OTRbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTk0IDUwIDEyMyA0NSA2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCYWhhbWFzXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HuFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQlNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzEyNDJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxMjQyWzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEyNDIgMzIzIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmFocmFpblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh61cIixcbiAgICAgIFwiY29kZVwiOiBcIkJIXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NzNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NzNbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTczIDMxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCYW5nbGFkZXNoXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HqVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQkRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzg4MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzg4MFswLTldezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODgwIDE3MTIgMzQ1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJhcmJhZG9zXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hp1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQkJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzEyNDZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxMjQ2WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEyNDYgMjUwIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmVsYXJ1c1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh75cIixcbiAgICAgIFwiY29kZVwiOiBcIkJZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzVbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc1IDI5IDEyMyA0NSA2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCZWxnaXVtXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HqlwiLFxuICAgICAgXCJjb2RlXCI6IFwiQkVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzMyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzJbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzIgNDcwIDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJlbGl6ZVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh79cIixcbiAgICAgIFwiY29kZVwiOiBcIkJaXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDFbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTAxIDYxMCAxMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJlbmluXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hr1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQkpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyOVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyOVswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjkgOTAgMTIgMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCZXJtdWRhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HslwiLFxuICAgICAgXCJjb2RlXCI6IFwiQk1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE0NDFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNDQxWzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE0NDEgMzcwIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQmh1dGFuXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HuVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQlRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3NVswLTldezcsOH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3NSAxNyAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJvbGl2aWEsIFBsdXJpbmF0aW9uYWwgU3RhdGUgb2YgYm9saXZpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7RcIixcbiAgICAgIFwiY29kZVwiOiBcIkJPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OTFbMS05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTEgMTIzNDU2NzhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis1OTEgNzAxMjM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQm9zbmlhIGFuZCBIZXJ6ZWdvdmluYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh6ZcIixcbiAgICAgIFwiY29kZVwiOiBcIkJBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszODdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszODdbMC05XXs4LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszODcgNjEgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCb3Rzd2FuYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7xcIixcbiAgICAgIFwiY29kZVwiOiBcIkJXXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjdbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjY3IDcxIDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQm91dmV0IElzbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQlZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDdcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDcgWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQ3IFhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hu1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCcmF6aWxcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6fwn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJCUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1NVswLTldezEwLDExfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTUgMTEgOTEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnlcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4e0XCIsXG4gICAgICBcImNvZGVcIjogXCJJT1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQ2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQ2WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0NiAzODAgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCcnVuZWkgRGFydXNzYWxhbVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7NcIixcbiAgICAgIFwiY29kZVwiOiBcIkJOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzNbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjczIDcxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkJ1bGdhcmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HrFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQkdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1OVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTkgODcgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQnVya2luYSBGYXNvXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+Hq1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQkZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyNlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyNlswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjYgNzAgMTIgMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJCdXJ1bmRpXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4en8J+HrlwiLFxuICAgICAgXCJjb2RlXCI6IFwiQklcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1N1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTcgNzkgMTIgMzQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDYW1ib2RpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh61cIixcbiAgICAgIFwiY29kZVwiOiBcIktIXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4NTVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NTVbMC05XXs4LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4NTUgOTEgMjM0IDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDYW1lcm9vblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIkNNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMzdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMzdbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjM3IDYgNzEgMjMgNDUgNjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ2FuYWRhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HplwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0FcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxWzAtOV17MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxIDIwNCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDYXBlIFZlcmRlXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+Hu1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQ1ZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzOFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzOFswLTldezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzggOTkxIDIzNDVcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ2F5bWFuIElzbGFuZHNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4e+XCIsXG4gICAgICBcImNvZGVcIjogXCJLWVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzQ1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzQ1WzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM0NSAzMjEgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4erXCIsXG4gICAgICBcImNvZGVcIjogXCJDRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjM2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjM2WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzNiA3MiAxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNoYWRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4epXCIsXG4gICAgICBcImNvZGVcIjogXCJURFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjM1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjM1WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzNSA2MyAxMiAzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNoaWxlXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HsVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0xcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTZbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTYgOSAxMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ2hpbmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4ezXCIsXG4gICAgICBcImNvZGVcIjogXCJDTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NlswLTldezExfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODYgMTMxIDIzNDUgNjc4OVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDaHJpc3RtYXMgSXNsYW5kXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HvVwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ1hcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzYxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjFbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjEgNCAxMjM0IDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ29jb3MgKEtlZWxpbmcpIElzbGFuZHNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4eoXCIsXG4gICAgICBcImNvZGVcIjogXCJDQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2MVswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MSA0IDEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDb2xvbWJpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh7RcIixcbiAgICAgIFwiY29kZVwiOiBcIkNPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU3WzAtOV17MTB9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1NyAzMTIgMzQ1IDY3ODlcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ29tb3Jvc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIktNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjlbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjY5IDMyMSAyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNvbmdvXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HrFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0dcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0MlswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDIgMDYgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiQ29uZ28sIFRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSBDb25nb1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh6lcIixcbiAgICAgIFwiY29kZVwiOiBcIkNEXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNDNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNDNbODldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0MyA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNDMgOTkxMjM0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNvb2sgSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqPCfh7BcIixcbiAgICAgIFwiY29kZVwiOiBcIkNLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODJbMC05XXs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjgyIDcxIDIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDb3N0YSBSaWNhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQ1JcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwNlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwNlswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDYgODEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkNvdGUgZCdJdm9pcmVcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJDSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjI1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjI1WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyNSAwMSAyMyA0NSA2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDcm9hdGlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4et8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiSFJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM4NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM4NVswLTldezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4NSA5OCAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkN1YmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4e6XCIsXG4gICAgICBcImNvZGVcIjogXCJDVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1M1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MyA1IDEyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJDeXBydXNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6jwn4e+XCIsXG4gICAgICBcImNvZGVcIjogXCJDWVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzU3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzU3WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1NyA5NiAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkN6ZWNoIFJlcHVibGljXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+Hv1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQ1pcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQyMFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQyMFswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0MjAgNjAxIDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRGVubWFya1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqfCfh7BcIixcbiAgICAgIFwiY29kZVwiOiBcIkRLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ1WzAtOV17OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzQ1IDIwIDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkRqaWJvdXRpXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ep8J+Hr1wiLFxuICAgICAgXCJjb2RlXCI6IFwiREpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1M1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTMgNzcgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRG9taW5pY2FcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6nwn4eyXCIsXG4gICAgICBcImNvZGVcIjogXCJETVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTc2N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE3NjdbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTc2NyAyMzUgMTIzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJEb21pbmljYW4gUmVwdWJsaWNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6nwn4e0XCIsXG4gICAgICBcImNvZGVcIjogXCJET1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTg0OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE4NDlbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTg0OSAyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFY3VhZG9yXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eq8J+HqFwiLFxuICAgICAgXCJjb2RlXCI6IFwiRUNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5M1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTMgOTkgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRWd5cHRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6rwn4esXCIsXG4gICAgICBcImNvZGVcIjogXCJFR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMFswLTldezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjAgMTAwIDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkVsIFNhbHZhZG9yXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+Hu1wiLFxuICAgICAgXCJjb2RlXCI6IFwiU1ZcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwM1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwM1swLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDMgNzEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkVxdWF0b3JpYWwgR3VpbmVhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HtlwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1FcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0MFswLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDAgMjIyIDEyMyA0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRXJpdHJlYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqvCfh7dcIixcbiAgICAgIFwiY29kZVwiOiBcIkVSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyOTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyOTFbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjkxIDcgMTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFc3RvbmlhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eq8J+HqlwiLFxuICAgICAgXCJjb2RlXCI6IFwiRUVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3MlswLTldezcsOH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM3MiA1MTIzIDQ1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFdGhpb3BpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqvCfh7lcIixcbiAgICAgIFwiY29kZVwiOiBcIkVUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNTFbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjUxIDkxIDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hq/Cfh7BcIixcbiAgICAgIFwiY29kZVwiOiBcIkZLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDBcXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTAwIFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTAwIDEyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZhcm9lIElzbGFuZHNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4e0XCIsXG4gICAgICBcImNvZGVcIjogXCJGT1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjk4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjk4WzAtOV17Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI5OCAxMjMgNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZpamlcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4evXCIsXG4gICAgICBcImNvZGVcIjogXCJGSlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjc5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjc5WzAtOV17Nyw4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc5IDcwMSAyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZpbmxhbmRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJGSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzU4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzU4WzAtOV17NiwxMn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM1OCA0MCAxMjMgNDU2N1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJGcmFuY2VcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6vwn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJGUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszM1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszMyA2IDEyIDM0IDU2IDc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZyZW5jaCBHdWlhbmFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4erXCIsXG4gICAgICBcImNvZGVcIjogXCJHRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTk0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTk0WzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5NCA2OTQgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiRnJlbmNoIFBvbHluZXNpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh6tcIixcbiAgICAgIFwiY29kZVwiOiBcIlBGXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODlbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjg5IDg3IDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh6tcIixcbiAgICAgIFwiY29kZVwiOiBcIlRGXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjJbMC05XXs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjYyIDYzOSAxMiAzNCA1NlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHYWJvblwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh6ZcIixcbiAgICAgIFwiY29kZVwiOiBcIkdBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNDFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNDFbMC05XXs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjQxIDA2IDEyIDM0IDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdhbWJpYVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7JcIixcbiAgICAgIFwiY29kZVwiOiBcIkdNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjBbMC05XXs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjIwIDMwMSAyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdlb3JnaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4eqXCIsXG4gICAgICBcImNvZGVcIjogXCJHRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTk1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTk1WzAtOV17OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk5NSA1NTUgMTIgMzQgNTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR2VybWFueVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HqfCfh6pcIixcbiAgICAgIFwiY29kZVwiOiBcIkRFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ5WzAtOV17MTAsMTF9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0OSAxNTEgMTIzNCA1Njc4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkdoYW5hXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HrVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0hcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzM1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzM1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzMgMjQgMTIzIDQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR2licmFsdGFyXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HrlwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0lcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1MFswLTldezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTAgNTcxMjM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3JlZWNlXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiR1JcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzMwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzBbMC05XXsxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzMwIDY5MSAyMzQgNTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHcmVlbmxhbmRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4exXCIsXG4gICAgICBcImNvZGVcIjogXCJHTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjk5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjk5WzAtOV17Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI5OSAyMiAxMiAzNFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHcmVuYWRhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HqVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0RcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE0NzNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNDczWzAtOV17N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE0NzMgNDAzIDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3VhZGVsb3VwZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1BcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5MFs2N11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTkwIDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTkwIFhYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7VcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3VhbVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1VcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2NzFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjcxXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2NzEgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMTY3MSBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiR3VhdGVtYWxhXCIsXG4gICAgICBcImNvZGVcIjogXCJHVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTAyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTAyWzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTAyIDhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MDIgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWVybnNleVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR0dcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDRbMTQ4N11cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDQgMTQ4MSBYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQ0IDE0ODEgWFhYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWluZWFcIixcbiAgICAgIFwiY29kZVwiOiBcIkdOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjRcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjI0IFhYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjI0IFhYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4es8J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJHdWluZWEtQmlzc2F1XCIsXG4gICAgICBcImNvZGVcIjogXCJHV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQ1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQ1XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0NSBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNDUgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4e8XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkd1eWFuYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiR1lcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5MlsyLTldXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzU5MiA2WFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTIgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4e+XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkhhaXRpXCIsXG4gICAgICBcImNvZGVcIjogXCJIVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTA5XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTA5WzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTA5IDJYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MDkgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4et8J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJIZWFyZCBJc2xhbmQgYW5kIE1jZG9uYWxkIElzbGFuZHNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh63wn4eyXCIsXG4gICAgICBcImNvZGVcIjogXCJITVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjcyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjcyXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY3MiBYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2NzIgMTIzNDU2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkhvbHkgU2VlIChWYXRpY2FuIENpdHkgU3RhdGUpXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e78J+HplwiLFxuICAgICAgXCJjb2RlXCI6IFwiVkFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3OVxcXFxkezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc5IFhYWFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszNzkgMDYxMjM0NTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJIb25kdXJhc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiSE5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwNFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwNFsyLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUwNCA5WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTA0IFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrfCfh7NcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSG9uZyBLb25nXCIsXG4gICAgICBcImNvZGVcIjogXCJIS1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODUyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODUyWzItOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODUyIDVYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis4NTIgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4et8J+HsFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJIdW5nYXJ5XCIsXG4gICAgICBcImNvZGVcIjogXCJIVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNlsxLTldXFxcXGR7Nyw4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzYgMzBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNiBYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrfCfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSWNlbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiSVNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1NFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTQgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzU0IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eu8J+HuFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJJbmRpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiSU5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzkxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTFbNjc4OV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTEgOVhYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTEgWFhYWFggWFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkluZG9uZXNpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiSURcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzYyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjJbOF1cXFxcZHs5LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjIgOFhYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjIgOFhYIFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh6lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBvZiBQZXJzaWFuIEd1bGZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4e3XCIsXG4gICAgICBcImNvZGVcIjogXCJJUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OFsxLTldXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk4IDlYWFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5OCA5MTIzNDU2Nzg5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIklyYXFcIixcbiAgICAgIFwiY29kZVwiOiBcIklRXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjRbN11cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY0IDdYWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk2NCA3WFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4e2XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIklyZWxhbmRcIixcbiAgICAgIFwiY29kZVwiOiBcIklFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNTNbMS05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTMgOFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNTMgWFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIklzbGUgb2YgTWFuXCIsXG4gICAgICBcImNvZGVcIjogXCJJTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0NFsxNjI0XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NCAxNjI0IFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNDQgMTYyNCBYWFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh67wn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIklzcmFlbFwiLFxuICAgICAgXCJjb2RlXCI6IFwiSUxcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3Mls1LTldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3MiA1WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk3MiA1WCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrvCfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiSXRhbHlcIixcbiAgICAgIFwiY29kZVwiOiBcIklUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszOVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM5WzAtOV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzkgM1hYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzkgM1hYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eu8J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJKYW1haWNhXCIsXG4gICAgICBcImNvZGVcIjogXCJKTVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTg3NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE4NzZcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTg3NiBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxODc2IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ev8J+HslwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJKYXBhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiSlBcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzgxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODFbMC05XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis4MSA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis4MSBYWCBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6/wn4e1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkplcnNleVwiLFxuICAgICAgXCJjb2RlXCI6IFwiSkVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDRbMTUzNF1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDQgMTUzNCBYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQ0IDE1MzQgWFhYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ev8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJKb3JkYW5cIixcbiAgICAgIFwiY29kZVwiOiBcIkpPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjJbN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTYyIDdYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTYyIDcgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ev8J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLYXpha2hzdGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJLWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrN1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzdbN11cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNyA3WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis3IDdYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh79cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS2VueWFcIixcbiAgICAgIFwiY29kZVwiOiBcIktFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNTRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNTRbN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjU0IDdYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjU0IDdYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLaXJpYmF0aVwiLFxuICAgICAgXCJjb2RlXCI6IFwiS0lcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY4NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY4NlxcXFxkezV9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2ODYgWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzY4NiBYWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsPCfh65cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS29yZWEsIERlbW9jcmF0aWMgUGVvcGxlJ3MgUmVwdWJsaWMgb2YgS29yZWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Dwn4e1XCIsXG4gICAgICBcImNvZGVcIjogXCJLUFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODUwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODUwXFxcXGR7NywxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzg1MCBYWFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrODUwIDIxMjM0NTY3ODlcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS29yZWEsIFJlcHVibGljIG9mIFNvdXRoIEtvcmVhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+Ht1wiLFxuICAgICAgXCJjb2RlXCI6IFwiS1JcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzgyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODJcXFxcZHs5LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODIgMTBYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzgyIDEwMTIzNDU2NzhcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS29zb3ZvXCIsXG4gICAgICBcImNvZGVcIjogXCJYS1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzgzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzgzWzQtOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzgzIDRYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszODMgNFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HvfCfh7BcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiS3V3YWl0XCIsXG4gICAgICBcImNvZGVcIjogXCJLV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTY1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTY1WzUtOV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY1IDVYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NjUgNVhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HvFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJLeXJneXpzdGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJLR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTk2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTk2WzUtOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTk2IDVYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTk2IFhYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMYW9zXCIsXG4gICAgICBcImNvZGVcIjogXCJMQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODU2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODU2WzJdXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzg1NiAyWFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzg1NiAyMCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HplwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMYXR2aWFcIixcbiAgICAgIFwiY29kZVwiOiBcIkxWXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzFbMl1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzcxIDJYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNzEgMlhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+Hu1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMZWJhbm9uXCIsXG4gICAgICBcImNvZGVcIjogXCJMQlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTYxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTYxWzMtOV1cXFxcZHs2LDd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NjEgM1hYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTYxIDMgWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh6dcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTGVzb3Rob1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTFNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2NlsyLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI2NiA1WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjY2IDVYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh7hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTGliZXJpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTFJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzMVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzMVs0LTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzMSA0WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjMxIFhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Hwn4e3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIkxpYnlhbiBBcmFiIEphbWFoaXJpeWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Hwn4e+XCIsXG4gICAgICBcImNvZGVcIjogXCJMWVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjE4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjE4Wzg5XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMTggOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjE4IDkxMjM0NTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJMaWVjaHRlbnN0ZWluXCIsXG4gICAgICBcImNvZGVcIjogXCJMSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDIzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDIzWzItOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDIzIDZYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzQyMyBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh65cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTGl0aHVhbmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJMVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzcwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzcwWzZdXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM3MCA2WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzcwIDZYWCBYWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh7lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTHV4ZW1ib3VyZ1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTFVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1MlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1MlsyNjg5XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTIgNlhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM1MiBYWFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFjYW9cIixcbiAgICAgIFwiY29kZVwiOiBcIk1PXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis4NTNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs4NTNbNl1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODUzIDZYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis4NTMgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWNlZG9uaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk1LXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszODlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszODlbMjddXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4OSA3WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMzg5IFhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4ewXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hZGFnYXNjYXJcIixcbiAgICAgIFwiY29kZVwiOiBcIk1HXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjFbM11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjYxIDNYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjYxIDNYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWxhd2lcIixcbiAgICAgIFwiY29kZVwiOiBcIk1XXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjVbMS05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjUgOVhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI2NSA5WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7xcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFsYXlzaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk1ZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzYwWzEtOV1cXFxcZHs3LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MCAxWFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2MCAxWCBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e+XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hbGRpdmVzXCIsXG4gICAgICBcImNvZGVcIjogXCJNVlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTYwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTYwWzctOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTYwIDdYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk2MCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7tcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWFsaVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTUxcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyM1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyM1s2LTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyMyA3WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjIzIFhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HsVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYWx0YVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVRcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM1NlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM1NlsyMzc5XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTYgN1hYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzM1NiBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1hcnNoYWxsIElzbGFuZHNcIixcbiAgICAgIFwiY29kZVwiOiBcIk1IXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2OTJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2OTJbMi05XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2OTIgMlhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjkyIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HrVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNYXJ0aW5pcXVlXCIsXG4gICAgICBcImNvZGVcIjogXCJNUVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTk2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTk2WzYtN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTk2IDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTk2IFhYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWF1cml0YW5pYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVJcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyMlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyMlsyLTldXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIyMiA0WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMjIyIFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7dcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWF1cml0aXVzXCIsXG4gICAgICBcImNvZGVcIjogXCJNVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjMwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjMwWzItOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjMwIDVYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzIzMCBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e6XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1heW90dGVcIixcbiAgICAgIFwiY29kZVwiOiBcIllUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjJbMi05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjIgNlhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzI2MiBYWFggWFggWFggWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh77wn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk1leGljb1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTVhcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTJbMV1cXFxcZHsxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUyIDFYWFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1MiAxIFhYWCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh71cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZiBNaWNyb25lc2lhXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4er8J+HslwiLFxuICAgICAgXCJjb2RlXCI6IFwiRk1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY5MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY5MVsxLTldXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY5MSBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjkxIDMyMDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9sZG92YVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTURcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM3M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM3M1s2N11cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzczIDZYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNzMgWFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9uYWNvXCIsXG4gICAgICBcImNvZGVcIjogXCJNQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzc3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzc3WzQtOV1cXFxcZHs3LDh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNzcgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNzcgNiBYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9uZ29saWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk1OXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NzZbNS05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NzYgOFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzk3NiBYWCBYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJNb250ZW5lZ3JvXCIsXG4gICAgICBcImNvZGVcIjogXCJNRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzgyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzgyWzItOV1cXFxcZHs3LDh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszODIgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszODIgNlggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9udHNlcnJhdFwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2NjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjY0XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2NjQgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMTY2NCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh7hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW9yb2Njb1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTUFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIxMlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIxMls1LTldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIxMiA2WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzIxMiA2WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTW96YW1iaXF1ZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTVpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1OFsyOF1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjU4IDhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNTggOFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e/XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk15YW5tYXJcIixcbiAgICAgIFwiY29kZVwiOiBcIk1NXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk1WzQtOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTUgOVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NSA5IFhYWCBYWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ey8J+HslwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOYW1pYmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJOQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjY0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjY0WzYtOF1cXFxcZHs3LDh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjQgODFYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNjQgODEgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5hdXJ1XCIsXG4gICAgICBcImNvZGVcIjogXCJOUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjc0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjc0WzAtOV1cXFxcZHs0fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc0IFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2NzQgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4e3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5lcGFsXCIsXG4gICAgICBcImNvZGVcIjogXCJOUFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTc3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTc3WzldXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3NyA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NzcgOThYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HtVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOZXRoZXJsYW5kc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiTkxcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzMxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzFbMS05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszMSA2WFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzMxIDYgWFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HsVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOZXRoZXJsYW5kcyBBbnRpbGxlc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQU5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5OVs5XVxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTkgOVhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTk5IDlYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwiXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5ldyBDYWxlZG9uaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIk5DXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2ODdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2ODdcXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjg3IFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjg3IFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HqFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOZXcgWmVhbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiTlpcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjRbMi05XVxcXFxkezcsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY0IDIxWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjQgMjEgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Pwn4e/XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5pY2FyYWd1YVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTklcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwNVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwNVs1LThdXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUwNSA4WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTA1IFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh65cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTmlnZXJcIixcbiAgICAgIFwiY29kZVwiOiBcIk5FXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjdbMC05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjcgOVhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzIyNyBYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh6pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTmlnZXJpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTkdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzNFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzNFs3ODldXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIzNCA4WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyMzQgOFhYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOaXVlXCIsXG4gICAgICBcImNvZGVcIjogXCJOVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjgzXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjgzXFxcXGR7NH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY4MyBYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2ODMgWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh7pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiTm9yZm9sayBJc2xhbmRcIixcbiAgICAgIFwiY29kZVwiOiBcIk5GXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzJbM11cXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjcyIDNYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjcyIDMgWFggWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ez8J+Hq1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHNcIixcbiAgICAgIFwiY29kZVwiOiBcIk1QXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxNjcwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTY3MFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxNjcwIFhYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzE2NzAgWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Lwn4e1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIk5vcndheVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTk9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDdbMi05XVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NyA0WFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNDcgWFhYIFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hs/Cfh7RcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiT21hblwiLFxuICAgICAgXCJjb2RlXCI6IFwiT01cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk2OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk2OFs3OV1cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY4IDlYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis5NjggOVhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e08J+HslwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYWtpc3RhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiUEtcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzkyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTJbM11cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTIgM1hYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTIgM1hYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HsFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYWxhdVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUFdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY4MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzY4MFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2ODAgWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjgwIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HvFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYWxlc3RpbmlhbiBUZXJyaXRvcnksIE9jY3VwaWVkXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HuFwiLFxuICAgICAgXCJjb2RlXCI6IFwiUFNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3MFs1OV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTcwIDVYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk3MCA1OTkxMjM0NTZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUGFuYW1hXCIsXG4gICAgICBcImNvZGVcIjogXCJQQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTA3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTA3WzEtOV1cXFxcZHs2fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTA3IDZYWFhYWFhcIixcbiAgICAgIFwiZm9ybWF0XCI6IFwiKzUwNyBYWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBhcHVhIE5ldyBHdWluZWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlBHXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzVcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzVbN11cXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc1IDdYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2NzUgN1hYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQYXJhZ3VheVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUFlcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzU5NVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzU5NVs5XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTUgOVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis1OTUgOVhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4e+XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBlcnVcIixcbiAgICAgIFwiY29kZVwiOiBcIlBFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUxWzldXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzUxIDlYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTEgOVhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4eqXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBoaWxpcHBpbmVzXCIsXG4gICAgICBcImNvZGVcIjogXCJQSFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2M1s5XVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2MyA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis2MyA5WFggWFhYIFhYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4etXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlBpdGNhaXJuXCIsXG4gICAgICBcImNvZGVcIjogXCJQTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NFxcXFxkezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjQgWFhYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNjQgWFhYIFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJQb2xhbmRcIixcbiAgICAgIFwiY29kZVwiOiBcIlBMXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzQ4WzEtOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDggNVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis0OCA1WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUG9ydHVnYWxcIixcbiAgICAgIFwiY29kZVwiOiBcIlBUXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNTFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNTFbMS05XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNTEgOVhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIiszNTEgOVhYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7Xwn4e5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlB1ZXJ0byBSaWNvXCIsXG4gICAgICBcImNvZGVcIjogXCJQUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTkzOVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE5MzlcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTkzOSBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxOTM5IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e18J+Ht1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJRYXRhclwiLFxuICAgICAgXCJjb2RlXCI6IFwiUUFcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3NFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3NFszLTddXFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk3NCAzWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrOTc0IFhYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtvCfh6ZcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUm9tYW5pYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUk9cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDBbN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDAgN1hYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis0MCA3WFggWFhYIFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Ht/Cfh7RcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiUnVzc2lhXCIsXG4gICAgICBcImNvZGVcIjogXCJSVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrN1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzdbOV1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNyA5WFhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIis3IDlYWCBYWFggWFggWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7fwn4e6XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlJ3YW5kYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUldcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI1MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI1MFs3XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTAgN1hYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNTAgN1hYIFhYWCBYWFhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7fwn4e8XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlJldW5pb25cIixcbiAgICAgIFwiY29kZVwiOiBcIlJFXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjJbNi03XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjIgNlhYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisyNjIgNlhYIFhYIFhYIFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e38J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBCYXJ0aGVsZW15XCIsXG4gICAgICBcImNvZGVcIjogXCJCTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTkwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTkwWzYtN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTkwIDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTkwIDZYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hp/Cfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgSGVsZW5hLCBBc2NlbnNpb24gYW5kIFRyaXN0YW4gRGEgQ3VuaGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4etXCIsXG4gICAgICBcImNvZGVcIjogXCJTSFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjkwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjkwXFxcXGR7NH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI5MCBYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjkwIDIzODBcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgS2l0dHMgYW5kIE5ldmlzXCIsXG4gICAgICBcImNvZGVcIjogXCJLTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTg2OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE4NjlcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTg2OSBYWFhYWFhYXCIsXG4gICAgICBcImZvcm1hdFwiOiBcIisxODY5IFhYWCBYWFhYXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ew8J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYWludCBMdWNpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTENcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE3NThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNzU4XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE3NTggWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrMTc1OCBYWFggWFhYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsfCfh6hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgTWFydGluXCIsXG4gICAgICBcImNvZGVcIjogXCJNRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNTkwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNTkwWzYtN11cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTkwIDZYWFhYWFhYWFwiLFxuICAgICAgXCJmb3JtYXRcIjogXCIrNTkwIDZYWCBYWCBYWCBYWFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HsvCfh6tcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvblwiLFxuICAgICAgXCJjb2RlXCI6IFwiUE1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzUwOFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzUwOFxcXFxkezZ9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1MDggWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTA4IDQxMjM0NVwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HtfCfh7JcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2FpbnQgVmluY2VudCBhbmQgdGhlIEdyZW5hZGluZXNcIixcbiAgICAgIFwiY29kZVwiOiBcIlZDXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxNzg0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTc4NFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxNzg0IFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisxNzg0IDQ1NjEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4eoXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhbW9hXCIsXG4gICAgICBcImNvZGVcIjogXCJXU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjg1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjg1XFxcXGR7NSw3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjg1IFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY4NSA3MjEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7zwn4e4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhbiBNYXJpbm9cIixcbiAgICAgIFwiY29kZVwiOiBcIlNNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIiszNzhcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNzhcXFxcZHs2LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMzc4IFhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMzc4IDA1NDkxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNhbyBUb21lIGFuZCBQcmluY2lwZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU1RcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzOVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzOVxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzkgWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIzOSA5OTEyMzQ1XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTYXVkaSBBcmFiaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlNBXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjZcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTY2IDVYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk2NiA1MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNlbmVnYWxcIixcbiAgICAgIFwiY29kZVwiOiBcIlNOXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyMjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyMjFcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjIxIDdYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIyMSA3NzEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4ezXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNlcmJpYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiUlNcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzM4MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzM4MVxcXFxkezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4MSA2WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszODEgNjAxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e38J+HuFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTZXljaGVsbGVzXCIsXG4gICAgICBcImNvZGVcIjogXCJTQ1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjQ4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjQ4XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI0OCBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjQ4IDI1MTIzNDVcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4eoXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNpZXJyYSBMZW9uZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0xcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIzMlwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIzMlxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMzIgN1hYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyMzIgNzYxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4exXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNpbmdhcG9yZVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0dcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjVcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjUgOFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2NSA4MTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh6xcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU2xvdmFraWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlNLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis0MjFcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0MjFcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDIxIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzQyMSA5MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4ewXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNsb3ZlbmlhXCIsXG4gICAgICBcImNvZGVcIjogXCJTSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzg2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzg2XFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4NiAzWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzM4NiAzMTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh65cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU29sb21vbiBJc2xhbmRzXCIsXG4gICAgICBcImNvZGVcIjogXCJTQlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjc3XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjc3XFxcXGR7NSw3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc3IDdYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY3NyA3MTIzNDU2XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+Hp1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTb21hbGlhXCIsXG4gICAgICBcImNvZGVcIjogXCJTT1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjUyXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjUyXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI1MiA2WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzI1MiA2MTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh7RcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU291dGggQWZyaWNhXCIsXG4gICAgICBcImNvZGVcIjogXCJaQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyN1xcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNyA4WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNyA4MzEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7/wn4emXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNvdXRoIFN1ZGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJTU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjExXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjExXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIxMSA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyMTEgOTc3MTIzNDU2XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HuFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTb3V0aCBHZW9yZ2lhIGFuZCB0aGUgU291dGggU2FuZHdpY2ggSXNsYW5kc1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HrPCfh7hcIixcbiAgICAgIFwiY29kZVwiOiBcIkdTXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1MDBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1MDBcXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTAwIFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTAwIDEyMzQ1XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNwYWluXCIsXG4gICAgICBcImNvZGVcIjogXCJFU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCszNFxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIiszNCA2WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszNCA2MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6rwn4e4XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlNyaSBMYW5rYVwiLFxuICAgICAgXCJjb2RlXCI6IFwiTEtcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTRcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTQgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTQgNzEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4ex8J+HsFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTdWRhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0RcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI0OVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI0OVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNDkgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjQ5IDkxMjM0NTY3OFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh6lcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiU3VyaW5hbWVcIixcbiAgICAgIFwiY29kZVwiOiBcIlNSXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OTdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OTdcXFxcZHs2LDd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis1OTcgWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzU5NyA4MTIzNDU2XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+Ht1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTdmFsYmFyZCBhbmQgSmFuIE1heWVuXCIsXG4gICAgICBcImNvZGVcIjogXCJTSlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDdcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0N1xcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis0NyBYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzQ3IDQxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+Hr1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJFc3dhdGluaVwiLFxuICAgICAgXCJjb2RlXCI6IFwiU1pcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2OFxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjggN1hYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNjggNzYxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7jwn4e/XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlN3ZWRlblwiLFxuICAgICAgXCJjb2RlXCI6IFwiU0VcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQ2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDZcXFxcZHs3LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDYgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNDYgNzAxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e48J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTd2l0emVybGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiQ0hcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzQxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNDFcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDEgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNDEgNzgxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4eo8J+HrVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJTeXJpYW4gQXJhYiBSZXB1YmxpY1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HuPCfh75cIixcbiAgICAgIFwiY29kZVwiOiBcIlNZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5NjNcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5NjNbOV1cXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTYzIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk2MyA5OTEyMzQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVGFpd2FuXCIsXG4gICAgICBcImNvZGVcIjogXCJUV1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrODg2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODg2XFxcXGR7OCw5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODg2IDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzg4NiA5MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4e8XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRhamlraXN0YW5cIixcbiAgICAgIFwiY29kZVwiOiBcIlRKXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis5OTJcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5OTJcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTkyIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzk5MiA5MTcxMjM0NTZcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4evXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YgVGFuemFuaWFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4e/XCIsXG4gICAgICBcImNvZGVcIjogXCJUWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjU1XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjU1WzY3XVxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNTUgN1hYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMjU1IDcxMjM0NTY3OFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUaGFpbGFuZFwiLFxuICAgICAgXCJjb2RlXCI6IFwiVEhcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzY2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjZcXFxcZHs4LDl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis2NiA4WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2NiA4MTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4etXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRpbW9yLUxlc3RlXCIsXG4gICAgICBcImNvZGVcIjogXCJUTFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjcwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjcwXFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY3MCA3WFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY3MCA3NzEyMzQ1NlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7FcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVG9nb1wiLFxuICAgICAgXCJjb2RlXCI6IFwiVEdcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzIyOFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzIyOFxcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyMjggOVhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyMjggOTEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4esXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlRva2VsYXVcIixcbiAgICAgIFwiY29kZVwiOiBcIlRLXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2OTBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2OTBcXFxcZHs0fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjkwIFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2OTAgMTIzNFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7BcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVG9uZ2FcIixcbiAgICAgIFwiY29kZVwiOiBcIlRPXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis2NzZcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs2NzZcXFxcZHs1fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc2IFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNjc2IDcxMjM0XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+HtFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUcmluaWRhZCBhbmQgVG9iYWdvXCIsXG4gICAgICBcImNvZGVcIjogXCJUVFwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTg2OFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzE4NjhcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTg2OCBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMTg2OCAyODQxMjM0XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e58J+HuVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJUdW5pc2lhXCIsXG4gICAgICBcImNvZGVcIjogXCJUTlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjE2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjE2XFxcXGR7OH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzIxNiBYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzIxNiAyMDEyMzQ1NlwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7NcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVHVya2V5XCIsXG4gICAgICBcImNvZGVcIjogXCJUUlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs5MFxcXFxkezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrOTAgNVhYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzkwIDUzMTIzNDU2NzhcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4e3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlR1cmttZW5pc3RhblwiLFxuICAgICAgXCJjb2RlXCI6IFwiVE1cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk5M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk5M1xcXFxkezh9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5OTMgNlhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5OTMgNjEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7nwn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiVENcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzE2NDlcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsxNjQ5XFxcXGR7N30kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzE2NDkgWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzE2NDkgMjMxMTIzNFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh6hcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVHV2YWx1XCIsXG4gICAgICBcImNvZGVcIjogXCJUVlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjg4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjg4XFxcXGR7NX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY4OCBYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY4OCAyMDEyM1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HufCfh7tcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVWdhbmRhXCIsXG4gICAgICBcImNvZGVcIjogXCJVR1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMjU2XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMjU2XFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzI1NiA3WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisyNTYgNzEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e68J+HrFwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJVa3JhaW5lXCIsXG4gICAgICBcImNvZGVcIjogXCJVQVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMzgwXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMzgwXFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzM4MCA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIiszODAgOTMxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e68J+HplwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJVbml0ZWQgQXJhYiBFbWlyYXRlc1wiLFxuICAgICAgXCJjb2RlXCI6IFwiQUVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk3MVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk3MVxcXFxkezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIis5NzEgNVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrOTcxIDUwMTIzNDU2N1wiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+HpvCfh6pcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVW5pdGVkIEtpbmdkb21cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh6zwn4enXCIsXG4gICAgICBcImNvZGVcIjogXCJHQlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNDRcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs0NFswLTldezEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNDQgNzEyMyA0NTYgNzg5XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlVuaXRlZCBTdGF0ZXNcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7rwn4e4XCIsXG4gICAgICBcImNvZGVcIjogXCJVU1wiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMVwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzFbMC05XXsxMH0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzEgMjEzIDEyMyA0NTY3XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlVydWd1YXlcIixcbiAgICAgIFwiY29kZVwiOiBcIlVZXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIis1OThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OThcXFxcZHs4fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTk4IDlYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrNTk4IDkxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e68J+HvlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJVemJla2lzdGFuXCIsXG4gICAgICBcImNvZGVcIjogXCJVWlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrOTk4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrOTk4XFxcXGR7OX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk5OCA5WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5OTggOTAxMjM0NTY3XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e68J+Hv1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJWYW51YXR1XCIsXG4gICAgICBcImNvZGVcIjogXCJWVVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjc4XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjc4XFxcXGR7NSw3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNjc4IFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzY3OCA1OTEyMzRcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4e6XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlZlbmV6dWVsYSwgQm9saXZhcmlhbiBSZXB1YmxpYyBvZiBWZW5lenVlbGFcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4eqXCIsXG4gICAgICBcImNvZGVcIjogXCJWRVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNThcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCs1OFsyNF1cXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrNTggNFhYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzU4IDQxMjEyMzQ1NjdcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVmlldG5hbVwiLFxuICAgICAgXCJjb2RlXCI6IFwiVk5cIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzg0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrODRcXFxcZHs5LDEwfSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrODQgOVhYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrODQgOTEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e78J+Hs1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaFwiLFxuICAgICAgXCJmbGFnXCI6IFwi8J+Hu/Cfh6xcIixcbiAgICAgIFwiY29kZVwiOiBcIlZHXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisxMjg0XCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrMTI4NFxcXFxkezd9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisxMjg0IFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIisxMjg0IDMwMDEyMzRcIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJuYW1lXCI6IFwiVmlyZ2luIElzbGFuZHMsIFUuUy5cIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7vwn4euXCIsXG4gICAgICBcImNvZGVcIjogXCJWSVwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrMTM0MFwiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzEzNDBcXFxcZHs3fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMTM0MCBYWFhYWFhYXCIsXG4gICAgICBcImV4YW1wbGVcIjogXCIrMTM0MCA3NzQxMjM0XCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIldhbGxpcyBhbmQgRnV0dW5hXCIsXG4gICAgICBcImNvZGVcIjogXCJXRlwiLFxuICAgICAgXCJkaWFsX2NvZGVcIjogXCIrNjgxXCIsXG4gICAgICBcInJlZ2V4XCI6IFwiXlxcXFwrNjgxXFxcXGR7Nn0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzY4MSBYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis2ODEgNTAxMjM0XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e88J+Hq1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJZZW1lblwiLFxuICAgICAgXCJjb2RlXCI6IFwiWUVcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzk2N1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzk2N1xcXFxkezgsOX0kXCIsXG4gICAgICBcInBsYWNlaG9sZGVyXCI6IFwiKzk2NyA3WFhYWFhYWFhcIixcbiAgICAgIFwiZXhhbXBsZVwiOiBcIis5NjcgNzEyMzQ1Njc4XCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e+8J+HqlwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm5hbWVcIjogXCJaYW1iaWFcIixcbiAgICAgIFwiY29kZVwiOiBcIlpNXCIsXG4gICAgICBcImRpYWxfY29kZVwiOiBcIisyNjBcIixcbiAgICAgIFwicmVnZXhcIjogXCJeXFxcXCsyNjBcXFxcZHs5fSRcIixcbiAgICAgIFwicGxhY2Vob2xkZXJcIjogXCIrMjYwIDlYWFhYWFhYWFwiLFxuICAgICAgXCJleGFtcGxlXCI6IFwiKzI2MCA5NzEyMzQ1NjdcIixcbiAgICAgIFwiZmxhZ1wiOiBcIvCfh7/wn4eyXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIFwibmFtZVwiOiBcIlppbWJhYndlXCIsXG4gICAgICBcImZsYWdcIjogXCLwn4e/8J+HvFwiLFxuICAgICAgXCJjb2RlXCI6IFwiWldcIixcbiAgICAgIFwiZGlhbF9jb2RlXCI6IFwiKzI2M1wiLFxuICAgICAgXCJyZWdleFwiOiBcIl5cXFxcKzI2M1swLTldezl9JFwiLFxuICAgICAgXCJwbGFjZWhvbGRlclwiOiBcIisyNjMgNzEgMjM0IDU2NzhcIlxuICAgIH1cbiAgXTtcbiAgZmlsdGVyZWRDb3VudHJpZXM6IGFueVxuICBzZWxlY3RlZENvdW50cnkhOiBhbnk7XG4gIHNob3dDb3VudHJ5RHJvcGRvd24gPSBmYWxzZTtcbiAgY291bnRyeVNlYXJjaCA9ICcnO1xuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgLy8gSW50ZXJuYWwgc3RhdGVcbiAgdmlld0VkaXQ6IGJvb2xlYW4gPSBmYWxzZSBcbiAgb3JpZ2luYWxWYWx1ZTogYW55OyAvLyBUbyBzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWUgd2hlbiBlbnRlcmluZyB2aWV3IGVkaXQgbW9kZVxuICBpc1NhdmVIb3ZlcmVkID0gZmFsc2U7XG4gIGlzRGlzY2FyZEhvdmVyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBsYXN0Q2xpY2tUaW1lID0gMDtcbiAgcHVibGljIGNhY2hlZElucHV0TGlzdDogYW55W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYscHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UscHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHt9XG4gIGhhc0VtaXR0ZWRSZWYgPSBmYWxzZTtcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMudHlwZSA9PT0gJ2xvY2F0aW9uJyAmJlxuICAgICAgdGhpcy5pbnB1dFJlZiAmJlxuICAgICAgIXRoaXMuaGFzRW1pdHRlZFJlZlxuICAgICkge1xuICAgICAgdGhpcy5uYXRpdmVJbnB1dFJlZi5lbWl0KHRoaXMuaW5wdXRSZWYpO1xuICAgICAgdGhpcy5oYXNFbWl0dGVkUmVmID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICB0aGlzLnNob3dDb3VudHJ5RHJvcGRvd24gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2VcbiAgICAgIHRoaXMudXBkYXRlQ29udHJvbFN0YXRlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZSddKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoY2hhbmdlc1sndmFsdWUnXS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25mUGFzcyAmJiBjaGFuZ2VzWydjb25mUGFzc1ZhbCddICYmICFjaGFuZ2VzWydjb25mUGFzc1ZhbCddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJyc7IC8vIFJlc2V0IGlucHV0IHZhbHVlXG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10pIHtcbiAgICAgIHRoaXMuc2V0dXBWYWxpZGF0b3JzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10gJiYgY2hhbmdlc1sndHlwZSddLmN1cnJlbnRWYWx1ZSA9PT0gJ2xvY2F0aW9uJykge1xuICAgICAgdGhpcy5oYXNFbWl0dGVkUmVmID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlSW5wdXRMaXN0KCk7XG4gIH1cbiAgbmdPbkluaXQoKSB7ICAgIFxuICAgIC8vIFNLUzI4RkVCMjUgZGVmYXVsdCBjb3VudHJ5IHNldCBcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoYyA9PiBjLmNvZGUgPT09ICdJTicpIHx8IHRoaXMuY291bnRyaWVzWzBdO1xuICAgIHRoaXMuZmlsdGVyZWRDb3VudHJpZXMgPSBbLi4udGhpcy5jb3VudHJpZXNdO1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB8IG51bGwgPSBbXTtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIGlmICh0aGlzLm1pbkxlbmd0aCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWluTGVuZ3RoKSk7XG4gICAgaWYgKHRoaXMucGF0dGVybikgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnBhdHRlcm4pKTtcbiAgICBpZiAodGhpcy5tYXhMZW5ndGgpIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCkpO1xuICAgIGlmICh0aGlzLmNvbmZQYXNzKSB2YWxpZGF0b3JzLnB1c2godGhpcy5wYXNzd29yZE1hdGNoVmFsaWRhdG9yKCkpO1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICBcbiAgICBpZiAodGhpcy50eXBlID09PSAnb3RwJykge1xuICAgICAgdGhpcy5pbnB1dHMuY29udHJvbHMuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgICB9KTtcbiAgICB9ZWxzZSBpZiAodGhpcy50eXBlID09PSAndGVsJykge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoW1xuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5yZW1vdmVEaWFsQ29kZUZyb21SZWdleCh0aGlzLnNlbGVjdGVkQ291bnRyeS5yZWdleCwgdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbF9jb2RlKSlcbiAgICAgIF0pO1xuICAgIH1cbiAgICAvL0FQLTAxSlVMMjUgLSBEaXNhYmxlIHRoZSBmaWVsZCB1bmxlc3MgaW4gJ2VkaXQnIG1vZGUgYW5kIHF1ZXN0aW9uIGlzIG5vdCBtYXJrZWQgYXMgcmVhZC1vbmx5XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMubW9kZSA9PT0gJ2VkaXQnID8gKHRoaXMucXVlc3Rpb24/LmlzUmVhZE9ubHkgPT09IHRydWUgfHwgdGhpcy5xdWVzdGlvbj8uaXNSZWFkT25seSA9PT0gJ3RydWUnKSA6IHRydWUpO1xuICAgIGlmICh0eXBlb2YgdGhpcy5xdWVzdGlvbj8uc3ViVGV4dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLnN1YlRleHQudHJpbSgpID09PSAnJykge1xuICAgICAgICB0aGlzLnF1ZXN0aW9uLnN1YlRleHQgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnN1YlRleHQgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uc3ViVGV4dCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLnN1YlRleHQgPSBudWxsOyAvLyBPciBoYW5kbGUgZGlmZmVyZW50bHlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAgIFxuICAgIGlmKHRoaXMucXVlc3Rpb24/LnN1YlRleHQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIGxldCBkZXBlbmRlbmN5T2JqOiBhbnkgPSB0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0O1xuICAgICAgaWYoZGVwZW5kZW5jeU9iai5kaXNhYmxlZCAmJiBkZXBlbmRlbmN5T2JqLmRpc2FibGVkID09IFwiZmFsc2VcIil7XG4gICAgICAgIC8vIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1lbHNle1xuICAgICAgICAvLyB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmliZSBmb3IgdGhlIGNoYW5nZXNcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICBpZihjaGFuZ2VWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkICYmIGNoYW5nZVZhbHVlLnZhbHVlT2JqICE9PSB1bmRlZmluZWQgJiYgKCBBcnJheS5pc0FycmF5KGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZCk/IGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZC5pbmNsdWRlcyhjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCkgOiBjaGFuZ2VWYWx1ZS5mcm9tUXVlc3Rpb25JZCA9PT0gZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKSkge1xuICAgICAgICAgICAgICAvLyBWRCAyMEF1ZzI0IGhhbmRsaW5nIHRoZSBtdWx0aXBsZSBvYmplY3RcbiAgICAgICAgICAgICAgaWYoZGVwZW5kZW5jeU9iai52YWx1ZUZpZWxkKXtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShjaGFuZ2VWYWx1ZS52YWx1ZU9iaixkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGQpO1xuICAgICAgICAgICAgICAgIGxldCBjaGFuZ2U6IGFueT17fTtcbiAgICAgICAgICAgICAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uLmlkO1xuICAgICAgICAgICAgICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICAgICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5xdWVzdGlvbi5yZWZlcmVuY2VGaWVsZDtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUuZW1pdCh7cXVlc3Rpb24gOiB0aGlzLnF1ZXN0aW9uLCB2YWx1ZTogY2hhbmdlfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3F1aWxsLXNhdmUnLCB0aGlzLnNhdmVDaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3F1aWxsLWRpc2NhcmQnLCB0aGlzLmRpc2NhcmRDaGFuZ2VzLmJpbmQodGhpcykpO1xuICAgIHRoaXMudXBkYXRlSW5wdXRMaXN0KCk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncXVpbGwtc2F2ZScsIHRoaXMuc2F2ZUNoYW5nZXMuYmluZCh0aGlzKSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncXVpbGwtZGlzY2FyZCcsIHRoaXMuZGlzY2FyZENoYW5nZXMuYmluZCh0aGlzKSk7XG4gIH1cbiAgcHJpdmF0ZSB1cGRhdGVJbnB1dExpc3QoKSB7XG4gICAgdGhpcy5jYWNoZWRJbnB1dExpc3QgPSB0aGlzLnR5cGUgIT09ICdvdHAnID8gdGhpcy5pbnB1dHMuY29udHJvbHMuc2xpY2UoMCwgMSkgOiB0aGlzLmlucHV0cy5jb250cm9scztcbiAgfVxuICAvLyBTS1MxNEpVTjI1ICBEeW5hbWljYWxseSBsb2FkIFF1aWxsIGVkaXRvciB0b29sYmFyXG4gIGdldFF1aWxsTW9kdWxlcyhxdWVzdGlvbklkOiBzdHJpbmcpOiBRdWlsbE1vZHVsZXMge1xuICAgIGlmKHRoaXMudmlld0VkaXQpe1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW1hZ2VSZXNpem9yOiB7fSxcbiAgICAgICAgdG9vbGJhcjoge1xuICAgICAgICAgIGNvbnRhaW5lcjogW1xuICAgICAgICAgICAgW3sgJ2ZvbnQnOiBmb250RmFtaWx5QXJyIH1dLCAgLy9SUyAxN0pBTjIwMjUgIEFkZGVkIGZvbnQgZmFtaWx5IGRyb3Bkb3duXG4gICAgICAgICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2UnXSxcbiAgICAgICAgICAgIFsnYmxvY2txdW90ZScsICdjb2RlLWJsb2NrJ10sXG4gICAgICAgICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXG4gICAgICAgICAgICBbeyBsaXN0OiAnb3JkZXJlZCcgfSwgeyBsaXN0OiAnYnVsbGV0JyB9XSxcbiAgICAgICAgICAgIFt7IGNvbG9yOiBbXSB9LCB7IGJhY2tncm91bmQ6IFtdIH1dLFxuICAgICAgICAgICAgW3sgYWxpZ246IFtdIH1dLFxuICAgICAgICAgICAgWydsaW5rJywgJ2ltYWdlJywgJ3ZpZGVvJ10sXG4gICAgICAgICAgICBbJ2Zvcm11bGEnXSxcbiAgICAgICAgICAgIFsnY2xlYW4nXSxcbiAgICAgICAgICAgIFsnc2F2ZScsICdkaXNjYXJkJ11cbiAgICAgICAgICBdLFxuICAgICAgICAgIGhhbmRsZXJzOiB7XG4gICAgICAgICAgICBzYXZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdxdWlsbC1zYXZlJywge1xuICAgICAgICAgICAgICAgIGRldGFpbDogeyBpZDogcXVlc3Rpb25JZCB9ICAvLyBZb3UgaW5qZWN0IHRoZSBjb3JyZWN0IElEIGRpcmVjdGx5IGhlcmVcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2NhcmQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3F1aWxsLWRpc2NhcmQnLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7IGlkOiBxdWVzdGlvbklkIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVudGlvbjoge1xuICAgICAgICAgIGFsbG93ZWRDaGFyczogL15bQS1aYS16XFxzw4XDhMOWw6XDpMO2XSokLyxcbiAgICAgICAgICBtZW50aW9uRGVub3RhdGlvbkNoYXJzOiBbJ0AnLCAnIyddLFxuICAgICAgICAgIHNvdXJjZTogZnVuY3Rpb24gKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBbXG4gICAgICAgICAgICAgIHsgaWQ6IDEsIHZhbHVlOiAnVXNlciAxJyB9LFxuICAgICAgICAgICAgICB7IGlkOiAyLCB2YWx1ZTogJ1VzZXIgMicgfSxcbiAgICAgICAgICAgIF07XG4gICAgICBcbiAgICAgICAgICAgIGlmIChzZWFyY2hUZXJtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICByZW5kZXJMaXN0KHZhbHVlcywgc2VhcmNoVGVybSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gdmFsdWVzLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZW5kZXJMaXN0KG1hdGNoZXMsIHNlYXJjaFRlcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfWVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW1hZ2VSZXNpem9yOiB7fSxcbiAgICAgICAgdG9vbGJhcjoge1xuICAgICAgICAgIGNvbnRhaW5lcjogW1xuICAgICAgICAgICAgW3sgJ2ZvbnQnOiBmb250RmFtaWx5QXJyIH1dLCAgLy9SUyAxN0pBTjIwMjUgIEFkZGVkIGZvbnQgZmFtaWx5IGRyb3Bkb3duXG4gICAgICAgICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2UnXSxcbiAgICAgICAgICAgIFsnYmxvY2txdW90ZScsICdjb2RlLWJsb2NrJ10sXG4gICAgICAgICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXG4gICAgICAgICAgICBbeyBsaXN0OiAnb3JkZXJlZCcgfSwgeyBsaXN0OiAnYnVsbGV0JyB9XSxcbiAgICAgICAgICAgIFt7IGNvbG9yOiBbXSB9LCB7IGJhY2tncm91bmQ6IFtdIH1dLFxuICAgICAgICAgICAgW3sgYWxpZ246IFtdIH1dLFxuICAgICAgICAgICAgWydsaW5rJywgJ2ltYWdlJywgJ3ZpZGVvJ10sXG4gICAgICAgICAgICBbJ2Zvcm11bGEnXSxcbiAgICAgICAgICAgIFsnY2xlYW4nXSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBtZW50aW9uOiB7XG4gICAgICAgICAgYWxsb3dlZENoYXJzOiAvXltBLVphLXpcXHPDhcOEw5bDpcOkw7ZdKiQvLFxuICAgICAgICAgIG1lbnRpb25EZW5vdGF0aW9uQ2hhcnM6IFsnQCcsICcjJ10sXG4gICAgICAgICAgc291cmNlOiBmdW5jdGlvbiAoc2VhcmNoVGVybTogc3RyaW5nLCByZW5kZXJMaXN0OiBhbnkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IFtcbiAgICAgICAgICAgICAgeyBpZDogMSwgdmFsdWU6ICdVc2VyIDEnIH0sXG4gICAgICAgICAgICAgIHsgaWQ6IDIsIHZhbHVlOiAnVXNlciAyJyB9LFxuICAgICAgICAgICAgXTtcbiAgICAgICAgXG4gICAgICAgICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgcmVuZGVyTGlzdCh2YWx1ZXMsIHNlYXJjaFRlcm0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHZhbHVlcy5maWx0ZXIoKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIHNldHVwVmFsaWRhdG9ycygpIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgXG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICBpZiAodGhpcy5taW5MZW5ndGgpIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbkxlbmd0aCkpO1xuICAgIGlmICh0aGlzLm1heExlbmd0aCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKSk7XG4gICAgaWYgKHRoaXMucGF0dGVybikgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnBhdHRlcm4pKTtcbiAgICBcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgfVxuICAvLyBTS1MyOEZFQjI1IENvdW50cnkgRHJvcGRvd24gY2xvc2UgXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgY2xvc2VEcm9wZG93bihldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGlmIChub3cgLSB0aGlzLmxhc3RDbGlja1RpbWUgPCAxMDApIHJldHVybjsgLy8gdGhyb3R0bGUgcmVwZWF0ZWQgY2FsbHNcbiAgICB0aGlzLmxhc3RDbGlja1RpbWUgPSBub3c7XG5cbiAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuc2hvd0NvdW50cnlEcm9wZG93biA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGlmKHRoaXMudHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCB0aGlzLnR5cGUgPT09ICdkYXRlJyl7XG4gICAgICB0aGlzLnZhbHVlID0gZXZlbnQudmFsdWVcbiAgICB9IGVsc2UgaWYodGhpcy50eXBlID09PSAncmljaHRleHQnKXtcbiAgICAgIHRoaXMudmFsdWUgPSBldmVudDtcbiAgICB9ZWxzZSBpZih0aGlzLnR5cGUgPT09ICdjaGVja2JveCcpeyAvLyBTS1MyM0pVTjI1IGhhbmRlbCBjaGVja2JveCBldmVudFxuICAgICAgY29uc3QgaXNDaGVja2VkID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkO1xuICAgICAgdGhpcy52YWx1ZSA9IGlzQ2hlY2tlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICB0aGlzLnJhd0lucHV0VmFsID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgICAgaWYodGhpcy50eXBlID09PSAndGVsJykge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbF9jb2RlKyBcIiBcIiArIGlucHV0RWxlbWVudC52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAvLyBTS1MxMUpVTjI1IE9ubHkgZW1pdCB0aGUgdmFsdWUgaWYgbm90IGluIHZpZXcgZWRpdCBtb2RlXG4gICAgaWYgKCF0aGlzLnZpZXdFZGl0IHx8IHRoaXMudHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICBsZXQgY2hhbmdlOiBhbnk9e307XG4gICAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uPy5pZDtcbiAgICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IHRoaXMudmFsdWU7XG4gICAgICBjaGFuZ2VbJ3JlZmVyZW5jZUZpZWxkJ10gPSB0aGlzLnF1ZXN0aW9uPy5yZWZlcmVuY2VGaWVsZDtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVQYXNzd29yZFZpc2liaWxpdHkoKSB7XG4gICAgdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA9ICF0aGlzLmlzUGFzc3dvcmRWaXNpYmxlO1xuICB9XG4gIHBhc3N3b3JkTWF0Y2hWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgY29uc3QgY29uZmlybVBhc3N3b3JkID0gY29udHJvbC52YWx1ZTsgLy8gR2V0IGNvbmZpcm0gcGFzc3dvcmQgZmllbGQgdmFsdWVcbiAgICAgIGlmKHRoaXMuY29uZlBhc3NWYWwgPT09ICcnKXtcbiAgICAgICAgcmV0dXJuIHsgcGFzc3dvcmRNaXNtYXRjaDogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuY29uZlBhc3NWYWwgPT09IGNvbmZpcm1QYXNzd29yZCA/IG51bGwgOiB7IHBhc3N3b3JkTWlzbWF0Y2g6IHRydWUgfTtcbiAgICB9O1xuICB9XG4gIGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ3JlcXVpcmVkJ10gfHwgJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnO1xuICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ21pbmxlbmd0aCcpKSByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2VzWydtaW5sZW5ndGgnXSB8fCBgTWluaW11bSAke3RoaXMubWluTGVuZ3RofSBjaGFyYWN0ZXJzIHJlcXVpcmVkYDtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ3BhdHRlcm4nXSB8fCAodGhpcy50eXBlID09PSAndGVsJyA/IGBJbnZhbGlkICR7dGhpcy5zZWxlY3RlZENvdW50cnkubmFtZX0gcGhvbmUgbnVtYmVyIGZvcm1hdGAgOiAnSW52YWxpZCBmb3JtYXQnKTtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlc1snbWF4bGVuZ3RoJ10gfHwgYE1heGltdW0gJHt0aGlzLm1heExlbmd0aH0gY2hhcmFjdGVycyBhbGxvd2VkYDtcbiAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdwYXNzd29yZE1pc21hdGNoJykpIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXNbJ2NvbmZQYXNzJ10gfHwgYFBhc3N3b3JkcyBkbyBub3QgbWF0Y2hgO1xuICAgIHJldHVybiAnJztcbiAgfVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnb3RwJykge1xuICAgICAgY29uc3QgdmFsdWVzID0gdmFsdWUuc3BsaXQoJycpLnNsaWNlKDAsIHRoaXMuI3NpemUpO1xuICAgICAgdmFsdWVzLmZvckVhY2goKHZhbCwgaW5kZXgpID0+IHRoaXMuaW5wdXRzLmNvbnRyb2xzW2luZGV4XS5zZXRWYWx1ZSh2YWwpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCB0aGlzLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUodmFsdWUpXG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdvdHAnKSB7XG4gICAgICB0aGlzLmlucHV0cy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmlucHV0cy52YWx1ZS5qb2luKCcnKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdvdHAnKSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0cy5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0cy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLmVuYWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxucHJpdmF0ZSB1cGRhdGVDb250cm9sU3RhdGUoKSB7XG4gIC8vQVAtMDFKVUwyNSAtIERldGVybWluZSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc2FibGVkIGJhc2VkIG9uIG1vZGUgYW5kIHF1ZXN0aW9uJ3MgcmVhZC1vbmx5IHN0YXR1c1xuICBjb25zdCBzaG91bGREaXNhYmxlID0gdGhpcy5tb2RlID09PSAnZWRpdCcgPyAodGhpcy5xdWVzdGlvbj8uaXNSZWFkT25seSA9PT0gdHJ1ZSB8fCB0aGlzLnF1ZXN0aW9uPy5pc1JlYWRPbmx5ID09PSAndHJ1ZScpIDogdHJ1ZTtcbiAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHNob3VsZERpc2FibGUpO1xufVxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nLCBzdHJpbmc+KTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdvdHAnKSB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUgfHwgY29udHJvbC52YWx1ZS5sZW5ndGggPCB0aGlzLiNzaXplKSB7XG4gICAgICAgIHJldHVybiB7IG90cElucHV0OiAnVmFsdWUgaXMgaW5jb3JyZWN0JyB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jb250cm9sLmludmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaGFuZGxlS2V5RG93bihlOiBLZXlib2FyZEV2ZW50LCBpZHg6IG51bWJlcikge1xuICAgIGlmIChlLmtleSA9PT0gJ0JhY2tzcGFjZScgfHwgZS5rZXkgPT09ICdEZWxldGUnKSB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICB0aGlzLiNzY2hlZHVsZWRGb2N1cyA9IGlkeCAtIDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNzY2hlZHVsZWRGb2N1cyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRHVlIHRvIGlPUy9pUGFkT1MgU2FmYXJpIGJ1Zy9zcGVjaWFsIGJlaGF2aW9yIHdlIGFyZSBmb3JjZWQgdG9cbiAgLy8gc2NoZWR1bGUgZm9jdXMgdHJhbnNpdGlvbiBkdXJpbmcga2V5cHJlc3Mva2V5ZG93biBldmVudCBhbmQgb25seVxuICAvLyBhZnRlciBpbnB1dCBldmVudCBoYXBwZW5lZCAtIGV4ZWN1dGUgdGhlIHRyYW5zaXRpb25cbiAgLy8gb3RoZXJ3aXNlIGlucHV0cyBkb24ndCBnZXQgdGhlaXIgdmFsdWVzIGZpbGxlZFxuICBoYW5kbGVJbnB1dCgpIHtcbiAgICB0aGlzLiN1cGRhdGVXaXJlZFZhbHVlKCk7XG4gICAgaWYgKHRoaXMuI3NjaGVkdWxlZEZvY3VzICE9PSBudWxsKSB7XG4gICAgICB0aGlzLiNmb2N1c0lucHV0KHRoaXMuI3NjaGVkdWxlZEZvY3VzKTtcbiAgICAgIHRoaXMuI3NjaGVkdWxlZEZvY3VzID0gbnVsbDsgLy8gUmVzZXQgdG8gbnVsbCBhZnRlciBmb2N1c2luZ1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUtleVByZXNzKGU6IEtleWJvYXJkRXZlbnQsIGlkeDogbnVtYmVyKSB7XG4gICAgY29uc3QgaXNEaWdpdCA9IC9cXGQvLnRlc3QoZS5rZXkpO1xuICBcbiAgICBpZiAoZS5rZXkgPT09ICd2JyAmJiBlLm1ldGFLZXkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgXG4gICAgaWYgKGlzRGlnaXQgJiYgaWR4ICsgMSA8IHRoaXMuI3NpemUpIHtcbiAgICAgIHRoaXMuI3NjaGVkdWxlZEZvY3VzID0gaWR4ICsgMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jc2NoZWR1bGVkRm9jdXMgPSBudWxsOyAvLyBFbnN1cmUgaXQncyBudWxsIGlmIG5vdCBtb3ZpbmcgZm9jdXNcbiAgICB9XG4gIFxuICAgIGlmIChpc0RpZ2l0ICYmIHRoaXMuaW5wdXRzLmNvbnRyb2xzW2lkeF0udmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRzLmNvbnRyb2xzW2lkeF0uc2V0VmFsdWUoJycpO1xuICAgIH1cbiAgXG4gICAgcmV0dXJuIGlzRGlnaXQ7XG4gIH1cblxuICBoYW5kbGVQYXN0ZShlOiBDbGlwYm9hcmRFdmVudCwgaWR4OiBudW1iZXIpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAoaWR4ICE9PSAwKSB7XG4gICAgICAvLyBJZiB0aGUgdGFyZ2V0IGlucHV0IGlzIG5vdCB0aGUgZmlyc3Qgb25lIC0gaWdub3JlXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFzdGVEYXRhID0gZS5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0Jyk7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcZHske3RoaXMuI3NpemV9fWApO1xuXG4gICAgaWYgKCFwYXN0ZURhdGEgfHwgIXJlZ2V4LnRlc3QocGFzdGVEYXRhKSkge1xuICAgICAgLy8gSWYgdGhlcmUgaXMgbm90aGluZyB0byBiZSBwYXN0ZWQgb3IgdGhlIHBhc3RlZCBkYXRhIGRvZXMgbm90XG4gICAgICAvLyBjb21wbHkgd2l0aCB0aGUgcmVxdWlyZWQgZm9ybWF0IC0gaWdub3JlIHRoZSBldmVudFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFzdGVEYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmlucHV0cy5jb250cm9sc1tpXS5zZXRWYWx1ZShwYXN0ZURhdGFbaV0pO1xuICAgIH1cblxuICAgIHRoaXMuI2ZvY3VzSW5wdXQodGhpcy5pbnB1dEVscy5sZW5ndGggLSAxKTtcbiAgICB0aGlzLiN1cGRhdGVXaXJlZFZhbHVlKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzKGU6IEZvY3VzRXZlbnQpIHtcbiAgICAvLyBTZWxlY3QgcHJldmlvdXNseSBlbnRlcmVkIHZhbHVlIHRvIHJlcGxhY2Ugd2l0aCBhIG5ldyBpbnB1dFxuICAgIChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5zZWxlY3QoKTtcbiAgfVxuXG4gICNmb2N1c0lucHV0KGlkeDogbnVtYmVyKSB7XG4gICAgLy8gSW4gb3JkZXIgbm90IHRvIGludGVyZmVyZSB3aXRoIHRoZSBpbnB1dCB3ZSBzZXRUaW1lb3V0XG4gICAgLy8gYmVmb3JlIGFkdmFuY2luZyB0aGUgZm9jdXNcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5wdXRFbHMuZ2V0KGlkeCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XG4gIH1cblxuICAjdXBkYXRlV2lyZWRWYWx1ZSgpIHtcbiAgICAvLyBXZSB3YW50IHRvIGV4cG9zZSB0aGUgdmFsdWUgYXMgYSBwbGFpbiBzdHJpbmdcbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIG5vdCB0byBpbnRlcmZlcmUgd2l0aCB0aGUgaW5wdXQgd2Ugc2V0VGltZW91dFxuICAgIC8vIGJlZm9yZSBhZHZhbmNpbmcgdGhlIGZvY3VzXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9uQ2hhbmdlPy4odGhpcy5pbnB1dHMudmFsdWUuam9pbignJykpKTtcbiAgfVxuICAvLyBTS1MyOEZFQjI1IHRvZ2dsZSBDb3VudHJ5IERyb3Bkb3duXG4gIHRvZ2dsZUNvdW50cnlEcm9wZG93bigpIHtcbiAgICB0aGlzLnNob3dDb3VudHJ5RHJvcGRvd24gPSAhdGhpcy5zaG93Q291bnRyeURyb3Bkb3duO1xuICB9XG5cbiAgLy8gU0tTMjhGRUIyNSBDb3VudHJ5IERyb3Bkb3duIHNlYXJjaCBmaWx0ZXJcbiAgZmlsdGVyQ291bnRyaWVzKGV2ZW50IDogYW55KSB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgIHRoaXMuZmlsdGVyZWRDb3VudHJpZXMgPSB0aGlzLmNvdW50cmllcy5maWx0ZXIoY291bnRyeSA9PlxuICAgICAgY291bnRyeS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5jb3VudHJ5U2VhcmNoLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICBjb3VudHJ5LmRpYWxfY29kZS5pbmNsdWRlcyh0aGlzLmNvdW50cnlTZWFyY2gpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFNLUzI4RkVCMjUgQ291bnRyeSBEcm9wZG93biBzZWxlY3QgZnVuY3Rpb25cbiAgc2VsZWN0Q291bnRyeShjb3VudHJ5OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGNvdW50cnk7XG4gICAgdGhpcy5zaG93Q291bnRyeURyb3Bkb3duID0gZmFsc2U7XG4gICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnMoW1xuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnJlbW92ZURpYWxDb2RlRnJvbVJlZ2V4KHRoaXMuc2VsZWN0ZWRDb3VudHJ5LnJlZ2V4LCB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsX2NvZGUpKVxuICAgIF0pO1xuICAgIC8vIFNLUzI4RkVCMjUgVXBkYXRlIHRoZSBjb250cm9sJ3MgdmFsdWUgd2l0aCB0aGUgbmV3IGRpYWwgY29kZVxuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLnJhd0lucHV0VmFsKTtcblxuICAgIC8vIFNLUzI4RkVCMjUgSW1tZWRpYXRlbHkgdXBkYXRlIHZhbGlkaXR5IHN0YXR1c1xuICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAvLyBTS1MyOEZFQjI1IFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBpZiBuZWVkZWRcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsX2NvZGUrIFwiIFwiICsgdGhpcy5yYXdJbnB1dFZhbDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG4gIC8vIFNLUzI4RkVCMjUgcmVtb3ZlIERpYWxDb2RlIEZyb20gUmVnZXhcbiAgcmVtb3ZlRGlhbENvZGVGcm9tUmVnZXgob3JpZ2luYWxSZWdleDogc3RyaW5nLCBkaWFsQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBlc2NhcGVkRGlhbENvZGUgPSBkaWFsQ29kZS5yZXBsYWNlKC9cXCsvZywgXCJcXFxcK1wiKTtcbiAgICByZXR1cm4gb3JpZ2luYWxSZWdleC5yZXBsYWNlKGBeJHtlc2NhcGVkRGlhbENvZGV9YCwgJ14nKTtcbiAgfVxuXG4gIC8vIFNLUzI4RkVCMjUgcmVtb3ZlIERpYWxDb2RlIEZyb20gUmVnZXggZm9yIHNob3cgaW4gaW5wdXRcbiAgcmVtb3ZlRGlhbENvZGUocGxhY2Vob2xkZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyLnJlcGxhY2UoL15cXCtcXGQrXFxzKi8sICcnKTtcbiAgfVxuICBibHVyRW1pdCgpe1xuICAgIHRoaXMub25CbHVyLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cbiAgZm9jdXNpbkVtaXQoZXZlbnQ6IGFueSl7XG4gICAgdGhpcy5vbkZvY3VzLmVtaXQoZXZlbnQpO1xuICB9XG4gIHRvZ2dsZShldmVudDogYW55KXtcbiAgICB0aGlzLnRvZ2dsZUVtaXQuZW1pdChldmVudCk7XG4gIH1cbiAgb25FZGl0b3JGb2N1c091dCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLnZhbHVlIHx8ICcnO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChjdXJyZW50VmFsdWUpO1xuICB9XG4gIHZpZXdFZGl0Q2xpY2socXVlczogYW55KSB7XG4gICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gdGhpcy52YWx1ZTsgLy8gU3RvcmUgdGhlIG9yaWdpbmFsIHZhbHVlXG4gICAgdGhpcy52aWV3RWRpdCA9IHRydWU7IC8vIEVudGVyIHZpZXcgZWRpdCBtb2RlXG4gICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xuICAgIHRoaXMudXBkYXRlQ29udHJvbFN0YXRlKCk7IC8vIFVwZGF0ZSBjb250cm9sIHN0YXRlXG4gIH1cbiAgc2F2ZUNoYW5nZXMgPSAoZXZlbnQ/OiBDdXN0b21FdmVudCkgPT4ge1xuICAgIC8vIFNLUzE0SlVOMjUgRW1pdCBzYXZlL2Rpc2NhcmQgZXZlbnQgb25seSBpZiB0aGUgY3VycmVudCBxdWVzdGlvbiB3YXMgY2hhbmdlZFxuICAgIGlmKGV2ZW50KSBpZiAoZXZlbnQuZGV0YWlsPy5pZCAhPT0gdGhpcy5xdWVzdGlvbj8uaWQpIHJldHVybjtcbiAgICBsZXQgcXVlcyA9IHRoaXMucXVlc3Rpb25cbiAgICBxdWVzWydzaW5nbGVGaWVsZENoYW5nZSddID0gdHJ1ZVxuICAgIGxldCBjaGFuZ2U6IGFueTtcbiAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uPy5pZDtcbiAgICBjaGFuZ2VbJ3ZhbHVlT2JqJ10gPSB0aGlzLnZhbHVlO1xuICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24/LnJlZmVyZW5jZUZpZWxkO1xuICAgIHRoaXMuaW5wdXRWYWx1ZS5lbWl0KHtxdWVzdGlvbiA6IHF1ZXMsIHZhbHVlOiBjaGFuZ2V9KTsgLy8gRW1pdCB0aGUgdXBkYXRlZCB2YWx1ZVxuICAgIHRoaXMudmlld0VkaXQgPSBmYWxzZTsgLy8gRXhpdCB2aWV3IGVkaXQgbW9kZVxuICAgIHRoaXMubW9kZSA9ICd2aWV3JzsgLy8gU3dpdGNoIGJhY2sgdG8gdmlldyBtb2RlXG4gICAgdGhpcy51cGRhdGVDb250cm9sU3RhdGUoKTsgLy8gVXBkYXRlIGNvbnRyb2wgc3RhdGVcbiAgfVxuICBkaXNjYXJkQ2hhbmdlcyA9IChldmVudD86IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgLy8gU0tTMTRKVU4yNSBFbWl0IHNhdmUvZGlzY2FyZCBldmVudCBvbmx5IGlmIHRoZSBjdXJyZW50IHF1ZXN0aW9uIHdhcyBjaGFuZ2VkXG4gICAgaWYoZXZlbnQpIGlmIChldmVudC5kZXRhaWw/LmlkICE9PSB0aGlzLnF1ZXN0aW9uPy5pZCkgcmV0dXJuO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm9yaWdpbmFsVmFsdWUpOyAvLyBSZXZlcnQgdG8gb3JpZ2luYWwgdmFsdWVcbiAgICB0aGlzLnZpZXdFZGl0ID0gZmFsc2U7IC8vIEV4aXQgdmlldyBlZGl0IG1vZGVcbiAgICB0aGlzLm1vZGUgPSAndmlldyc7IC8vIFN3aXRjaCBiYWNrIHRvIHZpZXcgbW9kZVxuICAgIHRoaXMudXBkYXRlQ29udHJvbFN0YXRlKCk7IC8vIFVwZGF0ZSBjb250cm9sIHN0YXRlXG4gIH1cbiAgb3BlbkRhdGVQaWNrZXIodHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgIHRoaXMuZHRQaWNrZXIub3BlbigpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLmRQaWNrZXIub3BlbigpO1xuICAgIH1cbiAgfVxuICByZW1vdmVWYWx1ZSgpe1xuICAgIHRoaXMucmVtb3ZlVmFsdWVFbWl0LmVtaXQoKVxuICB9XG4gIG9uQ2xpY2tIeXBlcmxpbmsoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaHlwZXJMaW5rKSB7XG4gICAgICB0aGlzLmh5cGVybGlua0VtaXQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tIFNLUzMxSkFOMjUgLS0+XG48ZGl2IGNsYXNzPVwiaG92ZXItd3JhcHBlciBpbnB1dC13cmFwcGVyXCIgKGRvY3VtZW50OmNsaWNrKT1cImNsb3NlRHJvcGRvd24oJGV2ZW50KVwiPlxuICA8ZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJsYWJlbCAmJiB0eXBlICE9ICdjaGVja2JveCcgJiYgc2hvd0xhYmVsXCIgW25nU3R5bGVdPVwie1xuICAgICAgICAncGFkZGluZy10b3AnOiB0eXBlID09PSAnbGFiZWwnID8gJzEwcHgnIDogJycsXG4gICAgICAgICdwYWRkaW5nLWJvdHRvbSc6IHR5cGUgPT09ICdsYWJlbCcgPyAnMTBweCcgOiAnJ1xuICAgICAgfVwiICBbc3R5bGUuZm9udC13ZWlnaHRdPVwibGFiZWxXZWlnaHQgfHwgIHR5cGUgPT09ICdsYWJlbCcgPyAnYm9sZCcgOiAnbm9ybWFsJ1wiIFtzdHlsZS5mb250LXNpemVdPVwibGFiZWxTaXplIHx8IHR5cGUgPT09ICdsYWJlbCcgPyAnMTZweCcgOiAnMTRweCdcIlxuICAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiA1cHg7XCI+IHt7IGxhYmVsXG4gICAgICB9fVxuICAgICAgPGRpdiAqbmdJZj1cImxhYmVsICYmIHR5cGUgIT0gJ2NoZWNrYm94JyAmJiByZXF1aXJlZCAmJiBzaG93TGFiZWwgJiYgbW9kZSA9PT0gJ2VkaXQnXCIgc3R5bGU9XCJjb2xvcjogcmVkO1wiPio8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidHlwZSAhPT0gJ2xhYmVsJyAmJiB0eXBlICE9PSAncmljaHRleHQnICYmIHR5cGUgIT09ICd0ZXh0YXJlYSdcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydjaGVja2JveC1wYWRkaW5nJzogdHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0eXBlID09PSAnb3RwJ31cIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgPT09ICdlZGl0JyA/IGZyb20gPT09ICdueHRUYWJsZScgPyAnJyA6IGlucHV0QmdDb2xvciA6ICcnXCJcbiAgICAgICAgW2NsYXNzLmludmFsaWRdPVwiY29udHJvbC5pbnZhbGlkICYmIGNvbnRyb2wudG91Y2hlZFwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cIm1vZGUgIT09ICdlZGl0JyAmJiBmcm9tID09PSAnbnh0VGFibGUnID8gJ25vbmUnOiAnJ1wiXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLWxlZnRdPVwibW9kZSAhPT0gJ2VkaXQnICYmIGZyb20gPT09ICdueHRUYWJsZScgPyAnMHB4JyA6ICcnXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwibW9kZSAhPT0gJ2VkaXQnICYmIGZyb20gPT09ICdueHRUYWJsZScgPyAnMHB4JyA6ICcnXCJcbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwic2hvd0xhYmVsICYmIGxhYmVsID8gJycgOiBmcm9tID09PSAnbnh0VGFibGUnIHx8IGZyb20gPT09ICdub3JtYWxEcm9wRG93bicgPyAnJyA6ICcyMXB4ICFpbXBvcnRhbnQnXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlcl09XCJtb2RlID09PSAnZWRpdCcgPyBmcm9tID09PSAnbnh0VGFibGUnID8gJzFweCBzb2xpZCAjZDJkMmQyJyA6IGlucHV0Qm9yZGVyID09PSAnbm9uZScgPyAoJzFweCBzb2xpZCAnICsgaW5wdXRCZ0NvbG9yKSA6IGlucHV0Qm9yZGVyIDogJ25vbmUnXCJcbiAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiAxMDAlO1wiPlxuICAgICAgICA8aW1nICpuZ0lmPVwiaW5wdXRJY29uTGVmdFNyYyAmJiBtb2RlID09PSAnZWRpdCdcIiBbc3JjXT1cImlucHV0SWNvbkxlZnRTcmNcIiBhbHQ9XCJpY29uXCIgY2xhc3M9XCJpY29uIGxlZnQtaWNvblwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJzdmdIZWlnaHRcIiBbc3R5bGUud2lkdGhdPVwic3ZnV2lkdGhcIiAvPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIHR5cGUgPT09ICdsaXN0J1wiPlxuICAgICAgICAgIDwhLS0gSW5saW5lIHNlYXJjaCBpY29uIFNWRyAtLT5cbiAgICAgICAgICA8c3ZnIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiIzQzNDU1NVwiIHN0cm9rZS1vcGFjaXR5PVwiMC42NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCI+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiOC4yNVwiIGN5PVwiOC4yNVwiIHI9XCI1LjI1XCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgMTVMMTIuNzUgMTIuNzVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gU0tTMjhGRUIyNSBtb2JpbGUgbnVtYmVyIGlucHV0IC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3RlbCdcIiBjbGFzcz1cInBob25lLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgIGNsYXNzPVwiY291bnRyeS1zZWxlY3RvclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMHB4O1wiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ291bnRyeURyb3Bkb3duKClcIj5cbiAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJmbGFnXCI+e3sgc2VsZWN0ZWRDb3VudHJ5LmZsYWcgfX08L3NwYW4+IC0tPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaWFsLWNvZGVcIiBbc3R5bGUuZm9udC1zaXplXT1cImlucHV0VmFsdWVTaXplXCI+e3sgc2VsZWN0ZWRDb3VudHJ5LmRpYWxfY29kZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJhcnJvd1wiIHdpZHRoPVwiOVwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDkgNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgZD1cIk0wLjY4NDEzNiAwLjc2NzQ3N0MwLjkyMjk5OSAwLjUzNzggMS4zMDI4MiAwLjU0NTI0OCAxLjUzMjUgMC43ODQxMTFMNC41IDMuOTM0MzFMNy40Njc1IDAuNzg0MTExQzcuNjk3MTggMC41NDUyNDggOC4wNzcgMC41Mzc4IDguMzE1ODcgMC43Njc0NzdDOC41NTQ3MyAwLjk5NzE1MyA4LjU2MjE4IDEuMzc2OTggOC4zMzI1IDEuNjE1ODRMNC45MzI1IDUuMjE1ODRDNC44MTkzOCA1LjMzMzQ5IDQuNjYzMjEgNS4zOTk5OCA0LjUgNS4zOTk5OEM0LjMzNjc5IDUuMzk5OTggNC4xODA2MiA1LjMzMzQ5IDQuMDY3NSA1LjIxNTg0TDAuNjY3NTAxIDEuNjE1ODRDMC40Mzc4MjUgMS4zNzY5OCAwLjQ0NTI3MiAwLjk5NzE1MyAwLjY4NDEzNiAwLjc2NzQ3N1pcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCIjNjI2MjYyXCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q291bnRyeURyb3Bkb3duXCIgY2xhc3M9XCJjb3VudHJ5LWRyb3Bkb3duXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJveFwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbcmVhZE9ubHldPVwibW9kZSAhPT0gJ2VkaXQnXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggY291bnRyeS4uLlwiIFt2YWx1ZV09XCJjb3VudHJ5U2VhcmNoXCJcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwiZmlsdGVyQ291bnRyaWVzKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50cnktbGlzdFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGZpbHRlcmVkQ291bnRyaWVzXCIgY2xhc3M9XCJjb3VudHJ5LWl0ZW1cIiAoY2xpY2spPVwic2VsZWN0Q291bnRyeShjb3VudHJ5KVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmxhZ1wiPnt7IGNvdW50cnkuZmxhZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIj57eyBjb3VudHJ5Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaWFsLWNvZGVcIj57eyBjb3VudHJ5LmRpYWxfY29kZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZih0eXBlICE9PSAnZGF0ZXRpbWUnICYmIHR5cGUgIT09ICdkYXRlJyAmJiB0eXBlICE9PSAndGltZScpe1xuICAgICAgICA8aW5wdXQgKm5nRm9yPVwibGV0IGlucHV0IG9mIGNhY2hlZElucHV0TGlzdDsgbGV0IGkgPSBpbmRleFwiICNpbnB1dEVsICNpbnB1dFJlZiBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgICAgW3R5cGVdPVwiaXNQYXNzd29yZFZpc2libGUgPyAndGV4dCcgOiB0eXBlID09PSAnb3RwJyB8fCB0eXBlID09PSAnZHJvcGRvd24nID8gJ3RleHQnIDogdHlwZVwiXG4gICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwidHlwZSA9PT0gJ290cCcgfHwgbW9kZSAhPT0gJ2VkaXQnID8gJycgOiBwbGFjZWhvbGRlciB8fCAodHlwZSA9PT0gJ3RlbCcgPyByZW1vdmVEaWFsQ29kZShzZWxlY3RlZENvdW50cnkucGxhY2Vob2xkZXIpIDogbGFiZWwpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2ZjT3RwJzogdHlwZSA9PT0gJ290cCcsJ2N1c3RvbS1pbnB1dCc6IHR5cGUgIT09ICdvdHAnLCdoeXBlcmxpbmstaW5wdXQnOiBoeXBlckxpbmssJ2Zyb20tbnh0LXRhYmxlJzogZnJvbSA9PT0gJ254dFRhYmxlJyB9XCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidHlwZSA9PT0gJ290cCcgPyAkYW55KGlucHV0KSA6IGNvbnRyb2xcIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwidHlwZSA9PT0gJ290cCd8fCBtb2RlICE9PSAnZWRpdCcgPyAnJyA6IGZyb20gPT09ICdueHRUYWJsZScgPyAnJyA6IGlucHV0QmdDb2xvclwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInR5cGUgPT09ICdvdHAnIHx8IG1vZGUgIT09ICdlZGl0JyA/ICcnIDogaW5wdXRUZXh0Q29sb3JcIlxuICAgICAgICAgIFtzdHlsZS5ib3JkZXJdPVwidHlwZSA9PT0gJ290cCcgfHwgbW9kZSAhPT0gJ2VkaXQnID8gJycgOiBmcm9tID09PSAnbnh0VGFibGUnID8gJ25vbmUnIDogaW5wdXRCb3JkZXJcIlxuICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwidHlwZSA9PT0gJ290cCcgPyAnJyA6IGlucHV0SGVpZ2h0XCIgW3N0eWxlLndpZHRoXT1cInR5cGUgPT09ICdvdHAnID8gJycgOiB0eXBlID09PSAnY2hlY2tib3gnID8gJ2F1dG8nIDogaW5wdXRXaWR0aFwiXG4gICAgICAgICAgW3N0eWxlLnBhZGRpbmddPVwiZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJydcIlxuICAgICAgICAgIFt2YWx1ZV09XCJ0eXBlID09PSAndGVsJyA/IHJhd0lucHV0VmFsIDogdmFsdWVcIlxuICAgICAgICAgIChpbnB1dCk9XCJ0eXBlID09PSAnb3RwJyA/IGhhbmRsZUlucHV0KCkgOiBvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIFtjaGVja2VkXT1cInR5cGUgPT09ICdjaGVja2JveCcgPyB2YWx1ZSA6ICcnXCJcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cInR5cGUgPT09ICdvdHAnID8gJycgOiBpbnB1dFZhbHVlU2l6ZVwiIChmb2N1cyk9XCJ0eXBlID09PSAnb3RwJyA/IGhhbmRsZUZvY3VzKCRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAoYmx1cik9XCJ0eXBlID09PSAnb3RwJyA/IG9uVG91Y2hlZCgpIDogYmx1ckVtaXQoKVwiXG4gICAgICAgICAgKGtleXByZXNzKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlS2V5UHJlc3MoJGV2ZW50LCBpKSA6IG51bGxcIlxuICAgICAgICAgIChrZXlkb3duKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlS2V5RG93bigkZXZlbnQsIGkpIDogZnJvbSA9PT0gJ25vcm1hbERyb3BEb3duJyA/ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpIDogbnVsbFwiXG4gICAgICAgICAgKHBhc3RlKT1cInR5cGUgPT09ICdvdHAnID8gaGFuZGxlUGFzdGUoJGV2ZW50LCBpKSA6IG51bGxcIiBpbnB1dG1vZGU9XCJ0eXBlID09PSAnb3RwJyA/IG51bWVyaWMgOiBudWxsXCJcbiAgICAgICAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwidHlwZSA9PT0gJ290cCcgJiYgaSA9PT0gMCA/ICdvbmUtdGltZS1jb2RlJyA6IHR5cGUgPT09ICdsaXN0JyA/ICdsaXN0JyA6ICdvZmYnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInR5cGUgPT09ICdsaXN0JyA/IHNob3dTdWdnZXN0aW9uIDogJ29mZidcIlxuICAgICAgICAgIFthdHRyLmlucHV0bW9kZV09XCJ0eXBlID09PSAnb3RwJyA/ICdudW1lcmljJyA6IG51bGxcIiBbYXR0ci5uYW1lXT1cInR5cGUgPT09ICdvdHAnICYmIGkgPT09IDAgPyAnb3RwJyA6IG51bGxcIlxuICAgICAgICAgIChmb2N1c2luKT1cImZvY3VzaW5FbWl0KCRldmVudClcIiBbYXR0ci5hcmlhLW93bnNdPVwidHlwZSA9PT0gJ2xpc3QnID8gYXJpYU93bnMgOiAnb2ZmJ1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0eXBlID09PSAnbGlzdCcgPyBhcmlhSGFzUG9wdXAgOiAnb2ZmJ1wiIFxuICAgICAgICAgIFtyZWFkb25seV09XCJmcm9tID09PSAnbm9ybWFsRHJvcERvd24nXCIgXG4gICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1mb250JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJGb250IHx8IGxhYmVsRm9udCA6ICcnLFxuICAgICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1jb2xvcic6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyQ29sb3IgfHwgJyM5YTlhOWEnIDogJycsXG4gICAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLXNpemUnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlclNpemUgfHwgaW5wdXRWYWx1ZVNpemUgOiAnJyxcbiAgICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItd2VpZ2h0JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJXZWlnaHQgfHwgbGFiZWxXZWlnaHQgOiAnJ1xuICAgICAgICAgICAgfVwiIChrZXlkb3duLmVudGVyKT1cInR5cGUgPT09ICdsb2NhdGlvbicgPyAkZXZlbnQucHJldmVudERlZmF1bHQoKSA6ICcnXCJcbiAgICAgICAgICBhdXRvY29ycmVjdD1cInR5cGUgPT09ICdsb2NhdGlvbicgPyAnb2ZmJyA6ICcnXCIgYXV0b2NhcGl0YWxpemU9XCJ0eXBlID09PSAnbG9jYXRpb24nID8gJ29mZicgOiAnJ1wiXG4gICAgICAgICAgc3BlbGxjaGVjaz1cInR5cGUgPT09ICdsb2NhdGlvbicgPyAnb2ZmJyA6ICcnXCIgXG4gICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmKHR5cGUgPT09ICd0aW1lJyl7XG4gICAgICAgICAgPGlucHV0ICNpbnB1dEVsIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBwbGFjZWhvbGRlciB8fCAnSEg6TU0nXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidueHQtY3VzdG9tLWlucHV0J1wiIFtuZ0NsYXNzXT1cInsnaHlwZXJsaW5rLWlucHV0JzogaHlwZXJMaW5rLCdmcm9tLW54dC10YWJsZSc6IGZyb20gPT09ICdueHRUYWJsZSd9XCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBmcm9tID09PSAnbnh0VGFibGUnID8gJycgOiBpbnB1dEJnQ29sb3JcIlxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogaW5wdXRUZXh0Q29sb3JcIiBbc3R5bGUuYm9yZGVyXT1cIm1vZGUgIT09ICdlZGl0JyA/ICdub25lJyA6IGZyb20gPT09ICdueHRUYWJsZScgPyAnbm9uZScgOiBpbnB1dEJvcmRlclwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImlucHV0SGVpZ2h0XCJcbiAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nXT1cImZyb20gPT09ICdueHRUYWJsZScgPyAnMHB4JyA6ICcxMHB4IDEwcHggMTBweCA1cHgnXCJcbiAgICAgICAgICAgIFtzdHlsZS5mb250LXNpemVdPVwiaW5wdXRWYWx1ZVNpemVcIiAoYmx1cik9XCIgYmx1ckVtaXQoKVwiIChmb2N1c2luKT1cImZvY3VzaW5FbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLWZvbnQnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlckZvbnQgfHwgbGFiZWxGb250IDogJycsXG4gICAgICAgICAgICAgICctLXBsYWNlaG9sZGVyLWNvbG9yJzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJDb2xvciB8fCAnIzlhOWE5YScgOiAnJyxcbiAgICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItc2l6ZSc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyU2l6ZSB8fCBpbnB1dFZhbHVlU2l6ZSA6ICcnLFxuICAgICAgICAgICAgICAnLS1wbGFjZWhvbGRlci13ZWlnaHQnOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlcldlaWdodCB8fCBsYWJlbFdlaWdodCA6ICcnXG4gICAgICAgICAgICB9XCIgc3R5bGU9XCJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcIiBcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmKHR5cGUgPT09ICdkYXRldGltZScgfHwgdHlwZSA9PT0gJ2RhdGUnKXtcbiAgICAgICAgPGlucHV0ICNpbnB1dEVsIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgICBbb3dsRGF0ZVRpbWVUcmlnZ2VyXT1cInR5cGUgPT09ICdkYXRldGltZScgPyBkdCA6IHR5cGUgPT09ICdkYXRlJyA/IGR0MiA6IGR0XCJcbiAgICAgICAgICBbb3dsRGF0ZVRpbWVdPVwidHlwZSA9PT0gJ2RhdGV0aW1lJyA/IGR0IDogdHlwZSA9PT0gJ2RhdGUnID8gZHQyIDogZHRcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogcGxhY2Vob2xkZXIgfHwgdHlwZSA9PT0gJ2RhdGV0aW1lJyA/ICdERC9NTS9ZWVlZIEhIOk1NJyA6IHR5cGUgPT09ICdkYXRlJyA/ICdERC9NTS9ZWVlZJyA6ICdERC9NTS9ZWVlZIEhIOk1NJ1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiJ254dC1jdXN0b20taW5wdXQnXCIgW25nQ2xhc3NdPVwieydoeXBlcmxpbmstaW5wdXQnOiBoeXBlckxpbmssJ2Zyb20tbnh0LXRhYmxlJzogZnJvbSA9PT0gJ254dFRhYmxlJ31cIlxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcnIDogaW5wdXRCZ0NvbG9yXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBpbnB1dFRleHRDb2xvclwiIFtzdHlsZS5ib3JkZXJdPVwibW9kZSAhPT0gJ2VkaXQnID8gJ25vbmUnIDogZnJvbSA9PT0gJ254dFRhYmxlJyA/ICdub25lJyA6IGlucHV0Qm9yZGVyXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImlucHV0SGVpZ2h0XCJcbiAgICAgICAgICBbc3R5bGUucGFkZGluZ109XCJmcm9tID09PSAnbnh0VGFibGUnID8gJzBweCcgOiAnMTBweCAxMHB4IDEwcHggNXB4J1wiXG4gICAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCJpbnB1dFZhbHVlU2l6ZVwiIChibHVyKT1cIiBibHVyRW1pdCgpXCIgKGZvY3VzaW4pPVwiZm9jdXNpbkVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgKGRhdGVUaW1lSW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1mb250JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJGb250IHx8IGxhYmVsRm9udCA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItY29sb3InOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlckNvbG9yIHx8ICcjOWE5YTlhJyA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItc2l6ZSc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyU2l6ZSB8fCBpbnB1dFZhbHVlU2l6ZSA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItd2VpZ2h0JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJXZWlnaHQgfHwgbGFiZWxXZWlnaHQgOiAnJ1xuICAgICAgICAgIH1cIiBzdHlsZT1cIlxuICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1wiIFxuICAgICAgICAvPlxuICAgICAgICA8b3dsLWRhdGUtdGltZSAjZHQ+PC9vd2wtZGF0ZS10aW1lPlxuICAgICAgICA8b3dsLWRhdGUtdGltZSBbcGlja2VyVHlwZV09XCInY2FsZW5kYXInXCIgI2R0Mj48L293bC1kYXRlLXRpbWU+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgIT09ICdlZGl0J1wiIGNsYXNzPVwiaHlwZXJsaW5rLW92ZXJsYXlcIiAoY2xpY2spPVwiaHlwZXJMaW5rID8gb25DbGlja0h5cGVybGluaygkZXZlbnQpIDogJydcIlxuICAgICAgICBzdHlsZT1cIiBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDk0JTsgaGVpZ2h0OiAxMDAlOyB6LWluZGV4OiA1OyBcIj48L2Rpdj4gICAgICBcbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdlZGl0JyAmJiAodHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCB0eXBlID09PSAnZGF0ZScpXCIgKGNsaWNrKT1cIm9wZW5EYXRlUGlja2VyKHR5cGUpXCJcbiAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTIuMzIwMzEgNy4wNTI4NUgxNS42ODgzXCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuMzMyMiA5Ljk4MjU0SDEyLjMzOTJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05LjAwNDA4IDkuOTgyNTRIOS4wMTEwM1wiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTUuNjY4MTUgOS45ODI1NEg1LjY3NTA5XCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuMzMyMiAxMi44OTc2SDEyLjMzOTJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05LjAwNDA4IDEyLjg5NzZIOS4wMTEwM1wiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTUuNjY4MTUgMTIuODk3Nkg1LjY3NTA5XCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTIuMDMyOSAxLjVWMy45NjgwOVwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTUuOTc0MzUgMS41VjMuOTY4MDlcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyLjE3ODcgMi42ODQ1N0g1LjgyODIyQzMuNjI1NyAyLjY4NDU3IDIuMjUgMy45MTE1MiAyLjI1IDYuMTY2ODRWMTIuOTU0MUMyLjI1IDE1LjI0NDkgMy42MjU3IDE2LjUwMDIgNS44MjgyMiAxNi41MDAySDEyLjE3MThDMTQuMzgxMiAxNi41MDAyIDE1Ljc1IDE1LjI2NjEgMTUuNzUgMTMuMDEwOFY2LjE2Njg0QzE1Ljc1NjkgMy45MTE1MiAxNC4zODgyIDIuNjg0NTcgMTIuMTc4NyAyLjY4NDU3WlwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIHR5cGUgPT09ICdsaXN0J1wiPlxuICAgICAgICAgIDwhLS0gTWluaW1hbCBEb3R0ZWQgTG9hZGVyIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImRvdHRlZC1sb2FkZXJcIiBhcmlhLWxhYmVsPVwiTG9hZGluZ1wiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBkb3Qgb2YgW10uY29uc3RydWN0b3IoNik7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImRvdFwiIFtzdHlsZS4tLWldPVwiaVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzTG9hZGluZ1wiIChjbGljayk9XCJyZW1vdmVWYWx1ZSgpXCIgKGtleWRvd24uZW50ZXIpPVwicmVtb3ZlVmFsdWUoKVwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOS4xNjk5MiAxNC44Mjk5TDE0LjgyOTkgOS4xNjk5MlwiIHN0cm9rZT1cIiMyOTJEMzJcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTE0LjgyOTkgMTQuODI5OUw5LjE2OTkyIDkuMTY5OTJcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk05IDIySDE1QzIwIDIyIDIyIDIwIDIyIDE1VjlDMjIgNCAyMCAyIDE1IDJIOUM0IDIgMiA0IDIgOVYxNUMyIDIwIDQgMjIgOSAyMlpcIiBzdHJva2U9XCIjMjkyRDMyXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgIDwvc3ZnPiAgICAgICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY2hlY2tib3hMYWJcIiAqbmdJZj1cImxhYmVsICYmIHR5cGUgPT09ICdjaGVja2JveCcgJiYgc2hvd0xhYmVsXCIgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImxhYmVsV2VpZ2h0XCJcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cImxhYmVsU2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJsYWJlbENvbG9yIHx8ICcjOWE5YTlhJ1wiXG4gICAgICAgICAgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwOyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XCI+IHt7IGxhYmVsIH19XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImxhYmVsICYmIHR5cGUgPT09ICdjaGVja2JveCcgJiYgcmVxdWlyZWQgJiYgc2hvd0xhYmVsXCIgc3R5bGU9XCJjb2xvcjogcmVkO1wiPio8L2Rpdj5cbiAgICAgICAgPC9sYWJlbD4gICAgIFxuICAgICAgICA8IS0tIEFsd2F5cyBTaG93IERyb3Bkb3duIEljb24gLS0+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgdHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCIgIChtb3VzZWRvd24pPVwidG9nZ2xlKCRldmVudCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk05IDIySDE1QzIwIDIyIDIyIDIwIDIyIDE1VjlDMjIgNCAyMCAyIDE1IDJIOUM0IDIgMiA0IDIgOVYxNUMyIDIwIDQgMjIgOSAyMlpcIiBzdHJva2U9XCIjMjkyRDMyXCJcbiAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgPHBhdGggZD1cIk04LjQ2OTk3IDEwLjY0TDEyIDE0LjE2TDE1LjUzIDEwLjY0XCIgc3Ryb2tlPVwiIzI5MkQzMlwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICA8L3N2Zz5cblxuICAgICAgICA8aW1nICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIGlucHV0SWNvblJpZ2h0U3JjXCIgW3NyY109XCJpbnB1dEljb25SaWdodFNyY1wiIGNsYXNzPVwiaWNvbiByaWdodC1pY29uXCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cInN2Z0hlaWdodFwiIFtzdHlsZS53aWR0aF09XCJzdmdXaWR0aFwiPlxuICAgICAgICA8aW1nICpuZ0lmPVwibW9kZSA9PT0gJ2VkaXQnICYmIHR5cGUgPT09ICdwYXNzd29yZCdcIiBjbGFzcz1cInRvZ2dsZS1pY29uXCIgKGNsaWNrKT1cInRvZ2dsZVBhc3N3b3JkVmlzaWJpbGl0eSgpXCJcbiAgICAgICAgICBbc3JjXT1cIiFpc1Bhc3N3b3JkVmlzaWJsZSA/ICcvYXNzZXRzL2ltYWdlcy9pY29ucy9nZW5lcmFsL0hpZGUtUGFzc3dvcmQuc3ZnJyA6ICcvYXNzZXRzL2ltYWdlcy9pY29ucy9nZW5lcmFsL1Nob3ctUGFzc3dvcmQuc3ZnJ1wiIC8+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJtb2RlICE9PSAnZWRpdCcgJiYgIXF1ZXN0aW9uLmlzUmVhZE9ubHkgJiYgZnJvbSAhPT0gJ254dFRhYmxlJyBcIiBjbGFzcz1cImVkaXQtaWNvblwiIFxuICAgICAgICAgIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgICAgICAgZmlsbD1cIiNCMEFEQUJcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPCEtLSBTS1MxNEpVTjI1IFNob3cgc2F2ZSBhbmQgY2FuY2VsIGljb25zIG9ubHkgd2hlbiB0aGUgaW5wdXQgdmFsdWUgaXMgZWRpdGVkIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld0VkaXQgJiYgb3JpZ2luYWxWYWx1ZSAhPT0gdmFsdWVcIiAobW91c2VlbnRlcik9XCJpc1NhdmVIb3ZlcmVkID0gdHJ1ZVwiIChtb3VzZWxlYXZlKT1cImlzU2F2ZUhvdmVyZWQgPSBmYWxzZVwiXG4gICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA1cHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XG4gICAgICAgICAgPHN2ZyAqbmdJZj1cIiFpc1NhdmVIb3ZlcmVkXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNNS45NTAyIDAuNUM4Ljk2MDA2IDAuNTAwMTA2IDExLjQwMDQgMi45NDAzMSAxMS40MDA0IDUuOTUwMkMxMS40MDAzIDguOTU5OTkgOC45NTk5OSAxMS40MDAzIDUuOTUwMiAxMS40MDA0QzIuOTQwMzEgMTEuNDAwNCAwLjUwMDEwNiA4Ljk2MDA2IDAuNSA1Ljk1MDJDMC41IDIuOTQwMjQgMi45NDAyNCAwLjUgNS45NTAyIDAuNVpcIlxuICAgICAgICAgICAgICBzdHJva2U9XCIjODM3RjhFXCIgLz5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIGQ9XCJNOC44ODExMSAzLjg0NTgzQzguODMyNjkgMy43OTcyIDguNzc1MTMgMy43NTg2IDguNzExNzYgMy43MzIyN0M4LjY0ODM4IDMuNzA1OTQgOC41ODA0MyAzLjY5MjM4IDguNTExOCAzLjY5MjM4QzguNDQzMTcgMy42OTIzOCA4LjM3NTIxIDMuNzA1OTQgOC4zMTE4NCAzLjczMjI3QzguMjQ4NDYgMy43NTg2IDguMTkwOTEgMy43OTcyIDguMTQyNDkgMy44NDU4M0w0LjgyNjkgNy4xNjM0N0wzLjM1MjUzIDUuNjg5MUMzLjMwNDAzIDUuNjQwNiAzLjI0NjQ2IDUuNjAyMTMgMy4xODMwOSA1LjU3NTg4QzMuMTE5NzIgNS41NDk2NCAzLjA1MTgxIDUuNTM2MTMgMi45ODMyMiA1LjUzNjEzQzIuOTE0NjMgNS41MzYxMyAyLjg0NjcyIDUuNTQ5NjQgMi43ODMzNSA1LjU3NTg4QzIuNzE5OTkgNS42MDIxMyAyLjY2MjQxIDUuNjQwNiAyLjYxMzkxIDUuNjg5MUMyLjU2NTQxIDUuNzM3NiAyLjUyNjk0IDUuNzk1MTggMi41MDA2OSA1Ljg1ODU0QzIuNDc0NDUgNS45MjE5MSAyLjQ2MDk0IDUuOTg5ODIgMi40NjA5NCA2LjA1ODQxQzIuNDYwOTQgNi4xMjcgMi40NzQ0NSA2LjE5NDkxIDIuNTAwNjkgNi4yNTgyOEMyLjUyNjk0IDYuMzIxNjUgMi41NjU0MSA2LjM3OTIyIDIuNjEzOTEgNi40Mjc3Mkw0LjQ1Njc3IDguMjcwNThDNC41MDUxOSA4LjMxOTIyIDQuNTYyNzQgOC4zNTc4MSA0LjYyNjEyIDguMzg0MTRDNC42ODk1IDguNDEwNDcgNC43NTc0NSA4LjQyNDAzIDQuODI2MDggOC40MjQwM0M0Ljg5NDcxIDguNDI0MDMgNC45NjI2NiA4LjQxMDQ3IDUuMDI2MDQgOC4zODQxNEM1LjA4OTQyIDguMzU3ODEgNS4xNDY5NyA4LjMxOTIyIDUuMTk1MzkgOC4yNzA1OEw4Ljg4MTExIDQuNTg0NDVDOC45Mjk3NCA0LjUzNjAzIDguOTY4MzQgNC40Nzg0OCA4Ljk5NDY3IDQuNDE1MUM5LjAyMSA0LjM1MTczIDkuMDM0NTYgNC4yODM3NyA5LjAzNDU2IDQuMjE1MTRDOS4wMzQ1NiA0LjE0NjUxIDkuMDIxIDQuMDc4NTYgOC45OTQ2NyA0LjAxNTE4QzguOTY4MzQgMy45NTE4IDguOTI5NzQgMy44OTQyNSA4Ljg4MTExIDMuODQ1ODNaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiM4MzdGOEVcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuXG4gICAgICAgICAgPHN2ZyAqbmdJZj1cImlzU2F2ZUhvdmVyZWRcIiAoY2xpY2spPVwic2F2ZUNoYW5nZXMoKVwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTUuOTUgMTIuODAwNEM5LjIzNjA5IDEyLjgwMDQgMTEuOSAxMC4xMzY1IDExLjkgNi44NTAzOUMxMS45IDMuNTY0MyA5LjIzNjA5IDAuOTAwMzkxIDUuOTUgMC45MDAzOTFDMi42NjM5MSAwLjkwMDM5MSAwIDMuNTY0MyAwIDYuODUwMzlDMCAxMC4xMzY1IDIuNjYzOTEgMTIuODAwNCA1Ljk1IDEyLjgwMDRaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiMyNTk1NjZcIiAvPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk04Ljg4MTExIDQuNzQ2MjJDOC44MzI2OSA0LjY5NzU5IDguNzc1MTMgNC42NTg5OSA4LjcxMTc2IDQuNjMyNjZDOC42NDgzOCA0LjYwNjMzIDguNTgwNDMgNC41OTI3NyA4LjUxMTggNC41OTI3N0M4LjQ0MzE3IDQuNTkyNzcgOC4zNzUyMSA0LjYwNjMzIDguMzExODQgNC42MzI2NkM4LjI0ODQ2IDQuNjU4OTkgOC4xOTA5MSA0LjY5NzU5IDguMTQyNDkgNC43NDYyMkw0LjgyNjkgOC4wNjM4NkwzLjM1MjUzIDYuNTg5NDlDMy4zMDQwMyA2LjU0MDk5IDMuMjQ2NDYgNi41MDI1MiAzLjE4MzA5IDYuNDc2MjdDMy4xMTk3MiA2LjQ1MDAzIDMuMDUxODEgNi40MzY1MiAyLjk4MzIyIDYuNDM2NTJDMi45MTQ2MyA2LjQzNjUyIDIuODQ2NzIgNi40NTAwMyAyLjc4MzM1IDYuNDc2MjdDMi43MTk5OSA2LjUwMjUyIDIuNjYyNDEgNi41NDA5OSAyLjYxMzkxIDYuNTg5NDlDMi41NjU0MSA2LjYzNzk5IDIuNTI2OTQgNi42OTU1NyAyLjUwMDY5IDYuNzU4OTNDMi40NzQ0NSA2LjgyMjMgMi40NjA5NCA2Ljg5MDIyIDIuNDYwOTQgNi45NTg4QzIuNDYwOTQgNy4wMjczOSAyLjQ3NDQ1IDcuMDk1MzEgMi41MDA2OSA3LjE1ODY3QzIuNTI2OTQgNy4yMjIwNCAyLjU2NTQxIDcuMjc5NjEgMi42MTM5MSA3LjMyODExTDQuNDU2NzcgOS4xNzA5N0M0LjUwNTE5IDkuMjE5NjEgNC41NjI3NCA5LjI1ODIgNC42MjYxMiA5LjI4NDUzQzQuNjg5NSA5LjMxMDg2IDQuNzU3NDUgOS4zMjQ0MiA0LjgyNjA4IDkuMzI0NDJDNC44OTQ3MSA5LjMyNDQyIDQuOTYyNjYgOS4zMTA4NiA1LjAyNjA0IDkuMjg0NTNDNS4wODk0MiA5LjI1ODIgNS4xNDY5NyA5LjIxOTYxIDUuMTk1MzkgOS4xNzA5N0w4Ljg4MTExIDUuNDg0ODRDOC45Mjk3NCA1LjQzNjQyIDguOTY4MzQgNS4zNzg4NyA4Ljk5NDY3IDUuMzE1NDlDOS4wMjEgNS4yNTIxMiA5LjAzNDU2IDUuMTg0MTYgOS4wMzQ1NiA1LjExNTUzQzkuMDM0NTYgNS4wNDY5IDkuMDIxIDQuOTc4OTUgOC45OTQ2NyA0LjkxNTU3QzguOTY4MzQgNC44NTIyIDguOTI5NzQgNC43OTQ2NSA4Ljg4MTExIDQuNzQ2MjJaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2aWV3RWRpdCAmJiBvcmlnaW5hbFZhbHVlICE9PSB2YWx1ZVwiIChtb3VzZWVudGVyKT1cImlzRGlzY2FyZEhvdmVyZWQgPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwiaXNEaXNjYXJkSG92ZXJlZCA9IGZhbHNlXCJcbiAgICAgICAgICBzdHlsZT1cIiBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxuICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNEaXNjYXJkSG92ZXJlZFwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTcuMDU1NTUgNC4wMDg4M0w1Ljk0IDUuMTI0MzhMNC44MjQ0NSA0LjAwODgzQzQuNTc4NjEgMy43NjI5OSA0LjE4MTkxIDMuNzYyOTkgMy45MzYwNyA0LjAwODgzQzMuNjkwMjMgNC4yNTQ2NyAzLjY5MDIzIDQuNjUxMzcgMy45MzYwNyA0Ljg5NzIxTDUuMDUxNjIgNi4wMTI3NkwzLjkzNjA3IDcuMTI4MzFDMy42OTAyMyA3LjM3NDE1IDMuNjkwMjMgNy43NzA4NSAzLjkzNjA3IDguMDE2NjlDNC4xODE5MSA4LjI2MjUzIDQuNTc4NjEgOC4yNjI1MyA0LjgyNDQ1IDguMDE2NjlMNS45NCA2LjkwMTE0TDcuMDU1NTUgOC4wMTY2OUM3LjMwMTM5IDguMjYyNTMgNy42OTgwOSA4LjI2MjUzIDcuOTQzOTMgOC4wMTY2OUM4LjE4OTc3IDcuNzcwODUgOC4xODk3NyA3LjM3NDE1IDcuOTQzOTMgNy4xMjgzMUw2LjgyODM4IDYuMDEyNzZMNy45NDM5MyA0Ljg5NzIxQzguMTg5NzcgNC42NTEzNyA4LjE4OTc3IDQuMjU0NjcgNy45NDM5MyA0LjAwODgzQzcuNjk4MDkgMy43NzI4NSA3LjMwMDIxIDMuNzcyODUgNy4wNTU1NSA0LjAwODgzWk01Ljk0IDAuMDgyMDMxMkMyLjcwMDE3IDAuMDgyMDMxMiAwLjA4MDg1OTQgMi43MDEzNCAwLjA4MDg1OTQgNS45NDExOEMwLjA4MDg1OTQgOS4xODEwMSAyLjcwMDE3IDExLjgwMDMgNS45NCAxMS44MDAzQzkuMTc5ODMgMTEuODAwMyAxMS43OTkxIDkuMTgxMDEgMTEuNzk5MSA1Ljk0MTE4QzExLjc5OTEgMi43MDEzNCA5LjE3OTgzIDAuMDgyMDMxMiA1Ljk0IDAuMDgyMDMxMlpNNS45NCAxMC42MzY3QzMuMzU0MjYgMTAuNjM2NyAxLjI0NDIyIDguNTI2NjcgMS4yNDQyMiA1Ljk0MTE4QzEuMjQ0MjIgMy4zNTU1MyAzLjM1NDI2IDEuMjQ1NDkgNS45NCAxLjI0NTQ5QzguNTI1NTggMS4yNDU0OSAxMC42MzU2IDMuMzU1NTMgMTAuNjM1NiA1Ljk0MTE4QzEwLjYzNTYgOC41MjY2NyA4LjUyNTU4IDEwLjYzNjcgNS45NCAxMC42MzY3WlwiXG4gICAgICAgICAgICAgIGZpbGw9XCIjQjBBREFCXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cblxuICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc0Rpc2NhcmRIb3ZlcmVkXCIgKGNsaWNrKT1cImRpc2NhcmRDaGFuZ2VzKClcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDEyIDEzXCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk03LjA1NTU1IDQuOTc0NzFMNS45NCA2LjA5MDI2TDQuODI0NDUgNC45NzQ3MUM0LjU3ODYxIDQuNzI4ODcgNC4xODE5MSA0LjcyODg3IDMuOTM2MDcgNC45NzQ3MUMzLjY5MDIzIDUuMjIwNTUgMy42OTAyMyA1LjYxNzI1IDMuOTM2MDcgNS44NjMwOUw1LjA1MTYyIDYuOTc4NjRMMy45MzYwNyA4LjA5NDE5QzMuNjkwMjMgOC4zNDAwMyAzLjY5MDIzIDguNzM2NzMgMy45MzYwNyA4Ljk4MjU3QzQuMTgxOTEgOS4yMjg0MSA0LjU3ODYxIDkuMjI4NDEgNC44MjQ0NSA4Ljk4MjU3TDUuOTQgNy44NjcwMkw3LjA1NTU1IDguOTgyNTdDNy4zMDEzOSA5LjIyODQxIDcuNjk4MDkgOS4yMjg0MSA3Ljk0MzkzIDguOTgyNTdDOC4xODk3NyA4LjczNjczIDguMTg5NzcgOC4zNDAwMyA3Ljk0MzkzIDguMDk0MTlMNi44MjgzOCA2Ljk3ODY0TDcuOTQzOTMgNS44NjMwOUM4LjE4OTc3IDUuNjE3MjUgOC4xODk3NyA1LjIyMDU1IDcuOTQzOTMgNC45NzQ3MUM3LjY5ODA5IDQuNzM4NzMgNy4zMDAyMSA0LjczODczIDcuMDU1NTUgNC45NzQ3MVpNNS45NCAxLjA2MDYyQzIuNzAwMTcgMS4wNjA2MiAwLjA4MDg1OTQgMy42Nzk5MyAwLjA4MDg1OTQgNi45MTk3N0MwLjA4MDg1OTQgMTAuMTU5NiAyLjcwMDE3IDEyLjc3ODkgNS45NCAxMi43Nzg5QzkuMTc5ODMgMTIuNzc4OSAxMS43OTkxIDEwLjE1OTYgMTEuNzk5MSA2LjkxOTc3QzExLjc5OTEgMy42Nzk5MyA5LjE3OTgzIDEuMDYwNjIgNS45NCAxLjA2MDYyWk01Ljk0IDExLjYxNTNDMy4zNTQyNiAxMS42MTUzIDEuMjQ0MjIgOS41MDUyNSAxLjI0NDIyIDYuOTE5NzdDMS4yNDQyMiA0LjMzNDEyIDMuMzU0MjYgMi4yMjQwOCA1Ljk0IDIuMjI0MDhDOC41MjU1OCAyLjIyNDA4IDEwLjYzNTYgNC4zMzQxMiAxMC42MzU2IDYuOTE5NzdDMTAuNjM1NiA5LjUwNTI1IDguNTI1NTggMTEuNjE1MyA1Ljk0IDExLjYxNTNaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGRjM2MzZcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9PSAnbGFiZWwnICYmIHR5cGUgIT09ICdjaGVja2JveCcgJiYgKHR5cGUgPT09ICdyaWNodGV4dCcgfHwgdHlwZSA9PT0gJ3RleHRhcmVhJylcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwic2hvd0xhYmVsICYmIGxhYmVsID8gJycgOiBmcm9tID09PSAnbnh0VGFibGUnIHx8IGZyb20gPT09ICdub3JtYWxEcm9wRG93bicgPyAnJyA6ICcyMXB4ICFpbXBvcnRhbnQnXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlci1yYWRpdXNdPVwibW9kZSAhPT0gJ2VkaXQnICYmIGZyb20gPT09ICdueHRUYWJsZScgPyAnbm9uZSc6ICcnXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJtb2RlICE9PSAnZWRpdCcgJiYgZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJydcIlxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCJtb2RlICE9PSAnZWRpdCcgJiYgZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJydcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgPT09ICdlZGl0JyA/IGZyb20gPT09ICdueHRUYWJsZScgPyAnJyA6IGlucHV0QmdDb2xvciA6ICcnXCJcbiAgICAgICAgW2NsYXNzLmludmFsaWRdPVwiY29udHJvbC5pbnZhbGlkICYmIGNvbnRyb2wudG91Y2hlZFwiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJdPVwibW9kZSA9PT0gJ2VkaXQnID8gZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcxcHggc29saWQgI2QyZDJkMicgOiBpbnB1dEJvcmRlciA9PT0gJ25vbmUnID8gKCcxcHggc29saWQgJyArIGlucHV0QmdDb2xvcikgOiBpbnB1dEJvcmRlciA6ICdub25lJ1wiPlxuICAgICAgICA8IS0tIFNLUzE0SlVOMjUgIER5bmFtaWNhbGx5IGxvYWQgUXVpbGwgZWRpdG9yIHRvb2xiYXIgLS0+XG4gICAgICAgIDxxdWlsbC1lZGl0b3IgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgdHlwZSA9PT0gJ3JpY2h0ZXh0J1wiIFsobmdNb2RlbCldPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFtyZWFkT25seV09XCJtb2RlICE9PSAnZWRpdCcgfHwgcXVlc3Rpb24uaXNSZWFkT25seVwiXG4gICAgICAgICAgKGZvY3Vzb3V0KT1cIm9uRWRpdG9yRm9jdXNPdXQoKVwiIFtjbGFzcy5lcnJvcl09XCJjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBjb250cm9sLmRpcnR5KVwiXG4gICAgICAgICAgW21vZHVsZXNdPVwiZ2V0UXVpbGxNb2R1bGVzKHF1ZXN0aW9uLmlkKVwiXG4gICAgICAgICAgW3N0eWxlLnBhZGRpbmddPVwiZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJzEwcHggMTBweCAxMHB4IDVweCdcIlxuICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XCI+XG4gICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgICAgICA8IS0tIFZpZXcgbW9kZSAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGUgIT09ICdlZGl0JyAmJiB0eXBlID09PSAncmljaHRleHQnXCIgY2xhc3M9XCJxdWlsbC12aWV3LWNvbnRlbnRcIiBbaW5uZXJIVE1MXT1cInZhbHVlXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmddPVwiZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcwcHgnIDogJzEwcHggMTBweCAxMHB4IDVweCdcIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1wiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRleHRhcmVhICpuZ0lmPVwidHlwZSA9PT0gJ3RleHRhcmVhJ1wiIFtpZF09XCJpbnB1dElkXCIgW3Jvd3NdPVwiZnJvbSA9PT0gJ254dFRhYmxlJyA/IDEgOiByb3dzXCJcbiAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJtb2RlICE9PSAnZWRpdCcgPyAnJyA6IHBsYWNlaG9sZGVyXCIgW25nQ2xhc3NdPVwiJ2N1c3RvbS1pbnB1dCdcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2h5cGVybGluay1pbnB1dCc6IGh5cGVyTGluaywnZnJvbS1ueHQtdGFibGUnOiBmcm9tID09PSAnbnh0VGFibGUnfVwiIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cIm1vZGUgIT09ICdlZGl0JyA/ICcnIDogZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcnIDogaW5wdXRCZ0NvbG9yXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwibW9kZSAhPT0gJ2VkaXQnID8gJycgOiBpbnB1dFRleHRDb2xvclwiIFtzdHlsZS5ib3JkZXJdPVwibW9kZSAhPT0gJ2VkaXQnID8gJ25vbmUnIDogZnJvbSA9PT0gJ254dFRhYmxlJyA/ICcxcHggc29saWQgI2QyZDJkMicgOiBpbnB1dEJvcmRlclwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJpbnB1dEhlaWdodFwiIFt2YWx1ZV09XCJ2YWx1ZVwiIChpbnB1dCk9XCIgb25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cImlucHV0VmFsdWVTaXplXCIgKGJsdXIpPVwiIGJsdXJFbWl0KClcIiAoZm9jdXNpbik9XCJmb2N1c2luRW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwibW9kZSAhPT0gJ2VkaXQnIHx8IHF1ZXN0aW9uLmlzUmVhZE9ubHlcIiBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAnLS1wbGFjZWhvbGRlci1mb250JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJGb250IHx8IGxhYmVsRm9udCA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItY29sb3InOiBtb2RlID09PSAnZWRpdCcgPyBwbGFjZWhvbGRlckNvbG9yIHx8ICcjOWE5YTlhJyA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItc2l6ZSc6IG1vZGUgPT09ICdlZGl0JyA/IHBsYWNlaG9sZGVyU2l6ZSB8fCBpbnB1dFZhbHVlU2l6ZSA6ICcnLFxuICAgICAgICAgICAgJy0tcGxhY2Vob2xkZXItd2VpZ2h0JzogbW9kZSA9PT0gJ2VkaXQnID8gcGxhY2Vob2xkZXJXZWlnaHQgfHwgbGFiZWxXZWlnaHQgOiAnJ1xuICAgICAgICAgIH1cIiBcbiAgICAgICAgICBbc3R5bGUucGFkZGluZ109XCJmcm9tID09PSAnbnh0VGFibGUnID8gJzBweCcgOiAnMTBweCAxMHB4IDEwcHggNXB4J1wiXG4gICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8c3ZnICpuZ0lmPVwibW9kZSAhPT0gJ2VkaXQnICYmICF2aWV3RWRpdCAmJiBmcm9tICE9PSAnbnh0VGFibGUnICYmICh0eXBlID09PSAncmljaHRleHQnIHx8IHR5cGUgPT09ICd0ZXh0YXJlYScpICYmICFxdWVzdGlvbi5pc1JlYWRPbmx5XCJcbiAgICAgICAgICBjbGFzcz1cImVkaXQtaWNvblwiIChjbGljayk9XCJ2aWV3RWRpdENsaWNrKHF1ZXN0aW9uKVwiIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTMgMTRcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNMS45OTk4NyA5LjAwMTdMNC4zOTYwMiAxMS4zOTc5QzQuNTAzNzEgMTEuNTA1NSA0LjY2NTI1IDExLjUwNTUgNC43NzI5NCAxMS4zOTc5TDEwLjc0OTkgNS4zOTQwMUMxMC44NTc2IDUuMjg2MzEgMTAuODU3NiA1LjEyNDc3IDEwLjc0OTkgNS4wMTcwOEw4LjM4MDY0IDIuNjQ3ODVDOC4yNzI5NCAyLjU0MDE2IDguMTExNDEgMi41NDAxNiA4LjAwMzcxIDIuNjQ3ODVMMS45OTk4NyA4LjY1MTdDMS44OTIxNyA4Ljc1OTM5IDEuODkyMTcgOC45MjA5MyAxLjk5OTg3IDkuMDAxN1pNOS4xNjE0IDEuNTQ0MDFDOS4wNTM3MSAxLjY1MTcgOS4wNTM3MSAxLjgxMzI0IDkuMTYxNCAxLjkyMDkzTDExLjUzMDYgNC4yOTAxNkMxMS42MzgzIDQuMzk3ODUgMTEuNzk5OSA0LjM5Nzg1IDExLjkwNzYgNC4yOTAxNkwxMi41ODA2IDMuNjE3MDhDMTMuMDExNCAzLjIxMzI0IDEzLjAxMTQgMi41NjcwOCAxMi41ODA2IDIuMTM2MzFMMTEuMzE1MyAwLjg3MDkyOEMxMC44ODQ1IDAuNDQwMTU5IDEwLjIxMTQgMC40NDAxNTkgOS43ODA2MyAwLjg3MDkyOEw5LjE2MTQgMS41NDQwMVpNMC4wMDc1NTg2MiAxMi45ODYzQy0wLjA0NjI4NzUgMTMuMjU1NSAwLjE5NjAyIDEzLjQ5NzkgMC40NjUyNTEgMTMuNDQ0TDMuMzk5ODcgMTIuNzQ0QzMuNTA3NTYgMTIuNzE3MSAzLjU4ODMzIDEyLjY2MzIgMy42NDIxNyAxMi42MDk0TDMuNjk2MDIgMTIuNTU1NUMzLjc0OTg3IDEyLjUwMTcgMy43NzY3OSAxMi4zMTMyIDMuNjY5MSAxMi4yMDU1TDEuMjQ2MDIgOS43ODI0N0MxLjEzODMzIDkuNjc0NzggMC45NDk4NjYgOS43MDE3IDAuODk2MDIgOS43NTU1NEwwLjg0MjE3NCA5LjgwOTM5QzAuNzYxNDA1IDkuODkwMTYgMC43MzQ0ODIgOS45NzA5MyAwLjcwNzU1OSAxMC4wNTE3TDAuMDA3NTU4NjIgMTIuOTg2M1pcIlxuICAgICAgICAgICAgZmlsbD1cIiNCMEFEQUJcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwhLS0gU0tTMjNBUFIyNSBVc2UgY29udHJvbC5pbnZhbGlkIHRvIHNob3cgZXJyb3Igb24gc3VibWl0IGNsaWNrIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlICE9ICdjaGVja2JveCcgJiYgdHlwZSAhPT0gJ2xhYmVsJyAmJiBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBjb250cm9sLmRpcnR5KVwiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4O1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cbiAgICAgICAge3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==