tnx-shared 5.1.78 → 5.1.82
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/bundles/tnx-shared.umd.js +994 -321
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/data-form-base.d.ts +1 -0
- package/classes/base/data-form-base.d.ts.map +1 -1
- package/classes/base/data-list-base.d.ts +2 -1
- package/classes/base/data-list-base.d.ts.map +1 -1
- package/classes/form-schema.d.ts +3 -0
- package/classes/form-schema.d.ts.map +1 -1
- package/components/crud/crud-form/crud-form.component.d.ts.map +1 -1
- package/components/crud/crud-list/crud-list.component.d.ts +1 -0
- package/components/crud/crud-list/crud-list.component.d.ts.map +1 -1
- package/components/entity-permission/services.cs/entity-permission.service.d.ts +1 -0
- package/components/entity-permission/services.cs/entity-permission.service.d.ts.map +1 -1
- package/components/file-explorer/file-manager/file-manager.component.d.ts +1 -0
- package/components/file-explorer/file-manager/file-manager.component.d.ts.map +1 -1
- package/components/file-explorer/services/file-data.service.d.ts +1 -0
- package/components/file-explorer/services/file-data.service.d.ts.map +1 -1
- package/components/query-builders/query-builder/query-builder.component.d.ts.map +1 -1
- package/components/query-builders/query-builder-group/query-builder-group.component.d.ts +1 -0
- package/components/query-builders/query-builder-group/query-builder-group.component.d.ts.map +1 -1
- package/components/query-builders/query-builder-rule/query-builder-rule.component.d.ts +3 -0
- package/components/query-builders/query-builder-rule/query-builder-rule.component.d.ts.map +1 -1
- package/components/statemachines/models/constants.d.ts +5 -1
- package/components/statemachines/models/constants.d.ts.map +1 -1
- package/components/statemachines/models/enums.d.ts +4 -0
- package/components/statemachines/models/enums.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.d.ts +3 -0
- package/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.d.ts +28 -0
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.d.ts.map +1 -0
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.ngfactory.d.ts.map +1 -0
- package/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.d.ts +3 -1
- package/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.d.ts +3 -1
- package/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.d.ts +6 -4
- package/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.d.ts.map +1 -1
- package/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.d.ts +3 -3
- package/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.d.ts.map +1 -1
- package/components/user-picker/user-picker.component.d.ts +8 -2
- package/components/user-picker/user-picker.component.d.ts.map +1 -1
- package/components/workflow/models/models.d.ts +8 -8
- package/components/workflow/models/models.d.ts.map +1 -1
- package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts +1 -1
- package/components/workflow/process-workflow-form/process-workflow-form.component.d.ts.map +1 -1
- package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts +3 -6
- package/components/workflow/process-workflow-target/process-workflow-target.component.d.ts.map +1 -1
- package/components/workflow/workflow-history-new/workflow-history-new.component.d.ts +3 -3
- package/components/workflow/workflow-history-new/workflow-history-new.component.d.ts.map +1 -1
- package/components/workflow/workflow-setting-new/workflow-setting-new.component.d.ts +1 -0
- package/components/workflow/workflow-setting-new/workflow-setting-new.component.d.ts.map +1 -1
- package/configs/component-context.constant.d.ts +1 -0
- package/configs/component-context.constant.d.ts.map +1 -1
- package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts +8 -3
- package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts.map +1 -1
- package/congviec/congviec/congviec-form/congviec-form.component.d.ts +2 -0
- package/congviec/congviec/congviec-form/congviec-form.component.d.ts.map +1 -1
- package/congviec/congviec/congviec.component.d.ts.map +1 -1
- package/congviec/congviec/services/congviec-dinhkem.service.d.ts +8 -0
- package/congviec/congviec/services/congviec-dinhkem.service.d.ts.map +1 -1
- package/congviec/congviec/services/congviec.service.d.ts.map +1 -1
- package/esm2015/classes/base/data-form-base.js +6 -3
- package/esm2015/classes/base/data-list-base.js +13 -3
- package/esm2015/classes/form-schema.js +1 -1
- package/esm2015/components/crud/crud-form/crud-form.component.js +2 -1
- package/esm2015/components/crud/crud-list/crud-list.component.js +6 -2
- package/esm2015/components/entity-permission/services.cs/entity-permission.service.js +8 -5
- package/esm2015/components/file-explorer/file-manager/file-manager.component.js +17 -10
- package/esm2015/components/file-explorer/services/file-data.service.js +15 -15
- package/esm2015/components/query-builders/query-builder/query-builder.component.js +24 -7
- package/esm2015/components/query-builders/query-builder-group/query-builder-group.component.js +6 -2
- package/esm2015/components/query-builders/query-builder-rule/query-builder-rule.component.js +39 -3
- package/esm2015/components/share-link-by-permission/share-link-by-permission.component.js +2 -2
- package/esm2015/components/statemachines/models/constants.js +9 -4
- package/esm2015/components/statemachines/models/enums.js +6 -1
- package/esm2015/components/statemachines/statemachines-connection-metadata/statemachines-connection-metadata.component.js +9 -5
- package/esm2015/components/statemachines/statemachines-connection-receiver/statemachines-connection-receiver.component.js +19 -6
- package/esm2015/components/statemachines/statemachines-connection-receiver-condition/statemachines-connection-receiver-condition.component.js +179 -0
- package/esm2015/components/statemachines/statemachines-connection-receiver-department/statemachines-connection-receiver-department.component.js +32 -1
- package/esm2015/components/statemachines/statemachines-connection-receiver-group/statemachines-connection-receiver-group.component.js +32 -1
- package/esm2015/components/statemachines/statemachines-connection-receiver-role/statemachines-connection-receiver-role.component.js +39 -8
- package/esm2015/components/statemachines/statemachines-connection-sender/statemachines-connection-sender.component.js +19 -7
- package/esm2015/components/statemachines/statemachines-designer/statemachines-designer.component.js +1 -1
- package/esm2015/components/statemachines/utils/utils.js +6 -6
- package/esm2015/components/tn-app-help/tn-app-help.component.js +1 -1
- package/esm2015/components/tn-app-notification/tn-app-notification.component.js +2 -2
- package/esm2015/components/user-picker/user-picker.component.js +47 -6
- package/esm2015/components/workflow/models/models.js +1 -7
- package/esm2015/components/workflow/process-workflow-form/process-workflow-form.component.js +39 -42
- package/esm2015/components/workflow/process-workflow-target/process-workflow-target.component.js +7 -40
- package/esm2015/components/workflow/workflow-history-new/workflow-history-new.component.js +10 -12
- package/esm2015/components/workflow/workflow-setting-new/workflow-setting-new.component.js +67 -10
- package/esm2015/configs/component-context.constant.js +3 -2
- package/esm2015/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.js +50 -14
- package/esm2015/congviec/congviec/congviec-form/congviec-form.component.js +24 -12
- package/esm2015/congviec/congviec/congviec.component.js +7 -6
- package/esm2015/congviec/congviec/services/congviec-dinhkem.service.js +57 -1
- package/esm2015/congviec/congviec/services/congviec.service.js +3 -3
- package/esm2015/services/base.service.js +4 -1
- package/esm2015/services/dm-chucvu.service.js +28 -0
- package/esm2015/services/role.service.js +1 -1
- package/esm2015/tnx-shared.js +69 -67
- package/esm2015/tnx-shared.module.js +3 -1
- package/fesm2015/tnx-shared.js +776 -220
- package/fesm2015/tnx-shared.js.map +1 -1
- package/package.json +2 -2
- package/services/base.service.d.ts +1 -0
- package/services/base.service.d.ts.map +1 -1
- package/services/dm-chucvu.service.d.ts +12 -0
- package/services/dm-chucvu.service.d.ts.map +1 -0
- package/services/dm-chucvu.service.ngfactory.d.ts.map +1 -0
- package/tnx-shared.d.ts +68 -66
- package/tnx-shared.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +2 -1
- package/tnx-shared.module.d.ts.map +1 -1
- package/tnx-shared.module.ngfactory.d.ts.map +1 -1
|
@@ -1127,4 +1127,4 @@ export var ExportAllMode;
|
|
|
1127
1127
|
ExportAllMode[ExportAllMode["ManualGetData"] = 0] = "ManualGetData";
|
|
1128
1128
|
ExportAllMode[ExportAllMode["AutoGetData"] = 1] = "AutoGetData";
|
|
1129
1129
|
})(ExportAllMode || (ExportAllMode = {}));
|
|
1130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHakgsTUFBTSxPQUFPLFdBQVc7SUFNcEIsWUFBWSxJQUFrQjtRQUQ5QixhQUFRLEdBQWlGLFFBQVEsQ0FBQztRQUU5RixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFHakIsWUFBWSxJQUFlO1FBRjNCLG9HQUFvRztRQUNwRyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBd0Z4QixZQUFZLElBQXNCO1FBdEZsQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHakIsaUJBQVksR0FBbUIsRUFBRSxDQUFDO1FBQ2xDLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQW1CLElBQUksYUFBYSxFQUFFLENBQUM7UUFDcEQsZ0JBQVcsR0FBaUIsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QyxlQUFVLEdBQWdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkcsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FB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QUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLDZEQUEyQyxDQUFBO0lBQzNDLHVEQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIsbUNBQWlCLENBQUE7SUFDakIsK0JBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ2pCLHlDQUFRLENBQUE7SUFDUiw2Q0FBVSxDQUFBO0lBQ1YsNENBQVUsQ0FBQTtBQUNkLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsNkRBQVksQ0FBQTtJQUNaLHVFQUFpQixDQUFBO0lBQ2pCLG1FQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixtRUFBaUIsQ0FBQTtJQUNqQiwrREFBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXBpY2tlci9hdXRvY29tcGxldGUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItZGF0YS9lbnRpdHktcGlja2VyLWRhdGEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLXNlbGVjdGVkL2VudGl0eS1waWNrZXItc2VsZWN0ZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXN0ZXJEYXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21hc3Rlci1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVHJlZU5vZGUsIENydWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9jb21wb25lbnRzL2NydWQvY3J1ZC1mb3JtL2NydWQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xyXG5pbXBvcnQgeyBJVmFsaWRhdG9yIH0gZnJvbSAnLi9iYXNlL3ZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBFbnVtQ29udHJvbFBpY2tlclR5cGUsIEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSwgRm9ybVN0YXRlLCBTaGFyZWRGb2xkZXJUeXBlIH0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd1NldHRpbmcsIFdvcmtmbG93U2V0dGluZ05ldyB9IGZyb20gJy4vd29ya2Zsb3ctc2NoZW1hJztcclxuXHJcbmV4cG9ydCBjbGFzcyBNb2RlbFNjaGVtYSB7XHJcbiAgICBmaWVsZDogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgZnVsbE5hbWU6IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBkYXRhVHlwZT86ICdpbnQnIHwgJ2RlY2ltYWwnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdzdHJpbmcnIHwgJ2Jvb2xlYW4nIHwgJ3RpbWVzcGFuJyA9ICdzdHJpbmcnO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE1vZGVsU2NoZW1hKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEJhc2Uge1xyXG4gICAgLy8gQ29tcG9uZW50IHN1YnNjcmliZSAtIEtoaSBzdWJjcmliZSBt4buZdCBjb21wb25lbnQgdGjDrCBhZGQgdsOgbyBhcnJheSDEkeG7gyBraGkgZGVzdHJveSB0aMOsIHVuc3Vic2NyaWJlXHJcbiAgICBjb21wb25lbnRTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRCYXNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RTZXR0aW5nIHtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBvYmplY3ROYW1lID0gJyc7XHJcbiAgICBlbnRpdHlLZXkgPSAnaWQnO1xyXG4gICAgc2V0dGluZ0tleT86IHN0cmluZztcclxuICAgIGVudGl0eU1ldGFkYXRhU2VydmljZT86IEVudGl0eU1ldGFkYXRhU2VydmljZTtcclxuICAgIG1vZGVsU2NoZW1hcz86IE1vZGVsU2NoZW1hW10gPSBbXTtcclxuICAgIGNvbHM/OiBDb2x1bW5TY2hlbWFCYXNlW10gPSBbXTtcclxuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcclxuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcclxuICAgIGhlaWdodFR5cGU/OiBIZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5kZWZhdWx0OyAvLyBDw7MgY3VzdG9tIGNoaeG7gXUgY2FvIGtow7RuZzogVGjGsOG7nW5nIHPhu60gZOG7pW5nIHRyb25nIGRpYWxvZ1xyXG4gICAgZml4SGVpZ2h0VHlwZUluRGlhbG9nPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlQ2hlY2tXaGVuQ2xpY2tSb3cgPSB0cnVlO1xyXG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xyXG4gICAgc3RpY2t5Q29sdW1uID0gZmFsc2U7XHJcbiAgICB0YWJsZU5hbWU/OiBzdHJpbmc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgcmVTZWxlY3RMYXN0SXRlbT89IHRydWU7IC8vIFNlbGVjdCBs4bqhaSBpdGVtIGN14buRaSBjw7luZyDEkcOjIGNo4buNbiBj4bunYSBncmlkXHJcbiAgICBmaXJlRXZlbnRXaGVuUmVTZWxlY3Q/PSBmYWxzZTtcclxuICAgIGFkdmFuY2VEYXRhPzogYW55ID0ge307XHJcbiAgICB1c2VXb3JrZmxvd05ldz86IGJvb2xlYW4gPSB0cnVlOyAvLyBT4bq9IGLhu48gxJFpIHRyb25nIHTGsMahbmcgbGFpIGtoaSB0aGF5IHRo4bq/IGhvw6BuIHRvw6BuIGLhurFuZyB3b3JrZmxvdyBuZXdcclxuICAgIHdvcmtmbG93U2V0dGluZz86IFdvcmtmbG93U2V0dGluZztcclxuICAgIHdvcmtmbG93U2V0dGluZ05ldz86IFdvcmtmbG93U2V0dGluZ05ldztcclxuICAgIGlzV29ya2Zsb3dUcmVlPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgd29ya2Zsb3dDb25maWdBZHZhbmNlPzogV29ya2Zsb3dDb25maWdBZHZhbmNlO1xyXG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7IC8vIHRyxrDhu51uZyDEkeG6oWkgZGnhu4duIGNobyBi4bqjbiBnaGkgbMOgbSB0acOqdSDEkeG7gSBoaeG7g24gdGjhu4sgKHBo4bulYyB24bulIGNobyBjw6FjIGThu4tjaCB24bulIGtow6FjIGtoYWkgdGjDoWMpXHJcbiAgICBoYXNDdXN0b21IYW5kbGVDbGlja1JvdyA9IGZhbHNlO1xyXG4gICAgY2hlY2tBbGxvd1RyaW5oS3k6IChyb3dEYXRhKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xyXG4gICAgZ2V0SXRlbVN0YXRlOiAobHN0Um93RGF0YTogYW55W10pID0+IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgICBjaGVja1Blcm1pc2lvblRyaW5oS3kgPSBmYWxzZTtcclxuXHJcbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xyXG5cclxuICAgIGhpZGRlbkhlYWRlciA9IGZhbHNlO1xyXG4gICAgaGlkZGVuUGFnZVNldHRpbmcgPSBmYWxzZTtcclxuICAgIGhpZGRlblRleHRQYWdlID0gZmFsc2U7XHJcbiAgICBoaWRkZW5Ub29sYmFyID0gZmFsc2U7XHJcbiAgICBoaWRkZW5CdXR0b25zID0gZmFsc2U7XHJcbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoID0gZmFsc2U7XHJcbiAgICBoaWRkZW5TYXZlU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSBmYWxzZTtcclxuICAgIGhpZGRlblNldHRpbmdXb3JrZmxvdyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1dvcmtmbG93TmV3ID0gZmFsc2U7XHJcbiAgICBoaWRkZW5QYWdlVGl0bGUgPSBmYWxzZTtcclxuXHJcbiAgICBoaWRkZW5DaGVja2JveCA9IGZhbHNlO1xyXG4gICAgaGlkZGVuT3JkZXJDb2x1bW4gPSBmYWxzZTtcclxuICAgIGhpZGRlbldvcmtmbG93Q29sdW1uID0gZmFsc2U7XHJcbiAgICBoaWRkZW5GdW5jdGlvbkNvbHVtbiA9IGZhbHNlO1xyXG4gICAgaGlkZGVuUmVmcmVzaCA9IGZhbHNlO1xyXG4gICAgaGlkZGVuRmlsdGVyUm93ID0gZmFsc2U7XHJcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcclxuICAgIHVzZUJhc2VUcmluaEt5ID0gdHJ1ZTtcclxuICAgIGhpZGRlbldvcmtmbG93Q29yZVN0YXR1cyA9IHRydWU7XHJcbiAgICByZXF1aXJlZFZhbkJhbkRpQWZ0ZXJUcmluaEt5ID0gZmFsc2U7XHJcblxyXG4gICAgZ3JvdXBDb2x1bW4/OiBDb2x1bW5TY2hlbWFCYXNlO1xyXG5cclxuICAgIHNob3dFeHBvcnRBbGwgPSBmYWxzZTtcclxuICAgIHNob3dFeHBvcnRTZWxlY3RlZEl0ZW1zID0gdHJ1ZTtcclxuICAgIGV4cG9ydEFsbE1vZGVsOiBFeHBvcnRBbGxNb2RlID0gRXhwb3J0QWxsTW9kZS5BdXRvR2V0RGF0YTtcclxuICAgIGV4cG9ydEl0ZW1zTW9kZTogRXhwb3J0SXRlbXNNb2RlID0gRXhwb3J0SXRlbXNNb2RlLkZyb21IdG1sO1xyXG5cclxuICAgIGVuYWJsZVZlcnNpb24gPSBmYWxzZTtcclxuICAgIHNob3dWZXJzaW9uQnV0dG9uID0gZmFsc2U7XHJcbiAgICB2ZXJzaW9uTW9kZWw/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICBzaG93SGlzdG9yeSA9IGZhbHNlO1xyXG4gICAgaGlzdG9yeT86IGFueTtcclxuXHJcbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XHJcbiAgICBjb2xvckZpbHRlclRhYmxlPzogUm93Q29sb3JPcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZyA9IG5ldyBDcnVkRm9ybVNldHRpbmcoKTtcclxuXHJcbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZmlsdGVyVGVtcGxhdGVBZHZzPzogRmlsdGVyW107XHJcblxyXG4gICAgZnVuY3Rpb246IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24gPSBuZXcgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbigpO1xyXG5cclxuICAgIHBvcHVwSGVhZGVyPz0gJyc7XHJcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XHJcbiAgICBtYXNrQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcclxuICAgIGdldExhYmVsQnV0dG9uVHJpbmhLeTogKHJvd0RhdGEpID0+IHN0cmluZyA9IChyb3dEYXRhKSA9PiAnVHLDrG5oIGvDvSc7XHJcbiAgICBjaGVja1JlYWR5VG9UcmluaEt5OiAoKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dDb25maWdBZHZhbmNlIHtcclxuICAgIGdldFdvcmtmbG93U2V0dGluZzogKHJvd0RhdGEpID0+IFdvcmtmbG93U2V0dGluZ05ldztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q3VzdG9tRnVuY3Rpb24ge1xyXG4gICAgLy8gQ3VzdG9taXplXHJcbiAgICBnZXRTZWFyY2hDb250cm9sPzogKGZpZWxkOiBzdHJpbmcpID0+IEZvcm1TY2hlbWFCYXNlW10gPSAoZmllbGQ6IHN0cmluZykgPT4gbnVsbDtcclxuICAgIC8vIEFzeW5jIGZ1bmN0aW9uXHJcbiAgICBtb2RpZnlBZHZhbmNlU2VhY2hNb2RlbD86IChkYXRhOiBBZHZhbmNlU2VhcmNoRGF0YSwgc2V0dGluZzogQWR2YW5jZVNlYXJjaFNldHRpbmcpID0+IFByb21pc2U8dm9pZD4gPSBhc3luYyAoZGF0YSkgPT4gbnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVyc29uYWxTZXR0aW5nIHtcclxuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcclxuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcclxuICAgIGNvbG9yRmlsdGVyRmllbGQgPSAnJztcclxuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUGVyc29uYWxTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3REYXRhIGV4dGVuZHMgQ3J1ZEJhc2Uge1xyXG4gICAgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcmVhZHkgPSB0cnVlO1xyXG4gICAgLy8gYmFzZSByZWFkeSBsw6AgY2jhu6ljIG7Eg25nIGtp4buDbSB0cmEgcmVhZHkgY+G7p2EgcmnDqm5nIHRyb25nIGJhc2UuIGsgZ2nhu5FuZyB24bubaSByZWFkeSDhu58gdHLDqm5cclxuICAgIC8vIETDuW5nIMSR4buDIGtp4buDbSB0cmEgbuG6v3UgY8OzIHdvcmtmbG93IHRow6wgdOG6oW0gdGjhu51pIGNoxrBhIGNobyDhuqVuIHRow6ptIG3hu5tpIG7hur91IGNoxrBhIGxvYWQgeG9uZyBk4buvIGxp4buHdSBj4bqnbiB0aGnhur90XHJcbiAgICBiYXNlUmVhZHkgPSBmYWxzZTtcclxuICAgIGRhdGFTb3VyY2U/OiBhbnlbXSA9IFtdO1xyXG4gICAgc2VsZWN0ZWRJdGVtcz86IGFueVtdID0gW107XHJcbiAgICBzZWxlY3RlZEl0ZW0/OiBhbnk7XHJcbiAgICBzZWxlY3RlZEl0ZW1MYXN0PzogYW55O1xyXG4gICAgc2VsZWN0ZWRJZD86IG51bWJlcjtcclxuICAgIHRvdGFsID0gMDtcclxuICAgIGl0ZW1EYXRhPzogYW55O1xyXG4gICAgYWR2YW5jZURhdGE6IGFueSA9IHt9O1xyXG5cclxuICAgIC8vIEPDoWMgdGh14buZYyB0w61uaCBi4buVIHN1bmcgZG8gYuG7iyBs4buXaSBraGkgcGFja2FnZVxyXG4gICAgc3VibWl0dGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLy8gRW5kIEPDoWMgdGh14buZYyB0w61uaCBi4buVIHN1bmcgZG8gYuG7iyBs4buXaSBraGkgcGFja2FnZVxyXG5cclxuICAgIGV4cGFuZGVkUm93S2V5cz86IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0RGF0YSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5TWVkYXRhRGF0YVNldHRpbmcge1xyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eU1lZGF0YURhdGFTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm93Q29sb3JPcHRpb24ge1xyXG4gICAgZmlsdGVyVmFsdWUgPSAnJztcclxuICAgIGNvbXBhcmVUeXBlID0gJyc7XHJcbiAgICBjb2xvciA9ICcnO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJvd0NvbG9yT3B0aW9uKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGFnZVNldHRpbmcge1xyXG4gICAgcGFnZSA9IDE7XHJcbiAgICBwYWdlU2l6ZSA9IDE1O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBhZ2VTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZyB7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPzogc3RyaW5nO1xyXG4gICAgc29ydERpcj86IC0xIHwgMCB8IDEgfCAyID0gLTE7XHJcbiAgICBncm91cEZpZWxkID0gJyc7XHJcbiAgICBkZXRhaWxzPzogQ29sdW1uU2V0dGluZ0RldGFpbFtdID0gW107XHJcbiAgICBjb2x1bW5SZW9yZGVyP1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nRGV0YWlsIHtcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG4gICAgY29sdW1uQ29kZT86IHN0cmluZztcclxuICAgIGNvbHVtbk5hbWU/OiBzdHJpbmc7XHJcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcclxuICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1EYXRhIGV4dGVuZHMgQ3J1ZEJhc2Uge1xyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgc3VibWl0dGluZz89IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUcuG6oW5nIHRow6FpIGPhu6dhIGZvcm0gxJFhbmcgxJHGsOG7o2MgbeG7nzogTMOgIGZvcm0gdGjDqm0gbeG7m2ksIGhheSBmb3JtIHPhu61hLCBoYXkgZm9ybSB4w7NhXHJcbiAgICAgKi9cclxuICAgIGZvcm1TdGF0ZT86IEZvcm1TdGF0ZSA9IEZvcm1TdGF0ZS5BREQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZEZvcm1EYXRhKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uIHtcclxuICAgIC8vIEN1c3RvbWl6ZVxyXG4gICAgbW9kaWZ5RGF0YUFmdGVyR2V0Q2FjaGU/OiAoZGF0YTogYW55KSA9PiB2b2lkID0gKGRhdGE6IGFueSkgPT4gbnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1TZXR0aW5nIHtcclxuICAgIGRpc2FibGVDYWNoaW5nID0gZmFsc2U7XHJcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcclxuICAgIHNjaGVtYT86IEZvcm1TY2hlbWFCYXNlW10gPSBbXTtcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XHJcbiAgICBidWlsZEluU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcclxuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nW10gfCBzdHJpbmdbXVtdID0gW107XHJcbiAgICBmaWVsZERyb3Bkb3duPzogeyBba2V5OiBzdHJpbmddOiBEcm9wZG93bkNvbnRyb2xTY2hlbWEgfSA9IHt9O1xyXG4gICAgZmllbGROZWVkR2V0UmVmPzogeyBba2V5OiBzdHJpbmddOiBUZXh0Q29udHJvbFNjaGVtYSB9ID0ge307XHJcbiAgICBkaXNwbGF5RmllbGQ/OiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7XHJcbiAgICBmaXJzdEZvY3VzQ29udHJvbD86IHN0cmluZztcclxuICAgIGZpbHRlckNoZWNrRXhpc3RCeVZlcnNpb24/OiBGaWx0ZXJbXTtcclxuICAgIGRlZmF1bHRGaWx0ZXJDaGVja0V4aXN0PzogRmlsdGVyW10gfCAoKCkgPT4gRmlsdGVyW10pO1xyXG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xyXG4gICAgZW50aXR5TWV0YWRhdGFEYXRhPzogQ3J1ZEZvcm1EYXRhO1xyXG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nO1xyXG4gICAgZnVuY3Rpb24/OiBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uID0gbmV3IENydWRGb3JtQ3VzdG9tRnVuY3Rpb24oKTtcclxuICAgIGdldEN1c3RvbURhdGFUcmluaEt5OiAocm93RGF0YSkgPT4gYW55ID0gKHJvd0RhdGEpID0+ICh7fSk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZEZvcm1TZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaERhdGEgZXh0ZW5kcyBDcnVkRm9ybURhdGEge1xyXG4gICAgaW5pdERhdGE/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoRGF0YSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaFNldHRpbmcgZXh0ZW5kcyBDcnVkRm9ybVNldHRpbmcge1xyXG4gICAgZmllbGRLZXkgPSAnX2snO1xyXG4gICAgZW50aXR5UGVybWlzc2lvblNjaGVtYT86IEZvcm1Db250cm9sQmFzZVtdID0gW107XHJcbiAgICBrZWVwSW5pdFNlYXJjaERhdGFOb3ROdWxsID0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoU2V0dGluZykge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2NoZW1hQmFzZSB7XHJcbiAgICBmaWVsZD86IHN0cmluZztcclxuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nO1xyXG4gICAgdHlwZT86ICdib29sZWFuJyB8ICdpbnQnIHwgJ2RlY2ltYWwnIHwgJ2RhdGV0aW1lJyB8ICdzdHJpbmcnID0gJ3N0cmluZyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNjaGVtYUJhc2UpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQmFzZSBleHRlbmRzIFNjaGVtYUJhc2Uge1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBmdWxsTGFiZWw/OiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICAgIHNob3dMYWJlbD89IHRydWU7XHJcbiAgICBnV2lkdGg/PSAxMjtcclxuICAgIG1kV2lkdGg/PSA2O1xyXG4gICAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgICBjbGFzcz89ICcnO1xyXG4gICAgc3R5bGU/OiBhbnkgPSB7fTtcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAgIGhpZGRlbj89IGZhbHNlO1xyXG4gICAgaGlkZGVuQ2hlY2s/OiAocm9vdE1vZGVsOiBhbnksIGN1cnJlbnROb2RlOiBDb250cm9sVHJlZU5vZGUpID0+IGJvb2xlYW47XHJcbiAgICBoaWRkZW5PblZpZXc/PSBmYWxzZTtcclxuICAgIHZpc2libGVJbkxpc3Q/PSB0cnVlO1xyXG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcclxuICAgIGdyb3VwQ29kZT89ICcnO1xyXG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gICAgZmllbGRBbGlhcz89ICcnO1xyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1TY2hlbWFCYXNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb250YWluZXJTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBjb250cm9sczogRm9ybVNjaGVtYUJhc2VbXTtcclxuICAgIHNob3dJbkJveD89IHRydWU7XHJcbiAgICBib3hTdHlsZT86IGFueTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb250YWluZXJTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICAvLyBVcmwgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgKioqIEtIw5RORyBT4busIEThu6RORyBUUk9ORyBDw4FDIENBU0UgUEjhu5QgQknhur5OLCBDSOG7iCBT4busIEThu6RORyDEkOG7kEkgVuG7mkkgRk9STSBLSOG6ok8gU8OBVCAqKipcclxuICAgIHNlcnZpY2VVcmk/PSAnJztcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcclxuXHJcbiAgICBpc1NlcnZlckxvYWQ/PSBmYWxzZTtcclxuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XHJcblxyXG4gICAgaXNUcmVlPz0gZmFsc2U7XHJcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxyXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuICAgIHNlbGVjdERlc2NlbmRhbnQ/PSBmYWxzZTsvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/PSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXHJcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBmdW5jU2V0RGVmYXVsdFZhbHVlPzogRnVuY3Rpb247XHJcblxyXG4gICAgZmllbGRWYWx1ZVBhcmVudD89ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cclxuXHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGFiZWxTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBmb3I/PSAnJztcclxuICAgIGlzSHRtbD89IGZhbHNlO1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgaW5kZXhMYWJlbD86IG51bWJlcjtcclxuICAgIHRleHQ/PSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRpdGxlU2NoZW1hIGV4dGVuZHMgTGFiZWxTY2hlbWEge1xyXG4gICAgY2xhc3M/PSAndGl0bGUtZ3JvdXAgdGV4dC1ib2xkJztcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUaXRsZVNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgX2NvbXBvbmVudD86IGFueTsgLy8gQ29tcG9uZW50IGPhu6dhIHNjaGVtYSBraGkga2jhu59pIHThuqFvXHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZzsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hXHJcbiAgICBhdXRvZm9jdXM/PSBmYWxzZTtcclxuICAgIHZhbGlkYXRvcnM/OiBJVmFsaWRhdG9yW10gPSBbXTtcclxuICAgIGNvcnJlY3RvcnM/OiBJQ29ycmVjdG9yW10gPSBbXTtcclxuICAgIHJlcXVpcmVkPz0gZmFsc2U7XHJcbiAgICBlbmFibGVDYWNoaW5nPz0gZmFsc2U7XHJcbiAgICBvbkNoYW5nZWQ/OiBGdW5jdGlvbjtcclxuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcclxuICAgIGhhc09wZXJhdG9yQ2FuQm8/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtQ29udHJvbEJhc2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIC8qKiBDb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xyXG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXHJcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG5cclxuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xyXG4gICAgc2VhcmNoRmllbGQ/OiBzdHJpbmdbXTtcclxuXHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPz0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxyXG4gICAgc2VsZWN0RGVzY2VuZGFudD89IGZhbHNlOy8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiwgY2jDoXUgbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuXHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBmaWVsZFBsdXM/PSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGZpbHRlcldoaWxlUHJvY2Vzcz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjsgLy8gdHVuZ3RzIHRow6ptIGtp4buDdSBk4buvIGxp4buHdSBkZWZhdWx0RmlsdGVycyBsw6AgcHJvbWlzZVxyXG4gICAgYmluZGluZ0ZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBwYXJlbnRGaWVsZD86IHN0cmluZzsgLy8gQ29sdW1uIHTGsMahbmcg4bupbmcgdHJvbmcgdGFibGUgc3FsIHNlcnZlci5cclxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXHJcblxyXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgZmlyZUNhbGxCYWNrSW5zaWRlPz0gdHJ1ZTtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICAvKiogRW5kIGNvcHkgdOG7qyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlICovXHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBzZWxlY3RBbGxUZXh0Pz0gZmFsc2U7IC8vIENo4buNbiB04bqldCBj4bqjIHRleHQga2hpIGZvY3VzXHJcblxyXG4gICAgcGxhY2Vob2xkZXI/PSAnJztcclxuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ251bWJlcicgfCAnZW1haWwnIHwgJ3Bob25lJyB8ICdmYXgnIHwgJ21vbmV5JyB8ICdtb25leWludCcgfCAnYW1vdW50JyA9ICd0ZXh0JztcclxuICAgIG1heExlbmd0aD86IG51bWJlcjtcclxuICAgIG1pbj89IDA7XHJcbiAgICBtYXg/PSA5OTk5OTk5OTtcclxuXHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG5cclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPz0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnJztcclxuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAnbnVtYmVyJyB8ICdlbWFpbCcgfCAncGhvbmUnIHwgJ2ZheCcgfCAnbW9uZXknIHwgJ21vbmV5aW50JyB8ICdhbW91bnQnID0gJ3RleHQnO1xyXG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNYXNrQ29udHJvbFNjaGVtYSBleHRlbmRzIFRleHRDb250cm9sU2NoZW1hIHtcclxuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCcgPSAnaW50JztcclxuICAgIG1pbj89IDA7XHJcbiAgICBtYXg/PSA5OTk5OTk5OTk5O1xyXG4gICAgcHJlZml4Pz0gJyc7XHJcbiAgICBzdWZmaXg/PSAnJztcclxuICAgIGRlY2ltYWxQbGFjZXM/PSAyO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE1hc2tDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XHJcbiAgICBtYXNrVHlwZT86ICdkZWNpbWFsJyB8ICdpbnQnO1xyXG4gICAgbWluPz0gMDtcclxuICAgIG1heD89IDk5OTk5OTk5OTk7XHJcbiAgICBwcmVmaXg/PSAnJztcclxuICAgIHN1ZmZpeD89ICcnO1xyXG4gICAgZGVjaW1hbFBsYWNlcz89IDI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTnVtYmVyUmFuZ2VDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/PSAnYm9keSc7XHJcbiAgICBwYW5lbENsYXNzPz0gJyc7XHJcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgIHNob3dUaW1lPz0gZmFsc2U7XHJcbiAgICBzaG93SWNvbj89IHRydWU7XHJcbiAgICBmb3JtYXQ/OiAnbm9ybWFsJyB8ICdmcm9tTm93JyA9ICdmcm9tTm93JztcclxuICAgIHNob3dPbkZvY3VzPz0gdHJ1ZTtcclxuICAgIG1pbkRhdGU/OiBEYXRlID0gbnVsbDtcclxuICAgIG1heERhdGU/OiBEYXRlID0gbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xyXG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5zaG93VGltZSA/ICdkZC9NTS95eXl5IGhoOm1tJyA6ICdkZC9NTS95eXl5JztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZVJhbmdlQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGVUaW1lQ29udHJvbFNjaGVtYSB7XHJcbiAgICBzaG93SWNvbj89IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERhdGVUaW1lQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIHtcclxuXHJcbiAgICAvLyAjUHJvcGVydHkgb3ZlcnJpZGVcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XHJcbiAgICAvLyAjRW5kIHByb3BlcnR5IG92ZXJyaWRlXHJcblxyXG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XHJcblxyXG4gICAgbXVsdGlwbGU/PSB0cnVlO1xyXG4gICAgbGltaXQ/PSAxMDAwO1xyXG4gICAgdGl0bGU/PSAnICc7XHJcbiAgICBjb2x1bW5zPzogRW50aXR5UGlja2VyQ29sdW1uW107XHJcbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZGF0YUluaXQ/OiBhbnkgPSB7fTtcclxuICAgIGFkdmFuY2VTZWFyY2hNb2RlbD86IGFueSA9IHt9O1xyXG4gICAgb25TZWFyY2hGb3JtSW5pdGlhbGl6ZWQ/OiBGdW5jdGlvbjtcclxuICAgIG9uRm9ybUV2ZW50PzogRnVuY3Rpb247XHJcbiAgICBvblNlbGVjdEVudGl0eT86IEZ1bmN0aW9uOyAvLyBu4bq/dSBmdW5jdGlvbiBraMOhYyBudWxsIHbDoCByZXR1cm4gdHJ1ZSBz4bq9IGNobyBwaMOpcCBt4bufIGRpYWxvZ1xyXG4gICAgYWZ0ZXJDb250ZW50TGVmdEluaXQ/OiAoY3J1ZExpc3Q6IENydWRMaXN0Q29tcG9uZW50KSA9PiB2b2lkOyAvLyBTYXUga2hpIGPDoWMgdGVtcGxhdGUgY29udGVudCBpbml0XHJcbiAgICBhZnRlckNvbnRlbnRSaWdodEluaXQ/OiAoY3J1ZExpc3Q6IENydWRMaXN0Q29tcG9uZW50KSA9PiB2b2lkOyAvLyBTYXUga2hpIGPDoWMgdGVtcGxhdGUgY29udGVudCBpbml0XHJcbiAgICBhZnRlckdldERhdGE/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckNvbXBvbmVudCkgPT4gdm9pZDtcclxuICAgIGFmdGVyR2V0RGF0YVVuUGlja2VkPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJEYXRhQ29tcG9uZW50KSA9PiB2b2lkO1xyXG4gICAgYWZ0ZXJHZXREYXRhUGlja2VkPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBFbnRpdHlQaWNrZXJTZWxlY3RlZENvbXBvbmVudCkgPT4gdm9pZDtcclxuXHJcbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgcGx1c1VybCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyIGhheSBraMO0bmcuXHJcbiAgICB1c2VEZWZhdWx0UGx1c2xVcmxJbkxpc3Q/PSBmYWxzZTtcclxuXHJcbiAgICAvLyBDw7Mgc+G7rSBk4bulbmcgZGVmYXVsdEZpbHRlciBraGkgdMOsbSBraeG6v20gZGFuaCBzw6FjaCDhu58gbcOgbiBow6xuaCBjaMOtbmggRW50aXR5UGlja2VyLlxyXG4gICAgdXNlRGVmYXVsdEZpbHRlckluTGlzdD89IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRW50aXR5UGlja2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XHJcbiAgICBhcHBlbmRUbz89ICdib2R5JztcclxuICAgIG1vZGlmeUluaXRTZWFyY2hEYXRhPzogRnVuY3Rpb247IC8vIFPhu60gZOG7pW5nIMSR4buDIG1vZGlmeSBkYXRhIGPhu6dhIHBo4bqnbiBzZWFyY2gsIHRoxrDhu51uZyDEkeG7gyBzZXQgaW5pdCBkYXRhIGR5bmFtaWMgdGhlbyBuaHUgY+G6p3VcclxuICAgIGNhbGxCYWNrPzogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbiB9O1xyXG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIG1vZGlmeUNvbnRyb2w/OiBGdW5jdGlvbjsgLy8gU+G7rSBk4bulbmcgxJHhu4MgbW9kaWZ5IHNjaGVtYSBiYXNlXHJcbiAgICBuZWVkQ2xvbmU/PSBmYWxzZTsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hLCBraGkgZGF0YXNvdXJjZSBj4bunYSBt4buZdCBj4buZdCB0csOqbiBt4buXaSBkw7JuZyBsw6Aga2jDoWMgbmhhdSBj4bqnbiBzZXQgbmVlZENsb25lID0gdHJ1ZVxcXHJcbiAgICBhZnRlckdldERhdGFEcm9wZG93bj86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogQXV0b0NvbXBsZXRlUGlja2VyQ29tcG9uZW50KSA9PiB2b2lkO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFdyYXBQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICBkYXRhVHlwZT86IEVudW1Db250cm9sUGlja2VyVHlwZSA9IEVudW1Db250cm9sUGlja2VyVHlwZS5VU0VSO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFdyYXBQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEN1c3RvbUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbG9yUGlja2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTcGFuQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBzb3VyY2VGaWVsZD86IHN0cmluZztcclxuICAgIGlzaHRtbD89IGZhbHNlO1xyXG4gICAgZWRpdGFibGU/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBTcGFuQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sb3JDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHNvdXJjZUZpZWxkPzogc3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbG9yQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgS2V5VmFsdWVDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBLZXlWYWx1ZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBtZFdpZHRoPz0gMTI7XHJcbiAgICBhY2NlcHQ/OiBzdHJpbmc7XHJcbiAgICBtYXhGaWxlU2l6ZT89IDEwMDAwMDAwMDtcclxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5Pz0gJ3swfTogUXXDoSBkdW5nIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xyXG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbD89ICdkdW5nIGzGsOG7o25nIHThu5FpIMSRYSBsw6AgezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT89ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWw/PSAnxJHhu4tuaCBk4bqhbmcgZmlsZSBjaG8gcGjDqXA6IHswfS4nO1xyXG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5Pz0gJ1F1w6Egc+G7kSBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcclxuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPz0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xyXG4gICAgbW9kZT86IEZpbGVNYW5hZ2VyTW9kZSB8IEZpbGVVcGxvYWRNb2RlID0gRmlsZU1hbmFnZXJNb2RlLm11bHRpcGxlO1xyXG4gICAgbGF5b3V0PzogRW51bUZpbGVMYXlvdXQgPSBFbnVtRmlsZUxheW91dC5MSVNUO1xyXG4gICAgcmVhZG9ubHk/PSBmYWxzZTtcclxuXHJcbiAgICAvLyBTZXJ2aWNlIGTDuW5nIMSR4buDIGzhuqV5IGRhdGFzb3VyY2UgY+G7p2Egbmhp4buBdSBjb250cm9sIG3hu5l0IGzhuqduLlxyXG4gICAgZmlsZURhdGFTZXJ2aWNlPzogRmlsZURhdGFTZXJ2aWNlO1xyXG5cclxuICAgIC8vIELhu5kgMyBrZXkgxJHhu4MgbOG6pXkgdGjGsCBt4bulYyBn4buRYy5cclxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xyXG4gICAgZW50aXR5Pzogc3RyaW5nO1xyXG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xyXG5cclxuICAgIC8vIFTDqm4gdGjGsCBt4bulYyBn4buRYyBraGkgaGnhu4NuIHRo4buLIHRyw6puIGJyZWFkY3J1bWJzLlxyXG4gICAgcm9vdEZvbGRlck5hbWU/OiBzdHJpbmc7XHJcblxyXG4gICAgLy8gVHLGsOG7nW5nIGjhu6NwIOG7nyB0cm9uZyBmb3JtLCBkw7luZyB0csaw4budbmcgbsOgeSDEkeG7gyBs4bqleVxyXG4gICAgLy8gZW50aXR5S2V5IHThu6sgbW9kZWwuZGF0YSB0aGF5IHbDrCB0cnV54buBbiB2w6BvIGVudGl0eUtleVxyXG4gICAgZW50aXR5S2V5RmllbGQ/PSAnaWQnO1xyXG4gICAgZGF0YUt5U29Eb25WaT86IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmlsZU1hbmFnZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbFNjaGVtYSBleHRlbmRzIEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSB7XHJcbiAgICBtb2RlPz0gRmlsZVVwbG9hZE1vZGUudXNpbmdTZXJ2aWNlRmlsZTtcclxuICAgIG1kV2lkdGg/PSA2O1xyXG4gICAgc2hhcmVkRm9sZGVyVHlwZT86IFNoYXJlZEZvbGRlclR5cGUgPSBTaGFyZWRGb2xkZXJUeXBlLlRlbXB0O1xyXG5cclxuICAgIGhpZGRlbkJ1dHRvbnM/PSBmYWxzZTtcclxuICAgIGRpc2FibGVkPz0gZmFsc2U7XHJcbiAgICByZWFkb25seT89IGZhbHNlO1xyXG4gICAgYXV0b1NhdmVkPz0gdHJ1ZTtcclxuXHJcbiAgICBlbmFibGVTY2FuPz0gZmFsc2U7XHJcbiAgICBleHRyYWN0WmlwRmlsZT89IGZhbHNlO1xyXG4gICAgZW5hYmxlRHJpdmVGaWxlPz0gZmFsc2U7XHJcblxyXG4gICAgc2hvd0Rvd25sb2FkRmlsZT89IHRydWU7XHJcbiAgICBzaG93RGVsZXRlRmlsZT89IHRydWU7XHJcbiAgICBzaG93UHJpbnRGaWxlPz0gdHJ1ZTtcclxuICAgIG1heEZpbGVTaXplPz0gMTAwMDAwMDAwOyAvLyAxMDAgTUJcclxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5Pz0gJ3swfTogUXXDoSBkdW5nIGzGsOG7o25nIGZpbGUgY2hvIHBow6lwLCAnO1xyXG4gICAgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbD89ICdkdW5nIGzGsOG7o25nIHThu5FpIMSRYSBsw6AgezB9Lic7XHJcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeT89ICd7MH06IEtow7RuZyDEkcO6bmcgxJHhu4tuaCBk4bqhbmcgZmlsZSwgJztcclxuICAgIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWw/PSAnxJHhu4tuaCBk4bqhbmcgZmlsZSBjaG8gcGjDqXA6IHswfS4nO1xyXG4gICAgaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5Pz0gJ1F1w6Egc+G7kSBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcclxuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlRGV0YWlsPz0gJ3Thu5FpIMSRYSB7MH0gZmlsZS4nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGaWxlVXBsb2FkQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogU3dpdGNoQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgaGlkZGVuTGFiZWw/PSBmYWxzZTsgLy8gU2V0ID0gdHJ1ZSBjaOG7pyB54bq/dSBraGkgZMO5bmcgdHJvbmcgdGFibGUgc2NoZW1hIMSR4buDIOG6qW4gbGFiZWwgxJFpLCB2w6wgbGFiZWwgxJHDoyBjw7MgdHLDqm4gdGnDqnUgxJHhu4EgY+G7mXRcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDaGVja2JveENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBzaG93TGFiZWw/PSBmYWxzZTtcclxuICAgIGJ0Q2xhc3M/PSAncC1idXR0b24tdGV4dCc7XHJcbiAgICBpY29uPztcclxuICAgIGJ0U3R5bGU/PSB7IHdpZHRoOiAnYXV0bycgfTtcclxuICAgIG9uQ2xpY2s/OiBGdW5jdGlvbjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBCdXR0b25Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICB0ZW1wbGF0ZTogYW55O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRlbXBsYXRlQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGV4dEFyZWFDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHJvd3M/PSA1O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRBcmVhQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/PSAnYm9keSc7XHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBuZ8aw4budaSBkw7luZyB04buRaSDEkWEgxJHGsOG7o2MgcGlja1xyXG4gICAgdGl0bGU/PSAnQ2jhu41uIG5nxrDhu51pIGTDuW5nJztcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xyXG4gICAgZmlsdGVyV2hpbGVQcm9jZXNzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBwYXJlbnRPcmdDb2RlPzogc3RyaW5nO1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnJztcclxuICAgIGxhenlMb2FkT3JnYW5pemF0aW9uPz0gZmFsc2U7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICdmdWxsTmFtZU5ldyc7XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcclxuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y1BpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgYXBwZW5kVG8/PSAnYm9keSc7XHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDIwOyAvLyBHaeG7m2kgaOG6oW4gc+G7kSBi4bqjbiBnaGkgdOG7kWkgxJFhIMSRxrDhu6NjIHBpY2tcclxuICAgIHRpdGxlPz0gJ0No4buNbiDEkcahbiB24buLJztcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+O1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgb25SZWFkeT86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVXNlclBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9yZ2FuaXphdGlvblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgaXNVc2luZ0lkPz0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBPcmdhbml6YXRpb25QaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gdHJ1ZTtcclxuICAgIHBhcmVudE9yZ0lkPzogbnVtYmVyO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgaXNVc2luZ0lkPz0gdHJ1ZTtcclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT89IHRydWU7XHJcbiAgICByb290UGFyZW50SWQ/OiBzdHJpbmcgPSBudWxsO1xyXG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb0NhdVRvQ2h1Y0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbW9kZT86ICdiYXNpYycgfCAnbWVkaXVtJyB8ICdmdWxsJyB8ICdzaW1wbGUnID0gJ2Jhc2ljJztcclxuICAgIGhlaWdodD89IDI1MDtcclxuICAgIGluaXQ/OiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRWRpdG9yQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2VXaXRoU2VydmljZSB7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XHJcbiAgICBkYXRhU291cmNlPzogYW55IHwgRnVuY3Rpb247XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgcGFuZWxDbGFzcz89ICcnO1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnQ2jhu41uJztcclxuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD89ICfEkMOjIGNo4buNbiB7MH0gbeG7pWMnO1xyXG4gICAgc2VsZWN0ZWRBbGxJdGVtTGFiZWw/PSAnxJDDoyBjaOG7jW4gdOG6pXQgY+G6oyc7XHJcbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gZmFsc2U7XHJcbiAgICBnZW5lcmF0ZVRvb2x0aXA/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/PSA1O1xyXG4gICAgbWF4SXRlbURpc3BsYXk/PSA1MDtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgbmVlZENsb25lPz0gZmFsc2U7IC8vIFPhu60gZOG7pW5nIHRyb25nIHRhYmxlIHNjaGVtYSwga2hpIGRhdGFzb3VyY2UgY+G7p2EgbeG7mXQgY+G7mXQgdHLDqm4gbeG7l2kgZMOybmcgbMOgIGtow6FjIG5oYXUgY+G6p24gc2V0IG5lZWRDbG9uZSA9IHRydWVcclxuICAgIHRlbXBsYXRlSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBxdWlja0FkZD89IGZhbHNlO1xyXG4gICAgY29scz86IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICBpbml0RGF0YT86IGFueSA9IHt9O1xyXG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA3NTAsIGhlaWdodDogNDAwIH0pO1xyXG5cclxuICAgIGxvYWRJbkZpcnN0RGlzcGxheT89IHRydWU7XHJcblxyXG4gICAgYXV0b0dldERhdGE/PSB0cnVlO1xyXG5cclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcblxyXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD89IGZhbHNlO1xyXG4gICAgbm90SW5DcnVkRm9ybT89IGZhbHNlO1xyXG4gICAgc2VhcmNoTXVsdGlwbGU/PSB0cnVlO1xyXG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD89IGZhbHNlO1xyXG5cclxuICAgIGxvYWRPbkluaXQ/PSBmYWxzZTtcclxuICAgIGFsbG93TG9hZERhdGFXaGVuUGFyZW50TnVsbD89IGZhbHNlO1xyXG5cclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT89IHRydWU7XHJcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBoaWRlTm8/PSBmYWxzZTtcclxuICAgIGhpZGVTdHJlZXQ/PSBmYWxzZTtcclxuICAgIGhpZGVXYXJkPz0gZmFsc2U7XHJcbiAgICBoaWRlRGlzdHJpY3Q/PSBmYWxzZTtcclxuICAgIHJlcXVpcmVkTm8/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRTdHJlZXQ/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRXYXJkPz0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkRGlzdHJpY3Q/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRQcm92aW5jZT89IHRydWU7XHJcbiAgICB3YXJkVG9Qcm92aW5jZT89IHRydWU7XHJcbiAgICBub1dpZHRoPz0gMTtcclxuICAgIHN0cmVldFdpZHRoPz0gMztcclxuICAgIHdhcmRXaWR0aD89IDM7XHJcbiAgICBkaXN0cmljdFdpZHRoPz0gMjtcclxuICAgIHByb3ZpbmNlV2lkdGg/PSAzO1xyXG4gICAgc2hvd0luQm94Pz0gZmFsc2U7XHJcblxyXG4gICAgaGlkZUhvbGRlcj89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWRkcmVzc0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgdXNlVmJEZW4/PSB0cnVlO1xyXG4gICAgdXNlVmJEaT89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xyXG4gICAgZW50aXR5Pzogc3RyaW5nO1xyXG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xyXG4gICAgc3RhdGU/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcmNlbnRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQZXJjZW50Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIHBsYWNlaG9sZGVyPz0gJyc7XHJcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xyXG4gICAgbWluTGVuZ3RoRmlsdGVyPz0gMTtcclxuICAgIGFwcGVuZFRvPzogc3RyaW5nID0gJ2JvZHknO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uTGlzdENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xyXG4gICAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgPSAnbGVmdCc7XHJcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgbGF5b3V0PzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcclxuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xyXG4gICAgY2xhc3NQbHVzPz0gJyc7XHJcbiAgICBmcmVlVGV4dD89ICcnO1xyXG4gICAgcENvbENsYXNzPzogbnVtYmVyO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrQm94TGlzdENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHJvd1RlbXBsYXRlOiBGb3JtU2NoZW1hQmFzZVtdO1xyXG4gICAgcm93QnV0dG9ucz86IChyb3dEYXRhKSA9PiBNZW51SXRlbVtdO1xyXG4gICAgZm9vdGVyQnV0dG9ucz86IHtcclxuICAgICAgICBpY29uPzogc3RyaW5nO1xyXG4gICAgICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgICAgIGNsYXNzPzogc3RyaW5nO1xyXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgIH1bXTtcclxuICAgIHNob3dOdW1iZXI/PSB0cnVlO1xyXG4gICAgc2hvd0Z1bmN0aW9uPz0gdHJ1ZTtcclxuICAgIHNob3dGb290ZXI/PSB0cnVlO1xyXG4gICAgc2hvd1NhdmU/PSBmYWxzZTtcclxuICAgIHNob3dFZGl0Pz0gZmFsc2U7XHJcbiAgICBzaG93RGVsZXRlPz0gdHJ1ZTtcclxuICAgIHNob3dBZGQ/PSB0cnVlO1xyXG4gICAgZW5hYmxlUmVvcmRlclJvdz89IGZhbHNlO1xyXG4gICAgb25SZW9yZGVyZWQ/OiBGdW5jdGlvbjtcclxuICAgIGVuYWJsZUFkZE11bHRpPz0gZmFsc2U7XHJcbiAgICBwaWNrZXJDb250cm9sRmllbGQ/OiBzdHJpbmc7XHJcbiAgICBpc1VuaXF1ZT89IHRydWU7XHJcbiAgICBlbmFibGVQYWdpbmc/PSBmYWxzZTtcclxuICAgIGxpbWl0Pz0gNTA7XHJcbiAgICBpbml0Um93Q291bnQ/PSAxO1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG5cclxuICAgIG9uQWRkaW5nPzogRnVuY3Rpb247XHJcbiAgICBvbkFkZGVkPzogRnVuY3Rpb247XHJcbiAgICBvblNhdmU/OiBGdW5jdGlvbjtcclxuICAgIG9uTWVzc2FnZT86IEZ1bmN0aW9uO1xyXG4gICAgb25EZWxldGluZz86IEZ1bmN0aW9uO1xyXG4gICAgb25EZWxldGVkPzogRnVuY3Rpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRhYmxlU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5TY2hlbWFCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSB7XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxuICAgIHNob3dFZGl0TGluaz89IGZhbHNlO1xyXG4gICAgY29sU3Bhbj86IG51bWJlcjtcclxuICAgIGdyb3VwPz0gZmFsc2U7XHJcbiAgICB2aXNpYmxlPz0gdHJ1ZTtcclxuICAgIHJlbW92ZU9uSW5pdD89IGZhbHNlO1xyXG4gICAgYWxsb3dGaWx0ZXI/PSB0cnVlO1xyXG4gICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xyXG4gICAgY2VsbENsYXNzPzogc3RyaW5nO1xyXG4gICAgZnVsbFRleHRTZWFyY2g/PSBmYWxzZTtcclxuICAgIHJhd0NvbHVtbj86IENvbHVtblNjaGVtYUJhc2U7XHJcbiAgICBzZXBhcmF0b3I/PSAnLCAnO1xyXG5cclxuICAgIGRhdGFUeXBlUmVmRmllbGQ/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIGZvcmNlR2V0RGF0YT89IGZhbHNlO1xyXG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xyXG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XHJcbiAgICByb3dTcGFuPz0gMTtcclxuICAgIGZvcm1hdD86IHN0cmluZztcclxuICAgIGRhdGFUeXBlPzogRGF0YVR5cGUgfCBzdHJpbmc7XHJcbiAgICBjb250cm9sVHlwZT86IENvbnRyb2xUeXBlID0gQ29udHJvbFR5cGUudGV4dGJveDtcclxuICAgIHRlbXBsYXRlRmlsdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIGZpZWxkRmlsdGVyPzogc3RyaW5nO1xyXG4gICAgZGlzYWJsZUNoZWNrQm94Pz0gdHJ1ZTtcclxuICAgIC8vIFRo4bupIHThu7EgxrB1IHRpw6puIGdldCByZWYgZGF0YSBj4bunYSBjcnVkLWxpc3RcclxuICAgIC8vIE7hur91IGPDsyB2YWx1ZSBuZ2jEqWEgbMOgIG5o4buvbmcgY+G7mXQgbsOgeSBj4bqnbiBwaOG6o2kgbOG6pXkgZOG7ryBsaeG7h3UgeG9uZyBy4buTaSBt4bubaSDEkeG6v24gY+G7mXQga2jDoWNcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG4gICAgbWF4V29yZERpc3BsYXk/OiBudW1iZXI7XHJcbiAgICBtYXhMZW5ndGhEaXNwbGF5PzogbnVtYmVyO1xyXG5cclxuICAgIG1kV2lkdGhJblNlYXJjaD89IDEyO1xyXG5cclxuICAgIG1pbj89IDA7XHJcbiAgICBtYXg/PSA5OTk5OTk7XHJcblxyXG4gICAgc2hvd0NsZWFyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gZmFsc2U7XHJcblxyXG4gICAgcGlwZT86IFBpcGVUcmFuc2Zvcm07XHJcbiAgICBhc3luY1BpcGU/PSB0cnVlO1xyXG4gICAgc29ydD89IHRydWU7XHJcbiAgICBleHRlbmREYXRhPzogYW55ID0ge307XHJcblxyXG4gICAgZ2VuZXJhdGVkUmVmQ29sdW1uPzogYW55OyAvLyBUT0RPOiBOYW1OSCB0aMOqbSB04bqhbSB0aGVvIHnDqnUgY+G6p3UgY+G7p2EgTGluaCwgTGluaCBjaGVjayBs4bqhaSBzYXVcclxuICAgIGhhc09wZXJhdG9yQ2FuQm8/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2x1bW5TY2hlbWFCYXNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk9wdGlvbnMge1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGZpZWxkVHJlZT89ICcnO1xyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPz0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxyXG4gICAgc2VsZWN0RGVzY2VuZGFudD89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBwYWdlU2l6ZT89IDk5OTk7XHJcbiAgICBpc1NlcnZlckxvYWQ/PSBmYWxzZTtcclxuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25PcHRpb25zKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBSZWZGaWVsZCB7XHJcbiAgICBmaWVsZDogc3RyaW5nO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuICAgIHNlcGFyYXRvcj89ICcsICc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICBkYXRhU291cmNlPzogYW55W107XHJcbiAgICBvcmRlcj86IG51bWJlcjtcclxuXHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0UmVmRGF0YVJvdz86IChyZWZJdGVtcykgPT4ge307XHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJlZkZpZWxkKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBQcm9wRm9yRHJvcGRvd24ge1xyXG4gICAgc2VydmVyRmlsdGVyVXJpPzogc3RyaW5nO1xyXG4gICAgbG9hZEluRmlyc3REaXNwbGF5Pz0gdHJ1ZTtcclxuICAgIGRpc3BsYXlGaWVsZFNlcnZlcj89ICd0ZW4nO1xyXG4gICAgdmFsdWVGaWVsZFNlcnZlcj89ICdpZCc7XHJcblxyXG4gICAgZGF0YVNvdXJjZT86IGFueTtcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbjtcclxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuICAgIHNlcGFyYXRvcj89ICcsICc7XHJcbiAgICBzZWFyY2hNdWx0aXBsZT89IHRydWU7XHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuICAgIHNlbGVjdERlc2NlbmRhbnQ/PSBmYWxzZTsvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxyXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdID0gW107XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/PSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuXHJcbiAgICBmaWVsZFZhbHVlUGFyZW50Pz0gJ3ZhbHVlJzsgLy8gVHLGsOG7nW5nIHPhu60gZOG7pW5nIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IGzDoG0ga2jDs2EgdOG7qyBi4bqjbmcgY2hhIGPhu6dhIGl0ZW0gZHJvcCBkb3duIMSRxrDhu6NjIGNo4buNblxyXG5cclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFByb3BGb3JEcm9wZG93bikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbHVtbiBleHRlbmRzIENvbHVtblNjaGVtYUJhc2Uge1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcclxuICAgIGlzU2VhcmNoYWJsZT89IHRydWU7XHJcbiAgICBpc0Rpc3BsYXk/PSB0cnVlO1xyXG4gICAgZGF0YVR5cGU/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIG9wZXJhdG9yPzogT3BlcmF0b3I7XHJcbiAgICB3aWR0aD89ICcnO1xyXG4gICAgbm90SW5GaWVsZHM/PSBmYWxzZTsgLy8gQ8OhYyB0csaw4budbmcgZOG7ryBsaeG7h3UgxJHGsOG7o2MgdOG7lW5nIGjhu6NwIGzhuqFpIGhp4buDbiB0aOG7iyBsw6puIGdyaWQgbcOgIGtow7RuZyBwaOG6o2kgbOG6pXkgdOG7qyB0cm9uZyB0YWJsZSByYS5cclxuXHJcbiAgICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbHVtbikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2V0UmVmRGF0YVNjaGVtYSBleHRlbmRzIFByb3BGb3JEcm9wZG93biB7XHJcbiAgICBmaWVsZD86IHN0cmluZztcclxuICAgIGZ1bmNTZXRWYWx1ZVJvdz86IChyb3dJdGVtLCBkYXRhKSA9PiB2b2lkO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEdldFJlZkRhdGFTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q29uZmlnIHtcclxuICAgIHRvb2x0aXBWaWV3Pzogc3RyaW5nO1xyXG4gICAgb25WaWV3PzogRnVuY3Rpb247XHJcbiAgICBkaXNhYmxlUm93U2VsZWN0V2hlbkNsaWNrQWN0aW9uPz0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdENvbmZpZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyZWVEYXRhT3B0aW9uIHtcclxuICAgIGRpc3BsYXlGaWVsZCA9ICd0ZW4nO1xyXG4gICAgc2hvcnREaXNwbGF5RmllbGQgPSAndGVuJztcclxuICAgIGV4cGFuZGVkSWNvbiA9ICdwaSBwaS1mb2xkZXItb3Blbic7XHJcbiAgICBjb2xsYXBzZWRJY29uID0gJ3BpIHBpLWZvbGRlcic7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVHJlZURhdGFPcHRpb24pIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlbCB7XHJcbiAgICBzaG93RWRpdEZvcm0/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBoZWFkZXI/OiBzdHJpbmcgPSAnJztcclxuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoeyBtYXhpbWl6ZTogdHJ1ZSB9KVxyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERpYWxvZ01vZGVsKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUG9wdXBTaXplIHtcclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gICAgbWF4aW1pemU/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQb3B1cFNpemUpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFdmVudERhdGEge1xyXG4gICAgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZTtcclxuICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGU7XHJcbiAgICBzb3VyY2VFdmVudD86IGFueTtcclxuICAgIGV2ZW50VHlwZT86IGFueTtcclxuICAgIGRhdGE/OiBhbnk7XHJcbiAgICBwcml2YXRlIF9jcnVkRm9ybTogQ3J1ZEZvcm1Db21wb25lbnQ7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbml0Pzoge1xyXG4gICAgICAgICAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlLFxyXG4gICAgICAgICAgICBzb3VyY2VOb2RlPzogQ29udHJvbFRyZWVOb2RlLFxyXG4gICAgICAgICAgICBzb3VyY2VFdmVudD86IGFueSxcclxuICAgICAgICAgICAgZXZlbnRUeXBlPzogYW55LFxyXG4gICAgICAgICAgICBkYXRhPzogYW55LFxyXG4gICAgICAgICAgICBjcnVkRm9ybT86IENydWRGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgfVxyXG4gICAgKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRNb2RlbCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudE1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRQYXRoKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWxQYXRoO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcm9vdE1vZGVsKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucm9vdE5vZGUubW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmNvbnRyb2xcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50Q29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50Q29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZm9ybUNvbnRyb2xzKCk6IEZvcm1TY2hlbWFCYXNlW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmZvcm1Db250cm9scztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGF0YVR5cGUge1xyXG4gICAgZGF0ZSA9ICdkYXRlJyxcclxuICAgIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcclxuICAgIGh0bWwgPSAnaHRtbCcsXHJcbiAgICBzdHJpbmcgPSAnc3RyaW5nJyxcclxuICAgIGludCA9ICdpbnQnLFxyXG4gICAgZGVjaW1hbCA9ICdkZWNpbWFsJyxcclxuICAgIGJvb2xlYW4gPSAnYm9vbGVhbicsXHJcbiAgICBlbnVtID0gJ2VudW0nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIENvbnRyb2xUeXBlIHtcclxuICAgIGRyb3Bkb3duID0gJ2Ryb3Bkb3duJyxcclxuICAgIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcclxuICAgIGRhdGUgPSAnZGF0ZScsXHJcbiAgICB0aW1lID0gJ3RpbWUnLFxyXG4gICAgbnVtYmVyID0gJ251bWJlcicsXHJcbiAgICB0ZXh0Ym94ID0gJ3RleHRib3gnLFxyXG4gICAgY2hlY2tib3ggPSAnY2hlY2tib3gnLFxyXG4gICAgc3dpdGNoID0gJ3N3aXRjaCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xyXG4gICAgZXF1YWwgPSAnZXEnLFxyXG4gICAgbm90RXF1YWwgPSAnbmVxJyxcclxuICAgIGdyZWF0ZXIgPSAnZ3QnLFxyXG4gICAgZ3JlYXRlclRoYW5FcXVhbCA9ICdndGUnLFxyXG4gICAgbG93ZXIgPSAnbHQnLFxyXG4gICAgbG93ZXJUaGFuRXF1YWwgPSAnbHRlJyxcclxuXHJcbiAgICBjb250YWluID0gJ2NvbnRhaW5zJyxcclxuICAgIG5vdENvbnRhaW4gPSAnbmNvbnRhaW5zJyxcclxuICAgIHN0YXJ0V2l0aCA9ICdzdGFydHN3aXRoJyxcclxuICAgIG5vdFN0YXJ0V2l0aCA9ICduc3RhcnRzd2l0aCcsXHJcbiAgICBlbmRXaXRoID0gJ2VuZHN3aXRoJyxcclxuICAgIG5vdEVuZFdpdGggPSAnbmVuZHN3aXRoJyxcclxuXHJcbiAgICBpbiA9ICdpbicsXHJcbiAgICBub3RJbiA9ICduaW4nLFxyXG5cclxuICAgIGlzTnVsbCA9ICdpc251bGwnLFxyXG4gICAgaXNOb3ROdWxsID0gJ2lzbm90bnVsbCcsXHJcblxyXG4gICAgaW5Sb2xlID0gJ2hhc1JvbGUnLFxyXG4gICAgbm90SW5Sb2xlID0gJ25vdEhhc1JvbGUnLFxyXG4gICAgaW5DYXRlZ29yeSA9ICdpbkNhdGVnb3J5JyxcclxuICAgIG5vdEluQ2F0ZWdvcnkgPSAnbm90SW5DYXRlZ29yeScsXHJcbiAgICBpblBvc2l0aW9uID0gJ2luUG9zaXRpb24nLFxyXG4gICAgbm90SW5Qb3NpdGlvbiA9ICdub3RJblBvc2l0aW9uJyxcclxuICAgIGluTGlzdFVzZXIgPSAnaW5MaXN0VXNlcicsXHJcbiAgICBub3RJbkxpc3RVc2VyID0gJ25vdEluTGlzdFVzZXInLFxyXG4gICAgaW5MaXN0R3JvdXAgPSAnaW5MaXN0R3JvdXAnLFxyXG4gICAgbm90SW5MaXN0R3JvdXAgPSAnbm90SW5MaXN0R3JvdXAnLFxyXG4gICAgaXNDdXJyZW50VXNlciA9ICdpc0N1cnJlbnRVc2VyJyxcclxuICAgIGlzQ3VycmVudENhbkJvID0gJ2lzQ3VycmVudENhbkJvJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBIZWlnaHRUeXBlIHtcclxuICAgIGRlZmF1bHQgPSAwLFxyXG4gICAgZHluYW1pYyA9IC0xLFxyXG4gICAgY3VzdG9tID0gMVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlTWFuYWdlck1vZGUge1xyXG4gICAgc2luZ2xlID0gJ3NpbmdsZScsXHJcbiAgICBtdWx0aXBsZSA9ICdtdWx0aXBsZSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmlsZVVwbG9hZE1vZGUge1xyXG4gICAgdXNpbmdGaWxlSW5zdGFuY2VJZCA9ICd1c2luZ0ZpbGVJbnN0YW5jZUlkJyxcclxuICAgIHVzaW5nU2VydmljZUZpbGUgPSAndXNpbmdTZXJ2aWNlRmlsZSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRW51bUZpbGVMYXlvdXQge1xyXG4gICAgU0lNUExFID0gJ1NJTVBMRScsXHJcbiAgICBMSVNUID0gJ0xJU1QnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRleHRBbGlnbiB7XHJcbiAgICBMZWZ0ID0gMCxcclxuICAgIENlbnRlciA9IDEsXHJcbiAgICBSaWdodCA9IC0xXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEV4cG9ydEl0ZW1zTW9kZSB7XHJcbiAgICBGcm9tSHRtbCA9IDAsXHJcbiAgICBNYW51YWxHZXREYXRhID0gMSxcclxuICAgIEF1dG9HZXREYXRhID0gMlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHBvcnRBbGxNb2RlIHtcclxuICAgIE1hbnVhbEdldERhdGEgPSAwLFxyXG4gICAgQXV0b0dldERhdGEgPSAxXHJcbn1cclxuIl19
|
|
1130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY2xhc3Nlcy9mb3JtLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHakgsTUFBTSxPQUFPLFdBQVc7SUFNcEIsWUFBWSxJQUFrQjtRQUQ5QixhQUFRLEdBQWlGLFFBQVEsQ0FBQztRQUU5RixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFHakIsWUFBWSxJQUFlO1FBRjNCLG9HQUFvRztRQUNwRyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBd0Z4QixZQUFZLElBQXNCO1FBdEZsQyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHakIsaUJBQVksR0FBbUIsRUFBRSxDQUFDO1FBQ2xDLFNBQUksR0FBd0IsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQW1CLElBQUksYUFBYSxFQUFFLENBQUM7UUFDcEQsZ0JBQVcsR0FBaUIsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QyxlQUFVLEdBQWdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkcsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FB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QUFmLGVBQWUsUUFHMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLDZEQUEyQyxDQUFBO0lBQzNDLHVEQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIsbUNBQWlCLENBQUE7SUFDakIsK0JBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ2pCLHlDQUFRLENBQUE7SUFDUiw2Q0FBVSxDQUFBO0lBQ1YsNENBQVUsQ0FBQTtBQUNkLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsNkRBQVksQ0FBQTtJQUNaLHVFQUFpQixDQUFBO0lBQ2pCLG1FQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixtRUFBaUIsQ0FBQTtJQUNqQiwrREFBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlLXBpY2tlci9hdXRvY29tcGxldGUtcGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENydWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jcnVkL2NydWQtbGlzdC9jcnVkLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyRGF0YUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZW50aXR5LXBpY2tlci9lbnRpdHktcGlja2VyLWRpYWxvZy9jb21wb25lbnRzL2VudGl0eS1waWNrZXItZGF0YS9lbnRpdHktcGlja2VyLWRhdGEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyU2VsZWN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VudGl0eS1waWNrZXIvZW50aXR5LXBpY2tlci1kaWFsb2cvY29tcG9uZW50cy9lbnRpdHktcGlja2VyLXNlbGVjdGVkL2VudGl0eS1waWNrZXItc2VsZWN0ZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW50aXR5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbnRpdHktcGlja2VyL2VudGl0eS1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZURhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9maWxlLWV4cGxvcmVyL3NlcnZpY2VzL2ZpbGUtZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsdGVyLCBTb3J0IH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQtaW5mbyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW50aXR5TWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW50aXR5LW1ldGFkYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXN0ZXJEYXRhU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21hc3Rlci1kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVHJlZU5vZGUsIENydWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9jb21wb25lbnRzL2NydWQvY3J1ZC1mb3JtL2NydWQtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQ29ycmVjdG9yIH0gZnJvbSAnLi9iYXNlL2NvcnJlY3RvcnMnO1xyXG5pbXBvcnQgeyBJVmFsaWRhdG9yIH0gZnJvbSAnLi9iYXNlL3ZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBFbnVtQ29udHJvbFBpY2tlclR5cGUsIEVudW1Xb3JrZmxvd0NvcmVDb2RlU2V0dGluZ0tleSwgRm9ybVN0YXRlLCBTaGFyZWRGb2xkZXJUeXBlIH0gZnJvbSAnLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBXb3JrZmxvd1NldHRpbmcsIFdvcmtmbG93U2V0dGluZ05ldyB9IGZyb20gJy4vd29ya2Zsb3ctc2NoZW1hJztcclxuXHJcbmV4cG9ydCBjbGFzcyBNb2RlbFNjaGVtYSB7XHJcbiAgICBmaWVsZDogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgZnVsbE5hbWU6IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBkYXRhVHlwZT86ICdpbnQnIHwgJ2RlY2ltYWwnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdzdHJpbmcnIHwgJ2Jvb2xlYW4nIHwgJ3RpbWVzcGFuJyA9ICdzdHJpbmcnO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE1vZGVsU2NoZW1hKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEJhc2Uge1xyXG4gICAgLy8gQ29tcG9uZW50IHN1YnNjcmliZSAtIEtoaSBzdWJjcmliZSBt4buZdCBjb21wb25lbnQgdGjDrCBhZGQgdsOgbyBhcnJheSDEkeG7gyBraGkgZGVzdHJveSB0aMOsIHVuc3Vic2NyaWJlXHJcbiAgICBjb21wb25lbnRTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRCYXNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RTZXR0aW5nIHtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBvYmplY3ROYW1lID0gJyc7XHJcbiAgICBlbnRpdHlLZXkgPSAnaWQnO1xyXG4gICAgc2V0dGluZ0tleT86IHN0cmluZztcclxuICAgIGVudGl0eU1ldGFkYXRhU2VydmljZT86IEVudGl0eU1ldGFkYXRhU2VydmljZTtcclxuICAgIG1vZGVsU2NoZW1hcz86IE1vZGVsU2NoZW1hW10gPSBbXTtcclxuICAgIGNvbHM/OiBDb2x1bW5TY2hlbWFCYXNlW10gPSBbXTtcclxuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcclxuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcclxuICAgIGhlaWdodFR5cGU/OiBIZWlnaHRUeXBlID0gSGVpZ2h0VHlwZS5kZWZhdWx0OyAvLyBDw7MgY3VzdG9tIGNoaeG7gXUgY2FvIGtow7RuZzogVGjGsOG7nW5nIHPhu60gZOG7pW5nIHRyb25nIGRpYWxvZ1xyXG4gICAgZml4SGVpZ2h0VHlwZUluRGlhbG9nPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlQ2hlY2tXaGVuQ2xpY2tSb3cgPSB0cnVlO1xyXG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xyXG4gICAgc3RpY2t5Q29sdW1uID0gZmFsc2U7XHJcbiAgICB0YWJsZU5hbWU/OiBzdHJpbmc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlO1xyXG4gICAgcmVTZWxlY3RMYXN0SXRlbT89IHRydWU7IC8vIFNlbGVjdCBs4bqhaSBpdGVtIGN14buRaSBjw7luZyDEkcOjIGNo4buNbiBj4bunYSBncmlkXHJcbiAgICBmaXJlRXZlbnRXaGVuUmVTZWxlY3Q/PSBmYWxzZTtcclxuICAgIGFkdmFuY2VEYXRhPzogYW55ID0ge307XHJcbiAgICB1c2VXb3JrZmxvd05ldz86IGJvb2xlYW4gPSB0cnVlOyAvLyBT4bq9IGLhu48gxJFpIHRyb25nIHTGsMahbmcgbGFpIGtoaSB0aGF5IHRo4bq/IGhvw6BuIHRvw6BuIGLhurFuZyB3b3JrZmxvdyBuZXdcclxuICAgIHdvcmtmbG93U2V0dGluZz86IFdvcmtmbG93U2V0dGluZztcclxuICAgIHdvcmtmbG93U2V0dGluZ05ldz86IFdvcmtmbG93U2V0dGluZ05ldztcclxuICAgIGlzV29ya2Zsb3dUcmVlPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgd29ya2Zsb3dDb25maWdBZHZhbmNlPzogV29ya2Zsb3dDb25maWdBZHZhbmNlO1xyXG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7IC8vIHRyxrDhu51uZyDEkeG6oWkgZGnhu4duIGNobyBi4bqjbiBnaGkgbMOgbSB0acOqdSDEkeG7gSBoaeG7g24gdGjhu4sgKHBo4bulYyB24bulIGNobyBjw6FjIGThu4tjaCB24bulIGtow6FjIGtoYWkgdGjDoWMpXHJcbiAgICBoYXNDdXN0b21IYW5kbGVDbGlja1JvdyA9IGZhbHNlO1xyXG4gICAgY2hlY2tBbGxvd1RyaW5oS3k6IChyb3dEYXRhKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xyXG4gICAgZ2V0SXRlbVN0YXRlOiAobHN0Um93RGF0YTogYW55W10pID0+IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgICBjaGVja1Blcm1pc2lvblRyaW5oS3kgPSBmYWxzZTtcclxuXHJcbiAgICBzaG93RWRpdExpbmsgPSB0cnVlO1xyXG5cclxuICAgIGhpZGRlbkhlYWRlciA9IGZhbHNlO1xyXG4gICAgaGlkZGVuUGFnZVNldHRpbmcgPSBmYWxzZTtcclxuICAgIGhpZGRlblRleHRQYWdlID0gZmFsc2U7XHJcbiAgICBoaWRkZW5Ub29sYmFyID0gZmFsc2U7XHJcbiAgICBoaWRkZW5CdXR0b25zID0gZmFsc2U7XHJcbiAgICBoaWRkZW5BZHZhbmNlU2VhcmNoID0gZmFsc2U7XHJcbiAgICBoaWRkZW5TYXZlU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1Blcm1pc3Npb24gPSBmYWxzZTtcclxuICAgIGhpZGRlblNldHRpbmdXb3JrZmxvdyA9IGZhbHNlO1xyXG4gICAgaGlkZGVuU2V0dGluZ1dvcmtmbG93TmV3ID0gZmFsc2U7XHJcbiAgICBoaWRkZW5QYWdlVGl0bGUgPSBmYWxzZTtcclxuXHJcbiAgICBoaWRkZW5DaGVja2JveCA9IGZhbHNlO1xyXG4gICAgaGlkZGVuT3JkZXJDb2x1bW4gPSBmYWxzZTtcclxuICAgIGhpZGRlbldvcmtmbG93Q29sdW1uID0gZmFsc2U7XHJcbiAgICBoaWRkZW5GdW5jdGlvbkNvbHVtbiA9IGZhbHNlO1xyXG4gICAgaGlkZGVuUmVmcmVzaCA9IGZhbHNlO1xyXG4gICAgaGlkZGVuRmlsdGVyUm93ID0gZmFsc2U7XHJcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcclxuICAgIHVzZUJhc2VUcmluaEt5ID0gdHJ1ZTtcclxuICAgIGhpZGRlbldvcmtmbG93Q29yZVN0YXR1cyA9IHRydWU7XHJcbiAgICByZXF1aXJlZFZhbkJhbkRpQWZ0ZXJUcmluaEt5ID0gZmFsc2U7XHJcblxyXG4gICAgZ3JvdXBDb2x1bW4/OiBDb2x1bW5TY2hlbWFCYXNlO1xyXG5cclxuICAgIHNob3dFeHBvcnRBbGwgPSBmYWxzZTtcclxuICAgIHNob3dFeHBvcnRTZWxlY3RlZEl0ZW1zID0gdHJ1ZTtcclxuICAgIGV4cG9ydEFsbE1vZGVsOiBFeHBvcnRBbGxNb2RlID0gRXhwb3J0QWxsTW9kZS5BdXRvR2V0RGF0YTtcclxuICAgIGV4cG9ydEl0ZW1zTW9kZTogRXhwb3J0SXRlbXNNb2RlID0gRXhwb3J0SXRlbXNNb2RlLkZyb21IdG1sO1xyXG5cclxuICAgIGVuYWJsZVZlcnNpb24gPSBmYWxzZTtcclxuICAgIHNob3dWZXJzaW9uQnV0dG9uID0gZmFsc2U7XHJcbiAgICB2ZXJzaW9uTW9kZWw/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICBzaG93SGlzdG9yeSA9IGZhbHNlO1xyXG4gICAgaGlzdG9yeT86IGFueTtcclxuXHJcbiAgICBjb2xvckZpbHRlckZpZWxkID0gJyc7XHJcbiAgICBjb2xvckZpbHRlclRhYmxlPzogUm93Q29sb3JPcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIGVudGl0eU1ldGFkYXRhU2V0dGluZz86IENydWRGb3JtU2V0dGluZyA9IG5ldyBDcnVkRm9ybVNldHRpbmcoKTtcclxuXHJcbiAgICBmaWVsZFNlYXJjaFRleHQ/OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZmlsdGVyVGVtcGxhdGVBZHZzPzogRmlsdGVyW107XHJcblxyXG4gICAgZnVuY3Rpb246IENydWRMaXN0Q3VzdG9tRnVuY3Rpb24gPSBuZXcgQ3J1ZExpc3RDdXN0b21GdW5jdGlvbigpO1xyXG5cclxuICAgIHBvcHVwSGVhZGVyPz0gJyc7XHJcbiAgICBwb3B1cFNpemU/OiBQb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XHJcbiAgICBtYXNrQ2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gICAgZ2V0Q3VzdG9tRGF0YVRyaW5oS3k6IChyb3dEYXRhKSA9PiBhbnkgPSAocm93RGF0YSkgPT4gKHt9KTtcclxuICAgIGdldExhYmVsQnV0dG9uVHJpbmhLeTogKHJvd0RhdGEpID0+IHN0cmluZyA9IChyb3dEYXRhKSA9PiAnVHLDrG5oIGvDvSc7XHJcbiAgICBjaGVja1JlYWR5VG9UcmluaEt5OiAoKSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZExpc3RTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dDb25maWdBZHZhbmNlIHtcclxuICAgIGdldFdvcmtmbG93U2V0dGluZzogKHJvd0RhdGEpID0+IFdvcmtmbG93U2V0dGluZ05ldztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q3VzdG9tRnVuY3Rpb24ge1xyXG4gICAgLy8gQ3VzdG9taXplXHJcbiAgICBnZXRTZWFyY2hDb250cm9sPzogKGZpZWxkOiBzdHJpbmcpID0+IEZvcm1TY2hlbWFCYXNlW10gPSAoZmllbGQ6IHN0cmluZykgPT4gbnVsbDtcclxuICAgIC8vIEFzeW5jIGZ1bmN0aW9uXHJcbiAgICBtb2RpZnlBZHZhbmNlU2VhY2hNb2RlbD86IChkYXRhOiBBZHZhbmNlU2VhcmNoRGF0YSwgc2V0dGluZzogQWR2YW5jZVNlYXJjaFNldHRpbmcpID0+IFByb21pc2U8dm9pZD4gPSBhc3luYyAoZGF0YSkgPT4gbnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVyc29uYWxTZXR0aW5nIHtcclxuICAgIGNvbHVtblNldHRpbmc/OiBDb2x1bW5TZXR0aW5nID0gbmV3IENvbHVtblNldHRpbmcoKTtcclxuICAgIHBhZ2VTZXR0aW5nPzogUGFnZVNldHRpbmcgPSBuZXcgUGFnZVNldHRpbmcoKTtcclxuICAgIGNvbG9yRmlsdGVyRmllbGQgPSAnJztcclxuICAgIGNvbG9yRmlsdGVyVGFibGU/OiBSb3dDb2xvck9wdGlvbltdID0gW107XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUGVyc29uYWxTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3REYXRhIGV4dGVuZHMgQ3J1ZEJhc2Uge1xyXG4gICAgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcmVhZHkgPSB0cnVlO1xyXG4gICAgLy8gYmFzZSByZWFkeSBsw6AgY2jhu6ljIG7Eg25nIGtp4buDbSB0cmEgcmVhZHkgY+G7p2EgcmnDqm5nIHRyb25nIGJhc2UuIGsgZ2nhu5FuZyB24bubaSByZWFkeSDhu58gdHLDqm5cclxuICAgIC8vIETDuW5nIMSR4buDIGtp4buDbSB0cmEgbuG6v3UgY8OzIHdvcmtmbG93IHRow6wgdOG6oW0gdGjhu51pIGNoxrBhIGNobyDhuqVuIHRow6ptIG3hu5tpIG7hur91IGNoxrBhIGxvYWQgeG9uZyBk4buvIGxp4buHdSBj4bqnbiB0aGnhur90XHJcbiAgICBiYXNlUmVhZHkgPSBmYWxzZTtcclxuICAgIGRhdGFTb3VyY2U/OiBhbnlbXSA9IFtdO1xyXG4gICAgc2VsZWN0ZWRJdGVtcz86IGFueVtdID0gW107XHJcbiAgICBzZWxlY3RlZEl0ZW0/OiBhbnk7XHJcbiAgICBzZWxlY3RlZEl0ZW1MYXN0PzogYW55O1xyXG4gICAgc2VsZWN0ZWRJZD86IG51bWJlcjtcclxuICAgIHRvdGFsID0gMDtcclxuICAgIGl0ZW1EYXRhPzogYW55O1xyXG4gICAgYWR2YW5jZURhdGE6IGFueSA9IHt9O1xyXG5cclxuICAgIC8vIEPDoWMgdGh14buZYyB0w61uaCBi4buVIHN1bmcgZG8gYuG7iyBs4buXaSBraGkgcGFja2FnZVxyXG4gICAgc3VibWl0dGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLy8gRW5kIEPDoWMgdGh14buZYyB0w61uaCBi4buVIHN1bmcgZG8gYuG7iyBs4buXaSBraGkgcGFja2FnZVxyXG5cclxuICAgIGV4cGFuZGVkUm93S2V5cz86IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENydWRMaXN0RGF0YSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5TWVkYXRhRGF0YVNldHRpbmcge1xyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eU1lZGF0YURhdGFTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm93Q29sb3JPcHRpb24ge1xyXG4gICAgZmlsdGVyVmFsdWUgPSAnJztcclxuICAgIGNvbXBhcmVUeXBlID0gJyc7XHJcbiAgICBjb2xvciA9ICcnO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJvd0NvbG9yT3B0aW9uKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGFnZVNldHRpbmcge1xyXG4gICAgcGFnZSA9IDE7XHJcbiAgICBwYWdlU2l6ZSA9IDE1O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFBhZ2VTZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uU2V0dGluZyB7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPzogc3RyaW5nO1xyXG4gICAgc29ydERpcj86IC0xIHwgMCB8IDEgfCAyID0gLTE7XHJcbiAgICBncm91cEZpZWxkID0gJyc7XHJcbiAgICBkZXRhaWxzPzogQ29sdW1uU2V0dGluZ0RldGFpbFtdID0gW107XHJcbiAgICBjb2x1bW5SZW9yZGVyP1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENvbHVtblNldHRpbmcpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5TZXR0aW5nRGV0YWlsIHtcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG4gICAgY29sdW1uQ29kZT86IHN0cmluZztcclxuICAgIGNvbHVtbk5hbWU/OiBzdHJpbmc7XHJcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcclxuICAgIHRleHRBbGlnbj86IFRleHRBbGlnbjtcclxuICAgIHdpZHRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1EYXRhIGV4dGVuZHMgQ3J1ZEJhc2Uge1xyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgc3VibWl0dGluZz89IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUcuG6oW5nIHRow6FpIGPhu6dhIGZvcm0gxJFhbmcgxJHGsOG7o2MgbeG7nzogTMOgIGZvcm0gdGjDqm0gbeG7m2ksIGhheSBmb3JtIHPhu61hLCBoYXkgZm9ybSB4w7NhXHJcbiAgICAgKi9cclxuICAgIGZvcm1TdGF0ZT86IEZvcm1TdGF0ZSA9IEZvcm1TdGF0ZS5BREQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZEZvcm1EYXRhKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uIHtcclxuICAgIC8vIEN1c3RvbWl6ZVxyXG4gICAgbW9kaWZ5RGF0YUFmdGVyR2V0Q2FjaGU/OiAoZGF0YTogYW55KSA9PiB2b2lkID0gKGRhdGE6IGFueSkgPT4gbnVsbDtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdEN1c3RvbUZ1bmN0aW9uKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3J1ZEZvcm1TZXR0aW5nIHtcclxuICAgIGRpc2FibGVDYWNoaW5nID0gZmFsc2U7XHJcbiAgICBoaWRkZW5UcmluaEt5ID0gdHJ1ZTtcclxuICAgIHNjaGVtYT86IEZvcm1TY2hlbWFCYXNlW10gPSBbXTtcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2U7XHJcbiAgICBidWlsZEluU2NoZW1hPzogRm9ybUNvbnRyb2xCYXNlW10gPSBbXTtcclxuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nW10gfCBzdHJpbmdbXVtdID0gW107XHJcbiAgICBmaWVsZERyb3Bkb3duPzogeyBba2V5OiBzdHJpbmddOiBEcm9wZG93bkNvbnRyb2xTY2hlbWEgfSA9IHt9O1xyXG4gICAgZmllbGROZWVkR2V0UmVmPzogeyBba2V5OiBzdHJpbmddOiBUZXh0Q29udHJvbFNjaGVtYSB9ID0ge307XHJcbiAgICBkaXNwbGF5RmllbGQ/OiBzdHJpbmcgfCAoKGl0ZW0pID0+IHN0cmluZyk7XHJcbiAgICBmaXJzdEZvY3VzQ29udHJvbD86IHN0cmluZztcclxuICAgIGZpbHRlckNoZWNrRXhpc3RCeVZlcnNpb24/OiBGaWx0ZXJbXTtcclxuICAgIGRlZmF1bHRGaWx0ZXJDaGVja0V4aXN0PzogRmlsdGVyW10gfCAoKCkgPT4gRmlsdGVyW10pO1xyXG4gICAgY3VzdG9tV29ya2Zsb3dDb2RlVHJpbmhLeTogRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5ID0gRW51bVdvcmtmbG93Q29yZUNvZGVTZXR0aW5nS2V5Lk1BQ19ESU5IO1xyXG4gICAgZW50aXR5TWV0YWRhdGFEYXRhPzogQ3J1ZEZvcm1EYXRhO1xyXG4gICAgZW50aXR5TWV0YWRhdGFTZXR0aW5nPzogQ3J1ZEZvcm1TZXR0aW5nO1xyXG4gICAgZnVuY3Rpb24/OiBDcnVkRm9ybUN1c3RvbUZ1bmN0aW9uID0gbmV3IENydWRGb3JtQ3VzdG9tRnVuY3Rpb24oKTtcclxuICAgIGdldEN1c3RvbURhdGFUcmluaEt5OiAocm93RGF0YSkgPT4gYW55ID0gKHJvd0RhdGEpID0+ICh7fSk7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ3J1ZEZvcm1TZXR0aW5nKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaERhdGEgZXh0ZW5kcyBDcnVkRm9ybURhdGEge1xyXG4gICAgaW5pdERhdGE/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoRGF0YSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWR2YW5jZVNlYXJjaFNldHRpbmcgZXh0ZW5kcyBDcnVkRm9ybVNldHRpbmcge1xyXG4gICAgZmllbGRLZXkgPSAnX2snO1xyXG4gICAgZW50aXR5UGVybWlzc2lvblNjaGVtYT86IEZvcm1Db250cm9sQmFzZVtdID0gW107XHJcbiAgICBrZWVwSW5pdFNlYXJjaERhdGFOb3ROdWxsID0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBBZHZhbmNlU2VhcmNoU2V0dGluZykge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2NoZW1hQmFzZSB7XHJcbiAgICBmaWVsZD86IHN0cmluZztcclxuICAgIHVuaXF1ZUZpZWxkPzogc3RyaW5nO1xyXG4gICAgdHlwZT86ICdib29sZWFuJyB8ICdpbnQnIHwgJ2RlY2ltYWwnIHwgJ2RhdGV0aW1lJyB8ICdzdHJpbmcnID0gJ3N0cmluZyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFNjaGVtYUJhc2UpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2NoZW1hQmFzZSBleHRlbmRzIFNjaGVtYUJhc2Uge1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBmdWxsTGFiZWw/OiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICAgIHNob3dMYWJlbD89IHRydWU7XHJcbiAgICBnV2lkdGg/PSAxMjtcclxuICAgIG1kV2lkdGg/PSA2O1xyXG4gICAgd2lkdGg/OiBzdHJpbmc7XHJcbiAgICBjbGFzcz89ICcnO1xyXG4gICAgc3R5bGU/OiBhbnkgPSB7fTtcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAgIGhpZGRlbj89IGZhbHNlO1xyXG4gICAgaGlkZGVuQ2hlY2s/OiAocm9vdE1vZGVsOiBhbnksIGN1cnJlbnROb2RlOiBDb250cm9sVHJlZU5vZGUpID0+IGJvb2xlYW47XHJcbiAgICBoaWRkZW5PblZpZXc/PSBmYWxzZTtcclxuICAgIHZpc2libGVJbkxpc3Q/PSB0cnVlO1xyXG4gICAgb3BlcmF0b3I/OiBPcGVyYXRvcjtcclxuICAgIGdyb3VwQ29kZT89ICcnO1xyXG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gICAgZmllbGRBbGlhcz89ICcnO1xyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1TY2hlbWFCYXNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb250YWluZXJTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBjb250cm9sczogRm9ybVNjaGVtYUJhc2VbXTtcclxuICAgIHNob3dJbkJveD89IHRydWU7XHJcbiAgICBib3hTdHlsZT86IGFueTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb250YWluZXJTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1TY2hlbWFCYXNlV2l0aFNlcnZpY2UgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICAvLyBVcmwgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgKioqIEtIw5RORyBT4busIEThu6RORyBUUk9ORyBDw4FDIENBU0UgUEjhu5QgQknhur5OLCBDSOG7iCBT4busIEThu6RORyDEkOG7kEkgVuG7mkkgRk9STSBLSOG6ok8gU8OBVCAqKipcclxuICAgIHNlcnZpY2VVcmk/PSAnJztcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcbiAgICBkYXRhU291cmNlPzogYW55W10gPSBbXTtcclxuXHJcbiAgICBpc1NlcnZlckxvYWQ/PSBmYWxzZTtcclxuICAgIHNlYXJjaEZpZWxkPzogc3RyaW5nW107XHJcblxyXG4gICAgaXNUcmVlPz0gZmFsc2U7XHJcbiAgICBmaWVsZFRyZWU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxyXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuICAgIHNlbGVjdERlc2NlbmRhbnQ/PSBmYWxzZTsvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcblxyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/PSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7IC8vIERhbmggc8OhY2ggbmjhu69uZyB0csaw4budbmcgYuG7lSBzdW5nIGPhuqduIGzhuqV5IHRow6ptIG5nb8OgaSBpZCwgdGVuOyBWw60gZOG7pSAsbWFcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbiB8IFByb21pc2U8RmlsdGVyW10+OyAvLyB0dW5ndHMgdGjDqm0ga2nhu4N1IGThu68gbGnhu4d1IGRlZmF1bHRGaWx0ZXJzIGzDoCBwcm9taXNlXHJcbiAgICBhZnRlckdldERhdGE/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBmdW5jU2V0RGVmYXVsdFZhbHVlPzogRnVuY3Rpb247XHJcblxyXG4gICAgZmllbGRWYWx1ZVBhcmVudD89ICd2YWx1ZSc7IC8vIFRyxrDhu51uZyBz4butIGThu6VuZyDEkeG7gyBs4bqleSBk4buvIGxp4buHdSBsw6BtIGtow7NhIHThu6sgYuG6o25nIGNoYSBj4bunYSBpdGVtIGRyb3AgZG93biDEkcaw4bujYyBjaOG7jW5cclxuXHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBtb2RpZnlGaWx0ZXI/OiBGdW5jdGlvbjtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGFiZWxTY2hlbWEgZXh0ZW5kcyBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICBmb3I/PSAnJztcclxuICAgIGlzSHRtbD89IGZhbHNlO1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgaW5kZXhMYWJlbD86IG51bWJlcjtcclxuICAgIHRleHQ/PSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogTGFiZWxTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRpdGxlU2NoZW1hIGV4dGVuZHMgTGFiZWxTY2hlbWEge1xyXG4gICAgY2xhc3M/PSAndGl0bGUtZ3JvdXAgdGV4dC1ib2xkJztcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUaXRsZVNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgX2NvbXBvbmVudD86IGFueTsgLy8gQ29tcG9uZW50IGPhu6dhIHNjaGVtYSBraGkga2jhu59pIHThuqFvXHJcbiAgICB1bmlxdWVGaWVsZD86IHN0cmluZzsgLy8gU+G7rSBk4bulbmcgdHJvbmcgdGFibGUgc2NoZW1hXHJcbiAgICBhdXRvZm9jdXM/PSBmYWxzZTtcclxuICAgIHZhbGlkYXRvcnM/OiBJVmFsaWRhdG9yW10gPSBbXTtcclxuICAgIGNvcnJlY3RvcnM/OiBJQ29ycmVjdG9yW10gPSBbXTtcclxuICAgIHJlcXVpcmVkPz0gZmFsc2U7XHJcbiAgICBlbmFibGVDYWNoaW5nPz0gZmFsc2U7XHJcbiAgICBvbkNoYW5nZWQ/OiBGdW5jdGlvbjtcclxuICAgIHRyaWdnZXJMb2FkQ2hpbGQ/OiBGdW5jdGlvbjtcclxuICAgIGhhc09wZXJhdG9yQ2FuQm8/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBGb3JtQ29udHJvbEJhc2UpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIC8qKiBDb3B5IHThu6sgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSAqL1xyXG4gICAgLy8gVXJsIMSR4buDIGzhuqV5IGThu68gbGnhu4d1ICoqKiBLSMOUTkcgU+G7rCBE4bukTkcgVFJPTkcgQ8OBQyBDQVNFIFBI4buUIEJJ4bq+TiwgQ0jhu4ggU+G7rCBE4bukTkcgxJDhu5BJIFbhu5pJIEZPUk0gS0jhuqJPIFPDgVQgKioqXHJcbiAgICBzZXJ2aWNlVXJpPz0gJyc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICByZWZGaWVsZHM/OiBSZWZGaWVsZFtdID0gW107XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG5cclxuICAgIGlzU2VydmVyTG9hZD89IGZhbHNlO1xyXG4gICAgc2VhcmNoRmllbGQ/OiBzdHJpbmdbXTtcclxuXHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPz0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxyXG4gICAgc2VsZWN0RGVzY2VuZGFudD89IGZhbHNlOy8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiwgY2jDoXUgbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuXHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBmaWVsZFBsdXM/PSAnJzsgLy8gRGFuaCBzw6FjaCBuaOG7r25nIHRyxrDhu51uZyBi4buVIHN1bmcgY+G6p24gbOG6pXkgdGjDqm0gbmdvw6BpIGlkLCB0ZW47IFbDrSBk4bulICxtYVxyXG4gICAgZGVmYXVsdEZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGZpbHRlcldoaWxlUHJvY2Vzcz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjsgLy8gdHVuZ3RzIHRow6ptIGtp4buDdSBk4buvIGxp4buHdSBkZWZhdWx0RmlsdGVycyBsw6AgcHJvbWlzZVxyXG4gICAgYmluZGluZ0ZpbHRlcnM/OiBGaWx0ZXJbXSB8IEZ1bmN0aW9uIHwgUHJvbWlzZTxGaWx0ZXJbXT47IC8vIHR1bmd0cyB0aMOqbSBraeG7g3UgZOG7ryBsaeG7h3UgZGVmYXVsdEZpbHRlcnMgbMOgIHByb21pc2VcclxuICAgIGFmdGVyR2V0RGF0YT86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNTZXREZWZhdWx0VmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBwYXJlbnRGaWVsZD86IHN0cmluZzsgLy8gQ29sdW1uIHTGsMahbmcg4bupbmcgdHJvbmcgdGFibGUgc3FsIHNlcnZlci5cclxuICAgIGZpZWxkVmFsdWVQYXJlbnQ/PSAndmFsdWUnOyAvLyBUcsaw4budbmcgc+G7rSBk4bulbmcgxJHhu4MgbOG6pXkgZOG7ryBsaeG7h3UgbMOgbSBraMOzYSB04burIGLhuqNuZyBjaGEgY+G7p2EgaXRlbSBkcm9wIGRvd24gxJHGsOG7o2MgY2jhu41uXHJcblxyXG4gICAgY2FsbGJhY2tEYXRhRmluaXNoPzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgZmlyZUNhbGxCYWNrSW5zaWRlPz0gdHJ1ZTtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG5cclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICAvKiogRW5kIGNvcHkgdOG7qyBGb3JtU2NoZW1hQmFzZVdpdGhTZXJ2aWNlICovXHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZvcm1Db250cm9sQmFzZVdpdGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBzZWxlY3RBbGxUZXh0Pz0gZmFsc2U7IC8vIENo4buNbiB04bqldCBj4bqjIHRleHQga2hpIGZvY3VzXHJcblxyXG4gICAgcGxhY2Vob2xkZXI/PSAnJztcclxuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ251bWJlcicgfCAnZW1haWwnIHwgJ3Bob25lJyB8ICdmYXgnIHwgJ21vbmV5JyB8ICdtb25leWludCcgfCAnYW1vdW50JyA9ICd0ZXh0JztcclxuICAgIG1heExlbmd0aD86IG51bWJlcjtcclxuICAgIG1pbj89IDA7XHJcbiAgICBtYXg/PSA5OTk5OTk5OTtcclxuXHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG5cclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBzb3J0cz86IFNvcnRbXSA9IFtdO1xyXG4gICAgc29ydEZpZWxkPz0gJyc7XHJcbiAgICBzb3J0RGlyPzogMSB8IC0xID0gMTtcclxuICAgIGZpZWxkUGx1cz89ICcnOyAvLyBEYW5oIHPDoWNoIG5o4buvbmcgdHLGsOG7nW5nIGLhu5Ugc3VuZyBj4bqnbiBs4bqleSB0aMOqbSBuZ2/DoGkgaWQsIHRlbjsgVsOtIGThu6UgLG1hXHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRleHRDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnJztcclxuICAgIGRhdGFGb3JtYXQ/OiAndGV4dCcgfCAnbnVtYmVyJyB8ICdlbWFpbCcgfCAncGhvbmUnIHwgJ2ZheCcgfCAnbW9uZXknIHwgJ21vbmV5aW50JyB8ICdhbW91bnQnID0gJ3RleHQnO1xyXG4gICAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0Q29udHJvbFNjaGVtYVdpdGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNYXNrQ29udHJvbFNjaGVtYSBleHRlbmRzIFRleHRDb250cm9sU2NoZW1hIHtcclxuICAgIG1hc2tUeXBlPzogJ2RlY2ltYWwnIHwgJ2ludCcgPSAnaW50JztcclxuICAgIG1pbj89IDA7XHJcbiAgICBtYXg/PSA5OTk5OTk5OTk5O1xyXG4gICAgcHJlZml4Pz0gJyc7XHJcbiAgICBzdWZmaXg/PSAnJztcclxuICAgIGRlY2ltYWxQbGFjZXM/PSAyO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IE1hc2tDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBUZXh0Q29udHJvbFNjaGVtYSB7XHJcbiAgICBtYXNrVHlwZT86ICdkZWNpbWFsJyB8ICdpbnQnO1xyXG4gICAgbWluPz0gMDtcclxuICAgIG1heD89IDk5OTk5OTk5OTk7XHJcbiAgICBwcmVmaXg/PSAnJztcclxuICAgIHN1ZmZpeD89ICcnO1xyXG4gICAgZGVjaW1hbFBsYWNlcz89IDI7XHJcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXHJcbiAgICBvcGVyYXRvcnM/OiBhbnlbXTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBOdW1iZXJSYW5nZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBhcHBlbmRUbz89ICdib2R5JztcclxuICAgIHBhbmVsQ2xhc3M/PSAnJztcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgc2hvd1RpbWU/PSBmYWxzZTtcclxuICAgIHNob3dJY29uPz0gdHJ1ZTtcclxuICAgIGZvcm1hdD86ICdub3JtYWwnIHwgJ2Zyb21Ob3cnID0gJ2Zyb21Ob3cnO1xyXG4gICAgc2hvd09uRm9jdXM/PSB0cnVlO1xyXG4gICAgbWluRGF0ZT86IERhdGUgPSBudWxsO1xyXG4gICAgbWF4RGF0ZT86IERhdGUgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBEYXRlVGltZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnNob3dUaW1lID8gJ2RkL01NL3l5eXkgaGg6bW0nIDogJ2RkL01NL3l5eXknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lUmFuZ2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRGF0ZVRpbWVDb250cm9sU2NoZW1hIHtcclxuICAgIHNob3dJY29uPz0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0ZVRpbWVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xyXG5cclxuICAgIC8vICNQcm9wZXJ0eSBvdmVycmlkZVxyXG4gICAgYmFzZVNlcnZpY2U/OiBCYXNlU2VydmljZTtcclxuICAgIC8vICNFbmQgcHJvcGVydHkgb3ZlcnJpZGVcclxuXHJcbiAgICByZXR1cm5UeXBlPzogJ3ZhbHVlJyB8ICdvYmplY3QnID0gJ3ZhbHVlJztcclxuXHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBsaW1pdD89IDEwMDA7XHJcbiAgICB0aXRsZT89ICcgJztcclxuICAgIGNvbHVtbnM/OiBFbnRpdHlQaWNrZXJDb2x1bW5bXTtcclxuICAgIGZpZWxkU2VhcmNoVGV4dD86IHN0cmluZ1tdID0gW107XHJcbiAgICBkYXRhSW5pdD86IGFueSA9IHt9O1xyXG4gICAgYWR2YW5jZVNlYXJjaE1vZGVsPzogYW55ID0ge307XHJcbiAgICBvblNlYXJjaEZvcm1Jbml0aWFsaXplZD86IEZ1bmN0aW9uO1xyXG4gICAgb25Gb3JtRXZlbnQ/OiBGdW5jdGlvbjtcclxuICAgIG9uU2VsZWN0RW50aXR5PzogRnVuY3Rpb247IC8vIG7hur91IGZ1bmN0aW9uIGtow6FjIG51bGwgdsOgIHJldHVybiB0cnVlIHPhur0gY2hvIHBow6lwIG3hu58gZGlhbG9nXHJcbiAgICBhZnRlckNvbnRlbnRMZWZ0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcclxuICAgIGFmdGVyQ29udGVudFJpZ2h0SW5pdD86IChjcnVkTGlzdDogQ3J1ZExpc3RDb21wb25lbnQpID0+IHZvaWQ7IC8vIFNhdSBraGkgY8OhYyB0ZW1wbGF0ZSBjb250ZW50IGluaXRcclxuICAgIGFmdGVyR2V0RGF0YT86IChzb3VyY2VzOiBhbnlbXSwgZWxlbWVudDogRW50aXR5UGlja2VyQ29tcG9uZW50KSA9PiB2b2lkO1xyXG4gICAgYWZ0ZXJHZXREYXRhVW5QaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlckRhdGFDb21wb25lbnQpID0+IHZvaWQ7XHJcbiAgICBhZnRlckdldERhdGFQaWNrZWQ/OiAoc291cmNlczogYW55W10sIGVsZW1lbnQ6IEVudGl0eVBpY2tlclNlbGVjdGVkQ29tcG9uZW50KSA9PiB2b2lkO1xyXG5cclxuICAgIC8vIEPDsyBz4butIGThu6VuZyBwbHVzVXJsIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIgaGF5IGtow7RuZy5cclxuICAgIHVzZURlZmF1bHRQbHVzbFVybEluTGlzdD89IGZhbHNlO1xyXG5cclxuICAgIC8vIEPDsyBz4butIGThu6VuZyBkZWZhdWx0RmlsdGVyIGtoaSB0w6xtIGtp4bq/bSBkYW5oIHPDoWNoIOG7nyBtw6BuIGjDrG5oIGNow61uaCBFbnRpdHlQaWNrZXIuXHJcbiAgICB1c2VEZWZhdWx0RmlsdGVySW5MaXN0Pz0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dG9Db21wbGV0ZVBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBFbnRpdHlQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgZGF0YVR5cGU/OiBFbnVtQ29udHJvbFBpY2tlclR5cGUgPSBFbnVtQ29udHJvbFBpY2tlclR5cGUuVVNFUjtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgbW9kaWZ5SW5pdFNlYXJjaERhdGE/OiBGdW5jdGlvbjsgLy8gU+G7rSBk4bulbmcgxJHhu4MgbW9kaWZ5IGRhdGEgY+G7p2EgcGjhuqduIHNlYXJjaCwgdGjGsOG7nW5nIMSR4buDIHNldCBpbml0IGRhdGEgZHluYW1pYyB0aGVvIG5odSBj4bqndVxyXG4gICAgY2FsbEJhY2s/OiB7IFtrZXk6IHN0cmluZ106IEZ1bmN0aW9uIH07XHJcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgbW9kaWZ5Q29udHJvbD86IEZ1bmN0aW9uOyAvLyBT4butIGThu6VuZyDEkeG7gyBtb2RpZnkgc2NoZW1hIGJhc2VcclxuICAgIG5lZWRDbG9uZT89IGZhbHNlOyAvLyBT4butIGThu6VuZyB0cm9uZyB0YWJsZSBzY2hlbWEsIGtoaSBkYXRhc291cmNlIGPhu6dhIG3hu5l0IGPhu5l0IHRyw6puIG3hu5dpIGTDsm5nIGzDoCBraMOhYyBuaGF1IGPhuqduIHNldCBuZWVkQ2xvbmUgPSB0cnVlXFxcclxuICAgIGFmdGVyR2V0RGF0YURyb3Bkb3duPzogKHNvdXJjZXM6IGFueVtdLCBlbGVtZW50OiBBdXRvQ29tcGxldGVQaWNrZXJDb21wb25lbnQpID0+IHZvaWQ7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQXV0b0NvbXBsZXRlUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBBdXRvQ29tcGxldGVQaWNrZXJDb250cm9sU2NoZW1hIHtcclxuICAgIGRhdGFUeXBlPzogRW51bUNvbnRyb2xQaWNrZXJUeXBlID0gRW51bUNvbnRyb2xQaWNrZXJUeXBlLlVTRVI7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogV3JhcFBpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgICAvLyBT4butIGThu6VuZyDEkeG7gyBraGFpIGLDoW8gb3BlcmF0b3IgY2hvIGNvbnRyb2wgdHJvbmcgcXVlcnktYnVpbGRlciB0aGF5IGNobyBjw6FjIG9wZXJhdG9yIG3hurdjIMSR4buLbmggxJHGsOG7o2MgdOG6oW8gdOG7qyBxdWVyeS1idWlsZGVyXHJcbiAgICBvcGVyYXRvcnM/OiBhbnlbXTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDdXN0b21Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29sb3JQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU3BhbkNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgc291cmNlRmllbGQ/OiBzdHJpbmc7XHJcbiAgICBpc2h0bWw/PSBmYWxzZTtcclxuICAgIGVkaXRhYmxlPz0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogU3BhbkNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbG9yQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBzb3VyY2VGaWVsZD86IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2xvckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEtleVZhbHVlQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogS2V5VmFsdWVDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgYWNjZXB0Pzogc3RyaW5nO1xyXG4gICAgbWF4RmlsZVNpemU/PSAxMDAwMDAwMDA7XHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT89ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcclxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWw/PSAnZHVuZyBsxrDhu6NuZyB04buRaSDEkWEgbMOgIHswfS4nO1xyXG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBLaMO0bmcgxJHDum5nIMSR4buLbmggZOG6oW5nIGZpbGUsICc7XHJcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPz0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcclxuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlU3VtbWFyeT89ICdRdcOhIHPhu5EgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XHJcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbD89ICd04buRaSDEkWEgezB9IGZpbGUuJztcclxuICAgIG1vZGU/OiBGaWxlTWFuYWdlck1vZGUgfCBGaWxlVXBsb2FkTW9kZSA9IEZpbGVNYW5hZ2VyTW9kZS5tdWx0aXBsZTtcclxuICAgIGxheW91dD86IEVudW1GaWxlTGF5b3V0ID0gRW51bUZpbGVMYXlvdXQuTElTVDtcclxuICAgIHJlYWRvbmx5Pz0gZmFsc2U7XHJcblxyXG4gICAgLy8gU2VydmljZSBkw7luZyDEkeG7gyBs4bqleSBkYXRhc291cmNlIGPhu6dhIG5oaeG7gXUgY29udHJvbCBt4buZdCBs4bqnbi5cclxuICAgIGZpbGVEYXRhU2VydmljZT86IEZpbGVEYXRhU2VydmljZTtcclxuXHJcbiAgICAvLyBC4buZIDMga2V5IMSR4buDIGzhuqV5IHRoxrAgbeG7pWMgZ+G7kWMuXHJcbiAgICBzZXJ2aWNlQ29kZT86IHN0cmluZztcclxuICAgIGVudGl0eT86IHN0cmluZztcclxuICAgIGVudGl0eUtleT86IHN0cmluZztcclxuXHJcbiAgICAvLyBUw6puIHRoxrAgbeG7pWMgZ+G7kWMga2hpIGhp4buDbiB0aOG7iyB0csOqbiBicmVhZGNydW1icy5cclxuICAgIHJvb3RGb2xkZXJOYW1lPzogc3RyaW5nO1xyXG5cclxuICAgIC8vIFRyxrDhu51uZyBo4bujcCDhu58gdHJvbmcgZm9ybSwgZMO5bmcgdHLGsOG7nW5nIG7DoHkgxJHhu4MgbOG6pXlcclxuICAgIC8vIGVudGl0eUtleSB04burIG1vZGVsLmRhdGEgdGhheSB2w6wgdHJ1eeG7gW4gdsOgbyBlbnRpdHlLZXlcclxuICAgIGVudGl0eUtleUZpZWxkPz0gJ2lkJztcclxuICAgIGRhdGFLeVNvRG9uVmk/OiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEZpbGVNYW5hZ2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGaWxlTWFuYWdlckNvbnRyb2xTY2hlbWEge1xyXG4gICAgbW9kZT89IEZpbGVVcGxvYWRNb2RlLnVzaW5nU2VydmljZUZpbGU7XHJcbiAgICBtZFdpZHRoPz0gNjtcclxuICAgIHNoYXJlZEZvbGRlclR5cGU/OiBTaGFyZWRGb2xkZXJUeXBlID0gU2hhcmVkRm9sZGVyVHlwZS5UZW1wdDtcclxuXHJcbiAgICBoaWRkZW5CdXR0b25zPz0gZmFsc2U7XHJcbiAgICBkaXNhYmxlZD89IGZhbHNlO1xyXG4gICAgcmVhZG9ubHk/PSBmYWxzZTtcclxuICAgIGF1dG9TYXZlZD89IHRydWU7XHJcblxyXG4gICAgZW5hYmxlU2Nhbj89IGZhbHNlO1xyXG4gICAgZXh0cmFjdFppcEZpbGU/PSBmYWxzZTtcclxuICAgIGVuYWJsZURyaXZlRmlsZT89IGZhbHNlO1xyXG5cclxuICAgIHNob3dEb3dubG9hZEZpbGU/PSB0cnVlO1xyXG4gICAgc2hvd0RlbGV0ZUZpbGU/PSB0cnVlO1xyXG4gICAgc2hvd1ByaW50RmlsZT89IHRydWU7XHJcbiAgICBtYXhGaWxlU2l6ZT89IDEwMDAwMDAwMDsgLy8gMTAwIE1CXHJcbiAgICBpbnZhbGlkRmlsZVNpemVNZXNzYWdlU3VtbWFyeT89ICd7MH06IFF1w6EgZHVuZyBsxrDhu6NuZyBmaWxlIGNobyBwaMOpcCwgJztcclxuICAgIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VEZXRhaWw/PSAnZHVuZyBsxrDhu6NuZyB04buRaSDEkWEgbMOgIHswfS4nO1xyXG4gICAgaW52YWxpZEZpbGVUeXBlTWVzc2FnZVN1bW1hcnk/PSAnezB9OiBLaMO0bmcgxJHDum5nIMSR4buLbmggZOG6oW5nIGZpbGUsICc7XHJcbiAgICBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlRGV0YWlsPz0gJ8SR4buLbmggZOG6oW5nIGZpbGUgY2hvIHBow6lwOiB7MH0uJztcclxuICAgIGludmFsaWRGaWxlTGltaXRNZXNzYWdlU3VtbWFyeT89ICdRdcOhIHPhu5EgbMaw4bujbmcgZmlsZSBjaG8gcGjDqXAsICc7XHJcbiAgICBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbD89ICd04buRaSDEkWEgezB9IGZpbGUuJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRmlsZVVwbG9hZENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIFN3aXRjaENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFN3aXRjaENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcclxuICAgIGhpZGRlbkxhYmVsPz0gZmFsc2U7IC8vIFNldCA9IHRydWUgY2jhu6cgeeG6v3Uga2hpIGTDuW5nIHRyb25nIHRhYmxlIHNjaGVtYSDEkeG7gyDhuqluIGxhYmVsIMSRaSwgdsOsIGxhYmVsIMSRw6MgY8OzIHRyw6puIHRpw6p1IMSR4buBIGPhu5l0XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ2hlY2tib3hDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBCdXR0b25Db250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgc2hvd0xhYmVsPz0gZmFsc2U7XHJcbiAgICBidENsYXNzPz0gJ3AtYnV0dG9uLXRleHQnO1xyXG4gICAgaWNvbj87XHJcbiAgICBidFN0eWxlPz0geyB3aWR0aDogJ2F1dG8nIH07XHJcbiAgICBvbkNsaWNrPzogRnVuY3Rpb247XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQnV0dG9uQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgdGVtcGxhdGU6IGFueTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZW1wbGF0ZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRleHRBcmVhQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICByb3dzPz0gNTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBUZXh0QXJlYUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgbXVsdGlwbGU/PSB0cnVlO1xyXG4gICAgbGltaXQ/PSAyMDsgLy8gR2nhu5tpIGjhuqFuIHPhu5EgbmfGsOG7nWkgZMO5bmcgdOG7kWkgxJFhIMSRxrDhu6NjIHBpY2tcclxuICAgIHRpdGxlPz0gJ0No4buNbiBuZ8aw4budaSBkw7luZyc7XHJcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcclxuICAgIGZpbHRlcldoaWxlUHJvY2Vzcz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgcGFyZW50T3JnQ29kZT86IHN0cmluZztcclxuICAgIHBsYWNlaG9sZGVyPz0gJyc7XHJcbiAgICBsYXp5TG9hZE9yZ2FuaXphdGlvbj89IGZhbHNlO1xyXG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAnZnVsbE5hbWVOZXcnO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgcmV0dXJuVHlwZT86ICd2YWx1ZScgfCAnb2JqZWN0JyA9ICd2YWx1ZSc7XHJcbiAgICBvblJlYWR5PzogKGV2dDogRXZlbnREYXRhKSA9PiB2b2lkO1xyXG4gICAgZnVuY0dldExhYmVsPzogKGl0ZW0pID0+IHN0cmluZztcclxuICAgIGZ1bmNDb21wYXJlPzogKGl0ZW06IGFueSwgdmFsdWUpID0+IGJvb2xlYW4gPSAoaXRlbSwgdmFsdWUpID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PSB2YWx1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBVc2VyUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgbXVsdGlwbGU/PSB0cnVlO1xyXG4gICAgbGltaXQ/PSAyMDsgLy8gR2nhu5tpIGjhuqFuIHPhu5EgYuG6o24gZ2hpIHThu5FpIMSRYSDEkcaw4bujYyBwaWNrXHJcbiAgICB0aXRsZT89ICdDaOG7jW4gxJHGoW4gduG7iyc7XHJcbiAgICBkZWZhdWx0RmlsdGVycz86IEZpbHRlcltdIHwgRnVuY3Rpb24gfCBQcm9taXNlPEZpbHRlcltdPjtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIGZpZWxkUGx1cz89ICcnO1xyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuICAgIG9uUmVhZHk/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPcmdhbml6YXRpb25QaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGZpbHRlcj89IHRydWU7XHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBwYXJlbnRPcmdJZD86IG51bWJlcjtcclxuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XHJcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcclxuICAgIGlzVXNpbmdJZD89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogT3JnYW5pemF0aW9uUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29DYXVUb0NodWNDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIGZpbHRlcj89IHRydWU7XHJcbiAgICBtdWx0aXBsZT89IHRydWU7XHJcbiAgICBwYXJlbnRPcmdJZD86IG51bWJlcjtcclxuICAgIHBhcmVudE9yZ0NvZGU/OiBzdHJpbmc7XHJcbiAgICBlbmFibGVDYWNoaW5nPz0gdHJ1ZTtcclxuICAgIGlzVXNpbmdJZD89IHRydWU7XHJcbiAgICBkaXNhYmxlZFBhcmVudEl0ZW0/PSB0cnVlO1xyXG4gICAgcm9vdFBhcmVudElkPzogc3RyaW5nID0gbnVsbDtcclxuICAgIGRpc2FibGVkPz0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQ29DYXVUb0NodWNDb250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFZGl0b3JDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1vZGU/OiAnYmFzaWMnIHwgJ21lZGl1bScgfCAnZnVsbCcgfCAnc2ltcGxlJyA9ICdiYXNpYyc7XHJcbiAgICBoZWlnaHQ/PSAyNTA7XHJcbiAgICBpbml0PzogYW55O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVkaXRvckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlV2l0aFNlcnZpY2Uge1xyXG4gICAgdmFsdWVGaWVsZD89ICdpZCc7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIHJldHVyblR5cGU/OiAndmFsdWUnIHwgJ29iamVjdCcgPSAndmFsdWUnO1xyXG4gICAgZGF0YVNvdXJjZT86IGFueSB8IEZ1bmN0aW9uO1xyXG4gICAgLy8gU+G7rSBk4bulbmcgxJHhu4Mga2hhaSBiw6FvIG9wZXJhdG9yIGNobyBjb250cm9sIHRyb25nIHF1ZXJ5LWJ1aWxkZXIgdGhheSBjaG8gY8OhYyBvcGVyYXRvciBt4bq3YyDEkeG7i25oIMSRxrDhu6NjIHThuqFvIHThu6sgcXVlcnktYnVpbGRlclxyXG4gICAgb3BlcmF0b3JzPzogYW55W107XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRGF0YVNvdXJjZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIGFwcGVuZFRvPz0gJ2JvZHknO1xyXG4gICAgcGFuZWxDbGFzcz89ICcnO1xyXG4gICAgcGxhY2Vob2xkZXI/PSAnQ2jhu41uJztcclxuICAgIHNlbGVjdGVkSXRlbXNMYWJlbD89ICfEkMOjIGNo4buNbiB7MH0gbeG7pWMnO1xyXG4gICAgc2VsZWN0ZWRBbGxJdGVtTGFiZWw/PSAnxJDDoyBjaOG7jW4gdOG6pXQgY+G6oyc7XHJcbiAgICBzaG93Q2xlYXI/PSB0cnVlO1xyXG4gICAgZmlsdGVyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gZmFsc2U7XHJcbiAgICBnZW5lcmF0ZVRvb2x0aXA/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgbWF4U2VsZWN0ZWRMYWJlbHM/PSA1O1xyXG4gICAgbWF4SXRlbURpc3BsYXk/PSA1MDtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgbmVlZENsb25lPz0gZmFsc2U7IC8vIFPhu60gZOG7pW5nIHRyb25nIHRhYmxlIHNjaGVtYSwga2hpIGRhdGFzb3VyY2UgY+G7p2EgbeG7mXQgY+G7mXQgdHLDqm4gbeG7l2kgZMOybmcgbMOgIGtow6FjIG5oYXUgY+G6p24gc2V0IG5lZWRDbG9uZSA9IHRydWVcclxuICAgIHRlbXBsYXRlSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICB0ZW1wbGF0ZVNlbGVjdGVkSXRlbT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBxdWlja0FkZD89IGZhbHNlO1xyXG4gICAgY29scz86IEZvcm1TY2hlbWFCYXNlW107XHJcbiAgICBpbml0RGF0YT86IGFueSA9IHt9O1xyXG4gICAgcG9wdXBTaXplPzogUG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSh7IHdpZHRoOiA3NTAsIGhlaWdodDogNDAwIH0pO1xyXG5cclxuICAgIGxvYWRJbkZpcnN0RGlzcGxheT89IHRydWU7XHJcblxyXG4gICAgYXV0b0dldERhdGE/PSB0cnVlO1xyXG5cclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcblxyXG4gICAgYXV0b0Rpc3BsYXlGaXJzdD89IGZhbHNlO1xyXG4gICAgbm90SW5DcnVkRm9ybT89IGZhbHNlO1xyXG4gICAgc2VhcmNoTXVsdGlwbGU/PSB0cnVlO1xyXG4gICAgZGlzYWJsZURpc3BsYXlGaWVsZFNlcnZlclNlYXJjaD89IGZhbHNlO1xyXG5cclxuICAgIGxvYWRPbkluaXQ/PSBmYWxzZTtcclxuICAgIGFsbG93TG9hZERhdGFXaGVuUGFyZW50TnVsbD89IGZhbHNlO1xyXG5cclxuICAgIGRpc2FibGVkUGFyZW50SXRlbT89IHRydWU7XHJcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25Db250cm9sU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBZGRyZXNzQ29udHJvbFNjaGVtYSBleHRlbmRzIEZvcm1Db250cm9sQmFzZSB7XHJcbiAgICBoaWRlTm8/PSBmYWxzZTtcclxuICAgIGhpZGVTdHJlZXQ/PSBmYWxzZTtcclxuICAgIGhpZGVXYXJkPz0gZmFsc2U7XHJcbiAgICBoaWRlRGlzdHJpY3Q/PSBmYWxzZTtcclxuICAgIHJlcXVpcmVkTm8/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRTdHJlZXQ/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRXYXJkPz0gdHJ1ZTtcclxuICAgIHJlcXVpcmVkRGlzdHJpY3Q/PSB0cnVlO1xyXG4gICAgcmVxdWlyZWRQcm92aW5jZT89IHRydWU7XHJcbiAgICB3YXJkVG9Qcm92aW5jZT89IHRydWU7XHJcbiAgICBub1dpZHRoPz0gMTtcclxuICAgIHN0cmVldFdpZHRoPz0gMztcclxuICAgIHdhcmRXaWR0aD89IDM7XHJcbiAgICBkaXN0cmljdFdpZHRoPz0gMjtcclxuICAgIHByb3ZpbmNlV2lkdGg/PSAzO1xyXG4gICAgc2hvd0luQm94Pz0gZmFsc2U7XHJcblxyXG4gICAgaGlkZUhvbGRlcj89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogQWRkcmVzc0NvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZhbkJhblBpY2tlckNvbnRyb2xTY2hlbWEgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2Uge1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG4gICAgdXNlVmJEZW4/PSB0cnVlO1xyXG4gICAgdXNlVmJEaT89IHRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVmFuQmFuUGlja2VyQ29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZ1ZpZWNQaWNrZXJDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIHNlcnZpY2VDb2RlPzogc3RyaW5nO1xyXG4gICAgZW50aXR5Pzogc3RyaW5nO1xyXG4gICAgZW50aXR5S2V5Pzogc3RyaW5nO1xyXG4gICAgc3RhdGU/OiBhbnkgPSB7fTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb25nVmllY1BpY2tlckNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcmNlbnRDb250cm9sU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIG1kV2lkdGg/PSAxMjtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQZXJjZW50Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlQ29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIHBsYWNlaG9sZGVyPz0gJyc7XHJcbiAgICBtdWx0aXBsZT89IGZhbHNlO1xyXG4gICAgbWluTGVuZ3RoRmlsdGVyPz0gMTtcclxuICAgIGFwcGVuZFRvPzogc3RyaW5nID0gJ2JvZHknO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEF1dG9Db21wbGV0ZUNvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uTGlzdENvbnRyb2xTY2hlbWEgZXh0ZW5kcyBEYXRhU291cmNlQ29udHJvbFNjaGVtYSB7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGRpc3BsYXlGaWVsZD89ICd0ZW4nO1xyXG4gICAgZW5hYmxlQ2FjaGluZz89IHRydWU7XHJcbiAgICBsYXlvdXQ/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xyXG4gICAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcgPSAnbGVmdCc7XHJcbiAgICBvbkFkanVzdGVkVmFsdWU/OiBGdW5jdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogUmFkaW9CdXR0b25MaXN0Q29udHJvbFNjaGVtYSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2hlY2tCb3hMaXN0Q29udHJvbFNjaGVtYSBleHRlbmRzIERhdGFTb3VyY2VDb250cm9sU2NoZW1hIHtcclxuICAgIGVuYWJsZUNhY2hpbmc/PSB0cnVlO1xyXG4gICAgbGF5b3V0PzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcclxuICAgIGFsaWduPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnID0gJ2xlZnQnO1xyXG4gICAgY2xhc3NQbHVzPz0gJyc7XHJcbiAgICBmcmVlVGV4dD89ICcnO1xyXG4gICAgcENvbENsYXNzPzogbnVtYmVyO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IENoZWNrQm94TGlzdENvbnRyb2xTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlU2NoZW1hIGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIHtcclxuICAgIHJvd1RlbXBsYXRlOiBGb3JtU2NoZW1hQmFzZVtdO1xyXG4gICAgcm93QnV0dG9ucz86IChyb3dEYXRhKSA9PiBNZW51SXRlbVtdO1xyXG4gICAgZm9vdGVyQnV0dG9ucz86IHtcclxuICAgICAgICBpY29uPzogc3RyaW5nO1xyXG4gICAgICAgIGxhYmVsPzogc3RyaW5nO1xyXG4gICAgICAgIGNsYXNzPzogc3RyaW5nO1xyXG4gICAgICAgIG1lc3NhZ2U6IHN0cmluZztcclxuICAgIH1bXTtcclxuICAgIHNob3dOdW1iZXI/PSB0cnVlO1xyXG4gICAgc2hvd0Z1bmN0aW9uPz0gdHJ1ZTtcclxuICAgIHNob3dGb290ZXI/PSB0cnVlO1xyXG4gICAgc2hvd1NhdmU/PSBmYWxzZTtcclxuICAgIHNob3dFZGl0Pz0gZmFsc2U7XHJcbiAgICBzaG93RGVsZXRlPz0gdHJ1ZTtcclxuICAgIHNob3dBZGQ/PSB0cnVlO1xyXG4gICAgZW5hYmxlUmVvcmRlclJvdz89IGZhbHNlO1xyXG4gICAgb25SZW9yZGVyZWQ/OiBGdW5jdGlvbjtcclxuICAgIGVuYWJsZUFkZE11bHRpPz0gZmFsc2U7XHJcbiAgICBwaWNrZXJDb250cm9sRmllbGQ/OiBzdHJpbmc7XHJcbiAgICBpc1VuaXF1ZT89IHRydWU7XHJcbiAgICBlbmFibGVQYWdpbmc/PSBmYWxzZTtcclxuICAgIGxpbWl0Pz0gNTA7XHJcbiAgICBpbml0Um93Q291bnQ/PSAxO1xyXG4gICAgbWRXaWR0aD89IDEyO1xyXG5cclxuICAgIG9uQWRkaW5nPzogRnVuY3Rpb247XHJcbiAgICBvbkFkZGVkPzogRnVuY3Rpb247XHJcbiAgICBvblNhdmU/OiBGdW5jdGlvbjtcclxuICAgIG9uTWVzc2FnZT86IEZ1bmN0aW9uO1xyXG4gICAgb25EZWxldGluZz86IEZ1bmN0aW9uO1xyXG4gICAgb25EZWxldGVkPzogRnVuY3Rpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFRhYmxlU2NoZW1hKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5TY2hlbWFCYXNlIGV4dGVuZHMgRm9ybVNjaGVtYUJhc2VXaXRoU2VydmljZSB7XHJcbiAgICB3aWR0aD86IHN0cmluZztcclxuICAgIHNob3dFZGl0TGluaz89IGZhbHNlO1xyXG4gICAgY29sU3Bhbj86IG51bWJlcjtcclxuICAgIGdyb3VwPz0gZmFsc2U7XHJcbiAgICB2aXNpYmxlPz0gdHJ1ZTtcclxuICAgIHJlbW92ZU9uSW5pdD89IGZhbHNlO1xyXG4gICAgYWxsb3dGaWx0ZXI/PSB0cnVlO1xyXG4gICAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xyXG4gICAgY2VsbENsYXNzPzogc3RyaW5nO1xyXG4gICAgZnVsbFRleHRTZWFyY2g/PSBmYWxzZTtcclxuICAgIHJhd0NvbHVtbj86IENvbHVtblNjaGVtYUJhc2U7XHJcbiAgICBzZXBhcmF0b3I/PSAnLCAnO1xyXG5cclxuICAgIGRhdGFUeXBlUmVmRmllbGQ/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIGZvcmNlR2V0RGF0YT89IGZhbHNlO1xyXG4gICAgZnVuY0dldFJlZkRhdGFSb3c/OiAocmVmSXRlbXMpID0+IHt9O1xyXG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XHJcbiAgICByb3dTcGFuPz0gMTtcclxuICAgIGZvcm1hdD86IHN0cmluZztcclxuICAgIGRhdGFUeXBlPzogRGF0YVR5cGUgfCBzdHJpbmc7XHJcbiAgICBjb250cm9sVHlwZT86IENvbnRyb2xUeXBlID0gQ29udHJvbFR5cGUudGV4dGJveDtcclxuICAgIHRlbXBsYXRlRmlsdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIGZpZWxkRmlsdGVyPzogc3RyaW5nO1xyXG4gICAgZGlzYWJsZUNoZWNrQm94Pz0gdHJ1ZTtcclxuICAgIC8vIFRo4bupIHThu7EgxrB1IHRpw6puIGdldCByZWYgZGF0YSBj4bunYSBjcnVkLWxpc3RcclxuICAgIC8vIE7hur91IGPDsyB2YWx1ZSBuZ2jEqWEgbMOgIG5o4buvbmcgY+G7mXQgbsOgeSBj4bqnbiBwaOG6o2kgbOG6pXkgZOG7ryBsaeG7h3UgeG9uZyBy4buTaSBt4bubaSDEkeG6v24gY+G7mXQga2jDoWNcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG4gICAgbWF4V29yZERpc3BsYXk/OiBudW1iZXI7XHJcbiAgICBtYXhMZW5ndGhEaXNwbGF5PzogbnVtYmVyO1xyXG5cclxuICAgIG1kV2lkdGhJblNlYXJjaD89IDEyO1xyXG5cclxuICAgIG1pbj89IDA7XHJcbiAgICBtYXg/PSA5OTk5OTk7XHJcblxyXG4gICAgc2hvd0NsZWFyPz0gdHJ1ZTtcclxuICAgIG11bHRpcGxlPz0gZmFsc2U7XHJcblxyXG4gICAgcGlwZT86IFBpcGVUcmFuc2Zvcm07XHJcbiAgICBhc3luY1BpcGU/PSB0cnVlO1xyXG4gICAgc29ydD89IHRydWU7XHJcbiAgICBleHRlbmREYXRhPzogYW55ID0ge307XHJcblxyXG4gICAgZ2VuZXJhdGVkUmVmQ29sdW1uPzogYW55OyAvLyBUT0RPOiBOYW1OSCB0aMOqbSB04bqhbSB0aGVvIHnDqnUgY+G6p3UgY+G7p2EgTGluaCwgTGluaCBjaGVjayBs4bqhaSBzYXVcclxuICAgIGhhc09wZXJhdG9yQ2FuQm8/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDb2x1bW5TY2hlbWFCYXNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk9wdGlvbnMge1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcbiAgICB2YWx1ZUZpZWxkPz0gJ2lkJztcclxuICAgIGZpZWxkVHJlZT89ICcnO1xyXG4gICAgc2VsZWN0Q2hpbGRJdGVtPz0gZmFsc2U7IC8vIEPDsyBzZWxlY3QgYuG6o24gZ2hpIGNvbiBu4bq/dSBjaOG7jW4gYuG6o24gZ2hpIGNoYVxyXG4gICAgc2VsZWN0RGVzY2VuZGFudD89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIHBsdXNVcmw/OiBzdHJpbmc7XHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBwYWdlU2l6ZT89IDk5OTk7XHJcbiAgICBpc1NlcnZlckxvYWQ/PSBmYWxzZTtcclxuICAgIHJlZkZpZWxkcz86IFJlZkZpZWxkW10gPSBbXTtcclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogRHJvcGRvd25PcHRpb25zKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBSZWZGaWVsZCB7XHJcbiAgICBmaWVsZDogc3RyaW5nO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuICAgIHNlcGFyYXRvcj89ICcsICc7XHJcbiAgICBiYXNlU2VydmljZT86IEJhc2VTZXJ2aWNlIHwgTWFzdGVyRGF0YVNlcnZpY2U7XHJcbiAgICBkaXNwbGF5RmllbGQ/PSAndGVuJztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZmllbGRQbHVzPz0gJyc7XHJcbiAgICBncm91cENvZGU/OiBzdHJpbmc7XHJcbiAgICBkYXRhU291cmNlPzogYW55W107XHJcbiAgICBvcmRlcj86IG51bWJlcjtcclxuXHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHZhbHVlUGFyZW50Um9vdD86IGFueSA9IG51bGw7IC8vIEdpw6EgdHLhu4sgdHLGsOG7nW5nIFtmaWVsZFRyZWVdIGPhu6dhIGl0ZW0gdHJlZSByb290XHJcbiAgICBmaWVsZFBhcmVudFRyZWVJdGVtPz0gJ2lkJzsgLy8gVHLGsOG7nW5nIHjDoWMgxJHhu4tuaCBi4bqjbiBnaGkgbMOgIGLhuqNuIGdoaSBjaGEgY+G7p2EgYuG6o24gZ2hpIGNvblxyXG4gICAgc29ydHM/OiBTb3J0W10gPSBbXTtcclxuICAgIHNvcnRGaWVsZD89ICcnO1xyXG4gICAgc29ydERpcj86IDEgfCAtMSA9IDE7XHJcbiAgICBwbHVzVXJsPzogc3RyaW5nO1xyXG4gICAgZnVuY1NldFZhbHVlUm93PzogKHJvd0l0ZW0sIGRhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0UmVmRGF0YVJvdz86IChyZWZJdGVtcykgPT4ge307XHJcbiAgICBjYWxsYmFja0RhdGFGaW5pc2g/OiAoZXZ0OiBFdmVudERhdGEpID0+IHZvaWQ7XHJcbiAgICBmdW5jR2V0TGFiZWw/OiAoaXRlbSkgPT4gc3RyaW5nO1xyXG4gICAgZnVuY0NvbXBhcmU/OiAoaXRlbTogYW55LCB2YWx1ZSkgPT4gYm9vbGVhbiA9IChpdGVtLCB2YWx1ZSkgPT4gaXRlbVt0aGlzLnZhbHVlRmllbGRdID09IHZhbHVlO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFJlZkZpZWxkKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBQcm9wRm9yRHJvcGRvd24ge1xyXG4gICAgc2VydmVyRmlsdGVyVXJpPzogc3RyaW5nO1xyXG4gICAgbG9hZEluRmlyc3REaXNwbGF5Pz0gdHJ1ZTtcclxuICAgIGRpc3BsYXlGaWVsZFNlcnZlcj89ICd0ZW4nO1xyXG4gICAgdmFsdWVGaWVsZFNlcnZlcj89ICdpZCc7XHJcblxyXG4gICAgZGF0YVNvdXJjZT86IGFueTtcclxuICAgIGJhc2VTZXJ2aWNlPzogQmFzZVNlcnZpY2UgfCBNYXN0ZXJEYXRhU2VydmljZTtcclxuICAgIGRlZmF1bHRGaWx0ZXJzPzogRmlsdGVyW10gfCBGdW5jdGlvbjtcclxuICAgIGNhbGxiYWNrRGF0YUZpbmlzaD86IChldnQ6IEV2ZW50RGF0YSkgPT4gdm9pZDtcclxuICAgIG1vZGlmeUZpbHRlcj86IEZ1bmN0aW9uO1xyXG4gICAgbXVsdGlwbGU/PSBmYWxzZTtcclxuICAgIHNlcGFyYXRvcj89ICcsICc7XHJcbiAgICBzZWFyY2hNdWx0aXBsZT89IHRydWU7XHJcbiAgICBpc1RyZWU/PSBmYWxzZTtcclxuICAgIGZpZWxkVHJlZT86IHN0cmluZztcclxuICAgIHNlbGVjdENoaWxkSXRlbT89IGZhbHNlOyAvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24gbuG6v3UgY2jhu41uIGLhuqNuIGdoaSBjaGFcclxuICAgIHNlbGVjdERlc2NlbmRhbnQ/PSBmYWxzZTsvLyBDw7Mgc2VsZWN0IGLhuqNuIGdoaSBjb24sIGNow6F1IG7hur91IGNo4buNbiBi4bqjbiBnaGkgY2hhXHJcbiAgICB2YWx1ZVBhcmVudFJvb3Q/OiBhbnkgPSBudWxsOyAvLyBHacOhIHRy4buLIHRyxrDhu51uZyBbZmllbGRUcmVlXSBj4bunYSBpdGVtIHRyZWUgcm9vdFxyXG4gICAgZmllbGRQYXJlbnRUcmVlSXRlbT89ICdpZCc7IC8vIFRyxrDhu51uZyB4w6FjIMSR4buLbmggYuG6o24gZ2hpIGzDoCBi4bqjbiBnaGkgY2hhIGPhu6dhIGLhuqNuIGdoaSBjb25cclxuICAgIGdyb3VwQ29kZT86IHN0cmluZztcclxuICAgIHZhbHVlRmllbGQ/PSAnaWQnO1xyXG4gICAgZGlzcGxheUZpZWxkPz0gJ3Rlbic7XHJcbiAgICBzZWFyY2hGaWVsZD86IHN0cmluZ1tdID0gW107XHJcbiAgICBmaWVsZFBsdXM/PSAnJztcclxuICAgIHNvcnRzPzogU29ydFtdID0gW107XHJcbiAgICBzb3J0RmllbGQ/PSAnJztcclxuICAgIHNvcnREaXI/OiAxIHwgLTEgPSAxO1xyXG4gICAgcGx1c1VybD86IHN0cmluZztcclxuXHJcbiAgICBmaWVsZFZhbHVlUGFyZW50Pz0gJ3ZhbHVlJzsgLy8gVHLGsOG7nW5nIHPhu60gZOG7pW5nIMSR4buDIGzhuqV5IGThu68gbGnhu4d1IGzDoG0ga2jDs2EgdOG7qyBi4bqjbmcgY2hhIGPhu6dhIGl0ZW0gZHJvcCBkb3duIMSRxrDhu6NjIGNo4buNblxyXG5cclxuICAgIGZ1bmNHZXRMYWJlbD86IChpdGVtKSA9PiBzdHJpbmc7XHJcbiAgICBmdW5jQ29tcGFyZT86IChpdGVtOiBhbnksIHZhbHVlKSA9PiBib29sZWFuID0gKGl0ZW0sIHZhbHVlKSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT0gdmFsdWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IFByb3BGb3JEcm9wZG93bikge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVBpY2tlckNvbHVtbiBleHRlbmRzIENvbHVtblNjaGVtYUJhc2Uge1xyXG4gICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgZGlzYWJsZWQ/PSBmYWxzZTtcclxuICAgIGlzU2VhcmNoYWJsZT89IHRydWU7XHJcbiAgICBpc0Rpc3BsYXk/PSB0cnVlO1xyXG4gICAgZGF0YVR5cGU/OiBEYXRhVHlwZSB8IHN0cmluZztcclxuICAgIG9wZXJhdG9yPzogT3BlcmF0b3I7XHJcbiAgICB3aWR0aD89ICcnO1xyXG4gICAgbm90SW5GaWVsZHM/PSBmYWxzZTsgLy8gQ8OhYyB0csaw4budbmcgZOG7ryBsaeG7h3UgxJHGsOG7o2MgdOG7lW5nIGjhu6NwIGzhuqFpIGhp4buDbiB0aOG7iyBsw6puIGdyaWQgbcOgIGtow7RuZyBwaOG6o2kgbOG6pXkgdOG7qyB0cm9uZyB0YWJsZSByYS5cclxuXHJcbiAgICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEVudGl0eVBpY2tlckNvbHVtbikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2V0UmVmRGF0YVNjaGVtYSBleHRlbmRzIFByb3BGb3JEcm9wZG93biB7XHJcbiAgICBmaWVsZD86IHN0cmluZztcclxuICAgIGZ1bmNTZXRWYWx1ZVJvdz86IChyb3dJdGVtLCBkYXRhKSA9PiB2b2lkO1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IEdldFJlZkRhdGFTY2hlbWEpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENydWRMaXN0Q29uZmlnIHtcclxuICAgIHRvb2x0aXBWaWV3Pzogc3RyaW5nO1xyXG4gICAgb25WaWV3PzogRnVuY3Rpb247XHJcbiAgICBkaXNhYmxlUm93U2VsZWN0V2hlbkNsaWNrQWN0aW9uPz0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBDcnVkTGlzdENvbmZpZykge1xyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXQpIHtcclxuICAgICAgICAgICAgdGhpc1trZXldID0gaW5pdFtrZXldO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyZWVEYXRhT3B0aW9uIHtcclxuICAgIGRpc3BsYXlGaWVsZCA9ICd0ZW4nO1xyXG4gICAgc2hvcnREaXNwbGF5RmllbGQgPSAndGVuJztcclxuICAgIGV4cGFuZGVkSWNvbiA9ICdwaSBwaS1mb2xkZXItb3Blbic7XHJcbiAgICBjb2xsYXBzZWRJY29uID0gJ3BpIHBpLWZvbGRlcic7XHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0PzogVHJlZURhdGFPcHRpb24pIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlbCB7XHJcbiAgICBzaG93RWRpdEZvcm0/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBoZWFkZXI/OiBzdHJpbmcgPSAnJztcclxuICAgIHBvcHVwU2l6ZT86IFBvcHVwU2l6ZSA9IG5ldyBQb3B1cFNpemUoeyBtYXhpbWl6ZTogdHJ1ZSB9KVxyXG4gICAgZGF0YT86IGFueSA9IHt9O1xyXG4gICAgY29uc3RydWN0b3IoaW5pdD86IERpYWxvZ01vZGVsKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUG9wdXBTaXplIHtcclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG4gICAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gICAgbWF4aW1pemU/PSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBQb3B1cFNpemUpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5XSA9IGluaXRba2V5XTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFdmVudERhdGEge1xyXG4gICAgY3VycmVudE5vZGU6IENvbnRyb2xUcmVlTm9kZTtcclxuICAgIHNvdXJjZU5vZGU/OiBDb250cm9sVHJlZU5vZGU7XHJcbiAgICBzb3VyY2VFdmVudD86IGFueTtcclxuICAgIGV2ZW50VHlwZT86IGFueTtcclxuICAgIGRhdGE/OiBhbnk7XHJcbiAgICBwcml2YXRlIF9jcnVkRm9ybTogQ3J1ZEZvcm1Db21wb25lbnQ7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbml0Pzoge1xyXG4gICAgICAgICAgICBjdXJyZW50Tm9kZTogQ29udHJvbFRyZWVOb2RlLFxyXG4gICAgICAgICAgICBzb3VyY2VOb2RlPzogQ29udHJvbFRyZWVOb2RlLFxyXG4gICAgICAgICAgICBzb3VyY2VFdmVudD86IGFueSxcclxuICAgICAgICAgICAgZXZlbnRUeXBlPzogYW55LFxyXG4gICAgICAgICAgICBkYXRhPzogYW55LFxyXG4gICAgICAgICAgICBjcnVkRm9ybT86IENydWRGb3JtQ29tcG9uZW50XHJcbiAgICAgICAgfVxyXG4gICAgKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRNb2RlbCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLnBhcmVudE1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRQYXRoKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50TW9kZWxQYXRoO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcm9vdE1vZGVsKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucm9vdE5vZGUubW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRyb2woKTogRm9ybVNjaGVtYUJhc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmNvbnRyb2xcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyZW50Q29udHJvbCgpOiBGb3JtU2NoZW1hQmFzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudE5vZGUucGFyZW50Q29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZm9ybUNvbnRyb2xzKCk6IEZvcm1TY2hlbWFCYXNlW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnROb2RlLmZvcm1Db250cm9scztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGF0YVR5cGUge1xyXG4gICAgZGF0ZSA9ICdkYXRlJyxcclxuICAgIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcclxuICAgIGh0bWwgPSAnaHRtbCcsXHJcbiAgICBzdHJpbmcgPSAnc3RyaW5nJyxcclxuICAgIGludCA9ICdpbnQnLFxyXG4gICAgZGVjaW1hbCA9ICdkZWNpbWFsJyxcclxuICAgIGJvb2xlYW4gPSAnYm9vbGVhbicsXHJcbiAgICBlbnVtID0gJ2VudW0nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIENvbnRyb2xUeXBlIHtcclxuICAgIGRyb3Bkb3duID0gJ2Ryb3Bkb3duJyxcclxuICAgIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcclxuICAgIGRhdGUgPSAnZGF0ZScsXHJcbiAgICB0aW1lID0gJ3RpbWUnLFxyXG4gICAgbnVtYmVyID0gJ251bWJlcicsXHJcbiAgICB0ZXh0Ym94ID0gJ3RleHRib3gnLFxyXG4gICAgY2hlY2tib3ggPSAnY2hlY2tib3gnLFxyXG4gICAgc3dpdGNoID0gJ3N3aXRjaCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xyXG4gICAgZXF1YWwgPSAnZXEnLFxyXG4gICAgbm90RXF1YWwgPSAnbmVxJyxcclxuICAgIGdyZWF0ZXIgPSAnZ3QnLFxyXG4gICAgZ3JlYXRlclRoYW5FcXVhbCA9ICdndGUnLFxyXG4gICAgbG93ZXIgPSAnbHQnLFxyXG4gICAgbG93ZXJUaGFuRXF1YWwgPSAnbHRlJyxcclxuXHJcbiAgICBjb250YWluID0gJ2NvbnRhaW5zJyxcclxuICAgIG5vdENvbnRhaW4gPSAnbmNvbnRhaW5zJyxcclxuICAgIHN0YXJ0V2l0aCA9ICdzdGFydHN3aXRoJyxcclxuICAgIG5vdFN0YXJ0V2l0aCA9ICduc3RhcnRzd2l0aCcsXHJcbiAgICBlbmRXaXRoID0gJ2VuZHN3aXRoJyxcclxuICAgIG5vdEVuZFdpdGggPSAnbmVuZHN3aXRoJyxcclxuXHJcbiAgICBpbiA9ICdpbicsXHJcbiAgICBub3RJbiA9ICduaW4nLFxyXG5cclxuICAgIGlzTnVsbCA9ICdpc251bGwnLFxyXG4gICAgaXNOb3ROdWxsID0gJ2lzbm90bnVsbCcsXHJcblxyXG4gICAgaW5Sb2xlID0gJ2hhc1JvbGUnLFxyXG4gICAgbm90SW5Sb2xlID0gJ25vdEhhc1JvbGUnLFxyXG4gICAgaW5DYXRlZ29yeSA9ICdpbkNhdGVnb3J5JyxcclxuICAgIG5vdEluQ2F0ZWdvcnkgPSAnbm90SW5DYXRlZ29yeScsXHJcbiAgICBpblBvc2l0aW9uID0gJ2luUG9zaXRpb24nLFxyXG4gICAgbm90SW5Qb3NpdGlvbiA9ICdub3RJblBvc2l0aW9uJyxcclxuICAgIGluTGlzdFVzZXIgPSAnaW5MaXN0VXNlcicsXHJcbiAgICBub3RJbkxpc3RVc2VyID0gJ25vdEluTGlzdFVzZXInLFxyXG4gICAgaW5MaXN0R3JvdXAgPSAnaW5MaXN0R3JvdXAnLFxyXG4gICAgbm90SW5MaXN0R3JvdXAgPSAnbm90SW5MaXN0R3JvdXAnLFxyXG4gICAgaXNDdXJyZW50VXNlciA9ICdpc0N1cnJlbnRVc2VyJyxcclxuICAgIGlzQ3VycmVudENhbkJvID0gJ2lzQ3VycmVudENhbkJvJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBIZWlnaHRUeXBlIHtcclxuICAgIGRlZmF1bHQgPSAwLFxyXG4gICAgZHluYW1pYyA9IC0xLFxyXG4gICAgY3VzdG9tID0gMVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWxlTWFuYWdlck1vZGUge1xyXG4gICAgc2luZ2xlID0gJ3NpbmdsZScsXHJcbiAgICBtdWx0aXBsZSA9ICdtdWx0aXBsZSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRmlsZVVwbG9hZE1vZGUge1xyXG4gICAgdXNpbmdGaWxlSW5zdGFuY2VJZCA9ICd1c2luZ0ZpbGVJbnN0YW5jZUlkJyxcclxuICAgIHVzaW5nU2VydmljZUZpbGUgPSAndXNpbmdTZXJ2aWNlRmlsZSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRW51bUZpbGVMYXlvdXQge1xyXG4gICAgU0lNUExFID0gJ1NJTVBMRScsXHJcbiAgICBMSVNUID0gJ0xJU1QnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRleHRBbGlnbiB7XHJcbiAgICBMZWZ0ID0gMCxcclxuICAgIENlbnRlciA9IDEsXHJcbiAgICBSaWdodCA9IC0xXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEV4cG9ydEl0ZW1zTW9kZSB7XHJcbiAgICBGcm9tSHRtbCA9IDAsXHJcbiAgICBNYW51YWxHZXREYXRhID0gMSxcclxuICAgIEF1dG9HZXREYXRhID0gMlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHBvcnRBbGxNb2RlIHtcclxuICAgIE1hbnVhbEdldERhdGEgPSAwLFxyXG4gICAgQXV0b0dldERhdGEgPSAxXHJcbn1cclxuIl19
|