kwikid-forms 0.6.6 → 0.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/bundles/kwikid-forms.umd.js +438 -72
  2. package/bundles/kwikid-forms.umd.js.map +1 -1
  3. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.component.js +40 -4
  4. package/esm2015/lib/builder/builder-form-editor/builder-form-editor.module.js +4 -3
  5. package/esm2015/lib/builder/builder-form-editor/builder.form-editor.constants.js +34 -5
  6. package/esm2015/lib/builder/builder-form-editor/pipes/json-formatter.pipe.js +19 -0
  7. package/esm2015/lib/renderer/config-converter/config-converter.constants.js +39 -1
  8. package/esm2015/lib/renderer/config-converter/config-converter.js +26 -1
  9. package/esm2015/lib/renderer/form-view/definitions/form-view.fields.definition.js +3 -1
  10. package/esm2015/lib/renderer/form-view/form-view.component.js +196 -32
  11. package/esm2015/lib/renderer/form-view/form-view.module.js +15 -5
  12. package/esm2015/lib/renderer/form-view/helpers/form-view.fields.helper.js +34 -2
  13. package/esm2015/lib/renderer/renderer.component.js +2 -2
  14. package/fesm2015/kwikid-forms.js +394 -42
  15. package/fesm2015/kwikid-forms.js.map +1 -1
  16. package/lib/builder/builder-form-editor/builder-form-editor.component.d.ts +4 -0
  17. package/lib/builder/builder-form-editor/builder-form-editor.module.d.ts +6 -5
  18. package/lib/builder/builder-form-editor/builder.form-editor.constants.d.ts +102 -0
  19. package/lib/builder/builder-form-editor/pipes/json-formatter.pipe.d.ts +7 -0
  20. package/lib/renderer/config-converter/config-converter.constants.d.ts +38 -0
  21. package/lib/renderer/form-view/definitions/form-view.fields.definition.d.ts +48 -2
  22. package/lib/renderer/form-view/form-view.component.d.ts +16 -1
  23. package/lib/renderer/form-view/form-view.module.d.ts +2 -1
  24. package/lib/renderer/form-view/helpers/form-view.fields.helper.d.ts +1 -0
  25. package/package.json +4 -3
@@ -5,6 +5,7 @@ export const TABLE_COLUMNS = [
5
5
  "disabled",
6
6
  "validators",
7
7
  "properties",
8
+ "options",
8
9
  "delete"
9
10
  ];
10
11
  export const OPTIONS = {
@@ -30,7 +31,8 @@ export const OPTIONS = {
30
31
  "image",
31
32
  "preview-image",
32
33
  "html",
33
- "file"
34
+ "file",
35
+ "capture"
34
36
  ],
35
37
  disabled: [true, false],
36
38
  properties: {
@@ -72,7 +74,8 @@ export const OPTIONS = {
72
74
  imageType: ["base64", "url"],
73
75
  loadingType: ["auto", "lazy", "eager"]
74
76
  },
75
- file: {}
77
+ file: {},
78
+ capture: {}
76
79
  },
77
80
  validators: {
78
81
  required: [true, false],
@@ -159,7 +162,32 @@ export const FIELD_PROPERTIES_CONFIG = {
159
162
  image: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { altText: "", html: { before: "", after: "" }, imageType: "url", loadingType: "auto", styles: "", class: "" }),
160
163
  "preview-image": Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { altText: "", html: { before: "", after: "" }, imageType: "url", loadingType: "auto", styles: "", class: "" }),
161
164
  html: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
162
- file: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG)
165
+ file: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { accept: "application/pdf", containerStyles: "", label: "drop a file or", link: "click to upload", maxFileSize: 1000000, multiple: true, size: "m", uploadFileToServer: true }),
166
+ capture: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { containerStyles: "", buttonText: "Camera", icon: "tuiIconCameraLarge", showMediaFiles: true, uploadFileToServer: false, cameraConfig: {
167
+ header: {
168
+ title: "Camera",
169
+ isBack: false,
170
+ isExpand: true,
171
+ isClose: true
172
+ },
173
+ footer: {
174
+ isUpload: true,
175
+ isFlip: true
176
+ },
177
+ others: {
178
+ flipHorizontal: true,
179
+ mask: {
180
+ shape: ""
181
+ },
182
+ preview: {
183
+ show: false,
184
+ header: {
185
+ isBack: false,
186
+ isClose: false
187
+ }
188
+ }
189
+ }
190
+ } })
163
191
  };
164
192
  export const FIELD_COMMON_CONFIG = {
165
193
  key: "",
@@ -191,7 +219,8 @@ export const FIELD_CONFIG = {
191
219
  before: "",
192
220
  after: ""
193
221
  } }),
194
- file: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "file", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.file) })
222
+ file: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "file", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.file) }),
223
+ capture: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "capture", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.capture) })
195
224
  };
