@bluedynamics/cdk8s-monitoring 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -49,6 +49,18 @@ export declare class PrometheusStackConstruct extends Construct {
49
49
  * through untouched; a plain quoted scalar would fight over the same
50
50
  * character.
51
51
  */
52
+ /**
53
+ * Extra Alertmanager route demoting staging-namespace alerts, empty unless
54
+ * stagingAlerts is enabled. Placed after the noise-drop routes (those apply
55
+ * to staging just as much) and before the default production receiver.
56
+ */
57
+ private generateStagingRoute;
58
+ /**
59
+ * The `staging` email receiver, empty unless stagingAlerts is enabled. Same
60
+ * mailbox as the production receiver, but the subject prefix marks the mail
61
+ * as non-production and keeps it filterable.
62
+ */
63
+ private generateStagingReceiver;
52
64
  private generateGrafanaSecurity;
53
65
  private generateHelmValues;
54
66
  }
@@ -79,6 +79,35 @@ class PrometheusStackConstruct extends constructs_1.Construct {
79
79
  * through untouched; a plain quoted scalar would fight over the same
80
80
  * character.
81
81
  */
82
+ /**
83
+ * Extra Alertmanager route demoting staging-namespace alerts, empty unless
84
+ * stagingAlerts is enabled. Placed after the noise-drop routes (those apply
85
+ * to staging just as much) and before the default production receiver.
86
+ */
87
+ generateStagingRoute(config) {
88
+ if (!config.stagingAlerts.enabled)
89
+ return '';
90
+ return `
91
+ - match_re:
92
+ namespace: ^(${config.stagingAlerts.namespaces.join('|')})$
93
+ receiver: staging`;
94
+ }
95
+ /**
96
+ * The `staging` email receiver, empty unless stagingAlerts is enabled. Same
97
+ * mailbox as the production receiver, but the subject prefix marks the mail
98
+ * as non-production and keeps it filterable.
99
+ */
100
+ generateStagingReceiver(config) {
101
+ if (!config.stagingAlerts.enabled)
102
+ return '';
103
+ return `
104
+ - name: staging
105
+ email_configs:
106
+ - send_resolved: true
107
+ to: ${config.smtp.from}
108
+ headers:
109
+ subject: '[STAGING] {{ template "email.default.subject" . }}'`;
110
+ }
82
111
  generateGrafanaSecurity(config) {
83
112
  if (!config.embedding.enabled)
84
113
  return '';
@@ -235,14 +264,14 @@ alertmanager:
235
264
  receiver: 'null'
236
265
  - match:
237
266
  alertname: KubeletTooManyPods
238
- receiver: 'null'
267
+ receiver: 'null'${this.generateStagingRoute(config)}
239
268
 
240
269
  receivers:
241
270
  - name: 'null'
242
271
  - name: email
243
272
  email_configs:
244
273
  - send_resolved: true
245
- to: ${config.smtp.from}
274
+ to: ${config.smtp.from}${this.generateStagingReceiver(config)}
246
275
 
247
276
  # Inhibition rules allow to mute a set of alerts given that another alert is firing.
248
277
  # We use this to mute any warning-level notifications if the same alert is already critical.
@@ -398,6 +427,11 @@ grafana:
398
427
  memory: 512Mi
399
428
  dashboards:
400
429
  enabled: true
430
+ # Dashboard ConfigMaps may opt into a named Grafana folder via this
431
+ # annotation; ConfigMaps without it keep landing in General.
432
+ folderAnnotation: grafana_folder
433
+ provider:
434
+ foldersFromFilesStructure: true
401
435
  datasources:
402
436
  enabled: false # We manually provision datasources (Prometheus→Thanos, Loki)
403
437
 
@@ -527,4 +561,4 @@ kube-state-metrics:
527
561
  }
528
562
  }
529
563
  exports.PrometheusStackConstruct = PrometheusStackConstruct;
