ngx-scandoc 18.0.3 → 19.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ngx-scandoc.mjs +128 -127
- package/fesm2022/ngx-scandoc.mjs.map +1 -1
- package/package.json +9 -11
- package/esm2022/core/app.worker.mjs +0 -236
- package/esm2022/core/components/base.component.mjs +0 -15
- package/esm2022/core/components/camera-switch/camera-switch.component.mjs +0 -25
- package/esm2022/core/components/components.module.mjs +0 -69
- package/esm2022/core/components/manual-scan/manual-scan.component.mjs +0 -290
- package/esm2022/core/components/scan/scan.component.mjs +0 -732
- package/esm2022/core/components/scan-results/scan-results.component.mjs +0 -65
- package/esm2022/core/components/webcam/domain/webcam-image.mjs +0 -58
- package/esm2022/core/components/webcam/domain/webcam-init-error.mjs +0 -3
- package/esm2022/core/components/webcam/domain/webcam-mirror-properties.mjs +0 -3
- package/esm2022/core/components/webcam/util/webcam.util.mjs +0 -50
- package/esm2022/core/components/webcam/webcam/webcam.component.mjs +0 -543
- package/esm2022/core/components/webcam/webcam.module.mjs +0 -29
- package/esm2022/core/helpers/object-utils.mjs +0 -100
- package/esm2022/core/interfaces/config.mjs +0 -2
- package/esm2022/core/interfaces/guest.data.mjs +0 -2
- package/esm2022/core/pipes/pipes.module.mjs +0 -19
- package/esm2022/core/pipes/safeResourceUrl.pipe.mjs +0 -20
- package/esm2022/core/shared/material.module.mjs +0 -162
- package/esm2022/core/tokens/config.tokens.mjs +0 -4
- package/esm2022/dialogs/components/blank/blank.component.mjs +0 -46
- package/esm2022/dialogs/components/confirm/confirm.component.mjs +0 -51
- package/esm2022/dialogs/components/loading/loading.component.mjs +0 -12
- package/esm2022/dialogs/components/prompt-manual/prompt-manual.component.mjs +0 -30
- package/esm2022/dialogs/components/scan-profile/scan-profile.component.mjs +0 -79
- package/esm2022/dialogs/components/scan-selfie/scan-selfie.component.mjs +0 -95
- package/esm2022/dialogs/components/turn-document/turn-document.component.mjs +0 -31
- package/esm2022/dialogs/dialogs.core.provider.mjs +0 -120
- package/esm2022/dialogs/dialogs.module.mjs +0 -102
- package/esm2022/forms/form.module.mjs +0 -87
- package/esm2022/forms/types/avatar.type.mjs +0 -58
- package/esm2022/forms/types/profile.image.type.mjs +0 -64
- package/esm2022/forms/types/title.type.mjs +0 -32
- package/esm2022/lib/ngx-scandoc.module.mjs +0 -44
- package/esm2022/ngx-scandoc.mjs +0 -5
- package/esm2022/providers/auth.provider.mjs +0 -113
- package/esm2022/providers/camera.provider.mjs +0 -87
- package/esm2022/providers/interceptor.provider.mjs +0 -77
- package/esm2022/providers/layout.provider.mjs +0 -30
- package/esm2022/providers/scan.form.mjs +0 -347
- package/esm2022/providers/scan.provider.mjs +0 -756
- package/esm2022/providers/translate-loader.provider.mjs +0 -126
- package/esm2022/providers/translation.provider.mjs +0 -133
- package/esm2022/providers/webrtc.provider.mjs +0 -58
- package/esm2022/public-api.mjs +0 -33
|
@@ -1,756 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Observable, of } from 'rxjs';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import moment from 'moment';
|
|
5
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
6
|
-
import { SCAN_CONFIG_TOKEN } from '../core/tokens/config.tokens';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common/http";
|
|
9
|
-
export class ScanProvider {
|
|
10
|
-
constructor(http, injector) {
|
|
11
|
-
this.http = http;
|
|
12
|
-
this.injector = injector;
|
|
13
|
-
this.config = this.injector.get(SCAN_CONFIG_TOKEN);
|
|
14
|
-
this.canStoreImages = this.config.canStoreImages || false;
|
|
15
|
-
}
|
|
16
|
-
genderList() {
|
|
17
|
-
return {
|
|
18
|
-
M: 'MALE',
|
|
19
|
-
'M/M': 'MALE',
|
|
20
|
-
F: 'FEMALE',
|
|
21
|
-
'F/F': 'FEMALE',
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
get enableVerification() {
|
|
25
|
-
return this.config.enableVerification;
|
|
26
|
-
}
|
|
27
|
-
addGuest(guestData) {
|
|
28
|
-
const data = {
|
|
29
|
-
AcceptTermsAndConditions: true,
|
|
30
|
-
DataFields: {
|
|
31
|
-
GuestImageType: 'base64',
|
|
32
|
-
...guestData,
|
|
33
|
-
},
|
|
34
|
-
Settings: {},
|
|
35
|
-
};
|
|
36
|
-
const $request = this.http.put(this.config.guestAddPath, data);
|
|
37
|
-
return $request;
|
|
38
|
-
}
|
|
39
|
-
stateless(DocumentFaceImage, LiveFaceImage) {
|
|
40
|
-
const data = {
|
|
41
|
-
AcceptTermsAndConditions: true,
|
|
42
|
-
DataFields: {
|
|
43
|
-
DocumentFaceImageType: 'base64',
|
|
44
|
-
DocumentFaceImage,
|
|
45
|
-
LiveFaceImageType: 'base64',
|
|
46
|
-
LiveFaceImage,
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
const $request = this.http.post(this.config.stateLessPath, data);
|
|
50
|
-
return $request;
|
|
51
|
-
}
|
|
52
|
-
sendLog(data) {
|
|
53
|
-
const { TransactionID } = data.Response;
|
|
54
|
-
const $request = this.http.post(this.config.errorLoggingPath, data, {
|
|
55
|
-
headers: new HttpHeaders({
|
|
56
|
-
TransactionID,
|
|
57
|
-
}),
|
|
58
|
-
});
|
|
59
|
-
return $request;
|
|
60
|
-
}
|
|
61
|
-
burst(Images, BlurValues) {
|
|
62
|
-
const data = {
|
|
63
|
-
AcceptTermsAndConditions: true,
|
|
64
|
-
DataFields: {
|
|
65
|
-
Images,
|
|
66
|
-
BlurValues,
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
const $request = this.http.post(this.config.validationPath, data);
|
|
70
|
-
return $request;
|
|
71
|
-
}
|
|
72
|
-
countries() {
|
|
73
|
-
if (this.countryNames) {
|
|
74
|
-
return of(this.countryNames);
|
|
75
|
-
}
|
|
76
|
-
return this.http.get('/assets/data/countries2.json').pipe(map((data) => {
|
|
77
|
-
this.countriesData = data.data;
|
|
78
|
-
return this.countriesData;
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
get countryNames() {
|
|
82
|
-
return [
|
|
83
|
-
{ label: 'Aruba', value: 'AW' },
|
|
84
|
-
{ label: 'Afghanistan', value: 'AF' },
|
|
85
|
-
{ label: 'Angola', value: 'AO' },
|
|
86
|
-
{ label: 'Anguilla', value: 'AI' },
|
|
87
|
-
{ label: 'Åland Islands', value: 'AX' },
|
|
88
|
-
{ label: 'Albania', value: 'AL' },
|
|
89
|
-
{ label: 'Andorra', value: 'AD' },
|
|
90
|
-
{ label: 'United Arab Emirates', value: 'AE' },
|
|
91
|
-
{ label: 'Argentina', value: 'AR' },
|
|
92
|
-
{ label: 'Armenia', value: 'AM' },
|
|
93
|
-
{ label: 'American Samoa', value: 'AS' },
|
|
94
|
-
{ label: 'Antarctica', value: 'AQ' },
|
|
95
|
-
{ label: 'French Southern and Antarctic Lands', value: 'TF' },
|
|
96
|
-
{ label: 'Antigua and Barbuda', value: 'AG' },
|
|
97
|
-
{ label: 'Australia', value: 'AU' },
|
|
98
|
-
{ label: 'Austria', value: 'AT' },
|
|
99
|
-
{ label: 'Azerbaijan', value: 'AZ' },
|
|
100
|
-
{ label: 'Burundi', value: 'BI' },
|
|
101
|
-
{ label: 'Belgium', value: 'BE' },
|
|
102
|
-
{ label: 'Benin', value: 'BJ' },
|
|
103
|
-
{ label: 'Burkina Faso', value: 'BF' },
|
|
104
|
-
{ label: 'Bangladesh', value: 'BD' },
|
|
105
|
-
{ label: 'Bulgaria', value: 'BG' },
|
|
106
|
-
{ label: 'Bahrain', value: 'BH' },
|
|
107
|
-
{ label: 'Bahamas', value: 'BS' },
|
|
108
|
-
{ label: 'Bosnia and Herzegovina', value: 'BA' },
|
|
109
|
-
{ label: 'Saint Barthélemy', value: 'BL' },
|
|
110
|
-
{ label: 'Saint Helena, Ascension and Tristan da Cunha', value: 'SH' },
|
|
111
|
-
{ label: 'Belarus', value: 'BY' },
|
|
112
|
-
{ label: 'Belize', value: 'BZ' },
|
|
113
|
-
{ label: 'Bermuda', value: 'BM' },
|
|
114
|
-
{ label: 'Bolivia', value: 'BO' },
|
|
115
|
-
{ label: 'Caribbean Netherlands', value: 'BQ' },
|
|
116
|
-
{ label: 'Brazil', value: 'BR' },
|
|
117
|
-
{ label: 'Barbados', value: 'BB' },
|
|
118
|
-
{ label: 'Brunei', value: 'BN' },
|
|
119
|
-
{ label: 'Bhutan', value: 'BT' },
|
|
120
|
-
{ label: 'Bouvet Island', value: 'BV' },
|
|
121
|
-
{ label: 'Botswana', value: 'BW' },
|
|
122
|
-
{ label: 'Central African Republic', value: 'CF' },
|
|
123
|
-
{ label: 'Canada', value: 'CA' },
|
|
124
|
-
{ label: 'Cocos (Keeling) Islands', value: 'CC' },
|
|
125
|
-
{ label: 'Switzerland', value: 'CH' },
|
|
126
|
-
{ label: 'Chile', value: 'CL' },
|
|
127
|
-
{ label: 'China', value: 'CN' },
|
|
128
|
-
{ label: 'Ivory Coast', value: 'CI' },
|
|
129
|
-
{ label: 'Cameroon', value: 'CM' },
|
|
130
|
-
{ label: 'DR Congo', value: 'CD' },
|
|
131
|
-
{ label: 'Republic of the Congo', value: 'CG' },
|
|
132
|
-
{ label: 'Cook Islands', value: 'CK' },
|
|
133
|
-
{ label: 'Colombia', value: 'CO' },
|
|
134
|
-
{ label: 'Comoros', value: 'KM' },
|
|
135
|
-
{ label: 'Cape Verde', value: 'CV' },
|
|
136
|
-
{ label: 'Costa Rica', value: 'CR' },
|
|
137
|
-
{ label: 'Cuba', value: 'CU' },
|
|
138
|
-
{ label: 'Curaçao', value: 'CW' },
|
|
139
|
-
{ label: 'Christmas Island', value: 'CX' },
|
|
140
|
-
{ label: 'Cayman Islands', value: 'KY' },
|
|
141
|
-
{ label: 'Cyprus', value: 'CY' },
|
|
142
|
-
{ label: 'Czechia', value: 'CZ' },
|
|
143
|
-
{ label: 'Germany', value: 'DE' },
|
|
144
|
-
{ label: 'Djibouti', value: 'DJ' },
|
|
145
|
-
{ label: 'Dominica', value: 'DM' },
|
|
146
|
-
{ label: 'Denmark', value: 'DK' },
|
|
147
|
-
{ label: 'Dominican Republic', value: 'DO' },
|
|
148
|
-
{ label: 'Algeria', value: 'DZ' },
|
|
149
|
-
{ label: 'Ecuador', value: 'EC' },
|
|
150
|
-
{ label: 'Egypt', value: 'EG' },
|
|
151
|
-
{ label: 'Eritrea', value: 'ER' },
|
|
152
|
-
{ label: 'Western Sahara', value: 'EH' },
|
|
153
|
-
{ label: 'Spain', value: 'ES' },
|
|
154
|
-
{ label: 'Estonia', value: 'EE' },
|
|
155
|
-
{ label: 'Ethiopia', value: 'ET' },
|
|
156
|
-
{ label: 'Finland', value: 'FI' },
|
|
157
|
-
{ label: 'Fiji', value: 'FJ' },
|
|
158
|
-
{ label: 'Falkland Islands', value: 'FK' },
|
|
159
|
-
{ label: 'France', value: 'FR' },
|
|
160
|
-
{ label: 'Faroe Islands', value: 'FO' },
|
|
161
|
-
{ label: 'Micronesia', value: 'FM' },
|
|
162
|
-
{ label: 'Gabon', value: 'GA' },
|
|
163
|
-
{ label: 'United Kingdom', value: 'GB' },
|
|
164
|
-
{ label: 'Georgia', value: 'GE' },
|
|
165
|
-
{ label: 'Guernsey', value: 'GG' },
|
|
166
|
-
{ label: 'Ghana', value: 'GH' },
|
|
167
|
-
{ label: 'Gibraltar', value: 'GI' },
|
|
168
|
-
{ label: 'Guinea', value: 'GN' },
|
|
169
|
-
{ label: 'Guadeloupe', value: 'GP' },
|
|
170
|
-
{ label: 'Gambia', value: 'GM' },
|
|
171
|
-
{ label: 'Guinea-Bissau', value: 'GW' },
|
|
172
|
-
{ label: 'Equatorial Guinea', value: 'GQ' },
|
|
173
|
-
{ label: 'Greece', value: 'GR' },
|
|
174
|
-
{ label: 'Grenada', value: 'GD' },
|
|
175
|
-
{ label: 'Greenland', value: 'GL' },
|
|
176
|
-
{ label: 'Guatemala', value: 'GT' },
|
|
177
|
-
{ label: 'French Guiana', value: 'GF' },
|
|
178
|
-
{ label: 'Guam', value: 'GU' },
|
|
179
|
-
{ label: 'Guyana', value: 'GY' },
|
|
180
|
-
{ label: 'Hong Kong', value: 'HK' },
|
|
181
|
-
{ label: 'Heard Island and McDonald Islands', value: 'HM' },
|
|
182
|
-
{ label: 'Honduras', value: 'HN' },
|
|
183
|
-
{ label: 'Croatia', value: 'HR' },
|
|
184
|
-
{ label: 'Haiti', value: 'HT' },
|
|
185
|
-
{ label: 'Hungary', value: 'HU' },
|
|
186
|
-
{ label: 'Indonesia', value: 'ID' },
|
|
187
|
-
{ label: 'Isle of Man', value: 'IM' },
|
|
188
|
-
{ label: 'India', value: 'IN' },
|
|
189
|
-
{ label: 'British Indian Ocean Territory', value: 'IO' },
|
|
190
|
-
{ label: 'Ireland', value: 'IE' },
|
|
191
|
-
{ label: 'Iran', value: 'IR' },
|
|
192
|
-
{ label: 'Iraq', value: 'IQ' },
|
|
193
|
-
{ label: 'Iceland', value: 'IS' },
|
|
194
|
-
{ label: 'Israel', value: 'IL' },
|
|
195
|
-
{ label: 'Italy', value: 'IT' },
|
|
196
|
-
{ label: 'Jamaica', value: 'JM' },
|
|
197
|
-
{ label: 'Jersey', value: 'JE' },
|
|
198
|
-
{ label: 'Jordan', value: 'JO' },
|
|
199
|
-
{ label: 'Japan', value: 'JP' },
|
|
200
|
-
{ label: 'Kazakhstan', value: 'KZ' },
|
|
201
|
-
{ label: 'Kenya', value: 'KE' },
|
|
202
|
-
{ label: 'Kyrgyzstan', value: 'KG' },
|
|
203
|
-
{ label: 'Cambodia', value: 'KH' },
|
|
204
|
-
{ label: 'Kiribati', value: 'KI' },
|
|
205
|
-
{ label: 'Saint Kitts and Nevis', value: 'KN' },
|
|
206
|
-
{ label: 'South Korea', value: 'KR' },
|
|
207
|
-
{ label: 'Kuwait', value: 'KW' },
|
|
208
|
-
{ label: 'Laos', value: 'LA' },
|
|
209
|
-
{ label: 'Lebanon', value: 'LB' },
|
|
210
|
-
{ label: 'Liberia', value: 'LR' },
|
|
211
|
-
{ label: 'Libya', value: 'LY' },
|
|
212
|
-
{ label: 'Saint Lucia', value: 'LC' },
|
|
213
|
-
{ label: 'Liechtenstein', value: 'LI' },
|
|
214
|
-
{ label: 'Sri Lanka', value: 'LK' },
|
|
215
|
-
{ label: 'Lesotho', value: 'LS' },
|
|
216
|
-
{ label: 'Lithuania', value: 'LT' },
|
|
217
|
-
{ label: 'Luxembourg', value: 'LU' },
|
|
218
|
-
{ label: 'Latvia', value: 'LV' },
|
|
219
|
-
{ label: 'Macau', value: 'MO' },
|
|
220
|
-
{ label: 'Saint Martin', value: 'MF' },
|
|
221
|
-
{ label: 'Morocco', value: 'MA' },
|
|
222
|
-
{ label: 'Monaco', value: 'MC' },
|
|
223
|
-
{ label: 'Moldova', value: 'MD' },
|
|
224
|
-
{ label: 'Madagascar', value: 'MG' },
|
|
225
|
-
{ label: 'Maldives', value: 'MV' },
|
|
226
|
-
{ label: 'Mexico', value: 'MX' },
|
|
227
|
-
{ label: 'Marshall Islands', value: 'MH' },
|
|
228
|
-
{ label: 'Macedonia', value: 'MK' },
|
|
229
|
-
{ label: 'Mali', value: 'ML' },
|
|
230
|
-
{ label: 'Malta', value: 'MT' },
|
|
231
|
-
{ label: 'Myanmar', value: 'MM' },
|
|
232
|
-
{ label: 'Montenegro', value: 'ME' },
|
|
233
|
-
{ label: 'Mongolia', value: 'MN' },
|
|
234
|
-
{ label: 'Northern Mariana Islands', value: 'MP' },
|
|
235
|
-
{ label: 'Mozambique', value: 'MZ' },
|
|
236
|
-
{ label: 'Mauritania', value: 'MR' },
|
|
237
|
-
{ label: 'Montserrat', value: 'MS' },
|
|
238
|
-
{ label: 'Martinique', value: 'MQ' },
|
|
239
|
-
{ label: 'Mauritius', value: 'MU' },
|
|
240
|
-
{ label: 'Malawi', value: 'MW' },
|
|
241
|
-
{ label: 'Malaysia', value: 'MY' },
|
|
242
|
-
{ label: 'Mayotte', value: 'YT' },
|
|
243
|
-
{ label: 'Namibia', value: 'NA' },
|
|
244
|
-
{ label: 'New Caledonia', value: 'NC' },
|
|
245
|
-
{ label: 'Niger', value: 'NE' },
|
|
246
|
-
{ label: 'Norfolk Island', value: 'NF' },
|
|
247
|
-
{ label: 'Nigeria', value: 'NG' },
|
|
248
|
-
{ label: 'Nicaragua', value: 'NI' },
|
|
249
|
-
{ label: 'Niue', value: 'NU' },
|
|
250
|
-
{ label: 'Netherlands', value: 'NL' },
|
|
251
|
-
{ label: 'Norway', value: 'NO' },
|
|
252
|
-
{ label: 'Nepal', value: 'NP' },
|
|
253
|
-
{ label: 'Nauru', value: 'NR' },
|
|
254
|
-
{ label: 'New Zealand', value: 'NZ' },
|
|
255
|
-
{ label: 'Oman', value: 'OM' },
|
|
256
|
-
{ label: 'Pakistan', value: 'PK' },
|
|
257
|
-
{ label: 'Panama', value: 'PA' },
|
|
258
|
-
{ label: 'Pitcairn Islands', value: 'PN' },
|
|
259
|
-
{ label: 'Peru', value: 'PE' },
|
|
260
|
-
{ label: 'Philippines', value: 'PH' },
|
|
261
|
-
{ label: 'Palau', value: 'PW' },
|
|
262
|
-
{ label: 'Papua New Guinea', value: 'PG' },
|
|
263
|
-
{ label: 'Poland', value: 'PL' },
|
|
264
|
-
{ label: 'Puerto Rico', value: 'PR' },
|
|
265
|
-
{ label: 'North Korea', value: 'KP' },
|
|
266
|
-
{ label: 'Portugal', value: 'PT' },
|
|
267
|
-
{ label: 'Paraguay', value: 'PY' },
|
|
268
|
-
{ label: 'Palestine', value: 'PS' },
|
|
269
|
-
{ label: 'French Polynesia', value: 'PF' },
|
|
270
|
-
{ label: 'Qatar', value: 'QA' },
|
|
271
|
-
{ label: 'Réunion', value: 'RE' },
|
|
272
|
-
{ label: 'Romania', value: 'RO' },
|
|
273
|
-
{ label: 'Russia', value: 'RU' },
|
|
274
|
-
{ label: 'Rwanda', value: 'RW' },
|
|
275
|
-
{ label: 'Saudi Arabia', value: 'SA' },
|
|
276
|
-
{ label: 'Sudan', value: 'SD' },
|
|
277
|
-
{ label: 'Senegal', value: 'SN' },
|
|
278
|
-
{ label: 'Singapore', value: 'SG' },
|
|
279
|
-
{ label: 'South Georgia', value: 'GS' },
|
|
280
|
-
{ label: 'Svalbard and Jan Mayen', value: 'SJ' },
|
|
281
|
-
{ label: 'Solomon Islands', value: 'SB' },
|
|
282
|
-
{ label: 'Sierra Leone', value: 'SL' },
|
|
283
|
-
{ label: 'El Salvador', value: 'SV' },
|
|
284
|
-
{ label: 'San Marino', value: 'SM' },
|
|
285
|
-
{ label: 'Somalia', value: 'SO' },
|
|
286
|
-
{ label: 'Saint Pierre and Miquelon', value: 'PM' },
|
|
287
|
-
{ label: 'Serbia', value: 'RS' },
|
|
288
|
-
{ label: 'South Sudan', value: 'SS' },
|
|
289
|
-
{ label: 'São Tomé and Príncipe', value: 'ST' },
|
|
290
|
-
{ label: 'Suriname', value: 'SR' },
|
|
291
|
-
{ label: 'Slovakia', value: 'SK' },
|
|
292
|
-
{ label: 'Slovenia', value: 'SI' },
|
|
293
|
-
{ label: 'Sweden', value: 'SE' },
|
|
294
|
-
{ label: 'Swaziland', value: 'SZ' },
|
|
295
|
-
{ label: 'Seychelles', value: 'SC' },
|
|
296
|
-
{ label: 'Syria', value: 'SY' },
|
|
297
|
-
{ label: 'Turks and Caicos Islands', value: 'TC' },
|
|
298
|
-
{ label: 'Chad', value: 'TD' },
|
|
299
|
-
{ label: 'Togo', value: 'TG' },
|
|
300
|
-
{ label: 'Thailand', value: 'TH' },
|
|
301
|
-
{ label: 'Tajikistan', value: 'TJ' },
|
|
302
|
-
{ label: 'Tokelau', value: 'TK' },
|
|
303
|
-
{ label: 'Turkmenistan', value: 'TM' },
|
|
304
|
-
{ label: 'Timor-Leste', value: 'TL' },
|
|
305
|
-
{ label: 'Tonga', value: 'TO' },
|
|
306
|
-
{ label: 'Trinidad and Tobago', value: 'TT' },
|
|
307
|
-
{ label: 'Tunisia', value: 'TN' },
|
|
308
|
-
{ label: 'Turkey', value: 'TR' },
|
|
309
|
-
{ label: 'Tuvalu', value: 'TV' },
|
|
310
|
-
{ label: 'Taiwan', value: 'TW' },
|
|
311
|
-
{ label: 'Tanzania', value: 'TZ' },
|
|
312
|
-
{ label: 'Uganda', value: 'UG' },
|
|
313
|
-
{ label: 'Ukraine', value: 'UA' },
|
|
314
|
-
{ label: 'United States Minor Outlying Islands', value: 'UM' },
|
|
315
|
-
{ label: 'Uruguay', value: 'UY' },
|
|
316
|
-
{ label: 'United States', value: 'US' },
|
|
317
|
-
{ label: 'Uzbekistan', value: 'UZ' },
|
|
318
|
-
{ label: 'Vatican City', value: 'VA' },
|
|
319
|
-
{ label: 'Saint Vincent and the Grenadines', value: 'VC' },
|
|
320
|
-
{ label: 'Venezuela', value: 'VE' },
|
|
321
|
-
{ label: 'British Virgin Islands', value: 'VG' },
|
|
322
|
-
{ label: 'United States Virgin Islands', value: 'VI' },
|
|
323
|
-
{ label: 'Vietnam', value: 'VN' },
|
|
324
|
-
{ label: 'Vanuatu', value: 'VU' },
|
|
325
|
-
{ label: 'Wallis and Futuna', value: 'WF' },
|
|
326
|
-
{ label: 'Samoa', value: 'WS' },
|
|
327
|
-
{ label: 'Yemen', value: 'YE' },
|
|
328
|
-
{ label: 'South Africa', value: 'ZA' },
|
|
329
|
-
{ label: 'Zambia', value: 'ZM' },
|
|
330
|
-
{ label: 'Zimbabwe', value: 'ZW' },
|
|
331
|
-
];
|
|
332
|
-
}
|
|
333
|
-
countryList() {
|
|
334
|
-
return {
|
|
335
|
-
AFG: 'AF',
|
|
336
|
-
ALB: 'AL',
|
|
337
|
-
DZA: 'DZ',
|
|
338
|
-
ASM: 'AS',
|
|
339
|
-
AND: 'AD',
|
|
340
|
-
AGO: 'AO',
|
|
341
|
-
AIA: 'AI',
|
|
342
|
-
ATG: 'AG',
|
|
343
|
-
ARG: 'AR',
|
|
344
|
-
ARM: 'AM',
|
|
345
|
-
ABW: 'AW',
|
|
346
|
-
AUS: 'AU',
|
|
347
|
-
AUT: 'AT',
|
|
348
|
-
AZE: 'AZ',
|
|
349
|
-
BHS: 'BS',
|
|
350
|
-
BHR: 'BH',
|
|
351
|
-
BGD: 'BD',
|
|
352
|
-
BRB: 'BB',
|
|
353
|
-
BLR: 'BY',
|
|
354
|
-
BEL: 'BE',
|
|
355
|
-
BLZ: 'BZ',
|
|
356
|
-
BEN: 'BJ',
|
|
357
|
-
BMU: 'BM',
|
|
358
|
-
BTN: 'BT',
|
|
359
|
-
BOL: 'BO',
|
|
360
|
-
BIH: 'BA',
|
|
361
|
-
BWA: 'BW',
|
|
362
|
-
BRA: 'BR',
|
|
363
|
-
VGB: 'VG',
|
|
364
|
-
BRN: 'BN',
|
|
365
|
-
BGR: 'BG',
|
|
366
|
-
BFA: 'BF',
|
|
367
|
-
BDI: 'BI',
|
|
368
|
-
KHM: 'KH',
|
|
369
|
-
CMR: 'CM',
|
|
370
|
-
CAN: 'CA',
|
|
371
|
-
CPV: 'CV',
|
|
372
|
-
CAF: 'CF',
|
|
373
|
-
TCD: 'TD',
|
|
374
|
-
CHL: 'CL',
|
|
375
|
-
CHN: 'CN',
|
|
376
|
-
HKG: 'HK',
|
|
377
|
-
MAC: 'MO',
|
|
378
|
-
COL: 'CO',
|
|
379
|
-
COM: 'KM',
|
|
380
|
-
COG: 'CG',
|
|
381
|
-
CRI: 'CR',
|
|
382
|
-
CIV: 'CI',
|
|
383
|
-
HRV: 'HR',
|
|
384
|
-
CUB: 'CU',
|
|
385
|
-
CYP: 'CY',
|
|
386
|
-
CZE: 'CZ',
|
|
387
|
-
DNK: 'DK',
|
|
388
|
-
DJI: 'DJ',
|
|
389
|
-
DMA: 'DM',
|
|
390
|
-
DOM: 'DO',
|
|
391
|
-
ECU: 'EC',
|
|
392
|
-
EGY: 'EG',
|
|
393
|
-
SLV: 'SV',
|
|
394
|
-
GNQ: 'GQ',
|
|
395
|
-
ERI: 'ER',
|
|
396
|
-
EST: 'EE',
|
|
397
|
-
ETH: 'ET',
|
|
398
|
-
FRO: 'FO',
|
|
399
|
-
FJI: 'FJ',
|
|
400
|
-
FIN: 'FI',
|
|
401
|
-
FRA: 'FR',
|
|
402
|
-
GUF: 'GF',
|
|
403
|
-
PYF: 'PF',
|
|
404
|
-
GAB: 'GA',
|
|
405
|
-
GMB: 'GM',
|
|
406
|
-
GEO: 'GE',
|
|
407
|
-
DEU: 'DE',
|
|
408
|
-
GHA: 'GH',
|
|
409
|
-
GRC: 'GR',
|
|
410
|
-
GRL: 'GL',
|
|
411
|
-
GRD: 'GD',
|
|
412
|
-
GLP: 'GP',
|
|
413
|
-
GUM: 'GU',
|
|
414
|
-
GTM: 'GT',
|
|
415
|
-
GNB: 'GW',
|
|
416
|
-
HTI: 'HT',
|
|
417
|
-
HND: 'HN',
|
|
418
|
-
ISL: 'IS',
|
|
419
|
-
IDN: 'ID',
|
|
420
|
-
IRQ: 'IQ',
|
|
421
|
-
ITA: 'IT',
|
|
422
|
-
JPN: 'JP',
|
|
423
|
-
JOR: 'JO',
|
|
424
|
-
KAZ: 'KZ',
|
|
425
|
-
KEN: 'KE',
|
|
426
|
-
KIR: 'KI',
|
|
427
|
-
PRK: 'KP',
|
|
428
|
-
KOR: 'KR',
|
|
429
|
-
KWT: 'KW',
|
|
430
|
-
KGZ: 'KG',
|
|
431
|
-
LAO: 'LA',
|
|
432
|
-
LVA: 'LV',
|
|
433
|
-
LBN: 'LB',
|
|
434
|
-
LSO: 'LS',
|
|
435
|
-
LBR: 'LR',
|
|
436
|
-
LBY: 'LY',
|
|
437
|
-
LIE: 'LI',
|
|
438
|
-
LTU: 'LT',
|
|
439
|
-
LUX: 'LU',
|
|
440
|
-
MDG: 'MG',
|
|
441
|
-
MWI: 'MW',
|
|
442
|
-
MYS: 'MY',
|
|
443
|
-
MDV: 'MV',
|
|
444
|
-
MLI: 'ML',
|
|
445
|
-
MLT: 'MT',
|
|
446
|
-
MHL: 'MH',
|
|
447
|
-
MTQ: 'MQ',
|
|
448
|
-
MRT: 'MR',
|
|
449
|
-
MUS: 'MU',
|
|
450
|
-
MEX: 'MX',
|
|
451
|
-
FSM: 'FM',
|
|
452
|
-
MDA: 'MD',
|
|
453
|
-
MCO: 'MC',
|
|
454
|
-
MNG: 'MN',
|
|
455
|
-
MNE: 'ME',
|
|
456
|
-
MSR: 'MS',
|
|
457
|
-
MAR: 'MA',
|
|
458
|
-
MOZ: 'MZ',
|
|
459
|
-
MMR: 'MM',
|
|
460
|
-
NAM: 'NA',
|
|
461
|
-
NRU: 'NR',
|
|
462
|
-
NPL: 'NP',
|
|
463
|
-
NLD: 'NL',
|
|
464
|
-
ANT: 'AN',
|
|
465
|
-
NCL: 'NC',
|
|
466
|
-
NZL: 'NZ',
|
|
467
|
-
NIC: 'NI',
|
|
468
|
-
NER: 'NE',
|
|
469
|
-
NGA: 'NG',
|
|
470
|
-
MNP: 'MP',
|
|
471
|
-
NOR: 'NO',
|
|
472
|
-
OMN: 'OM',
|
|
473
|
-
PAK: 'PK',
|
|
474
|
-
PLW: 'PW',
|
|
475
|
-
PSE: 'PS',
|
|
476
|
-
PAN: 'PA',
|
|
477
|
-
PNG: 'PG',
|
|
478
|
-
PRY: 'PY',
|
|
479
|
-
PER: 'PE',
|
|
480
|
-
PHL: 'PH',
|
|
481
|
-
PCN: 'PN',
|
|
482
|
-
POL: 'PL',
|
|
483
|
-
PRT: 'PT',
|
|
484
|
-
PRI: 'PR',
|
|
485
|
-
QAT: 'QA',
|
|
486
|
-
REU: 'RE',
|
|
487
|
-
ROU: 'RO',
|
|
488
|
-
RUS: 'RU',
|
|
489
|
-
RWA: 'RW',
|
|
490
|
-
KNA: 'KN',
|
|
491
|
-
LCA: 'LC',
|
|
492
|
-
VCT: 'VC',
|
|
493
|
-
WSM: 'WS',
|
|
494
|
-
SMR: 'SM',
|
|
495
|
-
STP: 'ST',
|
|
496
|
-
SAU: 'SA',
|
|
497
|
-
SEN: 'SN',
|
|
498
|
-
SRB: 'RS',
|
|
499
|
-
SYC: 'SC',
|
|
500
|
-
SLE: 'SL',
|
|
501
|
-
SGP: 'SG',
|
|
502
|
-
SVK: 'SK',
|
|
503
|
-
SVN: 'SI',
|
|
504
|
-
SLB: 'SB',
|
|
505
|
-
SOM: 'SO',
|
|
506
|
-
ZAF: 'ZA',
|
|
507
|
-
ESP: 'ES',
|
|
508
|
-
LKA: 'LK',
|
|
509
|
-
SDN: 'SD',
|
|
510
|
-
SUR: 'SR',
|
|
511
|
-
SWZ: 'SZ',
|
|
512
|
-
SWE: 'SE',
|
|
513
|
-
CHE: 'CH',
|
|
514
|
-
SYR: 'SY',
|
|
515
|
-
TJK: 'TJ',
|
|
516
|
-
TZA: 'TZ',
|
|
517
|
-
THA: 'TH',
|
|
518
|
-
TLS: 'TL',
|
|
519
|
-
TGO: 'TG',
|
|
520
|
-
TON: 'TO',
|
|
521
|
-
TTO: 'TT',
|
|
522
|
-
TUN: 'TN',
|
|
523
|
-
TUR: 'TR',
|
|
524
|
-
TKM: 'TM',
|
|
525
|
-
TUV: 'TV',
|
|
526
|
-
UGA: 'UG',
|
|
527
|
-
UKR: 'UA',
|
|
528
|
-
ARE: 'AE',
|
|
529
|
-
GBR: 'GB',
|
|
530
|
-
USA: 'US',
|
|
531
|
-
URY: 'UY',
|
|
532
|
-
UZB: 'UZ',
|
|
533
|
-
VUT: 'VU',
|
|
534
|
-
VEN: 'VE',
|
|
535
|
-
VNM: 'VN',
|
|
536
|
-
VIR: 'VI',
|
|
537
|
-
YEM: 'YE',
|
|
538
|
-
ZMB: 'ZM',
|
|
539
|
-
ZWE: 'ZW',
|
|
540
|
-
};
|
|
541
|
-
}
|
|
542
|
-
get fields() {
|
|
543
|
-
return [
|
|
544
|
-
{
|
|
545
|
-
key: 'Birth Date',
|
|
546
|
-
form: 'birthDate',
|
|
547
|
-
type: 'date',
|
|
548
|
-
main: false,
|
|
549
|
-
blastKey: 'BirthDate',
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
key: 'Given Name',
|
|
553
|
-
form: 'firstName',
|
|
554
|
-
ucFirst: true,
|
|
555
|
-
type: 'string',
|
|
556
|
-
main: true,
|
|
557
|
-
blastKey: 'Name',
|
|
558
|
-
},
|
|
559
|
-
{
|
|
560
|
-
key: 'Surname',
|
|
561
|
-
form: 'lastName',
|
|
562
|
-
ucFirst: true,
|
|
563
|
-
type: 'string',
|
|
564
|
-
main: true,
|
|
565
|
-
blastKey: 'Surname',
|
|
566
|
-
},
|
|
567
|
-
{
|
|
568
|
-
key: 'Sex',
|
|
569
|
-
form: 'gender',
|
|
570
|
-
type: 'gender',
|
|
571
|
-
main: false,
|
|
572
|
-
blastKey: 'Gender',
|
|
573
|
-
},
|
|
574
|
-
{
|
|
575
|
-
key: 'Document Class Name',
|
|
576
|
-
type: 'string',
|
|
577
|
-
form: 'documentType',
|
|
578
|
-
main: false,
|
|
579
|
-
blastKey: 'docType',
|
|
580
|
-
},
|
|
581
|
-
{
|
|
582
|
-
key: 'Document Number',
|
|
583
|
-
type: 'string',
|
|
584
|
-
form: 'documentNumber',
|
|
585
|
-
main: false,
|
|
586
|
-
blastKey: 'DocumentNumber',
|
|
587
|
-
},
|
|
588
|
-
{
|
|
589
|
-
key: 'Issuing State Code',
|
|
590
|
-
type: 'country',
|
|
591
|
-
form: 'issueStateCode',
|
|
592
|
-
blastKey: 'CountryOfIssue',
|
|
593
|
-
main: false,
|
|
594
|
-
},
|
|
595
|
-
{
|
|
596
|
-
key: 'Expiration Date',
|
|
597
|
-
type: 'date',
|
|
598
|
-
form: 'expirationDate',
|
|
599
|
-
blastKey: 'ExpiryDate',
|
|
600
|
-
main: false,
|
|
601
|
-
},
|
|
602
|
-
{
|
|
603
|
-
key: 'Issue Date',
|
|
604
|
-
type: 'date',
|
|
605
|
-
form: 'issueDate',
|
|
606
|
-
blastKey: 'IssuedDate',
|
|
607
|
-
main: false,
|
|
608
|
-
},
|
|
609
|
-
{
|
|
610
|
-
key: 'Birth Place',
|
|
611
|
-
type: 'string',
|
|
612
|
-
form: 'birthPlace',
|
|
613
|
-
blastKey: 'PlaceOfBirth',
|
|
614
|
-
main: false,
|
|
615
|
-
},
|
|
616
|
-
{
|
|
617
|
-
key: 'Issuing Authority',
|
|
618
|
-
type: 'string',
|
|
619
|
-
form: 'issuingPlace',
|
|
620
|
-
blastKey: 'IssuingAuthority',
|
|
621
|
-
main: false,
|
|
622
|
-
},
|
|
623
|
-
{
|
|
624
|
-
key: 'Nationality Code',
|
|
625
|
-
type: 'country',
|
|
626
|
-
form: 'nationality',
|
|
627
|
-
main: false,
|
|
628
|
-
blastKey: 'Nationality',
|
|
629
|
-
},
|
|
630
|
-
{
|
|
631
|
-
key: 'street1',
|
|
632
|
-
type: 'string',
|
|
633
|
-
form: 'street1',
|
|
634
|
-
main: false,
|
|
635
|
-
blastKey: 'AddressStreet',
|
|
636
|
-
},
|
|
637
|
-
{
|
|
638
|
-
key: 'city',
|
|
639
|
-
type: 'string',
|
|
640
|
-
form: 'city',
|
|
641
|
-
main: false,
|
|
642
|
-
blastKey: 'AddressCity',
|
|
643
|
-
},
|
|
644
|
-
{
|
|
645
|
-
key: 'country',
|
|
646
|
-
type: 'country',
|
|
647
|
-
form: 'country',
|
|
648
|
-
main: false,
|
|
649
|
-
blastKey: 'Country',
|
|
650
|
-
},
|
|
651
|
-
{
|
|
652
|
-
key: 'zip',
|
|
653
|
-
type: 'string',
|
|
654
|
-
form: 'zip',
|
|
655
|
-
main: false,
|
|
656
|
-
blastKey: 'AddressZip',
|
|
657
|
-
},
|
|
658
|
-
];
|
|
659
|
-
}
|
|
660
|
-
parseBlast(results) {
|
|
661
|
-
const countries = this.countryList();
|
|
662
|
-
const genders = this.genderList();
|
|
663
|
-
const data = this.fields;
|
|
664
|
-
const validatedAddressFields = [
|
|
665
|
-
'AddressCity',
|
|
666
|
-
'AddressZip',
|
|
667
|
-
'AddressCounty',
|
|
668
|
-
'AddressStreet',
|
|
669
|
-
].filter((key) => results[key].Validated);
|
|
670
|
-
// if no address is validated
|
|
671
|
-
if (validatedAddressFields.length === 0) {
|
|
672
|
-
if (results.Address.Validated) {
|
|
673
|
-
results.AddressStreet = results.Address;
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
const out = data.map((itm) => {
|
|
677
|
-
const res = results[itm.blastKey];
|
|
678
|
-
if (res) {
|
|
679
|
-
const value = res.RecommendedValue || '';
|
|
680
|
-
switch (itm.type) {
|
|
681
|
-
case 'string':
|
|
682
|
-
itm.value = value;
|
|
683
|
-
if (itm.ucFirst) {
|
|
684
|
-
const name = value.toLowerCase();
|
|
685
|
-
itm.value = name.charAt(0).toUpperCase() + name.slice(1);
|
|
686
|
-
}
|
|
687
|
-
break;
|
|
688
|
-
case 'date':
|
|
689
|
-
itm.value = value ? moment(value, 'DD.MM.YYYY').toDate() : null;
|
|
690
|
-
// if (value.indexOf('/Date') >= 0) {
|
|
691
|
-
// console.log(value);
|
|
692
|
-
// const timestamp = value.replace(/\D/gm, '');
|
|
693
|
-
// //itm.value = moment.unix(timestamp / 1000).toDate();
|
|
694
|
-
// itm.value = moment(
|
|
695
|
-
// timestamp - moment(timestamp, 'x').utcOffset() * 60 * 1000,
|
|
696
|
-
// 'x',
|
|
697
|
-
// ).toDate();
|
|
698
|
-
// }
|
|
699
|
-
break;
|
|
700
|
-
case 'country':
|
|
701
|
-
itm.value = countries[value] || null;
|
|
702
|
-
break;
|
|
703
|
-
case 'gender':
|
|
704
|
-
itm.value = genders[value] || null;
|
|
705
|
-
}
|
|
706
|
-
}
|
|
707
|
-
return itm;
|
|
708
|
-
});
|
|
709
|
-
const model = {};
|
|
710
|
-
out.forEach((element) => {
|
|
711
|
-
console.log(element);
|
|
712
|
-
model[element.form] = element.value;
|
|
713
|
-
});
|
|
714
|
-
model.documentType = results.Metadata.DocumentType;
|
|
715
|
-
console.log(model);
|
|
716
|
-
return {
|
|
717
|
-
fields: out,
|
|
718
|
-
model,
|
|
719
|
-
};
|
|
720
|
-
}
|
|
721
|
-
blastPost(data) {
|
|
722
|
-
// const $request = this.api.http.get('/assets/json/blastscan.json');
|
|
723
|
-
const $request = this.http.post(this.config.extractionPath, data);
|
|
724
|
-
return $request.pipe(map((m) => {
|
|
725
|
-
if (m.Metadata && m.Metadata.length > 0) {
|
|
726
|
-
const metadata = m.Metadata[0];
|
|
727
|
-
m.Data.Country = {
|
|
728
|
-
RecommendedValue: metadata.Country,
|
|
729
|
-
};
|
|
730
|
-
m.Data.Metadata = metadata;
|
|
731
|
-
}
|
|
732
|
-
return m;
|
|
733
|
-
}));
|
|
734
|
-
}
|
|
735
|
-
blobToDataUrl(file) {
|
|
736
|
-
return Observable.create((obs) => {
|
|
737
|
-
const reader = new FileReader();
|
|
738
|
-
reader.onerror = (err) => obs.error(err);
|
|
739
|
-
reader.onabort = (err) => obs.error(err);
|
|
740
|
-
reader.onload = () => {
|
|
741
|
-
obs.next(reader.result);
|
|
742
|
-
};
|
|
743
|
-
reader.onloadend = () => obs.complete();
|
|
744
|
-
return reader.readAsDataURL(file);
|
|
745
|
-
});
|
|
746
|
-
}
|
|
747
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScanProvider, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
748
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScanProvider, providedIn: 'root' }); }
|
|
749
|
-
}
|
|
750
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScanProvider, decorators: [{
|
|
751
|
-
type: Injectable,
|
|
752
|
-
args: [{
|
|
753
|
-
providedIn: 'root',
|
|
754
|
-
}]
|
|
755
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i0.Injector }] });
|
|
756
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY2FuZG9jL3NyYy9wcm92aWRlcnMvc2Nhbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFLakUsTUFBTSxPQUFPLFlBQVk7SUFNdkIsWUFBb0IsSUFBZ0IsRUFBVSxRQUFrQjtRQUE1QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUM7SUFDNUQsQ0FBQztJQUNELFVBQVU7UUFDUixPQUFPO1lBQ0wsQ0FBQyxFQUFFLE1BQU07WUFDVCxLQUFLLEVBQUUsTUFBTTtZQUNiLENBQUMsRUFBRSxRQUFRO1lBQ1gsS0FBSyxFQUFFLFFBQVE7U0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7SUFDeEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxTQUFvQjtRQUMzQixNQUFNLElBQUksR0FBRztZQUNYLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsVUFBVSxFQUFFO2dCQUNWLGNBQWMsRUFBRSxRQUFRO2dCQUN4QixHQUFHLFNBQVM7YUFDYjtZQUNELFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9ELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxTQUFTLENBQUMsaUJBQXNCLEVBQUUsYUFBa0I7UUFDbEQsTUFBTSxJQUFJLEdBQUc7WUFDWCx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLFVBQVUsRUFBRTtnQkFDVixxQkFBcUIsRUFBRSxRQUFRO2dCQUMvQixpQkFBaUI7Z0JBQ2pCLGlCQUFpQixFQUFFLFFBQVE7Z0JBQzNCLGFBQWE7YUFDZDtTQUNGLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVM7UUFDZixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRTtZQUNsRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLGFBQWE7YUFDZCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFnQixFQUFFLFVBQWU7UUFDckMsTUFBTSxJQUFJLEdBQUc7WUFDWCx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLFVBQVUsRUFBRTtnQkFDVixNQUFNO2dCQUNOLFVBQVU7YUFDWDtTQUNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FDdkQsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU87WUFDTCxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMvQixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNyQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNoQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNsQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUN2QyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNqQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNqQyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzlDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ25DLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDeEMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUscUNBQXFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUM3RCxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzdDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ25DLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEQsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMxQyxFQUFFLEtBQUssRUFBRSw4Q0FBOEMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3RFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0MsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDdkMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNsRCxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNoQyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pELEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0MsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDOUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMxQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3hDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDNUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUN4QyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMvQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNqQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNsQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNqQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUM5QixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3ZDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDeEMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDdkMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMzQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNoQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNqQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUN2QyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNoQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNuQyxFQUFFLEtBQUssRUFBRSxtQ0FBbUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzNELEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ2pDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ25DLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLGdDQUFnQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDeEQsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDOUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDOUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDaEMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDL0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMvQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNyQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNoQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUM5QixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNqQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNqQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMvQixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNyQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FB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QUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZQUNULEdBQUcsRUFBRSxJQUFJO1lBQ1QsR0FBRyxFQUFFLElBQUk7WUFDVCxHQUFHLEVBQUUsSUFBSTtZ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QztnQkFDRixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDN0IsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNyQixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDbkIsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0Fod0JVLFlBQVk7bUhBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFNjYW5Db25maWcgfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMvY29uZmlnJztcbmltcG9ydCB7IEd1ZXN0RGF0YSB9IGZyb20gJy4uL2NvcmUvaW50ZXJmYWNlcy9ndWVzdC5kYXRhJztcbmltcG9ydCB7IFNDQU5fQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vY29yZS90b2tlbnMvY29uZmlnLnRva2Vucyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY2FuUHJvdmlkZXIge1xuICBjb3VudHJpZXNEYXRhOiBhbnk7XG4gIC8vIGVuYWJsZVZlcmlmaWNhdGlvbiA9IHRydWU7XG5cbiAgcHVibGljIGNvbmZpZzogU2NhbkNvbmZpZztcbiAgY2FuU3RvcmVJbWFnZXM6IGJvb2xlYW47XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0KFNDQU5fQ09ORklHX1RPS0VOKTtcbiAgICB0aGlzLmNhblN0b3JlSW1hZ2VzID0gdGhpcy5jb25maWcuY2FuU3RvcmVJbWFnZXMgfHwgZmFsc2U7XG4gIH1cbiAgZ2VuZGVyTGlzdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgTTogJ01BTEUnLFxuICAgICAgJ00vTSc6ICdNQUxFJyxcbiAgICAgIEY6ICdGRU1BTEUnLFxuICAgICAgJ0YvRic6ICdGRU1BTEUnLFxuICAgIH07XG4gIH1cblxuICBnZXQgZW5hYmxlVmVyaWZpY2F0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5lbmFibGVWZXJpZmljYXRpb247XG4gIH1cbiAgYWRkR3Vlc3QoZ3Vlc3REYXRhOiBHdWVzdERhdGEpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgQWNjZXB0VGVybXNBbmRDb25kaXRpb25zOiB0cnVlLFxuICAgICAgRGF0YUZpZWxkczoge1xuICAgICAgICBHdWVzdEltYWdlVHlwZTogJ2Jhc2U2NCcsXG4gICAgICAgIC4uLmd1ZXN0RGF0YSxcbiAgICAgIH0sXG4gICAgICBTZXR0aW5nczoge30sXG4gICAgfTtcbiAgICBjb25zdCAkcmVxdWVzdCA9IHRoaXMuaHR0cC5wdXQodGhpcy5jb25maWcuZ3Vlc3RBZGRQYXRoLCBkYXRhKTtcbiAgICByZXR1cm4gJHJlcXVlc3Q7XG4gIH1cblxuICBzdGF0ZWxlc3MoRG9jdW1lbnRGYWNlSW1hZ2U6IGFueSwgTGl2ZUZhY2VJbWFnZTogYW55KSB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIEFjY2VwdFRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgICAgIERhdGFGaWVsZHM6IHtcbiAgICAgICAgRG9jdW1lbnRGYWNlSW1hZ2VUeXBlOiAnYmFzZTY0JyxcbiAgICAgICAgRG9jdW1lbnRGYWNlSW1hZ2UsXG4gICAgICAgIExpdmVGYWNlSW1hZ2VUeXBlOiAnYmFzZTY0JyxcbiAgICAgICAgTGl2ZUZhY2VJbWFnZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCAkcmVxdWVzdCA9IHRoaXMuaHR0cC5wb3N0KHRoaXMuY29uZmlnLnN0YXRlTGVzc1BhdGgsIGRhdGEpO1xuICAgIHJldHVybiAkcmVxdWVzdDtcbiAgfVxuXG4gIHNlbmRMb2coZGF0YTogYW55KSB7XG4gICAgY29uc3QgeyBUcmFuc2FjdGlvbklEIH0gPSBkYXRhLlJlc3BvbnNlO1xuICAgIGNvbnN0ICRyZXF1ZXN0ID0gdGhpcy5odHRwLnBvc3QodGhpcy5jb25maWcuZXJyb3JMb2dnaW5nUGF0aCwgZGF0YSwge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICAgVHJhbnNhY3Rpb25JRCxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIHJldHVybiAkcmVxdWVzdDtcbiAgfVxuXG4gIGJ1cnN0KEltYWdlczogc3RyaW5nW10sIEJsdXJWYWx1ZXM6IGFueSkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBBY2NlcHRUZXJtc0FuZENvbmRpdGlvbnM6IHRydWUsXG4gICAgICBEYXRhRmllbGRzOiB7XG4gICAgICAgIEltYWdlcyxcbiAgICAgICAgQmx1clZhbHVlcyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0ICRyZXF1ZXN0ID0gdGhpcy5odHRwLnBvc3QodGhpcy5jb25maWcudmFsaWRhdGlvblBhdGgsIGRhdGEpO1xuICAgIHJldHVybiAkcmVxdWVzdDtcbiAgfVxuXG4gIGNvdW50cmllcygpIHtcbiAgICBpZiAodGhpcy5jb3VudHJ5TmFtZXMpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNvdW50cnlOYW1lcyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KCcvYXNzZXRzL2RhdGEvY291bnRyaWVzMi5qc29uJykucGlwZShcbiAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY291bnRyaWVzRGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY291bnRyaWVzRGF0YTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldCBjb3VudHJ5TmFtZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgbGFiZWw6ICdBcnViYScsIHZhbHVlOiAnQVcnIH0sXG4gICAgICB7IGxhYmVsOiAnQWZnaGFuaXN0YW4nLCB2YWx1ZTogJ0FGJyB9LFxuICAgICAgeyBsYWJlbDogJ0FuZ29sYScsIHZhbHVlOiAnQU8nIH0sXG4gICAgICB7IGxhYmVsOiAnQW5ndWlsbGEnLCB2YWx1ZTogJ0FJJyB9LFxuICAgICAgeyBsYWJlbDogJ8OFbGFuZCBJc2xhbmRzJywgdmFsdWU6ICdBWCcgfSxcbiAgICAgIHsgbGFiZWw6ICdBbGJhbmlhJywgdmFsdWU6ICdBTCcgfSxcbiAgICAgIHsgbGFiZWw6ICdBbmRvcnJhJywgdmFsdWU6ICdBRCcgfSxcbiAgICAgIHsgbGFiZWw6ICdVbml0ZWQgQXJhYiBFbWlyYXRlcycsIHZhbHVlOiAnQUUnIH0sXG4gICAgICB7IGxhYmVsOiAnQXJnZW50aW5hJywgdmFsdWU6ICdBUicgfSxcbiAgICAgIHsgbGFiZWw6ICdBcm1lbmlhJywgdmFsdWU6ICdBTScgfSxcbiAgICAgIHsgbGFiZWw6ICdBbWVyaWNhbiBTYW1vYScsIHZhbHVlOiAnQVMnIH0sXG4gICAgICB7IGxhYmVsOiAnQW50YXJjdGljYScsIHZhbHVlOiAnQVEnIH0sXG4gICAgICB7IGxhYmVsOiAnRnJlbmNoIFNvdXRoZXJuIGFuZCBBbnRhcmN0aWMgTGFuZHMnLCB2YWx1ZTogJ1RGJyB9LFxuICAgICAgeyBsYWJlbDogJ0FudGlndWEgYW5kIEJhcmJ1ZGEnLCB2YWx1ZTogJ0FHJyB9LFxuICAgICAgeyBsYWJlbDogJ0F1c3RyYWxpYScsIHZhbHVlOiAnQVUnIH0sXG4gICAgICB7IGxhYmVsOiAnQXVzdHJpYScsIHZhbHVlOiAnQVQnIH0sXG4gICAgICB7IGxhYmVsOiAnQXplcmJhaWphbicsIHZhbHVlOiAnQVonIH0sXG4gICAgICB7IGxhYmVsOiAnQnVydW5kaScsIHZhbHVlOiAnQkknIH0sXG4gICAgICB7IGxhYmVsOiAnQmVsZ2l1bScsIHZhbHVlOiAnQkUnIH0sXG4gICAgICB7IGxhYmVsOiAnQmVuaW4nLCB2YWx1ZTogJ0JKJyB9LFxuICAgICAgeyBsYWJlbDogJ0J1cmtpbmEgRmFzbycsIHZhbHVlOiAnQkYnIH0sXG4gICAgICB7IGxhYmVsOiAnQmFuZ2xhZGVzaCcsIHZhbHVlOiAnQkQnIH0sXG4gICAgICB7IGxhYmVsOiAnQnVsZ2FyaWEnLCB2YWx1ZTogJ0JHJyB9LFxuICAgICAgeyBsYWJlbDogJ0JhaHJhaW4nLCB2YWx1ZTogJ0JIJyB9LFxuICAgICAgeyBsYWJlbDogJ0JhaGFtYXMnLCB2YWx1ZTogJ0JTJyB9LFxuICAgICAgeyBsYWJlbDogJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnLCB2YWx1ZTogJ0JBJyB9LFxuICAgICAgeyBsYWJlbDogJ1NhaW50IEJhcnRow6lsZW15JywgdmFsdWU6ICdCTCcgfSxcbiAgICAgIHsgbGFiZWw6ICdTYWludCBIZWxlbmEsIEFzY2Vuc2lvbiBhbmQgVHJpc3RhbiBkYSBDdW5oYScsIHZhbHVlOiAnU0gnIH0sXG4gICAgICB7IGxhYmVsOiAnQmVsYXJ1cycsIHZhbHVlOiAnQlknIH0sXG4gICAgICB7IGxhYmVsOiAnQmVsaXplJywgdmFsdWU6ICdCWicgfSxcbiAgICAgIHsgbGFiZWw6ICdCZXJtdWRhJywgdmFsdWU6ICdCTScgfSxcbiAgICAgIHsgbGFiZWw6ICdCb2xpdmlhJywgdmFsdWU6ICdCTycgfSxcbiAgICAgIHsgbGFiZWw6ICdDYXJpYmJlYW4gTmV0aGVybGFuZHMnLCB2YWx1ZTogJ0JRJyB9LFxuICAgICAgeyBsYWJlbDogJ0JyYXppbCcsIHZhbHVlOiAnQlInIH0sXG4gICAgICB7IGxhYmVsOiAnQmFyYmFkb3MnLCB2YWx1ZTogJ0JCJyB9LFxuICAgICAgeyBsYWJlbDogJ0JydW5laScsIHZhbHVlOiAnQk4nIH0sXG4gICAgICB7IGxhYmVsOiAnQmh1dGFuJywgdmFsdWU6ICdCVCcgfSxcbiAgICAgIHsgbGFiZWw6ICdCb3V2ZXQgSXNsYW5kJywgdmFsdWU6ICdCVicgfSxcbiAgICAgIHsgbGFiZWw6ICdCb3Rzd2FuYScsIHZhbHVlOiAnQlcnIH0sXG4gICAgICB7IGxhYmVsOiAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJywgdmFsdWU6ICdDRicgfSxcbiAgICAgIHsgbGFiZWw6ICdDYW5hZGEnLCB2YWx1ZTogJ0NBJyB9LFxuICAgICAgeyBsYWJlbDogJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJywgdmFsdWU6ICdDQycgfSxcbiAgICAgIHsgbGFiZWw6ICdTd2l0emVybGFuZCcsIHZhbHVlOiAnQ0gnIH0sXG4gICAgICB7IGxhYmVsOiAnQ2hpbGUnLCB2YWx1ZTogJ0NMJyB9LFxuICAgICAgeyBsYWJlbDogJ0NoaW5hJywgdmFsdWU6ICdDTicgfSxcbiAgICAgIHsgbGFiZWw6ICdJdm9yeSBDb2FzdCcsIHZhbHVlOiAnQ0knIH0sXG4gICAgICB7IGxhYmVsOiAnQ2FtZXJvb24nLCB2YWx1ZTogJ0NNJyB9LFxuICAgICAgeyBsYWJlbDogJ0RSIENvbmdvJywgdmFsdWU6ICdDRCcgfSxcbiAgICAgIHsgbGFiZWw6ICdSZXB1YmxpYyBvZiB0aGUgQ29uZ28nLCB2YWx1ZTogJ0NHJyB9LFxuICAgICAgeyBsYWJlbDogJ0Nvb2sgSXNsYW5kcycsIHZhbHVlOiAnQ0snIH0sXG4gICAgICB7IGxhYmVsOiAnQ29sb21iaWEnLCB2YWx1ZTogJ0NPJyB9LFxuICAgICAgeyBsYWJlbDogJ0NvbW9yb3MnLCB2YWx1ZTogJ0tNJyB9LFxuICAgICAgeyBsYWJlbDogJ0NhcGUgVmVyZGUnLCB2YWx1ZTogJ0NWJyB9LFxuICAgICAgeyBsYWJlbDogJ0Nvc3RhIFJpY2EnLCB2YWx1ZTogJ0NSJyB9LFxuICAgICAgeyBsYWJlbDogJ0N1YmEnLCB2YWx1ZTogJ0NVJyB9LFxuICAgICAgeyBsYWJlbDogJ0N1cmHDp2FvJywgdmFsdWU6ICdDVycgfSxcbiAgICAgIHsgbGFiZWw6ICdDaHJpc3RtYXMgSXNsYW5kJywgdmFsdWU6ICdDWCcgfSxcbiAgICAgIHsgbGFiZWw6ICdDYXltYW4gSXNsYW5kcycsIHZhbHVlOiAnS1knIH0sXG4gICAgICB7IGxhYmVsOiAnQ3lwcnVzJywgdmFsdWU6ICdDWScgfSxcbiAgICAgIHsgbGFiZWw6ICdDemVjaGlhJywgdmFsdWU6ICdDWicgfSxcbiAgICAgIHsgbGFiZWw6ICdHZXJtYW55JywgdmFsdWU6ICdERScgfSxcbiAgICAgIHsgbGFiZWw6ICdEamlib3V0aScsIHZhbHVlOiAnREonIH0sXG4gICAgICB7IGxhYmVsOiAnRG9taW5pY2EnLCB2YWx1ZTogJ0RNJyB9LFxuICAgICAgeyBsYWJlbDogJ0Rlbm1hcmsnLCB2YWx1ZTogJ0RLJyB9LFxuICAgICAgeyBsYWJlbDogJ0RvbWluaWNhbiBSZXB1YmxpYycsIHZhbHVlOiAnRE8nIH0sXG4gICAgICB7IGxhYmVsOiAnQWxnZXJpYScsIHZhbHVlOiAnRFonIH0sXG4gICAgICB7IGxhYmVsOiAnRWN1YWRvcicsIHZhbHVlOiAnRUMnIH0sXG4gICAgICB7IGxhYmVsOiAnRWd5cHQnLCB2YWx1ZTogJ0VHJyB9LFxuICAgICAgeyBsYWJlbDogJ0VyaXRyZWEnLCB2YWx1ZTogJ0VSJyB9LFxuICAgICAgeyBsYWJlbDogJ1dlc3Rlcm4gU2FoYXJhJywgdmFsdWU6ICdFSCcgfSxcbiAgICAgIHsgbGFiZWw6ICdTcGFpbicsIHZhbHVlOiAnRVMnIH0sXG4gICAgICB7IGxhYmVsOiAnRXN0b25pYScsIHZhbHVlOiAnRUUnIH0sXG4gICAgICB7IGxhYmVsOiAnRXRoaW9waWEnLCB2YWx1ZTogJ0VUJyB9LFxuICAgICAgeyBsYWJlbDogJ0ZpbmxhbmQnLCB2YWx1ZTogJ0ZJJyB9LFxuICAgICAgeyBsYWJlbDogJ0ZpamknLCB2YWx1ZTogJ0ZKJyB9LFxuICAgICAgeyBsYWJlbDogJ0ZhbGtsYW5kIElzbGFuZHMnLCB2YWx1ZTogJ0ZLJyB9LFxuICAgICAgeyBsYWJlbDogJ0ZyYW5jZScsIHZhbHVlOiAnRlInIH0sXG4gICAgICB7IGxhYmVsOiAnRmFyb2UgSXNsYW5kcycsIHZhbHVlOiAnRk8nIH0sXG4gICAgICB7IGxhYmVsOiAnTWljcm9uZXNpYScsIHZhbHVlOiAnRk0nIH0sXG4gICAgICB7IGxhYmVsOiAnR2Fib24nLCB2YWx1ZTogJ0dBJyB9LFxuICAgICAgeyBsYWJlbDogJ1VuaXRlZCBLaW5nZG9tJywgdmFsdWU6ICdHQicgfSxcbiAgICAgIHsgbGFiZWw6ICdHZW9yZ2lhJywgdmFsdWU6ICdHRScgfSxcbiAgICAgIHsgbGFiZWw6ICdHdWVybnNleScsIHZhbHVlOiAnR0cnIH0sXG4gICAgICB7IGxhYmVsOiAnR2hhbmEnLCB2YWx1ZTogJ0dIJyB9LFxuICAgICAgeyBsYWJlbDogJ0dpYnJhbHRhcicsIHZhbHVlOiAnR0knIH0sXG4gICAgICB7IGxhYmVsOiAnR3VpbmVhJywgdmFsdWU6ICdHTicgfSxcbiAgICAgIHsgbGFiZWw6ICdHdWFkZWxvdXBlJywgdmFsdWU6ICdHUCcgfSxcbiAgICAgIHsgbGFiZWw6ICdHYW1iaWEnLCB2YWx1ZTogJ0dNJyB9LFxuICAgICAgeyBsYWJlbDogJ0d1aW5lYS1CaXNzYXUnLCB2YWx1ZTogJ0dXJyB9LFxuICAgICAgeyBsYWJlbDogJ0VxdWF0b3JpYWwgR3VpbmVhJywgdmFsdWU6ICdHUScgfSxcbiAgICAgIHsgbGFiZWw6ICdHcmVlY2UnLCB2YWx1ZTogJ0dSJyB9LFxuICAgICAgeyBsYWJlbDogJ0dyZW5hZGEnLCB2YWx1ZTogJ0dEJyB9LFxuICAgICAgeyBsYWJlbDogJ0dyZWVubGFuZCcsIHZhbHVlOiAnR0wnIH0sXG4gICAgICB7IGxhYmVsOiAnR3VhdGVtYWxhJywgdmFsdWU6ICdHVCcgfSxcbiAgICAgIHsgbGFiZWw6ICdGcmVuY2ggR3VpYW5hJywgdmFsdWU6ICdHRicgfSxcbiAgICAgIHsgbGFiZWw6ICdHdWFtJywgdmFsdWU6ICdHVScgfSxcbiAgICAgIHsgbGFiZWw6ICdHdXlhbmEnLCB2YWx1ZTogJ0dZJyB9LFxuICAgICAgeyBsYWJlbDogJ0hvbmcgS29uZycsIHZhbHVlOiAnSEsnIH0sXG4gICAgICB7IGxhYmVsOiAnSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzJywgdmFsdWU6ICdITScgfSxcbiAgICAgIHsgbGFiZWw6ICdIb25kdXJhcycsIHZhbHVlOiAnSE4nIH0sXG4gICAgICB7IGxhYmVsOiAnQ3JvYXRpYScsIHZhbHVlOiAnSFInIH0sXG4gICAgICB7IGxhYmVsOiAnSGFpdGknLCB2YWx1ZTogJ0hUJyB9LFxuICAgICAgeyBsYWJlbDogJ0h1bmdhcnknLCB2YWx1ZTogJ0hVJyB9LFxuICAgICAgeyBsYWJlbDogJ0luZG9uZXNpYScsIHZhbHVlOiAnSUQnIH0sXG4gICAgICB7IGxhYmVsOiAnSXNsZSBvZiBNYW4nLCB2YWx1ZTogJ0lNJyB9LFxuICAgICAgeyBsYWJlbDogJ0luZGlhJywgdmFsdWU6ICdJTicgfSxcbiAgICAgIHsgbGFiZWw6ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknLCB2YWx1ZTogJ0lPJyB9LFxuICAgICAgeyBsYWJlbDogJ0lyZWxhbmQnLCB2YWx1ZTogJ0lFJyB9LFxuICAgICAgeyBsYWJlbDogJ0lyYW4nLCB2YWx1ZTogJ0lSJyB9LFxuICAgICAgeyBsYWJlbDogJ0lyYXEnLCB2YWx1ZTogJ0lRJyB9LFxuICAgICAgeyBsYWJlbDogJ0ljZWxhbmQnLCB2YWx1ZTogJ0lTJyB9LFxuICAgICAgeyBsYWJlbDogJ0lzcmFlbCcsIHZhbHVlOiAnSUwnIH0sXG4gICAgICB7IGxhYmVsOiAnSXRhbHknLCB2YWx1ZTogJ0lUJyB9LFxuICAgICAgeyBsYWJlbDogJ0phbWFpY2EnLCB2YWx1ZTogJ0pNJyB9LFxuICAgICAgeyBsYWJlbDogJ0plcnNleScsIHZhbHVlOiAnSkUnIH0sXG4gICAgICB7IGxhYmVsOiAnSm9yZGFuJywgdmFsdWU6ICdKTycgfSxcbiAgICAgIHsgbGFiZWw6ICdKYXBhbicsIHZhbHVlOiAnSlAnIH0sXG4gICAgICB7IGxhYmVsOiAnS2F6YWtoc3RhbicsIHZhbHVlOiAnS1onIH0sXG4gICAgICB7IGxhYmVsOiAnS2VueWEnLCB2YWx1ZTogJ0tFJyB9LFxuICAgICAgeyBsYWJlbDogJ0t5cmd5enN0YW4nLCB2YWx1ZTogJ0tHJyB9LFxuICAgICAgeyBsYWJlbDogJ0NhbWJvZGlhJywgdmFsdWU6ICdLSCcgfSxcbiAgICAgIHsgbGFiZWw6ICdLaXJpYmF0aScsIHZhbHVlOiAnS0knIH0sXG4gICAgICB7IGxhYmVsOiAnU2FpbnQgS2l0dHMgYW5kIE5ldmlzJywgdmFsdWU6ICdLTicgfSxcbiAgICAgIHsgbGFiZWw6ICdTb3V0aCBLb3JlYScsIHZhbHVlOiAnS1InIH0sXG4gICAgICB7IGxhYmVsOiAnS3V3YWl0JywgdmFsdWU6ICdLVycgfSxcbiAgICAgIHsgbGFiZWw6ICdMYW9zJywgdmFsdWU6ICdMQScgfSxcbiAgICAgIHsgbGFiZWw6ICdMZWJhbm9uJywgdmFsdWU6ICdMQicgfSxcbiAgICAgIHsgbGFiZWw6ICdMaWJlcmlhJywgdmFsdWU6ICdMUicgfSxcbiAgICAgIHsgbGFiZWw6ICdMaWJ5YScsIHZhbHVlOiAnTFknIH0sXG4gICAgICB7IGxhYmVsOiAnU2FpbnQgTHVjaWEnLCB2YWx1ZTogJ0xDJyB9LFxuICAgICAgeyBsYWJlbDogJ0xpZWNodGVuc3RlaW4nLCB2YWx1ZTogJ0xJJyB9LFxuICAgICAgeyBsYWJlbDogJ1NyaSBMYW5rYScsIHZhbHVlOiAnTEsnIH0sXG4gICAgICB7IGxhYmVsOiAnTGVzb3RobycsIHZhbHVlOiAnTFMnIH0sXG4gICAgICB7IGxhYmVsOiAnTGl0aHVhbmlhJywgdmFsdWU6ICdMVCcgfSxcbiAgICAgIHsgbGFiZWw6ICdMdXhlbWJvdXJnJywgdmFsdWU6ICdMVScgfSxcbiAgICAgIHsgbGFiZWw6ICdMYXR2aWEnLCB2YWx1ZTogJ0xWJyB9LFxuICAgICAgeyBsYWJlbDogJ01hY2F1JywgdmFsdWU6ICdNTycgfSxcbiAgICAgIHsgbGFiZWw6ICdTYWludCBNYXJ0aW4nLCB2YWx1ZTogJ01GJyB9LFxuICAgICAgeyBsYWJlbDogJ01vcm9jY28nLCB2YWx1ZTogJ01BJyB9LFxuICAgICAgeyBsYWJlbDogJ01vbmFjbycsIHZhbHVlOiAnTUMnIH0sXG4gICAgICB7IGxhYmVsOiAnTW9sZG92YScsIHZhbHVlOiAnTUQnIH0sXG4gICAgICB7IGxhYmVsOiAnTWFkYWdhc2NhcicsIHZhbHVlOiAnTUcnIH0sXG4gICAgICB7IGxhYmVsOiAnTWFsZGl2ZXMnLCB2YWx1ZTogJ01WJyB9LFxuICAgICAgeyBsYWJlbDogJ01leGljbycsIHZhbHVlOiAnTVgnIH0sXG4gICAgICB7IGxhYmVsOiAnTWFyc2hhbGwgSXNsYW5kcycsIHZhbHVlOiAnTUgnIH0sXG4gICAgICB7IGxhYmVsOiAnTWFjZWRvbmlhJywgdmFsdWU6ICdNSycgfSxcbiAgICAgIHsgbGFiZWw6ICdNYWxpJywgdmFsdWU6ICdNTCcgfSxcbiAgICAgIHsgbGFiZWw6ICdNYWx0YScsIHZhbHVlOiAnTVQnIH0sXG4gICAgICB7IGxhYmVsOiAnTXlhbm1hcicsIHZhbHVlOiAnTU0nIH0sXG4gICAgICB7IGxhYmVsOiAnTW9udGVuZWdybycsIHZhbHVlOiAnTUUnIH0sXG4gICAgICB7IGxhYmVsOiAnTW9uZ29saWEnLCB2YWx1ZTogJ01OJyB9LFxuICAgICAgeyBsYWJlbDogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsIHZhbHVlOiAnTVAnIH0sXG4gICAgICB7IGxhYmVsOiAnTW96YW1iaXF1ZScsIHZhbHVlOiAnTVonIH0sXG4gICAgICB7IGxhYmVsOiAnTWF1cml0YW5pYScsIHZhbHVlOiAnTVInIH0sXG4gICAgICB7IGxhYmVsOiAnTW9udHNlcnJhdCcsIHZhbHVlOiAnTVMnIH0sXG4gICAgICB7IGxhYmVsOiAnTWFydGluaXF1ZScsIHZhbHVlOiAnTVEnIH0sXG4gICAgICB7IGxhYmVsOiAnTWF1cml0aXVzJywgdmFsdWU6ICdNVScgfSxcbiAgICAgIHsgbGFiZWw6ICdNYWxhd2knLCB2YWx1ZTogJ01XJyB9LFxuICAgICAgeyBsYWJlbDogJ01hbGF5c2lhJywgdmFsdWU6ICdNWScgfSxcbiAgICAgIHsgbGFiZWw6ICdNYXlvdHRlJywgdmFsdWU6ICdZVCcgfSxcbiAgICAgIHsgbGFiZWw6ICdOYW1pYmlhJywgdmFsdWU6ICdOQScgfSxcbiAgICAgIHsgbGFiZWw6ICdOZXcgQ2FsZWRvbmlhJywgdmFsdWU6ICdOQycgfSxcbiAgICAgIHsgbGFiZWw6ICdOaWdlcicsIHZhbHVlOiAnTkUnIH0sXG4gICAgICB7IGxhYmVsOiAnTm9yZm9sayBJc2xhbmQnLCB2YWx1ZTogJ05GJyB9LFxuICAgICAgeyBsYWJlbDogJ05pZ2VyaWEnLCB2YWx1ZTogJ05HJyB9LFxuICAgICAgeyBsYWJlbDogJ05pY2FyYWd1YScsIHZhbHVlOiAnTkknIH0sXG4gICAgICB7IGxhYmVsOiAnTml1ZScsIHZhbHVlOiAnTlUnIH0sXG4gICAgICB7IGxhYmVsOiAnTmV0aGVybGFuZHMnLCB2YWx1ZTogJ05MJyB9LFxuICAgICAgeyBsYWJlbDogJ05vcndheScsIHZhbHVlOiAnTk8nIH0sXG4gICAgICB7IGxhYmVsOiAnTmVwYWwnLCB2YWx1ZTogJ05QJyB9LFxuICAgICAgeyBsYWJlbDogJ05hdXJ1JywgdmFsdWU6ICdOUicgfSxcbiAgICAgIHsgbGFiZWw6ICdOZXcgWmVhbGFuZCcsIHZhbHVlOiAnTlonIH0sXG4gICAgICB7IGxhYmVsOiAnT21hbicsIHZhbHVlOiAnT00nIH0sXG4gICAgICB7IGxhYmVsOiAnUGFraXN0YW4nLCB2YWx1ZTogJ1BLJyB9LFxuICAgICAgeyBsYWJlbDogJ1BhbmFtYScsIHZhbHVlOiAnUEEnIH0sXG4gICAgICB7IGxhYmVsOiAnUGl0Y2Fpcm4gSXNsYW5kcycsIHZhbHVlOiAnUE4nIH0sXG4gICAgICB7IGxhYmVsOiAnUGVydScsIHZhbHVlOiAnUEUnIH0sXG4gICAgICB7IGxhYmVsOiAnUGhpbGlwcGluZXMnLCB2YWx1ZTogJ1BIJyB9LFxuICAgICAgeyBsYWJlbDogJ1BhbGF1JywgdmFsdWU6ICdQVycgfSxcbiAgICAgIHsgbGFiZWw6ICdQYXB1YSBOZXcgR3VpbmVhJywgdmFsdWU6ICdQRycgfSxcbiAgICAgIHsgbGFiZWw6ICdQb2xhbmQnLCB2YWx1ZTogJ1BMJyB9LFxuICAgICAgeyBsYWJlbDogJ1B1ZXJ0byBSaWNvJywgdmFsdWU6ICdQUicgfSxcbiAgICAgIHsgbGFiZWw6ICdOb3J0aCBLb3JlYScsIHZhbHVlOiAnS1AnIH0sXG4gICAgICB7IGxhYmVsOiAnUG9ydHVnYWwnLCB2YWx1ZTogJ1BUJyB9LFxuICAgICAgeyBsYWJlbDogJ1BhcmFndWF5JywgdmFsdWU6ICdQWScgfSxcbiAgICAgIHsgbGFiZWw6ICdQYWxlc3RpbmUnLCB2YWx1ZTogJ1BTJyB9LFxuICAgICAgeyBsYWJlbDogJ0ZyZW5jaCBQb2x5bmVzaWEnLCB2YWx1ZTogJ1BGJyB9LFxuICAgICAgeyBsYWJlbDogJ1FhdGFyJywgdmFsdWU6ICdRQScgfSxcbiAgICAgIHsgbGFiZWw6ICdSw6l1bmlvbicsIHZhbHVlOiAnUkUnIH0sXG4gICAgICB7IGxhYmVsOiAnUm9tYW5pYScsIHZhbHVlOiAnUk8nIH0sXG4gICAgICB7IGxhYmVsOiAnUnVzc2lhJywgdmFsdWU6ICdSVScgfSxcbiAgICAgIHsgbGFiZWw6ICdSd2FuZGEnLCB2YWx1ZTogJ1JXJyB9LFxuICAgICAgeyBsYWJlbDogJ1NhdWRpIEFyYWJpYScsIHZhbHVlOiAnU0EnIH0sXG4gICAgICB7IGxhYmVsOiAnU3VkYW4nLCB2YWx1ZTogJ1NEJyB9LFxuICAgICAgeyBsYWJlbDogJ1NlbmVnYWwnLCB2YWx1ZTogJ1NOJyB9LFxuICAgICAgeyBsYWJlbDogJ1NpbmdhcG9yZScsIHZhbHVlOiAnU0cnIH0sXG4gICAgICB7IGxhYmVsOiAnU291dGggR2VvcmdpYScsIHZhbHVlOiAnR1MnIH0sXG4gICAgICB7IGxhYmVsOiAnU3ZhbGJhcmQgYW5kIEphbiBNYXllbicsIHZhbHVlOiAnU0onIH0sXG4gICAgICB7IGxhYmVsOiAnU29sb21vbiBJc2xhbmRzJywgdmFsdWU6ICdTQicgfSxcbiAgICAgIHsgbGFiZWw6ICdTaWVycmEgTGVvbmUnLCB2YWx1ZTogJ1NMJyB9LFxuICAgICAgeyBsYWJlbDogJ0VsIFNhbHZhZG9yJywgdmFsdWU6ICdTVicgfSxcbiAgICAgIHsgbGFiZWw6ICdTYW4gTWFyaW5vJywgdmFsdWU6ICdTTScgfSxcbiAgICAgIHsgbGFiZWw6ICdTb21hbGlhJywgdmFsdWU6ICdTTycgfSxcbiAgICAgIHsgbGFiZWw6ICdTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uJywgdmFsdWU6ICdQTScgfSxcbiAgICAgIHsgbGFiZWw6ICdTZXJiaWEnLCB2YWx1ZTogJ1JTJyB9LFxuICAgICAgeyBsYWJlbDogJ1NvdXRoIFN1ZGFuJywgdmFsdWU6ICdTUycgfSxcbiAgICAgIHsgbGFiZWw6ICdTw6NvIFRvbcOpIGFuZCBQcsOtbmNpcGUnLCB2YWx1ZTogJ1NUJyB9LFxuICAgICAgeyBsYWJlbDogJ1N1cmluYW1lJywgdmFsdWU6ICdTUicgfSxcbiAgICAgIHsgbGFiZWw6ICdTbG92YWtpYScsIHZhbHVlOiAnU0snIH0sXG4gICAgICB7IGxhYmVsOiAnU2xvdmVuaWEnLCB2YWx1ZTogJ1NJJyB9LFxuICAgICAgeyBsYWJlbDogJ1N3ZWRlbicsIHZhbHVlOiAnU0UnIH0sXG4gICAgICB7IGxhYmVsOiAnU3dhemlsYW5kJywgdmFsdWU6ICdTWicgfSxcbiAgICAgIHsgbGFiZWw6ICdTZXljaGVsbGVzJywgdmFsdWU6ICdTQycgfSxcbiAgICAgIHsgbGFiZWw6ICdTeXJpYScsIHZhbHVlOiAnU1knIH0sXG4gICAgICB7IGxhYmVsOiAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzJywgdmFsdWU6ICdUQycgfSxcbiAgICAgIHsgbGFiZWw6ICdDaGFkJywgdmFsdWU6ICdURCcgfSxcbiAgICAgIHsgbGFiZWw6ICdUb2dvJywgdmFsdWU6ICdURycgfSxcbiAgICAgIHsgbGFiZWw6ICdUaGFpbGFuZCcsIHZhbHVlOiAnVEgnIH0sXG4gICAgICB7IGxhYmVsOiAnVGFqaWtpc3RhbicsIHZhbHVlOiAnVEonIH0sXG4gICAgICB7IGxhYmVsOiAnVG9rZWxhdScsIHZhbHVlOiAnVEsnIH0sXG4gICAgICB7IGxhYmVsOiAnVHVya21lbmlzdGFuJywgdmFsdWU6ICdUTScgfSxcbiAgICAgIHsgbGFiZWw6ICdUaW1vci1MZXN0ZScsIHZhbHVlOiAnVEwnIH0sXG4gICAgICB7IGxhYmVsOiAnVG9uZ2EnLCB2YWx1ZTogJ1RPJyB9LFxuICAgICAgeyBsYWJlbDogJ1RyaW5pZGFkIGFuZCBUb2JhZ28nLCB2YWx1ZTogJ1RUJyB9LFxuICAgICAgeyBsYWJlbDogJ1R1bmlzaWEnLCB2YWx1ZTogJ1ROJyB9LFxuICAgICAgeyBsYWJlbDogJ1R1cmtleScsIHZhbHVlOiAnVFInIH0sXG4gICAgICB7IGxhYmVsOiAnVHV2YWx1JywgdmFsdWU6ICdUVicgfSxcbiAgICAgIHsgbGFiZWw6ICdUYWl3YW4nLCB2YWx1ZTogJ1RXJyB9LFxuICAgICAgeyBsYWJlbDogJ1RhbnphbmlhJywgdmFsdWU6ICdUWicgfSxcbiAgICAgIHsgbGFiZWw6ICdVZ2FuZGEnLCB2YWx1ZTogJ1VHJyB9LFxuICAgICAgeyBsYWJlbDogJ1VrcmFpbmUnLCB2YWx1ZTogJ1VBJyB9LFxuICAgICAgeyBsYWJlbDogJ1VuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcycsIHZhbHVlOiAnVU0nIH0sXG4gICAgICB7IGxhYmVsOiAnVXJ1Z3VheScsIHZhbHVlOiAnVVknIH0sXG4gICAgICB7IGxhYmVsOiAnVW5pdGVkIFN0YXRlcycsIHZhbHVlOiAnVVMnIH0sXG4gICAgICB7IGxhYmVsOiAnVXpiZWtpc3RhbicsIHZhbHVlOiAnVVonIH0sXG4gICAgICB7IGxhYmVsOiAnVmF0aWNhbiBDaXR5JywgdmFsdWU6ICdWQScgfSxcbiAgICAgIHsgbGFiZWw6ICdTYWludCBWaW5jZW50IGFuZCB0aGUgR3JlbmFkaW5lcycsIHZhbHVlOiAnVkMnIH0sXG4gICAgICB7IGxhYmVsOiAnVmVuZXp1ZWxhJywgdmFsdWU6ICdWRScgfSxcbiAgICAgIHsgbGFiZWw6ICdCcml0aXNoIFZpcmdpbiBJc2xhbmRzJywgdmFsdWU6ICdWRycgfSxcbiAgICAgIHsgbGFiZWw6ICdVbml0ZWQgU3RhdGVzIFZpcmdpbiBJc2xhbmRzJywgdmFsdWU6ICdWSScgfSxcbiAgICAgIHsgbGFiZWw6ICdWaWV0bmFtJywgdmFsdWU6ICdWTicgfSxcbiAgICAgIHsgbGFiZWw6ICdWYW51YXR1JywgdmFsdWU6ICdWVScgfSxcbiAgICAgIHsgbGFiZWw6ICdXYWxsaXMgYW5kIEZ1dHVuYScsIHZhbHVlOiAnV0YnIH0sXG4gICAgICB7IGxhYmVsOiAnU2Ftb2EnLCB2YWx1ZTogJ1dTJyB9LFxuICAgICAgeyBsYWJlbDogJ1llbWVuJywgdmFsdWU6ICdZRScgfSxcbiAgICAgIHsgbGFiZWw6ICdTb3V0aCBBZnJpY2EnLCB2YWx1ZTogJ1pBJyB9LFxuICAgICAgeyBsYWJlbDogJ1phbWJpYScsIHZhbHVlOiAnWk0nIH0sXG4gICAgICB7IGxhYmVsOiAnWmltYmFid2UnLCB2YWx1ZTogJ1pXJyB9LFxuICAgIF07XG4gIH1cbiAgY291bnRyeUxpc3QoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEFGRzogJ0FGJyxcbiAgICAgIEFMQjogJ0FMJyxcbiAgICAgIERaQTogJ0RaJyxcbiAgICAgIEFTTTogJ0FTJyxcbiAgICAgIEFORDogJ0FEJyxcbiAgICAgIEFHTzogJ0FPJyxcbiAgICAgIEFJQTogJ0FJJyxcbiAgICAgIEFURzogJ0FHJyxcbiAgICAgIEFSRzogJ0FSJyxcbiAgICAgIEFSTTogJ0FNJyxcbiAgICAgIEFCVzogJ0FXJyxcbiAgICAgIEFVUzogJ0FVJyxcbiAgICAgIEFVVDogJ0FUJyxcbiAgICAgIEFaRTogJ0FaJyxcbiAgICAgIEJIUzogJ0JTJyxcbiAgICAgIEJIUjogJ0JIJyxcbiAgICAgIEJHRDogJ0JEJyxcbiAgICAgIEJSQjogJ0JCJyxcbiAgICAgIEJMUjogJ0JZJyxcbiAgICAgIEJFTDogJ0JFJyxcbiAgICAgIEJMWjogJ0JaJyxcbiAgICAgIEJFTjogJ0JKJyxcbiAgICAgIEJNVTogJ0JNJyxcbiAgICAgIEJUTjogJ0JUJyxcbiAgICAgIEJPTDogJ0JPJyxcbiAgICAgIEJJSDogJ0JBJyxcbiAgICAgIEJXQTogJ0JXJyxcbiAgICAgIEJSQTogJ0JSJyxcbiAgICAgIFZHQjogJ1ZHJyxcbiAgICAgIEJSTjogJ0JOJyxcbiAgICAgIEJHUjogJ0JHJyxcbiAgICAgIEJGQTogJ0JGJyxcbiAgICAgIEJESTogJ0JJJyxcbiAgICAgIEtITTogJ0tIJyxcbiAgICAgIENNUjogJ0NNJyxcbiAgICAgIENBTjogJ0NBJyxcbiAgICAgIENQVjogJ0NWJyxcbiAgICAgIENBRjogJ0NGJyxcbiAgICAgIFRDRDogJ1REJyxcbiAgICAgIENITDogJ0NMJyxcbiAgICAgIENITjogJ0NOJyxcbiAgICAgIEhLRzogJ0hLJyxcbiAgICAgIE1BQzogJ01PJyxcbiAgICAgIENPTDogJ0NPJyxcbiAgICAgIENPTTogJ0tNJyxcbiAgICAgIENPRzogJ0NHJyxcbiAgICAgIENSSTogJ0NSJyxcbiAgICAgIENJVjogJ0NJJyxcbiAgICAgIEhSVjogJ0hSJyxcbiAgICAgIENVQjogJ0NVJyxcbiAgICAgIENZUDogJ0NZJyxcbiAgICAgIENaRTogJ0NaJyxcbiAgICAgIEROSzogJ0RLJyxcbiAgICAgIERKSTogJ0RKJyxcbiAgICAgIERNQTogJ0RNJyxcbiAgICAgIERPTTogJ0RPJyxcbiAgICAgIEVDVTogJ0VDJyxcbiAgICAgIEVHWTogJ0VHJyxcbiAgICAgIFNMVjogJ1NWJyxcbiAgICAgIEdOUTogJ0dRJyxcbiAgICAgIEVSSTogJ0VSJyxcbiAgICAgIEVTVDogJ0VFJyxcbiAgICAgIEVUSDogJ0VUJyxcbiAgICAgIEZSTzogJ0ZPJyxcbiAgICAgIEZKSTogJ0ZKJyxcbiAgICAgIEZJTjogJ0ZJJyxcbiAgICAgIEZSQTogJ0ZSJyxcbiAgICAgIEdVRjogJ0dGJyxcbiAgICAgIFBZRjogJ1BGJyxcbiAgICAgIEdBQjogJ0dBJyxcbiAgICAgIEdNQjogJ0dNJyxcbiAgICAgIEdFTzogJ0dFJyxcbiAgICAgIERFVTogJ0RFJyxcbiAgICAgIEdIQTogJ0dIJyxcbiAgICAgIEdSQzogJ0dSJyxcbiAgICAgIEdSTDogJ0dMJyxcbiAgICAgIEdSRDogJ0dEJyxcbiAgICAgIEdMUDogJ0dQJyxcbiAgICAgIEdVTTogJ0dVJyxcbiAgICAgIEdUTTogJ0dUJyxcbiAgICAgIEdOQjogJ0dXJyxcbiAgICAgIEhUSTogJ0hUJyxcbiAgICAgIEhORDogJ0hOJyxcbiAgICAgIElTTDogJ0lTJyxcbiAgICAgIElETjogJ0lEJyxcbiAgICAgIElSUTogJ0lRJyxcbiAgICAgIElUQTogJ0lUJyxcbiAgICAgIEpQTjogJ0pQJyxcbiAgICAgIEpPUjogJ0pPJyxcbiAgICAgIEtBWjogJ0taJyxcbiAgICAgIEtFTjogJ0tFJyxcbiAgICAgIEtJUjogJ0tJJyxcbiAgICAgIFBSSzogJ0tQJyxcbiAgICAgIEtPUjogJ0tSJyxcbiAgICAgIEtXVDogJ0tXJyxcbiAgICAgIEtHWjogJ0tHJyxcbiAgICAgIExBTzogJ0xBJyxcbiAgICAgIExWQTogJ0xWJyxcbiAgICAgIExCTjogJ0xCJyxcbiAgICAgIExTTzogJ0xTJyxcbiAgICAgIExCUjogJ0xSJyxcbiAgICAgIExCWTogJ0xZJyxcbiAgICAgIExJRTogJ0xJJyxcbiAgICAgIExUVTogJ0xUJyxcbiAgICAgIExVWDogJ0xVJyxcbiAgICAgIE1ERzogJ01HJyxcbiAgICAgIE1XSTogJ01XJyxcbiAgICAgIE1ZUzogJ01ZJyxcbiAgICAgIE1EVjogJ01WJyxcbiAgICAgIE1MSTogJ01MJyxcbiAgICAgIE1MVDogJ01UJyxcbiAgICAgIE1ITDogJ01IJyxcbiAgICAgIE1UUTogJ01RJyxcbiAgICAgIE1SVDogJ01SJyxcbiAgICAgIE1VUzogJ01VJyxcbiAgICAgIE1FWDogJ01YJyxcbiAgICAgIEZTTTogJ0ZNJyxcbiAgICAgIE1EQTogJ01EJyxcbiAgICAgIE1DTzogJ01DJyxcbiAgICAgIE1ORzogJ01OJyxcbiAgICAgIE1ORTogJ01FJyxcbiAgICAgIE1TUjogJ01TJyxcbiAgICAgIE1BUjogJ01BJyxcbiAgICAgIE1PWjogJ01aJyxcbiAgICAgIE1NUjogJ01NJyxcbiAgICAgIE5BTTogJ05BJyxcbiAgICAgIE5SVTogJ05SJyxcbiAgICAgIE5QTDogJ05QJyxcbiAgICAgIE5MRDogJ05MJyxcbiAgICAgIEFOVDogJ0FOJyxcbiAgICAgIE5DTDogJ05DJyxcbiAgICAgIE5aTDogJ05aJyxcbiAgICAgIE5JQzogJ05JJyxcbiAgICAgIE5FUjogJ05FJyxcbiAgICAgIE5HQTogJ05HJyxcbiAgICAgIE1OUDogJ01QJyxcbiAgICAgIE5PUjogJ05PJyxcbiAgICAgIE9NTjogJ09NJyxcbiAgICAgIFBBSzogJ1BLJyxcbiAgICAgIFBMVzogJ1BXJyxcbiAgICAgIFBTRTogJ1BTJyxcbiAgICAgIFBBTjogJ1BBJyxcbiAgICAgIFBORzogJ1BHJyxcbiAgICAgIFBSWTogJ1BZJyxcbiAgICAgIFBFUjogJ1BFJyxcbiAgICAgIFBITDogJ1BIJyxcbiAgICAgIFBDTjogJ1BOJyxcbiAgICAgIFBPTDogJ1BMJyxcbiAgICAgIFBSVDogJ1BUJyxcbiAgICAgIFBSSTogJ1BSJyxcbiAgICAgIFFBVDogJ1FBJyxcbiAgICAgIFJFVTogJ1JFJyxcbiAgICAgIFJPVTogJ1JPJyxcbiAgICAgIFJVUzogJ1JVJyxcbiAgICAgIFJXQTogJ1JXJyxcbiAgICAgIEtOQTogJ0tOJyxcbiAgICAgIExDQTogJ0xDJyxcbiAgICAgIFZDVDogJ1ZDJyxcbiAgICAgIFdTTTogJ1dTJyxcbiAgICAgIFNNUjogJ1NNJyxcbiAgICAgIFNUUDogJ1NUJyxcbiAgICAgIFNBVTogJ1NBJyxcbiAgICAgIFNFTjogJ1NOJyxcbiAgICAgIFNSQjogJ1JTJyxcbiAgICAgIFNZQzogJ1NDJyxcbiAgICAgIFNMRTogJ1NMJyxcbiAgICAgIFNHUDogJ1NHJyxcbiAgICAgIFNWSzogJ1NLJyxcbiAgICAgIFNWTjogJ1NJJyxcbiAgICAgIFNMQjogJ1NCJyxcbiAgICAgIFNPTTogJ1NPJyxcbiAgICAgIFpBRjogJ1pBJyxcbiAgICAgIEVTUDogJ0VTJyxcbiAgICAgIExLQTogJ0xLJyxcbiAgICAgIFNETjogJ1NEJyxcbiAgICAgIFNVUjogJ1NSJyxcbiAgICAgIFNXWjogJ1NaJyxcbiAgICAgIFNXRTogJ1NFJyxcbiAgICAgIENIRTogJ0NIJyxcbiAgICAgIFNZUjogJ1NZJyxcbiAgICAgIFRKSzogJ1RKJyxcbiAgICAgIFRaQTogJ1RaJyxcbiAgICAgIFRIQTogJ1RIJyxcbiAgICAgIFRMUzogJ1RMJyxcbiAgICAgIFRHTzogJ1RHJyxcbiAgICAgIFRPTjogJ1RPJyxcbiAgICAgIFRUTzogJ1RUJyxcbiAgICAgIFRVTjogJ1ROJyxcbiAgICAgIFRVUjogJ1RSJyxcbiAgICAgIFRLTTogJ1RNJyxcbiAgICAgIFRVVjogJ1RWJyxcbiAgICAgIFVHQTogJ1VHJyxcbiAgICAgIFVLUjogJ1VBJyxcbiAgICAgIEFSRTogJ0FFJyxcbiAgICAgIEdCUjogJ0dCJyxcbiAgICAgIFVTQTogJ1VTJyxcbiAgICAgIFVSWTogJ1VZJyxcbiAgICAgIFVaQjogJ1VaJyxcbiAgICAgIFZVVDogJ1ZVJyxcbiAgICAgIFZFTjogJ1ZFJyxcbiAgICAgIFZOTTogJ1ZOJyxcbiAgICAgIFZJUjogJ1ZJJyxcbiAgICAgIFlFTTogJ1lFJyxcbiAgICAgIFpNQjogJ1pNJyxcbiAgICAgIFpXRTogJ1pXJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGZpZWxkcygpOiBhbnkge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ0JpcnRoIERhdGUnLFxuICAgICAgICBmb3JtOiAnYmlydGhEYXRlJyxcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgICAgYmxhc3RLZXk6ICdCaXJ0aERhdGUnLFxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICBrZXk6ICdHaXZlbiBOYW1lJyxcbiAgICAgICAgZm9ybTogJ2ZpcnN0TmFtZScsXG4gICAgICAgIHVjRmlyc3Q6IHRydWUsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBtYWluOiB0cnVlLFxuICAgICAgICBibGFzdEtleTogJ05hbWUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnU3VybmFtZScsXG4gICAgICAgIGZvcm06ICdsYXN0TmFtZScsXG4gICAgICAgIHVjRmlyc3Q6IHRydWUsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBtYWluOiB0cnVlLFxuICAgICAgICBibGFzdEtleTogJ1N1cm5hbWUnLFxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICBrZXk6ICdTZXgnLFxuICAgICAgICBmb3JtOiAnZ2VuZGVyJyxcbiAgICAgICAgdHlwZTogJ2dlbmRlcicsXG4gICAgICAgIG1haW46IGZhbHNlLFxuICAgICAgICBibGFzdEtleTogJ0dlbmRlcicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdEb2N1bWVudCBDbGFzcyBOYW1lJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGZvcm06ICdkb2N1bWVudFR5cGUnLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgICAgYmxhc3RLZXk6ICdkb2NUeXBlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ0RvY3VtZW50IE51bWJlcicsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBmb3JtOiAnZG9jdW1lbnROdW1iZXInLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgICAgYmxhc3RLZXk6ICdEb2N1bWVudE51bWJlcicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdJc3N1aW5nIFN0YXRlIENvZGUnLFxuICAgICAgICB0eXBlOiAnY291bnRyeScsXG4gICAgICAgIGZvcm06ICdpc3N1ZVN0YXRlQ29kZScsXG4gICAgICAgIGJsYXN0S2V5OiAnQ291bnRyeU9mSXNzdWUnLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ0V4cGlyYXRpb24gRGF0ZScsXG4gICAgICAgIHR5cGU6ICdkYXRlJyxcbiAgICAgICAgZm9ybTogJ2V4cGlyYXRpb25EYXRlJyxcbiAgICAgICAgYmxhc3RLZXk6ICdFeHBpcnlEYXRlJyxcbiAgICAgICAgbWFpbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdJc3N1ZSBEYXRlJyxcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICBmb3JtOiAnaXNzdWVEYXRlJyxcbiAgICAgICAgYmxhc3RLZXk6ICdJc3N1ZWREYXRlJyxcbiAgICAgICAgbWFpbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdCaXJ0aCBQbGFjZScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBmb3JtOiAnYmlydGhQbGFjZScsXG4gICAgICAgIGJsYXN0S2V5OiAnUGxhY2VPZkJpcnRoJyxcbiAgICAgICAgbWFpbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdJc3N1aW5nIEF1dGhvcml0eScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBmb3JtOiAnaXNzdWluZ1BsYWNlJyxcbiAgICAgICAgYmxhc3RLZXk6ICdJc3N1aW5nQXV0aG9yaXR5JyxcbiAgICAgICAgbWFpbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdOYXRpb25hbGl0eSBDb2RlJyxcbiAgICAgICAgdHlwZTogJ2NvdW50cnknLFxuICAgICAgICBmb3JtOiAnbmF0aW9uYWxpdHknLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgICAgYmxhc3RLZXk6ICdOYXRpb25hbGl0eScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdzdHJlZXQxJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGZvcm06ICdzdHJlZXQxJyxcbiAgICAgICAgbWFpbjogZmFsc2UsXG4gICAgICAgIGJsYXN0S2V5OiAnQWRkcmVzc1N0cmVldCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdjaXR5JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGZvcm06ICdjaXR5JyxcbiAgICAgICAgbWFpbjogZmFsc2UsXG4gICAgICAgIGJsYXN0S2V5OiAnQWRkcmVzc0NpdHknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnY291bnRyeScsXG4gICAgICAgIHR5cGU6ICdjb3VudHJ5JyxcbiAgICAgICAgZm9ybTogJ2NvdW50cnknLFxuICAgICAgICBtYWluOiBmYWxzZSxcbiAgICAgICAgYmxhc3RLZXk6ICdDb3VudHJ5JyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3ppcCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBmb3JtOiAnemlwJyxcbiAgICAgICAgbWFpbjogZmFsc2UsXG4gICAgICAgIGJsYXN0S2V5OiAnQWRkcmVzc1ppcCcsXG4gICAgICB9LFxuICAgIF07XG4gIH1cbiAgcGFyc2VCbGFzdChyZXN1bHRzOiBhbnkpIHtcbiAgICBjb25zdCBjb3VudHJpZXM6IGFueSA9IHRoaXMuY291bnRyeUxpc3QoKTtcbiAgICBjb25zdCBnZW5kZXJzOiBhbnkgPSB0aGlzLmdlbmRlckxpc3QoKTtcbiAgICBjb25zdCBkYXRhOiBhbnkgPSB0aGlzLmZpZWxkcztcblxuICAgIGNvbnN0IHZhbGlkYXRlZEFkZHJlc3NGaWVsZHMgPSBbXG4gICAgICAnQWRkcmVzc0NpdHknLFxuICAgICAgJ0FkZHJlc3NaaXAnLFxuICAgICAgJ0FkZHJlc3NDb3VudHknLFxuICAgICAgJ0FkZHJlc3NTdHJlZXQnLFxuICAgIF0uZmlsdGVyKChrZXkpID0+IHJlc3VsdHNba2V5XS5WYWxpZGF0ZWQpO1xuXG4gICAgLy8gaWYgbm8gYWRkcmVzcyBpcyB2YWxpZGF0ZWRcbiAgICBpZiAodmFsaWRhdGVkQWRkcmVzc0ZpZWxkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGlmIChyZXN1bHRzLkFkZHJlc3MuVmFsaWRhdGVkKSB7XG4gICAgICAgIHJlc3VsdHMuQWRkcmVzc1N0cmVldCA9IHJlc3VsdHMuQWRkcmVzcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvdXQgPSBkYXRhLm1hcCgoaXRtOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IHJlc3VsdHNbaXRtLmJsYXN0S2V5XTtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByZXMuUmVjb21tZW5kZWRWYWx1ZSB8fCAnJztcblxuICAgICAgICBzd2l0Y2ggKGl0bS50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIGl0bS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKGl0bS51Y0ZpcnN0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICBpdG0udmFsdWUgPSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgaXRtLnZhbHVlID0gdmFsdWUgPyBtb21lbnQodmFsdWUsICdERC5NTS5ZWVlZJykudG9EYXRlKCkgOiBudWxsO1xuICAgICAgICAgICAgLy8gaWYgKHZhbHVlLmluZGV4T2YoJy9EYXRlJykgPj0gMCkge1xuICAgICAgICAgICAgLy8gICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gICAgICAgICAgICAvLyAgIGNvbnN0IHRpbWVzdGFtcCA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nbSwgJycpO1xuICAgICAgICAgICAgLy8gICAvL2l0bS52YWx1ZSA9IG1vbWVudC51bml4KHRpbWVzdGFtcCAvIDEwMDApLnRvRGF0ZSgpO1xuICAgICAgICAgICAgLy8gICBpdG0udmFsdWUgPSBtb21lbnQoXG4gICAgICAgICAgICAvLyAgICAgdGltZXN0YW1wIC0gbW9tZW50KHRpbWVzdGFtcCwgJ3gnKS51dGNPZmZzZXQoKSAqIDYwICogMTAwMCxcbiAgICAgICAgICAgIC8vICAgICAneCcsXG4gICAgICAgICAgICAvLyAgICkudG9EYXRlKCk7XG4gICAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2NvdW50cnknOlxuICAgICAgICAgICAgaXRtLnZhbHVlID0gY291bnRyaWVzW3ZhbHVlXSB8fCBudWxsO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnZ2VuZGVyJzpcbiAgICAgICAgICAgIGl0bS52YWx1ZSA9IGdlbmRlcnNbdmFsdWVdIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBpdG07XG4gICAgfSk7XG5cbiAgICBjb25zdCBtb2RlbDogYW55ID0ge307XG5cbiAgICBvdXQuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlbGVtZW50KTtcbiAgICAgIG1vZGVsW2VsZW1lbnQuZm9ybV0gPSBlbGVtZW50LnZhbHVlO1xuICAgIH0pO1xuXG4gICAgbW9kZWwuZG9jdW1lbnRUeXBlID0gcmVzdWx0cy5NZXRhZGF0YS5Eb2N1bWVudFR5cGU7XG5cbiAgICBjb25zb2xlLmxvZyhtb2RlbCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmllbGRzOiBvdXQsXG4gICAgICBtb2RlbCxcbiAgICB9O1xuICB9XG5cbiAgYmxhc3RQb3N0KGRhdGE6IGFueSkge1xuICAgIC8vIGNvbnN0ICRyZXF1ZXN0ID0gdGhpcy5hcGkuaHR0cC5nZXQoJy9hc3NldHMvanNvbi9ibGFzdHNjYW4uanNvbicpO1xuXG4gICAgY29uc3QgJHJlcXVlc3QgPSB0aGlzLmh0dHAucG9zdCh0aGlzLmNvbmZpZy5leHRyYWN0aW9uUGF0aCwgZGF0YSk7XG5cbiAgICByZXR1cm4gJHJlcXVlc3QucGlwZShcbiAgICAgIG1hcCgobTogYW55KSA9PiB7XG4gICAgICAgIGlmIChtLk1ldGFkYXRhICYmIG0uTWV0YWRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0gbS5NZXRhZGF0YVswXTtcbiAgICAgICAgICBtLkRhdGEuQ291bnRyeSA9IHtcbiAgICAgICAgICAgIFJlY29tbWVuZGVkVmFsdWU6IG1ldGFkYXRhLkNvdW50cnksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBtLkRhdGEuTWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGJsb2JUb0RhdGFVcmwoZmlsZTogYW55KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUoKG9iczogYW55KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyKSA9PiBvYnMuZXJyb3IoZXJyKTtcbiAgICAgIHJlYWRlci5vbmFib3J0ID0gKGVycikgPT4gb2JzLmVycm9yKGVycik7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICBvYnMubmV4dChyZWFkZXIucmVzdWx0KTtcbiAgICAgIH07XG4gICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4gb2JzLmNvbXBsZXRlKCk7XG4gICAgICByZXR1cm4gcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|