196
225
  export const NOFIELD_CONFIG = {
197
226
  required: true,
@@ -223,4 +252,4 @@ export const NOFIELD_CONFIG = {
223
252
  },
224
253
  fieldGroups: {}
225
254
  };
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5mb3JtLWVkaXRvci5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXItZm9ybS1lZGl0b3IvYnVpbGRlci5mb3JtLWVkaXRvci5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLEtBQUs7SUFDTCxPQUFPO0lBQ1AsTUFBTTtJQUNOLFVBQVU7SUFDVixZQUFZO0lBQ1osWUFBWTtJQUNaLFFBQVE7Q0FDVCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLElBQUksRUFBRTtRQUNKLE9BQU87UUFDUCxNQUFNO1FBQ04sVUFBVTtRQUNWLFVBQVU7UUFDVixRQUFRO1FBQ1IsTUFBTTtRQUNOLE9BQU87UUFDUCxPQUFPO1FBQ1AsWUFBWTtRQUNaLHNCQUFzQjtRQUN0QixRQUFRO1FBQ1IsUUFBUTtRQUNSLEtBQUs7UUFDTCxRQUFRO1FBQ1IsS0FBSztRQUNMLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLE9BQU87UUFDUCxlQUFlO1FBQ2YsTUFBTTtRQUNOLE1BQU07S0FDUDtJQUNELFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7SUFDdkIsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQztTQUNwQztRQUNELFFBQVEsRUFBRTtZQUNSLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7WUFDL0IsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQztT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Q2pDO0lBQ0QsV0FBVyxFQUFFLEVBQUU7Q0FDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUQUJMRV9DT0xVTU5TID0gW1xuICBcImtleVwiLFxuICBcImxhYmVsXCIsXG4gIFwidHlwZVwiLFxuICBcImRpc2FibGVkXCIsXG4gIFwidmFsaWRhdG9yc1wiLFxuICBcInByb3BlcnRpZXNcIixcbiAgXCJkZWxldGVcIlxuXTtcblxuZXhwb3J0IGNvbnN0IE9QVElPTlMgPSB7XG4gIHR5cGU6IFtcbiAgICBcInRpdGxlXCIsXG4gICAgXCJ0ZXh0XCIsXG4gICAgXCJ0ZXh0YXJlYVwiLFxuICAgIFwiY2hlY2tib3hcIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwiZGF0ZVwiLFxuICAgIFwicGhvbmVcIixcbiAgICBcInJhZGlvXCIsXG4gICAgXCJyYWRpby1saXN0XCIsXG4gICAgXCJkcm9wZG93bi13aXRoLXNlYXJjaFwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzbGlkZXJcIixcbiAgICBcIm90cFwiLFxuICAgIFwiYnV0dG9uXCIsXG4gICAgXCJhcGlcIixcbiAgICBcImFwaS1jYWxsXCIsXG4gICAgXCJhYWRoYWFyLW51bWJlclwiLFxuICAgIFwiaW5wdXQtYWFkaGFhclwiLFxuICAgIFwiaW1hZ2VcIixcbiAgICBcInByZXZpZXctaW1hZ2VcIixcbiAgICBcImh0bWxcIixcbiAgICBcImZpbGVcIlxuICBdLFxuICBkaXNhYmxlZDogW3RydWUsIGZhbHNlXSxcbiAgcHJvcGVydGllczoge1xuICAgIGJ1dHRvbjoge30sXG4gICAgdGV4dDoge1xuICAgICAgY2FzZTogW1wiZGVmYXVsdFwiLCBcInVwcGVyXCIsIFwibG93ZXJcIl1cbiAgICB9LFxuICAgIGNoZWNrYm94OiB7XG4gICAgICBjb250ZW50QWxpZ246IFtcImxlZnRcIiwgXCJyaWdodFwiXSxcbiAgICAgIHNpemU6IFtcIm1cIiwgXCJsXCJdLFxuICAgICAgdmFyaWFudDogW1wiYmFzaWNcIiwgXCJibG9ja1wiLCBcImxhYmVsZWRcIl1cbiAgICB9LFxuICAgIG51bWJlcjoge1xuICAgICAgZGVjaW1hbDogW3RydWUsIGZhbHNlXVxuICAgIH0sXG4gICAgcGhvbmU6IHtcbiAgICAgIHJlbW92ZUNvdW50cnlDb2RlRnJvbVZhbHVlOiBbdHJ1ZSwgZmFsc2VdXG4gICAgfSxcbiAgICByYWRpbzoge1xuICAgICAgb3JpZW50YXRpb246IFtcImhvcml6b250YWxcIiwgXCJ2ZXJ0aWNhbFwiXSxcbiAgICAgIHNpemU6IFtcImxcIiwgXCJtXCJdXG4gICAgfSxcbiAgICBcInJhZGlvLWxpc3RcIjoge1xuICAgICAgb3JpZW50YXRpb246IFtcImhvcml6b250YWxcIiwgXCJ2ZXJ0aWNhbFwiXSxcbiAgICAgIHNpemU6IFtcImxcIiwgXCJtXCJdXG4gICAgfSxcbiAgICBzbGlkZXI6IHtcbiAgICAgIHNpemU6IFtcInNcIiwgXCJtXCIsIFwibFwiXVxuICAgIH0sXG4gICAgb3RwOiB7XG4gICAgICBzaXplOiBbXCJzXCIsIFwibVwiLCBcImxcIl0sXG4gICAgICBtb2RlOiBbXCJzaW5nbGVcIiwgXCJtdWx0aXBsZVwiXVxuICAgIH0sXG4gICAgaW1hZ2U6IHtcbiAgICAgIGltYWdlVHlwZTogW1wiYmFzZTY0XCIsIFwidXJsXCJdLFxuICAgICAgbG9hZGluZ1R5cGU6IFtcImF1dG9cIiwgXCJsYXp5XCIsIFwiZWFnZXJcIl1cbiAgICB9LFxuICAgIFwicHJldmlldy1pbWFnZVwiOiB7XG4gICAgICBpbWFnZVR5cGU6IFtcImJhc2U2NFwiLCBcInVybFwiXSxcbiAgICAgIGxvYWRpbmdUeXBlOiBbXCJhdXRvXCIsIFwibGF6eVwiLCBcImVhZ2VyXCJdXG4gICAgfSxcbiAgICBmaWxlOiB7fVxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgcmVxdWlyZWQ6IFt0cnVlLCBmYWxzZV0sXG4gICAgcGF0dGVybjoge1xuICAgICAga2V5OiBbXG4gICAgICAgIFwiSVNfQUFESEFBUl9OVU1CRVJcIixcbiAgICAgICAgXCJJU19CQU5LX0FDQ09VTlRfTk9cIixcbiAgICAgICAgXCJJU19CQU5LX1NXSUZUX0NPREVcIixcbiAgICAgICAgXCJJU19CSVJUSF9DRVJUSUZJQ0FURV9OT1wiLFxuICAgICAgICBcIklTX0NIRVFVRV9OT1wiLFxuICAgICAgICBcIklTX0NJTlwiLFxuICAgICAgICBcIklTX0NSRURJVF9DQVJEX05PXCIsXG4gICAgICAgIFwiSVNfQ0tZQ19OT1wiLFxuICAgICAgICBcIklTX0RSSVZJTkdfTElDRU5TRVwiLFxuICAgICAgICBcIklTX0dTVElOXCIsXG4gICAgICAgIFwiSVNfSUZTQ19OT1wiLFxuICAgICAgICBcIklTX01JQ1JfQ09ERVwiLFxuICAgICAgICBcIklTX01PQklMRV9OT1wiLFxuICAgICAgICBcIklTX05FRlRfT1JfUlRHU19OT1wiLFxuICAgICAgICBcIklTX1BBTl9OVU1CRVJcIixcbiAgICAgICAgXCJJU19QQVNTUE9SVFwiLFxuICAgICAgICBcIklTX1BIT05FX05PXCIsXG4gICAgICAgIFwiSVNfUElOQ09ERVwiLFxuICAgICAgICBcIklTX1BVUkNIQVNFX09SREVSX05PXCIsXG4gICAgICAgIFwiSVNfUkFUSU9OX0NBUkRfTk9cIixcbiAgICAgICAgXCJJU19TRVJWSUNFX1RBWF9OT1wiLFxuICAgICAgICBcIklTX1NPQ0lBTF9TRUNVUklUWV9OT1wiLFxuICAgICAgICBcIklTX1VQSV9UUkFOU0FDVElPTl9SRUZFUkVOQ0VfTk9cIixcbiAgICAgICAgXCJJU19WQVRfVElOX05PXCIsXG4gICAgICAgIFwiSVNfVkVISUNMRV9SRUdJU1RSQVRJT05fTk9cIixcbiAgICAgICAgXCJJU19WT1RFUl9JRFwiLFxuICAgICAgICBcIklTX0FMUEhBXCIsXG4gICAgICAgIFwiSVNfQUxQSEFOVU1FUklDXCIsXG4gICAgICAgIFwiSVNfQk9PTEVBTlwiLFxuICAgICAgICBcIklTX0VNQUlMXCIsXG4gICAgICAgIFwiSVNfRU1QVFlcIixcbiAgICAgICAgXCJJU19GQUxTRVwiLFxuICAgICAgICBcIklTX0hUTUxcIixcbiAgICAgICAgXCJJU19JTlRFR0VSXCIsXG4gICAgICAgIFwiSVNfSlNPTlwiLFxuICAgICAgICBcIklTX0xPV0VSQ0FTRVwiLFxuICAgICAgICBcIklTX05PVF9FTVBUWVwiLFxuICAgICAgICBcIklTX05VTUJFUlwiLFxuICAgICAgICBcIklTX1RSVUVcIixcbiAgICAgICAgXCJJU19VUFBFUkNBU0VcIixcbiAgICAgICAgXCJDVVNUT01cIlxuICAgICAgXVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX1ZBTElEQVRPUlNfQ09ORklHID0ge1xuICByZXF1aXJlZDogZmFsc2UsXG4gIG1pbkxlbmd0aDogMCxcbiAgbWF4TGVuZ3RoOiAwLFxuICBwYXR0ZXJuOiB7XG4gICAga2V5OiBcIkNVU1RPTVwiLFxuICAgIHBhdHRlcm46IFwiXCJcbiAgfSxcbiAgbWluOiAwLFxuICBtYXg6IDBcbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcgPSB7XG4gIHJlYWRPbmx5OiBmYWxzZSxcbiAgcGxhY2Vob2xkZXI6IFwiXCJcbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9QUk9QRVJUSUVTX0NPTkZJRyA9IHtcbiAgYnV0dG9uOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIHRleHQ6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgY2FzZTogXCJkZWZhdWx0XCJcbiAgfSxcbiAgdGV4dGFyZWE6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgY2hlY2tib3g6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgY29udGVudEFsaWduOiBcInJpZ2h0XCIsXG4gICAgc2l6ZTogXCJsXCIsXG4gICAgdmFyaWFudDogXCJsYWJlbGVkXCJcbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIGRlY2ltYWw6IGZhbHNlLFxuICAgIG1pbjogLUluZmluaXR5LFxuICAgIG1heDogSW5maW5pdHksXG4gICAgcG9zdGZpeDogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgcHJlY2lzaW9uOiAwXG4gIH0sXG4gIGRhdGU6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgbWluOiB7IG1vbnRoOiAwLCBkYXk6IDAsIHllYXI6IDAgfSxcbiAgICBtYXg6IHsgbW9udGg6IDAsIGRheTogMCwgeWVhcjogMCB9LFxuICAgIG1pbkNhbGN1bGF0ZWQ6IHsgbW9udGg6IDAsIGRheTogMCwgeWVhcjogMCB9LFxuICAgIG1heENhbGN1bGF0ZWQ6IHsgbW9udGg6IDAsIGRheTogMCwgeWVhcjogMCB9XG4gIH0sXG4gIHBob25lOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIGNvdW50cnlDb2RlOiBcIis5MVwiLFxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGU6IFwiXCIsXG4gICAgcmVtb3ZlQ291bnRyeUNvZGVGcm9tVmFsdWU6IHRydWVcbiAgfSxcbiAgcmFkaW86IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgb3JpZW50YXRpb246IFwidmVydGljYWxcIixcbiAgICBzaXplOiBcImxcIlxuICB9LFxuICBcInJhZGlvLWxpc3RcIjoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBvcmllbnRhdGlvbjogXCJ2ZXJ0aWNhbFwiLFxuICAgIHNpemU6IFwibFwiXG4gIH0sXG4gIHNlbGVjdDoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJR1xuICB9LFxuICBzbGlkZXI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgbWluOiAtSW5maW5pdHksXG4gICAgbWF4OiBJbmZpbml0eSxcbiAgICBxdWFudHVtOiAwLFxuICAgIHNpemU6IFwibVwiLFxuICAgIHN0ZXBzOiAxXG4gIH0sXG4gIG90cDoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBtYXNrOiBcIlwiLFxuICAgIHNpemU6IFwibVwiLFxuICAgIG1vZGU6IFwibXVsdGlwbGVcIixcbiAgICBvdHBMZW5ndGg6IDZcbiAgfSxcbiAgYXBpOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIFwiYXBpLWNhbGxcIjoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJR1xuICB9LFxuICBcImFhZGhhYXItbnVtYmVyXCI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgXCJpbnB1dC1hYWRoYWFyXCI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgaW1hZ2U6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgYWx0VGV4dDogXCJcIixcbiAgICBodG1sOiB7IGJlZm9yZTogXCJcIiwgYWZ0ZXI6IFwiXCIgfSxcbiAgICBpbWFnZVR5cGU6IFwidXJsXCIsXG4gICAgbG9hZGluZ1R5cGU6IFwiYXV0b1wiLFxuICAgIHN0eWxlczogXCJcIixcbiAgICBjbGFzczogXCJcIlxuICB9LFxuICBcInByZXZpZXctaW1hZ2VcIjoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBhbHRUZXh0OiBcIlwiLFxuICAgIGh0bWw6IHsgYmVmb3JlOiBcIlwiLCBhZnRlcjogXCJcIiB9LFxuICAgIGltYWdlVHlwZTogXCJ1cmxcIixcbiAgICBsb2FkaW5nVHlwZTogXCJhdXRvXCIsXG4gICAgc3R5bGVzOiBcIlwiLFxuICAgIGNsYXNzOiBcIlwiXG4gIH0sXG4gIGh0bWw6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgZmlsZToge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJR1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgRklFTERfQ09NTU9OX0NPTkZJRyA9IHtcbiAga2V5OiBcIlwiLFxuICBsYWJlbDogXCJcIixcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICB2YWxpZGF0b3JzOiB7XG4gICAgLi4uRklFTERfVkFMSURBVE9SU19DT05GSUdcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX0NPTkZJRyA9IHtcbiAgdGl0bGU6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwidGl0bGVcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy50aXRsZVxuICAgIH1cbiAgfSxcbiAgdGV4dDoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcudGV4dFxuICAgIH1cbiAgfSxcbiAgYnV0dG9uOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHLmJ1dHRvblxuICAgIH1cbiAgfSxcbiAgdGV4dGFyZWE6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwidGV4dGFyZWFcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy50ZXh0YXJlYVxuICAgIH1cbiAgfSxcbiAgY2hlY2tib3g6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5jaGVja2JveFxuICAgIH1cbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHLm51bWJlclxuICAgIH1cbiAgfSxcbiAgZGF0ZToge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJkYXRlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcuZGF0ZVxuICAgIH1cbiAgfSxcbiAgcGhvbmU6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwicGhvbmVcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5waG9uZVxuICAgIH1cbiAgfSxcbiAgcmFkaW86IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwicmFkaW9cIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcInJhZGlvXCJdXG4gICAgfSxcbiAgICBvcHRpb25zOiBbXVxuICB9LFxuICBcInJhZGlvLWxpc3RcIjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJyYWRpby1saXN0XCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJyYWRpby1saXN0XCJdXG4gICAgfSxcbiAgICBvcHRpb25zOiBbXVxuICB9LFxuICBzZWxlY3Q6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJzZWxlY3RcIl1cbiAgICB9LFxuICAgIG9wdGlvbnM6IFtdXG4gIH0sXG4gIHNsaWRlcjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJzbGlkZXJcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5zbGlkZXJcbiAgICB9XG4gIH0sXG4gIG90cDoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJvdHBcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5vdHBcbiAgICB9XG4gIH0sXG4gIGFwaToge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJhcGlcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcImFwaVwiXVxuICAgIH1cbiAgfSxcbiAgXCJhcGktY2FsbFwiOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImFwaS1jYWxsXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJhcGktY2FsbFwiXVxuICAgIH1cbiAgfSxcbiAgXCJhYWRoYWFyLW51bWJlclwiOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImFhZGhhYXItbnVtYmVyXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJhYWRoYWFyLW51bWJlclwiXVxuICAgIH1cbiAgfSxcbiAgXCJpbnB1dC1hYWRoYWFyXCI6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwiaW5wdXQtYWFkaGFhclwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHW1wiaW5wdXQtYWFkaGFhclwiXVxuICAgIH1cbiAgfSxcbiAgaW1hZ2U6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwiaW1hZ2VcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcImltYWdlXCJdXG4gICAgfVxuICB9LFxuICBcInByZXZpZXctaW1hZ2VcIjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJwcmV2aWV3LWltYWdlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJwcmV2aWV3LWltYWdlXCJdXG4gICAgfVxuICB9LFxuICBodG1sOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImh0bWxcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5odG1sXG4gICAgfSxcbiAgICBodG1sOiB7XG4gICAgICBiZWZvcmU6IFwiXCIsXG4gICAgICBhZnRlcjogXCJcIlxuICAgIH1cbiAgfSxcbiAgZmlsZToge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJmaWxlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcuZmlsZVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IE5PRklFTERfQ09ORklHID0ge1xuICByZXF1aXJlZDogdHJ1ZSxcbiAgdHlwZTogXCJGT1JNXCIsXG4gIHByb3BzOiB7XG4gICAgdXJsOiBcIlwiLFxuICAgIHRpdGxlOiBcIlwiXG4gIH0sXG4gIGhpZGRlbjogZmFsc2UsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgZGVwZW5kZW50T246IFtdLFxuICB0aXRsZTogXCJcIixcbiAgcHJvcGVydGllczoge1xuICAgIGhlYWRlcjoge1xuICAgICAgbG9nbzogeyBzcmM6IFwiXCIsIGFsdDogXCJMb2dvXCIsIGhpZGRlbjogZmFsc2UgfSxcbiAgICAgIGJhY2tCdXR0b246IHsgbW9kZTogXCJUQUJCRURcIiwgYnlwYXNzQ29uZmlybWF0aW9uOiBmYWxzZSwgaGlkZGVuOiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyBoaWRkZW46IGZhbHNlLCBsYWJlbDogXCJcIiB9LFxuICAgICAgc3RlcHM6IHsgaGlkZGVuOiBmYWxzZSB9XG4gICAgfSxcbiAgICBmb290ZXI6IHtcbiAgICAgIHZpZXdGb3Jtc0J1dHRvbjoge1xuICAgICAgICBieXBhc3NDb25maXJtYXRpb246IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBsYWJlbDogXCJCYWNrXCJcbiAgICAgIH0sXG4gICAgICBzYXZlQnV0dG9uOiB7IGhpZGRlbjogZmFsc2UsIGxhYmVsOiBcIlNhdmVcIiB9XG4gICAgfSxcbiAgICBpc1Vuc2F2ZWREYXRhQWxlcnRFbmFibGVkOiBmYWxzZVxuICB9LFxuICBmaWVsZEdyb3Vwczoge31cbn07XG4iXX0=
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5mb3JtLWVkaXRvci5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXItZm9ybS1lZGl0b3IvYnVpbGRlci5mb3JtLWVkaXRvci5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLEtBQUs7SUFDTCxPQUFPO0lBQ1AsTUFBTTtJQUNOLFVBQVU7SUFDVixZQUFZO0lBQ1osWUFBWTtJQUNaLFNBQVM7SUFDVCxRQUFRO0NBQ1QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNyQixJQUFJLEVBQUU7UUFDSixPQUFPO1FBQ1AsTUFBTTtRQUNOLFVBQVU7UUFDVixVQUFVO1FBQ1YsUUFBUTtRQUNSLE1BQU07UUFDTixPQUFPO1FBQ1AsT0FBTztRQUNQLFlBQVk7UUFDWixzQkFBc0I7UUFDdEIsUUFBUTtRQUNSLFFBQVE7UUFDUixLQUFLO1FBQ0wsUUFBUTtRQUNSLEtBQUs7UUFDTCxVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixPQUFPO1FBQ1AsZUFBZTtRQUNmLE1BQU07UUFDTixNQUFNO1FBQ04sU0FBUztLQUNWO0lBQ0QsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztJQUN2QixVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO1NBQ3BDO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztZQUMvQixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxP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ICBcImtleVwiLFxuICBcImxhYmVsXCIsXG4gIFwidHlwZVwiLFxuICBcImRpc2FibGVkXCIsXG4gIFwidmFsaWRhdG9yc1wiLFxuICBcInByb3BlcnRpZXNcIixcbiAgXCJvcHRpb25zXCIsXG4gIFwiZGVsZXRlXCJcbl07XG5cbmV4cG9ydCBjb25zdCBPUFRJT05TID0ge1xuICB0eXBlOiBbXG4gICAgXCJ0aXRsZVwiLFxuICAgIFwidGV4dFwiLFxuICAgIFwidGV4dGFyZWFcIixcbiAgICBcImNoZWNrYm94XCIsXG4gICAgXCJudW1iZXJcIixcbiAgICBcImRhdGVcIixcbiAgICBcInBob25lXCIsXG4gICAgXCJyYWRpb1wiLFxuICAgIFwicmFkaW8tbGlzdFwiLFxuICAgIFwiZHJvcGRvd24td2l0aC1zZWFyY2hcIixcbiAgICBcInNlbGVjdFwiLFxuICAgIFwic2xpZGVyXCIsXG4gICAgXCJvdHBcIixcbiAgICBcImJ1dHRvblwiLFxuICAgIFwiYXBpXCIsXG4gICAgXCJhcGktY2FsbFwiLFxuICAgIFwiYWFkaGFhci1udW1iZXJcIixcbiAgICBcImlucHV0LWFhZGhhYXJcIixcbiAgICBcImltYWdlXCIsXG4gICAgXCJwcmV2aWV3LWltYWdlXCIsXG4gICAgXCJodG1sXCIsXG4gICAgXCJmaWxlXCIsXG4gICAgXCJjYXB0dXJlXCJcbiAgXSxcbiAgZGlzYWJsZWQ6IFt0cnVlLCBmYWxzZV0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBidXR0b246IHt9LFxuICAgIHRleHQ6IHtcbiAgICAgIGNhc2U6IFtcImRlZmF1bHRcIiwgXCJ1cHBlclwiLCBcImxvd2VyXCJdXG4gICAgfSxcbiAgICBjaGVja2JveDoge1xuICAgICAgY29udGVudEFsaWduOiBbXCJsZWZ0XCIsIFwicmlnaHRcIl0sXG4gICAgICBzaXplOiBbXCJtXCIsIFwibFwiXSxcbiAgICAgIHZhcmlhbnQ6IFtcImJhc2ljXCIsIFwiYmxvY2tcIiwgXCJsYWJlbGVkXCJdXG4gICAgfSxcbiAgICBudW1iZXI6IHtcbiAgICAgIGRlY2ltYWw6IFt0cnVlLCBmYWxzZV1cbiAgICB9LFxuICAgIHBob25lOiB7XG4gICAgICByZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZTogW3RydWUsIGZhbHNlXVxuICAgIH0sXG4gICAgcmFkaW86IHtcbiAgICAgIG9yaWVudGF0aW9uOiBbXCJob3Jpem9udGFsXCIsIFwidmVydGljYWxcIl0sXG4gICAgICBzaXplOiBbXCJsXCIsIFwibVwiXVxuICAgIH0sXG4gICAgXCJyYWRpby1saXN0XCI6IHtcbiAgICAgIG9yaWVudGF0aW9uOiBbXCJob3Jpem9udGFsXCIsIFwidmVydGljYWxcIl0sXG4gICAgICBzaXplOiBbXCJsXCIsIFwibVwiXVxuICAgIH0sXG4gICAgc2xpZGVyOiB7XG4gICAgICBzaXplOiBbXCJzXCIsIFwibVwiLCBcImxcIl1cbiAgICB9LFxuICAgIG90cDoge1xuICAgICAgc2l6ZTogW1wic1wiLCBcIm1cIiwgXCJsXCJdLFxuICAgICAgbW9kZTogW1wic2luZ2xlXCIsIFwibXVsdGlwbGVcIl1cbiAgICB9LFxuICAgIGltYWdlOiB7XG4gICAgICBpbWFnZVR5cGU6IFtcImJhc2U2NFwiLCBcInVybFwiXSxcbiAgICAgIGxvYWRpbmdUeXBlOiBbXCJhdXRvXCIsIFwibGF6eVwiLCBcImVhZ2VyXCJdXG4gICAgfSxcbiAgICBcInByZXZpZXctaW1hZ2VcIjoge1xuICAgICAgaW1hZ2VUeXBlOiBbXCJiYXNlNjRcIiwgXCJ1cmxcIl0sXG4gICAgICBsb2FkaW5nVHlwZTogW1wiYXV0b1wiLCBcImxhenlcIiwgXCJlYWdlclwiXVxuICAgIH0sXG4gICAgZmlsZToge30sXG4gICAgY2FwdHVyZToge31cbiAgfSxcbiAgdmFsaWRhdG9yczoge1xuICAgIHJlcXVpcmVkOiBbdHJ1ZSwgZmFsc2VdLFxuICAgIHBhdHRlcm46IHtcbiAgICAgIGtleTogW1xuICAgICAgICBcIklTX0FBREhBQVJfTlVNQkVSXCIsXG4gICAgICAgIFwiSVNfQkFOS19BQ0NPVU5UX05PXCIsXG4gICAgICAgIFwiSVNfQkFOS19TV0lGVF9DT0RFXCIsXG4gICAgICAgIFwiSVNfQklSVEhfQ0VSVElGSUNBVEVfTk9cIixcbiAgICAgICAgXCJJU19DSEVRVUVfTk9cIixcbiAgICAgICAgXCJJU19DSU5cIixcbiAgICAgICAgXCJJU19DUkVESVRfQ0FSRF9OT1wiLFxuICAgICAgICBcIklTX0NLWUNfTk9cIixcbiAgICAgICAgXCJJU19EUklWSU5HX0xJQ0VOU0VcIixcbiAgICAgICAgXCJJU19HU1RJTlwiLFxuICAgICAgICBcIklTX0lGU0NfTk9cIixcbiAgICAgICAgXCJJU19NSUNSX0NPREVcIixcbiAgICAgICAgXCJJU19NT0JJTEVfTk9cIixcbiAgICAgICAgXCJJU19ORUZUX09SX1JUR1NfTk9cIixcbiAgICAgICAgXCJJU19QQU5fTlVNQkVSXCIsXG4gICAgICAgIFwiSVNfUEFTU1BPUlRcIixcbiAgICAgICAgXCJJU19QSE9ORV9OT1wiLFxuICAgICAgICBcIklTX1BJTkNPREVcIixcbiAgICAgICAgXCJJU19QVVJDSEFTRV9PUkRFUl9OT1wiLFxuICAgICAgICBcIklTX1JBVElPTl9DQVJEX05PXCIsXG4gICAgICAgIFwiSVNfU0VSVklDRV9UQVhfTk9cIixcbiAgICAgICAgXCJJU19TT0NJQUxfU0VDVVJJVFlfTk9cIixcbiAgICAgICAgXCJJU19VUElfVFJBTlNBQ1RJT05fUkVGRVJFTkNFX05PXCIsXG4gICAgICAgIFwiSVNfVkFUX1RJTl9OT1wiLFxuICAgICAgICBcIklTX1ZFSElDTEVfUkVHSVNUUkFUSU9OX05PXCIsXG4gICAgICAgIFwiSVNfVk9URVJfSURcIixcbiAgICAgICAgXCJJU19BTFBIQVwiLFxuICAgICAgICBcIklTX0FMUEhBTlVNRVJJQ1wiLFxuICAgICAgICBcIklTX0JPT0xFQU5cIixcbiAgICAgICAgXCJJU19FTUFJTFwiLFxuICAgICAgICBcIklTX0VNUFRZXCIsXG4gICAgICAgIFwiSVNfRkFMU0VcIixcbiAgICAgICAgXCJJU19IVE1MXCIsXG4gICAgICAgIFwiSVNfSU5URUdFUlwiLFxuICAgICAgICBcIklTX0pTT05cIixcbiAgICAgICAgXCJJU19MT1dFUkNBU0VcIixcbiAgICAgICAgXCJJU19OT1RfRU1QVFlcIixcbiAgICAgICAgXCJJU19OVU1CRVJcIixcbiAgICAgICAgXCJJU19UUlVFXCIsXG4gICAgICAgIFwiSVNfVVBQRVJDQVNFXCIsXG4gICAgICAgIFwiQ1VTVE9NXCJcbiAgICAgIF1cbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9WQUxJREFUT1JTX0NPTkZJRyA9IHtcbiAgcmVxdWlyZWQ6IGZhbHNlLFxuICBtaW5MZW5ndGg6IDAsXG4gIG1heExlbmd0aDogMCxcbiAgcGF0dGVybjoge1xuICAgIGtleTogXCJDVVNUT01cIixcbiAgICBwYXR0ZXJuOiBcIlwiXG4gIH0sXG4gIG1pbjogMCxcbiAgbWF4OiAwXG59O1xuXG5leHBvcnQgY29uc3QgRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHID0ge1xuICByZWFkT25seTogZmFsc2UsXG4gIHBsYWNlaG9sZGVyOiBcIlwiXG59O1xuXG5leHBvcnQgY29uc3QgRklFTERfUFJPUEVSVElFU19DT05GSUcgPSB7XG4gIGJ1dHRvbjoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJR1xuICB9LFxuICB0aXRsZToge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJR1xuICB9LFxuICB0ZXh0OiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIGNhc2U6IFwiZGVmYXVsdFwiXG4gIH0sXG4gIHRleHRhcmVhOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIGNoZWNrYm94OiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIGNvbnRlbnRBbGlnbjogXCJyaWdodFwiLFxuICAgIHNpemU6IFwibFwiLFxuICAgIHZhcmlhbnQ6IFwibGFiZWxlZFwiXG4gIH0sXG4gIG51bWJlcjoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBkZWNpbWFsOiBmYWxzZSxcbiAgICBtaW46IC1JbmZpbml0eSxcbiAgICBtYXg6IEluZmluaXR5LFxuICAgIHBvc3RmaXg6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiLFxuICAgIHByZWNpc2lvbjogMFxuICB9LFxuICBkYXRlOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIG1pbjogeyBtb250aDogMCwgZGF5OiAwLCB5ZWFyOiAwIH0sXG4gICAgbWF4OiB7IG1vbnRoOiAwLCBkYXk6IDAsIHllYXI6IDAgfSxcbiAgICBtaW5DYWxjdWxhdGVkOiB7IG1vbnRoOiAwLCBkYXk6IDAsIHllYXI6IDAgfSxcbiAgICBtYXhDYWxjdWxhdGVkOiB7IG1vbnRoOiAwLCBkYXk6IDAsIHllYXI6IDAgfVxuICB9LFxuICBwaG9uZToge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBjb3VudHJ5Q29kZTogXCIrOTFcIixcbiAgICBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlOiBcIlwiLFxuICAgIHJlbW92ZUNvdW50cnlDb2RlRnJvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIHJhZGlvOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIG9yaWVudGF0aW9uOiBcInZlcnRpY2FsXCIsXG4gICAgc2l6ZTogXCJsXCJcbiAgfSxcbiAgXCJyYWRpby1saXN0XCI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgb3JpZW50YXRpb246IFwidmVydGljYWxcIixcbiAgICBzaXplOiBcImxcIlxuICB9LFxuICBzZWxlY3Q6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgc2xpZGVyOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIG1pbjogLUluZmluaXR5LFxuICAgIG1heDogSW5maW5pdHksXG4gICAgcXVhbnR1bTogMCxcbiAgICBzaXplOiBcIm1cIixcbiAgICBzdGVwczogMVxuICB9LFxuICBvdHA6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgbWFzazogXCJcIixcbiAgICBzaXplOiBcIm1cIixcbiAgICBtb2RlOiBcIm11bHRpcGxlXCIsXG4gICAgb3RwTGVuZ3RoOiA2XG4gIH0sXG4gIGFwaToge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJR1xuICB9LFxuICBcImFwaS1jYWxsXCI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgXCJhYWRoYWFyLW51bWJlclwiOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIFwiaW5wdXQtYWFkaGFhclwiOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIGltYWdlOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIGFsdFRleHQ6IFwiXCIsXG4gICAgaHRtbDogeyBiZWZvcmU6IFwiXCIsIGFmdGVyOiBcIlwiIH0sXG4gICAgaW1hZ2VUeXBlOiBcInVybFwiLFxuICAgIGxvYWRpbmdUeXBlOiBcImF1dG9cIixcbiAgICBzdHlsZXM6IFwiXCIsXG4gICAgY2xhc3M6IFwiXCJcbiAgfSxcbiAgXCJwcmV2aWV3LWltYWdlXCI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgYWx0VGV4dDogXCJcIixcbiAgICBodG1sOiB7IGJlZm9yZTogXCJcIiwgYWZ0ZXI6IFwiXCIgfSxcbiAgICBpbWFnZVR5cGU6IFwidXJsXCIsXG4gICAgbG9hZGluZ1R5cGU6IFwiYXV0b1wiLFxuICAgIHN0eWxlczogXCJcIixcbiAgICBjbGFzczogXCJcIlxuICB9LFxuICBodG1sOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIGZpbGU6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgYWNjZXB0OiBcImFwcGxpY2F0aW9uL3BkZlwiLFxuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBsYWJlbDogXCJkcm9wIGEgZmlsZSBvclwiLFxuICAgIGxpbms6IFwiY2xpY2sgdG8gdXBsb2FkXCIsXG4gICAgbWF4RmlsZVNpemU6IDEwMDAwMDAsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgc2l6ZTogXCJtXCIsXG4gICAgdXBsb2FkRmlsZVRvU2VydmVyOiB0cnVlXG4gIH0sXG4gIGNhcHR1cmU6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIGJ1dHRvblRleHQ6IFwiQ2FtZXJhXCIsXG4gICAgaWNvbjogXCJ0dWlJY29uQ2FtZXJhTGFyZ2VcIixcbiAgICBzaG93TWVkaWFGaWxlczogdHJ1ZSxcbiAgICB1cGxvYWRGaWxlVG9TZXJ2ZXI6IGZhbHNlLFxuICAgIGNhbWVyYUNvbmZpZzoge1xuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIHRpdGxlOiBcIkNhbWVyYVwiLFxuICAgICAgICBpc0JhY2s6IGZhbHNlLFxuICAgICAgICBpc0V4cGFuZDogdHJ1ZSxcbiAgICAgICAgaXNDbG9zZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICBpc1VwbG9hZDogdHJ1ZSxcbiAgICAgICAgaXNGbGlwOiB0cnVlXG4gICAgICB9LFxuICAgICAgb3RoZXJzOiB7XG4gICAgICAgIGZsaXBIb3Jpem9udGFsOiB0cnVlLFxuICAgICAgICBtYXNrOiB7XG4gICAgICAgICAgc2hhcGU6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgcHJldmlldzoge1xuICAgICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICAgaXNCYWNrOiBmYWxzZSxcbiAgICAgICAgICAgIGlzQ2xvc2U6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgRklFTERfQ09NTU9OX0NPTkZJRyA9IHtcbiAga2V5OiBcIlwiLFxuICBsYWJlbDogXCJcIixcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICB2YWxpZGF0b3JzOiB7XG4gICAgLi4uRklFTERfVkFMSURBVE9SU19DT05GSUdcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX0NPTkZJRyA9IHtcbiAgdGl0bGU6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwidGl0bGVcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy50aXRsZVxuICAgIH1cbiAgfSxcbiAgdGV4dDoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcudGV4dFxuICAgIH1cbiAgfSxcbiAgYnV0dG9uOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHLmJ1dHRvblxuICAgIH1cbiAgfSxcbiAgdGV4dGFyZWE6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwidGV4dGFyZWFcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy50ZXh0YXJlYVxuICAgIH1cbiAgfSxcbiAgY2hlY2tib3g6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5jaGVja2JveFxuICAgIH1cbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHLm51bWJlclxuICAgIH1cbiAgfSxcbiAgZGF0ZToge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJkYXRlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcuZGF0ZVxuICAgIH1cbiAgfSxcbiAgcGhvbmU6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwicGhvbmVcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5waG9uZVxuICAgIH1cbiAgfSxcbiAgcmFkaW86IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwicmFkaW9cIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcInJhZGlvXCJdXG4gICAgfSxcbiAgICBvcHRpb25zOiBbXVxuICB9LFxuICBcInJhZGlvLWxpc3RcIjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJyYWRpby1saXN0XCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJyYWRpby1saXN0XCJdXG4gICAgfSxcbiAgICBvcHRpb25zOiBbXVxuICB9LFxuICBzZWxlY3Q6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJzZWxlY3RcIl1cbiAgICB9LFxuICAgIG9wdGlvbnM6IFtdXG4gIH0sXG4gIHNsaWRlcjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJzbGlkZXJcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5zbGlkZXJcbiAgICB9XG4gIH0sXG4gIG90cDoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJvdHBcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5vdHBcbiAgICB9XG4gIH0sXG4gIGFwaToge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJhcGlcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcImFwaVwiXVxuICAgIH1cbiAgfSxcbiAgXCJhcGktY2FsbFwiOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImFwaS1jYWxsXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJhcGktY2FsbFwiXVxuICAgIH1cbiAgfSxcbiAgXCJhYWRoYWFyLW51bWJlclwiOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImFhZGhhYXItbnVtYmVyXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJhYWRoYWFyLW51bWJlclwiXVxuICAgIH1cbiAgfSxcbiAgXCJpbnB1dC1hYWRoYWFyXCI6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwiaW5wdXQtYWFkaGFhclwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHW1wiaW5wdXQtYWFkaGFhclwiXVxuICAgIH1cbiAgfSxcbiAgaW1hZ2U6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwiaW1hZ2VcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcImltYWdlXCJdXG4gICAgfVxuICB9LFxuICBcInByZXZpZXctaW1hZ2VcIjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJwcmV2aWV3LWltYWdlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUdbXCJwcmV2aWV3LWltYWdlXCJdXG4gICAgfVxuICB9LFxuICBodG1sOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImh0bWxcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5odG1sXG4gICAgfSxcbiAgICBodG1sOiB7XG4gICAgICBiZWZvcmU6IFwiXCIsXG4gICAgICBhZnRlcjogXCJcIlxuICAgIH1cbiAgfSxcbiAgZmlsZToge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJmaWxlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcuZmlsZVxuICAgIH1cbiAgfSxcbiAgY2FwdHVyZToge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJjYXB0dXJlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcuY2FwdHVyZVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IE5PRklFTERfQ09ORklHID0ge1xuICByZXF1aXJlZDogdHJ1ZSxcbiAgdHlwZTogXCJGT1JNXCIsXG4gIHByb3BzOiB7XG4gICAgdXJsOiBcIlwiLFxuICAgIHRpdGxlOiBcIlwiXG4gIH0sXG4gIGhpZGRlbjogZmFsc2UsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgZGVwZW5kZW50T246IFtdLFxuICB0aXRsZTogXCJcIixcbiAgcHJvcGVydGllczoge1xuICAgIGhlYWRlcjoge1xuICAgICAgbG9nbzogeyBzcmM6IFwiXCIsIGFsdDogXCJMb2dvXCIsIGhpZGRlbjogZmFsc2UgfSxcbiAgICAgIGJhY2tCdXR0b246IHsgbW9kZTogXCJUQUJCRURcIiwgYnlwYXNzQ29uZmlybWF0aW9uOiBmYWxzZSwgaGlkZGVuOiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyBoaWRkZW46IGZhbHNlLCBsYWJlbDogXCJcIiB9LFxuICAgICAgc3RlcHM6IHsgaGlkZGVuOiBmYWxzZSB9XG4gICAgfSxcbiAgICBmb290ZXI6IHtcbiAgICAgIHZpZXdGb3Jtc0J1dHRvbjoge1xuICAgICAgICBieXBhc3NDb25maXJtYXRpb246IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBsYWJlbDogXCJCYWNrXCJcbiAgICAgIH0sXG4gICAgICBzYXZlQnV0dG9uOiB7IGhpZGRlbjogZmFsc2UsIGxhYmVsOiBcIlNhdmVcIiB9XG4gICAgfSxcbiAgICBpc1Vuc2F2ZWREYXRhQWxlcnRFbmFibGVkOiBmYWxzZVxuICB9LFxuICBmaWVsZEdyb3Vwczoge31cbn07XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Pipe } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class JsonFormatPipe {
4
+ transform(value) {
5
+ if (!value)
6
+ return "";
7
+ // Trim spaces from start and end, then JSON.stringify with indentation for formatting
8
+ return JSON.stringify(value, null, 2).trim();
9
+ }
10
+ }
11
+ /** @nocollapse */ JsonFormatPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: JsonFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
12
+ /** @nocollapse */ JsonFormatPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: JsonFormatPipe, name: "jsonFormat" });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: JsonFormatPipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{
16
+ name: "jsonFormat"
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1mb3JtYXR0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL2J1aWxkZXIvYnVpbGRlci1mb3JtLWVkaXRvci9waXBlcy9qc29uLWZvcm1hdHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sY0FBYztJQUN6QixTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXRCLHNGQUFzRjtRQUN0RixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQyxDQUFDOzsrSEFOVSxjQUFjOzZIQUFkLGNBQWM7NEZBQWQsY0FBYztrQkFIMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQFBpcGUoe1xuICBuYW1lOiBcImpzb25Gb3JtYXRcIlxufSlcbmV4cG9ydCBjbGFzcyBKc29uRm9ybWF0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIFwiXCI7XG5cbiAgICAvLyBUcmltIHNwYWNlcyBmcm9tIHN0YXJ0IGFuZCBlbmQsIHRoZW4gSlNPTi5zdHJpbmdpZnkgd2l0aCBpbmRlbnRhdGlvbiBmb3IgZm9ybWF0dGluZ1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgMikudHJpbSgpO1xuICB9XG59XG4iXX0=
@@ -16,6 +16,12 @@ export const FIELD_PROPERTIES = {
16
16
  postfix: "",
17
17
  prefix: ""
18
18
  },
19
+ email: {
20
+ case: "default",
21
+ containerStyles: "",
22
+ postfix: "",
23
+ prefix: ""
24
+ },
19
25
  password: {
20
26
  containerStyles: "",
21
27
  hintContent: "",
@@ -121,6 +127,38 @@ export const FIELD_PROPERTIES = {
121
127
  size: "m",
122
128
  uploadFileToServer: true
123
129
  },
130
+ capture: {
131
+ containerStyles: "",
132
+ buttonText: "Camera",
133
+ icon: "tuiIconCameraLarge",
134
+ showMediaFiles: true,
135
+ uploadFileToServer: false,
136
+ cameraConfig: {
137
+ header: {
138
+ title: "Camera",
139
+ isBack: false,
140
+ isExpand: true,
141
+ isClose: true
142
+ },
143
+ footer: {
144
+ isUpload: true,
145
+ isFlip: true
146
+ },
147
+ others: {
148
+ flipHorizontal: true,
149
+ mask: {
150
+ shape: ""
151
+ },
152
+ preview: {
153
+ show: false,
154
+ header: {
155
+ isBack: false,
156
+ isClose: false
157
+ }
158
+ }
159
+ }
160
+ }
161
+ },
124
162
  select: {
125
163
  containerStyles: "",
126
164
  searchable: true
@@ -130,4 +168,4 @@ export const FIELD_PROPERTIES = {
130
168
  containerStyles: ""
131
169
  }
132
170
  };
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9jb25maWctY29udmVydGVyL2NvbmZpZy1jb252ZXJ0ZXIuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLE1BQU0sRUFBRTtRQUNOLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLEtBQUssRUFBRSxFQUFFO1FBQ1QsZUFBZSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsRUFBRTtRQUNiLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFLElBQUk7UUFDWCxJQUFJLEVBQUUsR0FBRztRQUNULE1BQU0sRUFBRSxpQ0FBaUM7S0FDMUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsU0FBUztRQUNmLGVBQWUsRUFBRSxFQUFFO1FBQ25CLE9BQU8sRUFBRSxFQUFFO1FBQ1gsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELFFBQVEsRUFBRTtRQUNSLGVBQWUsRUFBRSxFQUFFO1FBQ25CLFdBQVcsRUFBRSxFQUFFO1FBQ2YsT0FBTyxFQUFFLEVBQUU7UUFDWCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsZUFBZSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxFQUFFLDZCQUE2QjtLQUNwQztJQUNELE1BQU0sRUFBRTtRQUNOLGVBQWUsRUFBRSxFQUFFO1FBQ25CLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEdBQUcsRUFBRSxRQUFRO1FBQ2IsR0FBRyxFQUFFLENBQUMsUUFBUTtRQUNkLFdBQVcsRUFBRSxFQUFFO1FBQ2YsT0FBTyxFQUFFLEVBQUU7UUFDWCxTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxLQUFLLEVBQUU7UUFDTCxlQUFlLEVBQUUsRUFBRTtRQUNuQixXQUFXLEVBQUUsS0FBSztRQUNsQix5QkFBeUIsRUFBRSxhQUFhO1FBQ3hDLFdBQVcsRUFBRSxFQUFFO1FBQ2YsT0FBTyxFQUFFLEVBQUU7UUFDWCxNQUFNLEVBQUUsRUFBRTtRQUNWLDBCQUEwQixFQUFFLElBQUk7S0FDakM7SUFDRCxJQUFJLEVBQUU7UUFDSixlQUFlLEVBQUUsRUFBRTtLQUNwQjtJQUNELFFBQVEsRUFBRTtRQUNSLGVBQWUsRUFBRSxFQUFFO0tBQ3BCO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsZUFBZSxFQUFFLEVBQUU7S0FDcEI7SUFDRCxLQUFLLEVBQUU7UUFDTCxlQUFlLEVBQUUsRUFBRTtLQUNwQjtJQUNELEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxFQUFFO1FBQ1QsT0FBTyxFQUFFLEVBQUU7UUFDWCxNQUFNLEVBQUUsRUFBRTtRQUNWLEtBQUssRUFBRSxFQUFFO1FBQ1QsZUFBZSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsTUFBTTtRQUNuQixNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsSUFBSSxFQUFFO1FBQ0osZUFBZSxFQUFFLEVBQUU7UUFDbkIsc0JBQXNCLEVBQUU7WUFDdEIsSUFBSSxFQUFFLENBQUM7WUFDUCxLQUFLLEVBQUUsQ0FBQztZQUNSLEdBQUcsRUFBRSxDQUFDO1NBQ1A7UUFDRCxzQkFBc0IsRUFBRTtZQUN0QixJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDOUIsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO1lBQzVCLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTtTQUMxQjtRQUNELFdBQVcsRUFBRSxFQUFFO1FBQ2YsT0FBTyxFQUFFLEVBQUU7UUFDWCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsZUFBZSxFQUFFLEVBQUU7UUFDbkIsV0FBVyxFQUFFLFVBQVU7UUFDdkIsSUFBSSxFQUFFLEdBQUc7S0FDVjtJQUNELE1BQU0sRUFBRTtRQUNOLGVBQWUsRUFBRSxFQUFFO1FBQ25CLEdBQUcsRUFBRSxHQUFHO1FBQ1IsR0FBRyxFQUFFLENBQUM7UUFDTixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUM7UUFDVixJQUFJLEVBQUUsR0FBRztRQUNULEtBQUssRUFBRSxDQUFDO0tBQ1Q7SUFDRCxHQUFHLEVBQUU7UUFDSCxlQUFlLEVBQUUsRUFBRTtRQUNuQixLQUFLLEVBQUUsSUFBSTtRQUNYLElBQUksRUFBRSxHQUFHO0tBQ1Y7SUFDRCxHQUFHLEVBQUU7UUFDSCxlQUFlLEVBQUUsRUFBRTtRQUNuQixJQUFJLEVBQUUsVUFBVTtRQUNoQixTQUFTLEVBQUUsQ0FBQztRQUNaLFdBQVcsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLEdBQUc7S0FDVjtJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsZUFBZSxFQUFFLEVBQUU7UUFDbkIsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLFdBQVcsRUFBRSxPQUFPO1FBQ3BCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsSUFBSSxFQUFFLEdBQUc7UUFDVCxrQkFBa0IsRUFBRSxJQUFJO0tBQ3pCO0lBQ0QsTUFBTSxFQUFFO1FBQ04sZUFBZSxFQUFFLEVBQUU7UUFDbkIsVUFBVSxFQUFFLElBQUk7S0FDakI7SUFDRCxzQkFBc0IsRUFBRTtRQUN0QixVQUFVLEVBQUUsSUFBSTtRQUNoQixlQUFlLEVBQUUsRUFBRTtLQUNwQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRklFTERfUFJPUEVSVElFUyA9IHtcbiAgYnV0dG9uOiB7XG4gICAgYXBwZWFyYW5jZTogXCJwcmltYXJ5XCIsXG4gICAgY2xhc3M6IFwiXCIsXG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIGljb246IFwiXCIsXG4gICAgaWNvblJpZ2h0OiBcIlwiLFxuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIHNoYXBlOiBudWxsLFxuICAgIHNpemU6IFwibVwiLFxuICAgIHN0eWxlczogXCJtYXJnaW46IDByZW0gYXV0bzsgd2lkdGg6IDEwMCU7XCJcbiAgfSxcbiAgdGV4dDoge1xuICAgIGNhc2U6IFwiZGVmYXVsdFwiLFxuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBwb3N0Zml4OiBcIlwiLFxuICAgIHByZWZpeDogXCJcIlxuICB9LFxuICBwYXNzd29yZDoge1xuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBoaW50Q29udGVudDogXCJcIixcbiAgICBwb3N0Zml4OiBcIlwiLFxuICAgIHByZWZpeDogXCJcIlxuICB9LFxuICBcImFhZGhhYXItbnVtYmVyXCI6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgbWFzazogXCIjICMgIyAjIC0gIyAjICMgIyAtICMgIyAjICNcIlxuICB9LFxuICBudW1iZXI6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgZGVjaW1hbDogXCJuZXZlclwiLFxuICAgIG1heDogSW5maW5pdHksXG4gICAgbWluOiAtSW5maW5pdHksXG4gICAgcGxhY2Vob2xkZXI6IFwiXCIsXG4gICAgcG9zdGZpeDogXCJcIixcbiAgICBwcmVjaXNpb246IDIsXG4gICAgcHJlZml4OiBcIlwiXG4gIH0sXG4gIHBob25lOiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIGNvdW50cnlDb2RlOiBcIis5MVwiLFxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGU6IFwiIyMjIy0jIyMjIyNcIixcbiAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICBwb3N0Zml4OiBcIlwiLFxuICAgIHByZWZpeDogXCJcIixcbiAgICByZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZTogdHJ1ZVxuICB9LFxuICBodG1sOiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiXG4gIH0sXG4gIGNoZWNrYm94OiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiXG4gIH0sXG4gIHRleHRhcmVhOiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiXG4gIH0sXG4gIGltYWdlOiB7XG4gICAgYWZ0ZXI6IFwiXCIsXG4gICAgYWx0VGV4dDogXCJcIixcbiAgICBiZWZvcmU6IFwiXCIsXG4gICAgY2xhc3M6IFwiXCIsXG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIGh0bWw6IHt9LFxuICAgIGltYWdlVHlwZTogXCJ1cmxcIixcbiAgICBsb2FkaW5nVHlwZTogXCJhdXRvXCIsXG4gICAgc3R5bGVzOiBcIlwiXG4gIH0sXG4gIGRhdGU6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgbWF4Q2FsY3VsYXRlZEZyb21Ub2RheToge1xuICAgICAgeWVhcjogMCxcbiAgICAgIG1vbnRoOiAwLFxuICAgICAgZGF5OiAwXG4gICAgfSxcbiAgICBtaW5DYWxjdWxhdGVkRnJvbVRvZGF5OiB7XG4gICAgICB5ZWFyOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksXG4gICAgICBtb250aDogbmV3IERhdGUoKS5nZXRNb250aCgpLFxuICAgICAgZGF5OiBuZXcgRGF0ZSgpLmdldERhdGUoKVxuICAgIH0sXG4gICAgcGxhY2Vob2xkZXI6IFwiXCIsXG4gICAgcG9zdGZpeDogXCJcIixcbiAgICBwcmVmaXg6IFwiXCJcbiAgfSxcbiAgcmFkaW86IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgb3JpZW50YXRpb246IFwidmVydGljYWxcIixcbiAgICBzaXplOiBcIm1cIlxuICB9LFxuICBzbGlkZXI6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgbWF4OiAxMDAsXG4gICAgbWluOiAwLFxuICAgIHBvc3RmaXg6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiLFxuICAgIHF1YW50dW06IDEsXG4gICAgc2l6ZTogXCJsXCIsXG4gICAgc3RlcHM6IDBcbiAgfSxcbiAgYXBpOiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIHNoYXBlOiBudWxsLFxuICAgIHNpemU6IFwibVwiXG4gIH0sXG4gIG90cDoge1xuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBtb2RlOiBcIm11bHRpcGxlXCIsXG4gICAgb3RwTGVuZ3RoOiA0LFxuICAgIHBsYWNlaG9sZGVyOiBcIlwiLFxuICAgIHNpemU6IFwibVwiXG4gIH0sXG4gIGZpbGU6IHtcbiAgICBhY2NlcHQ6IFwiYXBwbGljYXRpb24vcGRmXCIsXG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIGxhYmVsOiBcImRyb3AgYSBmaWxlIG9yXCIsXG4gICAgbGluazogXCJjbGljayB0byB1cGxvYWRcIixcbiAgICBtYXhGaWxlU2l6ZTogMTAwMDAwMCxcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBzaXplOiBcIm1cIixcbiAgICB1cGxvYWRGaWxlVG9TZXJ2ZXI6IHRydWVcbiAgfSxcbiAgc2VsZWN0OiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIHNlYXJjaGFibGU6IHRydWVcbiAgfSxcbiAgXCJkcm9wZG93bi13aXRoLXNlYXJjaFwiOiB7XG4gICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCJcbiAgfVxufTtcbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9jb25maWctY29udmVydGVyL2NvbmZpZy1jb252ZXJ0ZXIuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLE1BQU0sRUFBRTtRQUNOLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLEtBQUssRUFBRSxFQUFFO1FBQ1QsZUFBZSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsRUFBRTtRQUNiLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFLElBQUk7UUFDWCxJQUFJLEVBQUUsR0FBRztRQUNULE1BQU0sRUFBRSxpQ0FBaUM7S0FDMUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsU0FBUztRQUNmLGVBQWUsRUFBRSxFQUFFO1FBQ25CLE9BQU8sRUFBRSxFQUFFO1FBQ1gsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxTQUFTO1FBQ2YsZUFBZSxFQUFFLEVBQUU7UUFDbkIsT0FBTyxFQUFFLEVBQUU7UUFDWCxNQUFNLEVBQUUsRUFBRTtLQUNYO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsZUFBZSxFQUFFLEVBQUU7UUFDbkIsV0FBVyxFQUFFLEVBQUU7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxFQUFFO0tBQ1g7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixlQUFlLEVBQUUsRUFBRTtRQUNuQixJQUFJLEVBQUUsNkJBQTZCO0tBQ3BDO0lBQ0QsTUFBTSxFQUFFO1FBQ04sZUFBZSxFQUFFLEVBQUU7UUFDbkIsT0FBTyxFQUFFLE9BQU87UUFDaEIsR0FBRyxFQUFFLFFBQVE7UUFDYixH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QUNOLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxLQUFLO2dCQUNiLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLElBQUk7Z0JBQ2QsTUFBTSxFQUFFLElBQUk7YUFDYjtZQUNELE1BQU0sRUFBRTtnQkFDTixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsSUFBSSxFQUFFO29CQUNKLEtBQUssRUFBRSxFQUFFO2lCQUNWO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsS0FBSztvQkFDWCxNQUFNLEVBQUU7d0JBQ04sTUFBTSxFQUFFLEtBQUs7d0JBQ2IsT0FBTyxFQUFFLEtBQUs7cUJBQ2Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0Y7SUFDRCxNQUFNLEVBQUU7UUFDTixlQUFlLEVBQUUsRUFBRTtRQUNuQixVQUFVLEVBQUUsSUFBSTtLQUNqQjtJQUNELHNCQUFzQixFQUFFO1FBQ3RCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGVBQWUsRUFBRSxFQUFFO0tBQ3BCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBGSUVMRF9QUk9QRVJUSUVTID0ge1xuICBidXR0b246IHtcbiAgICBhcHBlYXJhbmNlOiBcInByaW1hcnlcIixcbiAgICBjbGFzczogXCJcIixcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgaWNvbjogXCJcIixcbiAgICBpY29uUmlnaHQ6IFwiXCIsXG4gICAgbG9hZGluZzogZmFsc2UsXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogXCJtXCIsXG4gICAgc3R5bGVzOiBcIm1hcmdpbjogMHJlbSBhdXRvOyB3aWR0aDogMTAwJTtcIlxuICB9LFxuICB0ZXh0OiB7XG4gICAgY2FzZTogXCJkZWZhdWx0XCIsXG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIHBvc3RmaXg6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiXG4gIH0sXG4gIGVtYWlsOiB7XG4gICAgY2FzZTogXCJkZWZhdWx0XCIsXG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIHBvc3RmaXg6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiXG4gIH0sXG4gIHBhc3N3b3JkOiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIGhpbnRDb250ZW50OiBcIlwiLFxuICAgIHBvc3RmaXg6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiXG4gIH0sXG4gIFwiYWFkaGFhci1udW1iZXJcIjoge1xuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBtYXNrOiBcIiMgIyAjICMgLSAjICMgIyAjIC0gIyAjICMgI1wiXG4gIH0sXG4gIG51bWJlcjoge1xuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBkZWNpbWFsOiBcIm5ldmVyXCIsXG4gICAgbWF4OiBJbmZpbml0eSxcbiAgICBtaW46IC1JbmZpbml0eSxcbiAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICBwb3N0Zml4OiBcIlwiLFxuICAgIHByZWNpc2lvbjogMixcbiAgICBwcmVmaXg6IFwiXCJcbiAgfSxcbiAgcGhvbmU6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgY291bnRyeUNvZGU6IFwiKzkxXCIsXG4gICAgcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZTogXCIjIyMjLSMjIyMjI1wiLFxuICAgIHBsYWNlaG9sZGVyOiBcIlwiLFxuICAgIHBvc3RmaXg6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiLFxuICAgIHJlbW92ZUNvdW50cnlDb2RlRnJvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGh0bWw6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCJcbiAgfSxcbiAgY2hlY2tib3g6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCJcbiAgfSxcbiAgdGV4dGFyZWE6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCJcbiAgfSxcbiAgdGl0bGU6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCJcbiAgfSxcbiAgaW1hZ2U6IHtcbiAgICBhZnRlcjogXCJcIixcbiAgICBhbHRUZXh0OiBcIlwiLFxuICAgIGJlZm9yZTogXCJcIixcbiAgICBjbGFzczogXCJcIixcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgaHRtbDoge30sXG4gICAgaW1hZ2VUeXBlOiBcInVybFwiLFxuICAgIGxvYWRpbmdUeXBlOiBcImF1dG9cIixcbiAgICBzdHlsZXM6IFwiXCJcbiAgfSxcbiAgZGF0ZToge1xuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBtYXhDYWxjdWxhdGVkRnJvbVRvZGF5OiB7XG4gICAgICB5ZWFyOiAwLFxuICAgICAgbW9udGg6IDAsXG4gICAgICBkYXk6IDBcbiAgICB9LFxuICAgIG1pbkNhbGN1bGF0ZWRGcm9tVG9kYXk6IHtcbiAgICAgIHllYXI6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSxcbiAgICAgIG1vbnRoOiBuZXcgRGF0ZSgpLmdldE1vbnRoKCksXG4gICAgICBkYXk6IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpXG4gICAgfSxcbiAgICBwbGFjZWhvbGRlcjogXCJcIixcbiAgICBwb3N0Zml4OiBcIlwiLFxuICAgIHByZWZpeDogXCJcIlxuICB9LFxuICByYWRpbzoge1xuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBvcmllbnRhdGlvbjogXCJ2ZXJ0aWNhbFwiLFxuICAgIHNpemU6IFwibVwiXG4gIH0sXG4gIHNsaWRlcjoge1xuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIixcbiAgICBtYXg6IDEwMCxcbiAgICBtaW46IDAsXG4gICAgcG9zdGZpeDogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgcXVhbnR1bTogMSxcbiAgICBzaXplOiBcImxcIixcbiAgICBzdGVwczogMFxuICB9LFxuICBhcGk6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgc2hhcGU6IG51bGwsXG4gICAgc2l6ZTogXCJtXCJcbiAgfSxcbiAgb3RwOiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIG1vZGU6IFwibXVsdGlwbGVcIixcbiAgICBvdHBMZW5ndGg6IDQsXG4gICAgcGxhY2Vob2xkZXI6IFwiXCIsXG4gICAgc2l6ZTogXCJtXCJcbiAgfSxcbiAgZmlsZToge1xuICAgIGFjY2VwdDogXCJhcHBsaWNhdGlvbi9wZGZcIixcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgbGFiZWw6IFwiZHJvcCBhIGZpbGUgb3JcIixcbiAgICBsaW5rOiBcImNsaWNrIHRvIHVwbG9hZFwiLFxuICAgIG1heEZpbGVTaXplOiAxMDAwMDAwLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIHNpemU6IFwibVwiLFxuICAgIHVwbG9hZEZpbGVUb1NlcnZlcjogdHJ1ZVxuICB9LFxuICBjYXB0dXJlOiB7XG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIGJ1dHRvblRleHQ6IFwiQ2FtZXJhXCIsXG4gICAgaWNvbjogXCJ0dWlJY29uQ2FtZXJhTGFyZ2VcIixcbiAgICBzaG93TWVkaWFGaWxlczogdHJ1ZSxcbiAgICB1cGxvYWRGaWxlVG9TZXJ2ZXI6IGZhbHNlLFxuICAgIGNhbWVyYUNvbmZpZzoge1xuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIHRpdGxlOiBcIkNhbWVyYVwiLFxuICAgICAgICBpc0JhY2s6IGZhbHNlLFxuICAgICAgICBpc0V4cGFuZDogdHJ1ZSxcbiAgICAgICAgaXNDbG9zZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICBpc1VwbG9hZDogdHJ1ZSxcbiAgICAgICAgaXNGbGlwOiB0cnVlXG4gICAgICB9LFxuICAgICAgb3RoZXJzOiB7XG4gICAgICAgIGZsaXBIb3Jpem9udGFsOiB0cnVlLFxuICAgICAgICBtYXNrOiB7XG4gICAgICAgICAgc2hhcGU6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgcHJldmlldzoge1xuICAgICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICAgIGhlYWRlcjoge1xuICAgICAgICAgICAgaXNCYWNrOiBmYWxzZSxcbiAgICAgICAgICAgIGlzQ2xvc2U6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBzZWxlY3Q6IHtcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgc2VhcmNoYWJsZTogdHJ1ZVxuICB9LFxuICBcImRyb3Bkb3duLXdpdGgtc2VhcmNoXCI6IHtcbiAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgIGNvbnRhaW5lclN0eWxlczogXCJcIlxuICB9XG59O1xuIl19
@@ -102,6 +102,12 @@ export class Converter {
102
102
  field = updateFormFieldProperties(field);
103
103
  return field;
104
104
  };
105
+ const formatFieldTypeEmail = (field) => {
106
+ field = setFieldKeyHidden(field);
107
+ field = setFieldAsFormElement(field, true);
108
+ field = updateFormFieldProperties(field);
109
+ return field;
110
+ };
105
111
  const formatFieldTypeTextarea = (field) => {
106
112
  field = setFieldKeyHidden(field);
107
113
  field = setFieldAsFormElement(field, true);
@@ -252,6 +258,12 @@ export class Converter {
252
258
  field = updateFormFieldProperties(field);
253
259
  return field;
254
260
  };
261
+ const formatFieldTypeCapture = (field) => {
262
+ field = setFieldKeyHidden(field);
263
+ field = setFieldAsFormElement(field, true);
264
+ field = updateFormFieldProperties(field);
265
+ return field;
266
+ };
255
267
  switch (field.type) {
256
268
  case EFieldType.HTML:
257
269
  field = formatFieldTypeHtml(field);
@@ -268,6 +280,9 @@ export class Converter {
268
280
  case EFieldType.PASSWORD:
269
281
  field = formatFieldTypePassword(field);
270
282
  break;
283
+ case EFieldType.EMAIL:
284
+ field = formatFieldTypeEmail(field);
285
+ break;
271
286
  case EFieldType.TEXTAREA:
272
287
  field = formatFieldTypeTextarea(field);
273
288
  break;
@@ -323,6 +338,9 @@ export class Converter {
323
338
  case EFieldType.FILE:
324
339
  field = formatFieldTypeFile(field);
325
340
  break;
341
+ case EFieldType.CAPTURE:
342
+ field = formatFieldTypeCapture(field);
343
+ break;
326
344
  default:
327
345
  break;
328
346
  }
@@ -402,6 +420,13 @@ export class Converter {
402
420
  delete field.validators.maxLength;
403
421
  delete field.validators.pattern;
404
422
  break;
423
+ case EFieldType.CAPTURE:
424
+ delete field.validators.min;
425
+ delete field.validators.max;
426
+ delete field.validators.minLength;
427
+ delete field.validators.maxLength;
428
+ delete field.validators.pattern;
429
+ break;
405
430
  default:
406
431
  break;
407
432
  }
@@ -559,4 +584,4 @@ __decorate([
559
584
  __decorate([
560
585
  logMethod
561
586
  ], Converter.prototype, "convertFormConfig", null);
562
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2NvbmZpZy1jb252ZXJ0ZXIvY29uZmlnLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDeEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxNQUFNLE9BQU8sU0FBUztJQUVwQiw2QkFBNkIsQ0FBQyxVQUFlLEVBQUUsSUFBUztRQUN0RCxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pELFVBQVUsR0FBRyxvQkFBb0IsQ0FDL0IsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1NBQ0g7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBR0QsOEJBQThCLENBQUMsVUFBZSxFQUFFLFVBQWU7UUFDN0QsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQzdDLElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDLEtB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TUFBTSxHQUFVLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5QyxJQUFJLFdBQVcsR0FBUSxFQUFFLENBQUM7UUFFMUIsS0FBSyxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDeEIsS0FBSyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXhELEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV2QyxLQUFLLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFckMsS0FBSyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXRDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUVELFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFekQsVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBdm9CQztJQURDLFNBQVM7OERBV1Q7QUFHRDtJQURDLFNBQVM7K0RBZVQ7QUFHRDtJQURDLFNBQVM7MkRBZ0RUO0FBR0Q7SUFEQyxTQUFTO2tEQXVqQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgY2hlY2tPYmplY3RQYXRoRXhpc3RzLFxuICBnZXRPYmplY3REZWVwQ29weSxcbiAgaXNFbXB0eVZhbHVlLFxuICBpc05vdEVtcHR5VmFsdWUsXG4gIGxvZ01ldGhvZCxcbiAgbWVyZ2VPYmplY3RzLFxuICBzZXRNaXNzaW5nS2V5VmFsdWUsXG4gIHNldFZhbHVlVG9PYmplY3RQYXRoXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRUZpZWxkVHlwZSB9IGZyb20gXCIuLi9mb3JtLXZpZXcvZGVmaW5pdGlvbnMvZm9ybS12aWV3LmZpZWxkcy5kZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBGSUVMRF9QUk9QRVJUSUVTIH0gZnJvbSBcIi4vY29uZmlnLWNvbnZlcnRlci5jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIGdldEZvcm1GaWVsZHMsXG4gIGdldE1heERhdGUsXG4gIGdldE1pbkRhdGUsXG4gIHNldEZpZWxkQXNGb3JtRWxlbWVudCxcbiAgc2V0RmllbGRLZXlIaWRkZW4sXG4gIHNldEZpZWxkS2V5VmFsdWUsXG4gIHNldE1pc3NpbmdGaWVsZEtleVZhbHVlXG59IGZyb20gXCIuL2NvbmZpZy1jb252ZXJ0ZXIuaGVscGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBDb252ZXJ0ZXIge1xuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdNaXNjZWxsYW5lb3VzKGZvcm1Db25maWc6IGFueSwgYXJnczogYW55KTogYW55IHtcbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoYXJncywgXCJmb3Jtc0xpc3RMZW5ndGhcIikpIHtcbiAgICAgIGZvcm1Db25maWcgPSBzZXRWYWx1ZVRvT2JqZWN0UGF0aChcbiAgICAgICAgZm9ybUNvbmZpZyxcbiAgICAgICAgXCJmb3Jtc0xpc3RMZW5ndGhcIixcbiAgICAgICAgYXJncy5mb3Jtc0xpc3RMZW5ndGhcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIHVwZGF0ZUZvcm1Db25maWdGcm9tVXNlckNvbmZpZyhmb3JtQ29uZmlnOiBhbnksIHVzZXJDb25maWc6IGFueSk6IGFueSB7XG4gICAgaWYgKGlzTm90RW1wdHlWYWx1ZSh1c2VyQ29uZmlnKSkge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKHVzZXJDb25maWcsIFwidGhlbWVcIikpIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKHVzZXJDb25maWcudGhlbWUsIFwiY2xpZW50TG9nb1wiKSkge1xuICAgICAgICAgIHNldFZhbHVlVG9PYmplY3RQYXRoKFxuICAgICAgICAgICAgZm9ybUNvbmZpZyxcbiAgICAgICAgICAgIFwicHJvcGVydGllcy5oZWFkZXIubG9nby5zcmNcIixcbiAgICAgICAgICAgIHVzZXJDb25maWcudGhlbWUuY2xpZW50TG9nb1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybUNvbmZpZ1Byb3BlcnRpZXMoZm9ybUNvbmZpZzogYW55KTogYW55IHtcbiAgICBjb25zdCBmb3JtVmlld1Byb3BlcnRpZXMgPSB7XG4gICAgICBoZWFkZXI6IHtcbiAgICAgICAgbG9nbzoge1xuICAgICAgICAgIHNyYzogXCJcIixcbiAgICAgICAgICBhbHQ6IFwiTG9nb1wiLFxuICAgICAgICAgIGhpZGRlbjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgYmFja0J1dHRvbjoge1xuICAgICAgICAgIG1vZGU6IFwiVEFCQkVEXCIsXG4gICAgICAgICAgYnlwYXNzQ29uZmlybWF0aW9uOiBmYWxzZSxcbiAgICAgICAgICBoaWRkZW46IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBmb3JtQ29uZmlnPy50aXRsZSA/PyBmb3JtQ29uZmlnPy5wcm9wcy50aXRsZSA/PyBcIkZvcm1cIlxuICAgICAgICB9LFxuICAgICAgICBzdGVwczoge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG1haW46IHtcbiAgICAgICAgc3R5bGVzOiBcIlwiXG4gICAgICB9LFxuICAgICAgZm9vdGVyOiB7XG4gICAgICAgIHZpZXdGb3Jtc0J1dHRvbjoge1xuICAgICAgICAgIGJ5cGFzc0NvbmZpcm1hdGlvbjogZmFsc2UsXG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogXCJWaWV3IEZvcm1zXCJcbiAgICAgICAgfSxcbiAgICAgICAgc2F2ZUJ1dHRvbjoge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgbGFiZWw6IFwiU2F2ZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBpc1Vuc2F2ZWREYXRhQWxlcnRFbmFibGVkOiBmYWxzZVxuICAgIH07XG5cbiAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJwcm9wZXJ0aWVzXCIpKSB7XG4gICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgbWVyZ2VPYmplY3RzKGZvcm1WaWV3UHJvcGVydGllcywgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybUNvbmZpZy5wcm9wZXJ0aWVzID0gZm9ybVZpZXdQcm9wZXJ0aWVzO1xuICAgIH1cblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBjb252ZXJ0Rm9ybUNvbmZpZyhmb3JtQ29uZmlnOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IGZvcm1hdE9uRmllbGRUeXBlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKEZJRUxEX1BST1BFUlRJRVMsIGZpZWxkLnR5cGUpKSB7XG4gICAgICAgICAgZmllbGQucHJvcGVydGllcyA9IG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICAgIGdldE9iamVjdERlZXBDb3B5KEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0pLFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllc1xuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVIdG1sID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGl0bGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVCdXR0b24gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwiaGlkZGVuXCIsIGZhbHNlKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIGZhbHNlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlVGV4dCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlUGFzc3dvcmQgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRleHRhcmVhID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQ2hlY2tib3ggPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVOdW1iZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImtleVwiKSkge1xuICAgICAgICAgIGlmIChmaWVsZC5rZXkgPT09IFwiYWFkaGFhcl9udW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJhYWRoYWFyX251bWJlclwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZpZWxkLmtleSA9PT0gXCJjb250YWN0X251bWJlclwiKSB7XG4gICAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcInBob25lXCIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBcInBob25lXCIgfHwgZmllbGQudHlwZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlSW1hZ2UgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZURhdGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgIG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICAgIGdldE9iamVjdERlZXBDb3B5KEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0pLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtYXg6IGdldE1heERhdGUoZmllbGQpLFxuICAgICAgICAgICAgICBtaW46IGdldE1pbkRhdGUoZmllbGQpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllc1xuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlUGhvbmUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVSYWRpbyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKHg6IGFueSk6IGFueSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogeCwgZGlzYWJsZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogXCJcIiB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwibGFiZWxcIikgJiZcbiAgICAgICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJkaXNhYmxlZFwiKSAmJlxuICAgICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRlc2NyaXB0aW9uXCIpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGlzYWJsZWRcIikpIHtcbiAgICAgICAgICAgICAgeCA9IHsgLi4ueCwgZGlzYWJsZWQ6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGVzY3JpcHRpb25cIikpIHtcbiAgICAgICAgICAgICAgeCA9IHsgLi4ueCwgZGVzY3JpcHRpb246IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTbGlkZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVNlbGVjdCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQXBpID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJzaG93TG9hZGVyXCIpKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInNob3dMb2FkZXJcIiwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhcGlcIikpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZEFwaURlZmF1bHRzID0ge1xuICAgICAgICAgICAgdXJsOiBcIlwiLFxuICAgICAgICAgICAgcmVxdWVzdDoge30sXG4gICAgICAgICAgICByZXNwb25zZToge30sXG4gICAgICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBcIkNhbGwgQVBJXCIsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogXCJDYWxsIEFQSVwiLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IFwiQVBJIFN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICBmYWlsZWQ6IFwiQVBJIEZhaWxlZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZpZWxkLmFwaSA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgICAgbWVyZ2VPYmplY3RzKGZpZWxkQXBpRGVmYXVsdHMsIGZpZWxkQXBpRGVmYXVsdHMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmFwaSwgXCJyZXF1ZXN0XCIpICYmXG4gICAgICAgICAgIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmFwaSwgXCJlbnRyeXBvaW50XCIpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGFwaUVudHJ5cG9pbnQgPSB7XG4gICAgICAgICAgICB0cmlnZ2VyczogW1wiT05fQVBJX0NBTExcIl0sXG4gICAgICAgICAgICBydWxlczogW10sXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAga2V5OiBcIkFQSV9DQUxMXCIsXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgZmllbGRLZXk6IGZpZWxkLmtleSxcbiAgICAgICAgICAgICAgICAgIGFwaUtleTogZmllbGQuYXBpLmVuZHBvaW50c1swXS5hcGlLZXlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZpZWxkLmVudHJ5cG9pbnQgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICAgIG1lcmdlT2JqZWN0cyhhcGlFbnRyeXBvaW50LCBmaWVsZC5hcGkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlT3RwID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICBtZXJnZU9iamVjdHMoXG4gICAgICAgICAgICBnZXRPYmplY3REZWVwQ29weShGSUVMRF9QUk9QRVJUSUVTW2ZpZWxkLnR5cGVdKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWFzazogbmV3IEFycmF5KGZpZWxkPy5wcm9wZXJ0aWVzPy5vdHBMZW5ndGggPz8gNClcbiAgICAgICAgICAgICAgICAuZmlsbChcIiNcIilcbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVBYWRoYWFyTnVtYmVyID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVGaWxlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG5cbiAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuSFRNTDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUh0bWwoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVElUTEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUaXRsZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5CVVRUT046XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVCdXR0b24oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVEVYVDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRleHQoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUEFTU1dPUkQ6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVQYXNzd29yZChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5URVhUQVJFQTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRleHRhcmVhKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNIRUNLQk9YOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQ2hlY2tib3goZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuTlVNQkVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlTnVtYmVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0U6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJpbWFnZVwiKTtcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUltYWdlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLklNQUdFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSW1hZ2UoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuREFURTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZURhdGUoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUEhPTkU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVQaG9uZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5SQURJTzpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVJhZGlvKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlNMSURFUjpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVNsaWRlcihmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzZWFyY2gtdGV4dFwiOlxuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwic2VsZWN0XCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkRST1BET1dOX1dJVEhfU0VBUkNIOlxuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwic2VsZWN0XCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlNFTEVDVDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVNlbGVjdChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5BUElfQ0FMTDpcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcImFwaVwiKTtcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUFwaShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5BUEk6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVBcGkoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuT1RQOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlT3RwKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFBREhBQVJfTlVNQkVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQWFkaGFhck51bWJlcihmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRmlsZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRWYWxpZGF0b3JzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInZhbGlkYXRvcnNcIilcbiAgICAgICAgICA/IGZpZWxkLnZhbGlkYXRvcnNcbiAgICAgICAgICA6IHt9O1xuXG4gICAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7fSk7XG5cbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInZhbGlkYXRvcnNcIiwge1xuICAgICAgICAgIC4uLmZpZWxkW1widmFsaWRhdG9yc1wiXSxcbiAgICAgICAgICBtaW46IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwibWluXCIpXG4gICAgICAgICAgICA/IGlzTm90RW1wdHlWYWx1ZSh2YWxpZGF0b3JzLm1pbilcbiAgICAgICAgICAgICAgPyBOdW1iZXIodmFsaWRhdG9ycy5taW4pXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtaW5cIilcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1pbilcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICBtYXg6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwibWF4XCIpXG4gICAgICAgICAgICA/IGlzTm90RW1wdHlWYWx1ZSh2YWxpZGF0b3JzLm1heClcbiAgICAgICAgICAgICAgPyBOdW1iZXIodmFsaWRhdG9ycy5tYXgpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtYXhcIilcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1heClcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICByZXF1aXJlZDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJyZXF1aXJlZFwiKVxuICAgICAgICAgICAgPyBCb29sZWFuKHZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcInJlcXVpcmVkXCIpXG4gICAgICAgICAgICA/IEJvb2xlYW4oZmllbGQucmVxdWlyZWQpXG4gICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgIG1pbkxlbmd0aDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtaW5MZW5ndGhcIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWluTGVuZ3RoKVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1pbkxlbmd0aClcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1pbkxlbmd0aFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWluTGVuZ3RoKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIG1heExlbmd0aDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtYXhMZW5ndGhcIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heExlbmd0aClcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImxlbmd0aFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubGVuZ3RoKVxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtYXhMZW5ndGhcIilcbiAgICAgICAgICAgID8gTnVtYmVyKGZpZWxkLm1heExlbmd0aClcbiAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICBwYXR0ZXJuOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcInBhdHRlcm5cIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMucGF0dGVybilcbiAgICAgICAgICAgICAgPyB2YWxpZGF0b3JzLnBhdHRlcm5cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicGF0dGVyblwiKVxuICAgICAgICAgICAgPyB7IGtleTogXCJDVVNUT01cIiwgcGF0dGVybjogU3RyaW5nKGZpZWxkLnBhdHRlcm4pIH1cbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicmVnZXhcIilcbiAgICAgICAgICAgID8geyBrZXk6IFwiQ1VTVE9NXCIsIHBhdHRlcm46IFN0cmluZyhmaWVsZC5yZWdleCkgfVxuICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGVsZXRlIGZpZWxkLm1pbjtcbiAgICAgICAgZGVsZXRlIGZpZWxkLm1heDtcbiAgICAgICAgZGVsZXRlIGZpZWxkLnJlcXVpcmVkO1xuICAgICAgICBkZWxldGUgZmllbGQubWluTGVuZ3RoO1xuICAgICAgICBkZWxldGUgZmllbGQubGVuZ3RoO1xuICAgICAgICBkZWxldGUgZmllbGQubWF4TGVuZ3RoO1xuICAgICAgICBkZWxldGUgZmllbGQucGF0dGVybjtcbiAgICAgICAgZGVsZXRlIGZpZWxkLnJlZ2V4O1xuXG4gICAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5URVhUOlxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNIRUNLQk9YOlxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4O1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5QUkVWSUVXX0lNQUdFOlxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4O1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4O1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWluKSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1heCkpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5taW5MZW5ndGgpKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWF4TGVuZ3RoKSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/LnBhdHRlcm4pKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMucGF0dGVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZWxkLmZvY3VzID0gZmFsc2U7XG4gICAgICAgIGZpZWxkLmludmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZERlZmF1bHRWYWx1ZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHtcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgc291cmNlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBrZXk6IFwiT0JKRUNUXCIsXG4gICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICBrZXk6IFwiRk9STV9EQVRBXCIsXG4gICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjoge1xuICAgICAgICAgICAgICAgIGlzX3ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0cmlnZ2VyczogW1wiT05fSU5JVFwiXSxcbiAgICAgICAgICAgICAgICBydWxlczogW10sXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgIGtleTogXCJTRVRfRklFTERfREVGQVVMVF9WQUxVRVwiLFxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIk9CSkVDVFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcIkZPUk1fREFUQVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogYCQuJHtmaWVsZC5rZXl9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRWYWx1ZVwiKSkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfSBlbHNlIGlmIChjaGVja09iamVjdFBhdGhFeGlzdHMoZmllbGQsIFwiZGVmYXVsdC52YWx1ZS5zb3VyY2VzXCIpKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9IGVsc2UgaWYgKCFjaGVja09iamVjdFBhdGhFeGlzdHMoZmllbGQsIFwiZGVmYXVsdC52YWx1ZS5zb3VyY2VzXCIpKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcImRlZmF1bHRcIiwgZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cblxuICAgICAgICBkZWxldGUgZmllbGRbXCJkZWZhdWx0VmFsXCJdO1xuICAgICAgICBkZWxldGUgZmllbGRbXCJkZWZhdWx0VmFsdWVcIl07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGREaXNhYmlsaXR5ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgZmllbGQgPSBzZXRNaXNzaW5nS2V5VmFsdWUoZmllbGQsIFwiZGlzYWJsZWRcIiwgZmFsc2UpO1xuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkTWVzc2FnZXMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBmaWVsZCA9IHNldE1pc3NpbmdGaWVsZEtleVZhbHVlKGZpZWxkLCBcIm1lc3NhZ2VzXCIsIFtdKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZFJlc2V0QnV0dG9uID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImFjdGlvblwiKSAmJlxuICAgICAgICAgIGZpZWxkLmFjdGlvbiA9PT0gXCJyZXNldFwiICYmXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZmllbGRzXCIpXG4gICAgICAgICkge1xuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJyZXNldFwiLCB7XG4gICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2V0Rm9ybUZpZWxkcyA9IChmb3JtQ29uZmlnOiBhbnksIGZpZWxkczogYW55W10pOiBhbnkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm1Db25maWcsIFwibXVsdGlGb3JtXCIpKSB7XG4gICAgICAgIGZvcm1Db25maWcubXVsdGlGb3JtW1wiZmllbGRzXCJdID0gZmllbGRzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybUNvbmZpZ1tcImZpZWxkc1wiXSA9IGZpZWxkcztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZvcm1Db25maWc7XG4gICAgfTtcblxuICAgIGNvbnN0IHNldEZvcm1GaWVsZEdyb3VwcyA9IChmb3JtQ29uZmlnOiBhbnksIGdyb3VwczogYW55KTogYW55ID0+IHtcbiAgICAgIGZvcm1Db25maWdbXCJmaWVsZEdyb3Vwc1wiXSA9IGdyb3VwcztcblxuICAgICAgcmV0dXJuIGZvcm1Db25maWc7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZvcm1GaWVsZEdyb3VwcyA9IChmaWVsZEdyb3VwczogYW55LCBmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJncm91cEtleVwiKSkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGRHcm91cHMsIGZpZWxkLmdyb3VwS2V5KSkge1xuICAgICAgICAgIGZpZWxkR3JvdXBzW2ZpZWxkLmdyb3VwS2V5XS5wdXNoKGZpZWxkLmtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmllbGRHcm91cHNbZmllbGQuZ3JvdXBLZXldID0gW2ZpZWxkLmtleV07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkR3JvdXBzO1xuICAgIH07XG5cbiAgICBsZXQgZmllbGRzOiBhbnlbXSA9IGdldEZvcm1GaWVsZHMoZm9ybUNvbmZpZyk7XG5cbiAgICBsZXQgZmllbGRHcm91cHM6IGFueSA9IHt9O1xuXG4gICAgZm9yIChsZXQgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICBmaWVsZCA9IGZvcm1hdE9uRmllbGRUeXBlKGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZERpc2FiaWxpdHkoZmllbGQpO1xuXG4gICAgICBmaWVsZEdyb3VwcyA9IHVwZGF0ZUZvcm1GaWVsZEdyb3VwcyhmaWVsZEdyb3VwcywgZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkRGVmYXVsdFZhbHVlKGZpZWxkKTtcblxuICAgICAgZmllbGQgPSB1cGRhdGVGaWVsZFZhbGlkYXRvcnMoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24oZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkTWVzc2FnZXMoZmllbGQpO1xuICAgIH1cblxuICAgIGZvcm1Db25maWcgPSBzZXRGb3JtRmllbGRHcm91cHMoZm9ybUNvbmZpZywgZmllbGRHcm91cHMpO1xuXG4gICAgZm9ybUNvbmZpZyA9IHNldEZvcm1GaWVsZHMoZm9ybUNvbmZpZywgZmllbGRzKTtcblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG59XG4iXX0=
587
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbnZlcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWtpZC1mb3Jtcy9zcmMvbGliL3JlbmRlcmVyL2NvbmZpZy1jb252ZXJ0ZXIvY29uZmlnLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDeEIsTUFBTSwyQkFBMkIsQ0FBQztBQUVuQyxNQUFNLE9BQU8sU0FBUztJQUVwQiw2QkFBNkIsQ0FBQyxVQUFlLEVBQUUsSUFBUztRQUN0RCxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pELFVBQVUsR0FBRyxvQkFBb0IsQ0FDL0IsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixJQUFJLENBQUMsZUFBZSxDQUNyQixDQUFDO1NBQ0g7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBR0QsOEJBQThCLENBQUMsVUFBZSxFQUFFLFVBQWU7UUFDN0QsSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQzdDLElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDLEtB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V0FBVyxHQUFRLEVBQUUsQ0FBQztRQUUxQixLQUFLLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUN4QixLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakMsS0FBSyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXJDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFeEQsS0FBSyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXZDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVyQyxLQUFLLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFdEMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsVUFBVSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUV6RCxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFscUJDO0lBREMsU0FBUzs4REFXVDtBQUdEO0lBREMsU0FBUzsrREFlVDtBQUdEO0lBREMsU0FBUzsyREFnRFQ7QUFHRDtJQURDLFNBQVM7a0RBa2xCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBjaGVja09iamVjdFBhdGhFeGlzdHMsXG4gIGdldE9iamVjdERlZXBDb3B5LFxuICBpc0VtcHR5VmFsdWUsXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgbG9nTWV0aG9kLFxuICBtZXJnZU9iamVjdHMsXG4gIHNldE1pc3NpbmdLZXlWYWx1ZSxcbiAgc2V0VmFsdWVUb09iamVjdFBhdGhcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBFRmllbGRUeXBlIH0gZnJvbSBcIi4uL2Zvcm0tdmlldy9kZWZpbml0aW9ucy9mb3JtLXZpZXcuZmllbGRzLmRlZmluaXRpb25cIjtcbmltcG9ydCB7IEZJRUxEX1BST1BFUlRJRVMgfSBmcm9tIFwiLi9jb25maWctY29udmVydGVyLmNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgZ2V0Rm9ybUZpZWxkcyxcbiAgZ2V0TWF4RGF0ZSxcbiAgZ2V0TWluRGF0ZSxcbiAgc2V0RmllbGRBc0Zvcm1FbGVtZW50LFxuICBzZXRGaWVsZEtleUhpZGRlbixcbiAgc2V0RmllbGRLZXlWYWx1ZSxcbiAgc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWVcbn0gZnJvbSBcIi4vY29uZmlnLWNvbnZlcnRlci5oZWxwZXJcIjtcblxuZXhwb3J0IGNsYXNzIENvbnZlcnRlciB7XG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybUNvbmZpZ01pc2NlbGxhbmVvdXMoZm9ybUNvbmZpZzogYW55LCBhcmdzOiBhbnkpOiBhbnkge1xuICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhhcmdzLCBcImZvcm1zTGlzdExlbmd0aFwiKSkge1xuICAgICAgZm9ybUNvbmZpZyA9IHNldFZhbHVlVG9PYmplY3RQYXRoKFxuICAgICAgICBmb3JtQ29uZmlnLFxuICAgICAgICBcImZvcm1zTGlzdExlbmd0aFwiLFxuICAgICAgICBhcmdzLmZvcm1zTGlzdExlbmd0aFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgdXBkYXRlRm9ybUNvbmZpZ0Zyb21Vc2VyQ29uZmlnKGZvcm1Db25maWc6IGFueSwgdXNlckNvbmZpZzogYW55KTogYW55IHtcbiAgICBpZiAoaXNOb3RFbXB0eVZhbHVlKHVzZXJDb25maWcpKSB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHModXNlckNvbmZpZywgXCJ0aGVtZVwiKSkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHModXNlckNvbmZpZy50aGVtZSwgXCJjbGllbnRMb2dvXCIpKSB7XG4gICAgICAgICAgc2V0VmFsdWVUb09iamVjdFBhdGgoXG4gICAgICAgICAgICBmb3JtQ29uZmlnLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzLmhlYWRlci5sb2dvLnNyY1wiLFxuICAgICAgICAgICAgdXNlckNvbmZpZy50aGVtZS5jbGllbnRMb2dvXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICB1cGRhdGVGb3JtQ29uZmlnUHJvcGVydGllcyhmb3JtQ29uZmlnOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IGZvcm1WaWV3UHJvcGVydGllcyA9IHtcbiAgICAgIGhlYWRlcjoge1xuICAgICAgICBsb2dvOiB7XG4gICAgICAgICAgc3JjOiBcIlwiLFxuICAgICAgICAgIGFsdDogXCJMb2dvXCIsXG4gICAgICAgICAgaGlkZGVuOiBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICBiYWNrQnV0dG9uOiB7XG4gICAgICAgICAgbW9kZTogXCJUQUJCRURcIixcbiAgICAgICAgICBieXBhc3NDb25maXJtYXRpb246IGZhbHNlLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgbGFiZWw6IGZvcm1Db25maWc/LnRpdGxlID8/IGZvcm1Db25maWc/LnByb3BzLnRpdGxlID8/IFwiRm9ybVwiXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzOiB7XG4gICAgICAgICAgaGlkZGVuOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbWFpbjoge1xuICAgICAgICBzdHlsZXM6IFwiXCJcbiAgICAgIH0sXG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgdmlld0Zvcm1zQnV0dG9uOiB7XG4gICAgICAgICAgYnlwYXNzQ29uZmlybWF0aW9uOiBmYWxzZSxcbiAgICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiBcIlZpZXcgRm9ybXNcIlxuICAgICAgICB9LFxuICAgICAgICBzYXZlQnV0dG9uOiB7XG4gICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogXCJTYXZlXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGlzVW5zYXZlZERhdGFBbGVydEVuYWJsZWQ6IGZhbHNlXG4gICAgfTtcblxuICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtQ29uZmlnLCBcInByb3BlcnRpZXNcIikpIHtcbiAgICAgIGZvcm1Db25maWcucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICBtZXJnZU9iamVjdHMoZm9ybVZpZXdQcm9wZXJ0aWVzLCBmb3JtQ29uZmlnLnByb3BlcnRpZXMpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtQ29uZmlnLnByb3BlcnRpZXMgPSBmb3JtVmlld1Byb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGNvbnZlcnRGb3JtQ29uZmlnKGZvcm1Db25maWc6IGFueSk6IGFueSB7XG4gICAgY29uc3QgZm9ybWF0T25GaWVsZFR5cGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBjb25zdCB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoRklFTERfUFJPUEVSVElFUywgZmllbGQudHlwZSkpIHtcbiAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzID0gbWVyZ2VPYmplY3RzKFxuICAgICAgICAgICAgZ2V0T2JqZWN0RGVlcENvcHkoRklFTERfUFJPUEVSVElFU1tmaWVsZC50eXBlXSksXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUh0bWwgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgZmFsc2UpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUaXRsZSA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZUJ1dHRvbiA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJoaWRkZW5cIiwgZmFsc2UpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgZmFsc2UpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVUZXh0ID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVQYXNzd29yZCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlRW1haWwgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVRleHRhcmVhID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQ2hlY2tib3ggPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVOdW1iZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImtleVwiKSkge1xuICAgICAgICAgIGlmIChmaWVsZC5rZXkgPT09IFwiYWFkaGFhcl9udW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJhYWRoYWFyX251bWJlclwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGZpZWxkLmtleSA9PT0gXCJjb250YWN0X251bWJlclwiKSB7XG4gICAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcInBob25lXCIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBcInBob25lXCIgfHwgZmllbGQudHlwZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlSW1hZ2UgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZURhdGUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG5cbiAgICAgICAgZmllbGQucHJvcGVydGllcyA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgIG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICAgIGdldE9iamVjdERlZXBDb3B5KEZJRUxEX1BST1BFUlRJRVNbZmllbGQudHlwZV0pLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtYXg6IGdldE1heERhdGUoZmllbGQpLFxuICAgICAgICAgICAgICBtaW46IGdldE1pbkRhdGUoZmllbGQpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmllbGQucHJvcGVydGllc1xuICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlUGhvbmUgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVSYWRpbyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICBmaWVsZC5vcHRpb25zID0gZmllbGQub3B0aW9ucy5tYXAoKHg6IGFueSk6IGFueSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB4ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogeCwgZGlzYWJsZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogXCJcIiB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwibGFiZWxcIikgJiZcbiAgICAgICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoeCwgXCJkaXNhYmxlZFwiKSAmJlxuICAgICAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyh4LCBcImRlc2NyaXB0aW9uXCIpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGlzYWJsZWRcIikpIHtcbiAgICAgICAgICAgICAgeCA9IHsgLi4ueCwgZGlzYWJsZWQ6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHgsIFwiZGVzY3JpcHRpb25cIikpIHtcbiAgICAgICAgICAgICAgeCA9IHsgLi4ueCwgZGVzY3JpcHRpb246IGZhbHNlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVTbGlkZXIgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlIaWRkZW4oZmllbGQpO1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGZvcm1hdEZpZWxkVHlwZVNlbGVjdCA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleUhpZGRlbihmaWVsZCk7XG4gICAgICAgIGZpZWxkID0gc2V0RmllbGRBc0Zvcm1FbGVtZW50KGZpZWxkLCB0cnVlKTtcbiAgICAgICAgZmllbGQgPSB1cGRhdGVGb3JtRmllbGRQcm9wZXJ0aWVzKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlQXBpID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkQXNGb3JtRWxlbWVudChmaWVsZCwgdHJ1ZSk7XG4gICAgICAgIGZpZWxkID0gdXBkYXRlRm9ybUZpZWxkUHJvcGVydGllcyhmaWVsZCk7XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJzaG93TG9hZGVyXCIpKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInNob3dMb2FkZXJcIiwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJhcGlcIikpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZEFwaURlZmF1bHRzID0ge1xuICAgICAgICAgICAgdXJsOiBcIlwiLFxuICAgICAgICAgICAgcmVxdWVzdDoge30sXG4gICAgICAgICAgICByZXNwb25zZToge30sXG4gICAgICAgICAgICBzdGF0dXM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBcIkNhbGwgQVBJXCIsXG4gICAgICAgICAgICAgICAgbG9hZGluZzogXCJDYWxsIEFQSVwiLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IFwiQVBJIFN1Y2Nlc3NcIixcbiAgICAgICAgICAgICAgICBmYWlsZWQ6IFwiQVBJIEZhaWxlZFwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZpZWxkLmFwaSA9IGdldE9iamVjdERlZXBDb3B5KFxuICAgICAgICAgICAgbWVyZ2VPYmplY3RzKGZpZWxkQXBpRGVmYXVsdHMsIGZpZWxkQXBpRGVmYXVsdHMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmFwaSwgXCJyZXF1ZXN0XCIpICYmXG4gICAgICAgICAgIWNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLmFwaSwgXCJlbnRyeXBvaW50XCIpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGFwaUVudHJ5cG9pbnQgPSB7XG4gICAgICAgICAgICB0cmlnZ2VyczogW1wiT05fQVBJX0NBTExcIl0sXG4gICAgICAgICAgICBydWxlczogW10sXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogXCIxXCIsXG4gICAgICAgICAgICAgICAga2V5OiBcIkFQSV9DQUxMXCIsXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgZmllbGRLZXk6IGZpZWxkLmtleSxcbiAgICAgICAgICAgICAgICAgIGFwaUtleTogZmllbGQuYXBpLmVuZHBvaW50c1swXS5hcGlLZXlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGZpZWxkLmVudHJ5cG9pbnQgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICAgIG1lcmdlT2JqZWN0cyhhcGlFbnRyeXBvaW50LCBmaWVsZC5hcGkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICB9O1xuICAgICAgY29uc3QgZm9ybWF0RmllbGRUeXBlT3RwID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuXG4gICAgICAgIGZpZWxkLnByb3BlcnRpZXMgPSBnZXRPYmplY3REZWVwQ29weShcbiAgICAgICAgICBtZXJnZU9iamVjdHMoXG4gICAgICAgICAgICBnZXRPYmplY3REZWVwQ29weShGSUVMRF9QUk9QRVJUSUVTW2ZpZWxkLnR5cGVdKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWFzazogbmV3IEFycmF5KGZpZWxkPy5wcm9wZXJ0aWVzPy5vdHBMZW5ndGggPz8gNClcbiAgICAgICAgICAgICAgICAuZmlsbChcIiNcIilcbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmaWVsZC5wcm9wZXJ0aWVzXG4gICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVBYWRoYWFyTnVtYmVyID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVGaWxlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG4gICAgICBjb25zdCBmb3JtYXRGaWVsZFR5cGVDYXB0dXJlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5SGlkZGVuKGZpZWxkKTtcbiAgICAgICAgZmllbGQgPSBzZXRGaWVsZEFzRm9ybUVsZW1lbnQoZmllbGQsIHRydWUpO1xuICAgICAgICBmaWVsZCA9IHVwZGF0ZUZvcm1GaWVsZFByb3BlcnRpZXMoZmllbGQpO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH07XG5cbiAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuSFRNTDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUh0bWwoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVElUTEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVUaXRsZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5CVVRUT046XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVCdXR0b24oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuVEVYVDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVRleHQoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUEFTU1dPUkQ6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVQYXNzd29yZChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5FTUFJTDpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUVtYWlsKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFRBUkVBOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlVGV4dGFyZWEoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVDaGVja2JveChmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVOdW1iZXIoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuUFJFVklFV19JTUFHRTpcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidHlwZVwiLCBcImltYWdlXCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlSW1hZ2UoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuSU1BR0U6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVJbWFnZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5EQVRFOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlRGF0ZShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5QSE9ORTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZVBob25lKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLlJBRElPOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlUmFkaW8oZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0xJREVSOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2xpZGVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInNlYXJjaC10ZXh0XCI6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJzZWxlY3RcIik7XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWxlY3QoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0g6XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInR5cGVcIiwgXCJzZWxlY3RcIik7XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVTZWxlY3QoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuU0VMRUNUOlxuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlU2VsZWN0KGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSV9DQUxMOlxuICAgICAgICAgIGZpZWxkID0gc2V0RmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ0eXBlXCIsIFwiYXBpXCIpO1xuICAgICAgICAgIGZpZWxkID0gZm9ybWF0RmllbGRUeXBlQXBpKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkFQSTpcbiAgICAgICAgICBmaWVsZCA9IGZvcm1hdEZpZWxkVHlwZUFwaShmaWVsZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRUZpZWxkVHlwZS5PVFA6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVPdHAoZmllbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQUFESEFBUl9OVU1CRVI6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVBYWRoYWFyTnVtYmVyKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVGaWxlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgICAgZmllbGQgPSBmb3JtYXRGaWVsZFR5cGVDYXB0dXJlKGZpZWxkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZFZhbGlkYXRvcnMgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwidmFsaWRhdG9yc1wiKVxuICAgICAgICAgID8gZmllbGQudmFsaWRhdG9yc1xuICAgICAgICAgIDoge307XG5cbiAgICAgICAgZmllbGQgPSBzZXRNaXNzaW5nRmllbGRLZXlWYWx1ZShmaWVsZCwgXCJ2YWxpZGF0b3JzXCIsIHt9KTtcblxuICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwidmFsaWRhdG9yc1wiLCB7XG4gICAgICAgICAgLi4uZmllbGRbXCJ2YWxpZGF0b3JzXCJdLFxuICAgICAgICAgIG1pbjogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtaW5cIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWluKVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1pbilcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1pblwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWluKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIG1heDogY2hlY2tPYmplY3RLZXlFeGlzdHModmFsaWRhdG9ycywgXCJtYXhcIilcbiAgICAgICAgICAgID8gaXNOb3RFbXB0eVZhbHVlKHZhbGlkYXRvcnMubWF4KVxuICAgICAgICAgICAgICA/IE51bWJlcih2YWxpZGF0b3JzLm1heClcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4KVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHJlcXVpcmVkOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcInJlcXVpcmVkXCIpXG4gICAgICAgICAgICA/IEJvb2xlYW4odmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwicmVxdWlyZWRcIilcbiAgICAgICAgICAgID8gQm9vbGVhbihmaWVsZC5yZXF1aXJlZClcbiAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgbWluTGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1pbkxlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5taW5MZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWluTGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibWluTGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5taW5MZW5ndGgpXG4gICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgbWF4TGVuZ3RoOiBjaGVja09iamVjdEtleUV4aXN0cyh2YWxpZGF0b3JzLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5tYXhMZW5ndGgpXG4gICAgICAgICAgICAgID8gTnVtYmVyKHZhbGlkYXRvcnMubWF4TGVuZ3RoKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIDogY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwibGVuZ3RoXCIpXG4gICAgICAgICAgICA/IE51bWJlcihmaWVsZC5sZW5ndGgpXG4gICAgICAgICAgICA6IGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1heExlbmd0aFwiKVxuICAgICAgICAgICAgPyBOdW1iZXIoZmllbGQubWF4TGVuZ3RoKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIHBhdHRlcm46IGNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbGlkYXRvcnMsIFwicGF0dGVyblwiKVxuICAgICAgICAgICAgPyBpc05vdEVtcHR5VmFsdWUodmFsaWRhdG9ycy5wYXR0ZXJuKVxuICAgICAgICAgICAgICA/IHZhbGlkYXRvcnMucGF0dGVyblxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJwYXR0ZXJuXCIpXG4gICAgICAgICAgICA/IHsga2V5OiBcIkNVU1RPTVwiLCBwYXR0ZXJuOiBTdHJpbmcoZmllbGQucGF0dGVybikgfVxuICAgICAgICAgICAgOiBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJyZWdleFwiKVxuICAgICAgICAgICAgPyB7IGtleTogXCJDVVNUT01cIiwgcGF0dGVybjogU3RyaW5nKGZpZWxkLnJlZ2V4KSB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICB9KTtcblxuICAgICAgICBkZWxldGUgZmllbGQubWluO1xuICAgICAgICBkZWxldGUgZmllbGQubWF4O1xuICAgICAgICBkZWxldGUgZmllbGQucmVxdWlyZWQ7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5taW5MZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5sZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5tYXhMZW5ndGg7XG4gICAgICAgIGRlbGV0ZSBmaWVsZC5wYXR0ZXJuO1xuICAgICAgICBkZWxldGUgZmllbGQucmVnZXg7XG5cbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlRFWFQ6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIEVGaWVsZFR5cGUuQ0hFQ0tCT1g6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLlBSRVZJRVdfSU1BR0U6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLkZJTEU6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW47XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGg7XG4gICAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5taW4pKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWluO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ubWF4KSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZC52YWxpZGF0b3JzLm1pbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNFbXB0eVZhbHVlKGZpZWxkLnZhbGlkYXRvcnM/Lm1pbkxlbmd0aCkpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRW1wdHlWYWx1ZShmaWVsZC52YWxpZGF0b3JzPy5tYXhMZW5ndGgpKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0VtcHR5VmFsdWUoZmllbGQudmFsaWRhdG9ycz8ucGF0dGVybikpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGQudmFsaWRhdG9ycy5wYXR0ZXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgZmllbGQuaW52YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkRGVmYXVsdFZhbHVlID0gKGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0ge1xuICAgICAgICB2YWx1ZToge1xuICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICBzb3VyY2VzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGtleTogXCJPQkpFQ1RcIixcbiAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgIGtleTogXCJGT1JNX0RBVEFcIixcbiAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLiR7ZmllbGQua2V5fWBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgaXNfdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9JTklUXCJdLFxuICAgICAgICAgICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAga2V5OiBcIlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCIxXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiT0JKRUNUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiRk9STV9EQVRBXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBgJC4ke2ZpZWxkLmtleX1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFZhbHVlXCIpKSB7XG4gICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmaWVsZCwgXCJkZWZhdWx0LnZhbHVlLnNvdXJjZXNcIikpIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH0gZWxzZSBpZiAoIWNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmaWVsZCwgXCJkZWZhdWx0LnZhbHVlLnNvdXJjZXNcIikpIHtcbiAgICAgICAgICBmaWVsZCA9IHNldEZpZWxkS2V5VmFsdWUoZmllbGQsIFwiZGVmYXVsdFwiLCBkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBmaWVsZFtcImRlZmF1bHRWYWxcIl07XG4gICAgICAgIGRlbGV0ZSBmaWVsZFtcImRlZmF1bHRWYWx1ZVwiXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGRhdGVGaWVsZERpc2FiaWxpdHkgPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBmaWVsZCA9IHNldE1pc3NpbmdLZXlWYWx1ZShmaWVsZCwgXCJkaXNhYmxlZFwiLCBmYWxzZSk7XG5cbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRmllbGRNZXNzYWdlcyA9IChmaWVsZDogYW55KTogYW55ID0+IHtcbiAgICAgIGlmIChmaWVsZC5pc0Zvcm1FbGVtZW50KSB7XG4gICAgICAgIGZpZWxkID0gc2V0TWlzc2luZ0ZpZWxkS2V5VmFsdWUoZmllbGQsIFwibWVzc2FnZXNcIiwgW10pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkUmVzZXRCdXR0b24gPSAoZmllbGQ6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoZmllbGQuaXNGb3JtRWxlbWVudCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiYWN0aW9uXCIpICYmXG4gICAgICAgICAgZmllbGQuYWN0aW9uID09PSBcInJlc2V0XCIgJiZcbiAgICAgICAgICBjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJmaWVsZHNcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgZmllbGQgPSBzZXRGaWVsZEtleVZhbHVlKGZpZWxkLCBcInJlc2V0XCIsIHtcbiAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH07XG5cbiAgICBjb25zdCBzZXRGb3JtRmllbGRzID0gKGZvcm1Db25maWc6IGFueSwgZmllbGRzOiBhbnlbXSk6IGFueSA9PiB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybUNvbmZpZywgXCJtdWx0aUZvcm1cIikpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5tdWx0aUZvcm1bXCJmaWVsZHNcIl0gPSBmaWVsZHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtQ29uZmlnW1wiZmllbGRzXCJdID0gZmllbGRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgICB9O1xuXG4gICAgY29uc3Qgc2V0Rm9ybUZpZWxkR3JvdXBzID0gKGZvcm1Db25maWc6IGFueSwgZ3JvdXBzOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgZm9ybUNvbmZpZ1tcImZpZWxkR3JvdXBzXCJdID0gZ3JvdXBzO1xuXG4gICAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgICB9O1xuXG4gICAgY29uc3QgdXBkYXRlRm9ybUZpZWxkR3JvdXBzID0gKGZpZWxkR3JvdXBzOiBhbnksIGZpZWxkOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImdyb3VwS2V5XCIpKSB7XG4gICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZEdyb3VwcywgZmllbGQuZ3JvdXBLZXkpKSB7XG4gICAgICAgICAgZmllbGRHcm91cHNbZmllbGQuZ3JvdXBLZXldLnB1c2goZmllbGQua2V5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZEdyb3Vwc1tmaWVsZC5ncm91cEtleV0gPSBbZmllbGQua2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmllbGRHcm91cHM7XG4gICAgfTtcblxuICAgIGxldCBmaWVsZHM6IGFueVtdID0gZ2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnKTtcblxuICAgIGxldCBmaWVsZEdyb3VwczogYW55ID0ge307XG5cbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGZpZWxkID0gZm9ybWF0T25GaWVsZFR5cGUoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkRGlzYWJpbGl0eShmaWVsZCk7XG5cbiAgICAgIGZpZWxkR3JvdXBzID0gdXBkYXRlRm9ybUZpZWxkR3JvdXBzKGZpZWxkR3JvdXBzLCBmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGREZWZhdWx0VmFsdWUoZmllbGQpO1xuXG4gICAgICBmaWVsZCA9IHVwZGF0ZUZpZWxkVmFsaWRhdG9ycyhmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGRSZXNldEJ1dHRvbihmaWVsZCk7XG5cbiAgICAgIGZpZWxkID0gdXBkYXRlRmllbGRNZXNzYWdlcyhmaWVsZCk7XG4gICAgfVxuXG4gICAgZm9ybUNvbmZpZyA9IHNldEZvcm1GaWVsZEdyb3Vwcyhmb3JtQ29uZmlnLCBmaWVsZEdyb3Vwcyk7XG5cbiAgICBmb3JtQ29uZmlnID0gc2V0Rm9ybUZpZWxkcyhmb3JtQ29uZmlnLCBmaWVsZHMpO1xuXG4gICAgcmV0dXJuIGZvcm1Db25maWc7XG4gIH1cbn1cbiJdfQ==