530
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWV0aGV1cy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWtDO0FBQ2xDLDJDQUF1QztBQVF2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFDckQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXBDLDRCQUE0QjtRQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsa0RBQWtEO1FBQ2xELDJDQUEyQztRQUMzQyxJQUFJLGlCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzNDLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsdUJBQXVCO29CQUNqRCw2QkFBNkIsRUFBRSxZQUFZO29CQUMzQyw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsb0RBQW9EO2dCQUMxRCxLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxT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LENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRztnQkFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUF5QjVDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQ0FzQkMsTUFBTSxDQUFDLFNBQVM7Ozs7Ozs7O3VEQVFJLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7OzttQ0FRcEMsTUFBTSxDQUFDLFNBQVM7OzBCQUV6QixlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F1Q3hDLENBQUM7SUFDQSxDQUFDO0NBQ0Y7QUExZkQsNERBMGZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpT2JqZWN0IH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBNb25pdG9yaW5nQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb21ldGhldXNTdGFja1Byb3BzIHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGt1YmUtcHJvbWV0aGV1cy1zdGFjayBIZWxtQ2hhcnQgd2l0aCBQcm9tZXRoZXVzLCBHcmFmYW5hLCBhbmQgQWxlcnRtYW5hZ2VyLlxuICpcbiAqIFRoaXMgaXMgdGhlIGNvcmUgbW9uaXRvcmluZyBzdGFjayB0aGF0IGluY2x1ZGVzOlxuICogLSBQcm9tZXRoZXVzIChtZXRyaWNzIGNvbGxlY3Rpb24sIDIgcmVwbGljYXMsIDNkIHJldGVudGlvbilcbiAqIC0gR3JhZmFuYSAodmlzdWFsaXphdGlvbiwgaW5ncmVzcyB3aXRoIExldCdzIEVuY3J5cHQpXG4gKiAtIEFsZXJ0bWFuYWdlciAoYWxlcnQgcm91dGluZywgU01UUCBub3RpZmljYXRpb25zKVxuICogLSBQcm9tZXRoZXVzIE9wZXJhdG9yIChtYW5hZ2VzIFByb21ldGhldXMgQ1JEcylcbiAqIC0gTm9kZSBFeHBvcnRlciAoc3lzdGVtIG1ldHJpY3MgRGFlbW9uU2V0KVxuICogLSBrdWJlLXN0YXRlLW1ldHJpY3MgKEt1YmVybmV0ZXMgcmVzb3VyY2UgbWV0cmljcylcbiAqXG4gKiBQcmVyZXF1aXNpdGVzOlxuICogLSBOYW1lc3BhY2UgZXhpc3RzXG4gKiAtIFByaW9yaXR5Q2xhc3MgJ2hpZ2gtcHJpb3JpdHknIGV4aXN0c1xuICogLSBMb25naG9ybiBzdG9yYWdlIGNsYXNzIGF2YWlsYWJsZVxuICogLSBjZXJ0LW1hbmFnZXIgQ2x1c3Rlcklzc3VlciBjb25maWd1cmVkXG4gKiAtIFRoYW5vcyBTMyBzZWNyZXQgZXhpc3RzICh0aGFub3Mtb2Jqc3RvcmUtY29uZmlnKVxuICpcbiAqIFN5bmMgV2F2ZTogMiAoY29yZSBzZXJ2aWNlcyAtIGFmdGVyIFMzIGJ1Y2tldHMgYW5kIHNlY3JldHMpXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9tZXRoZXVzU3RhY2tDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvbWV0aGV1c1N0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgeyBuYW1lc3BhY2UsIGNvbmZpZyB9ID0gcHJvcHM7XG5cbiAgICAvLyBHZW5lcmF0ZSBIZWxtIHZhbHVlcyBZQU1MXG4gICAgY29uc3QgaGVsbVZhbHVlcyA9IHRoaXMuZ2VuZXJhdGVIZWxtVmFsdWVzKGNvbmZpZyk7XG5cbiAgICAvLyBDcmVhdGUgSGVsbUNoYXJ0IHJlc291cmNlIChLM1MgSGVsbSBjb250cm9sbGVyKVxuICAgIC8vIFdhdmUgMjogQ29yZSBTZXJ2aWNlcyAtIG1vbml0b3Jpbmcgc3RhY2tcbiAgICBuZXcgQXBpT2JqZWN0KHRoaXMsICdrdWJlLXByb21ldGhldXMtc3RhY2snLCB7XG4gICAgICBhcGlWZXJzaW9uOiAnaGVsbS5jYXR0bGUuaW8vdjEnLFxuICAgICAga2luZDogJ0hlbG1DaGFydCcsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBuYW1lOiAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJyxcbiAgICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdtb25pdG9yaW5nJyxcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSc6ICdjZGs4cycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YnOiAnbW9uaXRvcmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGFubm90YXRpb25zOiB7XG4gICAgICAgICAgJ2FyZ29jZC5hcmdvcHJvai5pby9zeW5jLXdhdmUnOiAnMicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICByZXBvOiAnaHR0cHM6Ly9wcm9tZXRoZXVzLWNvbW11bml0eS5naXRodWIuaW8vaGVsbS1jaGFydHMnLFxuICAgICAgICBjaGFydDogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgIHZlcnNpb246IGNvbmZpZy52ZXJzaW9ucy5wcm9tZXRoZXVzU3RhY2sgPT09ICdsYXRlc3QnID8gdW5kZWZpbmVkIDogY29uZmlnLnZlcnNpb25zLnByb21ldGhldXNTdGFjayxcbiAgICAgICAgdGFyZ2V0TmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICAgIHZhbHVlc0NvbnRlbnQ6IGhlbG1WYWx1ZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGBbc2VjdXJpdHldYCBzZWN0aW9uIG9mIGdyYWZhbmEuaW5pLCBlbXB0eSB1bmxlc3MgZW1iZWRkaW5nIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEdyYWZhbmEgc2VuZHMgYFgtRnJhbWUtT3B0aW9uczogZGVueWAgdW5sZXNzIGBhbGxvd19lbWJlZGRpbmdgIGlzIHNldCwgd2hpY2hcbiAgICogYmxvY2tzIGV4dGVybmFsbHkgc2hhcmVkIChcInB1YmxpY1wiKSBkYXNoYm9hcmRzIGluIGFuIGlmcmFtZSBqdXN0IGFzIG11Y2ggYXNcbiAgICogdGhlIGF1dGhlbnRpY2F0ZWQgVUkuIERyb3BwaW5nIHRoYXQgaGVhZGVyIGFsb25lIHdvdWxkIGxldCBhbnkgc2l0ZSBmcmFtZVxuICAgKiBHcmFmYW5hLCBzbyBpdCBpcyBwYWlyZWQgd2l0aCBhIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IHdob3NlXG4gICAqIGBmcmFtZS1hbmNlc3RvcnNgIG5hbWVzIHRoZSBhbGxvd2VkIG9yaWdpbnMg4oCUIGJyb3dzZXJzIGhvbm91ciBpdCBpbiBwbGFjZSBvZlxuICAgKiB0aGUgcmVtb3ZlZCBoZWFkZXIuXG4gICAqXG4gICAqIFRoZSBvdGhlciBkaXJlY3RpdmVzIGFyZSBHcmFmYW5hJ3Mgb3duIGRlZmF1bHQgdGVtcGxhdGUgdmVyYmF0aW07IGAkTk9OQ0VgXG4gICAqIGFuZCBgJFJPT1RfUEFUSGAgYXJlIGV4cGFuZGVkIGJ5IEdyYWZhbmEgcGVyIHJlcXVlc3QuIE9ubHlcbiAgICogYCRGT1JNX0FDVElPTl9BRERJVElPTkFMX0hPU1RTYCBpcyBkcm9wcGVkOiBpdCBleGlzdHMgYXMgYSBwbGFjZWhvbGRlciBqdXN0XG4gICAqIGluIHJlY2VudCBHcmFmYW5hcywgYW5kIG9sZGVyIG9uZXMgd291bGQgZW1pdCBpdCBsaXRlcmFsbHkgaW50byB0aGUgaGVhZGVyLlxuICAgKlxuICAgKiBUaGUgcG9saWN5IGlzIHdyYXBwZWQgaW4gYFwiXCJcImAsIGV4YWN0bHkgYXMgR3JhZmFuYSdzIG93biBkZWZhdWx0cy5pbmkgZG9lcy5cbiAgICogZ3JhZmFuYS5pbmkgaXMgcGFyc2VkIGJ5IGdvLWluaSwgd2hpY2ggdHJlYXRzIGA7YCBhcyBhbiBpbmxpbmUgY29tbWVudCDigJQgYW5cbiAgICogdW5xdW90ZWQgcG9saWN5IGlzIHNpbGVudGx5IHRydW5jYXRlZCBhdCBpdHMgZmlyc3QgZGlyZWN0aXZlIHNlcGFyYXRvciwgYW5kXG4gICAqIHRoZSBicm93c2VyIHRoZW4gcmVjZWl2ZXMgYSBDU1Agd2l0aG91dCBgZnJhbWUtYW5jZXN0b3JzYCB3aGlsZVxuICAgKiBgWC1GcmFtZS1PcHRpb25zYCBpcyBhbHJlYWR5IGdvbmUuIEEgWUFNTCBibG9jayBzY2FsYXIgY2FycmllcyB0aGUgcXVvdGVzXG4gICAqIHRocm91Z2ggdW50b3VjaGVkOyBhIHBsYWluIHF1b3RlZCBzY2FsYXIgd291bGQgZmlnaHQgb3ZlciB0aGUgc2FtZVxuICAgKiBjaGFyYWN0ZXIuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlR3JhZmFuYVNlY3VyaXR5KGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb25maWcuZW1iZWRkaW5nLmVuYWJsZWQpIHJldHVybiAnJztcbiAgICBjb25zdCBwb2xpY3kgPSBbXG4gICAgICBcInNjcmlwdC1zcmMgJ3NlbGYnICd1bnNhZmUtZXZhbCcgJ3Vuc2FmZS1pbmxpbmUnICdzdHJpY3QtZHluYW1pYycgJE5PTkNFXCIsXG4gICAgICBcIm9iamVjdC1zcmMgJ25vbmUnXCIsXG4gICAgICBcImZvbnQtc3JjICdzZWxmJ1wiLFxuICAgICAgXCJzdHlsZS1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJyBibG9iOlwiLFxuICAgICAgJ2ltZy1zcmMgKiBkYXRhOicsXG4gICAgICBcImJhc2UtdXJpICdzZWxmJ1wiLFxuICAgICAgXCJjb25uZWN0LXNyYyAnc2VsZicgZ3JhZmFuYS5jb20gd3M6Ly8kUk9PVF9QQVRIIHdzczovLyRST09UX1BBVEhcIixcbiAgICAgIFwibWFuaWZlc3Qtc3JjICdzZWxmJ1wiLFxuICAgICAgXCJtZWRpYS1zcmMgJ25vbmUnXCIsXG4gICAgICBcImZvcm0tYWN0aW9uICdzZWxmJ1wiLFxuICAgICAgYGZyYW1lLWFuY2VzdG9ycyAnc2VsZicgJHtjb25maWcuZW1iZWRkaW5nLmZyYW1lQW5jZXN0b3JzLmpvaW4oJyAnKX1gLFxuICAgIF0ubWFwKChkaXJlY3RpdmUpID0+IGAke2RpcmVjdGl2ZX07YCkuam9pbignJyk7XG4gICAgcmV0dXJuIGBcbiAgICBzZWN1cml0eTpcbiAgICAgIGFsbG93X2VtYmVkZGluZzogdHJ1ZVxuICAgICAgY29udGVudF9zZWN1cml0eV9wb2xpY3k6IHRydWVcbiAgICAgIGNvbnRlbnRfc2VjdXJpdHlfcG9saWN5X3RlbXBsYXRlOiA+LVxuICAgICAgICBcIlwiXCIke3BvbGljeX1cIlwiXCJgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUhlbG1WYWx1ZXMoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICAvLyBUZW1wbyBkYXRhc291cmNlIGlzIG9ubHkgcHJvdmlzaW9uZWQgd2hlbiB0cmFjaW5nIGlzIGVuYWJsZWQuIFdoZW5cbiAgICAvLyBkaXNhYmxlZCB0aGlzIGlzIGVtcHR5LCBzbyB0aGUgR3JhZmFuYSBibG9jayBpcyBieXRlLWlkZW50aWNhbCB0byBiZWZvcmUuXG4gICAgY29uc3QgdGVtcG9EYXRhc291cmNlID0gY29uZmlnLnRlbXBvLmVuYWJsZWQgPyBgXG4gICAgICAtIG5hbWU6IFRlbXBvXG4gICAgICAgIHR5cGU6IHRlbXBvXG4gICAgICAgIHVpZDogdGVtcG9cbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICB1cmw6IGh0dHA6Ly90ZW1wby4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjMyMDBcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZW91dDogNjBcbiAgICAgICAgICB0cmFjZXNUb0xvZ3NWMjpcbiAgICAgICAgICAgIGRhdGFzb3VyY2VVaWQ6IGxva2lcbiAgICAgICAgICAgIHNwYW5TdGFydFRpbWVTaGlmdDogXCItMWhcIlxuICAgICAgICAgICAgc3BhbkVuZFRpbWVTaGlmdDogXCIxaFwiXG4gICAgICAgICAgICBmaWx0ZXJCeVRyYWNlSUQ6IHRydWVcbiAgICAgICAgICB0cmFjZXNUb01ldHJpY3M6XG4gICAgICAgICAgICBkYXRhc291cmNlVWlkOiB0aGFub3NgIDogJyc7XG4gICAgcmV0dXJuIGBrdWJlRXRjZDpcbiAgZW5hYmxlZDogZmFsc2VcblxuIyBEaXNhYmxlIGt1YmUtY29udHJvbGxlci1tYW5hZ2VyIGFuZCBrdWJlLXNjaGVkdWxlciBtb25pdG9yaW5nLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NhYmxlc3BhZ2hldHRpL2szcy1tb25pdG9yaW5nL2lzc3Vlcy8yXG5rdWJlQ29udHJvbGxlck1hbmFnZXI6XG4gIGVuYWJsZWQ6IGZhbHNlXG5rdWJlU2NoZWR1bGVyOlxuICBlbmFibGVkOiBmYWxzZVxuXG4jIERldGVjdCBQb2REaXNydXB0aW9uQnVkZ2V0cyB0aGF0IHdvdWxkIGJsb2NrIGEgbm9kZSBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLlxuIyBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgc2l0IGF0IGRpc3J1cHRpb25zQWxsb3dlZD0wIGJ5IGRlc2lnbiAoTG9uZ2hvcm4gaW5zdGFuY2UtbWFuYWdlcnMsXG4jIENOUEcgKi1wcmltYXJ5KSBhbmQgYXJlIGV4Y2x1ZGVkIHNvIHRoZSBhbGVydCBvbmx5IGZpcmVzIG9uIGFub21hbG91cyBhcHAgUERCcy5cbmFkZGl0aW9uYWxQcm9tZXRoZXVzUnVsZXNNYXA6XG4gIHBkYi1kcmFpbi1zYWZldHk6XG4gICAgZ3JvdXBzOlxuICAgICAgLSBuYW1lOiBwZGIucnVsZXNcbiAgICAgICAgaW50ZXJ2YWw6IDFtXG4gICAgICAgIHJ1bGVzOlxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZVxuICAgICAgICAgICAgZXhwcjoga3ViZV9wb2RkaXNydXB0aW9uYnVkZ2V0X3N0YXR1c19wb2RfZGlzcnVwdGlvbnNfYWxsb3dlZHtuYW1lc3BhY2UhPVwibG9uZ2hvcm4tc3lzdGVtXCIsIHBvZGRpc3J1cHRpb25idWRnZXQhflwiLiotcHJpbWFyeVwifSA9PSAwXG4gICAgICAgICAgICBmb3I6IDE1bVxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBzZXZlcml0eTogd2FybmluZ1xuICAgICAgICAgICAgICBjb21wb25lbnQ6IGNsdXN0ZXItdXBncmFkZVxuICAgICAgICAgICAgYW5ub3RhdGlvbnM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IFwiUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBhbGxvd3MgMCB2b2x1bnRhcnkgZGlzcnVwdGlvbnNcIlxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogfFxuICAgICAgICAgICAgICAgIFRoZSBQb2REaXNydXB0aW9uQnVkZ2V0IHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgICAgICAgIGhhcyBhbGxvd2VkIDAgdm9sdW50YXJ5IGRpc3J1cHRpb25zIGZvciBvdmVyIDE1IG1pbnV0ZXMuIFRoaXMgd2lsbCBibG9jayBhIG5vZGVcbiAgICAgICAgICAgICAgICBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLiBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgKExvbmdob3JuLCBDTlBHIHByaW1hcmllcykgYXJlXG4gICAgICAgICAgICAgICAgZXhjbHVkZWQgZnJvbSB0aGlzIGFsZXJ0LiBMaWtlbHkgYSBkZWdyYWRlZCBkZXBsb3ltZW50ICgwIGhlYWx0aHkgcG9kcykgb3IgYVxuICAgICAgICAgICAgICAgIHNpbmdsZS1yZXBsaWNhIGRlcGxveW1lbnQgd2l0aCBtaW5BdmFpbGFibGU9MS5cbiAgICAgICAgICAgICAgICBDaGVjazoga3ViZWN0bCBnZXQgcGRiIC1uIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19IHt7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZUNyaXRpY2FsXG4gICAgICAgICAgICBleHByOiBrdWJlX3BvZGRpc3J1cHRpb25idWRnZXRfc3RhdHVzX3BvZF9kaXNydXB0aW9uc19hbGxvd2Vke25hbWVzcGFjZSE9XCJsb25naG9ybi1zeXN0ZW1cIiwgcG9kZGlzcnVwdGlvbmJ1ZGdldCF+XCIuKi1wcmltYXJ5XCJ9ID09IDBcbiAgICAgICAgICAgIGZvcjogMWhcbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgc2V2ZXJpdHk6IGNyaXRpY2FsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogY2x1c3Rlci11cGdyYWRlXG4gICAgICAgICAgICBhbm5vdGF0aW9uczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogXCJQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IHVuZHJhaW5hYmxlID4xaFwiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8XG4gICAgICAgICAgICAgICAgUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBoYXMgYmxvY2tlZFxuICAgICAgICAgICAgICAgIHZvbHVudGFyeSBkaXNydXB0aW9ucyBmb3Igb3ZlciBhbiBob3VyLiBBIGszcyBhZ2VudCB1cGdyYWRlIHdvdWxkIHN0YWxsIG9uIHRoaXMgbm9kZS5cbiMgRHJvcCBoaWdoLWNhcmRpbmFsaXR5IEFQSSBzZXJ2ZXIgYW5kIGV0Y2QgaGlzdG9ncmFtIGJ1Y2tldHMgdG8gcmVkdWNlIG1lbW9yeSB1c2FnZVxuIyBUaGVzZSBtZXRyaWNzIGFsb25lIGFjY291bnQgZm9yIH4yMDBrIHNlcmllcyAoNDclIG9mIHRvdGFsIGNhcmRpbmFsaXR5KVxuIyBXZSBrZWVwIF9zdW0gYW5kIF9jb3VudCBzdWZmaXhlcyB3aGljaCBhcmUgc3VmZmljaWVudCBmb3IgcmF0ZSBjYWxjdWxhdGlvbnNcbmt1YmVBcGlTZXJ2ZXI6XG4gIHNlcnZpY2VNb25pdG9yOlxuICAgIG1ldHJpY1JlbGFiZWxpbmdzOlxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X3NsaV9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2JvZHlfc2l6ZV9ieXRlc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVzcG9uc2Vfc2l6ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnZXRjZF9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcblxuIyBLdWJlbGV0IGFsc28gZXhwb3NlcyBhcGlzZXJ2ZXIgbWV0cmljcyAtIGFwcGx5IHNhbWUgZmlsdGVyc1xua3ViZWxldDpcbiAgc2VydmljZU1vbml0b3I6XG4gICAgbWV0cmljUmVsYWJlbGluZ3M6XG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3Rfc2xpX2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfYm9keV9zaXplX2J5dGVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXNwb25zZV9zaXplc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdldGNkX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuXG5hbGVydG1hbmFnZXI6XG4gIGNvbmZpZzpcbiAgICBnbG9iYWw6XG4gICAgICBzbXRwX2Zyb206ICR7Y29uZmlnLnNtdHAuZnJvbX1cbiAgICAgIHNtdHBfc21hcnRob3N0OiAke2NvbmZpZy5zbXRwLmhvc3R9OiR7Y29uZmlnLnNtdHAucG9ydH1cbiAgICAgIHNtdHBfcmVxdWlyZV90bHM6ICR7Y29uZmlnLnNtdHAucmVxdWlyZVRsc31cbiAgICAgIHNtdHBfYXV0aF91c2VybmFtZTogJHtjb25maWcuc210cC51c2VybmFtZSB8fCBjb25maWcuc210cC5mcm9tfVxuICAgICAgc210cF9hdXRoX3Bhc3N3b3JkOiAke2NvbmZpZy5zbXRwLnBhc3N3b3JkIHx8ICcnfVxuICAgIHJvdXRlOlxuICAgICAgZ3JvdXBfYnk6IFsnam9iJ11cbiAgICAgIGdyb3VwX3dhaXQ6IDMwc1xuICAgICAgZ3JvdXBfaW50ZXJ2YWw6IDVtXG4gICAgICByZXBlYXRfaW50ZXJ2YWw6IDFoXG4gICAgICByZWNlaXZlcjogZW1haWxcbiAgICAgIHJvdXRlczpcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBXYXRjaGRvZ1xuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogQ1BVVGhyb3R0bGluZ0hpZ2hcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IEt1YmVNZW1vcnlPdmVyY29tbWl0XG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBLdWJlQ1BVT3ZlcmNvbW1pdFxuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogS3ViZWxldFRvb01hbnlQb2RzXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcblxuICAgIHJlY2VpdmVyczpcbiAgICAtIG5hbWU6ICdudWxsJ1xuICAgIC0gbmFtZTogZW1haWxcbiAgICAgIGVtYWlsX2NvbmZpZ3M6XG4gICAgICAtIHNlbmRfcmVzb2x2ZWQ6IHRydWVcbiAgICAgICAgdG86ICR7Y29uZmlnLnNtdHAuZnJvbX1cblxuICAgICMgSW5oaWJpdGlvbiBydWxlcyBhbGxvdyB0byBtdXRlIGEgc2V0IG9mIGFsZXJ0cyBnaXZlbiB0aGF0IGFub3RoZXIgYWxlcnQgaXMgZmlyaW5nLlxuICAgICMgV2UgdXNlIHRoaXMgdG8gbXV0ZSBhbnkgd2FybmluZy1sZXZlbCBub3RpZmljYXRpb25zIGlmIHRoZSBzYW1lIGFsZXJ0IGlzIGFscmVhZHkgY3JpdGljYWwuXG4gICAgaW5oaWJpdF9ydWxlczpcbiAgICAtIHNvdXJjZV9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCdcbiAgICAgIHRhcmdldF9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICd3YXJuaW5nJ1xuICAgICAgIyBBcHBseSBpbmhpYml0aW9uIGlmIHRoZSBhbGVydG5hbWUgaXMgdGhlIHNhbWUuXG4gICAgICBlcXVhbDogWydhbGVydG5hbWUnLCAnbmFtZXNwYWNlJ11cblxuICBhbGVydG1hbmFnZXJTcGVjOlxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5hbGVydG1hbmFnZXJ9XG4gICAgcG9kQW50aUFmZmluaXR5OiBcInNvZnRcIlxuICAgIHN0b3JhZ2U6XG4gICAgICB2b2x1bWVDbGFpbVRlbXBsYXRlOlxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOiBbXCJSZWFkV3JpdGVPbmNlXCJdXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6ICR7Y29uZmlnLnN0b3JhZ2UuYWxlcnRtYW5hZ2VyfVxuICAgIHJlc291cmNlczpcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxlcnRtYW5hZ2VyLmxpbWl0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5saW1pdHMubWVtb3J5fVxuICAgICAgcmVxdWVzdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5yZXF1ZXN0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgIGNvbnRhaW5lcnM6XG4gICAgLSBuYW1lOiBjb25maWctcmVsb2FkZXJcbiAgICAgIHJlc291cmNlczpcbiAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIucmVxdWVzdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLm1lbW9yeX1cbiAgICAgICAgbGltaXRzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5jcHV9XG4gICAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIubGltaXRzLm1lbW9yeX1cblxuXG5wcm9tZXRoZXVzOlxuICAjIEVuYWJsZSBUaGFub3Mgc2VydmljZSBmb3IgZ1JQQyBjb21tdW5pY2F0aW9uXG4gICMgUmVxdWlyZWQgZm9yIEhlbG0gY2hhcnQgdG8gcHJvcGVybHkgcmVuZGVyIFRoYW5vcyBzaWRlY2FyIGNvbmZpZ3VyYXRpb25cbiAgdGhhbm9zU2VydmljZTpcbiAgICBlbmFibGVkOiB0cnVlXG5cbiAgcHJvbWV0aGV1c1NwZWM6XG4gICAgcmV0ZW50aW9uOiAke2NvbmZpZy5yZXRlbnRpb24ucHJvbWV0aGV1c30gICMgUmVkdWNlZCBmcm9tIDdkIC0gVGhhbm9zIHByb3ZpZGVzIGxvbmctdGVybSBzdG9yYWdlIGluIFMzXG5cbiAgICAjIERpc2NvdmVyIEFMTCBTZXJ2aWNlTW9uaXRvcnMsIFBvZE1vbml0b3JzIGFuZCBQcm9tZXRoZXVzUnVsZXMgaW4gQUxMIG5hbWVzcGFjZXNcbiAgICAjIFNldHRpbmcgTmlsVXNlc0hlbG1WYWx1ZXM6IGZhbHNlIG1lYW5zIG5pbCBzZWxlY3RvcnMgPSBcInNlbGVjdCBhbGxcIlxuICAgICMgRW1wdHkgbmFtZXNwYWNlIHNlbGVjdG9ycyB7fSBtZWFuIFwic2VhcmNoIGFsbCBuYW1lc3BhY2VzXCJcbiAgICAjIFdpdGhvdXQgdGhlIHJ1bGUqIHNldHRpbmdzLCBydWxlU2VsZWN0b3Iga2VlcHMgdGhlIGNoYXJ0IGRlZmF1bHRcbiAgICAjIChtYXRjaExhYmVsczoge3JlbGVhc2U6IDxuYW1lPn0pIGFuZCBoYW5kLWF1dGhvcmVkIFByb21ldGhldXNSdWxlcyB0aGF0XG4gICAgIyBsYWNrIHRoZSByZWxlYXNlIGxhYmVsIGFyZSBzaWxlbnRseSBpZ25vcmVkLlxuICAgICMgTm90ZTogVGhpcyBkb2VzIE5PVCBhZmZlY3QgVGhhbm9zIHNpZGVjYXIgLSBjb250cm9sbGVkIGJ5IHRoYW5vcy5vYmplY3RTdG9yYWdlQ29uZmlnXG4gICAgc2VydmljZU1vbml0b3JTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHBvZE1vbml0b3JTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHJ1bGVTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHNlcnZpY2VNb25pdG9yTmFtZXNwYWNlU2VsZWN0b3I6IHt9XG4gICAgcG9kTW9uaXRvck5hbWVzcGFjZVNlbGVjdG9yOiB7fVxuICAgIHJ1bGVOYW1lc3BhY2VTZWxlY3Rvcjoge31cblxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5wcm9tZXRoZXVzfVxuICAgIHBvZEFudGlBZmZpbml0eTogXCJoYXJkXCJcbiAgICBzdG9yYWdlU3BlYzpcbiAgICAgIHZvbHVtZUNsYWltVGVtcGxhdGU6XG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogbG9uZ2hvcm5cbiAgICAgICAgICBhY2Nlc3NNb2RlczogW1wiUmVhZFdyaXRlT25jZVwiXVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAke2NvbmZpZy5zdG9yYWdlLnByb21ldGhldXN9ICAjIFJlZHVjZWQgZnJvbSA2R2kgKDNkIHJldGVudGlvbiBuZWVkcyBsZXNzIHNwYWNlKVxuXG4gICAgcmVzb3VyY2VzOlxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLmxpbWl0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMubGltaXRzLm1lbW9yeX1cbiAgICAgIHJlcXVlc3RzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxuICAgICMgRXh0ZXJuYWwgbGFiZWxzIGZvciBtdWx0aS1jbHVzdGVyIGlkZW50aWZpY2F0aW9uIGFuZCBUaGFub3NcbiAgICBleHRlcm5hbExhYmVsczpcbiAgICAgIGNsdXN0ZXI6ICR7Y29uZmlnLmNsdXN0ZXJOYW1lfVxuICAgICAgcmVwbGljYTogXCIkKFBPRF9OQU1FKVwiXG5cbiAgICAjIFRoYW5vcyBzaWRlY2FyIGZvciBsb25nLXRlcm0gbWV0cmljcyBzdG9yYWdlIGluIFMzXG4gICAgIyBOT1RFOiBjaGFydCA+PTg1LnggcmVxdWlyZXMgdGhlIGV4aXN0aW5nU2VjcmV0IHNoYXBlLiBUaGUgbGVnYWN5IGZsYXRcbiAgICAjIHtuYW1lLCBrZXl9IGZvcm0gaXMgc2lsZW50bHkgZHJvcHBlZCBieSB0aGUgY2hhcnQsIHdoaWNoIHJlbW92ZXMgdGhlXG4gICAgIyBzaWRlY2FyIGFuZCBzdG9wcyBhbGwgUzMgYmxvY2sgdXBsb2FkcyAocmVncmVzc2lvbiBzZWVuIDIwMjYtMDMtMzEpLlxuICAgIHRoYW5vczpcbiAgICAgIG9iamVjdFN0b3JhZ2VDb25maWc6XG4gICAgICAgIGV4aXN0aW5nU2VjcmV0OlxuICAgICAgICAgIG5hbWU6IHRoYW5vcy1vYmpzdG9yZS1jb25maWcgICMgRVNPLW1hbmFnZWQgc2VjcmV0XG4gICAgICAgICAga2V5OiBvYmpzdG9yZS55bWxcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgICMgTk9URTogdGhhbm9zLXNpZGVjYXIgaXMgTk9UIGxpc3RlZCBoZXJlIC0gaXQncyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGJ5IFByb21ldGhldXMgT3BlcmF0b3JcbiAgICAjIHdoZW4gdGhhbm9zLm9iamVjdFN0b3JhZ2VDb25maWcgaXMgc2V0LiBTcGVjaWZ5aW5nIGl0IGluIGNvbnRhaW5lcnNbXSB3b3VsZCBvdmVycmlkZVxuICAgICMgdGhlIG9wZXJhdG9yJ3MgZGVmaW5pdGlvbiBhbmQgcmVxdWlyZSB1cyB0byBtYW51YWxseSBzcGVjaWZ5IHRoZSBpbWFnZSwgd2hpY2ggYnJlYWtzXG4gICAgIyB3aGVuIHRoZSBvcGVyYXRvciB1cGRhdGVzIHRoZSB0aGFub3MgdmVyc2lvbi5cbiAgICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogY29uZmlnLXJlbG9hZGVyXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgICAgIGxpbWl0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5tZW1vcnl9XG5cbiAgICBzZXJ2aWNlOlxuICAgICAgc2Vzc2lvbkFmZmluaXR5OiBcIkNsaWVudElQXCJcblxuXG5ncmFmYW5hOlxuICAjIFJlY3JlYXRlIHN0cmF0ZWd5IGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIHN0b3JhZ2UgUFZDIGlzIFJXTzpcbiAgIyBhIFJvbGxpbmdVcGRhdGUgd291bGQgc3VyZ2UgYSBzZWNvbmQgcG9kIHRoYXQgY2Fubm90IG1vdW50IHRoZVxuICAjIHZvbHVtZSAoRmFpbGVkQXR0YWNoVm9sdW1lKSwgYmxvY2tpbmcgdGhlIHJvbGxvdXQgaW5kZWZpbml0ZWx5LlxuICBkZXBsb3ltZW50U3RyYXRlZ3k6XG4gICAgdHlwZTogUmVjcmVhdGVcblxuICAjIFVzZSBleGlzdGluZyBzZWNyZXQgZm9yIGFkbWluIGNyZWRlbnRpYWxzIChtYW5hZ2VkIGJ5IEVTTylcbiAgIyBUaGlzIHByZXZlbnRzIHBhc3N3b3JkIHJlZ2VuZXJhdGlvbiBvbiBIZWxtIHVwZ3JhZGVzXG4gIGFkbWluOlxuICAgIGV4aXN0aW5nU2VjcmV0OiBcImdyYWZhbmEtYWRtaW4tY3JlZGVudGlhbHNcIlxuICAgIHVzZXJLZXk6IFwiYWRtaW4tdXNlclwiXG4gICAgcGFzc3dvcmRLZXk6IFwiYWRtaW4tcGFzc3dvcmRcIlxuXG4gICMgR3JhZmFuYSBydW5zIGh0dHAgb24gOjMwMDAgYmVoaW5kIHRoZSBUTFMtdGVybWluYXRpbmcgaW5ncmVzcy4gV2l0aG91dCBhblxuICAjIGV4cGxpY2l0IHJvb3RfdXJsIGl0IGJ1aWxkcyBzaGFyZSBhbmQgcHVibGljLWRhc2hib2FyZCBsaW5rcyBmcm9tIHRoZSBpbnRlcm5hbFxuICAjIGFkZHJlc3MgKGh0dHA6Ly88cG9kPjozMDAwKTsgZGVyaXZlIHRoZSBleHRlcm5hbCBVUkwgZnJvbSB0aGUgY29uZmlndXJlZCBkb21haW4uXG4gIGdyYWZhbmEuaW5pOlxuICAgIHNlcnZlcjpcbiAgICAgIGRvbWFpbjogJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuICAgICAgcm9vdF91cmw6IGh0dHBzOi8vJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfSR7dGhpcy5nZW5lcmF0ZUdyYWZhbmFTZWN1cml0eShjb25maWcpfVxuXG4gICMgRGlzYWJsZSBkZWZhdWx0IFByb21ldGhldXMgZGF0YXNvdXJjZSAod2UgcHJvdmlkZSBvdXIgb3duIHBvaW50aW5nIHRvIFRoYW5vcyBRdWVyeSlcbiAgZGVmYXVsdERhdGFzb3VyY2VFbmFibGVkOiBmYWxzZVxuXG4gICMgU2lkZWNhciBjb250YWluZXJzIGZvciBkYXNoYm9hcmQvZGF0YXNvdXJjZSBwcm92aXNpb25pbmdcbiAgc2lkZWNhcjpcbiAgICByZXNvdXJjZXM6XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAxMG1cbiAgICAgICAgbWVtb3J5OiAyNTZNaVxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6IDEwMG1cbiAgICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIGRhc2hib2FyZHM6XG4gICAgICBlbmFibGVkOiB0cnVlXG4gICAgZGF0YXNvdXJjZXM6XG4gICAgICBlbmFibGVkOiBmYWxzZSAgIyBXZSBtYW51YWxseSBwcm92aXNpb24gZGF0YXNvdXJjZXMgKFByb21ldGhldXPihpJUaGFub3MsIExva2kpXG5cbiAgaW5ncmVzczpcbiAgICBlbmFibGVkOiB0cnVlJHtjb25maWcuZG9tYWlucy5pbmdyZXNzQ2xhc3NOYW1lID8gYFxcbiAgICBpbmdyZXNzQ2xhc3NOYW1lOiAke2NvbmZpZy5kb21haW5zLmluZ3Jlc3NDbGFzc05hbWV9YCA6ICcnfVxuICAgIGhvc3RzOlxuICAgICAgLSAke2NvbmZpZy5kb21haW5zLmdyYWZhbmF9XG4gICAgYW5ub3RhdGlvbnM6XG4gICAgICBjZXJ0LW1hbmFnZXIuaW8vY2x1c3Rlci1pc3N1ZXI6IFwibGV0c2VuY3J5cHQtY2x1c3Rlci1pc3N1ZXJcIlxuICAgICAgdHJhZWZpay5pbmdyZXNzLmt1YmVybmV0ZXMuaW8vcm91dGVyLmVudHJ5cG9pbnRzOiB3ZWJzZWN1cmVcbiAgICB0bHM6XG4gICAgICAtIHNlY3JldE5hbWU6IGdyYWZhbmEtZ2VuZXJhbC10bHNcbiAgICAgICAgaG9zdHM6XG4gICAgICAgIC0gJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuXG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLmxpbWl0cy5jcHV9XG4gICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLmxpbWl0cy5tZW1vcnl9XG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLnJlcXVlc3RzLmNwdX1cbiAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEucmVxdWVzdHMubWVtb3J5fVxuXG4gIHJlYWRpbmVzc1Byb2JlOlxuICAgIGh0dHBHZXQ6XG4gICAgICBwYXRoOiAvYXBpL2hlYWx0aFxuICAgICAgcG9ydDogMzAwMFxuICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDMwXG4gICAgcGVyaW9kU2Vjb25kczogMTBcbiAgICB0aW1lb3V0U2Vjb25kczogNVxuICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDNcblxuICBsaXZlbmVzc1Byb2JlOlxuICAgIGh0dHBHZXQ6XG4gICAgICBwYXRoOiAvYXBpL2hlYWx0aFxuICAgICAgcG9ydDogMzAwMFxuICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDYwXG4gICAgcGVyaW9kU2Vjb25kczogMTBcbiAgICB0aW1lb3V0U2Vjb25kczogMzBcbiAgICBmYWlsdXJlVGhyZXNob2xkOiAxMFxuXG4gIHBlcnNpc3RlbmNlOlxuICAgIGVuYWJsZWQ6IHRydWVcbiAgICBzdG9yYWdlQ2xhc3NOYW1lOiBsb25naG9yblxuICAgIGFjY2Vzc01vZGVzOlxuICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgc2l6ZTogJHtjb25maWcuc3RvcmFnZS5ncmFmYW5hfVxuXG4gICMgTWFudWFsIGRhdGFzb3VyY2UgcHJvdmlzaW9uaW5nIChzaWRlY2FyIGRpc2FibGVkKVxuICAjIFRoYW5vcyBRdWVyeSDihpIgbG9uZy10ZXJtL2hpc3RvcmljYWwgbWV0cmljcyAoUzMgdmlhIFN0b3JlICsgbGl2ZSBzaWRlY2FyKSwgZGVmYXVsdFxuICAjIFByb21ldGhldXMg4oaSIGxvY2FsLCByZWNlbnQvaGlnaC1yZXMgb25seSAoa2VwdCBmb3IgbG93LWxhdGVuY3kgcmVjZW50IHF1ZXJpZXMpXG4gICMgTG9raSBmb3IgbG9nIGFnZ3JlZ2F0aW9uXG4gIGRhdGFzb3VyY2VzOlxuICAgIGRhdGFzb3VyY2VzLnlhbWw6XG4gICAgICBhcGlWZXJzaW9uOiAxXG4gICAgICAjIERlbGV0ZSBhbnkgcHJlLWV4aXN0aW5nIExva2kgZGF0YXNvdXJjZSAoZS5nLiBvbmUgY3JlYXRlZCB3aXRoIGFcbiAgICAgICMgcmFuZG9tbHkgZ2VuZXJhdGVkIFVJRCBiZWZvcmUgd2UgcGlubmVkIHVpZDogbG9raSkuIFdpdGhvdXQgdGhpcyxcbiAgICAgICMgR3JhZmFuYSBmYWlscyBwcm92aXNpb25pbmcgd2l0aCBcImRhdGEgc291cmNlIG5vdCBmb3VuZFwiIGJlY2F1c2VcbiAgICAgICMgdGhlIHVwc2VydCBjb2xsaWRlcyB3aXRoIHRoZSBleGlzdGluZyBlbnRyeS5cbiAgICAgIGRlbGV0ZURhdGFzb3VyY2VzOlxuICAgICAgLSBuYW1lOiBMb2tpXG4gICAgICAgIG9yZ0lkOiAxXG4gICAgICBkYXRhc291cmNlczpcbiAgICAgIC0gbmFtZTogVGhhbm9zXG4gICAgICAgIHR5cGU6IHByb21ldGhldXNcbiAgICAgICAgdWlkOiB0aGFub3NcbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICAjIHRoYW5vcy1xdWVyeSBTZXJ2aWNlOiBodHRwIHBvcnQgOTA5MCAtPiBjb250YWluZXIgaHR0cCAxMDkwMlxuICAgICAgICB1cmw6IGh0dHA6Ly90aGFub3MtcXVlcnkuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkwXG4gICAgICAgIGlzRGVmYXVsdDogdHJ1ZVxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw6IDMwc1xuICAgICAgLSBuYW1lOiBQcm9tZXRoZXVzXG4gICAgICAgIHR5cGU6IHByb21ldGhldXNcbiAgICAgICAgdWlkOiBwcm9tZXRoZXVzXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8va3ViZS1wcm9tZXRoZXVzLXN0YWNrLXByb21ldGhldXMuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkwXG4gICAgICAgIGlzRGVmYXVsdDogZmFsc2VcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZUludGVydmFsOiAzMHNcbiAgICAgIC0gbmFtZTogTG9raVxuICAgICAgICB0eXBlOiBsb2tpXG4gICAgICAgIHVpZDogbG9raVxuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgIHVybDogaHR0cDovL2xva2ktZ2F0ZXdheS4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIG1heExpbmVzOiAxMDAwJHt0ZW1wb0RhdGFzb3VyY2V9XG5cbnByb21ldGhldXNPcGVyYXRvcjpcbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogMVxuICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIHJlcXVlc3RzOlxuICAgICAgY3B1OiA1MG1cbiAgICAgIG1lbW9yeTogMTI4TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxucHJvbWV0aGV1cy1ub2RlLWV4cG9ydGVyOlxuICAjIEJpbmQgOjkxMDAgdG8gdGhlIG5vZGUgSW50ZXJuYWxJUCBvbmx5LCBub3QgMC4wLjAuMC4gV2l0aCBrdWJlUkJBQ1Byb3h5XG4gICMgZGlzYWJsZWQgdGhlIHN1Yi1jaGFydCBzZXRzIEhPU1RfSVAgZnJvbSBmaWVsZFJlZiBzdGF0dXMuaG9zdElQLCB3aGljaCBpc1xuICAjIHRoZSBub2RlJ3MgSW50ZXJuYWxJUCAoRVg6IHZTd2l0Y2ggMTAuNi4wLnggdmlhIC0tbm9kZS1pcDsgY2xvdWQ6IGhjbG91ZFxuICAjIHByaXZhdGUgSVApLiBub2RlLWV4cG9ydGVyIGlzIGhvc3ROZXR3b3JrLCBzbyBQcm9tZXRoZXVzIGFscmVhZHkgc2NyYXBlc1xuICAjIHRoYXQgSW50ZXJuYWxJUCBlbmRwb2ludCAtPiBzY3JhcGluZyBpcyB1bmFmZmVjdGVkLCBvbmx5IHRoZSBwdWJsaWMtTklDXG4gICMgZXhwb3N1cmUgb2YgdGhlIHVuYXV0aGVudGljYXRlZCBtZXRyaWNzIG9uIHRoZSBFWCBwdWJsaWMgSVBzIGdvZXMgYXdheS5cbiAgc2VydmljZTpcbiAgICBsaXN0ZW5PbkFsbEludGVyZmFjZXM6IGZhbHNlXG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6IDUwbVxuICAgICAgbWVtb3J5OiA1ME1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDVtXG4gICAgICBtZW1vcnk6IDE2TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxua3ViZS1zdGF0ZS1tZXRyaWNzOlxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAxXG4gICAgICBtZW1vcnk6IDUxMk1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDVtXG4gICAgICBtZW1vcnk6IDEyOE1pXG4gIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5gO1xuICB9XG59XG4iXX0=
564
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWV0aGV1cy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWtDO0FBQ2xDLDJDQUF1QztBQVF2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFDckQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXBDLDRCQUE0QjtRQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsa0RBQWtEO1FBQ2xELDJDQUEyQztRQUMzQyxJQUFJLGlCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzNDLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsdUJBQXVCO29CQUNqRCw2QkFBNkIsRUFBRSxZQUFZO29CQUMzQyw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsb0RBQW9EO2dCQUMxRCxLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxT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Ozs7Ozs7Ozs7Ozs7OztnQkF5QmpELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzswQkFDWixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21CQXlCcEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTs7VUFFNUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7Ozs7O1lBT3BCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzs7OzthQUlyQixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRztnQkFDaEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU07O2FBRXpDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO2dCQUNsQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQXlCNUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O21DQXNCQyxNQUFNLENBQUMsU0FBUzs7Ozs7Ozs7dURBUUksTUFBTSxDQUFDLFNBQVM7Ozs7Ozs7O21DQVFwQyxNQUFNLENBQUMsU0FBUzs7MEJBRXpCLGVBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDeEMsQ0FBQztJQUNBLENBQUM7Q0FDRjtBQTVoQkQsNERBNGhCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaU9iamVjdCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTW9uaXRvcmluZ0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9tZXRoZXVzU3RhY2tQcm9wcyB7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBjb25maWc6IE1vbml0b3JpbmdDb25maWc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBrdWJlLXByb21ldGhldXMtc3RhY2sgSGVsbUNoYXJ0IHdpdGggUHJvbWV0aGV1cywgR3JhZmFuYSwgYW5kIEFsZXJ0bWFuYWdlci5cbiAqXG4gKiBUaGlzIGlzIHRoZSBjb3JlIG1vbml0b3Jpbmcgc3RhY2sgdGhhdCBpbmNsdWRlczpcbiAqIC0gUHJvbWV0aGV1cyAobWV0cmljcyBjb2xsZWN0aW9uLCAyIHJlcGxpY2FzLCAzZCByZXRlbnRpb24pXG4gKiAtIEdyYWZhbmEgKHZpc3VhbGl6YXRpb24sIGluZ3Jlc3Mgd2l0aCBMZXQncyBFbmNyeXB0KVxuICogLSBBbGVydG1hbmFnZXIgKGFsZXJ0IHJvdXRpbmcsIFNNVFAgbm90aWZpY2F0aW9ucylcbiAqIC0gUHJvbWV0aGV1cyBPcGVyYXRvciAobWFuYWdlcyBQcm9tZXRoZXVzIENSRHMpXG4gKiAtIE5vZGUgRXhwb3J0ZXIgKHN5c3RlbSBtZXRyaWNzIERhZW1vblNldClcbiAqIC0ga3ViZS1zdGF0ZS1tZXRyaWNzIChLdWJlcm5ldGVzIHJlc291cmNlIG1ldHJpY3MpXG4gKlxuICogUHJlcmVxdWlzaXRlczpcbiAqIC0gTmFtZXNwYWNlIGV4aXN0c1xuICogLSBQcmlvcml0eUNsYXNzICdoaWdoLXByaW9yaXR5JyBleGlzdHNcbiAqIC0gTG9uZ2hvcm4gc3RvcmFnZSBjbGFzcyBhdmFpbGFibGVcbiAqIC0gY2VydC1tYW5hZ2VyIENsdXN0ZXJJc3N1ZXIgY29uZmlndXJlZFxuICogLSBUaGFub3MgUzMgc2VjcmV0IGV4aXN0cyAodGhhbm9zLW9ianN0b3JlLWNvbmZpZylcbiAqXG4gKiBTeW5jIFdhdmU6IDIgKGNvcmUgc2VydmljZXMgLSBhZnRlciBTMyBidWNrZXRzIGFuZCBzZWNyZXRzKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbWV0aGV1c1N0YWNrQ29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb21ldGhldXNTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgbmFtZXNwYWNlLCBjb25maWcgfSA9IHByb3BzO1xuXG4gICAgLy8gR2VuZXJhdGUgSGVsbSB2YWx1ZXMgWUFNTFxuICAgIGNvbnN0IGhlbG1WYWx1ZXMgPSB0aGlzLmdlbmVyYXRlSGVsbVZhbHVlcyhjb25maWcpO1xuXG4gICAgLy8gQ3JlYXRlIEhlbG1DaGFydCByZXNvdXJjZSAoSzNTIEhlbG0gY29udHJvbGxlcilcbiAgICAvLyBXYXZlIDI6IENvcmUgU2VydmljZXMgLSBtb25pdG9yaW5nIHN0YWNrXG4gICAgbmV3IEFwaU9iamVjdCh0aGlzLCAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJywge1xuICAgICAgYXBpVmVyc2lvbjogJ2hlbG0uY2F0dGxlLmlvL3YxJyxcbiAgICAgIGtpbmQ6ICdIZWxtQ2hhcnQnLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgbmFtZTogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnbW9uaXRvcmluZycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcmVwbzogJ2h0dHBzOi8vcHJvbWV0aGV1cy1jb21tdW5pdHkuZ2l0aHViLmlvL2hlbG0tY2hhcnRzJyxcbiAgICAgICAgY2hhcnQ6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICB2ZXJzaW9uOiBjb25maWcudmVyc2lvbnMucHJvbWV0aGV1c1N0YWNrID09PSAnbGF0ZXN0JyA/IHVuZGVmaW5lZCA6IGNvbmZpZy52ZXJzaW9ucy5wcm9tZXRoZXVzU3RhY2ssXG4gICAgICAgIHRhcmdldE5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICB2YWx1ZXNDb250ZW50OiBoZWxtVmFsdWVzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBgW3NlY3VyaXR5XWAgc2VjdGlvbiBvZiBncmFmYW5hLmluaSwgZW1wdHkgdW5sZXNzIGVtYmVkZGluZyBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBHcmFmYW5hIHNlbmRzIGBYLUZyYW1lLU9wdGlvbnM6IGRlbnlgIHVubGVzcyBgYWxsb3dfZW1iZWRkaW5nYCBpcyBzZXQsIHdoaWNoXG4gICAqIGJsb2NrcyBleHRlcm5hbGx5IHNoYXJlZCAoXCJwdWJsaWNcIikgZGFzaGJvYXJkcyBpbiBhbiBpZnJhbWUganVzdCBhcyBtdWNoIGFzXG4gICAqIHRoZSBhdXRoZW50aWNhdGVkIFVJLiBEcm9wcGluZyB0aGF0IGhlYWRlciBhbG9uZSB3b3VsZCBsZXQgYW55IHNpdGUgZnJhbWVcbiAgICogR3JhZmFuYSwgc28gaXQgaXMgcGFpcmVkIHdpdGggYSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSB3aG9zZVxuICAgKiBgZnJhbWUtYW5jZXN0b3JzYCBuYW1lcyB0aGUgYWxsb3dlZCBvcmlnaW5zIOKAlCBicm93c2VycyBob25vdXIgaXQgaW4gcGxhY2Ugb2ZcbiAgICogdGhlIHJlbW92ZWQgaGVhZGVyLlxuICAgKlxuICAgKiBUaGUgb3RoZXIgZGlyZWN0aXZlcyBhcmUgR3JhZmFuYSdzIG93biBkZWZhdWx0IHRlbXBsYXRlIHZlcmJhdGltOyBgJE5PTkNFYFxuICAgKiBhbmQgYCRST09UX1BBVEhgIGFyZSBleHBhbmRlZCBieSBHcmFmYW5hIHBlciByZXF1ZXN0LiBPbmx5XG4gICAqIGAkRk9STV9BQ1RJT05fQURESVRJT05BTF9IT1NUU2AgaXMgZHJvcHBlZDogaXQgZXhpc3RzIGFzIGEgcGxhY2Vob2xkZXIganVzdFxuICAgKiBpbiByZWNlbnQgR3JhZmFuYXMsIGFuZCBvbGRlciBvbmVzIHdvdWxkIGVtaXQgaXQgbGl0ZXJhbGx5IGludG8gdGhlIGhlYWRlci5cbiAgICpcbiAgICogVGhlIHBvbGljeSBpcyB3cmFwcGVkIGluIGBcIlwiXCJgLCBleGFjdGx5IGFzIEdyYWZhbmEncyBvd24gZGVmYXVsdHMuaW5pIGRvZXMuXG4gICAqIGdyYWZhbmEuaW5pIGlzIHBhcnNlZCBieSBnby1pbmksIHdoaWNoIHRyZWF0cyBgO2AgYXMgYW4gaW5saW5lIGNvbW1lbnQg4oCUIGFuXG4gICAqIHVucXVvdGVkIHBvbGljeSBpcyBzaWxlbnRseSB0cnVuY2F0ZWQgYXQgaXRzIGZpcnN0IGRpcmVjdGl2ZSBzZXBhcmF0b3IsIGFuZFxuICAgKiB0aGUgYnJvd3NlciB0aGVuIHJlY2VpdmVzIGEgQ1NQIHdpdGhvdXQgYGZyYW1lLWFuY2VzdG9yc2Agd2hpbGVcbiAgICogYFgtRnJhbWUtT3B0aW9uc2AgaXMgYWxyZWFkeSBnb25lLiBBIFlBTUwgYmxvY2sgc2NhbGFyIGNhcnJpZXMgdGhlIHF1b3Rlc1xuICAgKiB0aHJvdWdoIHVudG91Y2hlZDsgYSBwbGFpbiBxdW90ZWQgc2NhbGFyIHdvdWxkIGZpZ2h0IG92ZXIgdGhlIHNhbWVcbiAgICogY2hhcmFjdGVyLlxuICAgKi9cbiAgLyoqXG4gICAqIEV4dHJhIEFsZXJ0bWFuYWdlciByb3V0ZSBkZW1vdGluZyBzdGFnaW5nLW5hbWVzcGFjZSBhbGVydHMsIGVtcHR5IHVubGVzc1xuICAgKiBzdGFnaW5nQWxlcnRzIGlzIGVuYWJsZWQuIFBsYWNlZCBhZnRlciB0aGUgbm9pc2UtZHJvcCByb3V0ZXMgKHRob3NlIGFwcGx5XG4gICAqIHRvIHN0YWdpbmcganVzdCBhcyBtdWNoKSBhbmQgYmVmb3JlIHRoZSBkZWZhdWx0IHByb2R1Y3Rpb24gcmVjZWl2ZXIuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlU3RhZ2luZ1JvdXRlKGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb25maWcuc3RhZ2luZ0FsZXJ0cy5lbmFibGVkKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGBcbiAgICAgIC0gbWF0Y2hfcmU6XG4gICAgICAgICAgbmFtZXNwYWNlOiBeKCR7Y29uZmlnLnN0YWdpbmdBbGVydHMubmFtZXNwYWNlcy5qb2luKCd8Jyl9KSRcbiAgICAgICAgcmVjZWl2ZXI6IHN0YWdpbmdgO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBgc3RhZ2luZ2AgZW1haWwgcmVjZWl2ZXIsIGVtcHR5IHVubGVzcyBzdGFnaW5nQWxlcnRzIGlzIGVuYWJsZWQuIFNhbWVcbiAgICogbWFpbGJveCBhcyB0aGUgcHJvZHVjdGlvbiByZWNlaXZlciwgYnV0IHRoZSBzdWJqZWN0IHByZWZpeCBtYXJrcyB0aGUgbWFpbFxuICAgKiBhcyBub24tcHJvZHVjdGlvbiBhbmQga2VlcHMgaXQgZmlsdGVyYWJsZS5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVTdGFnaW5nUmVjZWl2ZXIoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmZpZy5zdGFnaW5nQWxlcnRzLmVuYWJsZWQpIHJldHVybiAnJztcbiAgICByZXR1cm4gYFxuICAgIC0gbmFtZTogc3RhZ2luZ1xuICAgICAgZW1haWxfY29uZmlnczpcbiAgICAgIC0gc2VuZF9yZXNvbHZlZDogdHJ1ZVxuICAgICAgICB0bzogJHtjb25maWcuc210cC5mcm9tfVxuICAgICAgICBoZWFkZXJzOlxuICAgICAgICAgIHN1YmplY3Q6ICdbU1RBR0lOR10ge3sgdGVtcGxhdGUgXCJlbWFpbC5kZWZhdWx0LnN1YmplY3RcIiAuIH19J2A7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlR3JhZmFuYVNlY3VyaXR5KGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb25maWcuZW1iZWRkaW5nLmVuYWJsZWQpIHJldHVybiAnJztcbiAgICBjb25zdCBwb2xpY3kgPSBbXG4gICAgICBcInNjcmlwdC1zcmMgJ3NlbGYnICd1bnNhZmUtZXZhbCcgJ3Vuc2FmZS1pbmxpbmUnICdzdHJpY3QtZHluYW1pYycgJE5PTkNFXCIsXG4gICAgICBcIm9iamVjdC1zcmMgJ25vbmUnXCIsXG4gICAgICBcImZvbnQtc3JjICdzZWxmJ1wiLFxuICAgICAgXCJzdHlsZS1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJyBibG9iOlwiLFxuICAgICAgJ2ltZy1zcmMgKiBkYXRhOicsXG4gICAgICBcImJhc2UtdXJpICdzZWxmJ1wiLFxuICAgICAgXCJjb25uZWN0LXNyYyAnc2VsZicgZ3JhZmFuYS5jb20gd3M6Ly8kUk9PVF9QQVRIIHdzczovLyRST09UX1BBVEhcIixcbiAgICAgIFwibWFuaWZlc3Qtc3JjICdzZWxmJ1wiLFxuICAgICAgXCJtZWRpYS1zcmMgJ25vbmUnXCIsXG4gICAgICBcImZvcm0tYWN0aW9uICdzZWxmJ1wiLFxuICAgICAgYGZyYW1lLWFuY2VzdG9ycyAnc2VsZicgJHtjb25maWcuZW1iZWRkaW5nLmZyYW1lQW5jZXN0b3JzLmpvaW4oJyAnKX1gLFxuICAgIF0ubWFwKChkaXJlY3RpdmUpID0+IGAke2RpcmVjdGl2ZX07YCkuam9pbignJyk7XG4gICAgcmV0dXJuIGBcbiAgICBzZWN1cml0eTpcbiAgICAgIGFsbG93X2VtYmVkZGluZzogdHJ1ZVxuICAgICAgY29udGVudF9zZWN1cml0eV9wb2xpY3k6IHRydWVcbiAgICAgIGNvbnRlbnRfc2VjdXJpdHlfcG9saWN5X3RlbXBsYXRlOiA+LVxuICAgICAgICBcIlwiXCIke3BvbGljeX1cIlwiXCJgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUhlbG1WYWx1ZXMoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICAvLyBUZW1wbyBkYXRhc291cmNlIGlzIG9ubHkgcHJvdmlzaW9uZWQgd2hlbiB0cmFjaW5nIGlzIGVuYWJsZWQuIFdoZW5cbiAgICAvLyBkaXNhYmxlZCB0aGlzIGlzIGVtcHR5LCBzbyB0aGUgR3JhZmFuYSBibG9jayBpcyBieXRlLWlkZW50aWNhbCB0byBiZWZvcmUuXG4gICAgY29uc3QgdGVtcG9EYXRhc291cmNlID0gY29uZmlnLnRlbXBvLmVuYWJsZWQgPyBgXG4gICAgICAtIG5hbWU6IFRlbXBvXG4gICAgICAgIHR5cGU6IHRlbXBvXG4gICAgICAgIHVpZDogdGVtcG9cbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICB1cmw6IGh0dHA6Ly90ZW1wby4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjMyMDBcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZW91dDogNjBcbiAgICAgICAgICB0cmFjZXNUb0xvZ3NWMjpcbiAgICAgICAgICAgIGRhdGFzb3VyY2VVaWQ6IGxva2lcbiAgICAgICAgICAgIHNwYW5TdGFydFRpbWVTaGlmdDogXCItMWhcIlxuICAgICAgICAgICAgc3BhbkVuZFRpbWVTaGlmdDogXCIxaFwiXG4gICAgICAgICAgICBmaWx0ZXJCeVRyYWNlSUQ6IHRydWVcbiAgICAgICAgICB0cmFjZXNUb01ldHJpY3M6XG4gICAgICAgICAgICBkYXRhc291cmNlVWlkOiB0aGFub3NgIDogJyc7XG4gICAgcmV0dXJuIGBrdWJlRXRjZDpcbiAgZW5hYmxlZDogZmFsc2VcblxuIyBEaXNhYmxlIGt1YmUtY29udHJvbGxlci1tYW5hZ2VyIGFuZCBrdWJlLXNjaGVkdWxlciBtb25pdG9yaW5nLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NhYmxlc3BhZ2hldHRpL2szcy1tb25pdG9yaW5nL2lzc3Vlcy8yXG5rdWJlQ29udHJvbGxlck1hbmFnZXI6XG4gIGVuYWJsZWQ6IGZhbHNlXG5rdWJlU2NoZWR1bGVyOlxuICBlbmFibGVkOiBmYWxzZVxuXG4jIERldGVjdCBQb2REaXNydXB0aW9uQnVkZ2V0cyB0aGF0IHdvdWxkIGJsb2NrIGEgbm9kZSBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLlxuIyBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgc2l0IGF0IGRpc3J1cHRpb25zQWxsb3dlZD0wIGJ5IGRlc2lnbiAoTG9uZ2hvcm4gaW5zdGFuY2UtbWFuYWdlcnMsXG4jIENOUEcgKi1wcmltYXJ5KSBhbmQgYXJlIGV4Y2x1ZGVkIHNvIHRoZSBhbGVydCBvbmx5IGZpcmVzIG9uIGFub21hbG91cyBhcHAgUERCcy5cbmFkZGl0aW9uYWxQcm9tZXRoZXVzUnVsZXNNYXA6XG4gIHBkYi1kcmFpbi1zYWZldHk6XG4gICAgZ3JvdXBzOlxuICAgICAgLSBuYW1lOiBwZGIucnVsZXNcbiAgICAgICAgaW50ZXJ2YWw6IDFtXG4gICAgICAgIHJ1bGVzOlxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZVxuICAgICAgICAgICAgZXhwcjoga3ViZV9wb2RkaXNydXB0aW9uYnVkZ2V0X3N0YXR1c19wb2RfZGlzcnVwdGlvbnNfYWxsb3dlZHtuYW1lc3BhY2UhPVwibG9uZ2hvcm4tc3lzdGVtXCIsIHBvZGRpc3J1cHRpb25idWRnZXQhflwiLiotcHJpbWFyeVwifSA9PSAwXG4gICAgICAgICAgICBmb3I6IDE1bVxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBzZXZlcml0eTogd2FybmluZ1xuICAgICAgICAgICAgICBjb21wb25lbnQ6IGNsdXN0ZXItdXBncmFkZVxuICAgICAgICAgICAgYW5ub3RhdGlvbnM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IFwiUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBhbGxvd3MgMCB2b2x1bnRhcnkgZGlzcnVwdGlvbnNcIlxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogfFxuICAgICAgICAgICAgICAgIFRoZSBQb2REaXNydXB0aW9uQnVkZ2V0IHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgICAgICAgIGhhcyBhbGxvd2VkIDAgdm9sdW50YXJ5IGRpc3J1cHRpb25zIGZvciBvdmVyIDE1IG1pbnV0ZXMuIFRoaXMgd2lsbCBibG9jayBhIG5vZGVcbiAgICAgICAgICAgICAgICBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLiBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgKExvbmdob3JuLCBDTlBHIHByaW1hcmllcykgYXJlXG4gICAgICAgICAgICAgICAgZXhjbHVkZWQgZnJvbSB0aGlzIGFsZXJ0LiBMaWtlbHkgYSBkZWdyYWRlZCBkZXBsb3ltZW50ICgwIGhlYWx0aHkgcG9kcykgb3IgYVxuICAgICAgICAgICAgICAgIHNpbmdsZS1yZXBsaWNhIGRlcGxveW1lbnQgd2l0aCBtaW5BdmFpbGFibGU9MS5cbiAgICAgICAgICAgICAgICBDaGVjazoga3ViZWN0bCBnZXQgcGRiIC1uIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19IHt7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZUNyaXRpY2FsXG4gICAgICAgICAgICBleHByOiBrdWJlX3BvZGRpc3J1cHRpb25idWRnZXRfc3RhdHVzX3BvZF9kaXNydXB0aW9uc19hbGxvd2Vke25hbWVzcGFjZSE9XCJsb25naG9ybi1zeXN0ZW1cIiwgcG9kZGlzcnVwdGlvbmJ1ZGdldCF+XCIuKi1wcmltYXJ5XCJ9ID09IDBcbiAgICAgICAgICAgIGZvcjogMWhcbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgc2V2ZXJpdHk6IGNyaXRpY2FsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogY2x1c3Rlci11cGdyYWRlXG4gICAgICAgICAgICBhbm5vdGF0aW9uczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogXCJQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IHVuZHJhaW5hYmxlID4xaFwiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8XG4gICAgICAgICAgICAgICAgUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBoYXMgYmxvY2tlZFxuICAgICAgICAgICAgICAgIHZvbHVudGFyeSBkaXNydXB0aW9ucyBmb3Igb3ZlciBhbiBob3VyLiBBIGszcyBhZ2VudCB1cGdyYWRlIHdvdWxkIHN0YWxsIG9uIHRoaXMgbm9kZS5cbiMgRHJvcCBoaWdoLWNhcmRpbmFsaXR5IEFQSSBzZXJ2ZXIgYW5kIGV0Y2QgaGlzdG9ncmFtIGJ1Y2tldHMgdG8gcmVkdWNlIG1lbW9yeSB1c2FnZVxuIyBUaGVzZSBtZXRyaWNzIGFsb25lIGFjY291bnQgZm9yIH4yMDBrIHNlcmllcyAoNDclIG9mIHRvdGFsIGNhcmRpbmFsaXR5KVxuIyBXZSBrZWVwIF9zdW0gYW5kIF9jb3VudCBzdWZmaXhlcyB3aGljaCBhcmUgc3VmZmljaWVudCBmb3IgcmF0ZSBjYWxjdWxhdGlvbnNcbmt1YmVBcGlTZXJ2ZXI6XG4gIHNlcnZpY2VNb25pdG9yOlxuICAgIG1ldHJpY1JlbGFiZWxpbmdzOlxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X3NsaV9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2JvZHlfc2l6ZV9ieXRlc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVzcG9uc2Vfc2l6ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnZXRjZF9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcblxuIyBLdWJlbGV0IGFsc28gZXhwb3NlcyBhcGlzZXJ2ZXIgbWV0cmljcyAtIGFwcGx5IHNhbWUgZmlsdGVyc1xua3ViZWxldDpcbiAgc2VydmljZU1vbml0b3I6XG4gICAgbWV0cmljUmVsYWJlbGluZ3M6XG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3Rfc2xpX2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfYm9keV9zaXplX2J5dGVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXNwb25zZV9zaXplc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdldGNkX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuXG5hbGVydG1hbmFnZXI6XG4gIGNvbmZpZzpcbiAgICBnbG9iYWw6XG4gICAgICBzbXRwX2Zyb206ICR7Y29uZmlnLnNtdHAuZnJvbX1cbiAgICAgIHNtdHBfc21hcnRob3N0OiAke2NvbmZpZy5zbXRwLmhvc3R9OiR7Y29uZmlnLnNtdHAucG9ydH1cbiAgICAgIHNtdHBfcmVxdWlyZV90bHM6ICR7Y29uZmlnLnNtdHAucmVxdWlyZVRsc31cbiAgICAgIHNtdHBfYXV0aF91c2VybmFtZTogJHtjb25maWcuc210cC51c2VybmFtZSB8fCBjb25maWcuc210cC5mcm9tfVxuICAgICAgc210cF9hdXRoX3Bhc3N3b3JkOiAke2NvbmZpZy5zbXRwLnBhc3N3b3JkIHx8ICcnfVxuICAgIHJvdXRlOlxuICAgICAgZ3JvdXBfYnk6IFsnam9iJ11cbiAgICAgIGdyb3VwX3dhaXQ6IDMwc1xuICAgICAgZ3JvdXBfaW50ZXJ2YWw6IDVtXG4gICAgICByZXBlYXRfaW50ZXJ2YWw6IDFoXG4gICAgICByZWNlaXZlcjogZW1haWxcbiAgICAgIHJvdXRlczpcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBXYXRjaGRvZ1xuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogQ1BVVGhyb3R0bGluZ0hpZ2hcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IEt1YmVNZW1vcnlPdmVyY29tbWl0XG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBLdWJlQ1BVT3ZlcmNvbW1pdFxuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogS3ViZWxldFRvb01hbnlQb2RzXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCcke3RoaXMuZ2VuZXJhdGVTdGFnaW5nUm91dGUoY29uZmlnKX1cblxuICAgIHJlY2VpdmVyczpcbiAgICAtIG5hbWU6ICdudWxsJ1xuICAgIC0gbmFtZTogZW1haWxcbiAgICAgIGVtYWlsX2NvbmZpZ3M6XG4gICAgICAtIHNlbmRfcmVzb2x2ZWQ6IHRydWVcbiAgICAgICAgdG86ICR7Y29uZmlnLnNtdHAuZnJvbX0ke3RoaXMuZ2VuZXJhdGVTdGFnaW5nUmVjZWl2ZXIoY29uZmlnKX1cblxuICAgICMgSW5oaWJpdGlvbiBydWxlcyBhbGxvdyB0byBtdXRlIGEgc2V0IG9mIGFsZXJ0cyBnaXZlbiB0aGF0IGFub3RoZXIgYWxlcnQgaXMgZmlyaW5nLlxuICAgICMgV2UgdXNlIHRoaXMgdG8gbXV0ZSBhbnkgd2FybmluZy1sZXZlbCBub3RpZmljYXRpb25zIGlmIHRoZSBzYW1lIGFsZXJ0IGlzIGFscmVhZHkgY3JpdGljYWwuXG4gICAgaW5oaWJpdF9ydWxlczpcbiAgICAtIHNvdXJjZV9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCdcbiAgICAgIHRhcmdldF9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICd3YXJuaW5nJ1xuICAgICAgIyBBcHBseSBpbmhpYml0aW9uIGlmIHRoZSBhbGVydG5hbWUgaXMgdGhlIHNhbWUuXG4gICAgICBlcXVhbDogWydhbGVydG5hbWUnLCAnbmFtZXNwYWNlJ11cblxuICBhbGVydG1hbmFnZXJTcGVjOlxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5hbGVydG1hbmFnZXJ9XG4gICAgcG9kQW50aUFmZmluaXR5OiBcInNvZnRcIlxuICAgIHN0b3JhZ2U6XG4gICAgICB2b2x1bWVDbGFpbVRlbXBsYXRlOlxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOiBbXCJSZWFkV3JpdGVPbmNlXCJdXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6ICR7Y29uZmlnLnN0b3JhZ2UuYWxlcnRtYW5hZ2VyfVxuICAgIHJlc291cmNlczpcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxlcnRtYW5hZ2VyLmxpbWl0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5saW1pdHMubWVtb3J5fVxuICAgICAgcmVxdWVzdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5yZXF1ZXN0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgIGNvbnRhaW5lcnM6XG4gICAgLSBuYW1lOiBjb25maWctcmVsb2FkZXJcbiAgICAgIHJlc291cmNlczpcbiAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIucmVxdWVzdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLm1lbW9yeX1cbiAgICAgICAgbGltaXRzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5jcHV9XG4gICAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIubGltaXRzLm1lbW9yeX1cblxuXG5wcm9tZXRoZXVzOlxuICAjIEVuYWJsZSBUaGFub3Mgc2VydmljZSBmb3IgZ1JQQyBjb21tdW5pY2F0aW9uXG4gICMgUmVxdWlyZWQgZm9yIEhlbG0gY2hhcnQgdG8gcHJvcGVybHkgcmVuZGVyIFRoYW5vcyBzaWRlY2FyIGNvbmZpZ3VyYXRpb25cbiAgdGhhbm9zU2VydmljZTpcbiAgICBlbmFibGVkOiB0cnVlXG5cbiAgcHJvbWV0aGV1c1NwZWM6XG4gICAgcmV0ZW50aW9uOiAke2NvbmZpZy5yZXRlbnRpb24ucHJvbWV0aGV1c30gICMgUmVkdWNlZCBmcm9tIDdkIC0gVGhhbm9zIHByb3ZpZGVzIGxvbmctdGVybSBzdG9yYWdlIGluIFMzXG5cbiAgICAjIERpc2NvdmVyIEFMTCBTZXJ2aWNlTW9uaXRvcnMsIFBvZE1vbml0b3JzIGFuZCBQcm9tZXRoZXVzUnVsZXMgaW4gQUxMIG5hbWVzcGFjZXNcbiAgICAjIFNldHRpbmcgTmlsVXNlc0hlbG1WYWx1ZXM6IGZhbHNlIG1lYW5zIG5pbCBzZWxlY3RvcnMgPSBcInNlbGVjdCBhbGxcIlxuICAgICMgRW1wdHkgbmFtZXNwYWNlIHNlbGVjdG9ycyB7fSBtZWFuIFwic2VhcmNoIGFsbCBuYW1lc3BhY2VzXCJcbiAgICAjIFdpdGhvdXQgdGhlIHJ1bGUqIHNldHRpbmdzLCBydWxlU2VsZWN0b3Iga2VlcHMgdGhlIGNoYXJ0IGRlZmF1bHRcbiAgICAjIChtYXRjaExhYmVsczoge3JlbGVhc2U6IDxuYW1lPn0pIGFuZCBoYW5kLWF1dGhvcmVkIFByb21ldGhldXNSdWxlcyB0aGF0XG4gICAgIyBsYWNrIHRoZSByZWxlYXNlIGxhYmVsIGFyZSBzaWxlbnRseSBpZ25vcmVkLlxuICAgICMgTm90ZTogVGhpcyBkb2VzIE5PVCBhZmZlY3QgVGhhbm9zIHNpZGVjYXIgLSBjb250cm9sbGVkIGJ5IHRoYW5vcy5vYmplY3RTdG9yYWdlQ29uZmlnXG4gICAgc2VydmljZU1vbml0b3JTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHBvZE1vbml0b3JTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHJ1bGVTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHNlcnZpY2VNb25pdG9yTmFtZXNwYWNlU2VsZWN0b3I6IHt9XG4gICAgcG9kTW9uaXRvck5hbWVzcGFjZVNlbGVjdG9yOiB7fVxuICAgIHJ1bGVOYW1lc3BhY2VTZWxlY3Rvcjoge31cblxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5wcm9tZXRoZXVzfVxuICAgIHBvZEFudGlBZmZpbml0eTogXCJoYXJkXCJcbiAgICBzdG9yYWdlU3BlYzpcbiAgICAgIHZvbHVtZUNsYWltVGVtcGxhdGU6XG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogbG9uZ2hvcm5cbiAgICAgICAgICBhY2Nlc3NNb2RlczogW1wiUmVhZFdyaXRlT25jZVwiXVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAke2NvbmZpZy5zdG9yYWdlLnByb21ldGhldXN9ICAjIFJlZHVjZWQgZnJvbSA2R2kgKDNkIHJldGVudGlvbiBuZWVkcyBsZXNzIHNwYWNlKVxuXG4gICAgcmVzb3VyY2VzOlxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLmxpbWl0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMubGltaXRzLm1lbW9yeX1cbiAgICAgIHJlcXVlc3RzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxuICAgICMgRXh0ZXJuYWwgbGFiZWxzIGZvciBtdWx0aS1jbHVzdGVyIGlkZW50aWZpY2F0aW9uIGFuZCBUaGFub3NcbiAgICBleHRlcm5hbExhYmVsczpcbiAgICAgIGNsdXN0ZXI6ICR7Y29uZmlnLmNsdXN0ZXJOYW1lfVxuICAgICAgcmVwbGljYTogXCIkKFBPRF9OQU1FKVwiXG5cbiAgICAjIFRoYW5vcyBzaWRlY2FyIGZvciBsb25nLXRlcm0gbWV0cmljcyBzdG9yYWdlIGluIFMzXG4gICAgIyBOT1RFOiBjaGFydCA+PTg1LnggcmVxdWlyZXMgdGhlIGV4aXN0aW5nU2VjcmV0IHNoYXBlLiBUaGUgbGVnYWN5IGZsYXRcbiAgICAjIHtuYW1lLCBrZXl9IGZvcm0gaXMgc2lsZW50bHkgZHJvcHBlZCBieSB0aGUgY2hhcnQsIHdoaWNoIHJlbW92ZXMgdGhlXG4gICAgIyBzaWRlY2FyIGFuZCBzdG9wcyBhbGwgUzMgYmxvY2sgdXBsb2FkcyAocmVncmVzc2lvbiBzZWVuIDIwMjYtMDMtMzEpLlxuICAgIHRoYW5vczpcbiAgICAgIG9iamVjdFN0b3JhZ2VDb25maWc6XG4gICAgICAgIGV4aXN0aW5nU2VjcmV0OlxuICAgICAgICAgIG5hbWU6IHRoYW5vcy1vYmpzdG9yZS1jb25maWcgICMgRVNPLW1hbmFnZWQgc2VjcmV0XG4gICAgICAgICAga2V5OiBvYmpzdG9yZS55bWxcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgICMgTk9URTogdGhhbm9zLXNpZGVjYXIgaXMgTk9UIGxpc3RlZCBoZXJlIC0gaXQncyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGJ5IFByb21ldGhldXMgT3BlcmF0b3JcbiAgICAjIHdoZW4gdGhhbm9zLm9iamVjdFN0b3JhZ2VDb25maWcgaXMgc2V0LiBTcGVjaWZ5aW5nIGl0IGluIGNvbnRhaW5lcnNbXSB3b3VsZCBvdmVycmlkZVxuICAgICMgdGhlIG9wZXJhdG9yJ3MgZGVmaW5pdGlvbiBhbmQgcmVxdWlyZSB1cyB0byBtYW51YWxseSBzcGVjaWZ5IHRoZSBpbWFnZSwgd2hpY2ggYnJlYWtzXG4gICAgIyB3aGVuIHRoZSBvcGVyYXRvciB1cGRhdGVzIHRoZSB0aGFub3MgdmVyc2lvbi5cbiAgICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogY29uZmlnLXJlbG9hZGVyXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgICAgIGxpbWl0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5tZW1vcnl9XG5cbiAgICBzZXJ2aWNlOlxuICAgICAgc2Vzc2lvbkFmZmluaXR5OiBcIkNsaWVudElQXCJcblxuXG5ncmFmYW5hOlxuICAjIFJlY3JlYXRlIHN0cmF0ZWd5IGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIHN0b3JhZ2UgUFZDIGlzIFJXTzpcbiAgIyBhIFJvbGxpbmdVcGRhdGUgd291bGQgc3VyZ2UgYSBzZWNvbmQgcG9kIHRoYXQgY2Fubm90IG1vdW50IHRoZVxuICAjIHZvbHVtZSAoRmFpbGVkQXR0YWNoVm9sdW1lKSwgYmxvY2tpbmcgdGhlIHJvbGxvdXQgaW5kZWZpbml0ZWx5LlxuICBkZXBsb3ltZW50U3RyYXRlZ3k6XG4gICAgdHlwZTogUmVjcmVhdGVcblxuICAjIFVzZSBleGlzdGluZyBzZWNyZXQgZm9yIGFkbWluIGNyZWRlbnRpYWxzIChtYW5hZ2VkIGJ5IEVTTylcbiAgIyBUaGlzIHByZXZlbnRzIHBhc3N3b3JkIHJlZ2VuZXJhdGlvbiBvbiBIZWxtIHVwZ3JhZGVzXG4gIGFkbWluOlxuICAgIGV4aXN0aW5nU2VjcmV0OiBcImdyYWZhbmEtYWRtaW4tY3JlZGVudGlhbHNcIlxuICAgIHVzZXJLZXk6IFwiYWRtaW4tdXNlclwiXG4gICAgcGFzc3dvcmRLZXk6IFwiYWRtaW4tcGFzc3dvcmRcIlxuXG4gICMgR3JhZmFuYSBydW5zIGh0dHAgb24gOjMwMDAgYmVoaW5kIHRoZSBUTFMtdGVybWluYXRpbmcgaW5ncmVzcy4gV2l0aG91dCBhblxuICAjIGV4cGxpY2l0IHJvb3RfdXJsIGl0IGJ1aWxkcyBzaGFyZSBhbmQgcHVibGljLWRhc2hib2FyZCBsaW5rcyBmcm9tIHRoZSBpbnRlcm5hbFxuICAjIGFkZHJlc3MgKGh0dHA6Ly88cG9kPjozMDAwKTsgZGVyaXZlIHRoZSBleHRlcm5hbCBVUkwgZnJvbSB0aGUgY29uZmlndXJlZCBkb21haW4uXG4gIGdyYWZhbmEuaW5pOlxuICAgIHNlcnZlcjpcbiAgICAgIGRvbWFpbjogJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuICAgICAgcm9vdF91cmw6IGh0dHBzOi8vJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfSR7dGhpcy5nZW5lcmF0ZUdyYWZhbmFTZWN1cml0eShjb25maWcpfVxuXG4gICMgRGlzYWJsZSBkZWZhdWx0IFByb21ldGhldXMgZGF0YXNvdXJjZSAod2UgcHJvdmlkZSBvdXIgb3duIHBvaW50aW5nIHRvIFRoYW5vcyBRdWVyeSlcbiAgZGVmYXVsdERhdGFzb3VyY2VFbmFibGVkOiBmYWxzZVxuXG4gICMgU2lkZWNhciBjb250YWluZXJzIGZvciBkYXNoYm9hcmQvZGF0YXNvdXJjZSBwcm92aXNpb25pbmdcbiAgc2lkZWNhcjpcbiAgICByZXNvdXJjZXM6XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAxMG1cbiAgICAgICAgbWVtb3J5OiAyNTZNaVxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6IDEwMG1cbiAgICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIGRhc2hib2FyZHM6XG4gICAgICBlbmFibGVkOiB0cnVlXG4gICAgICAjIERhc2hib2FyZCBDb25maWdNYXBzIG1heSBvcHQgaW50byBhIG5hbWVkIEdyYWZhbmEgZm9sZGVyIHZpYSB0aGlzXG4gICAgICAjIGFubm90YXRpb247IENvbmZpZ01hcHMgd2l0aG91dCBpdCBrZWVwIGxhbmRpbmcgaW4gR2VuZXJhbC5cbiAgICAgIGZvbGRlckFubm90YXRpb246IGdyYWZhbmFfZm9sZGVyXG4gICAgICBwcm92aWRlcjpcbiAgICAgICAgZm9sZGVyc0Zyb21GaWxlc1N0cnVjdHVyZTogdHJ1ZVxuICAgIGRhdGFzb3VyY2VzOlxuICAgICAgZW5hYmxlZDogZmFsc2UgICMgV2UgbWFudWFsbHkgcHJvdmlzaW9uIGRhdGFzb3VyY2VzIChQcm9tZXRoZXVz4oaSVGhhbm9zLCBMb2tpKVxuXG4gIGluZ3Jlc3M6XG4gICAgZW5hYmxlZDogdHJ1ZSR7Y29uZmlnLmRvbWFpbnMuaW5ncmVzc0NsYXNzTmFtZSA/IGBcXG4gICAgaW5ncmVzc0NsYXNzTmFtZTogJHtjb25maWcuZG9tYWlucy5pbmdyZXNzQ2xhc3NOYW1lfWAgOiAnJ31cbiAgICBob3N0czpcbiAgICAgIC0gJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuICAgIGFubm90YXRpb25zOlxuICAgICAgY2VydC1tYW5hZ2VyLmlvL2NsdXN0ZXItaXNzdWVyOiBcImxldHNlbmNyeXB0LWNsdXN0ZXItaXNzdWVyXCJcbiAgICAgIHRyYWVmaWsuaW5ncmVzcy5rdWJlcm5ldGVzLmlvL3JvdXRlci5lbnRyeXBvaW50czogd2Vic2VjdXJlXG4gICAgdGxzOlxuICAgICAgLSBzZWNyZXROYW1lOiBncmFmYW5hLWdlbmVyYWwtdGxzXG4gICAgICAgIGhvc3RzOlxuICAgICAgICAtICR7Y29uZmlnLmRvbWFpbnMuZ3JhZmFuYX1cblxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuZ3JhZmFuYS5saW1pdHMuY3B1fVxuICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuZ3JhZmFuYS5saW1pdHMubWVtb3J5fVxuICAgIHJlcXVlc3RzOlxuICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuZ3JhZmFuYS5yZXF1ZXN0cy5jcHV9XG4gICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLnJlcXVlc3RzLm1lbW9yeX1cblxuICByZWFkaW5lc3NQcm9iZTpcbiAgICBodHRwR2V0OlxuICAgICAgcGF0aDogL2FwaS9oZWFsdGhcbiAgICAgIHBvcnQ6IDMwMDBcbiAgICBpbml0aWFsRGVsYXlTZWNvbmRzOiAzMFxuICAgIHBlcmlvZFNlY29uZHM6IDEwXG4gICAgdGltZW91dFNlY29uZHM6IDVcbiAgICBmYWlsdXJlVGhyZXNob2xkOiAzXG5cbiAgbGl2ZW5lc3NQcm9iZTpcbiAgICBodHRwR2V0OlxuICAgICAgcGF0aDogL2FwaS9oZWFsdGhcbiAgICAgIHBvcnQ6IDMwMDBcbiAgICBpbml0aWFsRGVsYXlTZWNvbmRzOiA2MFxuICAgIHBlcmlvZFNlY29uZHM6IDEwXG4gICAgdGltZW91dFNlY29uZHM6IDMwXG4gICAgZmFpbHVyZVRocmVzaG9sZDogMTBcblxuICBwZXJzaXN0ZW5jZTpcbiAgICBlbmFibGVkOiB0cnVlXG4gICAgc3RvcmFnZUNsYXNzTmFtZTogbG9uZ2hvcm5cbiAgICBhY2Nlc3NNb2RlczpcbiAgICAgIC0gUmVhZFdyaXRlT25jZVxuICAgIHNpemU6ICR7Y29uZmlnLnN0b3JhZ2UuZ3JhZmFuYX1cblxuICAjIE1hbnVhbCBkYXRhc291cmNlIHByb3Zpc2lvbmluZyAoc2lkZWNhciBkaXNhYmxlZClcbiAgIyBUaGFub3MgUXVlcnkg4oaSIGxvbmctdGVybS9oaXN0b3JpY2FsIG1ldHJpY3MgKFMzIHZpYSBTdG9yZSArIGxpdmUgc2lkZWNhciksIGRlZmF1bHRcbiAgIyBQcm9tZXRoZXVzIOKGkiBsb2NhbCwgcmVjZW50L2hpZ2gtcmVzIG9ubHkgKGtlcHQgZm9yIGxvdy1sYXRlbmN5IHJlY2VudCBxdWVyaWVzKVxuICAjIExva2kgZm9yIGxvZyBhZ2dyZWdhdGlvblxuICBkYXRhc291cmNlczpcbiAgICBkYXRhc291cmNlcy55YW1sOlxuICAgICAgYXBpVmVyc2lvbjogMVxuICAgICAgIyBEZWxldGUgYW55IHByZS1leGlzdGluZyBMb2tpIGRhdGFzb3VyY2UgKGUuZy4gb25lIGNyZWF0ZWQgd2l0aCBhXG4gICAgICAjIHJhbmRvbWx5IGdlbmVyYXRlZCBVSUQgYmVmb3JlIHdlIHBpbm5lZCB1aWQ6IGxva2kpLiBXaXRob3V0IHRoaXMsXG4gICAgICAjIEdyYWZhbmEgZmFpbHMgcHJvdmlzaW9uaW5nIHdpdGggXCJkYXRhIHNvdXJjZSBub3QgZm91bmRcIiBiZWNhdXNlXG4gICAgICAjIHRoZSB1cHNlcnQgY29sbGlkZXMgd2l0aCB0aGUgZXhpc3RpbmcgZW50cnkuXG4gICAgICBkZWxldGVEYXRhc291cmNlczpcbiAgICAgIC0gbmFtZTogTG9raVxuICAgICAgICBvcmdJZDogMVxuICAgICAgZGF0YXNvdXJjZXM6XG4gICAgICAtIG5hbWU6IFRoYW5vc1xuICAgICAgICB0eXBlOiBwcm9tZXRoZXVzXG4gICAgICAgIHVpZDogdGhhbm9zXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgIyB0aGFub3MtcXVlcnkgU2VydmljZTogaHR0cCBwb3J0IDkwOTAgLT4gY29udGFpbmVyIGh0dHAgMTA5MDJcbiAgICAgICAgdXJsOiBodHRwOi8vdGhhbm9zLXF1ZXJ5LiR7Y29uZmlnLm5hbWVzcGFjZX0uc3ZjLmNsdXN0ZXIubG9jYWw6OTA5MFxuICAgICAgICBpc0RlZmF1bHQ6IHRydWVcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZUludGVydmFsOiAzMHNcbiAgICAgIC0gbmFtZTogUHJvbWV0aGV1c1xuICAgICAgICB0eXBlOiBwcm9tZXRoZXVzXG4gICAgICAgIHVpZDogcHJvbWV0aGV1c1xuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgIHVybDogaHR0cDovL2t1YmUtcHJvbWV0aGV1cy1zdGFjay1wcm9tZXRoZXVzLiR7Y29uZmlnLm5hbWVzcGFjZX0uc3ZjLmNsdXN0ZXIubG9jYWw6OTA5MFxuICAgICAgICBpc0RlZmF1bHQ6IGZhbHNlXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIHRpbWVJbnRlcnZhbDogMzBzXG4gICAgICAtIG5hbWU6IExva2lcbiAgICAgICAgdHlwZTogbG9raVxuICAgICAgICB1aWQ6IGxva2lcbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICB1cmw6IGh0dHA6Ly9sb2tpLWdhdGV3YXkuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbFxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICBtYXhMaW5lczogMTAwMCR7dGVtcG9EYXRhc291cmNlfVxuXG5wcm9tZXRoZXVzT3BlcmF0b3I6XG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6IDFcbiAgICAgIG1lbW9yeTogNTEyTWlcbiAgICByZXF1ZXN0czpcbiAgICAgIGNwdTogNTBtXG4gICAgICBtZW1vcnk6IDEyOE1pXG4gIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5cbnByb21ldGhldXMtbm9kZS1leHBvcnRlcjpcbiAgIyBCaW5kIDo5MTAwIHRvIHRoZSBub2RlIEludGVybmFsSVAgb25seSwgbm90IDAuMC4wLjAuIFdpdGgga3ViZVJCQUNQcm94eVxuICAjIGRpc2FibGVkIHRoZSBzdWItY2hhcnQgc2V0cyBIT1NUX0lQIGZyb20gZmllbGRSZWYgc3RhdHVzLmhvc3RJUCwgd2hpY2ggaXNcbiAgIyB0aGUgbm9kZSdzIEludGVybmFsSVAgKEVYOiB2U3dpdGNoIDEwLjYuMC54IHZpYSAtLW5vZGUtaXA7IGNsb3VkOiBoY2xvdWRcbiAgIyBwcml2YXRlIElQKS4gbm9kZS1leHBvcnRlciBpcyBob3N0TmV0d29yaywgc28gUHJvbWV0aGV1cyBhbHJlYWR5IHNjcmFwZXNcbiAgIyB0aGF0IEludGVybmFsSVAgZW5kcG9pbnQgLT4gc2NyYXBpbmcgaXMgdW5hZmZlY3RlZCwgb25seSB0aGUgcHVibGljLU5JQ1xuICAjIGV4cG9zdXJlIG9mIHRoZSB1bmF1dGhlbnRpY2F0ZWQgbWV0cmljcyBvbiB0aGUgRVggcHVibGljIElQcyBnb2VzIGF3YXkuXG4gIHNlcnZpY2U6XG4gICAgbGlzdGVuT25BbGxJbnRlcmZhY2VzOiBmYWxzZVxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiA1MG1cbiAgICAgIG1lbW9yeTogNTBNaVxuICAgIHJlcXVlc3RzOlxuICAgICAgY3B1OiA1bVxuICAgICAgbWVtb3J5OiAxNk1pXG4gIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5cbmt1YmUtc3RhdGUtbWV0cmljczpcbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogMVxuICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIHJlcXVlc3RzOlxuICAgICAgY3B1OiA1bVxuICAgICAgbWVtb3J5OiAxMjhNaVxuICBwcmlvcml0eUNsYXNzTmFtZTogaGlnaC1wcmlvcml0eVxuYDtcbiAgfVxufVxuIl19
@@ -81,6 +81,10 @@ exports.DEFAULT_CONFIG = {
81
81
  enabled: false,
82
82
  frameAncestors: [],
83
83
  },
