payload 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentControls/index.js +6 -4
- package/dist/admin/components/elements/Dropzone/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Dropzone/index.js +2 -2
- package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/admin/components/elements/EditUpload/index.js +14 -6
- package/dist/admin/components/elements/EditUpload/index.scss +5 -0
- package/dist/admin/components/elements/FileDetails/index.js +2 -2
- package/dist/admin/components/elements/PreviewSizes/index.d.ts +1 -1
- package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -1
- package/dist/admin/components/elements/PreviewSizes/index.js +58 -32
- package/dist/admin/components/elements/PreviewSizes/index.scss +0 -1
- package/dist/admin/components/elements/Publish/index.d.ts +1 -0
- package/dist/admin/components/elements/Publish/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Publish/index.js +56 -5
- package/dist/admin/components/forms/field-types/Blocks/SectionTitle/index.scss +1 -0
- package/dist/admin/components/forms/field-types/Checkbox/Input.d.ts +2 -2
- package/dist/admin/components/forms/field-types/Checkbox/Input.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Checkbox/Input.js +8 -4
- package/dist/admin/components/forms/field-types/Checkbox/index.js +5 -5
- package/dist/admin/components/forms/field-types/Code/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Code/index.js +3 -3
- package/dist/admin/components/forms/field-types/DateTime/Input.d.ts +2 -2
- package/dist/admin/components/forms/field-types/DateTime/Input.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/DateTime/Input.js +8 -4
- package/dist/admin/components/forms/field-types/Email/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Email/index.js +9 -5
- package/dist/admin/components/forms/field-types/Number/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Number/index.js +9 -5
- package/dist/admin/components/forms/field-types/Point/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Point/index.js +15 -7
- package/dist/admin/components/forms/field-types/RichText/types.d.ts +5 -0
- package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Tabs/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Tabs/index.js +2 -2
- package/dist/admin/components/forms/field-types/Text/Input.d.ts +4 -4
- package/dist/admin/components/forms/field-types/Text/Input.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Text/Input.js +8 -4
- package/dist/admin/components/forms/field-types/Text/index.js +7 -7
- package/dist/admin/components/forms/field-types/Textarea/Input.d.ts +4 -4
- package/dist/admin/components/forms/field-types/Textarea/Input.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/Textarea/Input.js +9 -5
- package/dist/admin/components/forms/field-types/Textarea/index.js +7 -7
- package/dist/admin/components/forms/useField/index.d.ts.map +1 -1
- package/dist/admin/components/forms/useField/index.js +31 -25
- package/dist/admin/components/utilities/Auth/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/Auth/index.js +10 -3
- package/dist/admin/components/utilities/DocumentInfo/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/DocumentInfo/index.js +7 -3
- package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Context/index.js +1 -1
- package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +91 -29
- package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.scss +5 -0
- package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/index.js +1 -1
- package/dist/admin/components/views/collections/Edit/Upload/index.js +2 -2
- package/dist/admin/components/views/collections/List/Cell/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/List/Cell/index.js +3 -3
- package/dist/admin/components/views/collections/List/index.scss +9 -0
- package/dist/auth/graphql/resolvers/access.d.ts.map +1 -1
- package/dist/auth/graphql/resolvers/access.js +3 -4
- package/dist/auth/graphql/resolvers/forgotPassword.js +3 -4
- package/dist/auth/graphql/resolvers/init.d.ts.map +1 -1
- package/dist/auth/graphql/resolvers/init.js +3 -4
- package/dist/auth/graphql/resolvers/login.js +3 -4
- package/dist/auth/graphql/resolvers/logout.js +3 -4
- package/dist/auth/graphql/resolvers/me.js +3 -4
- package/dist/auth/graphql/resolvers/refresh.js +3 -4
- package/dist/auth/graphql/resolvers/resetPassword.js +3 -4
- package/dist/auth/graphql/resolvers/unlock.js +3 -4
- package/dist/auth/graphql/resolvers/verifyEmail.js +3 -4
- package/dist/auth/operations/access.d.ts.map +1 -1
- package/dist/auth/operations/access.js +52 -42
- package/dist/collections/buildEndpoints.d.ts.map +1 -1
- package/dist/collections/buildEndpoints.js +9 -1
- package/dist/collections/graphql/resolvers/create.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/create.js +3 -4
- package/dist/collections/graphql/resolvers/delete.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/delete.js +3 -4
- package/dist/collections/graphql/resolvers/docAccess.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/docAccess.js +8 -4
- package/dist/collections/graphql/resolvers/find.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/find.js +3 -4
- package/dist/collections/graphql/resolvers/findByID.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/findByID.js +3 -2
- package/dist/collections/graphql/resolvers/findVersionByID.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/findVersionByID.js +3 -4
- package/dist/collections/graphql/resolvers/findVersions.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/findVersions.js +3 -4
- package/dist/collections/graphql/resolvers/restoreVersion.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/restoreVersion.js +3 -4
- package/dist/collections/graphql/resolvers/update.d.ts.map +1 -1
- package/dist/collections/graphql/resolvers/update.js +3 -4
- package/dist/collections/operations/docAccess.d.ts.map +1 -1
- package/dist/collections/operations/docAccess.js +19 -8
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +2 -1
- package/dist/config/types.d.ts +2 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -1
- package/dist/exports/utilities.d.ts +1 -1
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +4 -1
- package/dist/express/types.d.ts +4 -0
- package/dist/express/types.d.ts.map +1 -1
- package/dist/fields/config/schema.d.ts.map +1 -1
- package/dist/fields/config/schema.js +63 -61
- package/dist/fields/config/types.d.ts +53 -34
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +1 -1
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +2 -1
- package/dist/fields/validations.d.ts +4 -4
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +90 -106
- package/dist/fields/validations.spec.js +4 -4
- package/dist/globals/buildEndpoints.d.ts.map +1 -1
- package/dist/globals/buildEndpoints.js +5 -1
- package/dist/globals/graphql/resolvers/docAccess.d.ts.map +1 -1
- package/dist/globals/graphql/resolvers/docAccess.js +8 -4
- package/dist/globals/graphql/resolvers/findOne.d.ts.map +1 -1
- package/dist/globals/graphql/resolvers/findOne.js +3 -4
- package/dist/globals/graphql/resolvers/findVersionByID.d.ts.map +1 -1
- package/dist/globals/graphql/resolvers/findVersionByID.js +3 -4
- package/dist/globals/graphql/resolvers/findVersions.d.ts.map +1 -1
- package/dist/globals/graphql/resolvers/findVersions.js +3 -4
- package/dist/globals/graphql/resolvers/restoreVersion.d.ts.map +1 -1
- package/dist/globals/graphql/resolvers/restoreVersion.js +3 -4
- package/dist/globals/graphql/resolvers/update.d.ts.map +1 -1
- package/dist/globals/graphql/resolvers/update.js +3 -4
- package/dist/globals/operations/docAccess.d.ts.map +1 -1
- package/dist/globals/operations/docAccess.js +18 -7
- package/dist/graphql/registerSchema.d.ts.map +1 -1
- package/dist/graphql/registerSchema.js +4 -3
- package/dist/graphql/utilities/wrapCustomResolver.d.ts +9 -0
- package/dist/graphql/utilities/wrapCustomResolver.d.ts.map +1 -0
- package/dist/graphql/utilities/wrapCustomResolver.js +34 -0
- package/dist/translations/pl.json +24 -24
- package/dist/uploads/getFileByPath.d.ts.map +1 -1
- package/dist/uploads/getFileByPath.js +7 -2
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +4 -3
- package/dist/uploads/types.d.ts +11 -1
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js +1 -1
- package/dist/utilities/configToJSONSchema.d.ts +8 -1
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +24 -25
- package/dist/utilities/flattenTopLevelFields.d.ts +7 -0
- package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
- package/dist/utilities/flattenTopLevelFields.js +8 -2
- package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
- package/dist/utilities/getEntityPolicies.js +6 -2
- package/dist/utilities/initTransaction.d.ts.map +1 -1
- package/dist/utilities/initTransaction.js +19 -7
- package/dist/utilities/isolateTransactionID.d.ts +6 -0
- package/dist/utilities/isolateTransactionID.d.ts.map +1 -0
- package/dist/utilities/isolateTransactionID.js +38 -0
- package/package.json +1 -1
- package/utilities.d.ts +1 -1
- package/utilities.js +4 -1
|
@@ -151,16 +151,16 @@ const text = baseField.keys({
|
|
|
151
151
|
name: _joi.default.string().required(),
|
|
152
152
|
admin: baseAdminFields.keys({
|
|
153
153
|
autoComplete: _joi.default.string(),
|
|
154
|
+
components: baseAdminComponentFields.keys({
|
|
155
|
+
Error: _componentSchema.componentSchema,
|
|
156
|
+
Label: _componentSchema.componentSchema,
|
|
157
|
+
afterInput: _joi.default.array().items(_componentSchema.componentSchema),
|
|
158
|
+
beforeInput: _joi.default.array().items(_componentSchema.componentSchema)
|
|
159
|
+
}),
|
|
154
160
|
placeholder: _joi.default.alternatives().try(_joi.default.object().pattern(_joi.default.string(), [
|
|
155
161
|
_joi.default.string()
|
|
156
162
|
]), _joi.default.string()),
|
|
157
|
-
rtl: _joi.default.boolean()
|
|
158
|
-
components: baseAdminComponentFields.keys({
|
|
159
|
-
Label: _componentSchema.componentSchema,
|
|
160
|
-
Error: _componentSchema.componentSchema,
|
|
161
|
-
BeforeInput: _joi.default.array().items(_componentSchema.componentSchema),
|
|
162
|
-
AfterInput: _joi.default.array().items(_componentSchema.componentSchema)
|
|
163
|
-
})
|
|
163
|
+
rtl: _joi.default.boolean()
|
|
164
164
|
}),
|
|
165
165
|
defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
|
|
166
166
|
maxLength: _joi.default.number(),
|
|
@@ -171,20 +171,20 @@ const number = baseField.keys({
|
|
|
171
171
|
name: _joi.default.string().required(),
|
|
172
172
|
admin: baseAdminFields.keys({
|
|
173
173
|
autoComplete: _joi.default.string(),
|
|
174
|
-
placeholder: _joi.default.string(),
|
|
175
|
-
step: _joi.default.number(),
|
|
176
174
|
components: baseAdminComponentFields.keys({
|
|
177
|
-
Label: _componentSchema.componentSchema,
|
|
178
175
|
Error: _componentSchema.componentSchema,
|
|
179
|
-
|
|
176
|
+
Label: _componentSchema.componentSchema,
|
|
177
|
+
afterInput: _joi.default.array().items(_componentSchema.componentSchema).when('hasMany', {
|
|
180
178
|
not: true,
|
|
181
179
|
otherwise: _joi.default.forbidden()
|
|
182
180
|
}),
|
|
183
|
-
|
|
181
|
+
beforeInput: _joi.default.array().items(_componentSchema.componentSchema).when('hasMany', {
|
|
184
182
|
not: true,
|
|
185
183
|
otherwise: _joi.default.forbidden()
|
|
186
184
|
})
|
|
187
|
-
})
|
|
185
|
+
}),
|
|
186
|
+
placeholder: _joi.default.string(),
|
|
187
|
+
step: _joi.default.number()
|
|
188
188
|
}),
|
|
189
189
|
defaultValue: _joi.default.alternatives().try(_joi.default.number(), _joi.default.func()),
|
|
190
190
|
hasMany: _joi.default.boolean().default(false),
|
|
@@ -203,15 +203,15 @@ const number = baseField.keys({
|
|
|
203
203
|
const textarea = baseField.keys({
|
|
204
204
|
name: _joi.default.string().required(),
|
|
205
205
|
admin: baseAdminFields.keys({
|
|
206
|
-
placeholder: _joi.default.string(),
|
|
207
|
-
rows: _joi.default.number(),
|
|
208
|
-
rtl: _joi.default.boolean(),
|
|
209
206
|
components: baseAdminComponentFields.keys({
|
|
210
|
-
Label: _componentSchema.componentSchema,
|
|
211
207
|
Error: _componentSchema.componentSchema,
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
208
|
+
Label: _componentSchema.componentSchema,
|
|
209
|
+
afterInput: _joi.default.array().items(_componentSchema.componentSchema),
|
|
210
|
+
beforeInput: _joi.default.array().items(_componentSchema.componentSchema)
|
|
211
|
+
}),
|
|
212
|
+
placeholder: _joi.default.string(),
|
|
213
|
+
rows: _joi.default.number(),
|
|
214
|
+
rtl: _joi.default.boolean()
|
|
215
215
|
}),
|
|
216
216
|
defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
|
|
217
217
|
maxLength: _joi.default.number(),
|
|
@@ -222,13 +222,13 @@ const email = baseField.keys({
|
|
|
222
222
|
name: _joi.default.string().required(),
|
|
223
223
|
admin: baseAdminFields.keys({
|
|
224
224
|
autoComplete: _joi.default.string(),
|
|
225
|
-
placeholder: _joi.default.string(),
|
|
226
225
|
components: baseAdminComponentFields.keys({
|
|
227
|
-
Label: _componentSchema.componentSchema,
|
|
228
226
|
Error: _componentSchema.componentSchema,
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
227
|
+
Label: _componentSchema.componentSchema,
|
|
228
|
+
afterInput: _joi.default.array().items(_componentSchema.componentSchema),
|
|
229
|
+
beforeInput: _joi.default.array().items(_componentSchema.componentSchema)
|
|
230
|
+
}),
|
|
231
|
+
placeholder: _joi.default.string()
|
|
232
232
|
}),
|
|
233
233
|
defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
|
|
234
234
|
maxLength: _joi.default.number(),
|
|
@@ -238,12 +238,12 @@ const email = baseField.keys({
|
|
|
238
238
|
const code = baseField.keys({
|
|
239
239
|
name: _joi.default.string().required(),
|
|
240
240
|
admin: baseAdminFields.keys({
|
|
241
|
-
editorOptions: _joi.default.object().unknown(),
|
|
242
|
-
language: _joi.default.string(),
|
|
243
241
|
components: baseAdminComponentFields.keys({
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
})
|
|
242
|
+
Error: _componentSchema.componentSchema,
|
|
243
|
+
Label: _componentSchema.componentSchema
|
|
244
|
+
}),
|
|
245
|
+
editorOptions: _joi.default.object().unknown(),
|
|
246
|
+
language: _joi.default.string()
|
|
247
247
|
}),
|
|
248
248
|
defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
|
|
249
249
|
type: _joi.default.string().valid('code').required()
|
|
@@ -252,8 +252,8 @@ const json = baseField.keys({
|
|
|
252
252
|
name: _joi.default.string().required(),
|
|
253
253
|
admin: baseAdminFields.keys({
|
|
254
254
|
components: baseAdminComponentFields.keys({
|
|
255
|
-
|
|
256
|
-
|
|
255
|
+
Error: _componentSchema.componentSchema,
|
|
256
|
+
Label: _componentSchema.componentSchema
|
|
257
257
|
})
|
|
258
258
|
}),
|
|
259
259
|
defaultValue: _joi.default.alternatives().try(_joi.default.array(), _joi.default.object()),
|
|
@@ -262,12 +262,12 @@ const json = baseField.keys({
|
|
|
262
262
|
const select = baseField.keys({
|
|
263
263
|
name: _joi.default.string().required(),
|
|
264
264
|
admin: baseAdminFields.keys({
|
|
265
|
-
isClearable: _joi.default.boolean().default(false),
|
|
266
|
-
isSortable: _joi.default.boolean().default(false),
|
|
267
265
|
components: baseAdminComponentFields.keys({
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
})
|
|
266
|
+
Error: _componentSchema.componentSchema,
|
|
267
|
+
Label: _componentSchema.componentSchema
|
|
268
|
+
}),
|
|
269
|
+
isClearable: _joi.default.boolean().default(false),
|
|
270
|
+
isSortable: _joi.default.boolean().default(false)
|
|
271
271
|
}),
|
|
272
272
|
defaultValue: _joi.default.alternatives().try(_joi.default.string().allow(''), _joi.default.array().items(_joi.default.string().allow('')), _joi.default.func()),
|
|
273
273
|
hasMany: _joi.default.boolean().default(false),
|
|
@@ -282,11 +282,11 @@ const select = baseField.keys({
|
|
|
282
282
|
const radio = baseField.keys({
|
|
283
283
|
name: _joi.default.string().required(),
|
|
284
284
|
admin: baseAdminFields.keys({
|
|
285
|
-
layout: _joi.default.string().valid('vertical', 'horizontal'),
|
|
286
285
|
components: baseAdminComponentFields.keys({
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
})
|
|
286
|
+
Error: _componentSchema.componentSchema,
|
|
287
|
+
Label: _componentSchema.componentSchema
|
|
288
|
+
}),
|
|
289
|
+
layout: _joi.default.string().valid('vertical', 'horizontal')
|
|
290
290
|
}),
|
|
291
291
|
defaultValue: _joi.default.alternatives().try(_joi.default.string().allow(''), _joi.default.func()),
|
|
292
292
|
options: _joi.default.array().min(1).items(_joi.default.alternatives().try(_joi.default.string(), _joi.default.object({
|
|
@@ -373,8 +373,8 @@ const upload = baseField.keys({
|
|
|
373
373
|
name: _joi.default.string().required(),
|
|
374
374
|
admin: baseAdminFields.keys({
|
|
375
375
|
components: baseAdminComponentFields.keys({
|
|
376
|
-
|
|
377
|
-
|
|
376
|
+
Error: _componentSchema.componentSchema,
|
|
377
|
+
Label: _componentSchema.componentSchema
|
|
378
378
|
})
|
|
379
379
|
}),
|
|
380
380
|
defaultValue: _joi.default.alternatives().try(_joi.default.object(), _joi.default.func()),
|
|
@@ -387,10 +387,10 @@ const checkbox = baseField.keys({
|
|
|
387
387
|
name: _joi.default.string().required(),
|
|
388
388
|
admin: baseAdminFields.keys({
|
|
389
389
|
components: baseAdminComponentFields.keys({
|
|
390
|
-
Label: _componentSchema.componentSchema,
|
|
391
390
|
Error: _componentSchema.componentSchema,
|
|
392
|
-
|
|
393
|
-
|
|
391
|
+
Label: _componentSchema.componentSchema,
|
|
392
|
+
afterInput: _joi.default.array().items(_componentSchema.componentSchema),
|
|
393
|
+
beforeInput: _joi.default.array().items(_componentSchema.componentSchema)
|
|
394
394
|
})
|
|
395
395
|
}),
|
|
396
396
|
defaultValue: _joi.default.alternatives().try(_joi.default.boolean(), _joi.default.func()),
|
|
@@ -400,10 +400,10 @@ const point = baseField.keys({
|
|
|
400
400
|
name: _joi.default.string().required(),
|
|
401
401
|
admin: baseAdminFields.keys({
|
|
402
402
|
components: baseAdminComponentFields.keys({
|
|
403
|
-
Label: _componentSchema.componentSchema,
|
|
404
403
|
Error: _componentSchema.componentSchema,
|
|
405
|
-
|
|
406
|
-
|
|
404
|
+
Label: _componentSchema.componentSchema,
|
|
405
|
+
afterInput: _joi.default.array().items(_componentSchema.componentSchema),
|
|
406
|
+
beforeInput: _joi.default.array().items(_componentSchema.componentSchema)
|
|
407
407
|
})
|
|
408
408
|
}),
|
|
409
409
|
defaultValue: _joi.default.alternatives().try(_joi.default.array().items(_joi.default.number()).max(2).min(2), _joi.default.func()),
|
|
@@ -413,11 +413,11 @@ const relationship = baseField.keys({
|
|
|
413
413
|
name: _joi.default.string().required(),
|
|
414
414
|
admin: baseAdminFields.keys({
|
|
415
415
|
allowCreate: _joi.default.boolean().default(true),
|
|
416
|
-
isSortable: _joi.default.boolean().default(false),
|
|
417
416
|
components: baseAdminComponentFields.keys({
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
})
|
|
417
|
+
Error: _componentSchema.componentSchema,
|
|
418
|
+
Label: _componentSchema.componentSchema
|
|
419
|
+
}),
|
|
420
|
+
isSortable: _joi.default.boolean().default(false)
|
|
421
421
|
}),
|
|
422
422
|
defaultValue: _joi.default.alternatives().try(_joi.default.func()),
|
|
423
423
|
filterOptions: _joi.default.alternatives().try(_joi.default.object(), _joi.default.func()),
|
|
@@ -487,6 +487,7 @@ const richText = baseField.keys({
|
|
|
487
487
|
CellComponent: _componentSchema.componentSchema.required(),
|
|
488
488
|
FieldComponent: _componentSchema.componentSchema.required(),
|
|
489
489
|
afterReadPromise: _joi.default.func().optional(),
|
|
490
|
+
outputSchema: _joi.default.func().required(),
|
|
490
491
|
populationPromise: _joi.default.func().optional(),
|
|
491
492
|
validate: _joi.default.func().required()
|
|
492
493
|
}).unknown(),
|
|
@@ -495,6 +496,12 @@ const richText = baseField.keys({
|
|
|
495
496
|
const date = baseField.keys({
|
|
496
497
|
name: _joi.default.string().required(),
|
|
497
498
|
admin: baseAdminFields.keys({
|
|
499
|
+
components: baseAdminComponentFields.keys({
|
|
500
|
+
Error: _componentSchema.componentSchema,
|
|
501
|
+
Label: _componentSchema.componentSchema,
|
|
502
|
+
afterInput: _joi.default.array().items(_componentSchema.componentSchema),
|
|
503
|
+
beforeInput: _joi.default.array().items(_componentSchema.componentSchema)
|
|
504
|
+
}),
|
|
498
505
|
date: _joi.default.object({
|
|
499
506
|
displayFormat: _joi.default.string(),
|
|
500
507
|
maxDate: _joi.default.date(),
|
|
@@ -502,17 +509,12 @@ const date = baseField.keys({
|
|
|
502
509
|
minDate: _joi.default.date(),
|
|
503
510
|
minTime: _joi.default.date(),
|
|
504
511
|
monthsToShow: _joi.default.number(),
|
|
512
|
+
overrides: _joi.default.object().unknown(),
|
|
505
513
|
pickerAppearance: _joi.default.string(),
|
|
506
514
|
timeFormat: _joi.default.string(),
|
|
507
515
|
timeIntervals: _joi.default.number()
|
|
508
516
|
}),
|
|
509
|
-
placeholder: _joi.default.string()
|
|
510
|
-
components: baseAdminComponentFields.keys({
|
|
511
|
-
Label: _componentSchema.componentSchema,
|
|
512
|
-
Error: _componentSchema.componentSchema,
|
|
513
|
-
BeforeInput: _joi.default.array().items(_componentSchema.componentSchema),
|
|
514
|
-
AfterInput: _joi.default.array().items(_componentSchema.componentSchema)
|
|
515
|
-
})
|
|
517
|
+
placeholder: _joi.default.string()
|
|
516
518
|
}),
|
|
517
519
|
defaultValue: _joi.default.alternatives().try(_joi.default.string(), _joi.default.func()),
|
|
518
520
|
type: _joi.default.string().valid('date').required()
|
|
@@ -537,4 +539,4 @@ const ui = _joi.default.object().keys({
|
|
|
537
539
|
const fieldSchema = _joi.default.alternatives().try(text, number, textarea, email, code, json, select, group, array, row, collapsible, tabs, radio, relationship, checkbox, upload, richText, blocks, date, point, ui).id('field');
|
|
538
540
|
const _default = fieldSchema;
|
|
539
541
|
|
|
540
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZHMvY29uZmlnL3NjaGVtYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgam9pIGZyb20gJ2pvaSdcblxuaW1wb3J0IHsgY29tcG9uZW50U2NoZW1hIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NoYXJlZC9jb21wb25lbnRTY2hlbWEnXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBDZWxsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgRmllbGQ6IGNvbXBvbmVudFNjaGVtYSxcbiAgICBGaWx0ZXI6IGNvbXBvbmVudFNjaGVtYSxcbiAgfSlcbiAgLmRlZmF1bHQoe30pXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5GaWVsZHMgPSBqb2kub2JqZWN0KCkua2V5cyh7XG4gIGNsYXNzTmFtZTogam9pLnN0cmluZygpLFxuICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMsXG4gIGNvbmRpdGlvbjogam9pLmZ1bmMoKSxcbiAgZGVzY3JpcHRpb246IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgY29tcG9uZW50U2NoZW1hKSxcbiAgZGlzYWJsZUJ1bGtFZGl0OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBkaXNhYmxlZDogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBpbml0Q29sbGFwc2VkOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBwb3NpdGlvbjogam9pLnN0cmluZygpLnZhbGlkKCdzaWRlYmFyJyksXG4gIHJlYWRPbmx5OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBzdHlsZTogam9pLm9iamVjdCgpLnVua25vd24oKSxcbiAgd2lkdGg6IGpvaS5zdHJpbmcoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBiYXNlRmllbGQgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBhY2Nlc3M6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGNyZWF0ZTogam9pLmZ1bmMoKSxcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGhvb2tzOiBqb2lcbiAgICAgIC5vYmplY3QoKVxuICAgICAgLmtleXMoe1xuICAgICAgICBhZnRlckNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGFmdGVyUmVhZDogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZUNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZVZhbGlkYXRlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKS5kZWZhdWx0KFtdKSxcbiAgICAgIH0pXG4gICAgICAuZGVmYXVsdCgpLFxuICAgIGluZGV4OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGxhYmVsOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgam9pLnN0cmluZygpLCBqb2kudmFsaWQoZmFsc2UpKSxcbiAgICBsb2NhbGl6ZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgcmVxdWlyZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgc2F2ZVRvSldUOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5zdHJpbmcoKSkuZGVmYXVsdChmYWxzZSksXG4gICAgdW5pcXVlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLFxuICB9KVxuICAuZGVmYXVsdCgpXG5cbmV4cG9ydCBjb25zdCBpZEZpZWxkID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2lkJyksXG4gIGxvY2FsaXplZDogam9pLmludmFsaWQodHJ1ZSksXG4gIHJlcXVpcmVkOiBqb2kubm90KGZhbHNlLCAwKS5kZWZhdWx0KHRydWUpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3RleHQnLCAnbnVtYmVyJyksXG59KVxuXG5leHBvcnQgY29uc3QgdGV4dCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgYXV0b0NvbXBsZXRlOiBqb2kuc3RyaW5nKCksXG4gICAgcGxhY2Vob2xkZXI6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pLCBqb2kuc3RyaW5nKCkpLFxuICAgIHJ0bDogam9pLmJvb2xlYW4oKSxcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEJlZm9yZUlucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgQWZ0ZXJJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxuICBtYXhMZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgbWluTGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGV4dCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgbnVtYmVyID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBhdXRvQ29tcGxldGU6IGpvaS5zdHJpbmcoKSxcbiAgICBwbGFjZWhvbGRlcjogam9pLnN0cmluZygpLFxuICAgIHN0ZXA6IGpvaS5udW1iZXIoKSxcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEJlZm9yZUlucHV0OiBqb2lcbiAgICAgICAgLmFycmF5KClcbiAgICAgICAgLml0ZW1zKGNvbXBvbmVudFNjaGVtYSlcbiAgICAgICAgLndoZW4oJ2hhc01hbnknLCB7IG5vdDogdHJ1ZSwgb3RoZXJ3aXNlOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gICAgICBBZnRlcklucHV0OiBqb2lcbiAgICAgICAgLmFycmF5KClcbiAgICAgICAgLml0ZW1zKGNvbXBvbmVudFNjaGVtYSlcbiAgICAgICAgLndoZW4oJ2hhc01hbnknLCB7IG5vdDogdHJ1ZSwgb3RoZXJ3aXNlOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm51bWJlcigpLCBqb2kuZnVuYygpKSxcbiAgaGFzTWFueTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgbWF4OiBqb2kubnVtYmVyKCksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICBtaW46IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnbnVtYmVyJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB0ZXh0YXJlYSA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgcGxhY2Vob2xkZXI6IGpvaS5zdHJpbmcoKSxcbiAgICByb3dzOiBqb2kubnVtYmVyKCksXG4gICAgcnRsOiBqb2kuYm9vbGVhbigpLFxuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgQmVmb3JlSW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgICBBZnRlcklucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgIH0pLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLmZ1bmMoKSksXG4gIG1heExlbmd0aDogam9pLm51bWJlcigpLFxuICBtaW5MZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCd0ZXh0YXJlYScpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgZW1haWwgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGF1dG9Db21wbGV0ZTogam9pLnN0cmluZygpLFxuICAgIHBsYWNlaG9sZGVyOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBCZWZvcmVJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIEFmdGVySW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgbWF4TGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIG1pbkxlbmd0aDogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2VtYWlsJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjb2RlID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBlZGl0b3JPcHRpb25zOiBqb2kub2JqZWN0KCkudW5rbm93bigpLCAvLyBFZGl0b3JbJ29wdGlvbnMnXSBAbW9uYWNvLWVkaXRvci9yZWFjdFxuICAgIGxhbmd1YWdlOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdjb2RlJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBqc29uID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKSwgam9pLm9iamVjdCgpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdqc29uJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3QgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGlzQ2xlYXJhYmxlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGlzU29ydGFibGU6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLmFsbG93KCcnKSwgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpLmFsbG93KCcnKSksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBvcHRpb25zOiBqb2lcbiAgICAuYXJyYXkoKVxuICAgIC5taW4oMSlcbiAgICAuaXRlbXMoXG4gICAgICBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICBqb2kuc3RyaW5nKCksXG4gICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgIGxhYmVsOiBqb2lcbiAgICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCkuYWxsb3coJycpLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3NlbGVjdCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgcmFkaW8gPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGxheW91dDogam9pLnN0cmluZygpLnZhbGlkKCd2ZXJ0aWNhbCcsICdob3Jpem9udGFsJyksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLmFsbG93KCcnKSwgam9pLmZ1bmMoKSksXG4gIG9wdGlvbnM6IGpvaVxuICAgIC5hcnJheSgpXG4gICAgLm1pbigxKVxuICAgIC5pdGVtcyhcbiAgICAgIGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoXG4gICAgICAgIGpvaS5zdHJpbmcoKSxcbiAgICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgICAgbGFiZWw6IGpvaVxuICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpXG4gICAgICAgICAgICAucmVxdWlyZWQoKSxcbiAgICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCkuYWxsb3coJycpLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3JhZGlvJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCByb3cgPSBiYXNlRmllbGQua2V5cyh7XG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMuZGVmYXVsdCgpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgncm93JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjb2xsYXBzaWJsZSA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gIGZpZWxkczogam9pLmFycmF5KCkuaXRlbXMoam9pLmxpbmsoJyNmaWVsZCcpKSxcbiAgbGFiZWw6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBjb21wb25lbnRTY2hlbWEpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2NvbGxhcHNpYmxlJykucmVxdWlyZWQoKSxcbn0pXG5cbmNvbnN0IHRhYiA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLndoZW4oJ2xvY2FsaXplZCcsIHsgaXM6IGpvaS5leGlzdCgpLCB0aGVuOiBqb2kucmVxdWlyZWQoKSB9KSxcbiAgZGVzY3JpcHRpb246IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBjb21wb25lbnRTY2hlbWEpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSkucmVxdWlyZWQoKSxcbiAgaW50ZXJmYWNlTmFtZTogam9pLnN0cmluZygpLndoZW4oJ25hbWUnLCB7IG5vdDogam9pLmV4aXN0KCksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KSxcbiAgbGFiZWw6IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSlcbiAgICAud2hlbignbmFtZScsIHsgaXM6IGpvaS5ub3QoKSwgdGhlbjogam9pLnJlcXVpcmVkKCkgfSksXG4gIGxvY2FsaXplZDogam9pLmJvb2xlYW4oKSxcbiAgc2F2ZVRvSldUOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5zdHJpbmcoKSksXG59KVxuXG5leHBvcnQgY29uc3QgdGFicyA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBkZXNjcmlwdGlvbjogam9pLmZvcmJpZGRlbigpLFxuICB9KSxcbiAgZmllbGRzOiBqb2kuZm9yYmlkZGVuKCksXG4gIGxvY2FsaXplZDogam9pLmZvcmJpZGRlbigpLFxuICB0YWJzOiBqb2kuYXJyYXkoKS5pdGVtcyh0YWIpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGFicycpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgZ3JvdXAgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGhpZGVHdXR0ZXI6IGpvaS5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kub2JqZWN0KCksIGpvaS5mdW5jKCkpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSksXG4gIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdncm91cCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgYXJyYXkgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzXG4gICAgLmtleXMoe1xuICAgICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzXG4gICAgICAgIC5rZXlzKHtcbiAgICAgICAgICBSb3dMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICB9KVxuICAgICAgICAuZGVmYXVsdCh7fSksXG4gICAgfSlcbiAgICAuZGVmYXVsdCh7fSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLCBqb2kuZnVuYygpKSxcbiAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLnJlcXVpcmVkKCksXG4gIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICBwbHVyYWw6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgfSksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2FycmF5JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB1cGxvYWQgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKSwgam9pLmZ1bmMoKSksXG4gIGZpbHRlck9wdGlvbnM6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm9iamVjdCgpLCBqb2kuZnVuYygpKSxcbiAgbWF4RGVwdGg6IGpvaS5udW1iZXIoKSxcbiAgcmVsYXRpb25Ubzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndXBsb2FkJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjaGVja2JveCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBCZWZvcmVJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIEFmdGVySW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmJvb2xlYW4oKSwgam9pLmZ1bmMoKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnY2hlY2tib3gnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IHBvaW50ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEJlZm9yZUlucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgQWZ0ZXJJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kubnVtYmVyKCkpLm1heCgyKS5taW4oMiksIGpvaS5mdW5jKCkpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3BvaW50JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCByZWxhdGlvbnNoaXAgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGFsbG93Q3JlYXRlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gICAgaXNTb3J0YWJsZTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuZnVuYygpKSxcbiAgZmlsdGVyT3B0aW9uczogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kub2JqZWN0KCksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBtYXg6IGpvaVxuICAgIC5udW1iZXIoKVxuICAgIC53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pXG4gICAgLndhcm5pbmcoJ2RlcHJlY2F0ZWQnLCB7IG1lc3NhZ2U6ICdVc2UgbWF4Um93cyBpbnN0ZWFkLicgfSksXG4gIG1heERlcHRoOiBqb2kubnVtYmVyKCksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICBtaW46IGpvaVxuICAgIC5udW1iZXIoKVxuICAgIC53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pXG4gICAgLndhcm5pbmcoJ2RlcHJlY2F0ZWQnLCB7IG1lc3NhZ2U6ICdVc2UgbWluUm93cyBpbnN0ZWFkLicgfSksXG4gIG1pblJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICByZWxhdGlvblRvOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLCBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdyZWxhdGlvbnNoaXAnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGJsb2NrcyA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGJsb2Nrczogam9pXG4gICAgLmFycmF5KClcbiAgICAuaXRlbXMoXG4gICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLFxuICAgICAgICBncmFwaFFMOiBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgICAgICAgc2luZ3VsYXJOYW1lOiBqb2kuc3RyaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBpbWFnZUFsdFRleHQ6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgaW1hZ2VVUkw6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgaW50ZXJmYWNlTmFtZTogam9pLnN0cmluZygpLFxuICAgICAgICBsYWJlbHM6IGpvaS5vYmplY3Qoe1xuICAgICAgICAgIHBsdXJhbDogam9pXG4gICAgICAgICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgICAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gICAgICAgICAgc2luZ3VsYXI6IGpvaVxuICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgICAgICB9KSxcbiAgICAgICAgc2x1Zzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICB9KSxcbiAgICApXG4gICAgLnJlcXVpcmVkKCksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLCBqb2kuZnVuYygpKSxcbiAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICBwbHVyYWw6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgfSksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2Jsb2NrcycpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgcmljaFRleHQgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmRlZmF1bHQoKSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5hcnJheSgpLml0ZW1zKGpvaS5vYmplY3QoKSksIGpvaS5mdW5jKCksIGpvaS5vYmplY3QoKSksXG4gIGVkaXRvcjogam9pXG4gICAgLm9iamVjdCgpXG4gICAgLmtleXMoe1xuICAgICAgQ2VsbENvbXBvbmVudDogY29tcG9uZW50U2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICBGaWVsZENvbXBvbmVudDogY29tcG9uZW50U2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICBhZnRlclJlYWRQcm9taXNlOiBqb2kuZnVuYygpLm9wdGlvbmFsKCksXG4gICAgICBwb3B1bGF0aW9uUHJvbWlzZTogam9pLmZ1bmMoKS5vcHRpb25hbCgpLFxuICAgICAgdmFsaWRhdGU6IGpvaS5mdW5jKCkucmVxdWlyZWQoKSxcbiAgICB9KVxuICAgIC51bmtub3duKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgncmljaFRleHQnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGRhdGUgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGRhdGU6IGpvaS5vYmplY3Qoe1xuICAgICAgZGlzcGxheUZvcm1hdDogam9pLnN0cmluZygpLFxuICAgICAgbWF4RGF0ZTogam9pLmRhdGUoKSxcbiAgICAgIG1heFRpbWU6IGpvaS5kYXRlKCksXG4gICAgICBtaW5EYXRlOiBqb2kuZGF0ZSgpLFxuICAgICAgbWluVGltZTogam9pLmRhdGUoKSxcbiAgICAgIG1vbnRoc1RvU2hvdzogam9pLm51bWJlcigpLFxuICAgICAgcGlja2VyQXBwZWFyYW5jZTogam9pLnN0cmluZygpLFxuICAgICAgdGltZUZvcm1hdDogam9pLnN0cmluZygpLFxuICAgICAgdGltZUludGVydmFsczogam9pLm51bWJlcigpLFxuICAgIH0pLFxuICAgIHBsYWNlaG9sZGVyOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBCZWZvcmVJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIEFmdGVySW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdkYXRlJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB1aSA9IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBqb2lcbiAgICAub2JqZWN0KClcbiAgICAua2V5cyh7XG4gICAgICBjb21wb25lbnRzOiBqb2lcbiAgICAgICAgLm9iamVjdCgpXG4gICAgICAgIC5rZXlzKHtcbiAgICAgICAgICBDZWxsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgICAgRmllbGQ6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgfSlcbiAgICAgICAgLmRlZmF1bHQoe30pLFxuICAgICAgY29uZGl0aW9uOiBqb2kuZnVuYygpLFxuICAgICAgcG9zaXRpb246IGpvaS5zdHJpbmcoKS52YWxpZCgnc2lkZWJhcicpLFxuICAgICAgd2lkdGg6IGpvaS5zdHJpbmcoKSxcbiAgICB9KVxuICAgIC5kZWZhdWx0KCksXG4gIGN1c3RvbTogam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBqb2kuYW55KCkpLFxuICBsYWJlbDogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCd1aScpLnJlcXVpcmVkKCksXG59KVxuXG5jb25zdCBmaWVsZFNjaGVtYSA9IGpvaVxuICAuYWx0ZXJuYXRpdmVzKClcbiAgLnRyeShcbiAgICB0ZXh0LFxuICAgIG51bWJlcixcbiAgICB0ZXh0YXJlYSxcbiAgICBlbWFpbCxcbiAgICBjb2RlLFxuICAgIGpzb24sXG4gICAgc2VsZWN0LFxuICAgIGdyb3VwLFxuICAgIGFycmF5LFxuICAgIHJvdyxcbiAgICBjb2xsYXBzaWJsZSxcbiAgICB0YWJzLFxuICAgIHJhZGlvLFxuICAgIHJlbGF0aW9uc2hpcCxcbiAgICBjaGVja2JveCxcbiAgICB1cGxvYWQsXG4gICAgcmljaFRleHQsXG4gICAgYmxvY2tzLFxuICAgIGRhdGUsXG4gICAgcG9pbnQsXG4gICAgdWksXG4gIClcbiAgLmlkKCdmaWVsZCcpXG5cbmV4cG9ydCBkZWZhdWx0IGZpZWxkU2NoZW1hXG4iXSwibmFtZXMiOlsiYmFzZUFkbWluQ29tcG9uZW50RmllbGRzIiwiYmFzZUFkbWluRmllbGRzIiwiYmFzZUZpZWxkIiwiaWRGaWVsZCIsInRleHQiLCJudW1iZXIiLCJ0ZXh0YXJlYSIsImVtYWlsIiwiY29kZSIsImpzb24iLCJzZWxlY3QiLCJyYWRpbyIsInJvdyIsImNvbGxhcHNpYmxlIiwidGFicyIsImdyb3VwIiwiYXJyYXkiLCJ1cGxvYWQiLCJjaGVja2JveCIsInBvaW50IiwicmVsYXRpb25zaGlwIiwiYmxvY2tzIiwicmljaFRleHQiLCJkYXRlIiwidWkiLCJqb2kiLCJvYmplY3QiLCJrZXlzIiwiQ2VsbCIsImNvbXBvbmVudFNjaGVtYSIsIkZpZWxkIiwiRmlsdGVyIiwiZGVmYXVsdCIsImNsYXNzTmFtZSIsInN0cmluZyIsImNvbXBvbmVudHMiLCJjb25kaXRpb24iLCJmdW5jIiwiZGVzY3JpcHRpb24iLCJhbHRlcm5hdGl2ZXMiLCJ0cnkiLCJwYXR0ZXJuIiwiZGlzYWJsZUJ1bGtFZGl0IiwiYm9vbGVhbiIsImRpc2FibGVkIiwiaGlkZGVuIiwiaW5pdENvbGxhcHNlZCIsInBvc2l0aW9uIiwidmFsaWQiLCJyZWFkT25seSIsInN0eWxlIiwidW5rbm93biIsIndpZHRoIiwiYWNjZXNzIiwiY3JlYXRlIiwicmVhZCIsInVwZGF0ZSIsImFkbWluIiwiY3VzdG9tIiwiYW55IiwiaG9va3MiLCJhZnRlckNoYW5nZSIsIml0ZW1zIiwiYWZ0ZXJSZWFkIiwiYmVmb3JlQ2hhbmdlIiwiYmVmb3JlVmFsaWRhdGUiLCJpbmRleCIsImxhYmVsIiwibG9jYWxpemVkIiwicmVxdWlyZWQiLCJzYXZlVG9KV1QiLCJ1bmlxdWUiLCJ2YWxpZGF0ZSIsIm5hbWUiLCJpbnZhbGlkIiwibm90IiwidHlwZSIsImF1dG9Db21wbGV0ZSIsInBsYWNlaG9sZGVyIiwicnRsIiwiTGFiZWwiLCJFcnJvciIsIkJlZm9yZUlucHV0IiwiQWZ0ZXJJbnB1dCIsImRlZmF1bHRWYWx1ZSIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsInN0ZXAiLCJ3aGVuIiwib3RoZXJ3aXNlIiwiZm9yYmlkZGVuIiwiaGFzTWFueSIsIm1heCIsIm1heFJvd3MiLCJpcyIsInRoZW4iLCJtaW4iLCJtaW5Sb3dzIiwicm93cyIsImVkaXRvck9wdGlvbnMiLCJsYW5ndWFnZSIsImlzQ2xlYXJhYmxlIiwiaXNTb3J0YWJsZSIsImFsbG93Iiwib3B0aW9ucyIsInZhbHVlIiwibGF5b3V0IiwiZmllbGRzIiwibGluayIsInRhYiIsImV4aXN0IiwiaW50ZXJmYWNlTmFtZSIsImhpZGVHdXR0ZXIiLCJSb3dMYWJlbCIsImxhYmVscyIsInBsdXJhbCIsInNpbmd1bGFyIiwiZmlsdGVyT3B0aW9ucyIsIm1heERlcHRoIiwicmVsYXRpb25UbyIsImFsbG93Q3JlYXRlIiwid2FybmluZyIsIm1lc3NhZ2UiLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwiaW1hZ2VBbHRUZXh0IiwiaW1hZ2VVUkwiLCJzbHVnIiwiZWRpdG9yIiwiQ2VsbENvbXBvbmVudCIsIkZpZWxkQ29tcG9uZW50IiwiYWZ0ZXJSZWFkUHJvbWlzZSIsIm9wdGlvbmFsIiwicG9wdWxhdGlvblByb21pc2UiLCJkaXNwbGF5Rm9ybWF0IiwibWF4RGF0ZSIsIm1heFRpbWUiLCJtaW5EYXRlIiwibWluVGltZSIsIm1vbnRoc1RvU2hvdyIsInBpY2tlckFwcGVhcmFuY2UiLCJ0aW1lRm9ybWF0IiwidGltZUludGVydmFscyIsImZpZWxkU2NoZW1hIiwiaWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBSWFBLHdCQUF3QjtlQUF4QkE7O0lBU0FDLGVBQWU7ZUFBZkE7O0lBaUJBQyxTQUFTO2VBQVRBOztJQWdDQUMsT0FBTztlQUFQQTs7SUFPQUMsSUFBSTtlQUFKQTs7SUFxQkFDLE1BQU07ZUFBTkE7O0lBNEJBQyxRQUFRO2VBQVJBOztJQW1CQUMsS0FBSztlQUFMQTs7SUFrQkFDLElBQUk7ZUFBSkE7O0lBY0FDLElBQUk7ZUFBSkE7O0lBWUFDLE1BQU07ZUFBTkE7O0lBZ0NBQyxLQUFLO2VBQUxBOztJQTZCQUMsR0FBRztlQUFIQTs7SUFNQUMsV0FBVztlQUFYQTs7SUFvQkFDLElBQUk7ZUFBSkE7O0lBVUFDLEtBQUs7ZUFBTEE7O0lBV0FDLEtBQUs7ZUFBTEE7O0lBMkJBQyxNQUFNO2VBQU5BOztJQWVBQyxRQUFRO2VBQVJBOztJQWNBQyxLQUFLO2VBQUxBOztJQWNBQyxZQUFZO2VBQVpBOztJQTRCQUMsTUFBTTtlQUFOQTs7SUF1Q0FDLFFBQVE7ZUFBUkE7O0lBaUJBQyxJQUFJO2VBQUpBOztJQTBCQUMsRUFBRTtlQUFGQTs7SUFpRGIsT0FBMEI7ZUFBMUI7Ozs0REF0Z0JnQjtpQ0FFZ0I7Ozs7OztBQUV6QixNQUFNeEIsMkJBQTJCeUIsWUFBRyxDQUN4Q0MsTUFBTSxHQUNOQyxJQUFJLENBQUM7SUFDSkMsTUFBTUMsZ0NBQWU7SUFDckJDLE9BQU9ELGdDQUFlO0lBQ3RCRSxRQUFRRixnQ0FBZTtBQUN6QixHQUNDRyxPQUFPLENBQUMsQ0FBQztBQUVMLE1BQU0vQixrQkFBa0J3QixZQUFHLENBQUNDLE1BQU0sR0FBR0MsSUFBSSxDQUFDO0lBQy9DTSxXQUFXUixZQUFHLENBQUNTLE1BQU07SUFDckJDLFlBQVluQztJQUNab0MsV0FBV1gsWUFBRyxDQUFDWSxJQUFJO0lBQ25CQyxhQUFh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
|
|
542
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZHMvY29uZmlnL3NjaGVtYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgam9pIGZyb20gJ2pvaSdcblxuaW1wb3J0IHsgY29tcG9uZW50U2NoZW1hIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NoYXJlZC9jb21wb25lbnRTY2hlbWEnXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBDZWxsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgRmllbGQ6IGNvbXBvbmVudFNjaGVtYSxcbiAgICBGaWx0ZXI6IGNvbXBvbmVudFNjaGVtYSxcbiAgfSlcbiAgLmRlZmF1bHQoe30pXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5GaWVsZHMgPSBqb2kub2JqZWN0KCkua2V5cyh7XG4gIGNsYXNzTmFtZTogam9pLnN0cmluZygpLFxuICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMsXG4gIGNvbmRpdGlvbjogam9pLmZ1bmMoKSxcbiAgZGVzY3JpcHRpb246IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgY29tcG9uZW50U2NoZW1hKSxcbiAgZGlzYWJsZUJ1bGtFZGl0OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBkaXNhYmxlZDogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBpbml0Q29sbGFwc2VkOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBwb3NpdGlvbjogam9pLnN0cmluZygpLnZhbGlkKCdzaWRlYmFyJyksXG4gIHJlYWRPbmx5OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBzdHlsZTogam9pLm9iamVjdCgpLnVua25vd24oKSxcbiAgd2lkdGg6IGpvaS5zdHJpbmcoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBiYXNlRmllbGQgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBhY2Nlc3M6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGNyZWF0ZTogam9pLmZ1bmMoKSxcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGhvb2tzOiBqb2lcbiAgICAgIC5vYmplY3QoKVxuICAgICAgLmtleXMoe1xuICAgICAgICBhZnRlckNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGFmdGVyUmVhZDogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZUNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZVZhbGlkYXRlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKS5kZWZhdWx0KFtdKSxcbiAgICAgIH0pXG4gICAgICAuZGVmYXVsdCgpLFxuICAgIGluZGV4OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGxhYmVsOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgam9pLnN0cmluZygpLCBqb2kudmFsaWQoZmFsc2UpKSxcbiAgICBsb2NhbGl6ZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgcmVxdWlyZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgc2F2ZVRvSldUOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5zdHJpbmcoKSkuZGVmYXVsdChmYWxzZSksXG4gICAgdW5pcXVlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLFxuICB9KVxuICAuZGVmYXVsdCgpXG5cbmV4cG9ydCBjb25zdCBpZEZpZWxkID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2lkJyksXG4gIGxvY2FsaXplZDogam9pLmludmFsaWQodHJ1ZSksXG4gIHJlcXVpcmVkOiBqb2kubm90KGZhbHNlLCAwKS5kZWZhdWx0KHRydWUpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3RleHQnLCAnbnVtYmVyJyksXG59KVxuXG5leHBvcnQgY29uc3QgdGV4dCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgYXV0b0NvbXBsZXRlOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBhZnRlcklucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgYmVmb3JlSW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gICAgcGxhY2Vob2xkZXI6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pLCBqb2kuc3RyaW5nKCkpLFxuICAgIHJ0bDogam9pLmJvb2xlYW4oKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxuICBtYXhMZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgbWluTGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGV4dCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgbnVtYmVyID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBhdXRvQ29tcGxldGU6IGpvaS5zdHJpbmcoKSxcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIGFmdGVySW5wdXQ6IGpvaVxuICAgICAgICAuYXJyYXkoKVxuICAgICAgICAuaXRlbXMoY29tcG9uZW50U2NoZW1hKVxuICAgICAgICAud2hlbignaGFzTWFueScsIHsgbm90OiB0cnVlLCBvdGhlcndpc2U6IGpvaS5mb3JiaWRkZW4oKSB9KSxcbiAgICAgIGJlZm9yZUlucHV0OiBqb2lcbiAgICAgICAgLmFycmF5KClcbiAgICAgICAgLml0ZW1zKGNvbXBvbmVudFNjaGVtYSlcbiAgICAgICAgLndoZW4oJ2hhc01hbnknLCB7IG5vdDogdHJ1ZSwgb3RoZXJ3aXNlOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gICAgfSksXG4gICAgcGxhY2Vob2xkZXI6IGpvaS5zdHJpbmcoKSxcbiAgICBzdGVwOiBqb2kubnVtYmVyKCksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm51bWJlcigpLCBqb2kuZnVuYygpKSxcbiAgaGFzTWFueTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgbWF4OiBqb2kubnVtYmVyKCksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICBtaW46IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnbnVtYmVyJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB0ZXh0YXJlYSA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBhZnRlcklucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgYmVmb3JlSW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gICAgcGxhY2Vob2xkZXI6IGpvaS5zdHJpbmcoKSxcbiAgICByb3dzOiBqb2kubnVtYmVyKCksXG4gICAgcnRsOiBqb2kuYm9vbGVhbigpLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLmZ1bmMoKSksXG4gIG1heExlbmd0aDogam9pLm51bWJlcigpLFxuICBtaW5MZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCd0ZXh0YXJlYScpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgZW1haWwgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGF1dG9Db21wbGV0ZTogam9pLnN0cmluZygpLFxuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgYWZ0ZXJJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIGJlZm9yZUlucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgIH0pLFxuICAgIHBsYWNlaG9sZGVyOiBqb2kuc3RyaW5nKCksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgbWF4TGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIG1pbkxlbmd0aDogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2VtYWlsJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjb2RlID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICB9KSxcbiAgICBlZGl0b3JPcHRpb25zOiBqb2kub2JqZWN0KCkudW5rbm93bigpLCAvLyBFZGl0b3JbJ29wdGlvbnMnXSBAbW9uYWNvLWVkaXRvci9yZWFjdFxuICAgIGxhbmd1YWdlOiBqb2kuc3RyaW5nKCksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdjb2RlJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBqc29uID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKSwgam9pLm9iamVjdCgpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdqc29uJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBzZWxlY3QgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICAgIGlzQ2xlYXJhYmxlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGlzU29ydGFibGU6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLmFsbG93KCcnKSwgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpLmFsbG93KCcnKSksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBvcHRpb25zOiBqb2lcbiAgICAuYXJyYXkoKVxuICAgIC5taW4oMSlcbiAgICAuaXRlbXMoXG4gICAgICBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICBqb2kuc3RyaW5nKCksXG4gICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgIGxhYmVsOiBqb2lcbiAgICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCkuYWxsb3coJycpLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3NlbGVjdCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgcmFkaW8gPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICAgIGxheW91dDogam9pLnN0cmluZygpLnZhbGlkKCd2ZXJ0aWNhbCcsICdob3Jpem9udGFsJyksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLmFsbG93KCcnKSwgam9pLmZ1bmMoKSksXG4gIG9wdGlvbnM6IGpvaVxuICAgIC5hcnJheSgpXG4gICAgLm1pbigxKVxuICAgIC5pdGVtcyhcbiAgICAgIGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoXG4gICAgICAgIGpvaS5zdHJpbmcoKSxcbiAgICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgICAgbGFiZWw6IGpvaVxuICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpXG4gICAgICAgICAgICAucmVxdWlyZWQoKSxcbiAgICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCkuYWxsb3coJycpLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3JhZGlvJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCByb3cgPSBiYXNlRmllbGQua2V5cyh7XG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMuZGVmYXVsdCgpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgncm93JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjb2xsYXBzaWJsZSA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gIGZpZWxkczogam9pLmFycmF5KCkuaXRlbXMoam9pLmxpbmsoJyNmaWVsZCcpKSxcbiAgbGFiZWw6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBjb21wb25lbnRTY2hlbWEpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2NvbGxhcHNpYmxlJykucmVxdWlyZWQoKSxcbn0pXG5cbmNvbnN0IHRhYiA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLndoZW4oJ2xvY2FsaXplZCcsIHsgaXM6IGpvaS5leGlzdCgpLCB0aGVuOiBqb2kucmVxdWlyZWQoKSB9KSxcbiAgZGVzY3JpcHRpb246IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBjb21wb25lbnRTY2hlbWEpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSkucmVxdWlyZWQoKSxcbiAgaW50ZXJmYWNlTmFtZTogam9pLnN0cmluZygpLndoZW4oJ25hbWUnLCB7IG5vdDogam9pLmV4aXN0KCksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KSxcbiAgbGFiZWw6IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSlcbiAgICAud2hlbignbmFtZScsIHsgaXM6IGpvaS5ub3QoKSwgdGhlbjogam9pLnJlcXVpcmVkKCkgfSksXG4gIGxvY2FsaXplZDogam9pLmJvb2xlYW4oKSxcbiAgc2F2ZVRvSldUOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5zdHJpbmcoKSksXG59KVxuXG5leHBvcnQgY29uc3QgdGFicyA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBkZXNjcmlwdGlvbjogam9pLmZvcmJpZGRlbigpLFxuICB9KSxcbiAgZmllbGRzOiBqb2kuZm9yYmlkZGVuKCksXG4gIGxvY2FsaXplZDogam9pLmZvcmJpZGRlbigpLFxuICB0YWJzOiBqb2kuYXJyYXkoKS5pdGVtcyh0YWIpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGFicycpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgZ3JvdXAgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGhpZGVHdXR0ZXI6IGpvaS5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kub2JqZWN0KCksIGpvaS5mdW5jKCkpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSksXG4gIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdncm91cCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgYXJyYXkgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzXG4gICAgLmtleXMoe1xuICAgICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzXG4gICAgICAgIC5rZXlzKHtcbiAgICAgICAgICBSb3dMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICB9KVxuICAgICAgICAuZGVmYXVsdCh7fSksXG4gICAgfSlcbiAgICAuZGVmYXVsdCh7fSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLCBqb2kuZnVuYygpKSxcbiAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLnJlcXVpcmVkKCksXG4gIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICBwbHVyYWw6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgfSksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2FycmF5JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB1cGxvYWQgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKSwgam9pLmZ1bmMoKSksXG4gIGZpbHRlck9wdGlvbnM6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm9iamVjdCgpLCBqb2kuZnVuYygpKSxcbiAgbWF4RGVwdGg6IGpvaS5udW1iZXIoKSxcbiAgcmVsYXRpb25Ubzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndXBsb2FkJykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBjaGVja2JveCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBhZnRlcklucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgYmVmb3JlSW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmJvb2xlYW4oKSwgam9pLmZ1bmMoKSksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnY2hlY2tib3gnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IHBvaW50ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIGFmdGVySW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgICBiZWZvcmVJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kubnVtYmVyKCkpLm1heCgyKS5taW4oMiksIGpvaS5mdW5jKCkpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3BvaW50JykucmVxdWlyZWQoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCByZWxhdGlvbnNoaXAgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGFsbG93Q3JlYXRlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gICAgaXNTb3J0YWJsZTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuZnVuYygpKSxcbiAgZmlsdGVyT3B0aW9uczogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kub2JqZWN0KCksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBtYXg6IGpvaVxuICAgIC5udW1iZXIoKVxuICAgIC53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pXG4gICAgLndhcm5pbmcoJ2RlcHJlY2F0ZWQnLCB7IG1lc3NhZ2U6ICdVc2UgbWF4Um93cyBpbnN0ZWFkLicgfSksXG4gIG1heERlcHRoOiBqb2kubnVtYmVyKCksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICBtaW46IGpvaVxuICAgIC5udW1iZXIoKVxuICAgIC53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pXG4gICAgLndhcm5pbmcoJ2RlcHJlY2F0ZWQnLCB7IG1lc3NhZ2U6ICdVc2UgbWluUm93cyBpbnN0ZWFkLicgfSksXG4gIG1pblJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxuICByZWxhdGlvblRvOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLCBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdyZWxhdGlvbnNoaXAnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGJsb2NrcyA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGJsb2Nrczogam9pXG4gICAgLmFycmF5KClcbiAgICAuaXRlbXMoXG4gICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLFxuICAgICAgICBncmFwaFFMOiBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgICAgICAgc2luZ3VsYXJOYW1lOiBqb2kuc3RyaW5nKCksXG4gICAgICAgIH0pLFxuICAgICAgICBpbWFnZUFsdFRleHQ6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgaW1hZ2VVUkw6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgaW50ZXJmYWNlTmFtZTogam9pLnN0cmluZygpLFxuICAgICAgICBsYWJlbHM6IGpvaS5vYmplY3Qoe1xuICAgICAgICAgIHBsdXJhbDogam9pXG4gICAgICAgICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgICAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gICAgICAgICAgc2luZ3VsYXI6IGpvaVxuICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgICAgICB9KSxcbiAgICAgICAgc2x1Zzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICB9KSxcbiAgICApXG4gICAgLnJlcXVpcmVkKCksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLCBqb2kuZnVuYygpKSxcbiAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICBwbHVyYWw6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgfSksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2Jsb2NrcycpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgcmljaFRleHQgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmRlZmF1bHQoKSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5hcnJheSgpLml0ZW1zKGpvaS5vYmplY3QoKSksIGpvaS5mdW5jKCksIGpvaS5vYmplY3QoKSksXG4gIGVkaXRvcjogam9pXG4gICAgLm9iamVjdCgpXG4gICAgLmtleXMoe1xuICAgICAgQ2VsbENvbXBvbmVudDogY29tcG9uZW50U2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICBGaWVsZENvbXBvbmVudDogY29tcG9uZW50U2NoZW1hLnJlcXVpcmVkKCksXG4gICAgICBhZnRlclJlYWRQcm9taXNlOiBqb2kuZnVuYygpLm9wdGlvbmFsKCksXG4gICAgICBvdXRwdXRTY2hlbWE6IGpvaS5mdW5jKCkucmVxdWlyZWQoKSxcbiAgICAgIHBvcHVsYXRpb25Qcm9taXNlOiBqb2kuZnVuYygpLm9wdGlvbmFsKCksXG4gICAgICB2YWxpZGF0ZTogam9pLmZ1bmMoKS5yZXF1aXJlZCgpLFxuICAgIH0pXG4gICAgLnVua25vd24oKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdyaWNoVGV4dCcpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgZGF0ZSA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBhZnRlcklucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgYmVmb3JlSW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gICAgZGF0ZTogam9pLm9iamVjdCh7XG4gICAgICBkaXNwbGF5Rm9ybWF0OiBqb2kuc3RyaW5nKCksXG4gICAgICBtYXhEYXRlOiBqb2kuZGF0ZSgpLFxuICAgICAgbWF4VGltZTogam9pLmRhdGUoKSxcbiAgICAgIG1pbkRhdGU6IGpvaS5kYXRlKCksXG4gICAgICBtaW5UaW1lOiBqb2kuZGF0ZSgpLFxuICAgICAgbW9udGhzVG9TaG93OiBqb2kubnVtYmVyKCksXG4gICAgICBvdmVycmlkZXM6IGpvaS5vYmplY3QoKS51bmtub3duKCksXG4gICAgICBwaWNrZXJBcHBlYXJhbmNlOiBqb2kuc3RyaW5nKCksXG4gICAgICB0aW1lRm9ybWF0OiBqb2kuc3RyaW5nKCksXG4gICAgICB0aW1lSW50ZXJ2YWxzOiBqb2kubnVtYmVyKCksXG4gICAgfSksXG4gICAgcGxhY2Vob2xkZXI6IGpvaS5zdHJpbmcoKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2RhdGUnKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IHVpID0gam9pLm9iamVjdCgpLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgYWRtaW46IGpvaVxuICAgIC5vYmplY3QoKVxuICAgIC5rZXlzKHtcbiAgICAgIGNvbXBvbmVudHM6IGpvaVxuICAgICAgICAub2JqZWN0KClcbiAgICAgICAgLmtleXMoe1xuICAgICAgICAgIENlbGw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgICBGaWVsZDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICB9KVxuICAgICAgICAuZGVmYXVsdCh7fSksXG4gICAgICBjb25kaXRpb246IGpvaS5mdW5jKCksXG4gICAgICBwb3NpdGlvbjogam9pLnN0cmluZygpLnZhbGlkKCdzaWRlYmFyJyksXG4gICAgICB3aWR0aDogam9pLnN0cmluZygpLFxuICAgIH0pXG4gICAgLmRlZmF1bHQoKSxcbiAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gIGxhYmVsOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3VpJykucmVxdWlyZWQoKSxcbn0pXG5cbmNvbnN0IGZpZWxkU2NoZW1hID0gam9pXG4gIC5hbHRlcm5hdGl2ZXMoKVxuICAudHJ5KFxuICAgIHRleHQsXG4gICAgbnVtYmVyLFxuICAgIHRleHRhcmVhLFxuICAgIGVtYWlsLFxuICAgIGNvZGUsXG4gICAganNvbixcbiAgICBzZWxlY3QsXG4gICAgZ3JvdXAsXG4gICAgYXJyYXksXG4gICAgcm93LFxuICAgIGNvbGxhcHNpYmxlLFxuICAgIHRhYnMsXG4gICAgcmFkaW8sXG4gICAgcmVsYXRpb25zaGlwLFxuICAgIGNoZWNrYm94LFxuICAgIHVwbG9hZCxcbiAgICByaWNoVGV4dCxcbiAgICBibG9ja3MsXG4gICAgZGF0ZSxcbiAgICBwb2ludCxcbiAgICB1aSxcbiAgKVxuICAuaWQoJ2ZpZWxkJylcblxuZXhwb3J0IGRlZmF1bHQgZmllbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMiLCJiYXNlQWRtaW5GaWVsZHMiLCJiYXNlRmllbGQiLCJpZEZpZWxkIiwidGV4dCIsIm51bWJlciIsInRleHRhcmVhIiwiZW1haWwiLCJjb2RlIiwianNvbiIsInNlbGVjdCIsInJhZGlvIiwicm93IiwiY29sbGFwc2libGUiLCJ0YWJzIiwiZ3JvdXAiLCJhcnJheSIsInVwbG9hZCIsImNoZWNrYm94IiwicG9pbnQiLCJyZWxhdGlvbnNoaXAiLCJibG9ja3MiLCJyaWNoVGV4dCIsImRhdGUiLCJ1aSIsImpvaSIsIm9iamVjdCIsImtleXMiLCJDZWxsIiwiY29tcG9uZW50U2NoZW1hIiwiRmllbGQiLCJGaWx0ZXIiLCJkZWZhdWx0IiwiY2xhc3NOYW1lIiwic3RyaW5nIiwiY29tcG9uZW50cyIsImNvbmRpdGlvbiIsImZ1bmMiLCJkZXNjcmlwdGlvbiIsImFsdGVybmF0aXZlcyIsInRyeSIsInBhdHRlcm4iLCJkaXNhYmxlQnVsa0VkaXQiLCJib29sZWFuIiwiZGlzYWJsZWQiLCJoaWRkZW4iLCJpbml0Q29sbGFwc2VkIiwicG9zaXRpb24iLCJ2YWxpZCIsInJlYWRPbmx5Iiwic3R5bGUiLCJ1bmtub3duIiwid2lkdGgiLCJhY2Nlc3MiLCJjcmVhdGUiLCJyZWFkIiwidXBkYXRlIiwiYWRtaW4iLCJjdXN0b20iLCJhbnkiLCJob29rcyIsImFmdGVyQ2hhbmdlIiwiaXRlbXMiLCJhZnRlclJlYWQiLCJiZWZvcmVDaGFuZ2UiLCJiZWZvcmVWYWxpZGF0ZSIsImluZGV4IiwibGFiZWwiLCJsb2NhbGl6ZWQiLCJyZXF1aXJlZCIsInNhdmVUb0pXVCIsInVuaXF1ZSIsInZhbGlkYXRlIiwibmFtZSIsImludmFsaWQiLCJub3QiLCJ0eXBlIiwiYXV0b0NvbXBsZXRlIiwiRXJyb3IiLCJMYWJlbCIsImFmdGVySW5wdXQiLCJiZWZvcmVJbnB1dCIsInBsYWNlaG9sZGVyIiwicnRsIiwiZGVmYXVsdFZhbHVlIiwibWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwid2hlbiIsIm90aGVyd2lzZSIsImZvcmJpZGRlbiIsInN0ZXAiLCJoYXNNYW55IiwibWF4IiwibWF4Um93cyIsImlzIiwidGhlbiIsIm1pbiIsIm1pblJvd3MiLCJyb3dzIiwiZWRpdG9yT3B0aW9ucyIsImxhbmd1YWdlIiwiaXNDbGVhcmFibGUiLCJpc1NvcnRhYmxlIiwiYWxsb3ciLCJvcHRpb25zIiwidmFsdWUiLCJsYXlvdXQiLCJmaWVsZHMiLCJsaW5rIiwidGFiIiwiZXhpc3QiLCJpbnRlcmZhY2VOYW1lIiwiaGlkZUd1dHRlciIsIlJvd0xhYmVsIiwibGFiZWxzIiwicGx1cmFsIiwic2luZ3VsYXIiLCJmaWx0ZXJPcHRpb25zIiwibWF4RGVwdGgiLCJyZWxhdGlvblRvIiwiYWxsb3dDcmVhdGUiLCJ3YXJuaW5nIiwibWVzc2FnZSIsImdyYXBoUUwiLCJzaW5ndWxhck5hbWUiLCJpbWFnZUFsdFRleHQiLCJpbWFnZVVSTCIsInNsdWciLCJlZGl0b3IiLCJDZWxsQ29tcG9uZW50IiwiRmllbGRDb21wb25lbnQiLCJhZnRlclJlYWRQcm9taXNlIiwib3B0aW9uYWwiLCJvdXRwdXRTY2hlbWEiLCJwb3B1bGF0aW9uUHJvbWlzZSIsImRpc3BsYXlGb3JtYXQiLCJtYXhEYXRlIiwibWF4VGltZSIsIm1pbkRhdGUiLCJtaW5UaW1lIiwibW9udGhzVG9TaG93Iiwib3ZlcnJpZGVzIiwicGlja2VyQXBwZWFyYW5jZSIsInRpbWVGb3JtYXQiLCJ0aW1lSW50ZXJ2YWxzIiwiZmllbGRTY2hlbWEiLCJpZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFJYUEsd0JBQXdCO2VBQXhCQTs7SUFTQUMsZUFBZTtlQUFmQTs7SUFpQkFDLFNBQVM7ZUFBVEE7O0lBZ0NBQyxPQUFPO2VBQVBBOztJQU9BQyxJQUFJO2VBQUpBOztJQXFCQUMsTUFBTTtlQUFOQTs7SUE0QkFDLFFBQVE7ZUFBUkE7O0lBbUJBQyxLQUFLO2VBQUxBOztJQWtCQUMsSUFBSTtlQUFKQTs7SUFjQUMsSUFBSTtlQUFKQTs7SUFZQUMsTUFBTTtlQUFOQTs7SUFnQ0FDLEtBQUs7ZUFBTEE7O0lBNkJBQyxHQUFHO2VBQUhBOztJQU1BQyxXQUFXO2VBQVhBOztJQW9CQUMsSUFBSTtlQUFKQTs7SUFVQUMsS0FBSztlQUFMQTs7SUFXQUMsS0FBSztlQUFMQTs7SUEyQkFDLE1BQU07ZUFBTkE7O0lBZUFDLFFBQVE7ZUFBUkE7O0lBY0FDLEtBQUs7ZUFBTEE7O0lBY0FDLFlBQVk7ZUFBWkE7O0lBNEJBQyxNQUFNO2VBQU5BOztJQXVDQUMsUUFBUTtlQUFSQTs7SUFrQkFDLElBQUk7ZUFBSkE7O0lBMkJBQyxFQUFFO2VBQUZBOztJQWlEYixPQUEwQjtlQUExQjs7OzREQXhnQmdCO2lDQUVnQjs7Ozs7O0FBRXpCLE1BQU14QiwyQkFBMkJ5QixZQUFHLENBQ3hDQyxNQUFNLEdBQ05DLElBQUksQ0FBQztJQUNKQyxNQUFNQyxnQ0FBZTtJQUNyQkMsT0FBT0QsZ0NBQWU7SUFDdEJFLFFBQVFGLGdDQUFlO0FBQ3pCLEdBQ0NHLE9BQU8sQ0FBQyxDQUFDO0FBRUwsTUFBTS9CLGtCQUFrQndCLFlB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
|