UNPKG

@kre-form/ant

Version:

573 lines 44.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from "@angular/core"; import * as _ from "lodash"; export class KreSetFormFieldService { constructor() { } /** * @param {?} field * @return {?} */ getKreFiledFunction(field) { /** @type {?} */ let fieldSource = this.getSourceFields(field); /** @type {?} */ let fields = []; /** @type {?} */ let type = field.type; switch (type) { case "text": fields = this.text(field); break; case "texti18n": fields = this.textI18N(field); break; case "textarea": fields = this.textArea(field); break; case "numbers": fields = this.number(field); break; case "password": fields = this.passWord(field); break; case "radio": fields = this.radio(field); break; case "radiogroup": fields = this.radio(field); break; case "checkbox": fields = this.checkbox(field); break; case "checkboxgroup": fields = this.checkbox(field); break; case "select": fields = this.select(field); break; case "datetime": fields = this.datetime(field); break; case "image": fields = this.image(field); break; case "upload": fields = this.upload(field); break; case "htmlcontent": fields = this.html(field); break; case "lookup": fields = this.lookup(field); break; case "repeat": fields = this.repeat(field); break; case "dimissContract": fields = this.dimissContract(field); break; } fields.push({ key: "templateOptions.pattern", type: "textarea", templateOptions: { label: "正则表达式", rows: 4, }, defaultValue: _.get(field, "templateOptions.pattern"), }); fieldSource = [...fieldSource, ...fields]; return fieldSource; } /** * @private * @param {?} field * @return {?} */ getSourceFields(field) { /** @type {?} */ let config = [ { key: "key", type: "text", templateOptions: { label: "字段编码", }, editor: false, defaultValue: field["key"], }, { key: "templateOptions.label", type: "text", templateOptions: { label: "显示名称", }, editor: false, defaultValue: _.get(field, "templateOptions.label"), }, { key: "type", type: "text", templateOptions: { label: "字段类型", }, editor: false, defaultValue: field["type"], }, { key: "defaultValue", type: "text", templateOptions: { label: "默认值", }, editor: false, defaultValue: field["defaultValue"], }, { key: "templateOptions.tips", type: "text", templateOptions: { label: "提示信息", }, editor: false, defaultValue: _.get(field, "templateOptions.tips"), }, { key: "templateOptions.placeholder", type: "text", templateOptions: { label: "占位符", }, editor: false, defaultValue: _.get(field, "templateOptions.placeholder"), }, { key: "editor", type: "checkbox", templateOptions: { label: "是否可编辑", }, editor: true, defaultValue: _.get(field, "editor"), }, ]; return config; } //1、字符串 /** * @private * @param {?} field * @return {?} */ text(field) { /** @type {?} */ let config = [ { key: "templateOptions.minLength", type: "numbers", templateOptions: { label: "最小长度", }, defaultValue: _.get(field, "templateOptions.minLength"), }, { key: "templateOptions.maxLength", type: "numbers", templateOptions: { label: "最大长度", }, defaultValue: _.get(field, "templateOptions.maxLength"), }, { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //2、多语言 /** * @private * @param {?} field * @return {?} */ textI18N(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //3、多行文本 /** * @private * @param {?} field * @return {?} */ textArea(field) { /** @type {?} */ let config = [ { key: "templateOptions.minLength", type: "numbers", templateOptions: { label: "最小长度", }, defaultValue: _.get(field, "templateOptions.minLength"), }, { key: "templateOptions.maxLength", type: "numbers", templateOptions: { label: "最大长度", }, defaultValue: _.get(field, "templateOptions.maxLength"), }, { key: "templateOptions.rows", type: "numbers", templateOptions: { label: "默认行数", }, defaultValue: _.get(field, "templateOptions.rows"), }, { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //4、数字 /** * @private * @param {?} field * @return {?} */ number(field) { /** @type {?} */ let config = [ { key: "templateOptions.min", type: "numbers", templateOptions: { label: "最小值", }, defaultValue: _.get(field, "templateOptions.min"), }, { key: "templateOptions.max", type: "numbers", templateOptions: { label: "最大值", }, defaultValue: _.get(field, "templateOptions.max"), }, { key: "templateOptions.precision", type: "numbers", templateOptions: { label: "精度", }, defaultValue: _.get(field, "templateOptions.precision"), }, { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //5、密码 /** * @private * @param {?} field * @return {?} */ passWord(field) { /** @type {?} */ let config = [ { key: "templateOptions.minLength", type: "numbers", templateOptions: { label: "最小长度", }, defaultValue: _.get(field, "templateOptions.minLength"), }, { key: "templateOptions.maxLength", type: "numbers", templateOptions: { label: "最大长度", }, defaultValue: _.get(field, "templateOptions.maxLength"), }, { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //6、单选 /** * @private * @param {?} field * @return {?} */ radio(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //6、单选 /** * @private * @param {?} field * @return {?} */ radioGroup(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //7、复选 /** * @private * @param {?} field * @return {?} */ checkbox(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //8、下拉 /** * @private * @param {?} field * @return {?} */ select(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //9、日期 /** * @private * @param {?} field * @return {?} */ datetime(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //10、图片 /** * @private * @param {?} field * @return {?} */ image(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //11、附件 /** * @private * @param {?} field * @return {?} */ upload(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "checkbox", templateOptions: { label: "是否必填", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } //12、弹框 /** * @private * @param {?} field * @return {?} */ lookup(field) { /** @type {?} */ let config = []; return config; } //13、html /** * @private * @param {?} field * @return {?} */ html(field) { /** @type {?} */ let config = []; return config; } //14、html /** * @private * @param {?} field * @return {?} */ repeat(field) { /** @type {?} */ let config = [ { key: "templateOptions.minLength", type: "numbers", templateOptions: { label: "最少几条", }, defaultValue: _.get(field, "templateOptions.minLength"), }, { key: "templateOptions.maxLength", type: "numbers", templateOptions: { label: "最多几条", }, defaultValue: _.get(field, "templateOptions.maxLength"), }, { key: "templateOptions.type", type: "radiogroup", templateOptions: { label: "显示方式", parameterid: "para001", options: [ { label: "块状", value: "default", }, { label: "列表", value: "table", }, ], }, defaultValue: _.get(field, "templateOptions.type"), }, ]; return config; } /** * @private * @param {?} field * @return {?} */ dimissContract(field) { /** @type {?} */ let config = [ { key: "templateOptions.required", type: "dimissContract", templateOptions: { label: "", }, defaultValue: _.get(field, "templateOptions.required"), }, ]; return config; } } KreSetFormFieldService.decorators = [ { type: Injectable } ]; /** @nocollapse */ KreSetFormFieldService.ctorParameters = () => []; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0RmllbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BrcmUtZm9ybS9hbnQvIiwic291cmNlcyI6WyJsaWIvdG9vbHMvc2V0RmllbGQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxnQkFBZSxDQUFDOzs7OztJQUVoQixtQkFBbUIsQ0FBQyxLQUF5Qjs7WUFDdkMsV0FBVyxHQUF5QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQzs7WUFDL0QsTUFBTSxHQUF5QixFQUFFOztZQUNqQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUk7UUFDckIsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE1BQU07Z0JBQ1QsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLE1BQU07WUFDUixLQUFLLFlBQVk7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QUFDO2FBQ3hEO1lBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLDJCQUEyQjtnQkFDaEMsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsZUFBZSxFQUFFO29CQUNmLEtBQUssRUFBRSxNQUFNO2lCQUNkO2dCQUNELFlBQVksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSwyQkFBMkIsQ0FBQzthQUN4RDtZQUNEO2dCQUNFLEdBQUcsRUFBRSxzQkFBc0I7Z0JBQzNCLElBQUksRUFBRSxZQUFZO2dCQUNsQixlQUFlLEVBQUU7b0JBQ2YsS0FBSyxFQUFFLE1BQU07b0JBQ2IsV0FBVyxFQUFFLFNBQVM7b0JBQ3RCLE9BQU8sRUFBRTt3QkFDUDs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxLQUFLLEVBQUUsU0FBUzt5QkFDakI7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLElBQUk7NEJBQ1gsS0FBSyxFQUFFLE9BQU87eUJBQ2Y7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDO2FBQ25EO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7Ozs7SUFFTyxjQUFjLENBQUMsS0FBeUI7O1lBQzFDLE1BQU0sR0FBeUI7WUFDakM7Z0JBQ0UsR0FBRyxFQUFFLDBCQUEwQjtnQkFDL0IsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsZUFBZSxFQUFFO29CQUNmLEtBQUssRUFBRSxFQUFFO2lCQUNWO2dCQUNELFlBQVksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSwwQkFBMEIsQ0FBQzthQUN2RDtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7O1lBamVGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgS3JlVGFibGVGaWVsZENvbmZpZywgS3JlRm9ybUZpZWxkQ29uZmlnIH0gZnJvbSBcIkBrcmUtZm9ybS9jb3JlXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBLcmVTZXRGb3JtRmllbGRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldEtyZUZpbGVkRnVuY3Rpb24oZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBmaWVsZFNvdXJjZTogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSB0aGlzLmdldFNvdXJjZUZpZWxkcyhmaWVsZCk7XG4gICAgbGV0IGZpZWxkczogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXTtcbiAgICBsZXQgdHlwZSA9IGZpZWxkLnR5cGU7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnRleHQoZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJ0ZXh0aTE4blwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnRleHRJMThOKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwidGV4dGFyZWFcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy50ZXh0QXJlYShmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm51bWJlcnNcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5udW1iZXIoZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJwYXNzd29yZFwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnBhc3NXb3JkKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwicmFkaW9cIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5yYWRpbyhmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInJhZGlvZ3JvdXBcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5yYWRpbyhmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImNoZWNrYm94XCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMuY2hlY2tib3goZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJjaGVja2JveGdyb3VwXCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMuY2hlY2tib3goZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5zZWxlY3QoZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJkYXRldGltZVwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLmRhdGV0aW1lKGZpZWxkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiaW1hZ2VcIjpcbiAgICAgICAgZmllbGRzID0gdGhpcy5pbWFnZShmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInVwbG9hZFwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnVwbG9hZChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImh0bWxjb250ZW50XCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMuaHRtbChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImxvb2t1cFwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLmxvb2t1cChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInJlcGVhdFwiOlxuICAgICAgICBmaWVsZHMgPSB0aGlzLnJlcGVhdChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImRpbWlzc0NvbnRyYWN0XCI6XG4gICAgICAgIGZpZWxkcyA9IHRoaXMuZGltaXNzQ29udHJhY3QoZmllbGQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgZmllbGRzLnB1c2goe1xuICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5wYXR0ZXJuXCIsXG4gICAgICB0eXBlOiBcInRleHRhcmVhXCIsXG4gICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgbGFiZWw6IFwi5q2j5YiZ6KGo6L6+5byPXCIsXG4gICAgICAgIHJvd3M6IDQsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucGF0dGVyblwiKSxcbiAgICB9KTtcbiAgICBmaWVsZFNvdXJjZSA9IFsuLi5maWVsZFNvdXJjZSwgLi4uZmllbGRzXTtcbiAgICByZXR1cm4gZmllbGRTb3VyY2U7XG4gIH1cblxuICBwcml2YXRlIGdldFNvdXJjZUZpZWxkcyhmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJrZXlcIixcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuWtl+autee8lueggVwiLFxuICAgICAgICB9LFxuICAgICAgICBlZGl0b3I6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGZpZWxkW1wia2V5XCJdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5sYWJlbFwiLFxuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pi+56S65ZCN56ewXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGVkaXRvcjogZmFsc2UsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLmxhYmVsXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInR5cGVcIixcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuWtl+auteexu+Wei1wiLFxuICAgICAgICB9LFxuICAgICAgICBlZGl0b3I6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGZpZWxkW1widHlwZVwiXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJkZWZhdWx0VmFsdWVcIixcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIum7mOiupOWAvFwiLFxuICAgICAgICB9LFxuICAgICAgICBlZGl0b3I6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGZpZWxkW1wiZGVmYXVsdFZhbHVlXCJdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy50aXBzXCIsXG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmj5DnpLrkv6Hmga9cIixcbiAgICAgICAgfSxcbiAgICAgICAgZWRpdG9yOiBmYWxzZSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMudGlwc1wiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucGxhY2Vob2xkZXJcIixcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuWNoOS9jeesplwiLFxuICAgICAgICB9LFxuICAgICAgICBlZGl0b3I6IGZhbHNlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5wbGFjZWhvbGRlclwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJlZGl0b3JcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblj6/nvJbovpFcIixcbiAgICAgICAgfSxcbiAgICAgICAgZWRpdG9yOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcImVkaXRvclwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzHjgIHlrZfnrKbkuLJcbiAgcHJpdmF0ZSB0ZXh0KGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5taW5MZW5ndGhcIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuacgOWwj+mVv+W6plwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5taW5MZW5ndGhcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLm1heExlbmd0aFwiLFxuICAgICAgICB0eXBlOiBcIm51bWJlcnNcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pyA5aSn6ZW/5bqmXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLm1heExlbmd0aFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblv4XloatcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIiksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8y44CB5aSa6K+t6KiAXG4gIHByaXZhdGUgdGV4dEkxOE4oZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIsXG4gICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5piv5ZCm5b+F5aGrXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIpLFxuICAgICAgfSxcbiAgICBdO1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cbiAgLy8z44CB5aSa6KGM5paH5pysXG4gIHByaXZhdGUgdGV4dEFyZWEoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLm1pbkxlbmd0aFwiLFxuICAgICAgICB0eXBlOiBcIm51bWJlcnNcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pyA5bCP6ZW/5bqmXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLm1pbkxlbmd0aFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMubWF4TGVuZ3RoXCIsXG4gICAgICAgIHR5cGU6IFwibnVtYmVyc1wiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmnIDlpKfplb/luqZcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMubWF4TGVuZ3RoXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yb3dzXCIsXG4gICAgICAgIHR5cGU6IFwibnVtYmVyc1wiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLpu5jorqTooYzmlbBcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucm93c1wiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblv4XloatcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIiksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8044CB5pWw5a2XXG4gIHByaXZhdGUgbnVtYmVyKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5taW5cIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuacgOWwj+WAvFwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5taW5cIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLm1heFwiLFxuICAgICAgICB0eXBlOiBcIm51bWJlcnNcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5pyA5aSn5YC8XCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLm1heFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucHJlY2lzaW9uXCIsXG4gICAgICAgIHR5cGU6IFwibnVtYmVyc1wiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLnsr7luqZcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucHJlY2lzaW9uXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzXjgIHlr4bnoIFcbiAgcHJpdmF0ZSBwYXNzV29yZChmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMubWluTGVuZ3RoXCIsXG4gICAgICAgIHR5cGU6IFwibnVtYmVyc1wiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmnIDlsI/plb/luqZcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMubWluTGVuZ3RoXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5tYXhMZW5ndGhcIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuacgOWkp+mVv+W6plwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5tYXhMZW5ndGhcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIsXG4gICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5piv5ZCm5b+F5aGrXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIpLFxuICAgICAgfSxcbiAgICBdO1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzbjgIHljZXpgIlcbiAgcHJpdmF0ZSByYWRpbyhmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblv4XloatcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIiksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG4gIC8vNuOAgeWNlemAiVxuICBwcml2YXRlIHJhZGlvR3JvdXAoZmllbGQ6IEtyZUZvcm1GaWVsZENvbmZpZykge1xuICAgIGxldCBjb25maWc6IEtyZUZvcm1GaWVsZENvbmZpZ1tdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIsXG4gICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgbGFiZWw6IFwi5piv5ZCm5b+F5aGrXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogXy5nZXQoZmllbGQsIFwidGVtcGxhdGVPcHRpb25zLnJlcXVpcmVkXCIpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuICAvLzfjgIHlpI3pgIlcbiAgcHJpdmF0ZSBjaGVja2JveChmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblv4XloatcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIiksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8444CB5LiL5ouJXG4gIHByaXZhdGUgc2VsZWN0KGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLznjgIHml6XmnJ9cbiAgcHJpdmF0ZSBkYXRldGltZShmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIixcbiAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmmK/lkKblv4XloatcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMucmVxdWlyZWRcIiksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8xMOOAgeWbvueJh1xuICBwcml2YXRlIGltYWdlKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzEx44CB6ZmE5Lu2XG4gIHByaXZhdGUgdXBsb2FkKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYr+WQpuW/heWhq1wiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzEy44CB5by55qGGXG4gIHByaXZhdGUgbG9va3VwKGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vMTPjgIFodG1sXG4gIHByaXZhdGUgaHRtbChmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLzE044CBaHRtbFxuICBwcml2YXRlIHJlcGVhdChmaWVsZDogS3JlRm9ybUZpZWxkQ29uZmlnKSB7XG4gICAgbGV0IGNvbmZpZzogS3JlRm9ybUZpZWxkQ29uZmlnW10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogXCJ0ZW1wbGF0ZU9wdGlvbnMubWluTGVuZ3RoXCIsXG4gICAgICAgIHR5cGU6IFwibnVtYmVyc1wiLFxuICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICBsYWJlbDogXCLmnIDlsJHlh6DmnaFcIixcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMubWluTGVuZ3RoXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5tYXhMZW5ndGhcIixcbiAgICAgICAgdHlwZTogXCJudW1iZXJzXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuacgOWkmuWHoOadoVwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5tYXhMZW5ndGhcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6IFwidGVtcGxhdGVPcHRpb25zLnR5cGVcIixcbiAgICAgICAgdHlwZTogXCJyYWRpb2dyb3VwXCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIuaYvuekuuaWueW8j1wiLFxuICAgICAgICAgIHBhcmFtZXRlcmlkOiBcInBhcmEwMDFcIixcbiAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiBcIuWdl+eKtlwiLFxuICAgICAgICAgICAgICB2YWx1ZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogXCLliJfooahcIixcbiAgICAgICAgICAgICAgdmFsdWU6IFwidGFibGVcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBfLmdldChmaWVsZCwgXCJ0ZW1wbGF0ZU9wdGlvbnMudHlwZVwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBwcml2YXRlIGRpbWlzc0NvbnRyYWN0KGZpZWxkOiBLcmVGb3JtRmllbGRDb25maWcpIHtcbiAgICBsZXQgY29uZmlnOiBLcmVGb3JtRmllbGRDb25maWdbXSA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiLFxuICAgICAgICB0eXBlOiBcImRpbWlzc0NvbnRyYWN0XCIsXG4gICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgIGxhYmVsOiBcIlwiLFxuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IF8uZ2V0KGZpZWxkLCBcInRlbXBsYXRlT3B0aW9ucy5yZXF1aXJlZFwiKSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cbn1cbiJdfQ==