84
+ stagingAlerts: {
85
+ enabled: false,
86
+ namespaces: [],
87
+ },
84
88
  };
85
89
  /**
86
90
  * Resolve a full MonitoringConfig by deep-merging the caller's overrides over
@@ -103,6 +107,10 @@ function mergeConfig(input) {
103
107
  if (embedding.enabled && embedding.frameAncestors.length === 0) {
104
108
  throw new Error('embedding.frameAncestors must name at least one origin when embedding.enabled is true');
105
109
  }
110
+ const stagingAlerts = (0, deepmerge_ts_1.deepmerge)(exports.DEFAULT_CONFIG.stagingAlerts, input.stagingAlerts ?? {});
111
+ if (stagingAlerts.enabled && stagingAlerts.namespaces.length === 0) {
112
+ throw new Error('stagingAlerts.namespaces must name at least one namespace when stagingAlerts.enabled is true');
113
+ }
106
114
  return {
107
115
  namespace: input.namespace,
108
116
  clusterName: input.clusterName,
@@ -119,6 +127,7 @@ function mergeConfig(input) {
119
127
  traefik,
120
128
  longhorn,
121
129
  embedding,
130
+ stagingAlerts,
122
131
  };
123
132
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMkZBLGtDQWtDQztBQTdIRCwrQ0FBeUM7QUFPekM7Ozs7R0FJRztBQUNVLFFBQUEsY0FBYyxHQUFzQjtJQUMvQyxRQUFRLEVBQUU7UUFDUixlQUFlLEVBQUUsUUFBUTtRQUN6QixJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxRQUFRO1FBQ2YsTUFBTSxFQUFFLFNBQVM7UUFDakIsS0FBSyxFQUFFLFFBQVEsRUFBRSx3Q0FBd0M7S0FDMUQ7SUFDRCxTQUFTLEVBQUU7UUFDVCxVQUFVLEVBQUUsSUFBSTtRQUNoQixlQUFlLEVBQUUsRUFBRTtRQUNuQixjQUFjLEVBQUUsR0FBRztRQUNuQixjQUFjLEVBQUUsR0FBRztRQUNuQixJQUFJLEVBQUUsTUFBTTtLQUNiO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLE1BQU07UUFDbEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixXQUFXLEVBQUUsTUFBTTtRQUNuQixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsTUFBTTtRQUNuQixlQUFlLEVBQUUsTUFBTTtRQUN2QixLQUFLLEVBQUUsS0FBSztLQUNiO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsVUFBVSxFQUFFLENBQUM7UUFDYixZQUFZLEVBQUUsQ0FBQztRQUNmLE9BQU8sRUFBRSxDQUFDO1FBQ1YsV0FBVyxFQUFFLENBQUM7UUFDZCxRQUFRLEVBQUUsQ0FBQztRQUNYLFNBQVMsRUFBRSxDQUFDO1FBQ1osV0FBVyxFQUFFLENBQUM7UUFDZCxXQUFXLEVBQUUsQ0FBQztRQUNkLEtBQUssRUFBRSxDQUFDO0tBQ1Q7SUFDRCxTQUFTLEVBQUU7UUFDVCxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNuRyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5RixZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNsRyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5RixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNwRyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUMvRixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNwRyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNsRyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUN0RyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxLQUFLLEVBQUUsRUFBRSxRQUFR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QUFFLENBQWtCO1FBQ25GLFNBQVMsRUFBRSxJQUFBLHdCQUFTLEVBQUMsc0JBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQW9CO1FBQ3hGLE9BQU8sRUFBRSxJQUFBLHdCQUFTLEVBQUMsc0JBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQWtCO1FBQ2hGLFFBQVEsRUFBRSxJQUFBLHdCQUFTLEVBQUMsc0JBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQWtCO1FBQ25GLFNBQVMsRUFBRSxJQUFBLHdCQUFTLEVBQUMsc0JBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQW1CO1FBQ3ZGLEtBQUs7UUFDTCxPQUFPO1FBQ1AsUUFBUTtRQUNSLFNBQVM7S0FDVixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZXBtZXJnZSB9IGZyb20gJ2RlZXBtZXJnZS10cyc7XG5pbXBvcnQge1xuICBEZWZhdWx0YWJsZUNvbmZpZywgTW9uaXRvcmluZ0NvbmZpZywgTW9uaXRvcmluZ0NvbmZpZ0lucHV0LFxuICBWZXJzaW9uQ29uZmlnLCBSZXRlbnRpb25Db25maWcsIFN0b3JhZ2VDb25maWcsIFJlcGxpY2FDb25maWcsIFJlc291cmNlQ29uZmlnLCBUZW1wb0NvbmZpZyxcbiAgVHJhZWZpa0NvbmZpZywgTG9uZ2hvcm5Db25maWcsIEVtYmVkZGluZ0NvbmZpZyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogUGFja2FnZS1zaGlwcGVkIGRlZmF1bHRzIGZvciBldmVyeXRoaW5nIHRoYXQgaGFzIGEgc2Vuc2libGUgdW5pdmVyc2FsIHZhbHVlLlxuICogVmFsdWVzIG1pcnJvciB0aGUga3VwNnMgcHJvZHVjdGlvbiBjb25maWcgYXQgdGhlIHRpbWUgb2YgZXh0cmFjdGlvbjsgaW50ZWdyYXRpb25cbiAqIGNoYXJ0cyBvdmVycmlkZSBvbmx5IHdoYXQgdGhleSBuZWVkIHZpYSB7QGxpbmsgbWVyZ2VDb25maWd9LlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUc6IERlZmF1bHRhYmxlQ29uZmlnID0ge1xuICB2ZXJzaW9uczoge1xuICAgIHByb21ldGhldXNTdGFjazogJzg3LjAuMCcsXG4gICAgbG9raTogJzcuMC4wJyxcbiAgICBhbGxveTogJzEuMTAuMCcsXG4gICAgdGhhbm9zOiAndjAuNDEuMCcsXG4gICAgdGVtcG86ICcxLjI0LjQnLCAvLyBncmFmYW5hL3RlbXBvIGNoYXJ0IChUZW1wbyBhcHAgMi45LjApXG4gIH0sXG4gIHJldGVudGlvbjoge1xuICAgIHByb21ldGhldXM6ICcyZCcsXG4gICAgcHJvbWV0aGV1c1MzUmF3OiAzMCxcbiAgICBwcm9tZXRoZXVzUzM1bTogMTgwLFxuICAgIHByb21ldGhldXNTMzFoOiA3MzAsXG4gICAgbG9raTogJzc0NGgnLFxuICB9LFxuICBzdG9yYWdlOiB7XG4gICAgcHJvbWV0aGV1czogJzE1R2knLFxuICAgIGdyYWZhbmE6ICc1R2knLFxuICAgIGFsZXJ0bWFuYWdlcjogJzFHaScsXG4gICAgbG9raUJhY2tlbmQ6ICcxMEdpJyxcbiAgICBsb2tpV3JpdGU6ICczR2knLFxuICAgIHRoYW5vc1N0b3JlOiAnMTBHaScsXG4gICAgdGhhbm9zQ29tcGFjdG9yOiAnMjBHaScsXG4gICAgdGVtcG86ICc1R2knLFxuICB9LFxuICByZXBsaWNhczoge1xuICAgIHByb21ldGhldXM6IDIsXG4gICAgYWxlcnRtYW5hZ2VyOiAyLFxuICAgIGdyYWZhbmE6IDEsXG4gICAgbG9raUJhY2tlbmQ6IDIsXG4gICAgbG9raVJlYWQ6IDIsXG4gICAgbG9raVdyaXRlOiAyLFxuICAgIHRoYW5vc1F1ZXJ5OiAyLFxuICAgIHRoYW5vc1N0b3JlOiAyLFxuICAgIHRlbXBvOiAxLFxuICB9LFxuICByZXNvdXJjZXM6IHtcbiAgICBwcm9tZXRoZXVzOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcxNTAwTWknIH0sIGxpbWl0czogeyBjcHU6ICcyJywgbWVtb3J5OiAnMzAwME1pJyB9IH0sXG4gICAgZ3JhZmFuYTogeyByZXF1ZXN0czogeyBjcHU6ICc1MG0nLCBtZW1vcnk6ICc1MTJNaScgfSwgbGltaXRzOiB7IGNwdTogJzIwMG0nLCBtZW1vcnk6ICcxR2knIH0gfSxcbiAgICBhbGVydG1hbmFnZXI6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMjVtJywgbWVtb3J5OiAnMTAwTWknIH0sIGxpbWl0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMjAwTWknIH0gfSxcbiAgICBsb2tpQmFja2VuZDogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMjU2TWknIH0sIGxpbWl0czogeyBjcHU6ICc1MDBtJywgbWVtb3J5OiAnNTEyTWknIH0gfSxcbiAgICBsb2tpUmVhZDogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMjU2TWknIH0sIGxpbWl0czogeyBjcHU6ICc1MDBtJywgbWVtb3J5OiAnNTEyTWknIH0gfSxcbiAgICBsb2tpV3JpdGU6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzUxMk1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMScsIG1lbW9yeTogJzFHaScgfSB9LFxuICAgIGxva2lHYXRld2F5OiB7IHJlcXVlc3RzOiB7IGNwdTogJzUwbScsIG1lbW9yeTogJzEyOE1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMjAwbScsIG1lbW9yeTogJzI1Nk1pJyB9IH0sXG4gICAgYWxsb3k6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzEyOE1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMjAwbScsIG1lbW9yeTogJzI1Nk1pJyB9IH0sXG4gICAgdGhhbm9zUXVlcnk6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMjAwbScsIG1lbW9yeTogJzUxMk1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMTAwMG0nLCBtZW1vcnk6ICcxR2knIH0gfSxcbiAgICB0aGFub3NTdG9yZTogeyByZXF1ZXN0czogeyBjcHU6ICcyMDBtJywgbWVtb3J5OiAnMUdpJyB9LCBsaW1pdHM6IHsgY3B1OiAnMTAwMG0nLCBtZW1vcnk6ICcyR2knIH0gfSxcbiAgICB0aGFub3NDb21wYWN0b3I6IHsgcmVxdWVzdHM6IHsgY3B1OiAnNTAwbScsIG1lbW9yeTogJzJHaScgfSwgbGltaXRzOiB7IGNwdTogJzIwMDBtJywgbWVtb3J5OiAnNEdpJyB9IH0sXG4gICAgY29uZmlnUmVsb2FkZXI6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTBtJywgbWVtb3J5OiAnNTBNaScgfSwgbGltaXRzOiB7IGNwdTogJzUwbScsIG1lbW9yeTogJzEwME1pJyB9IH0sXG4gICAgdGhhbm9zU2lkZWNhcjogeyByZXF1ZXN0czogeyBjcHU6ICcxMG0nLCBtZW1vcnk6ICc1ME1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzEwME1pJyB9IH0sXG4gICAgdGVtcG86IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzUxMk1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMScsIG1lbW9yeTogJzJHaScgfSB9LFxuICAgIGFsbG95VHJhY2VzOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcyNTZNaScgfSwgbGltaXRzOiB7IGNwdTogJzUwMG0nLCBtZW1vcnk6ICc1MTJNaScgfSB9LFxuICB9LFxuICB0ZW1wbzoge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIGJ1Y2tldDogJycsXG4gICAgcmV0ZW50aW9uOiAnMzM2aCcsXG4gICAgdGFpbFNhbXBsaW5nOiB7IGxhdGVuY3lUaHJlc2hvbGRNczogMTAwMCwgcHJvYmFiaWxpc3RpY1BlcmNlbnQ6IDEwIH0sXG4gIH0sXG4gIHRyYWVmaWs6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgICBuYW1lc3BhY2U6ICd0cmFlZmlrJyxcbiAgICBkYXNoYm9hcmQ6IHRydWUsXG4gIH0sXG4gIGxvbmdob3JuOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gICAgbmFtZXNwYWNlOiAnbG9uZ2hvcm4tc3lzdGVtJyxcbiAgICBhbGVydHM6IHRydWUsXG4gIH0sXG4gIGVtYmVkZGluZzoge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIGZyYW1lQW5jZXN0b3JzOiBbXSxcbiAgfSxcbn07XG5cbi8qKlxuICogUmVzb2x2ZSBhIGZ1bGwgTW9uaXRvcmluZ0NvbmZpZyBieSBkZWVwLW1lcmdpbmcgdGhlIGNhbGxlcidzIG92ZXJyaWRlcyBvdmVyXG4gKiBERUZBVUxUX0NPTkZJRy4gUmVxdWlyZWQgY2x1c3RlciB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIHZlcmJhdGltLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VDb25maWcoaW5wdXQ6IE1vbml0b3JpbmdDb25maWdJbnB1dCk6IE1vbml0b3JpbmdDb25maWcge1xuICBjb25zdCB0ZW1wbyA9IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy50ZW1wbywgaW5wdXQudGVtcG8gPz8ge30pIGFzIFRlbXBvQ29uZmlnO1xuICBpZiAodGVtcG8uZW5hYmxlZCAmJiAhdGVtcG8uYnVja2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0ZW1wby5idWNrZXQgaXMgcmVxdWlyZWQgd2hlbiB0ZW1wby5lbmFibGVkIGlzIHRydWUnKTtcbiAgfVxuICBjb25zdCB0cmFlZmlrID0gZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLnRyYWVmaWssIGlucHV0LnRyYWVmaWsgPz8ge30pIGFzIFRyYWVmaWtDb25maWc7XG4gIGlmICh0cmFlZmlrLmVuYWJsZWQgJiYgIXRyYWVmaWsubmFtZXNwYWNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0cmFlZmlrLm5hbWVzcGFjZSBpcyByZXF1aXJlZCB3aGVuIHRyYWVmaWsuZW5hYmxlZCBpcyB0cnVlJyk7XG4gIH1cbiAgY29uc3QgbG9uZ2hvcm4gPSBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcubG9uZ2hvcm4sIGlucHV0Lmxvbmdob3JuID8/IHt9KSBhcyBMb25naG9ybkNvbmZpZztcbiAgaWYgKGxvbmdob3JuLmVuYWJsZWQgJiYgIWxvbmdob3JuLm5hbWVzcGFjZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignbG9uZ2hvcm4ubmFtZXNwYWNlIGlzIHJlcXVpcmVkIHdoZW4gbG9uZ2hvcm4uZW5hYmxlZCBpcyB0cnVlJyk7XG4gIH1cbiAgY29uc3QgZW1iZWRkaW5nID0gZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLmVtYmVkZGluZywgaW5wdXQuZW1iZWRkaW5nID8/IHt9KSBhcyBFbWJlZGRpbmdDb25maWc7XG4gIGlmIChlbWJlZGRpbmcuZW5hYmxlZCAmJiBlbWJlZGRpbmcuZnJhbWVBbmNlc3RvcnMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdlbWJlZGRpbmcuZnJhbWVBbmNlc3RvcnMgbXVzdCBuYW1lIGF0IGxlYXN0IG9uZSBvcmlnaW4gd2hlbiBlbWJlZGRpbmcuZW5hYmxlZCBpcyB0cnVlJyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lc3BhY2U6IGlucHV0Lm5hbWVzcGFjZSxcbiAgICBjbHVzdGVyTmFtZTogaW5wdXQuY2x1c3Rlck5hbWUsXG4gICAgZG9tYWluczogaW5wdXQuZG9tYWlucyxcbiAgICBzMzogaW5wdXQuczMsXG4gICAgc210cDogaW5wdXQuc210cCxcbiAgICBpbnRlZ3JhdGlvbnM6IGlucHV0LmludGVncmF0aW9ucyxcbiAgICB2ZXJzaW9uczogZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLnZlcnNpb25zLCBpbnB1dC52ZXJzaW9ucyA/PyB7fSkgYXMgVmVyc2lvbkNvbmZpZyxcbiAgICByZXRlbnRpb246IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy5yZXRlbnRpb24sIGlucHV0LnJldGVudGlvbiA/PyB7fSkgYXMgUmV0ZW50aW9uQ29uZmlnLFxuICAgIHN0b3JhZ2U6IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy5zdG9yYWdlLCBpbnB1dC5zdG9yYWdlID8/IHt9KSBhcyBTdG9yYWdlQ29uZmlnLFxuICAgIHJlcGxpY2FzOiBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcucmVwbGljYXMsIGlucHV0LnJlcGxpY2FzID8/IHt9KSBhcyBSZXBsaWNhQ29uZmlnLFxuICAgIHJlc291cmNlczogZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLnJlc291cmNlcywgaW5wdXQucmVzb3VyY2VzID8/IHt9KSBhcyBSZXNvdXJjZUNvbmZpZyxcbiAgICB0ZW1wbyxcbiAgICB0cmFlZmlrLFxuICAgIGxvbmdob3JuLFxuICAgIGVtYmVkZGluZyxcbiAgfTtcbn1cbiJdfQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0ZBLGtDQXVDQztBQXRJRCwrQ0FBeUM7QUFPekM7Ozs7R0FJRztBQUNVLFFBQUEsY0FBYyxHQUFzQjtJQUMvQyxRQUFRLEVBQUU7UUFDUixlQUFlLEVBQUUsUUFBUTtRQUN6QixJQUFJLEVBQUUsT0FBTztRQUNiLEtBQUssRUFBRSxRQUFRO1FBQ2YsTUFBTSxFQUFFLFNBQVM7UUFDakIsS0FBSyxFQUFFLFFBQVEsRUFBRSx3Q0FBd0M7S0FDMUQ7SUFDRCxTQUFTLEVBQUU7UUFDVCxVQUFVLEVBQUUsSUFBSTtRQUNoQixlQUFlLEVBQUUsRUFBRTtRQUNuQixjQUFjLEVBQUUsR0FBRztRQUNuQixjQUFjLEVBQUUsR0FBRztRQUNuQixJQUFJLEVBQUUsTUFBTTtLQUNiO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLE1BQU07UUFDbEIsT0FBTyxFQUFFLEtBQUs7UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixXQUFXLEVBQUUsTUFBTTtRQUNuQixTQUFTLEVBQUUsS0FBSztRQUNoQixXQUFXLEVBQUUsTUFBTTtRQUNuQixlQUFlLEVBQUUsTUFBTTtRQUN2QixLQUFLLEVBQUUsS0FBSztLQUNiO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsVUFBVSxFQUFFLENBQUM7UUFDYixZQUFZLEVBQUUsQ0FBQztRQUNmLE9BQU8sRUFBRSxDQUFDO1FBQ1YsV0FBVyxFQUFFLENBQUM7UUFDZCxRQUFRLEVBQUUsQ0FBQztRQUNYLFNBQVMsRUFBRSxDQUFDO1FBQ1osV0FBVyxFQUFFLENBQUM7UUFDZCxXQUFXLEVBQUUsQ0FBQztRQUNkLEtBQUssRUFBRSxDQUFDO0tBQ1Q7SUFDRCxTQUFTLEVBQUU7UUFDVCxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNuRyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5RixZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNsRyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5RixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNwRyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUMvRixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNwRyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNsRyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUN0RyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyRyxLQUFLLEVBQUUsRUFBRSxRQUFR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QUFDO0lBQ2xILENBQUM7SUFDRCxPQUFPO1FBQ0wsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ1osSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtRQUNoQyxRQUFRLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFrQjtRQUNuRixTQUFTLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFvQjtRQUN4RixPQUFPLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFrQjtRQUNoRixRQUFRLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFrQjtRQUNuRixTQUFTLEVBQUUsSUFBQSx3QkFBUyxFQUFDLHNCQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFtQjtRQUN2RixLQUFLO1FBQ0wsT0FBTztRQUNQLFFBQVE7UUFDUixTQUFTO1FBQ1QsYUFBYTtLQUNkLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVlcG1lcmdlIH0gZnJvbSAnZGVlcG1lcmdlLXRzJztcbmltcG9ydCB7XG4gIERlZmF1bHRhYmxlQ29uZmlnLCBNb25pdG9yaW5nQ29uZmlnLCBNb25pdG9yaW5nQ29uZmlnSW5wdXQsXG4gIFZlcnNpb25Db25maWcsIFJldGVudGlvbkNvbmZpZywgU3RvcmFnZUNvbmZpZywgUmVwbGljYUNvbmZpZywgUmVzb3VyY2VDb25maWcsIFRlbXBvQ29uZmlnLFxuICBUcmFlZmlrQ29uZmlnLCBMb25naG9ybkNvbmZpZywgRW1iZWRkaW5nQ29uZmlnLCBTdGFnaW5nQWxlcnRzQ29uZmlnLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBQYWNrYWdlLXNoaXBwZWQgZGVmYXVsdHMgZm9yIGV2ZXJ5dGhpbmcgdGhhdCBoYXMgYSBzZW5zaWJsZSB1bml2ZXJzYWwgdmFsdWUuXG4gKiBWYWx1ZXMgbWlycm9yIHRoZSBrdXA2cyBwcm9kdWN0aW9uIGNvbmZpZyBhdCB0aGUgdGltZSBvZiBleHRyYWN0aW9uOyBpbnRlZ3JhdGlvblxuICogY2hhcnRzIG92ZXJyaWRlIG9ubHkgd2hhdCB0aGV5IG5lZWQgdmlhIHtAbGluayBtZXJnZUNvbmZpZ30uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTkZJRzogRGVmYXVsdGFibGVDb25maWcgPSB7XG4gIHZlcnNpb25zOiB7XG4gICAgcHJvbWV0aGV1c1N0YWNrOiAnODcuMC4wJyxcbiAgICBsb2tpOiAnNy4wLjAnLFxuICAgIGFsbG95OiAnMS4xMC4wJyxcbiAgICB0aGFub3M6ICd2MC40MS4wJyxcbiAgICB0ZW1wbzogJzEuMjQuNCcsIC8vIGdyYWZhbmEvdGVtcG8gY2hhcnQgKFRlbXBvIGFwcCAyLjkuMClcbiAgfSxcbiAgcmV0ZW50aW9uOiB7XG4gICAgcHJvbWV0aGV1czogJzJkJyxcbiAgICBwcm9tZXRoZXVzUzNSYXc6IDMwLFxuICAgIHByb21ldGhldXNTMzVtOiAxODAsXG4gICAgcHJvbWV0aGV1c1MzMWg6IDczMCxcbiAgICBsb2tpOiAnNzQ0aCcsXG4gIH0sXG4gIHN0b3JhZ2U6IHtcbiAgICBwcm9tZXRoZXVzOiAnMTVHaScsXG4gICAgZ3JhZmFuYTogJzVHaScsXG4gICAgYWxlcnRtYW5hZ2VyOiAnMUdpJyxcbiAgICBsb2tpQmFja2VuZDogJzEwR2knLFxuICAgIGxva2lXcml0ZTogJzNHaScsXG4gICAgdGhhbm9zU3RvcmU6ICcxMEdpJyxcbiAgICB0aGFub3NDb21wYWN0b3I6ICcyMEdpJyxcbiAgICB0ZW1wbzogJzVHaScsXG4gIH0sXG4gIHJlcGxpY2FzOiB7XG4gICAgcHJvbWV0aGV1czogMixcbiAgICBhbGVydG1hbmFnZXI6IDIsXG4gICAgZ3JhZmFuYTogMSxcbiAgICBsb2tpQmFja2VuZDogMixcbiAgICBsb2tpUmVhZDogMixcbiAgICBsb2tpV3JpdGU6IDIsXG4gICAgdGhhbm9zUXVlcnk6IDIsXG4gICAgdGhhbm9zU3RvcmU6IDIsXG4gICAgdGVtcG86IDEsXG4gIH0sXG4gIHJlc291cmNlczoge1xuICAgIHByb21ldGhldXM6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzE1MDBNaScgfSwgbGltaXRzOiB7IGNwdTogJzInLCBtZW1vcnk6ICczMDAwTWknIH0gfSxcbiAgICBncmFmYW5hOiB7IHJlcXVlc3RzOiB7IGNwdTogJzUwbScsIG1lbW9yeTogJzUxMk1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnMjAwbScsIG1lbW9yeTogJzFHaScgfSB9LFxuICAgIGFsZXJ0bWFuYWdlcjogeyByZXF1ZXN0czogeyBjcHU6ICcyNW0nLCBtZW1vcnk6ICcxMDBNaScgfSwgbGltaXRzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcyMDBNaScgfSB9LFxuICAgIGxva2lCYWNrZW5kOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcyNTZNaScgfSwgbGltaXRzOiB7IGNwdTogJzUwMG0nLCBtZW1vcnk6ICc1MTJNaScgfSB9LFxuICAgIGxva2lSZWFkOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwMG0nLCBtZW1vcnk6ICcyNTZNaScgfSwgbGltaXRzOiB7IGNwdTogJzUwMG0nLCBtZW1vcnk6ICc1MTJNaScgfSB9LFxuICAgIGxva2lXcml0ZTogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnNTEyTWknIH0sIGxpbWl0czogeyBjcHU6ICcxJywgbWVtb3J5OiAnMUdpJyB9IH0sXG4gICAgbG9raUdhdGV3YXk6IHsgcmVxdWVzdHM6IHsgY3B1OiAnNTBtJywgbWVtb3J5OiAnMTI4TWknIH0sIGxpbWl0czogeyBjcHU6ICcyMDBtJywgbWVtb3J5OiAnMjU2TWknIH0gfSxcbiAgICBhbGxveTogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMTI4TWknIH0sIGxpbWl0czogeyBjcHU6ICcyMDBtJywgbWVtb3J5OiAnMjU2TWknIH0gfSxcbiAgICB0aGFub3NRdWVyeTogeyByZXF1ZXN0czogeyBjcHU6ICcyMDBtJywgbWVtb3J5OiAnNTEyTWknIH0sIGxpbWl0czogeyBjcHU6ICcxMDAwbScsIG1lbW9yeTogJzFHaScgfSB9LFxuICAgIHRoYW5vc1N0b3JlOiB7IHJlcXVlc3RzOiB7IGNwdTogJzIwMG0nLCBtZW1vcnk6ICcxR2knIH0sIGxpbWl0czogeyBjcHU6ICcxMDAwbScsIG1lbW9yeTogJzJHaScgfSB9LFxuICAgIHRoYW5vc0NvbXBhY3RvcjogeyByZXF1ZXN0czogeyBjcHU6ICc1MDBtJywgbWVtb3J5OiAnMkdpJyB9LCBsaW1pdHM6IHsgY3B1OiAnMjAwMG0nLCBtZW1vcnk6ICc0R2knIH0gfSxcbiAgICBjb25maWdSZWxvYWRlcjogeyByZXF1ZXN0czogeyBjcHU6ICcxMG0nLCBtZW1vcnk6ICc1ME1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnNTBtJywgbWVtb3J5OiAnMTAwTWknIH0gfSxcbiAgICB0aGFub3NTaWRlY2FyOiB7IHJlcXVlc3RzOiB7IGNwdTogJzEwbScsIG1lbW9yeTogJzUwTWknIH0sIGxpbWl0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnMTAwTWknIH0gfSxcbiAgICB0ZW1wbzogeyByZXF1ZXN0czogeyBjcHU6ICcxMDBtJywgbWVtb3J5OiAnNTEyTWknIH0sIGxpbWl0czogeyBjcHU6ICcxJywgbWVtb3J5OiAnMkdpJyB9IH0sXG4gICAgYWxsb3lUcmFjZXM6IHsgcmVxdWVzdHM6IHsgY3B1OiAnMTAwbScsIG1lbW9yeTogJzI1Nk1pJyB9LCBsaW1pdHM6IHsgY3B1OiAnNTAwbScsIG1lbW9yeTogJzUxMk1pJyB9IH0sXG4gIH0sXG4gIHRlbXBvOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gICAgYnVja2V0OiAnJyxcbiAgICByZXRlbnRpb246ICczMzZoJyxcbiAgICB0YWlsU2FtcGxpbmc6IHsgbGF0ZW5jeVRocmVzaG9sZE1zOiAxMDAwLCBwcm9iYWJpbGlzdGljUGVyY2VudDogMTAgfSxcbiAgfSxcbiAgdHJhZWZpazoge1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIG5hbWVzcGFjZTogJ3RyYWVmaWsnLFxuICAgIGRhc2hib2FyZDogdHJ1ZSxcbiAgfSxcbiAgbG9uZ2hvcm46IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgICBuYW1lc3BhY2U6ICdsb25naG9ybi1zeXN0ZW0nLFxuICAgIGFsZXJ0czogdHJ1ZSxcbiAgfSxcbiAgZW1iZWRkaW5nOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gICAgZnJhbWVBbmNlc3RvcnM6IFtdLFxuICB9LFxuICBzdGFnaW5nQWxlcnRzOiB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gICAgbmFtZXNwYWNlczogW10sXG4gIH0sXG59O1xuXG4vKipcbiAqIFJlc29sdmUgYSBmdWxsIE1vbml0b3JpbmdDb25maWcgYnkgZGVlcC1tZXJnaW5nIHRoZSBjYWxsZXIncyBvdmVycmlkZXMgb3ZlclxuICogREVGQVVMVF9DT05GSUcuIFJlcXVpcmVkIGNsdXN0ZXIgdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCB2ZXJiYXRpbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQ29uZmlnKGlucHV0OiBNb25pdG9yaW5nQ29uZmlnSW5wdXQpOiBNb25pdG9yaW5nQ29uZmlnIHtcbiAgY29uc3QgdGVtcG8gPSBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcudGVtcG8sIGlucHV0LnRlbXBvID8/IHt9KSBhcyBUZW1wb0NvbmZpZztcbiAgaWYgKHRlbXBvLmVuYWJsZWQgJiYgIXRlbXBvLmJ1Y2tldCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndGVtcG8uYnVja2V0IGlzIHJlcXVpcmVkIHdoZW4gdGVtcG8uZW5hYmxlZCBpcyB0cnVlJyk7XG4gIH1cbiAgY29uc3QgdHJhZWZpayA9IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy50cmFlZmlrLCBpbnB1dC50cmFlZmlrID8/IHt9KSBhcyBUcmFlZmlrQ29uZmlnO1xuICBpZiAodHJhZWZpay5lbmFibGVkICYmICF0cmFlZmlrLm5hbWVzcGFjZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigndHJhZWZpay5uYW1lc3BhY2UgaXMgcmVxdWlyZWQgd2hlbiB0cmFlZmlrLmVuYWJsZWQgaXMgdHJ1ZScpO1xuICB9XG4gIGNvbnN0IGxvbmdob3JuID0gZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLmxvbmdob3JuLCBpbnB1dC5sb25naG9ybiA/PyB7fSkgYXMgTG9uZ2hvcm5Db25maWc7XG4gIGlmIChsb25naG9ybi5lbmFibGVkICYmICFsb25naG9ybi5uYW1lc3BhY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2xvbmdob3JuLm5hbWVzcGFjZSBpcyByZXF1aXJlZCB3aGVuIGxvbmdob3JuLmVuYWJsZWQgaXMgdHJ1ZScpO1xuICB9XG4gIGNvbnN0IGVtYmVkZGluZyA9IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy5lbWJlZGRpbmcsIGlucHV0LmVtYmVkZGluZyA/PyB7fSkgYXMgRW1iZWRkaW5nQ29uZmlnO1xuICBpZiAoZW1iZWRkaW5nLmVuYWJsZWQgJiYgZW1iZWRkaW5nLmZyYW1lQW5jZXN0b3JzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignZW1iZWRkaW5nLmZyYW1lQW5jZXN0b3JzIG11c3QgbmFtZSBhdCBsZWFzdCBvbmUgb3JpZ2luIHdoZW4gZW1iZWRkaW5nLmVuYWJsZWQgaXMgdHJ1ZScpO1xuICB9XG4gIGNvbnN0IHN0YWdpbmdBbGVydHMgPSBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcuc3RhZ2luZ0FsZXJ0cywgaW5wdXQuc3RhZ2luZ0FsZXJ0cyA/PyB7fSkgYXMgU3RhZ2luZ0FsZXJ0c0NvbmZpZztcbiAgaWYgKHN0YWdpbmdBbGVydHMuZW5hYmxlZCAmJiBzdGFnaW5nQWxlcnRzLm5hbWVzcGFjZXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzdGFnaW5nQWxlcnRzLm5hbWVzcGFjZXMgbXVzdCBuYW1lIGF0IGxlYXN0IG9uZSBuYW1lc3BhY2Ugd2hlbiBzdGFnaW5nQWxlcnRzLmVuYWJsZWQgaXMgdHJ1ZScpO1xuICB9XG4gIHJldHVybiB7XG4gICAgbmFtZXNwYWNlOiBpbnB1dC5uYW1lc3BhY2UsXG4gICAgY2x1c3Rlck5hbWU6IGlucHV0LmNsdXN0ZXJOYW1lLFxuICAgIGRvbWFpbnM6IGlucHV0LmRvbWFpbnMsXG4gICAgczM6IGlucHV0LnMzLFxuICAgIHNtdHA6IGlucHV0LnNtdHAsXG4gICAgaW50ZWdyYXRpb25zOiBpbnB1dC5pbnRlZ3JhdGlvbnMsXG4gICAgdmVyc2lvbnM6IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy52ZXJzaW9ucywgaW5wdXQudmVyc2lvbnMgPz8ge30pIGFzIFZlcnNpb25Db25maWcsXG4gICAgcmV0ZW50aW9uOiBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcucmV0ZW50aW9uLCBpbnB1dC5yZXRlbnRpb24gPz8ge30pIGFzIFJldGVudGlvbkNvbmZpZyxcbiAgICBzdG9yYWdlOiBkZWVwbWVyZ2UoREVGQVVMVF9DT05GSUcuc3RvcmFnZSwgaW5wdXQuc3RvcmFnZSA/PyB7fSkgYXMgU3RvcmFnZUNvbmZpZyxcbiAgICByZXBsaWNhczogZGVlcG1lcmdlKERFRkFVTFRfQ09ORklHLnJlcGxpY2FzLCBpbnB1dC5yZXBsaWNhcyA/PyB7fSkgYXMgUmVwbGljYUNvbmZpZyxcbiAgICByZXNvdXJjZXM6IGRlZXBtZXJnZShERUZBVUxUX0NPTkZJRy5yZXNvdXJjZXMsIGlucHV0LnJlc291cmNlcyA/PyB7fSkgYXMgUmVzb3VyY2VDb25maWcsXG4gICAgdGVtcG8sXG4gICAgdHJhZWZpayxcbiAgICBsb25naG9ybixcbiAgICBlbWJlZGRpbmcsXG4gICAgc3RhZ2luZ0FsZXJ0cyxcbiAgfTtcbn1cbiJdfQ==
package/lib/types.d.ts CHANGED
@@ -169,6 +169,19 @@ export interface EmbeddingConfig {
169
169
  enabled: boolean;
170
170
  frameAncestors: string[];
171
171
  }
172
+ /**
173
+ * Demoted alert routing for staging namespaces sharing this cluster's
174
+ * monitoring stack (opt-in).
175
+ *
176
+ * Alerts whose `namespace` label matches one of the listed namespaces are
177
+ * routed to a separate `staging` email receiver whose subject carries a
178
+ * `[STAGING]` prefix, instead of the production receiver — so they stay
179
+ * visible but never read like a production page.
180
+ */
181
+ export interface StagingAlertsConfig {
182
+ enabled: boolean;
183
+ namespaces: string[];
184
+ }
172
185
  /**
173
186
  * Configuration the package ships sensible defaults for.
174
187
  * Integration charts may override any of these (deep-merged over DEFAULT_CONFIG).
@@ -183,6 +196,7 @@ export interface DefaultableConfig {
183
196
  traefik: TraefikConfig;
184
197
  longhorn: LonghornConfig;
185
198
  embedding: EmbeddingConfig;
199
+ stagingAlerts: StagingAlertsConfig;
186
200
  }
187
201
  /**
188
202
  * Cluster-specific configuration with no sensible universal default.
package/lib/types.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgYSBjb21wb25lbnQgKENQVSBhbmQgbWVtb3J5KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQWxsb2NhdGlvbiB7XG4gIGNwdTogc3RyaW5nO1xuICBtZW1vcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvdXJjZSByZXF1ZXN0cyBhbmQgbGltaXRzIGZvciBhIGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUmVxdWlyZW1lbnRzIHtcbiAgcmVxdWVzdHM6IFJlc291cmNlQWxsb2NhdGlvbjtcbiAgbGltaXRzOiBSZXNvdXJjZUFsbG9jYXRpb247XG59XG5cbi8qKlxuICogUzMgY29uZmlndXJhdGlvbiBmb3Igb2JqZWN0IHN0b3JhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0NvbmZpZyB7XG4gIGVuZHBvaW50OiBzdHJpbmc7IC8vIEZ1bGwgZW5kcG9pbnQgd2l0aCBwcm90b2NvbCAoZS5nLiwgaHR0cHM6Ly9mc24xLnlvdXItb2JqZWN0c3RvcmFnZS5jb20pXG4gIGVuZHBvaW50Tm9Qcm90b2NvbDogc3RyaW5nOyAvLyBFbmRwb2ludCB3aXRob3V0IHByb3RvY29sIChmb3IgVGhhbm9zKVxuICByZWdpb246IHN0cmluZzsgLy8gUzMgcmVnaW9uIChlLmcuLCBmc24xKVxuICBidWNrZXRzOiB7XG4gICAgdGhhbm9zOiBzdHJpbmc7IC8vIFRoYW5vcyBtZXRyaWNzIGJ1Y2tldFxuICAgIGxva2k6IHN0cmluZzsgLy8gTG9raSBsb2dzIGJ1Y2tldFxuICB9O1xufVxuXG4vKipcbiAqIFNNVFAgY29uZmlndXJhdGlvbiBmb3IgYWxlcnRpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbXRwQ29uZmlnIHtcbiAgaG9zdDogc3RyaW5nOyAvLyBTTVRQIHNlcnZlciBob3N0bmFtZVxuICBwb3J0OiBudW1iZXI7IC8vIFNNVFAgc2VydmVyIHBvcnRcbiAgZnJvbTogc3RyaW5nOyAvLyBGcm9tIGVtYWlsIGFkZHJlc3NcbiAgdXNlcm5hbWU/OiBzdHJpbmc7IC8vIFNNVFAgdXNlcm5hbWUgKG9wdGlvbmFsKVxuICBwYXNzd29yZD86IHN0cmluZzsgLy8gU01UUCBwYXNzd29yZCAob3B0aW9uYWwpXG4gIHJlcXVpcmVUbHM6IGJvb2xlYW47IC8vIFJlcXVpcmUgVExTIGZvciBTTVRQXG59XG5cbi8qKlxuICogRG9tYWluIGNvbmZpZ3VyYXRpb24gZm9yIGluZ3Jlc3Nlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbkNvbmZpZyB7XG4gIGdyYWZhbmE6IHN0cmluZzsgLy8gR3JhZmFuYSBkb21haW4gKGUuZy4sIGdyYWZhbmEub3BzLmt1cDZzLm5ldClcbiAgaW5ncmVzc0NsYXNzTmFtZT86IHN0cmluZzsgLy8gSW5ncmVzc0NsYXNzIGZvciB0aGUgR3JhZmFuYSBpbmdyZXNzOyBvbWl0IHRvIHJlbHkgb24gdGhlIGNsdXN0ZXIncyBkZWZhdWx0IEluZ3Jlc3NDbGFzc1xufVxuXG4vKipcbiAqIE5hbWVzIG9mIHRoZSBleHRlcm5hbCBDcm9zc3BsYW5lIGFuZCBFeHRlcm5hbCBTZWNyZXRzIE9wZXJhdG9yIHJlc291cmNlcyB0aGlzXG4gKiBzdGFjayByZWZlcmVuY2VzLiBUaGVzZSBhcmUgbm90IGNyZWF0ZWQgYnkgdGhlIGxpYnJhcnk7IHRoZXkgbXVzdCBhbHJlYWR5IGV4aXN0XG4gKiBpbiB5b3VyIGNsdXN0ZXIuIFRoZXJlIGFyZSBubyBkZWZhdWx0cyDigJQgZXZlcnkgY29uc3VtZXIgd2lyZXMgaXRzIG93biBuYW1lcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ3JhdGlvbnNDb25maWcge1xuICBzM1Byb3ZpZGVyQ29uZmlnOiBzdHJpbmc7IC8vIENyb3NzcGxhbmUgUHJvdmlkZXJDb25maWcgbmFtZSB0aGUgQnVja2V0IHJlc291cmNlcyByZWNvbmNpbGUgYWdhaW5zdFxuICBzM1NlY3JldFN0b3JlOiBzdHJpbmc7IC8vIEVTTyBDbHVzdGVyU2VjcmV0U3RvcmUgbmFtZSBob2xkaW5nIHRoZSBTMyBjcmVkZW50aWFsc1xuICBzM0NyZWRlbnRpYWxzS2V5OiBzdHJpbmc7IC8vIFJlbW90ZSBrZXkgaW4gdGhlIHN0b3JlIHRvIGV4dHJhY3QgUzMgY3JlZGVudGlhbHMgZnJvbSAocHJvdmlkZXMgQVdTX0FDQ0VTU19LRVlfSUQgLyBBV1NfU0VDUkVUX0FDQ0VTU19LRVkpXG4gIGdyYWZhbmFTZWNyZXRTdG9yZTogc3RyaW5nOyAvLyBFU08gQ2x1c3RlclNlY3JldFN0b3JlIG5hbWUgaG9sZGluZyB0aGUgR3JhZmFuYSBhZG1pbiBjcmVkZW50aWFsc1xuICBncmFmYW5hQ3JlZGVudGlhbHNLZXk6IHN0cmluZzsgLy8gUmVtb3RlIGtleSBpbiB0aGUgc3RvcmUgdG8gZXh0cmFjdCB0aGUgR3JhZmFuYSBhZG1pbiBjcmVkZW50aWFscyBmcm9tXG59XG5cbi8qKlxuICogUmV0ZW50aW9uIHBvbGljaWVzIGZvciBtZXRyaWNzIGFuZCBsb2dzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0ZW50aW9uQ29uZmlnIHtcbiAgcHJvbWV0aGV1czogc3RyaW5nOyAvLyBQcm9tZXRoZXVzIGxvY2FsIHJldGVudGlvbiAoZS5nLiwgXCIzZFwiKVxuICBwcm9tZXRoZXVzUzNSYXc6IG51bWJlcjsgLy8gVGhhbm9zIHJhdyBkYXRhIHJldGVudGlvbiAoZGF5cylcbiAgcHJvbWV0aGV1c1MzNW06IG51bWJlcjsgLy8gVGhhbm9zIDUtbWludXRlIGRvd25zYW1wbGVkIHJldGVudGlvbiAoZGF5cylcbiAgcHJvbWV0aGV1c1MzMWg6IG51bWJlcjsgLy8gVGhhbm9zIDEtaG91ciBkb3duc2FtcGxlZCByZXRlbnRpb24gKGRheXMpXG4gIGxva2k6IHN0cmluZzsgLy8gTG9raSByZXRlbnRpb24gKGUuZy4sIFwiNzQ0aFwiIGZvciAzMSBkYXlzKVxufVxuXG4vKipcbiAqIFN0b3JhZ2Ugc2l6ZXMgZm9yIHBlcnNpc3RlbnQgdm9sdW1lc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VDb25maWcge1xuICBwcm9tZXRoZXVzOiBzdHJpbmc7IC8vIFByb21ldGhldXMgUFZDIHNpemVcbiAgZ3JhZmFuYTogc3RyaW5nOyAvLyBHcmFmYW5hIFBWQyBzaXplXG4gIGFsZXJ0bWFuYWdlcjogc3RyaW5nOyAvLyBBbGVydG1hbmFnZXIgUFZDIHNpemVcbiAgbG9raUJhY2tlbmQ6IHN0cmluZzsgLy8gTG9raSBiYWNrZW5kIFBWQyBzaXplXG4gIGxva2lXcml0ZTogc3RyaW5nOyAvLyBMb2tpIHdyaXRlIFBWQyBzaXplXG4gIHRoYW5vc1N0b3JlOiBzdHJpbmc7IC8vIFRoYW5vcyBzdG9yZSBQVkMgc2l6ZSAocGVyIHJlcGxpY2EpXG4gIHRoYW5vc0NvbXBhY3Rvcjogc3RyaW5nOyAvLyBUaGFub3MgY29tcGFjdG9yIFBWQyBzaXplXG4gIHRlbXBvOiBzdHJpbmc7IC8vIFRlbXBvIFdBTC9sb2NhbC1ibG9ja3MgUFZDIHNpemVcbn1cblxuLyoqXG4gKiBSZXBsaWNhIGNvdW50cyBmb3IgaGlnaCBhdmFpbGFiaWxpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsaWNhQ29uZmlnIHtcbiAgcHJvbWV0aGV1czogbnVtYmVyOyAvLyBQcm9tZXRoZXVzIHJlcGxpY2FzXG4gIGFsZXJ0bWFuYWdlcjogbnVtYmVyOyAvLyBBbGVydG1hbmFnZXIgcmVwbGljYXNcbiAgZ3JhZmFuYTogbnVtYmVyOyAvLyBHcmFmYW5hIHJlcGxpY2FzICh1c3VhbGx5IDEpXG4gIGxva2lCYWNrZW5kOiBudW1iZXI7IC8vIExva2kgYmFja2VuZCByZXBsaWNhc1xuICBsb2tpUmVhZDogbnVtYmVyOyAvLyBMb2tpIHJlYWQgcmVwbGljYXNcbiAgbG9raVdyaXRlOiBudW1iZXI7IC8vIExva2kgd3JpdGUgcmVwbGljYXNcbiAgdGhhbm9zUXVlcnk6IG51bWJlcjsgLy8gVGhhbm9zIFF1ZXJ5IHJlcGxpY2FzXG4gIHRoYW5vc1N0b3JlOiBudW1iZXI7IC8vIFRoYW5vcyBTdG9yZSByZXBsaWNhc1xuICB0ZW1wbzogbnVtYmVyOyAvLyBUZW1wbyByZXBsaWNhc1xufVxuXG4vKipcbiAqIFJlc291cmNlIHJlcXVpcmVtZW50cyBmb3IgYWxsIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUNvbmZpZyB7XG4gIHByb21ldGhldXM6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICBncmFmYW5hOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgYWxlcnRtYW5hZ2VyOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgbG9raUJhY2tlbmQ6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICBsb2tpUmVhZDogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGxva2lXcml0ZTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGxva2lHYXRld2F5OiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgYWxsb3k6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICB0aGFub3NRdWVyeTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIHRoYW5vc1N0b3JlOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgdGhhbm9zQ29tcGFjdG9yOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgLy8gU2lkZWNhciBjb250YWluZXJzIChhZGRlZCAyMDI1LTExLTE4KVxuICBjb25maWdSZWxvYWRlcjogUmVzb3VyY2VSZXF1aXJlbWVudHM7IC8vIGNvbmZpZy1yZWxvYWRlciBzaWRlY2FyIChQcm9tZXRoZXVzLCBBbGVydG1hbmFnZXIsIEFsbG95KVxuICB0aGFub3NTaWRlY2FyOiBSZXNvdXJjZVJlcXVpcmVtZW50czsgLy8gdGhhbm9zLXNpZGVjYXIgZm9yIFByb21ldGhldXNcbiAgdGVtcG86IFJlc291cmNlUmVxdWlyZW1lbnRzOyAvLyBUZW1wbyAobW9ub2xpdGhpYylcbiAgYWxsb3lUcmFjZXM6IFJlc291cmNlUmVxdWlyZW1lbnRzOyAvLyBBbGxveSB0cmFjZXMgT1RMUCBnYXRld2F5XG59XG5cbi8qKlxuICogSGVsbSBjaGFydCB2ZXJzaW9uIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uQ29uZmlnIHtcbiAgcHJvbWV0aGV1c1N0YWNrOiBzdHJpbmc7IC8vIGt1YmUtcHJvbWV0aGV1cy1zdGFjayBjaGFydCB2ZXJzaW9uIChlLmcuLCBcImxhdGVzdFwiIG9yIFwiNjUuMC4wXCIpXG4gIGxva2k6IHN0cmluZzsgLy8gTG9raSBjaGFydCB2ZXJzaW9uXG4gIGFsbG95OiBzdHJpbmc7IC8vIEFsbG95IGNoYXJ0IHZlcnNpb25cbiAgdGhhbm9zOiBzdHJpbmc7IC8vIFRoYW5vcyBpbWFnZSB2ZXJzaW9uIChlLmcuLCBcInYwLjM2LjFcIilcbiAgdGVtcG86IHN0cmluZzsgLy8gZ3JhZmFuYS90ZW1wbyBjaGFydCB2ZXJzaW9uXG59XG5cbi8qKlxuICogVGFpbC1zYW1wbGluZyBwb2xpY3kgZm9yIHRoZSBBbGxveSB0cmFjZXMgZ2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wb1RhaWxTYW1wbGluZ0NvbmZpZyB7XG4gIGxhdGVuY3lUaHJlc2hvbGRNczogbnVtYmVyOyAvLyBrZWVwIHRyYWNlcyBzbG93ZXIgdGhhbiB0aGlzXG4gIHByb2JhYmlsaXN0aWNQZXJjZW50OiBudW1iZXI7IC8vIGtlZXAgdGhpcyAlIG9mIHRoZSByZW1haW5pbmcgKFwibm9ybWFsXCIpIHRyYWNlc1xufVxuXG4vKipcbiAqIEdyYWZhbmEgVGVtcG8gdHJhY2luZyBjb25maWd1cmF0aW9uIChvcHQtaW4pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBvQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjsgLy8gZGVmYXVsdCBmYWxzZSDigJQgd2hlbiBmYWxzZSwgbm8gVGVtcG8gcmVzb3VyY2VzIGFyZSBjcmVhdGVkXG4gIGJ1Y2tldDogc3RyaW5nOyAvLyBTMyBidWNrZXQgZm9yIHRyYWNlcyAocmVxdWlyZWQgd2hlbiBlbmFibGVkKVxuICByZXRlbnRpb246IHN0cmluZzsgLy8gYmxvY2sgcmV0ZW50aW9uLCBlLmcuICczMzZoJyAoMTQgZGF5cylcbiAgdGFpbFNhbXBsaW5nOiBUZW1wb1RhaWxTYW1wbGluZ0NvbmZpZztcbn1cblxuLyoqXG4gKiBUcmFlZmlrIGluZ3Jlc3MtY29udHJvbGxlciBtb25pdG9yaW5nIChnZW5lcmljIGluZnJhLCBvcHQtaW4pLlxuICogUG9kTW9uaXRvciAobm90IFNlcnZpY2VNb25pdG9yOiB0aGUgazNzLWJ1bmRsZWQgVHJhZWZpayBleHBvc2VzIHRoZSBtZXRyaWNzXG4gKiBwb3J0IG9uIHRoZSBQb2QsIG5vdCB0aGUgU2VydmljZSkgcGx1cyBhbiBvcHRpb25hbCBHcmFmYW5hIGRhc2hib2FyZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFlZmlrQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjsgLy8gZGVmYXVsdCBmYWxzZSDigJQgd2hlbiBmYWxzZSwgbm8gVHJhZWZpayBtb25pdG9yaW5nIHJlc291cmNlcyBhcmUgY3JlYXRlZFxuICBuYW1lc3BhY2U6IHN0cmluZzsgLy8gbmFtZXNwYWNlIFRyYWVmaWsgcnVucyBpbiAoUG9kTW9uaXRvciBuYW1lc3BhY2VTZWxlY3Rvcik7IGRlZmF1bHQgJ3RyYWVmaWsnXG4gIGRhc2hib2FyZDogYm9vbGVhbjsgLy8gc2hpcCB0aGUgVHJhZWZpayBHcmFmYW5hIGRhc2hib2FyZCBDb25maWdNYXA7IGRlZmF1bHQgdHJ1ZVxufVxuXG4vKipcbiAqIExvbmdob3JuIHN0b3JhZ2UgbW9uaXRvcmluZyAoZ2VuZXJpYyBpbmZyYSwgb3B0LWluKS5cbiAqIFNlcnZpY2VNb25pdG9yIGZvciBsb25naG9ybi1tYW5hZ2VyIG1ldHJpY3MgcGx1cyBvcHRpb25hbCB2b2x1bWUtaGVhbHRoIGFsZXJ0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb25naG9ybkNvbmZpZyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47IC8vIGRlZmF1bHQgZmFsc2Ug4oCUIHdoZW4gZmFsc2UsIG5vIExvbmdob3JuIG1vbml0b3JpbmcgcmVzb3VyY2VzIGFyZSBjcmVhdGVkXG4gIG5hbWVzcGFjZTogc3RyaW5nOyAvLyBuYW1lc3BhY2UgTG9uZ2hvcm4gcnVucyBpbiAoU2VydmljZU1vbml0b3IgbmFtZXNwYWNlU2VsZWN0b3IpOyBkZWZhdWx0ICdsb25naG9ybi1zeXN0ZW0nXG4gIGFsZXJ0czogYm9vbGVhbjsgLy8gc2hpcCB0aGUgdm9sdW1lLWhlYWx0aCBQcm9tZXRoZXVzUnVsZTsgZGVmYXVsdCB0cnVlXG59XG5cbi8qKlxuICogQnJvd3NlciBlbWJlZGRpbmcgb2YgR3JhZmFuYSBpbiBhbiA8aWZyYW1lPiAob3B0LWluKS5cbiAqXG4gKiBHcmFmYW5hIHJlZnVzZXMgZnJhbWluZyBieSBkZWZhdWx0IChgWC1GcmFtZS1PcHRpb25zOiBkZW55YCksIHdoaWNoIGFsc29cbiAqIGJsb2NrcyBleHRlcm5hbGx5IHNoYXJlZCAoXCJwdWJsaWNcIikgZGFzaGJvYXJkcy4gRW5hYmxpbmcgdGhpcyBkcm9wcyB0aGF0XG4gKiBoZWFkZXIgYW5kIHJlcGxhY2VzIGl0IHdpdGggYSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSB3aG9zZSBgZnJhbWUtYW5jZXN0b3JzYFxuICogbmFtZXMgZXhhY3RseSB0aGUgb3JpZ2lucyBhbGxvd2VkIHRvIGZyYW1lIEdyYWZhbmEg4oCUIHRoZSB3aG9sZSBpbnN0YW5jZSxcbiAqIGluY2x1ZGluZyB0aGUgYXV0aGVudGljYXRlZCBVSSwgc28ga2VlcCB0aGUgbGlzdCB0aWdodC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRpbmdDb25maWcge1xuICBlbmFibGVkOiBib29sZWFuOyAvLyBkZWZhdWx0IGZhbHNlIOKAlCB3aGVuIGZhbHNlLCBHcmFmYW5hIGtlZXBzIGl0cyBYLUZyYW1lLU9wdGlvbnM6IGRlbnlcbiAgZnJhbWVBbmNlc3RvcnM6IHN0cmluZ1tdOyAvLyBvcmlnaW5zIGFsbG93ZWQgdG8gZnJhbWUgR3JhZmFuYSwgZS5nLiAnaHR0cHM6Ly9jb25zb2xlLmV4YW1wbGUuY29tJzsgJ3NlbGYnIGlzIGFsd2F5cyBpbmNsdWRlZFxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gdGhlIHBhY2thZ2Ugc2hpcHMgc2Vuc2libGUgZGVmYXVsdHMgZm9yLlxuICogSW50ZWdyYXRpb24gY2hhcnRzIG1heSBvdmVycmlkZSBhbnkgb2YgdGhlc2UgKGRlZXAtbWVyZ2VkIG92ZXIgREVGQVVMVF9DT05GSUcpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRhYmxlQ29uZmlnIHtcbiAgdmVyc2lvbnM6IFZlcnNpb25Db25maWc7IC8vIENoYXJ0IGFuZCBpbWFnZSB2ZXJzaW9uc1xuICByZXRlbnRpb246IFJldGVudGlvbkNvbmZpZzsgLy8gRGF0YSByZXRlbnRpb24gcG9saWNpZXNcbiAgc3RvcmFnZTogU3RvcmFnZUNvbmZpZzsgLy8gUFZDIHN0b3JhZ2Ugc2l6ZXNcbiAgcmVwbGljYXM6IFJlcGxpY2FDb25maWc7IC8vIFJlcGxpY2EgY291bnRzXG4gIHJlc291cmNlczogUmVzb3VyY2VDb25maWc7IC8vIFJlc291cmNlIHJlcXVlc3RzIGFuZCBsaW1pdHNcbiAgdGVtcG86IFRlbXBvQ29uZmlnOyAvLyBHcmFmYW5hIFRlbXBvIHRyYWNpbmcgKG9wdC1pbilcbiAgdHJhZWZpazogVHJhZWZpa0NvbmZpZzsgLy8gVHJhZWZpayBpbmdyZXNzIG1vbml0b3JpbmcgKG9wdC1pbilcbiAgbG9uZ2hvcm46IExvbmdob3JuQ29uZmlnOyAvLyBMb25naG9ybiBzdG9yYWdlIG1vbml0b3JpbmcgKG9wdC1pbilcbiAgZW1iZWRkaW5nOiBFbWJlZGRpbmdDb25maWc7IC8vIEdyYWZhbmEgaWZyYW1lIGVtYmVkZGluZyAob3B0LWluKVxufVxuXG4vKipcbiAqIENsdXN0ZXItc3BlY2lmaWMgY29uZmlndXJhdGlvbiB3aXRoIG5vIHNlbnNpYmxlIHVuaXZlcnNhbCBkZWZhdWx0LlxuICogSW50ZWdyYXRpb24gY2hhcnRzIG11c3QgcHJvdmlkZSB0aGVzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlZENsdXN0ZXJDb25maWcge1xuICBuYW1lc3BhY2U6IHN0cmluZzsgLy8gS3ViZXJuZXRlcyBuYW1lc3BhY2VcbiAgY2x1c3Rlck5hbWU6IHN0cmluZzsgLy8gdmFsdWUgb2YgdGhlIGBjbHVzdGVyYCBleHRlcm5hbCBsYWJlbCBvbiBtZXRyaWNzIGFuZCBsb2dzXG4gIGRvbWFpbnM6IERvbWFpbkNvbmZpZzsgLy8gRG9tYWluIG5hbWVzIGZvciBpbmdyZXNzZXNcbiAgczM6IFMzQ29uZmlnOyAvLyBTMyBvYmplY3Qgc3RvcmFnZSBjb25maWd1cmF0aW9uXG4gIHNtdHA6IFNtdHBDb25maWc7IC8vIFNNVFAgYWxlcnRpbmcgY29uZmlndXJhdGlvblxuICBpbnRlZ3JhdGlvbnM6IEludGVncmF0aW9uc0NvbmZpZzsgLy8gTmFtZXMgb2YgZXh0ZXJuYWwgQ3Jvc3NwbGFuZS9FU08gcmVzb3VyY2VzIHRvIHJlZmVyZW5jZVxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZSBwYXJ0aWFsIOKAlCBldmVyeSBwcm9wZXJ0eSAoaW5jbHVkaW5nIG5lc3RlZCBvbmVzKSBiZWNvbWVzIG9wdGlvbmFsLlxuICovXG5leHBvcnQgdHlwZSBEZWVwUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBUW1BdIGV4dGVuZHMgb2JqZWN0ID8gRGVlcFBhcnRpYWw8VFtQXT4gOiBUW1BdO1xufTtcblxuLyoqXG4gKiBJbnB1dCBhY2NlcHRlZCBieSBtZXJnZUNvbmZpZzogcmVxdWlyZWQgY2x1c3RlciB2YWx1ZXMgcGx1cyBvcHRpb25hbCxcbiAqIGRlZXBseS1wYXJ0aWFsIG92ZXJyaWRlcyBvZiB0aGUgcGFja2FnZSBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IHR5cGUgTW9uaXRvcmluZ0NvbmZpZ0lucHV0ID0gUmVxdWlyZWRDbHVzdGVyQ29uZmlnICYgRGVlcFBhcnRpYWw8RGVmYXVsdGFibGVDb25maWc+O1xuXG4vKipcbiAqIENvbXBsZXRlLCByZXNvbHZlZCBtb25pdG9yaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gY29uc3VtZWQgYnkgTW9uaXRvcmluZ0NoYXJ0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbml0b3JpbmdDb25maWcgZXh0ZW5kcyBSZXF1aXJlZENsdXN0ZXJDb25maWcsIERlZmF1bHRhYmxlQ29uZmlnIHt9XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb3VyY2UgYWxsb2NhdGlvbiBmb3IgYSBjb21wb25lbnQgKENQVSBhbmQgbWVtb3J5KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQWxsb2NhdGlvbiB7XG4gIGNwdTogc3RyaW5nO1xuICBtZW1vcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvdXJjZSByZXF1ZXN0cyBhbmQgbGltaXRzIGZvciBhIGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUmVxdWlyZW1lbnRzIHtcbiAgcmVxdWVzdHM6IFJlc291cmNlQWxsb2NhdGlvbjtcbiAgbGltaXRzOiBSZXNvdXJjZUFsbG9jYXRpb247XG59XG5cbi8qKlxuICogUzMgY29uZmlndXJhdGlvbiBmb3Igb2JqZWN0IHN0b3JhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0NvbmZpZyB7XG4gIGVuZHBvaW50OiBzdHJpbmc7IC8vIEZ1bGwgZW5kcG9pbnQgd2l0aCBwcm90b2NvbCAoZS5nLiwgaHR0cHM6Ly9mc24xLnlvdXItb2JqZWN0c3RvcmFnZS5jb20pXG4gIGVuZHBvaW50Tm9Qcm90b2NvbDogc3RyaW5nOyAvLyBFbmRwb2ludCB3aXRob3V0IHByb3RvY29sIChmb3IgVGhhbm9zKVxuICByZWdpb246IHN0cmluZzsgLy8gUzMgcmVnaW9uIChlLmcuLCBmc24xKVxuICBidWNrZXRzOiB7XG4gICAgdGhhbm9zOiBzdHJpbmc7IC8vIFRoYW5vcyBtZXRyaWNzIGJ1Y2tldFxuICAgIGxva2k6IHN0cmluZzsgLy8gTG9raSBsb2dzIGJ1Y2tldFxuICB9O1xufVxuXG4vKipcbiAqIFNNVFAgY29uZmlndXJhdGlvbiBmb3IgYWxlcnRpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbXRwQ29uZmlnIHtcbiAgaG9zdDogc3RyaW5nOyAvLyBTTVRQIHNlcnZlciBob3N0bmFtZVxuICBwb3J0OiBudW1iZXI7IC8vIFNNVFAgc2VydmVyIHBvcnRcbiAgZnJvbTogc3RyaW5nOyAvLyBGcm9tIGVtYWlsIGFkZHJlc3NcbiAgdXNlcm5hbWU/OiBzdHJpbmc7IC8vIFNNVFAgdXNlcm5hbWUgKG9wdGlvbmFsKVxuICBwYXNzd29yZD86IHN0cmluZzsgLy8gU01UUCBwYXNzd29yZCAob3B0aW9uYWwpXG4gIHJlcXVpcmVUbHM6IGJvb2xlYW47IC8vIFJlcXVpcmUgVExTIGZvciBTTVRQXG59XG5cbi8qKlxuICogRG9tYWluIGNvbmZpZ3VyYXRpb24gZm9yIGluZ3Jlc3Nlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbkNvbmZpZyB7XG4gIGdyYWZhbmE6IHN0cmluZzsgLy8gR3JhZmFuYSBkb21haW4gKGUuZy4sIGdyYWZhbmEub3BzLmt1cDZzLm5ldClcbiAgaW5ncmVzc0NsYXNzTmFtZT86IHN0cmluZzsgLy8gSW5ncmVzc0NsYXNzIGZvciB0aGUgR3JhZmFuYSBpbmdyZXNzOyBvbWl0IHRvIHJlbHkgb24gdGhlIGNsdXN0ZXIncyBkZWZhdWx0IEluZ3Jlc3NDbGFzc1xufVxuXG4vKipcbiAqIE5hbWVzIG9mIHRoZSBleHRlcm5hbCBDcm9zc3BsYW5lIGFuZCBFeHRlcm5hbCBTZWNyZXRzIE9wZXJhdG9yIHJlc291cmNlcyB0aGlzXG4gKiBzdGFjayByZWZlcmVuY2VzLiBUaGVzZSBhcmUgbm90IGNyZWF0ZWQgYnkgdGhlIGxpYnJhcnk7IHRoZXkgbXVzdCBhbHJlYWR5IGV4aXN0XG4gKiBpbiB5b3VyIGNsdXN0ZXIuIFRoZXJlIGFyZSBubyBkZWZhdWx0cyDigJQgZXZlcnkgY29uc3VtZXIgd2lyZXMgaXRzIG93biBuYW1lcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ3JhdGlvbnNDb25maWcge1xuICBzM1Byb3ZpZGVyQ29uZmlnOiBzdHJpbmc7IC8vIENyb3NzcGxhbmUgUHJvdmlkZXJDb25maWcgbmFtZSB0aGUgQnVja2V0IHJlc291cmNlcyByZWNvbmNpbGUgYWdhaW5zdFxuICBzM1NlY3JldFN0b3JlOiBzdHJpbmc7IC8vIEVTTyBDbHVzdGVyU2VjcmV0U3RvcmUgbmFtZSBob2xkaW5nIHRoZSBTMyBjcmVkZW50aWFsc1xuICBzM0NyZWRlbnRpYWxzS2V5OiBzdHJpbmc7IC8vIFJlbW90ZSBrZXkgaW4gdGhlIHN0b3JlIHRvIGV4dHJhY3QgUzMgY3JlZGVudGlhbHMgZnJvbSAocHJvdmlkZXMgQVdTX0FDQ0VTU19LRVlfSUQgLyBBV1NfU0VDUkVUX0FDQ0VTU19LRVkpXG4gIGdyYWZhbmFTZWNyZXRTdG9yZTogc3RyaW5nOyAvLyBFU08gQ2x1c3RlclNlY3JldFN0b3JlIG5hbWUgaG9sZGluZyB0aGUgR3JhZmFuYSBhZG1pbiBjcmVkZW50aWFsc1xuICBncmFmYW5hQ3JlZGVudGlhbHNLZXk6IHN0cmluZzsgLy8gUmVtb3RlIGtleSBpbiB0aGUgc3RvcmUgdG8gZXh0cmFjdCB0aGUgR3JhZmFuYSBhZG1pbiBjcmVkZW50aWFscyBmcm9tXG59XG5cbi8qKlxuICogUmV0ZW50aW9uIHBvbGljaWVzIGZvciBtZXRyaWNzIGFuZCBsb2dzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0ZW50aW9uQ29uZmlnIHtcbiAgcHJvbWV0aGV1czogc3RyaW5nOyAvLyBQcm9tZXRoZXVzIGxvY2FsIHJldGVudGlvbiAoZS5nLiwgXCIzZFwiKVxuICBwcm9tZXRoZXVzUzNSYXc6IG51bWJlcjsgLy8gVGhhbm9zIHJhdyBkYXRhIHJldGVudGlvbiAoZGF5cylcbiAgcHJvbWV0aGV1c1MzNW06IG51bWJlcjsgLy8gVGhhbm9zIDUtbWludXRlIGRvd25zYW1wbGVkIHJldGVudGlvbiAoZGF5cylcbiAgcHJvbWV0aGV1c1MzMWg6IG51bWJlcjsgLy8gVGhhbm9zIDEtaG91ciBkb3duc2FtcGxlZCByZXRlbnRpb24gKGRheXMpXG4gIGxva2k6IHN0cmluZzsgLy8gTG9raSByZXRlbnRpb24gKGUuZy4sIFwiNzQ0aFwiIGZvciAzMSBkYXlzKVxufVxuXG4vKipcbiAqIFN0b3JhZ2Ugc2l6ZXMgZm9yIHBlcnNpc3RlbnQgdm9sdW1lc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VDb25maWcge1xuICBwcm9tZXRoZXVzOiBzdHJpbmc7IC8vIFByb21ldGhldXMgUFZDIHNpemVcbiAgZ3JhZmFuYTogc3RyaW5nOyAvLyBHcmFmYW5hIFBWQyBzaXplXG4gIGFsZXJ0bWFuYWdlcjogc3RyaW5nOyAvLyBBbGVydG1hbmFnZXIgUFZDIHNpemVcbiAgbG9raUJhY2tlbmQ6IHN0cmluZzsgLy8gTG9raSBiYWNrZW5kIFBWQyBzaXplXG4gIGxva2lXcml0ZTogc3RyaW5nOyAvLyBMb2tpIHdyaXRlIFBWQyBzaXplXG4gIHRoYW5vc1N0b3JlOiBzdHJpbmc7IC8vIFRoYW5vcyBzdG9yZSBQVkMgc2l6ZSAocGVyIHJlcGxpY2EpXG4gIHRoYW5vc0NvbXBhY3Rvcjogc3RyaW5nOyAvLyBUaGFub3MgY29tcGFjdG9yIFBWQyBzaXplXG4gIHRlbXBvOiBzdHJpbmc7IC8vIFRlbXBvIFdBTC9sb2NhbC1ibG9ja3MgUFZDIHNpemVcbn1cblxuLyoqXG4gKiBSZXBsaWNhIGNvdW50cyBmb3IgaGlnaCBhdmFpbGFiaWxpdHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsaWNhQ29uZmlnIHtcbiAgcHJvbWV0aGV1czogbnVtYmVyOyAvLyBQcm9tZXRoZXVzIHJlcGxpY2FzXG4gIGFsZXJ0bWFuYWdlcjogbnVtYmVyOyAvLyBBbGVydG1hbmFnZXIgcmVwbGljYXNcbiAgZ3JhZmFuYTogbnVtYmVyOyAvLyBHcmFmYW5hIHJlcGxpY2FzICh1c3VhbGx5IDEpXG4gIGxva2lCYWNrZW5kOiBudW1iZXI7IC8vIExva2kgYmFja2VuZCByZXBsaWNhc1xuICBsb2tpUmVhZDogbnVtYmVyOyAvLyBMb2tpIHJlYWQgcmVwbGljYXNcbiAgbG9raVdyaXRlOiBudW1iZXI7IC8vIExva2kgd3JpdGUgcmVwbGljYXNcbiAgdGhhbm9zUXVlcnk6IG51bWJlcjsgLy8gVGhhbm9zIFF1ZXJ5IHJlcGxpY2FzXG4gIHRoYW5vc1N0b3JlOiBudW1iZXI7IC8vIFRoYW5vcyBTdG9yZSByZXBsaWNhc1xuICB0ZW1wbzogbnVtYmVyOyAvLyBUZW1wbyByZXBsaWNhc1xufVxuXG4vKipcbiAqIFJlc291cmNlIHJlcXVpcmVtZW50cyBmb3IgYWxsIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUNvbmZpZyB7XG4gIHByb21ldGhldXM6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICBncmFmYW5hOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgYWxlcnRtYW5hZ2VyOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgbG9raUJhY2tlbmQ6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICBsb2tpUmVhZDogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGxva2lXcml0ZTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIGxva2lHYXRld2F5OiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgYWxsb3k6IFJlc291cmNlUmVxdWlyZW1lbnRzO1xuICB0aGFub3NRdWVyeTogUmVzb3VyY2VSZXF1aXJlbWVudHM7XG4gIHRoYW5vc1N0b3JlOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgdGhhbm9zQ29tcGFjdG9yOiBSZXNvdXJjZVJlcXVpcmVtZW50cztcbiAgLy8gU2lkZWNhciBjb250YWluZXJzIChhZGRlZCAyMDI1LTExLTE4KVxuICBjb25maWdSZWxvYWRlcjogUmVzb3VyY2VSZXF1aXJlbWVudHM7IC8vIGNvbmZpZy1yZWxvYWRlciBzaWRlY2FyIChQcm9tZXRoZXVzLCBBbGVydG1hbmFnZXIsIEFsbG95KVxuICB0aGFub3NTaWRlY2FyOiBSZXNvdXJjZVJlcXVpcmVtZW50czsgLy8gdGhhbm9zLXNpZGVjYXIgZm9yIFByb21ldGhldXNcbiAgdGVtcG86IFJlc291cmNlUmVxdWlyZW1lbnRzOyAvLyBUZW1wbyAobW9ub2xpdGhpYylcbiAgYWxsb3lUcmFjZXM6IFJlc291cmNlUmVxdWlyZW1lbnRzOyAvLyBBbGxveSB0cmFjZXMgT1RMUCBnYXRld2F5XG59XG5cbi8qKlxuICogSGVsbSBjaGFydCB2ZXJzaW9uIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uQ29uZmlnIHtcbiAgcHJvbWV0aGV1c1N0YWNrOiBzdHJpbmc7IC8vIGt1YmUtcHJvbWV0aGV1cy1zdGFjayBjaGFydCB2ZXJzaW9uIChlLmcuLCBcImxhdGVzdFwiIG9yIFwiNjUuMC4wXCIpXG4gIGxva2k6IHN0cmluZzsgLy8gTG9raSBjaGFydCB2ZXJzaW9uXG4gIGFsbG95OiBzdHJpbmc7IC8vIEFsbG95IGNoYXJ0IHZlcnNpb25cbiAgdGhhbm9zOiBzdHJpbmc7IC8vIFRoYW5vcyBpbWFnZSB2ZXJzaW9uIChlLmcuLCBcInYwLjM2LjFcIilcbiAgdGVtcG86IHN0cmluZzsgLy8gZ3JhZmFuYS90ZW1wbyBjaGFydCB2ZXJzaW9uXG59XG5cbi8qKlxuICogVGFpbC1zYW1wbGluZyBwb2xpY3kgZm9yIHRoZSBBbGxveSB0cmFjZXMgZ2F0ZXdheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wb1RhaWxTYW1wbGluZ0NvbmZpZyB7XG4gIGxhdGVuY3lUaHJlc2hvbGRNczogbnVtYmVyOyAvLyBrZWVwIHRyYWNlcyBzbG93ZXIgdGhhbiB0aGlzXG4gIHByb2JhYmlsaXN0aWNQZXJjZW50OiBudW1iZXI7IC8vIGtlZXAgdGhpcyAlIG9mIHRoZSByZW1haW5pbmcgKFwibm9ybWFsXCIpIHRyYWNlc1xufVxuXG4vKipcbiAqIEdyYWZhbmEgVGVtcG8gdHJhY2luZyBjb25maWd1cmF0aW9uIChvcHQtaW4pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBvQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjsgLy8gZGVmYXVsdCBmYWxzZSDigJQgd2hlbiBmYWxzZSwgbm8gVGVtcG8gcmVzb3VyY2VzIGFyZSBjcmVhdGVkXG4gIGJ1Y2tldDogc3RyaW5nOyAvLyBTMyBidWNrZXQgZm9yIHRyYWNlcyAocmVxdWlyZWQgd2hlbiBlbmFibGVkKVxuICByZXRlbnRpb246IHN0cmluZzsgLy8gYmxvY2sgcmV0ZW50aW9uLCBlLmcuICczMzZoJyAoMTQgZGF5cylcbiAgdGFpbFNhbXBsaW5nOiBUZW1wb1RhaWxTYW1wbGluZ0NvbmZpZztcbn1cblxuLyoqXG4gKiBUcmFlZmlrIGluZ3Jlc3MtY29udHJvbGxlciBtb25pdG9yaW5nIChnZW5lcmljIGluZnJhLCBvcHQtaW4pLlxuICogUG9kTW9uaXRvciAobm90IFNlcnZpY2VNb25pdG9yOiB0aGUgazNzLWJ1bmRsZWQgVHJhZWZpayBleHBvc2VzIHRoZSBtZXRyaWNzXG4gKiBwb3J0IG9uIHRoZSBQb2QsIG5vdCB0aGUgU2VydmljZSkgcGx1cyBhbiBvcHRpb25hbCBHcmFmYW5hIGRhc2hib2FyZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFlZmlrQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjsgLy8gZGVmYXVsdCBmYWxzZSDigJQgd2hlbiBmYWxzZSwgbm8gVHJhZWZpayBtb25pdG9yaW5nIHJlc291cmNlcyBhcmUgY3JlYXRlZFxuICBuYW1lc3BhY2U6IHN0cmluZzsgLy8gbmFtZXNwYWNlIFRyYWVmaWsgcnVucyBpbiAoUG9kTW9uaXRvciBuYW1lc3BhY2VTZWxlY3Rvcik7IGRlZmF1bHQgJ3RyYWVmaWsnXG4gIGRhc2hib2FyZDogYm9vbGVhbjsgLy8gc2hpcCB0aGUgVHJhZWZpayBHcmFmYW5hIGRhc2hib2FyZCBDb25maWdNYXA7IGRlZmF1bHQgdHJ1ZVxufVxuXG4vKipcbiAqIExvbmdob3JuIHN0b3JhZ2UgbW9uaXRvcmluZyAoZ2VuZXJpYyBpbmZyYSwgb3B0LWluKS5cbiAqIFNlcnZpY2VNb25pdG9yIGZvciBsb25naG9ybi1tYW5hZ2VyIG1ldHJpY3MgcGx1cyBvcHRpb25hbCB2b2x1bWUtaGVhbHRoIGFsZXJ0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb25naG9ybkNvbmZpZyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47IC8vIGRlZmF1bHQgZmFsc2Ug4oCUIHdoZW4gZmFsc2UsIG5vIExvbmdob3JuIG1vbml0b3JpbmcgcmVzb3VyY2VzIGFyZSBjcmVhdGVkXG4gIG5hbWVzcGFjZTogc3RyaW5nOyAvLyBuYW1lc3BhY2UgTG9uZ2hvcm4gcnVucyBpbiAoU2VydmljZU1vbml0b3IgbmFtZXNwYWNlU2VsZWN0b3IpOyBkZWZhdWx0ICdsb25naG9ybi1zeXN0ZW0nXG4gIGFsZXJ0czogYm9vbGVhbjsgLy8gc2hpcCB0aGUgdm9sdW1lLWhlYWx0aCBQcm9tZXRoZXVzUnVsZTsgZGVmYXVsdCB0cnVlXG59XG5cbi8qKlxuICogQnJvd3NlciBlbWJlZGRpbmcgb2YgR3JhZmFuYSBpbiBhbiA8aWZyYW1lPiAob3B0LWluKS5cbiAqXG4gKiBHcmFmYW5hIHJlZnVzZXMgZnJhbWluZyBieSBkZWZhdWx0IChgWC1GcmFtZS1PcHRpb25zOiBkZW55YCksIHdoaWNoIGFsc29cbiAqIGJsb2NrcyBleHRlcm5hbGx5IHNoYXJlZCAoXCJwdWJsaWNcIikgZGFzaGJvYXJkcy4gRW5hYmxpbmcgdGhpcyBkcm9wcyB0aGF0XG4gKiBoZWFkZXIgYW5kIHJlcGxhY2VzIGl0IHdpdGggYSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSB3aG9zZSBgZnJhbWUtYW5jZXN0b3JzYFxuICogbmFtZXMgZXhhY3RseSB0aGUgb3JpZ2lucyBhbGxvd2VkIHRvIGZyYW1lIEdyYWZhbmEg4oCUIHRoZSB3aG9sZSBpbnN0YW5jZSxcbiAqIGluY2x1ZGluZyB0aGUgYXV0aGVudGljYXRlZCBVSSwgc28ga2VlcCB0aGUgbGlzdCB0aWdodC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRpbmdDb25maWcge1xuICBlbmFibGVkOiBib29sZWFuOyAvLyBkZWZhdWx0IGZhbHNlIOKAlCB3aGVuIGZhbHNlLCBHcmFmYW5hIGtlZXBzIGl0cyBYLUZyYW1lLU9wdGlvbnM6IGRlbnlcbiAgZnJhbWVBbmNlc3RvcnM6IHN0cmluZ1tdOyAvLyBvcmlnaW5zIGFsbG93ZWQgdG8gZnJhbWUgR3JhZmFuYSwgZS5nLiAnaHR0cHM6Ly9jb25zb2xlLmV4YW1wbGUuY29tJzsgJ3NlbGYnIGlzIGFsd2F5cyBpbmNsdWRlZFxufVxuXG4vKipcbiAqIERlbW90ZWQgYWxlcnQgcm91dGluZyBmb3Igc3RhZ2luZyBuYW1lc3BhY2VzIHNoYXJpbmcgdGhpcyBjbHVzdGVyJ3NcbiAqIG1vbml0b3Jpbmcgc3RhY2sgKG9wdC1pbikuXG4gKlxuICogQWxlcnRzIHdob3NlIGBuYW1lc3BhY2VgIGxhYmVsIG1hdGNoZXMgb25lIG9mIHRoZSBsaXN0ZWQgbmFtZXNwYWNlcyBhcmVcbiAqIHJvdXRlZCB0byBhIHNlcGFyYXRlIGBzdGFnaW5nYCBlbWFpbCByZWNlaXZlciB3aG9zZSBzdWJqZWN0IGNhcnJpZXMgYVxuICogYFtTVEFHSU5HXWAgcHJlZml4LCBpbnN0ZWFkIG9mIHRoZSBwcm9kdWN0aW9uIHJlY2VpdmVyIOKAlCBzbyB0aGV5IHN0YXlcbiAqIHZpc2libGUgYnV0IG5ldmVyIHJlYWQgbGlrZSBhIHByb2R1Y3Rpb24gcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnaW5nQWxlcnRzQ29uZmlnIHtcbiAgZW5hYmxlZDogYm9vbGVhbjsgLy8gZGVmYXVsdCBmYWxzZSDigJQgd2hlbiBmYWxzZSwgYWxsIG5hbWVzcGFjZXMgcm91dGUgdG8gdGhlIHByb2R1Y3Rpb24gcmVjZWl2ZXJcbiAgbmFtZXNwYWNlczogc3RyaW5nW107IC8vIG5hbWVzcGFjZXMgd2hvc2UgYWxlcnRzIGFyZSBkZW1vdGVkLCBlLmcuICdteWFwcC1zdGFnZSdcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHRoZSBwYWNrYWdlIHNoaXBzIHNlbnNpYmxlIGRlZmF1bHRzIGZvci5cbiAqIEludGVncmF0aW9uIGNoYXJ0cyBtYXkgb3ZlcnJpZGUgYW55IG9mIHRoZXNlIChkZWVwLW1lcmdlZCBvdmVyIERFRkFVTFRfQ09ORklHKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0YWJsZUNvbmZpZyB7XG4gIHZlcnNpb25zOiBWZXJzaW9uQ29uZmlnOyAvLyBDaGFydCBhbmQgaW1hZ2UgdmVyc2lvbnNcbiAgcmV0ZW50aW9uOiBSZXRlbnRpb25Db25maWc7IC8vIERhdGEgcmV0ZW50aW9uIHBvbGljaWVzXG4gIHN0b3JhZ2U6IFN0b3JhZ2VDb25maWc7IC8vIFBWQyBzdG9yYWdlIHNpemVzXG4gIHJlcGxpY2FzOiBSZXBsaWNhQ29uZmlnOyAvLyBSZXBsaWNhIGNvdW50c1xuICByZXNvdXJjZXM6IFJlc291cmNlQ29uZmlnOyAvLyBSZXNvdXJjZSByZXF1ZXN0cyBhbmQgbGltaXRzXG4gIHRlbXBvOiBUZW1wb0NvbmZpZzsgLy8gR3JhZmFuYSBUZW1wbyB0cmFjaW5nIChvcHQtaW4pXG4gIHRyYWVmaWs6IFRyYWVmaWtDb25maWc7IC8vIFRyYWVmaWsgaW5ncmVzcyBtb25pdG9yaW5nIChvcHQtaW4pXG4gIGxvbmdob3JuOiBMb25naG9ybkNvbmZpZzsgLy8gTG9uZ2hvcm4gc3RvcmFnZSBtb25pdG9yaW5nIChvcHQtaW4pXG4gIGVtYmVkZGluZzogRW1iZWRkaW5nQ29uZmlnOyAvLyBHcmFmYW5hIGlmcmFtZSBlbWJlZGRpbmcgKG9wdC1pbilcbiAgc3RhZ2luZ0FsZXJ0czogU3RhZ2luZ0FsZXJ0c0NvbmZpZzsgLy8gZGVtb3RlZCBhbGVydCByb3V0aW5nIGZvciBzdGFnaW5nIG5hbWVzcGFjZXMgKG9wdC1pbilcbn1cblxuLyoqXG4gKiBDbHVzdGVyLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gd2l0aCBubyBzZW5zaWJsZSB1bml2ZXJzYWwgZGVmYXVsdC5cbiAqIEludGVncmF0aW9uIGNoYXJ0cyBtdXN0IHByb3ZpZGUgdGhlc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRDbHVzdGVyQ29uZmlnIHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7IC8vIEt1YmVybmV0ZXMgbmFtZXNwYWNlXG4gIGNsdXN0ZXJOYW1lOiBzdHJpbmc7IC8vIHZhbHVlIG9mIHRoZSBgY2x1c3RlcmAgZXh0ZXJuYWwgbGFiZWwgb24gbWV0cmljcyBhbmQgbG9nc1xuICBkb21haW5zOiBEb21haW5Db25maWc7IC8vIERvbWFpbiBuYW1lcyBmb3IgaW5ncmVzc2VzXG4gIHMzOiBTM0NvbmZpZzsgLy8gUzMgb2JqZWN0IHN0b3JhZ2UgY29uZmlndXJhdGlvblxuICBzbXRwOiBTbXRwQ29uZmlnOyAvLyBTTVRQIGFsZXJ0aW5nIGNvbmZpZ3VyYXRpb25cbiAgaW50ZWdyYXRpb25zOiBJbnRlZ3JhdGlvbnNDb25maWc7IC8vIE5hbWVzIG9mIGV4dGVybmFsIENyb3NzcGxhbmUvRVNPIHJlc291cmNlcyB0byByZWZlcmVuY2Vcbn1cblxuLyoqXG4gKiBSZWN1cnNpdmUgcGFydGlhbCDigJQgZXZlcnkgcHJvcGVydHkgKGluY2x1ZGluZyBuZXN0ZWQgb25lcykgYmVjb21lcyBvcHRpb25hbC5cbiAqL1xuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogVFtQXSBleHRlbmRzIG9iamVjdCA/IERlZXBQYXJ0aWFsPFRbUF0+IDogVFtQXTtcbn07XG5cbi8qKlxuICogSW5wdXQgYWNjZXB0ZWQgYnkgbWVyZ2VDb25maWc6IHJlcXVpcmVkIGNsdXN0ZXIgdmFsdWVzIHBsdXMgb3B0aW9uYWwsXG4gKiBkZWVwbHktcGFydGlhbCBvdmVycmlkZXMgb2YgdGhlIHBhY2thZ2UgZGVmYXVsdHMuXG4gKi9cbmV4cG9ydCB0eXBlIE1vbml0b3JpbmdDb25maWdJbnB1dCA9IFJlcXVpcmVkQ2x1c3RlckNvbmZpZyAmIERlZXBQYXJ0aWFsPERlZmF1bHRhYmxlQ29uZmlnPjtcblxuLyoqXG4gKiBDb21wbGV0ZSwgcmVzb2x2ZWQgbW9uaXRvcmluZyBzdGFjayBjb25maWd1cmF0aW9uIGNvbnN1bWVkIGJ5IE1vbml0b3JpbmdDaGFydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yaW5nQ29uZmlnIGV4dGVuZHMgUmVxdWlyZWRDbHVzdGVyQ29uZmlnLCBEZWZhdWx0YWJsZUNvbmZpZyB7fVxuIl19
package/package.json CHANGED
@@ -66,7 +66,7 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "version": "1.2.1",
69
+ "version": "1.3.0",
70
70
  "jest": {
71
71
  "coverageProvider": "v8",
72
72
  "testMatch": [