@bluedynamics/cdk8s-monitoring 1.2.0 → 1.2.1
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.
|
@@ -40,6 +40,14 @@ export declare class PrometheusStackConstruct extends Construct {
|
|
|
40
40
|
* and `$ROOT_PATH` are expanded by Grafana per request. Only
|
|
41
41
|
* `$FORM_ACTION_ADDITIONAL_HOSTS` is dropped: it exists as a placeholder just
|
|
42
42
|
* in recent Grafanas, and older ones would emit it literally into the header.
|
|
43
|
+
*
|
|
44
|
+
* The policy is wrapped in `"""`, exactly as Grafana's own defaults.ini does.
|
|
45
|
+
* grafana.ini is parsed by go-ini, which treats `;` as an inline comment — an
|
|
46
|
+
* unquoted policy is silently truncated at its first directive separator, and
|
|
47
|
+
* the browser then receives a CSP without `frame-ancestors` while
|
|
48
|
+
* `X-Frame-Options` is already gone. A YAML block scalar carries the quotes
|
|
49
|
+
* through untouched; a plain quoted scalar would fight over the same
|
|
50
|
+
* character.
|
|
43
51
|
*/
|
|
44
52
|
private generateGrafanaSecurity;
|
|
45
53
|
private generateHelmValues;
|
|
@@ -70,6 +70,14 @@ class PrometheusStackConstruct extends constructs_1.Construct {
|
|
|
70
70
|
* and `$ROOT_PATH` are expanded by Grafana per request. Only
|
|
71
71
|
* `$FORM_ACTION_ADDITIONAL_HOSTS` is dropped: it exists as a placeholder just
|
|
72
72
|
* in recent Grafanas, and older ones would emit it literally into the header.
|
|
73
|
+
*
|
|
74
|
+
* The policy is wrapped in `"""`, exactly as Grafana's own defaults.ini does.
|
|
75
|
+
* grafana.ini is parsed by go-ini, which treats `;` as an inline comment — an
|
|
76
|
+
* unquoted policy is silently truncated at its first directive separator, and
|
|
77
|
+
* the browser then receives a CSP without `frame-ancestors` while
|
|
78
|
+
* `X-Frame-Options` is already gone. A YAML block scalar carries the quotes
|
|
79
|
+
* through untouched; a plain quoted scalar would fight over the same
|
|
80
|
+
* character.
|
|
73
81
|
*/
|
|
74
82
|
generateGrafanaSecurity(config) {
|
|
75
83
|
if (!config.embedding.enabled)
|
|
@@ -91,7 +99,8 @@ class PrometheusStackConstruct extends constructs_1.Construct {
|
|
|
91
99
|
security:
|
|
92
100
|
allow_embedding: true
|
|
93
101
|
content_security_policy: true
|
|
94
|
-
content_security_policy_template:
|
|
102
|
+
content_security_policy_template: >-
|
|
103
|
+
"""${policy}"""`;
|
|
95
104
|
}
|
|
96
105
|
generateHelmValues(config) {
|
|
97
106
|
// Tempo datasource is only provisioned when tracing is enabled. When
|
|
@@ -518,4 +527,4 @@ kube-state-metrics:
|
|
|
518
527
|
}
|
|
519
528
|
}
|
|
520
529
|
exports.PrometheusStackConstruct = PrometheusStackConstruct;
|
|
521
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWV0aGV1cy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWtDO0FBQ2xDLDJDQUF1QztBQVF2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFDckQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXBDLDRCQUE0QjtRQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsa0RBQWtEO1FBQ2xELDJDQUEyQztRQUMzQyxJQUFJLGlCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzNDLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsdUJBQXVCO29CQUNqRCw2QkFBNkIsRUFBRSxZQUFZO29CQUMzQyw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsb0RBQW9EO2dCQUMxRCxLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxT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QVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ2xDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBeUI1QyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUNBc0JDLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7Ozt1REFRSSxNQUFNLENBQUMsU0FBUzs7Ozs7Ozs7bUNBUXBDLE1BQU0sQ0FBQyxTQUFTOzswQkFFekIsZUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBdUN4QyxDQUFDO0lBQ0EsQ0FBQztDQUNGO0FBamZELDREQWlmQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaU9iamVjdCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTW9uaXRvcmluZ0NvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9tZXRoZXVzU3RhY2tQcm9wcyB7XG4gIG5hbWVzcGFjZTogc3RyaW5nO1xuICBjb25maWc6IE1vbml0b3JpbmdDb25maWc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBrdWJlLXByb21ldGhldXMtc3RhY2sgSGVsbUNoYXJ0IHdpdGggUHJvbWV0aGV1cywgR3JhZmFuYSwgYW5kIEFsZXJ0bWFuYWdlci5cbiAqXG4gKiBUaGlzIGlzIHRoZSBjb3JlIG1vbml0b3Jpbmcgc3RhY2sgdGhhdCBpbmNsdWRlczpcbiAqIC0gUHJvbWV0aGV1cyAobWV0cmljcyBjb2xsZWN0aW9uLCAyIHJlcGxpY2FzLCAzZCByZXRlbnRpb24pXG4gKiAtIEdyYWZhbmEgKHZpc3VhbGl6YXRpb24sIGluZ3Jlc3Mgd2l0aCBMZXQncyBFbmNyeXB0KVxuICogLSBBbGVydG1hbmFnZXIgKGFsZXJ0IHJvdXRpbmcsIFNNVFAgbm90aWZpY2F0aW9ucylcbiAqIC0gUHJvbWV0aGV1cyBPcGVyYXRvciAobWFuYWdlcyBQcm9tZXRoZXVzIENSRHMpXG4gKiAtIE5vZGUgRXhwb3J0ZXIgKHN5c3RlbSBtZXRyaWNzIERhZW1vblNldClcbiAqIC0ga3ViZS1zdGF0ZS1tZXRyaWNzIChLdWJlcm5ldGVzIHJlc291cmNlIG1ldHJpY3MpXG4gKlxuICogUHJlcmVxdWlzaXRlczpcbiAqIC0gTmFtZXNwYWNlIGV4aXN0c1xuICogLSBQcmlvcml0eUNsYXNzICdoaWdoLXByaW9yaXR5JyBleGlzdHNcbiAqIC0gTG9uZ2hvcm4gc3RvcmFnZSBjbGFzcyBhdmFpbGFibGVcbiAqIC0gY2VydC1tYW5hZ2VyIENsdXN0ZXJJc3N1ZXIgY29uZmlndXJlZFxuICogLSBUaGFub3MgUzMgc2VjcmV0IGV4aXN0cyAodGhhbm9zLW9ianN0b3JlLWNvbmZpZylcbiAqXG4gKiBTeW5jIFdhdmU6IDIgKGNvcmUgc2VydmljZXMgLSBhZnRlciBTMyBidWNrZXRzIGFuZCBzZWNyZXRzKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbWV0aGV1c1N0YWNrQ29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb21ldGhldXNTdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHsgbmFtZXNwYWNlLCBjb25maWcgfSA9IHByb3BzO1xuXG4gICAgLy8gR2VuZXJhdGUgSGVsbSB2YWx1ZXMgWUFNTFxuICAgIGNvbnN0IGhlbG1WYWx1ZXMgPSB0aGlzLmdlbmVyYXRlSGVsbVZhbHVlcyhjb25maWcpO1xuXG4gICAgLy8gQ3JlYXRlIEhlbG1DaGFydCByZXNvdXJjZSAoSzNTIEhlbG0gY29udHJvbGxlcilcbiAgICAvLyBXYXZlIDI6IENvcmUgU2VydmljZXMgLSBtb25pdG9yaW5nIHN0YWNrXG4gICAgbmV3IEFwaU9iamVjdCh0aGlzLCAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJywge1xuICAgICAgYXBpVmVyc2lvbjogJ2hlbG0uY2F0dGxlLmlvL3YxJyxcbiAgICAgIGtpbmQ6ICdIZWxtQ2hhcnQnLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgbmFtZTogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSc6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnbW9uaXRvcmluZycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnknOiAnY2RrOHMnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mJzogJ21vbml0b3JpbmcnLFxuICAgICAgICB9LFxuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdhcmdvY2QuYXJnb3Byb2ouaW8vc3luYy13YXZlJzogJzInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcmVwbzogJ2h0dHBzOi8vcHJvbWV0aGV1cy1jb21tdW5pdHkuZ2l0aHViLmlvL2hlbG0tY2hhcnRzJyxcbiAgICAgICAgY2hhcnQ6ICdrdWJlLXByb21ldGhldXMtc3RhY2snLFxuICAgICAgICB2ZXJzaW9uOiBjb25maWcudmVyc2lvbnMucHJvbWV0aGV1c1N0YWNrID09PSAnbGF0ZXN0JyA/IHVuZGVmaW5lZCA6IGNvbmZpZy52ZXJzaW9ucy5wcm9tZXRoZXVzU3RhY2ssXG4gICAgICAgIHRhcmdldE5hbWVzcGFjZTogbmFtZXNwYWNlLFxuICAgICAgICB2YWx1ZXNDb250ZW50OiBoZWxtVmFsdWVzLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBgW3NlY3VyaXR5XWAgc2VjdGlvbiBvZiBncmFmYW5hLmluaSwgZW1wdHkgdW5sZXNzIGVtYmVkZGluZyBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBHcmFmYW5hIHNlbmRzIGBYLUZyYW1lLU9wdGlvbnM6IGRlbnlgIHVubGVzcyBgYWxsb3dfZW1iZWRkaW5nYCBpcyBzZXQsIHdoaWNoXG4gICAqIGJsb2NrcyBleHRlcm5hbGx5IHNoYXJlZCAoXCJwdWJsaWNcIikgZGFzaGJvYXJkcyBpbiBhbiBpZnJhbWUganVzdCBhcyBtdWNoIGFzXG4gICAqIHRoZSBhdXRoZW50aWNhdGVkIFVJLiBEcm9wcGluZyB0aGF0IGhlYWRlciBhbG9uZSB3b3VsZCBsZXQgYW55IHNpdGUgZnJhbWVcbiAgICogR3JhZmFuYSwgc28gaXQgaXMgcGFpcmVkIHdpdGggYSBDb250ZW50LVNlY3VyaXR5LVBvbGljeSB3aG9zZVxuICAgKiBgZnJhbWUtYW5jZXN0b3JzYCBuYW1lcyB0aGUgYWxsb3dlZCBvcmlnaW5zIOKAlCBicm93c2VycyBob25vdXIgaXQgaW4gcGxhY2Ugb2ZcbiAgICogdGhlIHJlbW92ZWQgaGVhZGVyLlxuICAgKlxuICAgKiBUaGUgb3RoZXIgZGlyZWN0aXZlcyBhcmUgR3JhZmFuYSdzIG93biBkZWZhdWx0IHRlbXBsYXRlIHZlcmJhdGltOyBgJE5PTkNFYFxuICAgKiBhbmQgYCRST09UX1BBVEhgIGFyZSBleHBhbmRlZCBieSBHcmFmYW5hIHBlciByZXF1ZXN0LiBPbmx5XG4gICAqIGAkRk9STV9BQ1RJT05fQURESVRJT05BTF9IT1NUU2AgaXMgZHJvcHBlZDogaXQgZXhpc3RzIGFzIGEgcGxhY2Vob2xkZXIganVzdFxuICAgKiBpbiByZWNlbnQgR3JhZmFuYXMsIGFuZCBvbGRlciBvbmVzIHdvdWxkIGVtaXQgaXQgbGl0ZXJhbGx5IGludG8gdGhlIGhlYWRlci5cbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVHcmFmYW5hU2VjdXJpdHkoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmZpZy5lbWJlZGRpbmcuZW5hYmxlZCkgcmV0dXJuICcnO1xuICAgIGNvbnN0IHBvbGljeSA9IFtcbiAgICAgIFwic2NyaXB0LXNyYyAnc2VsZicgJ3Vuc2FmZS1ldmFsJyAndW5zYWZlLWlubGluZScgJ3N0cmljdC1keW5hbWljJyAkTk9OQ0VcIixcbiAgICAgIFwib2JqZWN0LXNyYyAnbm9uZSdcIixcbiAgICAgIFwiZm9udC1zcmMgJ3NlbGYnXCIsXG4gICAgICBcInN0eWxlLXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnIGJsb2I6XCIsXG4gICAgICAnaW1nLXNyYyAqIGRhdGE6JyxcbiAgICAgIFwiYmFzZS11cmkgJ3NlbGYnXCIsXG4gICAgICBcImNvbm5lY3Qtc3JjICdzZWxmJyBncmFmYW5hLmNvbSB3czovLyRST09UX1BBVEggd3NzOi8vJFJPT1RfUEFUSFwiLFxuICAgICAgXCJtYW5pZmVzdC1zcmMgJ3NlbGYnXCIsXG4gICAgICBcIm1lZGlhLXNyYyAnbm9uZSdcIixcbiAgICAgIFwiZm9ybS1hY3Rpb24gJ3NlbGYnXCIsXG4gICAgICBgZnJhbWUtYW5jZXN0b3JzICdzZWxmJyAke2NvbmZpZy5lbWJlZGRpbmcuZnJhbWVBbmNlc3RvcnMuam9pbignICcpfWAsXG4gICAgXS5tYXAoKGRpcmVjdGl2ZSkgPT4gYCR7ZGlyZWN0aXZlfTtgKS5qb2luKCcnKTtcbiAgICByZXR1cm4gYFxuICAgIHNlY3VyaXR5OlxuICAgICAgYWxsb3dfZW1iZWRkaW5nOiB0cnVlXG4gICAgICBjb250ZW50X3NlY3VyaXR5X3BvbGljeTogdHJ1ZVxuICAgICAgY29udGVudF9zZWN1cml0eV9wb2xpY3lfdGVtcGxhdGU6IFwiJHtwb2xpY3l9XCJgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUhlbG1WYWx1ZXMoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICAvLyBUZW1wbyBkYXRhc291cmNlIGlzIG9ubHkgcHJvdmlzaW9uZWQgd2hlbiB0cmFjaW5nIGlzIGVuYWJsZWQuIFdoZW5cbiAgICAvLyBkaXNhYmxlZCB0aGlzIGlzIGVtcHR5LCBzbyB0aGUgR3JhZmFuYSBibG9jayBpcyBieXRlLWlkZW50aWNhbCB0byBiZWZvcmUuXG4gICAgY29uc3QgdGVtcG9EYXRhc291cmNlID0gY29uZmlnLnRlbXBvLmVuYWJsZWQgPyBgXG4gICAgICAtIG5hbWU6IFRlbXBvXG4gICAgICAgIHR5cGU6IHRlbXBvXG4gICAgICAgIHVpZDogdGVtcG9cbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICB1cmw6IGh0dHA6Ly90ZW1wby4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjMyMDBcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZW91dDogNjBcbiAgICAgICAgICB0cmFjZXNUb0xvZ3NWMjpcbiAgICAgICAgICAgIGRhdGFzb3VyY2VVaWQ6IGxva2lcbiAgICAgICAgICAgIHNwYW5TdGFydFRpbWVTaGlmdDogXCItMWhcIlxuICAgICAgICAgICAgc3BhbkVuZFRpbWVTaGlmdDogXCIxaFwiXG4gICAgICAgICAgICBmaWx0ZXJCeVRyYWNlSUQ6IHRydWVcbiAgICAgICAgICB0cmFjZXNUb01ldHJpY3M6XG4gICAgICAgICAgICBkYXRhc291cmNlVWlkOiB0aGFub3NgIDogJyc7XG4gICAgcmV0dXJuIGBrdWJlRXRjZDpcbiAgZW5hYmxlZDogZmFsc2VcblxuIyBEaXNhYmxlIGt1YmUtY29udHJvbGxlci1tYW5hZ2VyIGFuZCBrdWJlLXNjaGVkdWxlciBtb25pdG9yaW5nLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NhYmxlc3BhZ2hldHRpL2szcy1tb25pdG9yaW5nL2lzc3Vlcy8yXG5rdWJlQ29udHJvbGxlck1hbmFnZXI6XG4gIGVuYWJsZWQ6IGZhbHNlXG5rdWJlU2NoZWR1bGVyOlxuICBlbmFibGVkOiBmYWxzZVxuXG4jIERldGVjdCBQb2REaXNydXB0aW9uQnVkZ2V0cyB0aGF0IHdvdWxkIGJsb2NrIGEgbm9kZSBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLlxuIyBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgc2l0IGF0IGRpc3J1cHRpb25zQWxsb3dlZD0wIGJ5IGRlc2lnbiAoTG9uZ2hvcm4gaW5zdGFuY2UtbWFuYWdlcnMsXG4jIENOUEcgKi1wcmltYXJ5KSBhbmQgYXJlIGV4Y2x1ZGVkIHNvIHRoZSBhbGVydCBvbmx5IGZpcmVzIG9uIGFub21hbG91cyBhcHAgUERCcy5cbmFkZGl0aW9uYWxQcm9tZXRoZXVzUnVsZXNNYXA6XG4gIHBkYi1kcmFpbi1zYWZldHk6XG4gICAgZ3JvdXBzOlxuICAgICAgLSBuYW1lOiBwZGIucnVsZXNcbiAgICAgICAgaW50ZXJ2YWw6IDFtXG4gICAgICAgIHJ1bGVzOlxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZVxuICAgICAgICAgICAgZXhwcjoga3ViZV9wb2RkaXNydXB0aW9uYnVkZ2V0X3N0YXR1c19wb2RfZGlzcnVwdGlvbnNfYWxsb3dlZHtuYW1lc3BhY2UhPVwibG9uZ2hvcm4tc3lzdGVtXCIsIHBvZGRpc3J1cHRpb25idWRnZXQhflwiLiotcHJpbWFyeVwifSA9PSAwXG4gICAgICAgICAgICBmb3I6IDE1bVxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBzZXZlcml0eTogd2FybmluZ1xuICAgICAgICAgICAgICBjb21wb25lbnQ6IGNsdXN0ZXItdXBncmFkZVxuICAgICAgICAgICAgYW5ub3RhdGlvbnM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IFwiUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBhbGxvd3MgMCB2b2x1bnRhcnkgZGlzcnVwdGlvbnNcIlxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogfFxuICAgICAgICAgICAgICAgIFRoZSBQb2REaXNydXB0aW9uQnVkZ2V0IHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgICAgICAgIGhhcyBhbGxvd2VkIDAgdm9sdW50YXJ5IGRpc3J1cHRpb25zIGZvciBvdmVyIDE1IG1pbnV0ZXMuIFRoaXMgd2lsbCBibG9jayBhIG5vZGVcbiAgICAgICAgICAgICAgICBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLiBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgKExvbmdob3JuLCBDTlBHIHByaW1hcmllcykgYXJlXG4gICAgICAgICAgICAgICAgZXhjbHVkZWQgZnJvbSB0aGlzIGFsZXJ0LiBMaWtlbHkgYSBkZWdyYWRlZCBkZXBsb3ltZW50ICgwIGhlYWx0aHkgcG9kcykgb3IgYVxuICAgICAgICAgICAgICAgIHNpbmdsZS1yZXBsaWNhIGRlcGxveW1lbnQgd2l0aCBtaW5BdmFpbGFibGU9MS5cbiAgICAgICAgICAgICAgICBDaGVjazoga3ViZWN0bCBnZXQgcGRiIC1uIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19IHt7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZUNyaXRpY2FsXG4gICAgICAgICAgICBleHByOiBrdWJlX3BvZGRpc3J1cHRpb25idWRnZXRfc3RhdHVzX3BvZF9kaXNydXB0aW9uc19hbGxvd2Vke25hbWVzcGFjZSE9XCJsb25naG9ybi1zeXN0ZW1cIiwgcG9kZGlzcnVwdGlvbmJ1ZGdldCF+XCIuKi1wcmltYXJ5XCJ9ID09IDBcbiAgICAgICAgICAgIGZvcjogMWhcbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgc2V2ZXJpdHk6IGNyaXRpY2FsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogY2x1c3Rlci11cGdyYWRlXG4gICAgICAgICAgICBhbm5vdGF0aW9uczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogXCJQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IHVuZHJhaW5hYmxlID4xaFwiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8XG4gICAgICAgICAgICAgICAgUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBoYXMgYmxvY2tlZFxuICAgICAgICAgICAgICAgIHZvbHVudGFyeSBkaXNydXB0aW9ucyBmb3Igb3ZlciBhbiBob3VyLiBBIGszcyBhZ2VudCB1cGdyYWRlIHdvdWxkIHN0YWxsIG9uIHRoaXMgbm9kZS5cbiMgRHJvcCBoaWdoLWNhcmRpbmFsaXR5IEFQSSBzZXJ2ZXIgYW5kIGV0Y2QgaGlzdG9ncmFtIGJ1Y2tldHMgdG8gcmVkdWNlIG1lbW9yeSB1c2FnZVxuIyBUaGVzZSBtZXRyaWNzIGFsb25lIGFjY291bnQgZm9yIH4yMDBrIHNlcmllcyAoNDclIG9mIHRvdGFsIGNhcmRpbmFsaXR5KVxuIyBXZSBrZWVwIF9zdW0gYW5kIF9jb3VudCBzdWZmaXhlcyB3aGljaCBhcmUgc3VmZmljaWVudCBmb3IgcmF0ZSBjYWxjdWxhdGlvbnNcbmt1YmVBcGlTZXJ2ZXI6XG4gIHNlcnZpY2VNb25pdG9yOlxuICAgIG1ldHJpY1JlbGFiZWxpbmdzOlxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X3NsaV9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2JvZHlfc2l6ZV9ieXRlc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVzcG9uc2Vfc2l6ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnZXRjZF9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcblxuIyBLdWJlbGV0IGFsc28gZXhwb3NlcyBhcGlzZXJ2ZXIgbWV0cmljcyAtIGFwcGx5IHNhbWUgZmlsdGVyc1xua3ViZWxldDpcbiAgc2VydmljZU1vbml0b3I6XG4gICAgbWV0cmljUmVsYWJlbGluZ3M6XG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3Rfc2xpX2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfYm9keV9zaXplX2J5dGVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXNwb25zZV9zaXplc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdldGNkX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuXG5hbGVydG1hbmFnZXI6XG4gIGNvbmZpZzpcbiAgICBnbG9iYWw6XG4gICAgICBzbXRwX2Zyb206ICR7Y29uZmlnLnNtdHAuZnJvbX1cbiAgICAgIHNtdHBfc21hcnRob3N0OiAke2NvbmZpZy5zbXRwLmhvc3R9OiR7Y29uZmlnLnNtdHAucG9ydH1cbiAgICAgIHNtdHBfcmVxdWlyZV90bHM6ICR7Y29uZmlnLnNtdHAucmVxdWlyZVRsc31cbiAgICAgIHNtdHBfYXV0aF91c2VybmFtZTogJHtjb25maWcuc210cC51c2VybmFtZSB8fCBjb25maWcuc210cC5mcm9tfVxuICAgICAgc210cF9hdXRoX3Bhc3N3b3JkOiAke2NvbmZpZy5zbXRwLnBhc3N3b3JkIHx8ICcnfVxuICAgIHJvdXRlOlxuICAgICAgZ3JvdXBfYnk6IFsnam9iJ11cbiAgICAgIGdyb3VwX3dhaXQ6IDMwc1xuICAgICAgZ3JvdXBfaW50ZXJ2YWw6IDVtXG4gICAgICByZXBlYXRfaW50ZXJ2YWw6IDFoXG4gICAgICByZWNlaXZlcjogZW1haWxcbiAgICAgIHJvdXRlczpcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBXYXRjaGRvZ1xuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogQ1BVVGhyb3R0bGluZ0hpZ2hcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IEt1YmVNZW1vcnlPdmVyY29tbWl0XG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBLdWJlQ1BVT3ZlcmNvbW1pdFxuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogS3ViZWxldFRvb01hbnlQb2RzXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcblxuICAgIHJlY2VpdmVyczpcbiAgICAtIG5hbWU6ICdudWxsJ1xuICAgIC0gbmFtZTogZW1haWxcbiAgICAgIGVtYWlsX2NvbmZpZ3M6XG4gICAgICAtIHNlbmRfcmVzb2x2ZWQ6IHRydWVcbiAgICAgICAgdG86ICR7Y29uZmlnLnNtdHAuZnJvbX1cblxuICAgICMgSW5oaWJpdGlvbiBydWxlcyBhbGxvdyB0byBtdXRlIGEgc2V0IG9mIGFsZXJ0cyBnaXZlbiB0aGF0IGFub3RoZXIgYWxlcnQgaXMgZmlyaW5nLlxuICAgICMgV2UgdXNlIHRoaXMgdG8gbXV0ZSBhbnkgd2FybmluZy1sZXZlbCBub3RpZmljYXRpb25zIGlmIHRoZSBzYW1lIGFsZXJ0IGlzIGFscmVhZHkgY3JpdGljYWwuXG4gICAgaW5oaWJpdF9ydWxlczpcbiAgICAtIHNvdXJjZV9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCdcbiAgICAgIHRhcmdldF9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICd3YXJuaW5nJ1xuICAgICAgIyBBcHBseSBpbmhpYml0aW9uIGlmIHRoZSBhbGVydG5hbWUgaXMgdGhlIHNhbWUuXG4gICAgICBlcXVhbDogWydhbGVydG5hbWUnLCAnbmFtZXNwYWNlJ11cblxuICBhbGVydG1hbmFnZXJTcGVjOlxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5hbGVydG1hbmFnZXJ9XG4gICAgcG9kQW50aUFmZmluaXR5OiBcInNvZnRcIlxuICAgIHN0b3JhZ2U6XG4gICAgICB2b2x1bWVDbGFpbVRlbXBsYXRlOlxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOiBbXCJSZWFkV3JpdGVPbmNlXCJdXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6ICR7Y29uZmlnLnN0b3JhZ2UuYWxlcnRtYW5hZ2VyfVxuICAgIHJlc291cmNlczpcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxlcnRtYW5hZ2VyLmxpbWl0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5saW1pdHMubWVtb3J5fVxuICAgICAgcmVxdWVzdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5yZXF1ZXN0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgIGNvbnRhaW5lcnM6XG4gICAgLSBuYW1lOiBjb25maWctcmVsb2FkZXJcbiAgICAgIHJlc291cmNlczpcbiAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIucmVxdWVzdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLm1lbW9yeX1cbiAgICAgICAgbGltaXRzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5jcHV9XG4gICAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIubGltaXRzLm1lbW9yeX1cblxuXG5wcm9tZXRoZXVzOlxuICAjIEVuYWJsZSBUaGFub3Mgc2VydmljZSBmb3IgZ1JQQyBjb21tdW5pY2F0aW9uXG4gICMgUmVxdWlyZWQgZm9yIEhlbG0gY2hhcnQgdG8gcHJvcGVybHkgcmVuZGVyIFRoYW5vcyBzaWRlY2FyIGNvbmZpZ3VyYXRpb25cbiAgdGhhbm9zU2VydmljZTpcbiAgICBlbmFibGVkOiB0cnVlXG5cbiAgcHJvbWV0aGV1c1NwZWM6XG4gICAgcmV0ZW50aW9uOiAke2NvbmZpZy5yZXRlbnRpb24ucHJvbWV0aGV1c30gICMgUmVkdWNlZCBmcm9tIDdkIC0gVGhhbm9zIHByb3ZpZGVzIGxvbmctdGVybSBzdG9yYWdlIGluIFMzXG5cbiAgICAjIERpc2NvdmVyIEFMTCBTZXJ2aWNlTW9uaXRvcnMsIFBvZE1vbml0b3JzIGFuZCBQcm9tZXRoZXVzUnVsZXMgaW4gQUxMIG5hbWVzcGFjZXNcbiAgICAjIFNldHRpbmcgTmlsVXNlc0hlbG1WYWx1ZXM6IGZhbHNlIG1lYW5zIG5pbCBzZWxlY3RvcnMgPSBcInNlbGVjdCBhbGxcIlxuICAgICMgRW1wdHkgbmFtZXNwYWNlIHNlbGVjdG9ycyB7fSBtZWFuIFwic2VhcmNoIGFsbCBuYW1lc3BhY2VzXCJcbiAgICAjIFdpdGhvdXQgdGhlIHJ1bGUqIHNldHRpbmdzLCBydWxlU2VsZWN0b3Iga2VlcHMgdGhlIGNoYXJ0IGRlZmF1bHRcbiAgICAjIChtYXRjaExhYmVsczoge3JlbGVhc2U6IDxuYW1lPn0pIGFuZCBoYW5kLWF1dGhvcmVkIFByb21ldGhldXNSdWxlcyB0aGF0XG4gICAgIyBsYWNrIHRoZSByZWxlYXNlIGxhYmVsIGFyZSBzaWxlbnRseSBpZ25vcmVkLlxuICAgICMgTm90ZTogVGhpcyBkb2VzIE5PVCBhZmZlY3QgVGhhbm9zIHNpZGVjYXIgLSBjb250cm9sbGVkIGJ5IHRoYW5vcy5vYmplY3RTdG9yYWdlQ29uZmlnXG4gICAgc2VydmljZU1vbml0b3JTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHBvZE1vbml0b3JTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHJ1bGVTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHNlcnZpY2VNb25pdG9yTmFtZXNwYWNlU2VsZWN0b3I6IHt9XG4gICAgcG9kTW9uaXRvck5hbWVzcGFjZVNlbGVjdG9yOiB7fVxuICAgIHJ1bGVOYW1lc3BhY2VTZWxlY3Rvcjoge31cblxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5wcm9tZXRoZXVzfVxuICAgIHBvZEFudGlBZmZpbml0eTogXCJoYXJkXCJcbiAgICBzdG9yYWdlU3BlYzpcbiAgICAgIHZvbHVtZUNsYWltVGVtcGxhdGU6XG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogbG9uZ2hvcm5cbiAgICAgICAgICBhY2Nlc3NNb2RlczogW1wiUmVhZFdyaXRlT25jZVwiXVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAke2NvbmZpZy5zdG9yYWdlLnByb21ldGhldXN9ICAjIFJlZHVjZWQgZnJvbSA2R2kgKDNkIHJldGVudGlvbiBuZWVkcyBsZXNzIHNwYWNlKVxuXG4gICAgcmVzb3VyY2VzOlxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLmxpbWl0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMubGltaXRzLm1lbW9yeX1cbiAgICAgIHJlcXVlc3RzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxuICAgICMgRXh0ZXJuYWwgbGFiZWxzIGZvciBtdWx0aS1jbHVzdGVyIGlkZW50aWZpY2F0aW9uIGFuZCBUaGFub3NcbiAgICBleHRlcm5hbExhYmVsczpcbiAgICAgIGNsdXN0ZXI6ICR7Y29uZmlnLmNsdXN0ZXJOYW1lfVxuICAgICAgcmVwbGljYTogXCIkKFBPRF9OQU1FKVwiXG5cbiAgICAjIFRoYW5vcyBzaWRlY2FyIGZvciBsb25nLXRlcm0gbWV0cmljcyBzdG9yYWdlIGluIFMzXG4gICAgIyBOT1RFOiBjaGFydCA+PTg1LnggcmVxdWlyZXMgdGhlIGV4aXN0aW5nU2VjcmV0IHNoYXBlLiBUaGUgbGVnYWN5IGZsYXRcbiAgICAjIHtuYW1lLCBrZXl9IGZvcm0gaXMgc2lsZW50bHkgZHJvcHBlZCBieSB0aGUgY2hhcnQsIHdoaWNoIHJlbW92ZXMgdGhlXG4gICAgIyBzaWRlY2FyIGFuZCBzdG9wcyBhbGwgUzMgYmxvY2sgdXBsb2FkcyAocmVncmVzc2lvbiBzZWVuIDIwMjYtMDMtMzEpLlxuICAgIHRoYW5vczpcbiAgICAgIG9iamVjdFN0b3JhZ2VDb25maWc6XG4gICAgICAgIGV4aXN0aW5nU2VjcmV0OlxuICAgICAgICAgIG5hbWU6IHRoYW5vcy1vYmpzdG9yZS1jb25maWcgICMgRVNPLW1hbmFnZWQgc2VjcmV0XG4gICAgICAgICAga2V5OiBvYmpzdG9yZS55bWxcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgICMgTk9URTogdGhhbm9zLXNpZGVjYXIgaXMgTk9UIGxpc3RlZCBoZXJlIC0gaXQncyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGJ5IFByb21ldGhldXMgT3BlcmF0b3JcbiAgICAjIHdoZW4gdGhhbm9zLm9iamVjdFN0b3JhZ2VDb25maWcgaXMgc2V0LiBTcGVjaWZ5aW5nIGl0IGluIGNvbnRhaW5lcnNbXSB3b3VsZCBvdmVycmlkZVxuICAgICMgdGhlIG9wZXJhdG9yJ3MgZGVmaW5pdGlvbiBhbmQgcmVxdWlyZSB1cyB0byBtYW51YWxseSBzcGVjaWZ5IHRoZSBpbWFnZSwgd2hpY2ggYnJlYWtzXG4gICAgIyB3aGVuIHRoZSBvcGVyYXRvciB1cGRhdGVzIHRoZSB0aGFub3MgdmVyc2lvbi5cbiAgICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogY29uZmlnLXJlbG9hZGVyXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgICAgIGxpbWl0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5tZW1vcnl9XG5cbiAgICBzZXJ2aWNlOlxuICAgICAgc2Vzc2lvbkFmZmluaXR5OiBcIkNsaWVudElQXCJcblxuXG5ncmFmYW5hOlxuICAjIFJlY3JlYXRlIHN0cmF0ZWd5IGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIHN0b3JhZ2UgUFZDIGlzIFJXTzpcbiAgIyBhIFJvbGxpbmdVcGRhdGUgd291bGQgc3VyZ2UgYSBzZWNvbmQgcG9kIHRoYXQgY2Fubm90IG1vdW50IHRoZVxuICAjIHZvbHVtZSAoRmFpbGVkQXR0YWNoVm9sdW1lKSwgYmxvY2tpbmcgdGhlIHJvbGxvdXQgaW5kZWZpbml0ZWx5LlxuICBkZXBsb3ltZW50U3RyYXRlZ3k6XG4gICAgdHlwZTogUmVjcmVhdGVcblxuICAjIFVzZSBleGlzdGluZyBzZWNyZXQgZm9yIGFkbWluIGNyZWRlbnRpYWxzIChtYW5hZ2VkIGJ5IEVTTylcbiAgIyBUaGlzIHByZXZlbnRzIHBhc3N3b3JkIHJlZ2VuZXJhdGlvbiBvbiBIZWxtIHVwZ3JhZGVzXG4gIGFkbWluOlxuICAgIGV4aXN0aW5nU2VjcmV0OiBcImdyYWZhbmEtYWRtaW4tY3JlZGVudGlhbHNcIlxuICAgIHVzZXJLZXk6IFwiYWRtaW4tdXNlclwiXG4gICAgcGFzc3dvcmRLZXk6IFwiYWRtaW4tcGFzc3dvcmRcIlxuXG4gICMgR3JhZmFuYSBydW5zIGh0dHAgb24gOjMwMDAgYmVoaW5kIHRoZSBUTFMtdGVybWluYXRpbmcgaW5ncmVzcy4gV2l0aG91dCBhblxuICAjIGV4cGxpY2l0IHJvb3RfdXJsIGl0IGJ1aWxkcyBzaGFyZSBhbmQgcHVibGljLWRhc2hib2FyZCBsaW5rcyBmcm9tIHRoZSBpbnRlcm5hbFxuICAjIGFkZHJlc3MgKGh0dHA6Ly88cG9kPjozMDAwKTsgZGVyaXZlIHRoZSBleHRlcm5hbCBVUkwgZnJvbSB0aGUgY29uZmlndXJlZCBkb21haW4uXG4gIGdyYWZhbmEuaW5pOlxuICAgIHNlcnZlcjpcbiAgICAgIGRvbWFpbjogJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuICAgICAgcm9vdF91cmw6IGh0dHBzOi8vJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfSR7dGhpcy5nZW5lcmF0ZUdyYWZhbmFTZWN1cml0eShjb25maWcpfVxuXG4gICMgRGlzYWJsZSBkZWZhdWx0IFByb21ldGhldXMgZGF0YXNvdXJjZSAod2UgcHJvdmlkZSBvdXIgb3duIHBvaW50aW5nIHRvIFRoYW5vcyBRdWVyeSlcbiAgZGVmYXVsdERhdGFzb3VyY2VFbmFibGVkOiBmYWxzZVxuXG4gICMgU2lkZWNhciBjb250YWluZXJzIGZvciBkYXNoYm9hcmQvZGF0YXNvdXJjZSBwcm92aXNpb25pbmdcbiAgc2lkZWNhcjpcbiAgICByZXNvdXJjZXM6XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAxMG1cbiAgICAgICAgbWVtb3J5OiAyNTZNaVxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6IDEwMG1cbiAgICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIGRhc2hib2FyZHM6XG4gICAgICBlbmFibGVkOiB0cnVlXG4gICAgZGF0YXNvdXJjZXM6XG4gICAgICBlbmFibGVkOiBmYWxzZSAgIyBXZSBtYW51YWxseSBwcm92aXNpb24gZGF0YXNvdXJjZXMgKFByb21ldGhldXPihpJUaGFub3MsIExva2kpXG5cbiAgaW5ncmVzczpcbiAgICBlbmFibGVkOiB0cnVlJHtjb25maWcuZG9tYWlucy5pbmdyZXNzQ2xhc3NOYW1lID8gYFxcbiAgICBpbmdyZXNzQ2xhc3NOYW1lOiAke2NvbmZpZy5kb21haW5zLmluZ3Jlc3NDbGFzc05hbWV9YCA6ICcnfVxuICAgIGhvc3RzOlxuICAgICAgLSAke2NvbmZpZy5kb21haW5zLmdyYWZhbmF9XG4gICAgYW5ub3RhdGlvbnM6XG4gICAgICBjZXJ0LW1hbmFnZXIuaW8vY2x1c3Rlci1pc3N1ZXI6IFwibGV0c2VuY3J5cHQtY2x1c3Rlci1pc3N1ZXJcIlxuICAgICAgdHJhZWZpay5pbmdyZXNzLmt1YmVybmV0ZXMuaW8vcm91dGVyLmVudHJ5cG9pbnRzOiB3ZWJzZWN1cmVcbiAgICB0bHM6XG4gICAgICAtIHNlY3JldE5hbWU6IGdyYWZhbmEtZ2VuZXJhbC10bHNcbiAgICAgICAgaG9zdHM6XG4gICAgICAgIC0gJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuXG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLmxpbWl0cy5jcHV9XG4gICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLmxpbWl0cy5tZW1vcnl9XG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLnJlcXVlc3RzLmNwdX1cbiAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEucmVxdWVzdHMubWVtb3J5fVxuXG4gIHJlYWRpbmVzc1Byb2JlOlxuICAgIGh0dHBHZXQ6XG4gICAgICBwYXRoOiAvYXBpL2hlYWx0aFxuICAgICAgcG9ydDogMzAwMFxuICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDMwXG4gICAgcGVyaW9kU2Vjb25kczogMTBcbiAgICB0aW1lb3V0U2Vjb25kczogNVxuICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDNcblxuICBsaXZlbmVzc1Byb2JlOlxuICAgIGh0dHBHZXQ6XG4gICAgICBwYXRoOiAvYXBpL2hlYWx0aFxuICAgICAgcG9ydDogMzAwMFxuICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDYwXG4gICAgcGVyaW9kU2Vjb25kczogMTBcbiAgICB0aW1lb3V0U2Vjb25kczogMzBcbiAgICBmYWlsdXJlVGhyZXNob2xkOiAxMFxuXG4gIHBlcnNpc3RlbmNlOlxuICAgIGVuYWJsZWQ6IHRydWVcbiAgICBzdG9yYWdlQ2xhc3NOYW1lOiBsb25naG9yblxuICAgIGFjY2Vzc01vZGVzOlxuICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgc2l6ZTogJHtjb25maWcuc3RvcmFnZS5ncmFmYW5hfVxuXG4gICMgTWFudWFsIGRhdGFzb3VyY2UgcHJvdmlzaW9uaW5nIChzaWRlY2FyIGRpc2FibGVkKVxuICAjIFRoYW5vcyBRdWVyeSDihpIgbG9uZy10ZXJtL2hpc3RvcmljYWwgbWV0cmljcyAoUzMgdmlhIFN0b3JlICsgbGl2ZSBzaWRlY2FyKSwgZGVmYXVsdFxuICAjIFByb21ldGhldXMg4oaSIGxvY2FsLCByZWNlbnQvaGlnaC1yZXMgb25seSAoa2VwdCBmb3IgbG93LWxhdGVuY3kgcmVjZW50IHF1ZXJpZXMpXG4gICMgTG9raSBmb3IgbG9nIGFnZ3JlZ2F0aW9uXG4gIGRhdGFzb3VyY2VzOlxuICAgIGRhdGFzb3VyY2VzLnlhbWw6XG4gICAgICBhcGlWZXJzaW9uOiAxXG4gICAgICAjIERlbGV0ZSBhbnkgcHJlLWV4aXN0aW5nIExva2kgZGF0YXNvdXJjZSAoZS5nLiBvbmUgY3JlYXRlZCB3aXRoIGFcbiAgICAgICMgcmFuZG9tbHkgZ2VuZXJhdGVkIFVJRCBiZWZvcmUgd2UgcGlubmVkIHVpZDogbG9raSkuIFdpdGhvdXQgdGhpcyxcbiAgICAgICMgR3JhZmFuYSBmYWlscyBwcm92aXNpb25pbmcgd2l0aCBcImRhdGEgc291cmNlIG5vdCBmb3VuZFwiIGJlY2F1c2VcbiAgICAgICMgdGhlIHVwc2VydCBjb2xsaWRlcyB3aXRoIHRoZSBleGlzdGluZyBlbnRyeS5cbiAgICAgIGRlbGV0ZURhdGFzb3VyY2VzOlxuICAgICAgLSBuYW1lOiBMb2tpXG4gICAgICAgIG9yZ0lkOiAxXG4gICAgICBkYXRhc291cmNlczpcbiAgICAgIC0gbmFtZTogVGhhbm9zXG4gICAgICAgIHR5cGU6IHByb21ldGhldXNcbiAgICAgICAgdWlkOiB0aGFub3NcbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICAjIHRoYW5vcy1xdWVyeSBTZXJ2aWNlOiBodHRwIHBvcnQgOTA5MCAtPiBjb250YWluZXIgaHR0cCAxMDkwMlxuICAgICAgICB1cmw6IGh0dHA6Ly90aGFub3MtcXVlcnkuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkwXG4gICAgICAgIGlzRGVmYXVsdDogdHJ1ZVxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw6IDMwc1xuICAgICAgLSBuYW1lOiBQcm9tZXRoZXVzXG4gICAgICAgIHR5cGU6IHByb21ldGhldXNcbiAgICAgICAgdWlkOiBwcm9tZXRoZXVzXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8va3ViZS1wcm9tZXRoZXVzLXN0YWNrLXByb21ldGhldXMuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkwXG4gICAgICAgIGlzRGVmYXVsdDogZmFsc2VcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZUludGVydmFsOiAzMHNcbiAgICAgIC0gbmFtZTogTG9raVxuICAgICAgICB0eXBlOiBsb2tpXG4gICAgICAgIHVpZDogbG9raVxuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgIHVybDogaHR0cDovL2xva2ktZ2F0ZXdheS4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIG1heExpbmVzOiAxMDAwJHt0ZW1wb0RhdGFzb3VyY2V9XG5cbnByb21ldGhldXNPcGVyYXRvcjpcbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogMVxuICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIHJlcXVlc3RzOlxuICAgICAgY3B1OiA1MG1cbiAgICAgIG1lbW9yeTogMTI4TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxucHJvbWV0aGV1cy1ub2RlLWV4cG9ydGVyOlxuICAjIEJpbmQgOjkxMDAgdG8gdGhlIG5vZGUgSW50ZXJuYWxJUCBvbmx5LCBub3QgMC4wLjAuMC4gV2l0aCBrdWJlUkJBQ1Byb3h5XG4gICMgZGlzYWJsZWQgdGhlIHN1Yi1jaGFydCBzZXRzIEhPU1RfSVAgZnJvbSBmaWVsZFJlZiBzdGF0dXMuaG9zdElQLCB3aGljaCBpc1xuICAjIHRoZSBub2RlJ3MgSW50ZXJuYWxJUCAoRVg6IHZTd2l0Y2ggMTAuNi4wLnggdmlhIC0tbm9kZS1pcDsgY2xvdWQ6IGhjbG91ZFxuICAjIHByaXZhdGUgSVApLiBub2RlLWV4cG9ydGVyIGlzIGhvc3ROZXR3b3JrLCBzbyBQcm9tZXRoZXVzIGFscmVhZHkgc2NyYXBlc1xuICAjIHRoYXQgSW50ZXJuYWxJUCBlbmRwb2ludCAtPiBzY3JhcGluZyBpcyB1bmFmZmVjdGVkLCBvbmx5IHRoZSBwdWJsaWMtTklDXG4gICMgZXhwb3N1cmUgb2YgdGhlIHVuYXV0aGVudGljYXRlZCBtZXRyaWNzIG9uIHRoZSBFWCBwdWJsaWMgSVBzIGdvZXMgYXdheS5cbiAgc2VydmljZTpcbiAgICBsaXN0ZW5PbkFsbEludGVyZmFjZXM6IGZhbHNlXG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6IDUwbVxuICAgICAgbWVtb3J5OiA1ME1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDVtXG4gICAgICBtZW1vcnk6IDE2TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxua3ViZS1zdGF0ZS1tZXRyaWNzOlxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAxXG4gICAgICBtZW1vcnk6IDUxMk1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDVtXG4gICAgICBtZW1vcnk6IDEyOE1pXG4gIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5gO1xuICB9XG59XG4iXX0=
|
|
530
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWV0aGV1cy1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL3Byb21ldGhldXMtc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWtDO0FBQ2xDLDJDQUF1QztBQVF2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFDckQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXBDLDRCQUE0QjtRQUM1QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsa0RBQWtEO1FBQ2xELDJDQUEyQztRQUMzQyxJQUFJLGlCQUFTLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQzNDLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sd0JBQXdCLEVBQUUsdUJBQXVCO29CQUNqRCw2QkFBNkIsRUFBRSxZQUFZO29CQUMzQyw4QkFBOEIsRUFBRSxPQUFPO29CQUN2QywyQkFBMkIsRUFBRSxZQUFZO2lCQUMxQztnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsOEJBQThCLEVBQUUsR0FBRztpQkFDcEM7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsb0RBQW9EO2dCQUMxRCxLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZTtnQkFDbkcsZUFBZSxFQUFFLFNBQVM7Z0JBQzFCLGFBQWEsRUFBRSxVQUFVO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0ssdUJBQXVCLENBQUMsTUFBd0I7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHO1lBQ2IseUVBQXlFO1lBQ3pFLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsd0NBQXdDO1lBQ3hDLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsaUVBQWlFO1lBQ2pFLHFCQUFxQjtZQUNyQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLDBCQUEwQixNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7U0FDdEUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTzs7Ozs7YUFLRSxNQUFNLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBd0I7UUFDakQscUVBQXFFO1FBQ3JFLDRFQUE0RTtRQUM1RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Ozs7OzRCQUt2QixNQUFNLENBQUMsU0FBUzs7Ozs7Ozs7O2tDQVNWLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQkF5RlEsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJO3dCQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSTswQkFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVOzRCQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUk7NEJBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBNkJ4QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUk7Ozs7Ozs7Ozs7Ozs7Z0JBYWQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZOzs7Ozs7Ozt5QkFRbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZOzs7ZUFHckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUc7a0JBQ3JDLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNOztlQUU5QyxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRztrQkFDdkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU07Ozs7Ozs7O2lCQVE5QyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRztvQkFDekMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU07O2lCQUVsRCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRztvQkFDdkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU07Ozs7Ozs7Ozs7aUJBVWhELE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVTs7Ozs7Ozs7Ozs7Ozs7OztnQkFnQjVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVTs7Ozs7Ozs7O3lCQVNqQixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVU7Ozs7ZUFJbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUc7a0JBQ25DLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNOztlQUU1QyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRztrQkFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU07Ozs7O2lCQUs1QyxNQUFNLENBQUMsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFzQmxCLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHO29CQUN6QyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTTs7aUJBRWxELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHO29CQUN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQkF5QmpELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzswQkFDWixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQkFvQnBFLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1VBRTVHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzs7Ozs7OztZQU9wQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7YUFJckIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUc7Z0JBQ2hDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNOzthQUV6QyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRztnQkFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUF5QjVDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQ0FzQkMsTUFBTSxDQUFDLFNBQVM7Ozs7Ozs7O3VEQVFJLE1BQU0sQ0FBQyxTQUFTOzs7Ozs7OzttQ0FRcEMsTUFBTSxDQUFDLFNBQVM7OzBCQUV6QixlQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F1Q3hDLENBQUM7SUFDQSxDQUFDO0NBQ0Y7QUExZkQsNERBMGZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpT2JqZWN0IH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBNb25pdG9yaW5nQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb21ldGhldXNTdGFja1Byb3BzIHtcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZztcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGt1YmUtcHJvbWV0aGV1cy1zdGFjayBIZWxtQ2hhcnQgd2l0aCBQcm9tZXRoZXVzLCBHcmFmYW5hLCBhbmQgQWxlcnRtYW5hZ2VyLlxuICpcbiAqIFRoaXMgaXMgdGhlIGNvcmUgbW9uaXRvcmluZyBzdGFjayB0aGF0IGluY2x1ZGVzOlxuICogLSBQcm9tZXRoZXVzIChtZXRyaWNzIGNvbGxlY3Rpb24sIDIgcmVwbGljYXMsIDNkIHJldGVudGlvbilcbiAqIC0gR3JhZmFuYSAodmlzdWFsaXphdGlvbiwgaW5ncmVzcyB3aXRoIExldCdzIEVuY3J5cHQpXG4gKiAtIEFsZXJ0bWFuYWdlciAoYWxlcnQgcm91dGluZywgU01UUCBub3RpZmljYXRpb25zKVxuICogLSBQcm9tZXRoZXVzIE9wZXJhdG9yIChtYW5hZ2VzIFByb21ldGhldXMgQ1JEcylcbiAqIC0gTm9kZSBFeHBvcnRlciAoc3lzdGVtIG1ldHJpY3MgRGFlbW9uU2V0KVxuICogLSBrdWJlLXN0YXRlLW1ldHJpY3MgKEt1YmVybmV0ZXMgcmVzb3VyY2UgbWV0cmljcylcbiAqXG4gKiBQcmVyZXF1aXNpdGVzOlxuICogLSBOYW1lc3BhY2UgZXhpc3RzXG4gKiAtIFByaW9yaXR5Q2xhc3MgJ2hpZ2gtcHJpb3JpdHknIGV4aXN0c1xuICogLSBMb25naG9ybiBzdG9yYWdlIGNsYXNzIGF2YWlsYWJsZVxuICogLSBjZXJ0LW1hbmFnZXIgQ2x1c3Rlcklzc3VlciBjb25maWd1cmVkXG4gKiAtIFRoYW5vcyBTMyBzZWNyZXQgZXhpc3RzICh0aGFub3Mtb2Jqc3RvcmUtY29uZmlnKVxuICpcbiAqIFN5bmMgV2F2ZTogMiAoY29yZSBzZXJ2aWNlcyAtIGFmdGVyIFMzIGJ1Y2tldHMgYW5kIHNlY3JldHMpXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9tZXRoZXVzU3RhY2tDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvbWV0aGV1c1N0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgeyBuYW1lc3BhY2UsIGNvbmZpZyB9ID0gcHJvcHM7XG5cbiAgICAvLyBHZW5lcmF0ZSBIZWxtIHZhbHVlcyBZQU1MXG4gICAgY29uc3QgaGVsbVZhbHVlcyA9IHRoaXMuZ2VuZXJhdGVIZWxtVmFsdWVzKGNvbmZpZyk7XG5cbiAgICAvLyBDcmVhdGUgSGVsbUNoYXJ0IHJlc291cmNlIChLM1MgSGVsbSBjb250cm9sbGVyKVxuICAgIC8vIFdhdmUgMjogQ29yZSBTZXJ2aWNlcyAtIG1vbml0b3Jpbmcgc3RhY2tcbiAgICBuZXcgQXBpT2JqZWN0KHRoaXMsICdrdWJlLXByb21ldGhldXMtc3RhY2snLCB7XG4gICAgICBhcGlWZXJzaW9uOiAnaGVsbS5jYXR0bGUuaW8vdjEnLFxuICAgICAga2luZDogJ0hlbG1DaGFydCcsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBuYW1lOiAna3ViZS1wcm9tZXRoZXVzLXN0YWNrJyxcbiAgICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdtb25pdG9yaW5nJyxcbiAgICAgICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSc6ICdjZGs4cycsXG4gICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2YnOiAnbW9uaXRvcmluZycsXG4gICAgICAgIH0sXG4gICAgICAgIGFubm90YXRpb25zOiB7XG4gICAgICAgICAgJ2FyZ29jZC5hcmdvcHJvai5pby9zeW5jLXdhdmUnOiAnMicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc3BlYzoge1xuICAgICAgICByZXBvOiAnaHR0cHM6Ly9wcm9tZXRoZXVzLWNvbW11bml0eS5naXRodWIuaW8vaGVsbS1jaGFydHMnLFxuICAgICAgICBjaGFydDogJ2t1YmUtcHJvbWV0aGV1cy1zdGFjaycsXG4gICAgICAgIHZlcnNpb246IGNvbmZpZy52ZXJzaW9ucy5wcm9tZXRoZXVzU3RhY2sgPT09ICdsYXRlc3QnID8gdW5kZWZpbmVkIDogY29uZmlnLnZlcnNpb25zLnByb21ldGhldXNTdGFjayxcbiAgICAgICAgdGFyZ2V0TmFtZXNwYWNlOiBuYW1lc3BhY2UsXG4gICAgICAgIHZhbHVlc0NvbnRlbnQ6IGhlbG1WYWx1ZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGBbc2VjdXJpdHldYCBzZWN0aW9uIG9mIGdyYWZhbmEuaW5pLCBlbXB0eSB1bmxlc3MgZW1iZWRkaW5nIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEdyYWZhbmEgc2VuZHMgYFgtRnJhbWUtT3B0aW9uczogZGVueWAgdW5sZXNzIGBhbGxvd19lbWJlZGRpbmdgIGlzIHNldCwgd2hpY2hcbiAgICogYmxvY2tzIGV4dGVybmFsbHkgc2hhcmVkIChcInB1YmxpY1wiKSBkYXNoYm9hcmRzIGluIGFuIGlmcmFtZSBqdXN0IGFzIG11Y2ggYXNcbiAgICogdGhlIGF1dGhlbnRpY2F0ZWQgVUkuIERyb3BwaW5nIHRoYXQgaGVhZGVyIGFsb25lIHdvdWxkIGxldCBhbnkgc2l0ZSBmcmFtZVxuICAgKiBHcmFmYW5hLCBzbyBpdCBpcyBwYWlyZWQgd2l0aCBhIENvbnRlbnQtU2VjdXJpdHktUG9saWN5IHdob3NlXG4gICAqIGBmcmFtZS1hbmNlc3RvcnNgIG5hbWVzIHRoZSBhbGxvd2VkIG9yaWdpbnMg4oCUIGJyb3dzZXJzIGhvbm91ciBpdCBpbiBwbGFjZSBvZlxuICAgKiB0aGUgcmVtb3ZlZCBoZWFkZXIuXG4gICAqXG4gICAqIFRoZSBvdGhlciBkaXJlY3RpdmVzIGFyZSBHcmFmYW5hJ3Mgb3duIGRlZmF1bHQgdGVtcGxhdGUgdmVyYmF0aW07IGAkTk9OQ0VgXG4gICAqIGFuZCBgJFJPT1RfUEFUSGAgYXJlIGV4cGFuZGVkIGJ5IEdyYWZhbmEgcGVyIHJlcXVlc3QuIE9ubHlcbiAgICogYCRGT1JNX0FDVElPTl9BRERJVElPTkFMX0hPU1RTYCBpcyBkcm9wcGVkOiBpdCBleGlzdHMgYXMgYSBwbGFjZWhvbGRlciBqdXN0XG4gICAqIGluIHJlY2VudCBHcmFmYW5hcywgYW5kIG9sZGVyIG9uZXMgd291bGQgZW1pdCBpdCBsaXRlcmFsbHkgaW50byB0aGUgaGVhZGVyLlxuICAgKlxuICAgKiBUaGUgcG9saWN5IGlzIHdyYXBwZWQgaW4gYFwiXCJcImAsIGV4YWN0bHkgYXMgR3JhZmFuYSdzIG93biBkZWZhdWx0cy5pbmkgZG9lcy5cbiAgICogZ3JhZmFuYS5pbmkgaXMgcGFyc2VkIGJ5IGdvLWluaSwgd2hpY2ggdHJlYXRzIGA7YCBhcyBhbiBpbmxpbmUgY29tbWVudCDigJQgYW5cbiAgICogdW5xdW90ZWQgcG9saWN5IGlzIHNpbGVudGx5IHRydW5jYXRlZCBhdCBpdHMgZmlyc3QgZGlyZWN0aXZlIHNlcGFyYXRvciwgYW5kXG4gICAqIHRoZSBicm93c2VyIHRoZW4gcmVjZWl2ZXMgYSBDU1Agd2l0aG91dCBgZnJhbWUtYW5jZXN0b3JzYCB3aGlsZVxuICAgKiBgWC1GcmFtZS1PcHRpb25zYCBpcyBhbHJlYWR5IGdvbmUuIEEgWUFNTCBibG9jayBzY2FsYXIgY2FycmllcyB0aGUgcXVvdGVzXG4gICAqIHRocm91Z2ggdW50b3VjaGVkOyBhIHBsYWluIHF1b3RlZCBzY2FsYXIgd291bGQgZmlnaHQgb3ZlciB0aGUgc2FtZVxuICAgKiBjaGFyYWN0ZXIuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlR3JhZmFuYVNlY3VyaXR5KGNvbmZpZzogTW9uaXRvcmluZ0NvbmZpZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb25maWcuZW1iZWRkaW5nLmVuYWJsZWQpIHJldHVybiAnJztcbiAgICBjb25zdCBwb2xpY3kgPSBbXG4gICAgICBcInNjcmlwdC1zcmMgJ3NlbGYnICd1bnNhZmUtZXZhbCcgJ3Vuc2FmZS1pbmxpbmUnICdzdHJpY3QtZHluYW1pYycgJE5PTkNFXCIsXG4gICAgICBcIm9iamVjdC1zcmMgJ25vbmUnXCIsXG4gICAgICBcImZvbnQtc3JjICdzZWxmJ1wiLFxuICAgICAgXCJzdHlsZS1zcmMgJ3NlbGYnICd1bnNhZmUtaW5saW5lJyBibG9iOlwiLFxuICAgICAgJ2ltZy1zcmMgKiBkYXRhOicsXG4gICAgICBcImJhc2UtdXJpICdzZWxmJ1wiLFxuICAgICAgXCJjb25uZWN0LXNyYyAnc2VsZicgZ3JhZmFuYS5jb20gd3M6Ly8kUk9PVF9QQVRIIHdzczovLyRST09UX1BBVEhcIixcbiAgICAgIFwibWFuaWZlc3Qtc3JjICdzZWxmJ1wiLFxuICAgICAgXCJtZWRpYS1zcmMgJ25vbmUnXCIsXG4gICAgICBcImZvcm0tYWN0aW9uICdzZWxmJ1wiLFxuICAgICAgYGZyYW1lLWFuY2VzdG9ycyAnc2VsZicgJHtjb25maWcuZW1iZWRkaW5nLmZyYW1lQW5jZXN0b3JzLmpvaW4oJyAnKX1gLFxuICAgIF0ubWFwKChkaXJlY3RpdmUpID0+IGAke2RpcmVjdGl2ZX07YCkuam9pbignJyk7XG4gICAgcmV0dXJuIGBcbiAgICBzZWN1cml0eTpcbiAgICAgIGFsbG93X2VtYmVkZGluZzogdHJ1ZVxuICAgICAgY29udGVudF9zZWN1cml0eV9wb2xpY3k6IHRydWVcbiAgICAgIGNvbnRlbnRfc2VjdXJpdHlfcG9saWN5X3RlbXBsYXRlOiA+LVxuICAgICAgICBcIlwiXCIke3BvbGljeX1cIlwiXCJgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUhlbG1WYWx1ZXMoY29uZmlnOiBNb25pdG9yaW5nQ29uZmlnKTogc3RyaW5nIHtcbiAgICAvLyBUZW1wbyBkYXRhc291cmNlIGlzIG9ubHkgcHJvdmlzaW9uZWQgd2hlbiB0cmFjaW5nIGlzIGVuYWJsZWQuIFdoZW5cbiAgICAvLyBkaXNhYmxlZCB0aGlzIGlzIGVtcHR5LCBzbyB0aGUgR3JhZmFuYSBibG9jayBpcyBieXRlLWlkZW50aWNhbCB0byBiZWZvcmUuXG4gICAgY29uc3QgdGVtcG9EYXRhc291cmNlID0gY29uZmlnLnRlbXBvLmVuYWJsZWQgPyBgXG4gICAgICAtIG5hbWU6IFRlbXBvXG4gICAgICAgIHR5cGU6IHRlbXBvXG4gICAgICAgIHVpZDogdGVtcG9cbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICB1cmw6IGh0dHA6Ly90ZW1wby4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsOjMyMDBcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZW91dDogNjBcbiAgICAgICAgICB0cmFjZXNUb0xvZ3NWMjpcbiAgICAgICAgICAgIGRhdGFzb3VyY2VVaWQ6IGxva2lcbiAgICAgICAgICAgIHNwYW5TdGFydFRpbWVTaGlmdDogXCItMWhcIlxuICAgICAgICAgICAgc3BhbkVuZFRpbWVTaGlmdDogXCIxaFwiXG4gICAgICAgICAgICBmaWx0ZXJCeVRyYWNlSUQ6IHRydWVcbiAgICAgICAgICB0cmFjZXNUb01ldHJpY3M6XG4gICAgICAgICAgICBkYXRhc291cmNlVWlkOiB0aGFub3NgIDogJyc7XG4gICAgcmV0dXJuIGBrdWJlRXRjZDpcbiAgZW5hYmxlZDogZmFsc2VcblxuIyBEaXNhYmxlIGt1YmUtY29udHJvbGxlci1tYW5hZ2VyIGFuZCBrdWJlLXNjaGVkdWxlciBtb25pdG9yaW5nLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NhYmxlc3BhZ2hldHRpL2szcy1tb25pdG9yaW5nL2lzc3Vlcy8yXG5rdWJlQ29udHJvbGxlck1hbmFnZXI6XG4gIGVuYWJsZWQ6IGZhbHNlXG5rdWJlU2NoZWR1bGVyOlxuICBlbmFibGVkOiBmYWxzZVxuXG4jIERldGVjdCBQb2REaXNydXB0aW9uQnVkZ2V0cyB0aGF0IHdvdWxkIGJsb2NrIGEgbm9kZSBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLlxuIyBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgc2l0IGF0IGRpc3J1cHRpb25zQWxsb3dlZD0wIGJ5IGRlc2lnbiAoTG9uZ2hvcm4gaW5zdGFuY2UtbWFuYWdlcnMsXG4jIENOUEcgKi1wcmltYXJ5KSBhbmQgYXJlIGV4Y2x1ZGVkIHNvIHRoZSBhbGVydCBvbmx5IGZpcmVzIG9uIGFub21hbG91cyBhcHAgUERCcy5cbmFkZGl0aW9uYWxQcm9tZXRoZXVzUnVsZXNNYXA6XG4gIHBkYi1kcmFpbi1zYWZldHk6XG4gICAgZ3JvdXBzOlxuICAgICAgLSBuYW1lOiBwZGIucnVsZXNcbiAgICAgICAgaW50ZXJ2YWw6IDFtXG4gICAgICAgIHJ1bGVzOlxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZVxuICAgICAgICAgICAgZXhwcjoga3ViZV9wb2RkaXNydXB0aW9uYnVkZ2V0X3N0YXR1c19wb2RfZGlzcnVwdGlvbnNfYWxsb3dlZHtuYW1lc3BhY2UhPVwibG9uZ2hvcm4tc3lzdGVtXCIsIHBvZGRpc3J1cHRpb25idWRnZXQhflwiLiotcHJpbWFyeVwifSA9PSAwXG4gICAgICAgICAgICBmb3I6IDE1bVxuICAgICAgICAgICAgbGFiZWxzOlxuICAgICAgICAgICAgICBzZXZlcml0eTogd2FybmluZ1xuICAgICAgICAgICAgICBjb21wb25lbnQ6IGNsdXN0ZXItdXBncmFkZVxuICAgICAgICAgICAgYW5ub3RhdGlvbnM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IFwiUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBhbGxvd3MgMCB2b2x1bnRhcnkgZGlzcnVwdGlvbnNcIlxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogfFxuICAgICAgICAgICAgICAgIFRoZSBQb2REaXNydXB0aW9uQnVkZ2V0IHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgICAgICAgIGhhcyBhbGxvd2VkIDAgdm9sdW50YXJ5IGRpc3J1cHRpb25zIGZvciBvdmVyIDE1IG1pbnV0ZXMuIFRoaXMgd2lsbCBibG9jayBhIG5vZGVcbiAgICAgICAgICAgICAgICBkcmFpbiBkdXJpbmcgazNzIHVwZ3JhZGVzLiBPcGVyYXRvci1tYW5hZ2VkIFBEQnMgKExvbmdob3JuLCBDTlBHIHByaW1hcmllcykgYXJlXG4gICAgICAgICAgICAgICAgZXhjbHVkZWQgZnJvbSB0aGlzIGFsZXJ0LiBMaWtlbHkgYSBkZWdyYWRlZCBkZXBsb3ltZW50ICgwIGhlYWx0aHkgcG9kcykgb3IgYVxuICAgICAgICAgICAgICAgIHNpbmdsZS1yZXBsaWNhIGRlcGxveW1lbnQgd2l0aCBtaW5BdmFpbGFibGU9MS5cbiAgICAgICAgICAgICAgICBDaGVjazoga3ViZWN0bCBnZXQgcGRiIC1uIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19IHt7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fVxuICAgICAgICAgIC0gYWxlcnQ6IFBvZERpc3J1cHRpb25CdWRnZXRVbmRyYWluYWJsZUNyaXRpY2FsXG4gICAgICAgICAgICBleHByOiBrdWJlX3BvZGRpc3J1cHRpb25idWRnZXRfc3RhdHVzX3BvZF9kaXNydXB0aW9uc19hbGxvd2Vke25hbWVzcGFjZSE9XCJsb25naG9ybi1zeXN0ZW1cIiwgcG9kZGlzcnVwdGlvbmJ1ZGdldCF+XCIuKi1wcmltYXJ5XCJ9ID09IDBcbiAgICAgICAgICAgIGZvcjogMWhcbiAgICAgICAgICAgIGxhYmVsczpcbiAgICAgICAgICAgICAgc2V2ZXJpdHk6IGNyaXRpY2FsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogY2x1c3Rlci11cGdyYWRlXG4gICAgICAgICAgICBhbm5vdGF0aW9uczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogXCJQREIge3sgJGxhYmVscy5uYW1lc3BhY2UgfX0ve3sgJGxhYmVscy5wb2RkaXNydXB0aW9uYnVkZ2V0IH19IHVuZHJhaW5hYmxlID4xaFwiXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB8XG4gICAgICAgICAgICAgICAgUERCIHt7ICRsYWJlbHMubmFtZXNwYWNlIH19L3t7ICRsYWJlbHMucG9kZGlzcnVwdGlvbmJ1ZGdldCB9fSBoYXMgYmxvY2tlZFxuICAgICAgICAgICAgICAgIHZvbHVudGFyeSBkaXNydXB0aW9ucyBmb3Igb3ZlciBhbiBob3VyLiBBIGszcyBhZ2VudCB1cGdyYWRlIHdvdWxkIHN0YWxsIG9uIHRoaXMgbm9kZS5cbiMgRHJvcCBoaWdoLWNhcmRpbmFsaXR5IEFQSSBzZXJ2ZXIgYW5kIGV0Y2QgaGlzdG9ncmFtIGJ1Y2tldHMgdG8gcmVkdWNlIG1lbW9yeSB1c2FnZVxuIyBUaGVzZSBtZXRyaWNzIGFsb25lIGFjY291bnQgZm9yIH4yMDBrIHNlcmllcyAoNDclIG9mIHRvdGFsIGNhcmRpbmFsaXR5KVxuIyBXZSBrZWVwIF9zdW0gYW5kIF9jb3VudCBzdWZmaXhlcyB3aGljaCBhcmUgc3VmZmljaWVudCBmb3IgcmF0ZSBjYWxjdWxhdGlvbnNcbmt1YmVBcGlTZXJ2ZXI6XG4gIHNlcnZpY2VNb25pdG9yOlxuICAgIG1ldHJpY1JlbGFiZWxpbmdzOlxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVxdWVzdF9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X3NsaV9kdXJhdGlvbl9zZWNvbmRzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2JvZHlfc2l6ZV9ieXRlc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdhcGlzZXJ2ZXJfcmVzcG9uc2Vfc2l6ZXNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnZXRjZF9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcblxuIyBLdWJlbGV0IGFsc28gZXhwb3NlcyBhcGlzZXJ2ZXIgbWV0cmljcyAtIGFwcGx5IHNhbWUgZmlsdGVyc1xua3ViZWxldDpcbiAgc2VydmljZU1vbml0b3I6XG4gICAgbWV0cmljUmVsYWJlbGluZ3M6XG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXF1ZXN0X2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3Rfc2xpX2R1cmF0aW9uX3NlY29uZHNfYnVja2V0J1xuICAgICAgICBhY3Rpb246IGRyb3BcbiAgICAgIC0gc291cmNlTGFiZWxzOiBbX19uYW1lX19dXG4gICAgICAgIHJlZ2V4OiAnYXBpc2VydmVyX3JlcXVlc3RfYm9keV9zaXplX2J5dGVzX2J1Y2tldCdcbiAgICAgICAgYWN0aW9uOiBkcm9wXG4gICAgICAtIHNvdXJjZUxhYmVsczogW19fbmFtZV9fXVxuICAgICAgICByZWdleDogJ2FwaXNlcnZlcl9yZXNwb25zZV9zaXplc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuICAgICAgLSBzb3VyY2VMYWJlbHM6IFtfX25hbWVfX11cbiAgICAgICAgcmVnZXg6ICdldGNkX3JlcXVlc3RfZHVyYXRpb25fc2Vjb25kc19idWNrZXQnXG4gICAgICAgIGFjdGlvbjogZHJvcFxuXG5hbGVydG1hbmFnZXI6XG4gIGNvbmZpZzpcbiAgICBnbG9iYWw6XG4gICAgICBzbXRwX2Zyb206ICR7Y29uZmlnLnNtdHAuZnJvbX1cbiAgICAgIHNtdHBfc21hcnRob3N0OiAke2NvbmZpZy5zbXRwLmhvc3R9OiR7Y29uZmlnLnNtdHAucG9ydH1cbiAgICAgIHNtdHBfcmVxdWlyZV90bHM6ICR7Y29uZmlnLnNtdHAucmVxdWlyZVRsc31cbiAgICAgIHNtdHBfYXV0aF91c2VybmFtZTogJHtjb25maWcuc210cC51c2VybmFtZSB8fCBjb25maWcuc210cC5mcm9tfVxuICAgICAgc210cF9hdXRoX3Bhc3N3b3JkOiAke2NvbmZpZy5zbXRwLnBhc3N3b3JkIHx8ICcnfVxuICAgIHJvdXRlOlxuICAgICAgZ3JvdXBfYnk6IFsnam9iJ11cbiAgICAgIGdyb3VwX3dhaXQ6IDMwc1xuICAgICAgZ3JvdXBfaW50ZXJ2YWw6IDVtXG4gICAgICByZXBlYXRfaW50ZXJ2YWw6IDFoXG4gICAgICByZWNlaXZlcjogZW1haWxcbiAgICAgIHJvdXRlczpcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBXYXRjaGRvZ1xuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogQ1BVVGhyb3R0bGluZ0hpZ2hcbiAgICAgICAgcmVjZWl2ZXI6ICdudWxsJ1xuICAgICAgLSBtYXRjaDpcbiAgICAgICAgICBhbGVydG5hbWU6IEt1YmVNZW1vcnlPdmVyY29tbWl0XG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcbiAgICAgIC0gbWF0Y2g6XG4gICAgICAgICAgYWxlcnRuYW1lOiBLdWJlQ1BVT3ZlcmNvbW1pdFxuICAgICAgICByZWNlaXZlcjogJ251bGwnXG4gICAgICAtIG1hdGNoOlxuICAgICAgICAgIGFsZXJ0bmFtZTogS3ViZWxldFRvb01hbnlQb2RzXG4gICAgICAgIHJlY2VpdmVyOiAnbnVsbCdcblxuICAgIHJlY2VpdmVyczpcbiAgICAtIG5hbWU6ICdudWxsJ1xuICAgIC0gbmFtZTogZW1haWxcbiAgICAgIGVtYWlsX2NvbmZpZ3M6XG4gICAgICAtIHNlbmRfcmVzb2x2ZWQ6IHRydWVcbiAgICAgICAgdG86ICR7Y29uZmlnLnNtdHAuZnJvbX1cblxuICAgICMgSW5oaWJpdGlvbiBydWxlcyBhbGxvdyB0byBtdXRlIGEgc2V0IG9mIGFsZXJ0cyBnaXZlbiB0aGF0IGFub3RoZXIgYWxlcnQgaXMgZmlyaW5nLlxuICAgICMgV2UgdXNlIHRoaXMgdG8gbXV0ZSBhbnkgd2FybmluZy1sZXZlbCBub3RpZmljYXRpb25zIGlmIHRoZSBzYW1lIGFsZXJ0IGlzIGFscmVhZHkgY3JpdGljYWwuXG4gICAgaW5oaWJpdF9ydWxlczpcbiAgICAtIHNvdXJjZV9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICdjcml0aWNhbCdcbiAgICAgIHRhcmdldF9tYXRjaDpcbiAgICAgICAgc2V2ZXJpdHk6ICd3YXJuaW5nJ1xuICAgICAgIyBBcHBseSBpbmhpYml0aW9uIGlmIHRoZSBhbGVydG5hbWUgaXMgdGhlIHNhbWUuXG4gICAgICBlcXVhbDogWydhbGVydG5hbWUnLCAnbmFtZXNwYWNlJ11cblxuICBhbGVydG1hbmFnZXJTcGVjOlxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5hbGVydG1hbmFnZXJ9XG4gICAgcG9kQW50aUFmZmluaXR5OiBcInNvZnRcIlxuICAgIHN0b3JhZ2U6XG4gICAgICB2b2x1bWVDbGFpbVRlbXBsYXRlOlxuICAgICAgICBzcGVjOlxuICAgICAgICAgIGFjY2Vzc01vZGVzOiBbXCJSZWFkV3JpdGVPbmNlXCJdXG4gICAgICAgICAgcmVzb3VyY2VzOlxuICAgICAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgICAgIHN0b3JhZ2U6ICR7Y29uZmlnLnN0b3JhZ2UuYWxlcnRtYW5hZ2VyfVxuICAgIHJlc291cmNlczpcbiAgICAgIGxpbWl0czpcbiAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuYWxlcnRtYW5hZ2VyLmxpbWl0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5saW1pdHMubWVtb3J5fVxuICAgICAgcmVxdWVzdHM6XG4gICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5yZXF1ZXN0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmFsZXJ0bWFuYWdlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgIGNvbnRhaW5lcnM6XG4gICAgLSBuYW1lOiBjb25maWctcmVsb2FkZXJcbiAgICAgIHJlc291cmNlczpcbiAgICAgICAgcmVxdWVzdHM6XG4gICAgICAgICAgY3B1OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIucmVxdWVzdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLm1lbW9yeX1cbiAgICAgICAgbGltaXRzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5jcHV9XG4gICAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMuY29uZmlnUmVsb2FkZXIubGltaXRzLm1lbW9yeX1cblxuXG5wcm9tZXRoZXVzOlxuICAjIEVuYWJsZSBUaGFub3Mgc2VydmljZSBmb3IgZ1JQQyBjb21tdW5pY2F0aW9uXG4gICMgUmVxdWlyZWQgZm9yIEhlbG0gY2hhcnQgdG8gcHJvcGVybHkgcmVuZGVyIFRoYW5vcyBzaWRlY2FyIGNvbmZpZ3VyYXRpb25cbiAgdGhhbm9zU2VydmljZTpcbiAgICBlbmFibGVkOiB0cnVlXG5cbiAgcHJvbWV0aGV1c1NwZWM6XG4gICAgcmV0ZW50aW9uOiAke2NvbmZpZy5yZXRlbnRpb24ucHJvbWV0aGV1c30gICMgUmVkdWNlZCBmcm9tIDdkIC0gVGhhbm9zIHByb3ZpZGVzIGxvbmctdGVybSBzdG9yYWdlIGluIFMzXG5cbiAgICAjIERpc2NvdmVyIEFMTCBTZXJ2aWNlTW9uaXRvcnMsIFBvZE1vbml0b3JzIGFuZCBQcm9tZXRoZXVzUnVsZXMgaW4gQUxMIG5hbWVzcGFjZXNcbiAgICAjIFNldHRpbmcgTmlsVXNlc0hlbG1WYWx1ZXM6IGZhbHNlIG1lYW5zIG5pbCBzZWxlY3RvcnMgPSBcInNlbGVjdCBhbGxcIlxuICAgICMgRW1wdHkgbmFtZXNwYWNlIHNlbGVjdG9ycyB7fSBtZWFuIFwic2VhcmNoIGFsbCBuYW1lc3BhY2VzXCJcbiAgICAjIFdpdGhvdXQgdGhlIHJ1bGUqIHNldHRpbmdzLCBydWxlU2VsZWN0b3Iga2VlcHMgdGhlIGNoYXJ0IGRlZmF1bHRcbiAgICAjIChtYXRjaExhYmVsczoge3JlbGVhc2U6IDxuYW1lPn0pIGFuZCBoYW5kLWF1dGhvcmVkIFByb21ldGhldXNSdWxlcyB0aGF0XG4gICAgIyBsYWNrIHRoZSByZWxlYXNlIGxhYmVsIGFyZSBzaWxlbnRseSBpZ25vcmVkLlxuICAgICMgTm90ZTogVGhpcyBkb2VzIE5PVCBhZmZlY3QgVGhhbm9zIHNpZGVjYXIgLSBjb250cm9sbGVkIGJ5IHRoYW5vcy5vYmplY3RTdG9yYWdlQ29uZmlnXG4gICAgc2VydmljZU1vbml0b3JTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHBvZE1vbml0b3JTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHJ1bGVTZWxlY3Rvck5pbFVzZXNIZWxtVmFsdWVzOiBmYWxzZVxuICAgIHNlcnZpY2VNb25pdG9yTmFtZXNwYWNlU2VsZWN0b3I6IHt9XG4gICAgcG9kTW9uaXRvck5hbWVzcGFjZVNlbGVjdG9yOiB7fVxuICAgIHJ1bGVOYW1lc3BhY2VTZWxlY3Rvcjoge31cblxuICAgIHJlcGxpY2FzOiAke2NvbmZpZy5yZXBsaWNhcy5wcm9tZXRoZXVzfVxuICAgIHBvZEFudGlBZmZpbml0eTogXCJoYXJkXCJcbiAgICBzdG9yYWdlU3BlYzpcbiAgICAgIHZvbHVtZUNsYWltVGVtcGxhdGU6XG4gICAgICAgIHNwZWM6XG4gICAgICAgICAgc3RvcmFnZUNsYXNzTmFtZTogbG9uZ2hvcm5cbiAgICAgICAgICBhY2Nlc3NNb2RlczogW1wiUmVhZFdyaXRlT25jZVwiXVxuICAgICAgICAgIHJlc291cmNlczpcbiAgICAgICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgICAgICBzdG9yYWdlOiAke2NvbmZpZy5zdG9yYWdlLnByb21ldGhldXN9ICAjIFJlZHVjZWQgZnJvbSA2R2kgKDNkIHJldGVudGlvbiBuZWVkcyBsZXNzIHNwYWNlKVxuXG4gICAgcmVzb3VyY2VzOlxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLmxpbWl0cy5jcHV9XG4gICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLnByb21ldGhldXMubGltaXRzLm1lbW9yeX1cbiAgICAgIHJlcXVlc3RzOlxuICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5wcm9tZXRoZXVzLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgbWVtb3J5OiAke2NvbmZpZy5yZXNvdXJjZXMucHJvbWV0aGV1cy5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxuICAgICMgRXh0ZXJuYWwgbGFiZWxzIGZvciBtdWx0aS1jbHVzdGVyIGlkZW50aWZpY2F0aW9uIGFuZCBUaGFub3NcbiAgICBleHRlcm5hbExhYmVsczpcbiAgICAgIGNsdXN0ZXI6ICR7Y29uZmlnLmNsdXN0ZXJOYW1lfVxuICAgICAgcmVwbGljYTogXCIkKFBPRF9OQU1FKVwiXG5cbiAgICAjIFRoYW5vcyBzaWRlY2FyIGZvciBsb25nLXRlcm0gbWV0cmljcyBzdG9yYWdlIGluIFMzXG4gICAgIyBOT1RFOiBjaGFydCA+PTg1LnggcmVxdWlyZXMgdGhlIGV4aXN0aW5nU2VjcmV0IHNoYXBlLiBUaGUgbGVnYWN5IGZsYXRcbiAgICAjIHtuYW1lLCBrZXl9IGZvcm0gaXMgc2lsZW50bHkgZHJvcHBlZCBieSB0aGUgY2hhcnQsIHdoaWNoIHJlbW92ZXMgdGhlXG4gICAgIyBzaWRlY2FyIGFuZCBzdG9wcyBhbGwgUzMgYmxvY2sgdXBsb2FkcyAocmVncmVzc2lvbiBzZWVuIDIwMjYtMDMtMzEpLlxuICAgIHRoYW5vczpcbiAgICAgIG9iamVjdFN0b3JhZ2VDb25maWc6XG4gICAgICAgIGV4aXN0aW5nU2VjcmV0OlxuICAgICAgICAgIG5hbWU6IHRoYW5vcy1vYmpzdG9yZS1jb25maWcgICMgRVNPLW1hbmFnZWQgc2VjcmV0XG4gICAgICAgICAga2V5OiBvYmpzdG9yZS55bWxcblxuICAgICMgU2lkZWNhciBjb250YWluZXJzIHJlc291cmNlIHJlcXVlc3RzIChhZGRlZCAyMDI1LTExLTE4KVxuICAgICMgTk9URTogdGhhbm9zLXNpZGVjYXIgaXMgTk9UIGxpc3RlZCBoZXJlIC0gaXQncyBhdXRvbWF0aWNhbGx5IGluamVjdGVkIGJ5IFByb21ldGhldXMgT3BlcmF0b3JcbiAgICAjIHdoZW4gdGhhbm9zLm9iamVjdFN0b3JhZ2VDb25maWcgaXMgc2V0LiBTcGVjaWZ5aW5nIGl0IGluIGNvbnRhaW5lcnNbXSB3b3VsZCBvdmVycmlkZVxuICAgICMgdGhlIG9wZXJhdG9yJ3MgZGVmaW5pdGlvbiBhbmQgcmVxdWlyZSB1cyB0byBtYW51YWxseSBzcGVjaWZ5IHRoZSBpbWFnZSwgd2hpY2ggYnJlYWtzXG4gICAgIyB3aGVuIHRoZSBvcGVyYXRvciB1cGRhdGVzIHRoZSB0aGFub3MgdmVyc2lvbi5cbiAgICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogY29uZmlnLXJlbG9hZGVyXG4gICAgICByZXNvdXJjZXM6XG4gICAgICAgIHJlcXVlc3RzOlxuICAgICAgICAgIGNwdTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLnJlcXVlc3RzLmNwdX1cbiAgICAgICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5yZXF1ZXN0cy5tZW1vcnl9XG4gICAgICAgIGxpbWl0czpcbiAgICAgICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5jb25maWdSZWxvYWRlci5saW1pdHMuY3B1fVxuICAgICAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmNvbmZpZ1JlbG9hZGVyLmxpbWl0cy5tZW1vcnl9XG5cbiAgICBzZXJ2aWNlOlxuICAgICAgc2Vzc2lvbkFmZmluaXR5OiBcIkNsaWVudElQXCJcblxuXG5ncmFmYW5hOlxuICAjIFJlY3JlYXRlIHN0cmF0ZWd5IGlzIHJlcXVpcmVkIGJlY2F1c2UgdGhlIHN0b3JhZ2UgUFZDIGlzIFJXTzpcbiAgIyBhIFJvbGxpbmdVcGRhdGUgd291bGQgc3VyZ2UgYSBzZWNvbmQgcG9kIHRoYXQgY2Fubm90IG1vdW50IHRoZVxuICAjIHZvbHVtZSAoRmFpbGVkQXR0YWNoVm9sdW1lKSwgYmxvY2tpbmcgdGhlIHJvbGxvdXQgaW5kZWZpbml0ZWx5LlxuICBkZXBsb3ltZW50U3RyYXRlZ3k6XG4gICAgdHlwZTogUmVjcmVhdGVcblxuICAjIFVzZSBleGlzdGluZyBzZWNyZXQgZm9yIGFkbWluIGNyZWRlbnRpYWxzIChtYW5hZ2VkIGJ5IEVTTylcbiAgIyBUaGlzIHByZXZlbnRzIHBhc3N3b3JkIHJlZ2VuZXJhdGlvbiBvbiBIZWxtIHVwZ3JhZGVzXG4gIGFkbWluOlxuICAgIGV4aXN0aW5nU2VjcmV0OiBcImdyYWZhbmEtYWRtaW4tY3JlZGVudGlhbHNcIlxuICAgIHVzZXJLZXk6IFwiYWRtaW4tdXNlclwiXG4gICAgcGFzc3dvcmRLZXk6IFwiYWRtaW4tcGFzc3dvcmRcIlxuXG4gICMgR3JhZmFuYSBydW5zIGh0dHAgb24gOjMwMDAgYmVoaW5kIHRoZSBUTFMtdGVybWluYXRpbmcgaW5ncmVzcy4gV2l0aG91dCBhblxuICAjIGV4cGxpY2l0IHJvb3RfdXJsIGl0IGJ1aWxkcyBzaGFyZSBhbmQgcHVibGljLWRhc2hib2FyZCBsaW5rcyBmcm9tIHRoZSBpbnRlcm5hbFxuICAjIGFkZHJlc3MgKGh0dHA6Ly88cG9kPjozMDAwKTsgZGVyaXZlIHRoZSBleHRlcm5hbCBVUkwgZnJvbSB0aGUgY29uZmlndXJlZCBkb21haW4uXG4gIGdyYWZhbmEuaW5pOlxuICAgIHNlcnZlcjpcbiAgICAgIGRvbWFpbjogJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuICAgICAgcm9vdF91cmw6IGh0dHBzOi8vJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfSR7dGhpcy5nZW5lcmF0ZUdyYWZhbmFTZWN1cml0eShjb25maWcpfVxuXG4gICMgRGlzYWJsZSBkZWZhdWx0IFByb21ldGhldXMgZGF0YXNvdXJjZSAod2UgcHJvdmlkZSBvdXIgb3duIHBvaW50aW5nIHRvIFRoYW5vcyBRdWVyeSlcbiAgZGVmYXVsdERhdGFzb3VyY2VFbmFibGVkOiBmYWxzZVxuXG4gICMgU2lkZWNhciBjb250YWluZXJzIGZvciBkYXNoYm9hcmQvZGF0YXNvdXJjZSBwcm92aXNpb25pbmdcbiAgc2lkZWNhcjpcbiAgICByZXNvdXJjZXM6XG4gICAgICByZXF1ZXN0czpcbiAgICAgICAgY3B1OiAxMG1cbiAgICAgICAgbWVtb3J5OiAyNTZNaVxuICAgICAgbGltaXRzOlxuICAgICAgICBjcHU6IDEwMG1cbiAgICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIGRhc2hib2FyZHM6XG4gICAgICBlbmFibGVkOiB0cnVlXG4gICAgZGF0YXNvdXJjZXM6XG4gICAgICBlbmFibGVkOiBmYWxzZSAgIyBXZSBtYW51YWxseSBwcm92aXNpb24gZGF0YXNvdXJjZXMgKFByb21ldGhldXPihpJUaGFub3MsIExva2kpXG5cbiAgaW5ncmVzczpcbiAgICBlbmFibGVkOiB0cnVlJHtjb25maWcuZG9tYWlucy5pbmdyZXNzQ2xhc3NOYW1lID8gYFxcbiAgICBpbmdyZXNzQ2xhc3NOYW1lOiAke2NvbmZpZy5kb21haW5zLmluZ3Jlc3NDbGFzc05hbWV9YCA6ICcnfVxuICAgIGhvc3RzOlxuICAgICAgLSAke2NvbmZpZy5kb21haW5zLmdyYWZhbmF9XG4gICAgYW5ub3RhdGlvbnM6XG4gICAgICBjZXJ0LW1hbmFnZXIuaW8vY2x1c3Rlci1pc3N1ZXI6IFwibGV0c2VuY3J5cHQtY2x1c3Rlci1pc3N1ZXJcIlxuICAgICAgdHJhZWZpay5pbmdyZXNzLmt1YmVybmV0ZXMuaW8vcm91dGVyLmVudHJ5cG9pbnRzOiB3ZWJzZWN1cmVcbiAgICB0bHM6XG4gICAgICAtIHNlY3JldE5hbWU6IGdyYWZhbmEtZ2VuZXJhbC10bHNcbiAgICAgICAgaG9zdHM6XG4gICAgICAgIC0gJHtjb25maWcuZG9tYWlucy5ncmFmYW5hfVxuXG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLmxpbWl0cy5jcHV9XG4gICAgICBtZW1vcnk6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLmxpbWl0cy5tZW1vcnl9XG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6ICR7Y29uZmlnLnJlc291cmNlcy5ncmFmYW5hLnJlcXVlc3RzLmNwdX1cbiAgICAgIG1lbW9yeTogJHtjb25maWcucmVzb3VyY2VzLmdyYWZhbmEucmVxdWVzdHMubWVtb3J5fVxuXG4gIHJlYWRpbmVzc1Byb2JlOlxuICAgIGh0dHBHZXQ6XG4gICAgICBwYXRoOiAvYXBpL2hlYWx0aFxuICAgICAgcG9ydDogMzAwMFxuICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDMwXG4gICAgcGVyaW9kU2Vjb25kczogMTBcbiAgICB0aW1lb3V0U2Vjb25kczogNVxuICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDNcblxuICBsaXZlbmVzc1Byb2JlOlxuICAgIGh0dHBHZXQ6XG4gICAgICBwYXRoOiAvYXBpL2hlYWx0aFxuICAgICAgcG9ydDogMzAwMFxuICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDYwXG4gICAgcGVyaW9kU2Vjb25kczogMTBcbiAgICB0aW1lb3V0U2Vjb25kczogMzBcbiAgICBmYWlsdXJlVGhyZXNob2xkOiAxMFxuXG4gIHBlcnNpc3RlbmNlOlxuICAgIGVuYWJsZWQ6IHRydWVcbiAgICBzdG9yYWdlQ2xhc3NOYW1lOiBsb25naG9yblxuICAgIGFjY2Vzc01vZGVzOlxuICAgICAgLSBSZWFkV3JpdGVPbmNlXG4gICAgc2l6ZTogJHtjb25maWcuc3RvcmFnZS5ncmFmYW5hfVxuXG4gICMgTWFudWFsIGRhdGFzb3VyY2UgcHJvdmlzaW9uaW5nIChzaWRlY2FyIGRpc2FibGVkKVxuICAjIFRoYW5vcyBRdWVyeSDihpIgbG9uZy10ZXJtL2hpc3RvcmljYWwgbWV0cmljcyAoUzMgdmlhIFN0b3JlICsgbGl2ZSBzaWRlY2FyKSwgZGVmYXVsdFxuICAjIFByb21ldGhldXMg4oaSIGxvY2FsLCByZWNlbnQvaGlnaC1yZXMgb25seSAoa2VwdCBmb3IgbG93LWxhdGVuY3kgcmVjZW50IHF1ZXJpZXMpXG4gICMgTG9raSBmb3IgbG9nIGFnZ3JlZ2F0aW9uXG4gIGRhdGFzb3VyY2VzOlxuICAgIGRhdGFzb3VyY2VzLnlhbWw6XG4gICAgICBhcGlWZXJzaW9uOiAxXG4gICAgICAjIERlbGV0ZSBhbnkgcHJlLWV4aXN0aW5nIExva2kgZGF0YXNvdXJjZSAoZS5nLiBvbmUgY3JlYXRlZCB3aXRoIGFcbiAgICAgICMgcmFuZG9tbHkgZ2VuZXJhdGVkIFVJRCBiZWZvcmUgd2UgcGlubmVkIHVpZDogbG9raSkuIFdpdGhvdXQgdGhpcyxcbiAgICAgICMgR3JhZmFuYSBmYWlscyBwcm92aXNpb25pbmcgd2l0aCBcImRhdGEgc291cmNlIG5vdCBmb3VuZFwiIGJlY2F1c2VcbiAgICAgICMgdGhlIHVwc2VydCBjb2xsaWRlcyB3aXRoIHRoZSBleGlzdGluZyBlbnRyeS5cbiAgICAgIGRlbGV0ZURhdGFzb3VyY2VzOlxuICAgICAgLSBuYW1lOiBMb2tpXG4gICAgICAgIG9yZ0lkOiAxXG4gICAgICBkYXRhc291cmNlczpcbiAgICAgIC0gbmFtZTogVGhhbm9zXG4gICAgICAgIHR5cGU6IHByb21ldGhldXNcbiAgICAgICAgdWlkOiB0aGFub3NcbiAgICAgICAgYWNjZXNzOiBwcm94eVxuICAgICAgICAjIHRoYW5vcy1xdWVyeSBTZXJ2aWNlOiBodHRwIHBvcnQgOTA5MCAtPiBjb250YWluZXIgaHR0cCAxMDkwMlxuICAgICAgICB1cmw6IGh0dHA6Ly90aGFub3MtcXVlcnkuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkwXG4gICAgICAgIGlzRGVmYXVsdDogdHJ1ZVxuICAgICAgICBqc29uRGF0YTpcbiAgICAgICAgICB0aW1lSW50ZXJ2YWw6IDMwc1xuICAgICAgLSBuYW1lOiBQcm9tZXRoZXVzXG4gICAgICAgIHR5cGU6IHByb21ldGhldXNcbiAgICAgICAgdWlkOiBwcm9tZXRoZXVzXG4gICAgICAgIGFjY2VzczogcHJveHlcbiAgICAgICAgdXJsOiBodHRwOi8va3ViZS1wcm9tZXRoZXVzLXN0YWNrLXByb21ldGhldXMuJHtjb25maWcubmFtZXNwYWNlfS5zdmMuY2x1c3Rlci5sb2NhbDo5MDkwXG4gICAgICAgIGlzRGVmYXVsdDogZmFsc2VcbiAgICAgICAganNvbkRhdGE6XG4gICAgICAgICAgdGltZUludGVydmFsOiAzMHNcbiAgICAgIC0gbmFtZTogTG9raVxuICAgICAgICB0eXBlOiBsb2tpXG4gICAgICAgIHVpZDogbG9raVxuICAgICAgICBhY2Nlc3M6IHByb3h5XG4gICAgICAgIHVybDogaHR0cDovL2xva2ktZ2F0ZXdheS4ke2NvbmZpZy5uYW1lc3BhY2V9LnN2Yy5jbHVzdGVyLmxvY2FsXG4gICAgICAgIGpzb25EYXRhOlxuICAgICAgICAgIG1heExpbmVzOiAxMDAwJHt0ZW1wb0RhdGFzb3VyY2V9XG5cbnByb21ldGhldXNPcGVyYXRvcjpcbiAgcmVzb3VyY2VzOlxuICAgIGxpbWl0czpcbiAgICAgIGNwdTogMVxuICAgICAgbWVtb3J5OiA1MTJNaVxuICAgIHJlcXVlc3RzOlxuICAgICAgY3B1OiA1MG1cbiAgICAgIG1lbW9yeTogMTI4TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxucHJvbWV0aGV1cy1ub2RlLWV4cG9ydGVyOlxuICAjIEJpbmQgOjkxMDAgdG8gdGhlIG5vZGUgSW50ZXJuYWxJUCBvbmx5LCBub3QgMC4wLjAuMC4gV2l0aCBrdWJlUkJBQ1Byb3h5XG4gICMgZGlzYWJsZWQgdGhlIHN1Yi1jaGFydCBzZXRzIEhPU1RfSVAgZnJvbSBmaWVsZFJlZiBzdGF0dXMuaG9zdElQLCB3aGljaCBpc1xuICAjIHRoZSBub2RlJ3MgSW50ZXJuYWxJUCAoRVg6IHZTd2l0Y2ggMTAuNi4wLnggdmlhIC0tbm9kZS1pcDsgY2xvdWQ6IGhjbG91ZFxuICAjIHByaXZhdGUgSVApLiBub2RlLWV4cG9ydGVyIGlzIGhvc3ROZXR3b3JrLCBzbyBQcm9tZXRoZXVzIGFscmVhZHkgc2NyYXBlc1xuICAjIHRoYXQgSW50ZXJuYWxJUCBlbmRwb2ludCAtPiBzY3JhcGluZyBpcyB1bmFmZmVjdGVkLCBvbmx5IHRoZSBwdWJsaWMtTklDXG4gICMgZXhwb3N1cmUgb2YgdGhlIHVuYXV0aGVudGljYXRlZCBtZXRyaWNzIG9uIHRoZSBFWCBwdWJsaWMgSVBzIGdvZXMgYXdheS5cbiAgc2VydmljZTpcbiAgICBsaXN0ZW5PbkFsbEludGVyZmFjZXM6IGZhbHNlXG4gIHJlc291cmNlczpcbiAgICBsaW1pdHM6XG4gICAgICBjcHU6IDUwbVxuICAgICAgbWVtb3J5OiA1ME1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDVtXG4gICAgICBtZW1vcnk6IDE2TWlcbiAgcHJpb3JpdHlDbGFzc05hbWU6IGhpZ2gtcHJpb3JpdHlcblxua3ViZS1zdGF0ZS1tZXRyaWNzOlxuICByZXNvdXJjZXM6XG4gICAgbGltaXRzOlxuICAgICAgY3B1OiAxXG4gICAgICBtZW1vcnk6IDUxMk1pXG4gICAgcmVxdWVzdHM6XG4gICAgICBjcHU6IDVtXG4gICAgICBtZW1vcnk6IDEyOE1pXG4gIHByaW9yaXR5Q2xhc3NOYW1lOiBoaWdoLXByaW9yaXR5XG5gO1xuICB9XG59XG4iXX0=
|