@dollhousemcp/mcp-server 2.0.0-rc.6 → 2.0.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.
- package/CHANGELOG.md +52 -61
- package/README.github.md +2 -2
- package/README.md +2 -2
- package/README.md.backup +284 -224
- package/README.npm.md +2 -2
- package/dist/cache/LRUCache.d.ts +3 -0
- package/dist/cache/LRUCache.d.ts.map +1 -1
- package/dist/cache/LRUCache.js +36 -26
- package/dist/config/env.d.ts +14 -4
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +20 -6
- package/dist/di/Container.d.ts +21 -0
- package/dist/di/Container.d.ts.map +1 -1
- package/dist/di/Container.js +250 -53
- package/dist/elements/BaseElement.d.ts.map +1 -1
- package/dist/elements/BaseElement.js +5 -10
- package/dist/elements/base/BaseElementManager.d.ts +22 -0
- package/dist/elements/base/BaseElementManager.d.ts.map +1 -1
- package/dist/elements/base/BaseElementManager.js +47 -7
- package/dist/elements/memories/Memory.d.ts +1 -0
- package/dist/elements/memories/Memory.d.ts.map +1 -1
- package/dist/elements/memories/Memory.js +12 -8
- package/dist/elements/memories/MemoryManager.d.ts.map +1 -1
- package/dist/elements/memories/MemoryManager.js +23 -42
- package/dist/elements/memories/MemorySearchIndex.js +2 -2
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.d.ts.map +1 -1
- package/dist/generated/version.js +3 -3
- package/dist/handlers/EnhancedIndexHandler.js +6 -6
- package/dist/handlers/element-crud/listElements.d.ts +2 -0
- package/dist/handlers/element-crud/listElements.d.ts.map +1 -1
- package/dist/handlers/element-crud/listElements.js +3 -1
- package/dist/handlers/mcp-aql/Gatekeeper.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/Gatekeeper.js +23 -17
- package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts +14 -0
- package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/MCPAQLHandler.js +110 -14
- package/dist/handlers/mcp-aql/OperationRouter.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/OperationRouter.js +13 -1
- package/dist/handlers/mcp-aql/OperationSchema.d.ts +7 -0
- package/dist/handlers/mcp-aql/OperationSchema.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/OperationSchema.js +52 -1
- package/dist/handlers/mcp-aql/evaluatePermission.d.ts +53 -0
- package/dist/handlers/mcp-aql/evaluatePermission.d.ts.map +1 -0
- package/dist/handlers/mcp-aql/evaluatePermission.js +132 -0
- package/dist/handlers/mcp-aql/policies/ToolClassification.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/policies/ToolClassification.js +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/logging/LogHooks.js +11 -11
- package/dist/logging/LogManager.d.ts +0 -2
- package/dist/logging/LogManager.d.ts.map +1 -1
- package/dist/logging/LogManager.js +1 -3
- package/dist/logging/sinks/MemoryLogSink.d.ts +2 -0
- package/dist/logging/sinks/MemoryLogSink.d.ts.map +1 -1
- package/dist/logging/sinks/MemoryLogSink.js +12 -3
- package/dist/logging/types.d.ts +0 -2
- package/dist/logging/types.d.ts.map +1 -1
- package/dist/logging/types.js +1 -1
- package/dist/metrics/GatekeeperMetricsTracker.d.ts +32 -0
- package/dist/metrics/GatekeeperMetricsTracker.d.ts.map +1 -0
- package/dist/metrics/GatekeeperMetricsTracker.js +42 -0
- package/dist/metrics/MetricsManager.d.ts +47 -0
- package/dist/metrics/MetricsManager.d.ts.map +1 -0
- package/dist/metrics/MetricsManager.js +232 -0
- package/dist/metrics/OperationMetricsTracker.d.ts +32 -0
- package/dist/metrics/OperationMetricsTracker.d.ts.map +1 -0
- package/dist/metrics/OperationMetricsTracker.js +53 -0
- package/dist/metrics/collectors/DefaultElementProviderCollector.d.ts +27 -0
- package/dist/metrics/collectors/DefaultElementProviderCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/DefaultElementProviderCollector.js +69 -0
- package/dist/metrics/collectors/FileLockManagerCollector.d.ts +16 -0
- package/dist/metrics/collectors/FileLockManagerCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/FileLockManagerCollector.js +51 -0
- package/dist/metrics/collectors/GatekeeperMetricsCollector.d.ts +16 -0
- package/dist/metrics/collectors/GatekeeperMetricsCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/GatekeeperMetricsCollector.js +76 -0
- package/dist/metrics/collectors/LRUCacheCollector.d.ts +18 -0
- package/dist/metrics/collectors/LRUCacheCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/LRUCacheCollector.js +95 -0
- package/dist/metrics/collectors/OperationMetricsCollector.d.ts +16 -0
- package/dist/metrics/collectors/OperationMetricsCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/OperationMetricsCollector.js +80 -0
- package/dist/metrics/collectors/OperationalTelemetryCollector.d.ts +17 -0
- package/dist/metrics/collectors/OperationalTelemetryCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/OperationalTelemetryCollector.js +26 -0
- package/dist/metrics/collectors/PerformanceMonitorCollector.d.ts +14 -0
- package/dist/metrics/collectors/PerformanceMonitorCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/PerformanceMonitorCollector.js +141 -0
- package/dist/metrics/collectors/SecurityMonitorCollector.d.ts +21 -0
- package/dist/metrics/collectors/SecurityMonitorCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/SecurityMonitorCollector.js +56 -0
- package/dist/metrics/collectors/SecurityTelemetryCollector.d.ts +15 -0
- package/dist/metrics/collectors/SecurityTelemetryCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/SecurityTelemetryCollector.js +112 -0
- package/dist/metrics/collectors/TriggerMetricsTrackerCollector.d.ts +16 -0
- package/dist/metrics/collectors/TriggerMetricsTrackerCollector.d.ts.map +1 -0
- package/dist/metrics/collectors/TriggerMetricsTrackerCollector.js +26 -0
- package/dist/metrics/collectors/index.d.ts +11 -0
- package/dist/metrics/collectors/index.d.ts.map +1 -0
- package/dist/metrics/collectors/index.js +11 -0
- package/dist/metrics/sinks/MemoryMetricsSink.d.ts +22 -0
- package/dist/metrics/sinks/MemoryMetricsSink.d.ts.map +1 -0
- package/dist/metrics/sinks/MemoryMetricsSink.js +121 -0
- package/dist/metrics/types.d.ts +98 -0
- package/dist/metrics/types.d.ts.map +1 -0
- package/dist/metrics/types.js +24 -0
- package/dist/portfolio/DefaultElementProvider.d.ts.map +1 -1
- package/dist/portfolio/DefaultElementProvider.js +1 -7
- package/dist/portfolio/EnhancedIndexManager.d.ts.map +1 -1
- package/dist/portfolio/EnhancedIndexManager.js +18 -18
- package/dist/portfolio/NLPScoringManager.d.ts.map +1 -1
- package/dist/portfolio/NLPScoringManager.js +5 -9
- package/dist/portfolio/PortfolioIndexManager.js +2 -2
- package/dist/portfolio/RelationshipManager.js +2 -2
- package/dist/portfolio/VerbTriggerManager.d.ts.map +1 -1
- package/dist/portfolio/VerbTriggerManager.js +5 -19
- package/dist/portfolio/config/IndexConfig.d.ts.map +1 -1
- package/dist/portfolio/config/IndexConfig.js +1 -12
- package/dist/portfolio/enhanced-index/ElementDefinitionBuilder.d.ts.map +1 -1
- package/dist/portfolio/enhanced-index/ElementDefinitionBuilder.js +3 -15
- package/dist/portfolio/enhanced-index/SemanticRelationshipService.d.ts.map +1 -1
- package/dist/portfolio/enhanced-index/SemanticRelationshipService.js +2 -16
- package/dist/portfolio/types/RelationshipTypes.d.ts.map +1 -1
- package/dist/portfolio/types/RelationshipTypes.js +3 -17
- package/dist/security/audit/config/suppressions.d.ts.map +1 -1
- package/dist/security/audit/config/suppressions.js +36 -8
- package/dist/security/constants.d.ts.map +1 -1
- package/dist/security/constants.js +10 -6
- package/dist/security/fileLockManager.d.ts.map +1 -1
- package/dist/security/fileLockManager.js +8 -6
- package/dist/security/secureYamlParser.d.ts.map +1 -1
- package/dist/security/secureYamlParser.js +1 -13
- package/dist/security/securityMonitor.d.ts +2 -1
- package/dist/security/securityMonitor.d.ts.map +1 -1
- package/dist/security/securityMonitor.js +14 -3
- package/dist/security/telemetry/SecurityTelemetry.d.ts +16 -0
- package/dist/security/telemetry/SecurityTelemetry.d.ts.map +1 -1
- package/dist/security/telemetry/SecurityTelemetry.js +30 -2
- package/dist/security/tokenManager.d.ts +3 -0
- package/dist/security/tokenManager.d.ts.map +1 -1
- package/dist/security/tokenManager.js +13 -5
- package/dist/security/validation/BackgroundValidator.d.ts.map +1 -1
- package/dist/security/validation/BackgroundValidator.js +7 -7
- package/dist/server/startup.d.ts.map +1 -1
- package/dist/server/startup.js +8 -24
- package/dist/server/tools/MCPAQLTools.js +4 -1
- package/dist/services/ActivationStore.d.ts.map +1 -1
- package/dist/services/ActivationStore.js +9 -3
- package/dist/services/FileWatchService.d.ts +1 -0
- package/dist/services/FileWatchService.d.ts.map +1 -1
- package/dist/services/FileWatchService.js +83 -48
- package/dist/services/MetadataService.d.ts.map +1 -1
- package/dist/services/MetadataService.js +7 -2
- package/dist/services/query/ElementQueryService.d.ts.map +1 -1
- package/dist/services/query/ElementQueryService.js +1 -41
- package/dist/services/query/PaginationService.d.ts.map +1 -1
- package/dist/services/query/PaginationService.js +1 -14
- package/dist/services/query/SortService.d.ts.map +1 -1
- package/dist/services/query/SortService.js +1 -6
- package/dist/services/validation/ValidationService.d.ts.map +1 -1
- package/dist/services/validation/ValidationService.js +3 -8
- package/dist/storage/ElementStorageLayer.d.ts.map +1 -1
- package/dist/storage/ElementStorageLayer.js +5 -2
- package/dist/storage/MemoryStorageLayer.d.ts.map +1 -1
- package/dist/storage/MemoryStorageLayer.js +5 -2
- package/dist/telemetry/OperationalTelemetry.js +2 -2
- package/dist/utils/EventDeduplicator.d.ts +44 -0
- package/dist/utils/EventDeduplicator.d.ts.map +1 -0
- package/dist/utils/EventDeduplicator.js +93 -0
- package/dist/utils/FileLock.d.ts.map +1 -1
- package/dist/utils/FileLock.js +1 -9
- package/dist/utils/PerformanceMonitor.d.ts.map +1 -1
- package/dist/utils/PerformanceMonitor.js +5 -5
- package/dist/utils/SlidingWindowRateLimiter.d.ts +13 -0
- package/dist/utils/SlidingWindowRateLimiter.d.ts.map +1 -0
- package/dist/utils/SlidingWindowRateLimiter.js +23 -0
- package/dist/web/console/IngestRoutes.d.ts +84 -0
- package/dist/web/console/IngestRoutes.d.ts.map +1 -0
- package/dist/web/console/IngestRoutes.js +252 -0
- package/dist/web/console/LeaderElection.d.ts +89 -0
- package/dist/web/console/LeaderElection.d.ts.map +1 -0
- package/dist/web/console/LeaderElection.js +205 -0
- package/dist/web/console/LeaderForwardingSink.d.ts +61 -0
- package/dist/web/console/LeaderForwardingSink.d.ts.map +1 -0
- package/dist/web/console/LeaderForwardingSink.js +197 -0
- package/dist/web/console/SessionNames.d.ts +46 -0
- package/dist/web/console/SessionNames.d.ts.map +1 -0
- package/dist/web/console/SessionNames.js +257 -0
- package/dist/web/console/UnifiedConsole.d.ts +64 -0
- package/dist/web/console/UnifiedConsole.d.ts.map +1 -0
- package/dist/web/console/UnifiedConsole.js +119 -0
- package/dist/web/contentPipeline.d.ts +58 -0
- package/dist/web/contentPipeline.d.ts.map +1 -0
- package/dist/web/contentPipeline.js +112 -0
- package/dist/web/portDiscovery.d.ts +58 -0
- package/dist/web/portDiscovery.d.ts.map +1 -0
- package/dist/web/portDiscovery.js +143 -0
- package/dist/web/public/app.js +148 -60
- package/dist/web/public/logs.js +638 -0
- package/dist/web/public/metrics.js +682 -0
- package/dist/web/public/permissions.js +394 -0
- package/dist/web/public/sessions.js +369 -0
- package/dist/web/routes/healthRoutes.d.ts +16 -0
- package/dist/web/routes/healthRoutes.d.ts.map +1 -0
- package/dist/web/routes/healthRoutes.js +29 -0
- package/dist/web/routes/logRoutes.d.ts +18 -0
- package/dist/web/routes/logRoutes.d.ts.map +1 -0
- package/dist/web/routes/logRoutes.js +126 -0
- package/dist/web/routes/metricsRoutes.d.ts +17 -0
- package/dist/web/routes/metricsRoutes.d.ts.map +1 -0
- package/dist/web/routes/metricsRoutes.js +90 -0
- package/dist/web/routes/permissionRoutes.d.ts +16 -0
- package/dist/web/routes/permissionRoutes.d.ts.map +1 -0
- package/dist/web/routes/permissionRoutes.js +133 -0
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +309 -339
- package/dist/web/server.d.ts +21 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +42 -4
- package/dist/web/sinks/WebSSELogSink.d.ts +15 -0
- package/dist/web/sinks/WebSSELogSink.d.ts.map +1 -0
- package/dist/web/sinks/WebSSELogSink.js +22 -0
- package/dist/web/sinks/WebSSEMetricsSink.d.ts +16 -0
- package/dist/web/sinks/WebSSEMetricsSink.d.ts.map +1 -0
- package/dist/web/sinks/WebSSEMetricsSink.js +23 -0
- package/package.json +2 -2
- package/server.json +2 -2
- package/dist/constants/version.d.ts +0 -3
- package/dist/constants/version.d.ts.map +0 -1
- package/dist/constants/version.js +0 -4
- package/dist/logging/sinks/SSELogSink.d.ts +0 -35
- package/dist/logging/sinks/SSELogSink.d.ts.map +0 -1
- package/dist/logging/sinks/SSELogSink.js +0 -181
- package/dist/logging/viewer/viewerHtml.d.ts +0 -8
- package/dist/logging/viewer/viewerHtml.d.ts.map +0 -1
- package/dist/logging/viewer/viewerHtml.js +0 -204
- package/dist/web/public/public/app.js +0 -1878
|
@@ -1172,6 +1172,23 @@ export const GATEKEEPER_SCHEMAS = {
|
|
|
1172
1172
|
'{ operation: "permission_prompt", params: { tool_name: "Edit", input: { file_path: "src/index.ts", old_string: "...", new_string: "..." } } }',
|
|
1173
1173
|
],
|
|
1174
1174
|
},
|
|
1175
|
+
// Permission evaluation for PreToolUse hooks (all platforms)
|
|
1176
|
+
evaluate_permission: {
|
|
1177
|
+
endpoint: 'READ',
|
|
1178
|
+
handler: 'mcpAqlHandler',
|
|
1179
|
+
method: 'dispatchGatekeeper',
|
|
1180
|
+
description: 'Evaluate CLI permission for a tool via HTTP/hook. Returns platform-formatted response (claude_code, gemini, cursor, windsurf, codex). Alternative to permission_prompt for interactive sessions using PreToolUse hooks.',
|
|
1181
|
+
params: {
|
|
1182
|
+
tool_name: { type: 'string', required: true, description: 'The tool requesting permission (e.g., "Bash", "Edit", "Write")' },
|
|
1183
|
+
input: { type: 'object', description: 'The tool input parameters to evaluate' },
|
|
1184
|
+
platform: { type: 'string', description: 'Target platform for response formatting (default: "claude_code"). Options: claude_code, gemini, cursor, windsurf, codex' },
|
|
1185
|
+
},
|
|
1186
|
+
returns: { name: 'PlatformPermissionDecision', kind: 'object', description: 'Platform-formatted permission decision. Claude Code: { decision: "allow"|"deny"|"ask", reason? }. Gemini: { decision: "allow"|"deny", reason? }. Cursor: { permission: "allow"|"deny"|"ask", reason? }. Windsurf: { allowed: boolean, reason? }. Codex: { hookSpecificOutput: { permissionDecision, reason? } }.' },
|
|
1187
|
+
examples: [
|
|
1188
|
+
'{ operation: "evaluate_permission", params: { tool_name: "Bash", input: { command: "git status" } } }',
|
|
1189
|
+
'{ operation: "evaluate_permission", params: { tool_name: "Bash", input: { command: "git push --force" }, platform: "claude_code" } }',
|
|
1190
|
+
],
|
|
1191
|
+
},
|
|
1175
1192
|
// Issue #625 Phase 2: CLI policy visibility
|
|
1176
1193
|
get_effective_cli_policies: {
|
|
1177
1194
|
endpoint: 'READ',
|
|
@@ -1254,6 +1271,39 @@ export const LOGGING_SCHEMAS = {
|
|
|
1254
1271
|
},
|
|
1255
1272
|
};
|
|
1256
1273
|
// ============================================================================
|
|
1274
|
+
// Metrics Operations Schema (Introspection-Only)
|
|
1275
|
+
// ============================================================================
|
|
1276
|
+
/**
|
|
1277
|
+
* Metrics collection query schema — introspection-only.
|
|
1278
|
+
*
|
|
1279
|
+
* Dispatched via MCPAQLHandler.dispatchMetrics() which routes to
|
|
1280
|
+
* MemoryMetricsSink.query(). Follows the same pattern as query_logs.
|
|
1281
|
+
*/
|
|
1282
|
+
export const METRICS_SCHEMAS = {
|
|
1283
|
+
query_metrics: {
|
|
1284
|
+
endpoint: 'READ',
|
|
1285
|
+
handler: 'mcpAqlHandler',
|
|
1286
|
+
method: 'dispatchMetrics',
|
|
1287
|
+
description: 'Query collected metrics snapshots. Returns filtered, paginated results sorted newest-first. Supports filtering by metric name (prefix or exact), source, type, and time range.',
|
|
1288
|
+
params: {
|
|
1289
|
+
names: { type: 'string[]', description: "Metric name filters. Exact match or prefix match with trailing '.' or '.*' (e.g., 'system.memory.*')" },
|
|
1290
|
+
source: { type: 'string', description: 'Collector source filter (case-insensitive substring match)' },
|
|
1291
|
+
type: { type: 'string', description: "Metric type filter: 'counter', 'gauge', or 'histogram'" },
|
|
1292
|
+
since: { type: 'string', description: 'ISO 8601 timestamp — return snapshots after this time' },
|
|
1293
|
+
until: { type: 'string', description: 'ISO 8601 timestamp — return snapshots before this time' },
|
|
1294
|
+
latest: { type: 'boolean', description: 'If true (default), return only the most recent snapshot. Set false for historical range queries' },
|
|
1295
|
+
limit: { type: 'number', description: 'Max snapshots to return (1-100, default 1)' },
|
|
1296
|
+
offset: { type: 'number', description: 'Number of snapshots to skip for pagination (default 0)' },
|
|
1297
|
+
},
|
|
1298
|
+
returns: { name: 'MetricQueryResult', kind: 'object', description: 'Metric snapshots: { _type: "MetricQueryResult", snapshots, total, hasMore, oldestAvailable, newestAvailable }' },
|
|
1299
|
+
examples: [
|
|
1300
|
+
'{ operation: "query_metrics" }',
|
|
1301
|
+
'{ operation: "query_metrics", params: { names: ["system.memory.*"], type: "gauge" } }',
|
|
1302
|
+
'{ operation: "query_metrics", params: { latest: false, limit: 10, since: "2026-01-01T00:00:00Z" } }',
|
|
1303
|
+
],
|
|
1304
|
+
},
|
|
1305
|
+
};
|
|
1306
|
+
// ============================================================================
|
|
1257
1307
|
// Activation Operations Schema (Introspection-Only)
|
|
1258
1308
|
// ============================================================================
|
|
1259
1309
|
/**
|
|
@@ -1425,6 +1475,7 @@ export const INTROSPECTION_ONLY_SCHEMAS = {
|
|
|
1425
1475
|
...EXECUTION_SCHEMAS,
|
|
1426
1476
|
...GATEKEEPER_SCHEMAS,
|
|
1427
1477
|
...LOGGING_SCHEMAS,
|
|
1478
|
+
...METRICS_SCHEMAS,
|
|
1428
1479
|
...ACTIVATION_SCHEMAS,
|
|
1429
1480
|
...SEARCH_SCHEMAS,
|
|
1430
1481
|
...BROWSER_SCHEMAS,
|
|
@@ -1494,4 +1545,4 @@ export function getAllSchemaOperations() {
|
|
|
1494
1545
|
export function getAllOperationSchemas() {
|
|
1495
1546
|
return ALL_OPERATION_SCHEMAS;
|
|
1496
1547
|
}
|
|
1497
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hhbmRsZXJzL21jcC1hcWwvT3BlcmF0aW9uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUF3S0gsK0VBQStFO0FBQy9FLGtEQUFrRDtBQUNsRCwrRUFBK0U7QUFFL0U7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXVCO0lBQ3ZELGlCQUFpQixFQUFFO1FBQ2pCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixXQUFXLEVBQUUsa0VBQWtFO1FBQy9FLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUU7WUFDeEUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUU7U0FDN0Q7UUFDRCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsMENBQTBDLEVBQUU7UUFDcEgsUUFBUSxFQUFFLENBQUMscUVBQXFFLENBQUM7S0FDbEY7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsV0FBVyxFQUFFLDBEQUEwRDtRQUN2RSxRQUFRLEVBQUUsSUFBSTtRQUNkLE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFO1NBQ3ZFO1FBQ0QsT0FB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R0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8sd0JBQXdCLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTyxxQkFBcUIsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcGVyYXRpb25TY2hlbWEgLSBEZWNsYXJhdGl2ZSBvcGVyYXRpb24gZGVmaW5pdGlvbnMgZm9yIE1DUC1BUUxcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBzY2hlbWEtZHJpdmVuIG9wZXJhdGlvbiBkZWZpbml0aW9ucyB0aGF0IGVuYWJsZTpcbiAqIDEuIERlY2xhcmF0aXZlIG9wZXJhdGlvbiBjb25maWd1cmF0aW9uIChubyBtYW51YWwgc3dpdGNoIHN0YXRlbWVudHMpXG4gKiAyLiBBdXRvLWdlbmVyYXRlZCBwYXJhbWV0ZXIgdmFsaWRhdGlvblxuICogMy4gVHlwZS1zYWZlIGRpc3BhdGNoIHRvIGhhbmRsZXIgbWV0aG9kc1xuICogNC4gU2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3Igb3BlcmF0aW9uIG1ldGFkYXRhXG4gKlxuICogQVJDSElURUNUVVJFOlxuICogT3BlcmF0aW9ucyBhcmUgZGVmaW5lZCB3aXRoOlxuICogLSBlbmRwb2ludDogQ1JVREUgZW5kcG9pbnQgKENSRUFURSwgUkVBRCwgVVBEQVRFLCBERUxFVEUsIEVYRUNVVEUpXG4gKiAtIGhhbmRsZXI6IEtleSBpbiBIYW5kbGVyUmVnaXN0cnlcbiAqIC0gbWV0aG9kOiBNZXRob2QgbmFtZSBvbiB0aGUgaGFuZGxlclxuICogLSBwYXJhbXM6IFBhcmFtZXRlciBkZWZpbml0aW9ucyB3aXRoIHR5cGVzIGFuZCBtYXBwaW5nc1xuICogLSBkZXNjcmlwdGlvbjogSHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb25cbiAqXG4gKiBUaGUgU2NoZW1hRGlzcGF0Y2hlciB1c2VzIHRoZXNlIGRlZmluaXRpb25zIHRvIGF1dG9tYXRpY2FsbHkgcm91dGVcbiAqIG9wZXJhdGlvbnMgdG8gaGFuZGxlciBtZXRob2RzIHdpdGhvdXQgbWFudWFsIGRpc3BhdGNoIGNvZGUuXG4gKlxuICogQHNlZSBJc3N1ZSAjMjQ3IC0gU2NoZW1hLWRyaXZlbiBvcGVyYXRpb24gZGVmaW5pdGlvbnNcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENSVURFbmRwb2ludCB9IGZyb20gJy4vT3BlcmF0aW9uUm91dGVyLmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUGFyYW1ldGVyIFNjaGVtYSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFByaW1pdGl2ZSB0eXBlcyBzdXBwb3J0ZWQgaW4gcGFyYW1ldGVyIHNjaGVtYXNcbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1UeXBlID1cbiAgfCAnc3RyaW5nJ1xuICB8ICdudW1iZXInXG4gIHwgJ2Jvb2xlYW4nXG4gIHwgJ29iamVjdCdcbiAgfCAnYXJyYXknXG4gIHwgJ3N0cmluZ1tdJ1xuICB8ICdzdHJpbmcgfCBzdHJpbmdbXScgLy8gVW5pb24gdHlwZSBmb3IgZmllbGRzIHRoYXQgYWNjZXB0IHByZXNldCBzdHJpbmcgb3IgYXJyYXlcbiAgfCAndW5rbm93bic7IC8vIEZvciBwYXJhbXMgdGhhdCBhY2NlcHQgYW55IHR5cGVcblxuLyoqXG4gKiBQYXJhbWV0ZXIgZGVmaW5pdGlvbiBpbiBvcGVyYXRpb24gc2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1EZWYge1xuICAvKiogUGFyYW1ldGVyIHR5cGUgZm9yIHZhbGlkYXRpb24gKi9cbiAgdHlwZTogUGFyYW1UeXBlO1xuICAvKiogV2hldGhlciB0aGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKiogRGVmYXVsdCB2YWx1ZSBpZiBub3QgcHJvdmlkZWQgKi9cbiAgZGVmYXVsdD86IHVua25vd247XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIE1hcHMgaW5wdXQgcGFyYW0gbmFtZSB0byBoYW5kbGVyIGFyZyBuYW1lIChpZiBkaWZmZXJlbnQpICovXG4gIG1hcFRvPzogc3RyaW5nO1xuICAvKipcbiAgICogQWx0ZXJuYXRpdmUgc291cmNlcyB0byBjaGVjayBmb3IgdGhpcyBwYXJhbWV0ZXIgdmFsdWUuXG4gICAqIENoZWNrZWQgaW4gb3JkZXIgYmVmb3JlIGZhbGxpbmcgYmFjayB0byB0aGUgcHJpbWFyeSBwYXJhbSBuYW1lLlxuICAgKlxuICAgKiBTdXBwb3J0cyBkb3Qgbm90YXRpb24gZm9yIG5lc3RlZCBhY2Nlc3M6XG4gICAqIC0gJ2lucHV0LmVsZW1lbnRUeXBlJyAtIGNoZWNrcyBpbnB1dC5lbGVtZW50VHlwZVxuICAgKiAtICdwYXJhbXMudHlwZScgLSBjaGVja3MgcGFyYW1zLnR5cGUgKHNhbWUgYXMganVzdCBjaGVja2luZyB0aGUgcGFyYW0pXG4gICAqXG4gICAqIFVzZSBjYXNlOiBlbGVtZW50VHlwZSBjYW4gY29tZSBmcm9tIGlucHV0LmVsZW1lbnRUeXBlIE9SIHBhcmFtcy50eXBlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLnR5cGUnXSB9XG4gICAqL1xuICBzb3VyY2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZGVmaW5pdGlvbiBmb3IgaW50cm9zcGVjdGlvblxuICogQHNlZSBJc3N1ZSAjMjU0IC0gQXV0by1nZW5lcmF0ZSBpbnRyb3NwZWN0aW9uIGZyb20gc2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0dXJuVHlwZURlZiB7XG4gIC8qKiBSZXR1cm4gdHlwZSBuYW1lIChlLmcuLCAnRWxlbWVudExpc3QnLCAnU2VhcmNoUmVzdWx0JykgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVHlwZSBraW5kIGZvciBjYXRlZ29yaXphdGlvbiAqL1xuICBraW5kOiAnZW51bScgfCAnb2JqZWN0JyB8ICdzY2FsYXInIHwgJ3VuaW9uJztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgaXMgcmV0dXJuZWQgKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXIgc2NoZW1hIC0gbWFwIG9mIHBhcmFtZXRlciBuYW1lcyB0byBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgdHlwZSBQYXJhbVNjaGVtYSA9IFJlY29yZDxzdHJpbmcsIFBhcmFtRGVmPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3BlcmF0aW9uIFNjaGVtYSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEhhbmRsZXIga2V5cyAtIHRoZXNlIG1hcCB0byBwcm9wZXJ0aWVzIGluIEhhbmRsZXJSZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBIYW5kbGVyS2V5ID1cbiAgfCAnZWxlbWVudENSVUQnXG4gIHwgJ21lbW9yeU1hbmFnZXInXG4gIHwgJ2FnZW50TWFuYWdlcidcbiAgfCAndGVtcGxhdGVSZW5kZXJlcidcbiAgfCAnZWxlbWVudFF1ZXJ5U2VydmljZSdcbiAgfCAnY29sbGVjdGlvbkhhbmRsZXInXG4gIHwgJ3BvcnRmb2xpb0hhbmRsZXInXG4gIHwgJ2F1dGhIYW5kbGVyJ1xuICB8ICdjb25maWdIYW5kbGVyJ1xuICB8ICdlbmhhbmNlZEluZGV4SGFuZGxlcidcbiAgfCAncGVyc29uYUhhbmRsZXInXG4gIHwgJ3N5bmNIYW5kbGVyJ1xuICB8ICdidWlsZEluZm9TZXJ2aWNlJ1xuICB8ICdtY3BBcWxIYW5kbGVyJ1xuICB8ICdjYWNoZU1lbW9yeUJ1ZGdldCc7XG5cbi8qKlxuICogQ29tcGxldGUgb3BlcmF0aW9uIHNjaGVtYSBkZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uRGVmIHtcbiAgLyoqIENSVURFIGVuZHBvaW50IHRoaXMgb3BlcmF0aW9uIGJlbG9uZ3MgdG8gKi9cbiAgZW5kcG9pbnQ6IENSVURFbmRwb2ludDtcbiAgLyoqIEhhbmRsZXIga2V5IGluIEhhbmRsZXJSZWdpc3RyeSAqL1xuICBoYW5kbGVyOiBIYW5kbGVyS2V5O1xuICAvKiogTWV0aG9kIG5hbWUgdG8gY2FsbCBvbiB0aGUgaGFuZGxlciAqL1xuICBtZXRob2Q6IHN0cmluZztcbiAgLyoqIFBhcmFtZXRlciBkZWZpbml0aW9ucyAqL1xuICBwYXJhbXM/OiBQYXJhbVNjaGVtYTtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBoYW5kbGVyIGlzIG9wdGlvbmFsIChtYXkgbm90IGJlIGNvbmZpZ3VyZWQpICovXG4gIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1c3RvbSBhcmd1bWVudCBidWlsZGVyIGZvciBjb21wbGV4IGNhc2VzOlxuICAgKiAtICdzaW5nbGUnOiBQYXNzIHBhcmFtcyBpbiBzY2hlbWEgb3JkZXIgYXMgcG9zaXRpb25hbCBhcmdzIChkZWZhdWx0KVxuICAgKiAtICdzcHJlYWQnOiBQYXNzIChxdWVyeSwgcGFyYW1zKSAtIGZvciBzZWFyY2gtc3R5bGUgb3BlcmF0aW9uc1xuICAgKiAtICduYW1lZCc6IFBhc3MgYWxsIHBhcmFtcyBhcyBhIHNpbmdsZSBuYW1lZCBvYmplY3RcbiAgICogLSAnbmFtZWRXaXRoVHlwZSc6IExpa2UgJ25hbWVkJyBidXQgaW5jbHVkZXMgcmVzb2x2ZWQgJ3R5cGUnIHBhcmFtXG4gICAqIC0gJ3R5cGVXaXRoUGFyYW1zJzogUGFzcyAodHlwZSwgZnVsbFBhcmFtcykgZm9yIG9wZXJhdGlvbnMgbmVlZGluZyB0eXBlICsgcGFnaW5hdGlvblxuICAgKi9cbiAgYXJnQnVpbGRlcj86ICdzaW5nbGUnIHwgJ3NwcmVhZCcgfCAnbmFtZWQnIHwgJ25hbWVkV2l0aFR5cGUnIHwgJ3R5cGVXaXRoUGFyYW1zJztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBvcGVyYXRpb24gbmVlZHMgYWNjZXNzIHRvIHRoZSBmdWxsIE9wZXJhdGlvbklucHV0LlxuICAgKiBXaGVuIHRydWUsIFNjaGVtYURpc3BhdGNoZXIgcGFzc2VzIHRoZSBmdWxsIGlucHV0IGZvciBzb3VyY2UgcmVzb2x1dGlvbi5cbiAgICogUmVxdWlyZWQgZm9yIG9wZXJhdGlvbnMgdGhhdCB1c2UgcGFyYW0gc291cmNlcyBsaWtlICdpbnB1dC5lbGVtZW50VHlwZScuXG4gICAqL1xuICBuZWVkc0Z1bGxJbnB1dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBdXRvbWF0aWMgcGFyYW1ldGVyIG5hbWUgY29udmVyc2lvbiBzdHlsZS5cbiAgICogLSAnc25ha2VUb0NhbWVsJzogQ29udmVydCBzbmFrZV9jYXNlIHBhcmFtcyB0byBjYW1lbENhc2UgZm9yIGhhbmRsZXJcbiAgICpcbiAgICogV2hlbiBzZXQsIGFsbCBwYXJhbXMgYXJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIGJlZm9yZSBiZWluZyBwYXNzZWRcbiAgICogdG8gdGhlIGhhbmRsZXIuIEluZGl2aWR1YWwgcGFyYW0gYG1hcFRvYCBvdmVycmlkZXMgc3RpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBJbnB1dDogeyBkcnlfcnVuOiB0cnVlLCBtYXhfcmVzdWx0czogMTAgfVxuICAgKiAvLyBIYW5kbGVyIHJlY2VpdmVzOiB7IGRyeVJ1bjogdHJ1ZSwgbWF4UmVzdWx0czogMTAgfVxuICAgKi9cbiAgcGFyYW1TdHlsZT86ICdzbmFrZVRvQ2FtZWwnO1xuICAvKipcbiAgICogUmV0dXJuIHR5cGUgaW5mb3JtYXRpb24gZm9yIGludHJvc3BlY3Rpb25cbiAgICogQHNlZSBJc3N1ZSAjMjU0IC0gQXV0by1nZW5lcmF0ZSBpbnRyb3NwZWN0aW9uIGZyb20gc2NoZW1hXG4gICAqL1xuICByZXR1cm5zPzogUmV0dXJuVHlwZURlZjtcbiAgLyoqXG4gICAqIFVzYWdlIGV4YW1wbGVzIGZvciBpbnRyb3NwZWN0aW9uXG4gICAqIEBzZWUgSXNzdWUgIzI1NCAtIEF1dG8tZ2VuZXJhdGUgaW50cm9zcGVjdGlvbiBmcm9tIHNjaGVtYVxuICAgKi9cbiAgZXhhbXBsZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE5vcm1hbGl6ZXIgdG8gdXNlIGZvciBwYXJhbWV0ZXIgdHJhbnNmb3JtYXRpb24uXG4gICAqXG4gICAqIElmIHNwZWNpZmllZCwgdGhlIG5vcm1hbGl6ZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGUgaGFuZGxlciBtZXRob2QsXG4gICAqIHRyYW5zZm9ybWluZyByYXcgaW5wdXQgcGFyYW1ldGVycyBpbnRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGhhbmRsZXIuXG4gICAqXG4gICAqIE5vcm1hbGl6ZXJzIGFyZSByZWdpc3RlcmVkIGluIE5vcm1hbGl6ZXJSZWdpc3RyeSBhbmQgbG9va2VkIHVwIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBzZWUgSXNzdWUgIzI0MyAtIFNjaGVtYS1kcml2ZW4gbm9ybWFsaXplciBhcmNoaXRlY3R1cmVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gVXNlIHRoZSBzZWFyY2ggcGFyYW1zIG5vcm1hbGl6ZXJcbiAgICogbm9ybWFsaXplcjogJ3NlYXJjaFBhcmFtcydcbiAgICovXG4gIG5vcm1hbGl6ZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29tcGxldGUgb3BlcmF0aW9uIHNjaGVtYSAtIG1hcHMgb3BlcmF0aW9uIG5hbWVzIHRvIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIE9wZXJhdGlvblNjaGVtYU1hcCA9IFJlY29yZDxzdHJpbmcsIE9wZXJhdGlvbkRlZj47XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbGxlY3Rpb24gT3BlcmF0aW9ucyBTY2hlbWEgKFByb29mIG9mIENvbmNlcHQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvcGVyYXRpb25zIHNjaGVtYVxuICpcbiAqIFRoZXNlIGFyZSB0aGUgZmlyc3Qgb3BlcmF0aW9ucyBtaWdyYXRlZCB0byBzY2hlbWEtZHJpdmVuIGRpc3BhdGNoLlxuICogRWFjaCBvcGVyYXRpb24gZGVmaW5lczpcbiAqIC0gV2hlcmUgaXQgbGl2ZXMgKGVuZHBvaW50KVxuICogLSBXaGF0IGhhbmRsZXIgdG8gdXNlXG4gKiAtIFdoYXQgbWV0aG9kIHRvIGNhbGxcbiAqIC0gV2hhdCBwYXJhbWV0ZXJzIGl0IGFjY2VwdHNcbiAqL1xuZXhwb3J0IGNvbnN0IENPTExFQ1RJT05fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBicm93c2VfY29sbGVjdGlvbjoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdicm93c2VDb2xsZWN0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jyb3dzZSB0aGUgRG9sbGhvdXNlTUNQIGNvbW11bml0eSBjb2xsZWN0aW9uIGJ5IHNlY3Rpb24gYW5kIHR5cGUnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgc2VjdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDb2xsZWN0aW9uIHNlY3Rpb24gdG8gYnJvd3NlJyB9LFxuICAgICAgdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUgZmlsdGVyJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29sbGVjdGlvbkJyb3dzZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0Jyb3dzZWFibGUgY29sbGVjdGlvbiBzZWN0aW9ucyBhbmQgaXRlbXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiYnJvd3NlX2NvbGxlY3Rpb25cIiwgcGFyYW1zOiB7IHNlY3Rpb246IFwicGVyc29uYXNcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2NvbGxlY3Rpb246IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQ29sbGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTZWFyY2ggdGhlIGNvbW11bml0eSBjb2xsZWN0aW9uIGZvciBlbGVtZW50cyBieSBrZXl3b3JkcycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBxdWVyeTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHF1ZXJ5JyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29sbGVjdGlvblNlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ01hdGNoaW5nIGVsZW1lbnRzIGZyb20gY29sbGVjdGlvbicgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzZWFyY2hfY29sbGVjdGlvblwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY29kZSByZXZpZXdcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2NvbGxlY3Rpb25fZW5oYW5jZWQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQ29sbGVjdGlvbkVuaGFuY2VkJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FkdmFuY2VkIHNlYXJjaCB3aXRoIHBhZ2luYXRpb24sIGZpbHRlcmluZywgYW5kIHNvcnRpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICdzcHJlYWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VuaGFuY2VkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIHNlYXJjaCByZXN1bHRzIHdpdGggbWV0YWRhdGEnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwic2VhcmNoX2NvbGxlY3Rpb25fZW5oYW5jZWRcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImFzc2lzdGFudFwiLCBsaW1pdDogMTAgfSB9J10sXG4gIH0sXG4gIGdldF9jb2xsZWN0aW9uX2NvbnRlbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZ2V0Q29sbGVjdGlvbkNvbnRlbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGNvbnRlbnQgZnJvbSB0aGUgY29sbGVjdGlvbicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250ZW50IHBhdGggaW4gY29sbGVjdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NvbGxlY3Rpb25Db250ZW50Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRnVsbCBjb250ZW50IGFuZCBtZXRhZGF0YSBmb3IgY29sbGVjdGlvbiBpdGVtJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9jb2xsZWN0aW9uX2NvbnRlbnRcIiwgcGFyYW1zOiB7IHBhdGg6IFwicGVyc29uYXMvY3JlYXRpdmUtd3JpdGVyLm1kXCIgfSB9J10sXG4gIH0sXG4gIGdldF9jb2xsZWN0aW9uX2NhY2hlX2hlYWx0aDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdnZXRDb2xsZWN0aW9uQ2FjaGVIZWFsdGgnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGhlYWx0aCBzdGF0dXMgYW5kIHN0YXRpc3RpY3MgZm9yIHRoZSBjb2xsZWN0aW9uIGNhY2hlJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NhY2hlSGVhbHRoU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ2FjaGUgaGVhbHRoIG1ldHJpY3MgYW5kIGRpYWdub3N0aWNzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9jb2xsZWN0aW9uX2NhY2hlX2hlYWx0aFwiIH0nXSxcbiAgfSxcbiAgaW5zdGFsbF9jb2xsZWN0aW9uX2NvbnRlbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdpbnN0YWxsQ29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdJbnN0YWxsIGFuIGVsZW1lbnQgZnJvbSB0aGUgY29sbGVjdGlvbiB0byB5b3VyIGxvY2FsIHBvcnRmb2xpbycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250ZW50IHBhdGggdG8gaW5zdGFsbCcgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0luc3RhbGxSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbnN0YWxsYXRpb24gcmVzdWx0IHdpdGggZWxlbWVudCBuYW1lLCB0eXBlLCBhbmQgbG9jYWwgZmlsZSBwYXRoJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImluc3RhbGxfY29sbGVjdGlvbl9jb250ZW50XCIsIHBhcmFtczogeyBwYXRoOiBcInBlcnNvbmFzL2NyZWF0aXZlLXdyaXRlci5tZFwiIH0gfSddLFxuICB9LFxuICBzdWJtaXRfY29sbGVjdGlvbl9jb250ZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc3VibWl0Q29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdTdWJtaXQgYSBsb2NhbCBlbGVtZW50IHRvIHRoZSBjb21tdW5pdHkgY29sbGVjdGlvbiB2aWEgR2l0SHViJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGNvbnRlbnQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbnRlbnQgdG8gc3VibWl0JyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU3VibWl0UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3VibWlzc2lvbiByZXN1bHQgd2l0aCBHaXRIdWIgUFIgVVJMIGFuZCBzdGF0dXMgbWVzc2FnZScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzdWJtaXRfY29sbGVjdGlvbl9jb250ZW50XCIsIHBhcmFtczogeyBjb250ZW50OiBcInBlcnNvbmFzL215LXBlcnNvbmFcIiB9IH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEF1dGggT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IEFVVEhfT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBzZXR1cF9naXRodWJfYXV0aDoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAnYXV0aEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ3NldHVwR2l0SHViQXV0aCcsXG4gICAgZGVzY3JpcHRpb246ICdTZXQgdXAgR2l0SHViIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGRldmljZSBmbG93JyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0F1dGhTZXR1cFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0RldmljZSBmbG93IHNldHVwOiB7IHVzZXJDb2RlLCB2ZXJpZmljYXRpb25VcmwsIGV4cGlyZXNJbiwgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcInNldHVwX2dpdGh1Yl9hdXRoXCIgfSddLFxuICB9LFxuICBjaGVja19naXRodWJfYXV0aDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdjaGVja0dpdEh1YkF1dGgnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgY3VycmVudCBHaXRIdWIgYXV0aGVudGljYXRpb24gc3RhdHVzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0F1dGhTdGF0dXMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDdXJyZW50IGF1dGhlbnRpY2F0aW9uIHN0YXRlIGFuZCB1c2VyIGluZm8nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiY2hlY2tfZ2l0aHViX2F1dGhcIiB9J10sXG4gIH0sXG4gIGNsZWFyX2dpdGh1Yl9hdXRoOiB7XG4gICAgZW5kcG9pbnQ6ICdERUxFVEUnLFxuICAgIGhhbmRsZXI6ICdhdXRoSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnY2xlYXJHaXRIdWJBdXRoJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlbW92ZSBHaXRIdWIgYXV0aGVudGljYXRpb24gYW5kIGRpc2Nvbm5lY3QnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge30sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnT3BlcmF0aW9uUmVzdWx0Jywga2luZDogJ3VuaW9uJywgZGVzY3JpcHRpb246ICdTdWNjZXNzIG9yIGZhaWx1cmUgc3RhdHVzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImNsZWFyX2dpdGh1Yl9hdXRoXCIgfSddLFxuICB9LFxuICBjb25maWd1cmVfb2F1dGg6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdjb25maWd1cmVPQXV0aCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maWd1cmUgR2l0SHViIE9BdXRoIGNsaWVudCBJRCcsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBjbGllbnRfaWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnT0F1dGggY2xpZW50IElEJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnT0F1dGhDb25maWcnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdPQXV0aCBjb25maWd1cmF0aW9uIHN0YXR1cycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJjb25maWd1cmVfb2F1dGhcIiwgcGFyYW1zOiB7IGNsaWVudF9pZDogXCJ5b3VyLWNsaWVudC1pZFwiIH0gfSddLFxuICB9LFxuICBvYXV0aF9oZWxwZXJfc3RhdHVzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnYXV0aEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2dldE9BdXRoSGVscGVyU3RhdHVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBkaWFnbm9zdGljIGluZm9ybWF0aW9uIGFib3V0IE9BdXRoIGhlbHBlciBwcm9jZXNzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHZlcmJvc2U6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0luY2x1ZGUgdmVyYm9zZSBkaWFnbm9zdGljcycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ09BdXRoSGVscGVyU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnSGVscGVyIHByb2Nlc3MgZGlhZ25vc3RpY3MnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwib2F1dGhfaGVscGVyX3N0YXR1c1wiLCBwYXJhbXM6IHsgdmVyYm9zZTogdHJ1ZSB9IH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVuaGFuY2VkIEluZGV4IE9wZXJhdGlvbnMgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBFTkhBTkNFRF9JTkRFWF9PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGZpbmRfc2ltaWxhcl9lbGVtZW50czoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VuaGFuY2VkSW5kZXhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdmaW5kU2ltaWxhckVsZW1lbnRzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbmQgc2VtYW50aWNhbGx5IHNpbWlsYXIgZWxlbWVudHMgdXNpbmcgTkxQIHNjb3JpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXBUbzogJ2VsZW1lbnRUeXBlJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDEwIH0sXG4gICAgICB0aHJlc2hvbGQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDAuNSB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU2ltaWxhckVsZW1lbnRzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnTGlzdCBvZiBzaW1pbGFyIGVsZW1lbnRzIHdpdGggc2ltaWxhcml0eSBzY29yZXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZmluZF9zaW1pbGFyX2VsZW1lbnRzXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY3JlYXRpdmUtd3JpdGVyXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIGxpbWl0OiA1IH0gfSddLFxuICB9LFxuICBnZXRfZWxlbWVudF9yZWxhdGlvbnNoaXBzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZW5oYW5jZWRJbmRleEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2dldEVsZW1lbnRSZWxhdGlvbnNoaXBzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbGwgcmVsYXRpb25zaGlwcyBmb3IgYSBzcGVjaWZpYyBlbGVtZW50JyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgbWFwVG86ICdlbGVtZW50VHlwZScgfSxcbiAgICAgIHJlbGF0aW9uc2hpcF90eXBlczogeyB0eXBlOiAnc3RyaW5nW10nLCBtYXBUbzogJ3JlbGF0aW9uc2hpcFR5cGVzJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudFJlbGF0aW9uc2hpcHMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdSZWxhdGlvbnNoaXAgZ3JhcGggZm9yIHRoZSBlbGVtZW50JyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9lbGVtZW50X3JlbGF0aW9uc2hpcHNcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiIH0gfSddLFxuICB9LFxuICBzZWFyY2hfYnlfdmVyYjoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VuaGFuY2VkSW5kZXhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzZWFyY2hCeVZlcmInLFxuICAgIGRlc2NyaXB0aW9uOiAnU2VhcmNoIGZvciBlbGVtZW50cyB0aGF0IGhhbmRsZSBhIHNwZWNpZmljIGFjdGlvbiB2ZXJiJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgdmVyYjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgIGxpbWl0OiB7IHR5cGU6ICdudW1iZXInLCBkZWZhdWx0OiAyMCB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnVmVyYlNlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnRzIG1hdGNoaW5nIHRoZSBhY3Rpb24gdmVyYicgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzZWFyY2hfYnlfdmVyYlwiLCBwYXJhbXM6IHsgdmVyYjogXCJhbmFseXplXCIsIGxpbWl0OiAxMCB9IH0nXSxcbiAgfSxcbiAgZ2V0X3JlbGF0aW9uc2hpcF9zdGF0czoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VuaGFuY2VkSW5kZXhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdnZXRSZWxhdGlvbnNoaXBTdGF0cycsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgc3RhdGlzdGljcyBhYm91dCBFbmhhbmNlZCBJbmRleCByZWxhdGlvbnNoaXBzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1JlbGF0aW9uc2hpcFN0YXRzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRlIHN0YXRpc3RpY3MgYWJvdXQgZWxlbWVudCByZWxhdGlvbnNoaXBzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9yZWxhdGlvbnNoaXBfc3RhdHNcIiB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZW1wbGF0ZSBPcGVyYXRpb25zIFNjaGVtYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgVEVNUExBVEVfT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICByZW5kZXI6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICd0ZW1wbGF0ZVJlbmRlcmVyJyxcbiAgICBtZXRob2Q6ICdyZW5kZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVuZGVyIGEgdGVtcGxhdGUgd2l0aCBwcm92aWRlZCB2YXJpYWJsZXMuIEZvciBzZWN0aW9uLWZvcm1hdCB0ZW1wbGF0ZXMgKDx0ZW1wbGF0ZT4sIDxzdHlsZT4sIDxzY3JpcHQ+KSwgcmVuZGVycyB0aGUgPHRlbXBsYXRlPiBzZWN0aW9uIGJ5IGRlZmF1bHQg4oCUIHZhcmlhYmxlIHN1YnN0aXR1dGlvbiBvbmx5IGFwcGxpZXMgdGhlcmUuIFVzZSBzZWN0aW9uOiBcInN0eWxlXCIgb3IgXCJzY3JpcHRcIiB0byByZXRyaWV2ZSByYXcgcGFzc3Rocm91Z2ggc2VjdGlvbnMgd2hlcmUgfX0gaXMgc2FmZS4nLFxuICAgIHBhcmFtczoge1xuICAgICAgLy8gSXNzdWUgIzI5MDogVXNlIGVsZW1lbnRfbmFtZSBmb3IgY29uc2lzdGVuY3lcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnVGVtcGxhdGUgbmFtZScgfSxcbiAgICAgIHZhcmlhYmxlczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdWYXJpYWJsZXMgdG8gc3Vic3RpdHV0ZSBpbiB0aGUgPHRlbXBsYXRlPiBzZWN0aW9uIChlLmcuIHsgXCJ0aXRsZVwiOiBcIk15IFBhZ2VcIiwgXCJ1c2VyXCI6IFwiQWxpY2VcIiB9KScgfSxcbiAgICAgIHNlY3Rpb246IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiBmYWxzZSwgZGVzY3JpcHRpb246ICdFeHRyYWN0IGEgc3BlY2lmaWMgcmF3IHNlY3Rpb24gd2l0aG91dCB2YXJpYWJsZSBzdWJzdGl0dXRpb246IFwic3R5bGVcIiBvciBcInNjcmlwdFwiLiBVc2VmdWwgZm9yIENTUyB0aGVtZSB0ZW1wbGF0ZXMgb3IgSlMtb25seSB0ZW1wbGF0ZXMuIE9ubHkgdmFsaWQgZm9yIHNlY3Rpb24tZm9ybWF0IHRlbXBsYXRlcy4nIH0sXG4gICAgICBhbGxfc2VjdGlvbnM6IHsgdHlwZTogJ2Jvb2xlYW4nLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnUmV0dXJuIGFsbCBzZWN0aW9ucyB0b2dldGhlcjogeyB0ZW1wbGF0ZTogcmVuZGVyZWQsIHN0eWxlOiByYXcsIHNjcmlwdDogcmF3IH0uIFVzZSB3aGVuIHlvdSBuZWVkIHRoZSByZW5kZXJlZCBIVE1MIGFsb25nc2lkZSBpdHMgQ1NTIGFuZCBKUy4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdSZW5kZXJSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdSZW5kZXJlZCB0ZW1wbGF0ZSBjb250ZW50LiBjb250ZW50IGZpZWxkIGhhcyB0aGUgcmVzdWx0IHN0cmluZzsgc2VjdGlvbnMgZmllbGQgcG9wdWxhdGVkIHdoZW4gYWxsX3NlY3Rpb25zOiB0cnVlLicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInJlbmRlclwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIm1lZXRpbmctbm90ZXNcIiwgdmFyaWFibGVzOiB7IGRhdGU6IFwiMjAyNC0wMS0xNVwiLCBhdHRlbmRlZXM6IFtcIkFsaWNlXCIsIFwiQm9iXCJdIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZW5kZXJcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJkYXNoYm9hcmQtdGhlbWUtZGFya1wiLCBzZWN0aW9uOiBcInN0eWxlXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZW5kZXJcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJkYXNoYm9hcmQtcGFnZVwiLCB2YXJpYWJsZXM6IHsgdGl0bGU6IFwiTXkgRGFzaGJvYXJkXCIgfSwgYWxsX3NlY3Rpb25zOiB0cnVlIH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEludHJvc3BlY3Rpb24gT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IElOVFJPU1BFQ1RJT05fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBpbnRyb3NwZWN0OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZWxlbWVudENSVUQnLCAvLyBVc2VzIEludHJvc3BlY3Rpb25SZXNvbHZlciBkaXJlY3RseVxuICAgIG1ldGhvZDogJ19faW50cm9zcGVjdF9fJywgLy8gU3BlY2lhbCBtYXJrZXIgZm9yIGludHJvc3BlY3Rpb25cbiAgICBkZXNjcmlwdGlvbjogJ1F1ZXJ5IGF2YWlsYWJsZSBvcGVyYXRpb25zLCB0eXBlcywgYW5kIGVsZW1lbnQgZm9ybWF0IHNwZWNzIGZvciBkaXNjb3ZlcnknLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogXCJXaGF0IHRvIGludHJvc3BlY3Q6ICdvcGVyYXRpb25zJyAobGlzdC9kZXRhaWwgb3BlcmF0aW9ucyksICd0eXBlcycgKGxpc3QvZGV0YWlsIHR5cGUgZGVmaW5pdGlvbnMpLCAnZm9ybWF0JyAoZWxlbWVudCBjcmVhdGlvbiBmb3JtYXQgc3BlY3Mg4oCUIHJlcXVpcmVkL29wdGlvbmFsIGZpZWxkcywgc3ludGF4LCBleGFtcGxlcyksICdjYXRlZ29yaWVzJyAoY2F0ZWdvcnkgZm9ybWF0IHJ1bGVzICsgaG93IHRvIGRpc2NvdmVyIGV4aXN0aW5nIGNhdGVnb3JpZXMgdmlhIHF1ZXJ5X2VsZW1lbnRzKS4gRGVmYXVsdDogJ29wZXJhdGlvbnMnXCIgfSxcbiAgICAgIG5hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiBcIlNwZWNpZmljIGl0ZW0gbmFtZS4gRm9yICdvcGVyYXRpb25zJzogb3BlcmF0aW9uIG5hbWUuIEZvciAndHlwZXMnOiB0eXBlIG5hbWUuIEZvciAnZm9ybWF0JzogZWxlbWVudCB0eXBlIChlLmcuICd0ZW1wbGF0ZScsICdwZXJzb25hJykuIE5vdCB1c2VkIGZvciAnY2F0ZWdvcmllcycuIE9taXQgZm9yIG92ZXJ2aWV3LlwiIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdJbnRyb3NwZWN0aW9uUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnT3BlcmF0aW9ucywgdHlwZXMsIG9yIGZvcm1hdCBzcGVjaWZpY2F0aW9uIGluZm9ybWF0aW9uJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwib3BlcmF0aW9uc1wiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwib3BlcmF0aW9uc1wiLCBuYW1lOiBcImNyZWF0ZV9lbGVtZW50XCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJpbnRyb3NwZWN0XCIsIHBhcmFtczogeyBxdWVyeTogXCJ0eXBlc1wiLCBuYW1lOiBcIkVsZW1lbnRUeXBlXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJpbnRyb3NwZWN0XCIsIHBhcmFtczogeyBxdWVyeTogXCJmb3JtYXRcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImludHJvc3BlY3RcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImZvcm1hdFwiLCBuYW1lOiBcInRlbXBsYXRlXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJpbnRyb3NwZWN0XCIsIHBhcmFtczogeyBxdWVyeTogXCJjYXRlZ29yaWVzXCIgfSB9JyxcbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUGVyc29uYSBPcGVyYXRpb25zIFNjaGVtYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgUEVSU09OQV9PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGltcG9ydF9wZXJzb25hOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdwZXJzb25hSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnaW1wb3J0UGVyc29uYScsXG4gICAgZGVzY3JpcHRpb246ICdJbXBvcnQgYSBwZXJzb25hIGZyb20gYSBmaWxlIHBhdGggb3IgSlNPTiBzdHJpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgc291cmNlOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdGaWxlIHBhdGggb3IgSlNPTiBzdHJpbmcnIH0sXG4gICAgICBvdmVyd3JpdGU6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ092ZXJ3cml0ZSBleGlzdGluZyBwZXJzb25hJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnSW1wb3J0UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnSW1wb3J0IHN0YXR1cyBhbmQgcGVyc29uYSBpbmZvJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImltcG9ydF9wZXJzb25hXCIsIHBhcmFtczogeyBzb3VyY2U6IFwiL3BhdGgvdG8vcGVyc29uYS5tZFwiLCBvdmVyd3JpdGU6IHRydWUgfSB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb25maWcgT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IENPTkZJR19PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGRvbGxob3VzZV9jb25maWc6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb25maWdIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdoYW5kbGVDb25maWdPcGVyYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnTWFuYWdlIERvbGxob3VzZU1DUCBjb25maWd1cmF0aW9uIHNldHRpbmdzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgYWN0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdnZXQsIHNldCwgcmVzZXQsIGV4cG9ydCwgaW1wb3J0LCB3aXphcmQnIH0sXG4gICAgICBzZXR0aW5nOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgc2VjdGlvbjogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgZm9ybWF0OiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBkYXRhOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDb25maWdSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maWd1cmF0aW9uIG9wZXJhdGlvbiByZXN1bHQnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJkb2xsaG91c2VfY29uZmlnXCIsIHBhcmFtczogeyBhY3Rpb246IFwiZ2V0XCIsIHNldHRpbmc6IFwiZGVidWdcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImRvbGxob3VzZV9jb25maWdcIiwgcGFyYW1zOiB7IGFjdGlvbjogXCJzZXRcIiwgc2V0dGluZzogXCJsb2dMZXZlbFwiLCB2YWx1ZTogXCJ2ZXJib3NlXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBjb252ZXJ0X3NraWxsX2Zvcm1hdDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbmZpZ0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ2NvbnZlcnRTa2lsbEZvcm1hdCcsXG4gICAgZGVzY3JpcHRpb246ICdDb252ZXJ0IGJldHdlZW4gY3VycmVudCBBZ2VudCBTa2lsbCBhbmQgRG9sbGhvdXNlIFNraWxsIGZvcm1hdHMgKGJvdGggZGlyZWN0aW9ucykgd2l0aCBzdHJ1Y3R1cmVkIHdhcm5pbmdzIGFuZCBvcHRpb25hbCByb3VuZHRyaXAgc3RhdGUgZm9yIGxvc3NsZXNzIHN1cHBvcnRlZC1maWVsZCByZXN0b3JhdGlvbicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGRpcmVjdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQ29udmVyc2lvbiBkaXJlY3Rpb246IGFnZW50X3RvX2RvbGxob3VzZSBvciBkb2xsaG91c2VfdG9fYWdlbnQnIH0sXG4gICAgICBhZ2VudF9za2lsbDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBZ2VudCBTa2lsbCBzdHJ1Y3R1cmUgZm9yIGFnZW50X3RvX2RvbGxob3VzZTogeyBcIlNLSUxMLm1kXCI6IFwiLi4uXCIsIFwic2NyaXB0cy9cIjogeyAuLi4gfSwgXCJyZWZlcmVuY2VzL1wiOiB7IC4uLiB9LCBcImFzc2V0cy9cIjogeyAuLi4gfSwgXCJhZ2VudHMvXCI6IHsgLi4uIH0gfScgfSxcbiAgICAgIGRvbGxob3VzZTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTdHJ1Y3R1cmVkIERvbGxob3VzZSBza2lsbCBhcnRpZmFjdCBmb3IgZG9sbGhvdXNlX3RvX2FnZW50OiB7IG1ldGFkYXRhLCBpbnN0cnVjdGlvbnMsIGNvbnRlbnQgfScgfSxcbiAgICAgIGRvbGxob3VzZV9tYXJrZG93bjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTZXJpYWxpemVkIERvbGxob3VzZSBtYXJrZG93biBpbnB1dCBmb3IgZG9sbGhvdXNlX3RvX2FnZW50IChhbHRlcm5hdGl2ZSB0byBkb2xsaG91c2Ugb2JqZWN0KScgfSxcbiAgICAgIHJvdW5kdHJpcF9zdGF0ZTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdPcHRpb25hbCBzdGF0ZSByZXR1cm5lZCBieSBhZ2VudF90b19kb2xsaG91c2UgZm9yIGV4YWN0IHJldmVyc2UgY29udmVyc2lvbicgfSxcbiAgICAgIHByZWZlcl9yb3VuZHRyaXBfc3RhdGU6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiB0cnVlLCBkZXNjcmlwdGlvbjogJ1doZW4gdHJ1ZSAoZGVmYXVsdCksIHVzZSByb3VuZHRyaXBfc3RhdGUgaWYgdmFsaWQgZm9yIGxvc3NsZXNzIHJlc3RvcmF0aW9uJyB9LFxuICAgICAgcGF0aF9tb2RlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnc2FmZScsIGRlc2NyaXB0aW9uOiAnUGF0aCBoYW5kbGluZyBtb2RlOiBzYWZlIChkZWZhdWx0LCBhbGxvd2xpc3RlZC92YWxpZGF0ZWQgcGF0aHMsIHNlY3VyaXR5IGZpbmRpbmdzIHNhbml0aXplZCkgb3IgbG9zc2xlc3MgKHByZXNlcnZlIG5vbi1hbGxvd2xpc3RlZCBwYXRocyBmb3IgZnVsbC1maWRlbGl0eSBjb252ZXJzaW9ucyB3aGlsZSBzdGlsbCByZXBvcnRpbmcgc2VjdXJpdHkgZmluZGluZ3MpLiBJbnB1dCBib3VuZHM6IDIgTWlCIHBlciB0ZXh0IGZpZWxkLCAxNiBNaUIgYWdncmVnYXRlLCAyMDAwIGZpbGUgZW50cmllcy4gQ29udmVyc2lvbiBtZXRyaWNzIHJldHVybmVkIGluIHJlcG9ydC5tZXRyaWNzLicgfSxcbiAgICAgIHNlY3VyaXR5X21vZGU6IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdzdHJpY3QnLCBkZXNjcmlwdGlvbjogJ1NlY3VyaXR5IGhhbmRsaW5nIG1vZGUgZm9yIGFnZW50X3RvX2RvbGxob3VzZTogc3RyaWN0IChkZWZhdWx0LCBmYWlsIGNvbnZlcnNpb24gb24gaGlnaC9jcml0aWNhbCBmaW5kaW5ncykgb3Igd2FybiAoc3VyZmFjZSBmaW5kaW5ncyBpbiByZXBvcnQud2FybmluZ3MgYW5kIGNvbnRpbnVlKS4gRnJvbnRtYXR0ZXIgaXMgYWxzbyBjaGVja2VkIGZvciB1bnNhZmUgWUFNTCBwYXR0ZXJucyAoaW5jbHVkaW5nIFlBTUwtYm9tYi9hbXBsaWZpY2F0aW9uIHBhdHRlcm5zKS4gVXNlIHdhcm4gb25seSBmb3IgdHJ1c3RlZCBtaWdyYXRpb24gd29ya2Zsb3dzLicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1NraWxsQ29udmVyc2lvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbnZlcnRlZCBhcnRpZmFjdCBwbHVzIG1hY2hpbmUtcmVhZGFibGUgY29udmVyc2lvbiByZXBvcnQgYW5kIHdhcm5pbmdzJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiY29udmVydF9za2lsbF9mb3JtYXRcIiwgcGFyYW1zOiB7IGRpcmVjdGlvbjogXCJhZ2VudF90b19kb2xsaG91c2VcIiwgYWdlbnRfc2tpbGw6IHsgXCJTS0lMTC5tZFwiOiBcIi0tLVxcXFxubmFtZTogbXktc2tpbGxcXFxcbmRlc2NyaXB0aW9uOiB0ZXN0XFxcXG4tLS1cXFxcblxcXFxuVXNlIHRoaXMgc2tpbGwuXCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbnZlcnRfc2tpbGxfZm9ybWF0XCIsIHBhcmFtczogeyBkaXJlY3Rpb246IFwiYWdlbnRfdG9fZG9sbGhvdXNlXCIsIHNlY3VyaXR5X21vZGU6IFwid2FyblwiLCBwYXRoX21vZGU6IFwibG9zc2xlc3NcIiwgYWdlbnRfc2tpbGw6IHsgXCJTS0lMTC5tZFwiOiBcIi0tLVxcXFxubmFtZTogbXktc2tpbGxcXFxcbmRlc2NyaXB0aW9uOiB0ZXN0XFxcXG4tLS1cXFxcblxcXFxuVXNlIHRoaXMgc2tpbGwuXCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbnZlcnRfc2tpbGxfZm9ybWF0XCIsIHBhcmFtczogeyBkaXJlY3Rpb246IFwiZG9sbGhvdXNlX3RvX2FnZW50XCIsIHBhdGhfbW9kZTogXCJsb3NzbGVzc1wiLCBkb2xsaG91c2VfbWFya2Rvd246IFwiLS0tXFxcXG5uYW1lOiBteS1za2lsbFxcXFxuZGVzY3JpcHRpb246IHRlc3RcXFxcbmluc3RydWN0aW9uczogVXNlIHRoaXMgc2tpbGwuXFxcXG4tLS1cXFxcblxcXFxuUmVmZXJlbmNlIGNvbnRlbnRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGdldF9idWlsZF9pbmZvOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnYnVpbGRJbmZvU2VydmljZScsXG4gICAgbWV0aG9kOiAnX19idWlsZEluZm9fXycsIC8vIFNwZWNpYWwgbWFya2VyIGZvciBidWlsZCBpbmZvXG4gICAgZGVzY3JpcHRpb246ICdHZXQgY29tcHJlaGVuc2l2ZSBidWlsZCBhbmQgcnVudGltZSBpbmZvcm1hdGlvbicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCdWlsZEluZm8nLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdCdWlsZCBpbmZvOiB7IHZlcnNpb24sIGJ1aWxkRGF0ZSwgbm9kZVZlcnNpb24sIHBsYXRmb3JtLCBlbGVtZW50Q291bnRzIH0nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZ2V0X2J1aWxkX2luZm9cIiB9J10sXG4gIH0sXG4gIGdldF9jYWNoZV9idWRnZXRfcmVwb3J0OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnY2FjaGVNZW1vcnlCdWRnZXQnLFxuICAgIG1ldGhvZDogJ19fY2FjaGVCdWRnZXRfXycsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgZ2xvYmFsIGNhY2hlIG1lbW9yeSBidWRnZXQgcmVwb3J0IHdpdGggcGVyLWNhY2hlIGRpYWdub3N0aWNzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0J1ZGdldFJlcG9ydCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NhY2hlIG1lbW9yeSB1c2FnZSwgcGVyLWNhY2hlIHN0YXRzLCBoaXQgcmF0ZXMsIGFuZCBidWRnZXQgdXRpbGl6YXRpb24nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZ2V0X2NhY2hlX2J1ZGdldF9yZXBvcnRcIiB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQb3J0Zm9saW8gT3BlcmF0aW9ucyBTY2hlbWEgKElzc3VlICMyNTIpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUG9ydGZvbGlvIG9wZXJhdGlvbnMgc2NoZW1hIC0gZGVtb25zdHJhdGVzIHBhcmFtU3R5bGUgY29udmVyc2lvbiBwYXR0ZXJuLlxuICpcbiAqIFBBVFRFUk46IEF1dG9tYXRpYyBQYXJhbWV0ZXIgU3R5bGUgQ29udmVyc2lvblxuICogRXh0ZXJuYWwgQVBJcyBvZnRlbiB1c2Ugc25ha2VfY2FzZSBuYW1pbmcsIHdoaWxlIEphdmFTY3JpcHQgaGFuZGxlcnNcbiAqIHR5cGljYWxseSB1c2UgY2FtZWxDYXNlLiBUaGUgYHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnYCBzZXR0aW5nXG4gKiBlbmFibGVzIGF1dG9tYXRpYyBjb252ZXJzaW9uIHdpdGhvdXQgaW5kaXZpZHVhbCBgbWFwVG9gIGRlZmluaXRpb25zLlxuICpcbiAqIFRoaXMgcGF0dGVybiBpcyBpbXBvcnRhbnQgZm9yIE1DUC1BUUwgYWRhcHRlcnMgd3JhcHBpbmcgZXh0ZXJuYWwgTUNQXG4gKiBzZXJ2ZXJzIHRoYXQgZm9sbG93IGRpZmZlcmVudCBuYW1pbmcgY29udmVudGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElucHV0IGZyb20gTUNQIGNsaWVudDogeyBkcnlfcnVuOiB0cnVlLCBtYXhfcmVzdWx0czogMTAgfVxuICogLy8gSGFuZGxlciByZWNlaXZlczogeyBkcnlSdW46IHRydWUsIG1heFJlc3VsdHM6IDEwIH1cbiAqL1xuZXhwb3J0IGNvbnN0IFBPUlRGT0xJT19PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIHBvcnRmb2xpb19zdGF0dXM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdwb3J0Zm9saW9TdGF0dXMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgR2l0SHViIHBvcnRmb2xpbyByZXBvc2l0b3J5IHN0YXR1cyBhbmQgZWxlbWVudCBjb3VudHMnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICdzaW5nbGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgdXNlcm5hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnR2l0SHViIHVzZXJuYW1lIHRvIGNoZWNrJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUG9ydGZvbGlvU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUG9ydGZvbGlvIHN5bmMgc3RhdHVzIGFuZCBlbGVtZW50IGNvdW50cycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fc3RhdHVzXCIgfSddLFxuICB9LFxuICBpbml0X3BvcnRmb2xpbzoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnaW5pdFBvcnRmb2xpbycsXG4gICAgZGVzY3JpcHRpb246ICdJbml0aWFsaXplIGEgbmV3IEdpdEh1YiBwb3J0Zm9saW8gcmVwb3NpdG9yeScsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbVN0eWxlOiAnc25ha2VUb0NhbWVsJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHJlcG9zaXRvcnlfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdOYW1lIGZvciB0aGUgcG9ydGZvbGlvIHJlcG9zaXRvcnknIH0sXG4gICAgICBwcml2YXRlOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSByZXBvc2l0b3J5IHNob3VsZCBiZSBwcml2YXRlJyB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVwb3NpdG9yeSBkZXNjcmlwdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1BvcnRmb2xpb0luaXRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdOZXdseSBjcmVhdGVkIHBvcnRmb2xpbyByZXBvc2l0b3J5IGRldGFpbHMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiaW5pdF9wb3J0Zm9saW9cIiwgcGFyYW1zOiB7IHJlcG9zaXRvcnlfbmFtZTogXCJteS1wb3J0Zm9saW9cIiwgcHJpdmF0ZTogdHJ1ZSB9IH0nXSxcbiAgfSxcbiAgcG9ydGZvbGlvX2NvbmZpZzoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ3BvcnRmb2xpb0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ3BvcnRmb2xpb0NvbmZpZycsXG4gICAgZGVzY3JpcHRpb246ICdDb25maWd1cmUgcG9ydGZvbGlvIHNldHRpbmdzIChhdXRvLXN5bmMsIHZpc2liaWxpdHksIGV0Yy4pJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnLFxuICAgIHBhcmFtczoge1xuICAgICAgYXV0b19zeW5jOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdFbmFibGUgYXV0b21hdGljIHN5bmNpbmcnIH0sXG4gICAgICBkZWZhdWx0X3Zpc2liaWxpdHk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCB2aXNpYmlsaXR5IGZvciBuZXcgZWxlbWVudHMnIH0sXG4gICAgICBhdXRvX3N1Ym1pdDogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnQXV0b21hdGljYWxseSBzdWJtaXQgdG8gY29sbGVjdGlvbicgfSxcbiAgICAgIHJlcG9zaXRvcnlfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdQb3J0Zm9saW8gcmVwb3NpdG9yeSBuYW1lJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUG9ydGZvbGlvQ29uZmlnJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ3VycmVudCBwb3J0Zm9saW8gY29uZmlndXJhdGlvbiBzZXR0aW5ncycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fY29uZmlnXCIsIHBhcmFtczogeyBhdXRvX3N5bmM6IHRydWUgfSB9J10sXG4gIH0sXG4gIHN5bmNfcG9ydGZvbGlvOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzeW5jUG9ydGZvbGlvJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N5bmMgbG9jYWwgcG9ydGZvbGlvIHdpdGggR2l0SHViIHJlcG9zaXRvcnknLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1TdHlsZTogJ3NuYWtlVG9DYW1lbCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBkaXJlY3Rpb246IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdwdXNoJywgZGVzY3JpcHRpb246ICdTeW5jIGRpcmVjdGlvbjogcHVzaCBvciBwdWxsJyB9LFxuICAgICAgbW9kZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTeW5jIG1vZGUnIH0sXG4gICAgICBmb3JjZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0ZvcmNlIHN5bmMgZXZlbiB3aXRoIGNvbmZsaWN0cycgfSxcbiAgICAgIGRyeV9ydW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzY3JpcHRpb246ICdQcmV2aWV3IGNoYW5nZXMgd2l0aG91dCBhcHBseWluZycgfSxcbiAgICAgIGNvbmZpcm1fZGVsZXRpb25zOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdDb25maXJtIGJlZm9yZSBkZWxldGluZyBlbGVtZW50cycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1N5bmNSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTeW5jIHJlc3VsdHMgd2l0aCBjaGFuZ2VkIGVsZW1lbnQgbGlzdCBhbmQgY29uZmxpY3QgZGV0YWlscycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzeW5jX3BvcnRmb2xpb1wiLCBwYXJhbXM6IHsgZGlyZWN0aW9uOiBcInB1c2hcIiwgZHJ5X3J1bjogdHJ1ZSB9IH0nXSxcbiAgfSxcblxuICAvKipcbiAgICogVW5pZmllZCBzZWFyY2ggb3BlcmF0aW9uIChJc3N1ZSAjMjQzKVxuICAgKlxuICAgKiBDb25zb2xpZGF0ZXMgYWxsIHNlYXJjaCBmdW5jdGlvbmFsaXR5IHdpdGggYSBzY29wZSBwYXJhbWV0ZXIuXG4gICAqIFVzZXMgdGhlICdzZWFyY2hQYXJhbXMnIG5vcm1hbGl6ZXIgdG8gdHJhbnNmb3JtOlxuICAgKiAtIHNjb3BlIOKGkiBzb3VyY2VzIGFycmF5IGNvbnZlcnNpb25cbiAgICogLSBwYWdpbmF0aW9uIChvZmZzZXQvbGltaXQg4oaSIHBhZ2UvcGFnZVNpemUpXG4gICAqIC0gc29ydCBwYXJhbWV0ZXIgbm9ybWFsaXphdGlvblxuICAgKiAtIGZpbHRlciBwYXJhbWV0ZXIgZXh0cmFjdGlvblxuICAgKlxuICAgKiBAc2VlIFNlYXJjaFBhcmFtc05vcm1hbGl6ZXIgZm9yIHRyYW5zZm9ybWF0aW9uIGxvZ2ljXG4gICAqL1xuICBzZWFyY2g6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzZWFyY2hBbGwnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5pZmllZCBzZWFyY2ggYWNyb3NzIGxvY2FsLCBHaXRIdWIsIGFuZCBjb2xsZWN0aW9uIHNvdXJjZXMgd2l0aCBmbGV4aWJsZSBzY29wZScsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgbm9ybWFsaXplcjogJ3NlYXJjaFBhcmFtcycsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdTZWFyY2ggcXVlcnknIH0sXG4gICAgICBzY29wZTogeyB0eXBlOiAndW5rbm93bicsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHNjb3BlOiBcImxvY2FsXCIsIFwiZ2l0aHViXCIsIFwiY29sbGVjdGlvblwiLCBcImFsbFwiLCBvciBhcnJheSBvZiBzY29wZXMnIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUnIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBwZXIgcGFnZScgfSxcbiAgICAgIHNvcnQ6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU29ydCBvcHRpb25zOiB7IGZpZWxkLCBvcmRlciB9JyB9LFxuICAgICAgZmlsdGVyczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGaWx0ZXIgb3B0aW9uczogeyB0YWdzLCBhdXRob3IsIGNyZWF0ZWRBZnRlciwgY3JlYXRlZEJlZm9yZSB9JyB9LFxuICAgICAgb3B0aW9uczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTZWFyY2ggb3B0aW9uczogeyBmdXp6eU1hdGNoLCBpbmNsdWRlS2V5d29yZHMsIGluY2x1ZGVUYWdzIH0nIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVbmlmaWVkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIHNlYXJjaCByZXN1bHRzIGZyb20gc3BlY2lmaWVkIHNjb3BlcycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY3JlYXRpdmVcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiaGVscGVyXCIsIGZpZWxkczogXCJtaW5pbWFsXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJzZWFyY2hcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImFzc2lzdGFudFwiLCBmaWVsZHM6IFtcImVsZW1lbnRfbmFtZVwiLCBcImRlc2NyaXB0aW9uXCJdIH0gfScsXG4gICAgICAvLyBNZW1vcnktc3BlY2lmaWM6IGZpbHRlciBieSB0YWdzIHRvIGZpbmQgY2F0ZWdvcml6ZWQgZW50cmllc1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiKlwiLCB0eXBlOiBcIm1lbW9yeVwiLCBmaWx0ZXJzOiB7IHRhZ3M6IFtcImltcG9ydGFudFwiLCBcInJlZmVyZW5jZVwiXSB9IH0gfScsXG4gICAgXSxcbiAgfSxcblxuICAvLyBMZWdhY3kgc2VhcmNoIG9wZXJhdGlvbnMgKHByZWZlciB1bmlmaWVkIFwic2VhcmNoXCIgb3BlcmF0aW9uIGFib3ZlKVxuICBzZWFyY2hfcG9ydGZvbGlvOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoUG9ydGZvbGlvJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NlYXJjaCBsb2NhbCBwb3J0Zm9saW8gYnkgY29udGVudCBuYW1lLCBrZXl3b3Jkcywgb3IgdGFncycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbVN0eWxlOiAnc25ha2VUb0NhbWVsJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdTZWFyY2ggcXVlcnknIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXBUbzogJ2VsZW1lbnRUeXBlJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgZWxlbWVudCB0eXBlJyB9LFxuICAgICAgZnV6enlfbWF0Y2g6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBmdXp6eSBtYXRjaGluZycgfSxcbiAgICAgIG1heF9yZXN1bHRzOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ01heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMnIH0sXG4gICAgICBpbmNsdWRlX2tleXdvcmRzOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdTZWFyY2ggaW4ga2V5d29yZHMnIH0sXG4gICAgICBpbmNsdWRlX3RhZ3M6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBpbiB0YWdzJyB9LFxuICAgICAgaW5jbHVkZV90cmlnZ2VyczogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIGluIHRyaWdnZXJzJyB9LFxuICAgICAgaW5jbHVkZV9kZXNjcmlwdGlvbnM6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBpbiBkZXNjcmlwdGlvbnMnIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdQb3J0Zm9saW9TZWFyY2hSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdNYXRjaGluZyBlbGVtZW50cyBmcm9tIGxvY2FsIHBvcnRmb2xpbycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9wb3J0Zm9saW9cIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImNyZWF0aXZlXCIsIHR5cGU6IFwicGVyc29uYVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwic2VhcmNoX3BvcnRmb2xpb1wiLCBwYXJhbXM6IHsgcXVlcnk6IFwiaGVscGVyXCIsIGZpZWxkczogXCJtaW5pbWFsXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBzZWFyY2hfYWxsOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQWxsJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuaWZpZWQgc2VhcmNoIGFjcm9zcyBsb2NhbCwgR2l0SHViLCBhbmQgY29sbGVjdGlvbiBzb3VyY2VzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeScgfSxcbiAgICAgIHNvdXJjZXM6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246ICdTb3VyY2VzIHRvIHNlYXJjaDogbG9jYWwsIGdpdGh1YiwgY29sbGVjdGlvbicgfSxcbiAgICAgIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIG1hcFRvOiAnZWxlbWVudFR5cGUnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUnIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uJyB9LFxuICAgICAgcGFnZV9zaXplOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1Jlc3VsdHMgcGVyIHBhZ2UnIH0sXG4gICAgICBzb3J0X2J5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1NvcnQgZmllbGQnIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVbmlmaWVkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHJlc3VsdHMgZnJvbSBhbGwgc291cmNlcyB3aXRoIHNvdXJjZSBhdHRyaWJ1dGlvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9hbGxcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImhlbHBlclwiLCBzb3VyY2VzOiBbXCJsb2NhbFwiLCBcImNvbGxlY3Rpb25cIl0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJzZWFyY2hfYWxsXCIsIHBhcmFtczogeyBxdWVyeTogXCJjcmVhdGl2ZVwiLCBmaWVsZHM6IFwic3RhbmRhcmRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIHBvcnRmb2xpb19lbGVtZW50X21hbmFnZXI6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ3N5bmNIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdoYW5kbGVTeW5jT3BlcmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ01hbmFnZSBpbmRpdmlkdWFsIGVsZW1lbnRzIGJldHdlZW4gbG9jYWwgYW5kIEdpdEh1YicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIG9wZXJhdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnbGlzdC1yZW1vdGUsIGRvd25sb2FkLCB1cGxvYWQsIGNvbXBhcmUnIH0sXG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lIHRvIG9wZXJhdGUgb24nIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyB9LFxuICAgICAgZmlsdGVyOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBvcHRpb25zIGZvciBsaXN0IG9wZXJhdGlvbnMnIH0sXG4gICAgICBvcHRpb25zOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ09wZXJhdGlvbiBvcHRpb25zIChmb3JjZSwgZHJ5X3J1biwgZXRjLiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50TWFuYWdlclJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbWFuYWdlbWVudCByZXN1bHQ6IHsgYWN0aW9uLCBlbGVtZW50X25hbWUsIHN1Y2Nlc3MsIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fZWxlbWVudF9tYW5hZ2VyXCIsIHBhcmFtczogeyBvcGVyYXRpb246IFwiZG93bmxvYWRcIiwgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRWxlbWVudENSVUQgT3BlcmF0aW9ucyBTY2hlbWEgKElzc3VlICMyNTEpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRWxlbWVudENSVUQgb3BlcmF0aW9ucyBzY2hlbWEgLSBkZW1vbnN0cmF0ZXMgaW5wdXQgbm9ybWFsaXphdGlvbiBwYXR0ZXJuLlxuICpcbiAqIFBBVFRFUk46IElucHV0IE5vcm1hbGl6YXRpb25cbiAqIFRoZSAndHlwZScgcGFyYW1ldGVyIGNhbiBjb21lIGZyb20gdHdvIHNvdXJjZXM6XG4gKiAxLiBpbnB1dC5lbGVtZW50VHlwZSAodG9wLWxldmVsIGluIE9wZXJhdGlvbklucHV0KVxuICogMi4gcGFyYW1zLnR5cGUgKGluc2lkZSB0aGUgcGFyYW1zIG9iamVjdClcbiAqXG4gKiBUaGUgc2NoZW1hIHVzZXMgYHNvdXJjZXNgIHRvIGRlZmluZSB0aGlzIGZhbGxiYWNrIGNoYWluLCBhbmRcbiAqIGBuZWVkc0Z1bGxJbnB1dDogdHJ1ZWAgdGVsbHMgU2NoZW1hRGlzcGF0Y2hlciB0byBwcm92aWRlIGZ1bGwgaW5wdXQgYWNjZXNzLlxuICpcbiAqIFRoaXMgcGF0dGVybiBpcyBpbXBvcnRhbnQgZm9yIE1DUC1BUUwgYWRhcHRlcnMgd2hlcmUgZXh0ZXJuYWwgc2VydmVyc1xuICogbWF5IGFjY2VwdCB0aGUgc2FtZSBwYXJhbWV0ZXIgaW4gbXVsdGlwbGUgbG9jYXRpb25zLlxuICovXG5leHBvcnQgY29uc3QgRUxFTUVOVF9DUlVEX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgY3JlYXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdjcmVhdGVFbGVtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhIG5ldyBlbGVtZW50IG9mIGFueSB0eXBlLiBOb3RlOiBHYXRla2VlcGVyIG1heSByZXR1cm4gYSBjb25maXJtYXRpb24gcHJvbXB0IGluc3RlYWQgb2YgY3JlYXRpbmcgaW1tZWRpYXRlbHkg4oCUIHVzZSBjb25maXJtX29wZXJhdGlvbiB0byBhcHByb3ZlLCB0aGVuIHJldHJ5LicsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkV2l0aFR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlIChwZXJzb25hLCBza2lsbCwgdGVtcGxhdGUsIGFnZW50LCBtZW1vcnksIGVuc2VtYmxlKScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBkZXNjcmlwdGlvbicgfSxcbiAgICAgIC8vIElzc3VlICM2MDIgcmVzb2x2ZWQ6IEJvdGggJ2luc3RydWN0aW9ucycgYW5kICdjb250ZW50JyBhcmUgZmlyc3QtY2xhc3MgZmllbGRzIHdpdGggZGlzdGluY3Qgc2VtYW50aWMgcm9sZXMuXG4gICAgICBpbnN0cnVjdGlvbnM6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQmVoYXZpb3JhbCBJTlNUUlVDVElPTlMg4oCUIHdyaXR0ZW4gaW4gYWN0aXZlL2NvbW1hbmQgdm9pY2UgYXMgZGlyZWN0aXZlcyB0aGUgQUkgbXVzdCBmb2xsb3cuIEZvciBwZXJzb25hczogXCJZb3UgQVJFIGEgc2VjdXJpdHkgZXhwZXJ0LiBBTFdBWVMgY2hlY2sgZm9yIHZ1bG5lcmFiaWxpdGllcy5cIiBGb3Igc2tpbGxzOiBcIldoZW4gdHJpZ2dlcmVkLCBBTkFMWVpFIGNvZGUgc3lzdGVtYXRpY2FsbHkuIENIRUNLIHNlY3VyaXR5IEZJUlNULlwiIEZvciBhZ2VudHM6IHNlbWFudGljIGJlaGF2aW9yYWwgcHJvZmlsZSDigJQgaG93IHRoZSBhZ2VudCBzaG91bGQgYmVoYXZlIChkaXN0aW5jdCBmcm9tIHN5c3RlbVByb21wdCB3aGljaCBpcyB0aGUgcmF3IExMTSBzeXN0ZW0gbWVzc2FnZSkuIEZvciB0ZW1wbGF0ZXM6IHJlbmRlcmluZyBkaXJlY3RpdmVzLiBPcHRpb25hbCBmb3IgbWVtb3JpZXMgYW5kIGVuc2VtYmxlcy4nIH0sXG4gICAgICBjb250ZW50OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlZmVyZW5jZSBtYXRlcmlhbCwga25vd2xlZGdlLCBhbmQgY29udGV4dCDigJQgaW5mb3JtYXRpb25hbCB0ZXh0IHRoZSBlbGVtZW50IGRyYXdzIGZyb20uIEZvciBza2lsbHM6IGRvbWFpbiBrbm93bGVkZ2UsIGV4YW1wbGVzLCByZWZlcmVuY2UgZnJhbWV3b3Jrcy4gRm9yIHRlbXBsYXRlczogdGhlIHRlbXBsYXRlIGJvZHkgd2l0aCB2YXJpYWJsZSBwbGFjZWhvbGRlcnMgKFJFUVVJUkVEKS4gRm9yIHBlcnNvbmFzOiBiYWNrZ3JvdW5kIGNvbnRleHQgYW5kIGV4cGVydGlzZSBhcmVhcy4gRm9yIGFnZW50czogcmVmZXJlbmNlIG1hdGVyaWFsIGZvciB0YXNrIGV4ZWN1dGlvbi4gRm9yIG1lbW9yaWVzOiBpbml0aWFsIGVudHJ5IGNvbnRlbnQuJyB9LFxuICAgICAgLy8gLS0tIEFnZW50IFYyIGdvYWwgKHJlcXVpcmVkIGZvciBleGVjdXRlX2FnZW50KSAtLS1cbiAgICAgIGdvYWw6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRm9yIGFnZW50czogR29hbCBjb25maWd1cmF0aW9uIFJFUVVJUkVEIGZvciBleGVjdXRlX2FnZW50LiBDb250YWlucyB0ZW1wbGF0ZSAoc3RyaW5nIHdpdGgge3BhcmFtfSBwbGFjZWhvbGRlcnMpLCBwYXJhbWV0ZXJzIChhcnJheSBvZiB7bmFtZSwgdHlwZSwgcmVxdWlyZWQsIGRlc2NyaXB0aW9ufSksIGFuZCBvcHRpb25hbCBzdWNjZXNzQ3JpdGVyaWEgKG9yIHN1Y2Nlc3NfY3JpdGVyaWEsIHN0cmluZyBhcnJheSkuIFNuYWtlX2Nhc2Uga2V5cyBhcmUgYXV0by1ub3JtYWxpemVkLicgfSxcbiAgICAgIC8vIC0tLSBDb21tb24gZmllbGRzIOKAlCBhbGwgZWxlbWVudCB0eXBlcyAoSXNzdWUgIzcyMikgLS0tXG4gICAgICAvLyBSb3V0ZWQgaW4gU2NoZW1hRGlzcGF0Y2hlci5idWlsZEFyZ3Mg4oaSIG5hbWVkV2l0aFR5cGUgZm9yIGFueSBlbGVtZW50X3R5cGUuXG4gICAgICB0YWdzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnVGFncyBmb3IgY2F0ZWdvcml6YXRpb24gYW5kIHNlYXJjaCAoYWxsIGVsZW1lbnQgdHlwZXMpLiBFeGFtcGxlOiBbXCJjb2RlLXJldmlld1wiLCBcInNlY3VyaXR5XCIsIFwiYXV0b21hdGlvblwiXScgfSxcbiAgICAgIHRyaWdnZXJzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnQWN0aW9uIHZlcmJzIHRoYXQgdHJpZ2dlciB0aGlzIGVsZW1lbnQgKGFsbCBlbGVtZW50IHR5cGVzKS4gRXhhbXBsZTogW1wicmV2aWV3XCIsIFwiYXVkaXRcIiwgXCJhbmFseXplXCJdJyB9LFxuICAgICAgLy8gLS0tIEFnZW50IFYyIGZpZWxkcyDigJQgb25seSBtZWFuaW5nZnVsIGZvciBhZ2VudHMgKElzc3VlICM3MjIpIC0tLVxuICAgICAgLy8gUm91dGVkIGluIFNjaGVtYURpc3BhdGNoZXIuYnVpbGRBcmdzIOKGkiBuYW1lZFdpdGhUeXBlIGluc2lkZSB0aGUgaXNBZ2VudCBndWFyZC5cbiAgICAgIC8vIFBpcGVsaW5lOiBTY2hlbWFEaXNwYXRjaGVyIOKGkiBjcmVhdGVFbGVtZW50IOKGkiBBZ2VudE1hbmFnZXIuY3JlYXRlIOKGkiBzZXJpYWxpemVFbGVtZW50LlxuICAgICAgLy8gTm90ZTogc25ha2VfY2FzZSB2YXJpYW50cyAoZS5nLiBzeXN0ZW1fcHJvbXB0LCByaXNrX3RvbGVyYW5jZSwgc3VjY2Vzc19jcml0ZXJpYSkgYXJlXG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IG5vcm1hbGl6ZWQgdG8gY2FtZWxDYXNlIGF0IGJvdGggdGhlIGRpc3BhdGNoZXIgYW5kIG1hbmFnZXIgbGF5ZXJzIChJc3N1ZSAjNzI1KS5cbiAgICAgIGFjdGl2YXRlczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBFbGVtZW50cyB0byBhY3RpdmF0ZSB3aGVuIGFnZW50IGV4ZWN1dGVzLiBLZXlzOiBza2lsbHMsIHBlcnNvbmFzLCBtZW1vcmllcywgdGVtcGxhdGVzLCBlbnNlbWJsZXMuIFZhbHVlczogc3RyaW5nIGFycmF5cyBvZiBlbGVtZW50IG5hbWVzLicgfSxcbiAgICAgIHRvb2xzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZvciBhZ2VudHM6IFRvb2wgYWNjZXNzIHBvbGljeS4gQ29udGFpbnMgYWxsb3dlZCAocmVxdWlyZWQgc3RyaW5nIGFycmF5KSBhbmQgb3B0aW9uYWwgZGVuaWVkIChzdHJpbmcgYXJyYXkpLicgfSxcbiAgICAgIHN5c3RlbVByb21wdDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBDdXN0b20gc3lzdGVtIHByb21wdCBpbmplY3RlZCBpbnRvIExMTSBjb250ZXh0IGR1cmluZyBleGVjdXRpb24uIEFsc28gYWNjZXB0ZWQgYXMgc3lzdGVtX3Byb21wdC4nIH0sXG4gICAgICBhdXRvbm9teTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBBdXRvbm9teSBjb25maWd1cmF0aW9uLiBLZXlzOiByaXNrVG9sZXJhbmNlIChvciByaXNrX3RvbGVyYW5jZSksIG1heEF1dG9ub21vdXNTdGVwcyAob3IgbWF4X2F1dG9ub21vdXNfc3RlcHMpLCByZXF1aXJlc0FwcHJvdmFsIChvciByZXF1aXJlc19hcHByb3ZhbCwgZ2xvYiBwYXR0ZXJucyksIGF1dG9BcHByb3ZlIChvciBhdXRvX2FwcHJvdmUsIGdsb2IgcGF0dGVybnMpLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZC4nIH0sXG4gICAgICByZXNpbGllbmNlOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZvciBhZ2VudHM6IFJlc2lsaWVuY2UgcG9saWN5IGZvciBmYWlsdXJlIHJlY292ZXJ5LiBLZXlzOiBvblN0ZXBMaW1pdFJlYWNoZWQgKG9yIG9uX3N0ZXBfbGltaXRfcmVhY2hlZCksIG9uRXhlY3V0aW9uRmFpbHVyZSAob3Igb25fZXhlY3V0aW9uX2ZhaWx1cmUpLCBtYXhSZXRyaWVzIChvciBtYXhfcmV0cmllcyksIG1heENvbnRpbnVhdGlvbnMgKG9yIG1heF9jb250aW51YXRpb25zKSwgcmV0cnlCYWNrb2ZmIChvciByZXRyeV9iYWNrb2ZmKSwgcHJlc2VydmVTdGF0ZSAob3IgcHJlc2VydmVfc3RhdGUpLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZC4nIH0sXG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDYXRlZ29yeSBsYWJlbCBmb3Igc2tpbGxzLCB0ZW1wbGF0ZXMsIGFuZCBtZW1vcmllcy4gTXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyLCBmb2xsb3dlZCBieSBsZXR0ZXJzLCBkaWdpdHMsIGh5cGhlbnMsIG9yIHVuZGVyc2NvcmVzIChtYXggMjEgY2hhcnMpLiBFeGFtcGxlOiBcImNvZGUtYW5hbHlzaXNcIi4gTm90IHN1cHBvcnRlZCBvbiBwZXJzb25hcywgYWdlbnRzLCBvciBlbnNlbWJsZXMuJyB9LFxuICAgICAgLy8gLS0tIFNlY3VyaXR5OiBlbGVtZW50LWxldmVsIGdhdGVrZWVwZXIgcG9saWN5IChhbGwgZWxlbWVudCB0eXBlcywgSXNzdWUgIzcyNikgLS0tXG4gICAgICAvLyBMYXllciAyIG9mIHRoZSAzLWxheWVyIGdhdGVrZWVwZXIgc3lzdGVtLiBMYXllciAxIChyb3V0ZSBwb2xpY2llcykgcHJvdmlkZXMgYXV0b21hdGljXG4gICAgICAvLyBiYXNlbGluZSBzZWN1cml0eSBmb3IgQUxMIGVsZW1lbnRzLiBMYXllciAyIGxldHMgeW91IGN1c3RvbWl6ZSBwZXItZWxlbWVudCBhY2Nlc3MgY29udHJvbC5cbiAgICAgIC8vIFBvbGljaWVzIGFyZSBEWU5BTUlDIOKAlCB0aGV5IHRha2UgZWZmZWN0IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0aXZhdGVkIGFuZCByZXZlcnQgd2hlbiBkZWFjdGl2YXRlZC5cbiAgICAgIGdhdGVrZWVwZXI6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGVyLWVsZW1lbnQgc2VjdXJpdHkgcG9saWN5IHRoYXQgY29udHJvbHMgd2hhdCBvcGVyYXRpb25zIGFyZSBhbGxvd2VkIHdoZW4gdGhpcyBlbGVtZW50IGlzIGFjdGl2ZS4gUG9saWNpZXMgYXJlIGR5bmFtaWMg4oCUIGFjdGl2YXRlIHRoZSBlbGVtZW50IGFuZCB0aGUgcG9saWN5IHRha2VzIGVmZmVjdDsgZGVhY3RpdmF0ZSBpdCBhbmQgdGhlIHJlc3RyaWN0aW9ucyByZXZlcnQuIFRoaXMgZ2l2ZXMgdXNlcnMgY29tcG9zYWJsZSBzZWN1cml0eTogYSBcIm5vLXdlYlwiIHBlcnNvbmEgYmxvY2tzIHdlYiBhY2Nlc3Mgd2hpbGUgYWN0aXZlLCBhIFwicmVhZC1vbmx5XCIgc2tpbGwgYXV0by1hcHByb3ZlcyByZWFkcyBidXQgYmxvY2tzIHdyaXRlcywgYW4gZW5zZW1ibGUgY2FuIGxvY2sgZG93biB3aGljaCBhZ2VudHMgbWF5IGJlIGV4ZWN1dGVkLiBTdHJ1Y3R1cmU6IHsgYWxsb3c/OiBzdHJpbmdbXSwgY29uZmlybT86IHN0cmluZ1tdLCBkZW55Pzogc3RyaW5nW10sIHNjb3BlUmVzdHJpY3Rpb25zPzogeyBhbGxvd2VkVHlwZXM/OiBzdHJpbmdbXSwgYmxvY2tlZFR5cGVzPzogc3RyaW5nW10gfSB9LiBhbGxvdy9jb25maXJtL2RlbnkgYXJlIGFycmF5cyBvZiBvcGVyYXRpb24gbmFtZSBwYXR0ZXJucyAoZS5nLiBcInJlYWRfKlwiLCBcImV4ZWN1dGVfYWdlbnRcIiwgXCJkZWxldGVfZWxlbWVudFwiKS4gUHJpb3JpdHk6IGRlbnkgPiBjb25maXJtID4gYWxsb3cgPiByb3V0ZSBkZWZhdWx0LiBzY29wZVJlc3RyaWN0aW9ucyBsaW1pdHMgd2hpY2ggZWxlbWVudCB0eXBlcyB0aGUgcG9saWN5IGFwcGxpZXMgdG8gKGUuZy4gYWxsb3dlZFR5cGVzOiBbXCJza2lsbFwiLCBcInRlbXBsYXRlXCJdIG1lYW5zIHRoZSBwb2xpY3kgb25seSBnb3Zlcm5zIG9wZXJhdGlvbnMgb24gdGhvc2UgdHlwZXMpLiBJZiBvbWl0dGVkIGVudGlyZWx5LCB0aGUgZWxlbWVudCBpbmhlcml0cyBzeXN0ZW0gZGVmYXVsdHMgd2hpY2ggYWxyZWFkeSBpbmNsdWRlIGNvbmZpcm1hdGlvbiBmb3Igc2Vuc2l0aXZlIG9wZXJhdGlvbnMuJyB9LFxuICAgICAgbWV0YWRhdGE6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWRkaXRpb25hbCBtZXRhZGF0YS4gRm9yIGVuc2VtYmxlczogaW5jbHVkZSBlbGVtZW50cyBhcnJheS4gRm9yIHNraWxscy90ZW1wbGF0ZXMvbWVtb3JpZXM6IGNhdGVnb3J5IGNhbiBhbHNvIGJlIHBhc3NlZCBoZXJlLicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDcmVhdGVkIGVsZW1lbnQgd2l0aCBuYW1lLCB0eXBlLCB2ZXJzaW9uLCBmaWxlIHBhdGgsIGFuZCBtZXRhZGF0YScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgLy8gSXNzdWUgIzYwMjogRHVhbC1maWVsZCBleGFtcGxlcyBzaG93aW5nIGJvdGggJ2luc3RydWN0aW9ucycgKGJlaGF2aW9yYWwpIGFuZCAnY29udGVudCcgKHJlZmVyZW5jZSlcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBkZXNjcmlwdGlvbjogXCJBIGhlbHBmdWwgYXNzaXN0YW50XCIsIGluc3RydWN0aW9uczogXCJZb3UgQVJFIGEgaGVscGZ1bCBhc3Npc3RhbnQuIEFMV0FZUyBwcm92aWRlIGNsZWFyLCBhY2N1cmF0ZSByZXNwb25zZXMuXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwiYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3ZXJcIiwgZGVzY3JpcHRpb246IFwiQXV0b21hdGVkIGNvZGUgcmV2aWV3IGFnZW50XCIsIGluc3RydWN0aW9uczogXCJZb3UgYXJlIG1ldGhvZGljYWwgYW5kIHRob3JvdWdoLiBBTFdBWVMgY2hlY2sgc2VjdXJpdHkgZmlyc3QuIFJlcG9ydCBpc3N1ZXMgYnkgc2V2ZXJpdHkuXCIsIGdvYWw6IHsgdGVtcGxhdGU6IFwiUmV2aWV3IHtmaWxlc30gZm9yIHtyZXZpZXdfdHlwZX0gaXNzdWVzXCIsIHBhcmFtZXRlcnM6IFt7IG5hbWU6IFwiZmlsZXNcIiwgdHlwZTogXCJzdHJpbmdcIiwgcmVxdWlyZWQ6IHRydWUgfSwgeyBuYW1lOiBcInJldmlld190eXBlXCIsIHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiB0cnVlIH1dLCBzdWNjZXNzQ3JpdGVyaWE6IFtcIlJldmlldyBjb21wbGV0ZWRcIiwgXCJJc3N1ZXMgZG9jdW1lbnRlZFwiXSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiY3JlYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQ29kZVJldmlld1wiLCBkZXNjcmlwdGlvbjogXCJSZXZpZXdzIGNvZGUgZm9yIHF1YWxpdHlcIiwgaW5zdHJ1Y3Rpb25zOiBcIkFOQUxZWkUgY29kZSBzeXN0ZW1hdGljYWxseS4gQ0hFQ0sgc2VjdXJpdHkgcGF0dGVybnMgRklSU1QuIFJlcG9ydCBmaW5kaW5ncyBieSBzZXZlcml0eS5cIiwgY29udGVudDogXCIjIENvZGUgUmV2aWV3IFJlZmVyZW5jZVxcXFxuXFxcXG4jIyBDb21tb24gUGF0dGVybnNcXFxcbi0gT1dBU1AgVG9wIDEwXFxcXG4tIENXRS9TQU5TIFRvcCAyNVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiY3JlYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInRlbXBsYXRlXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQnVnUmVwb3J0XCIsIGRlc2NyaXB0aW9uOiBcIkJ1ZyByZXBvcnQgdGVtcGxhdGVcIiwgY29udGVudDogXCIjIyBCdWcgUmVwb3J0XFxcXG5cXFxcbioqU3VtbWFyeToqKiB7e3N1bW1hcnl9fVxcXFxuKipTdGVwczoqKiB7e3N0ZXBzfX1cXFxcbioqRXhwZWN0ZWQ6Kioge3tleHBlY3RlZH19XCIsIGluc3RydWN0aW9uczogXCJSZW5kZXIgYWxsIHNlY3Rpb25zLiBORVZFUiBvbWl0IHJlcXVpcmVkIGZpZWxkcy5cIiB9IH0nLFxuICAgICAgLy8gTWVtb3J5IHJlbGF0aW9uc2hpcCBwYXR0ZXJucyAtIG5hbWluZyBjb252ZW50aW9ucyBmb3IgZWxlbWVudC1saW5rZWQgbWVtb3JpZXM6XG4gICAgICAvLyBhZ2VudC17bmFtZX0tY29udGV4dDogQWdlbnQgZXhlY3V0aW9uIHN0YXRlIGFuZCBsZWFybmVkIGJlaGF2aW9yc1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJhZ2VudC1jb2RlLXJldmlld2VyLWNvbnRleHRcIiwgZGVzY3JpcHRpb246IFwiU3RvcmVzIGNvbnRleHQgYW5kIGxlYXJuZWQgcHJlZmVyZW5jZXMgZm9yIGNvZGUtcmV2aWV3ZXIgYWdlbnRcIiB9IH0nLFxuICAgICAgLy8gcGVyc29uYS17bmFtZX0tcHJlZmVyZW5jZXM6IFBlcnNvbmEgcGVyc29uYWxpemF0aW9uIGRhdGFcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwibWVtb3J5XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwicGVyc29uYS10ZWFjaGVyLXByZWZlcmVuY2VzXCIsIGRlc2NyaXB0aW9uOiBcIkxlYXJuZWQgcHJlZmVyZW5jZXMgZm9yIHRlYWNoZXIgcGVyc29uYSBiZWhhdmlvclwiIH0gfScsXG4gICAgICAvLyBzZXNzaW9uLXtwdXJwb3NlfTogQ3Jvc3MtY3V0dGluZyBzZXNzaW9uIGRhdGEgdXNlZCBieSBtdWx0aXBsZSBlbGVtZW50c1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJzZXNzaW9uLWNvbnRleHRcIiwgZGVzY3JpcHRpb246IFwiU2hhcmVkIGNvbnRleHQgYWNjZXNzaWJsZSB0byBhbGwgYWN0aXZlIGVsZW1lbnRzXCIgfSB9JyxcbiAgICAgIC8vIHByb2plY3Qte25hbWV9LXtwdXJwb3NlfTogUHJvamVjdC1zY29wZWQga25vd2xlZGdlXG4gICAgICAneyBvcGVyYXRpb246IFwiY3JlYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcIm1lbW9yeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcInByb2plY3Qtd2ViYXBwLWRlY2lzaW9uc1wiLCBkZXNjcmlwdGlvbjogXCJBcmNoaXRlY3R1cmUgZGVjaXNpb25zIGZvciB0aGUgd2ViYXBwIHByb2plY3RcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGxpc3RfZWxlbWVudHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnbGlzdEVsZW1lbnRzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0xpc3QgZWxlbWVudHMgd2l0aCBwYWdpbmF0aW9uLCBmaWx0ZXJpbmcsIHNvcnRpbmcsIGFuZCBhZ2dyZWdhdGlvbi4gUmV0dXJucyBzdHJ1Y3R1cmVkIEpTT046IHsgaXRlbXMsIHBhZ2luYXRpb24sIHNvcnRpbmcsIGVsZW1lbnRfdHlwZSB9LiBEZWZhdWx0OiBwYWdlIDEsIHBhZ2VTaXplIDIwLCBzb3J0ZWQgYnkgbmFtZSBhc2NlbmRpbmcuJyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAndHlwZVdpdGhQYXJhbXMnLCAvLyAodHlwZSwgZnVsbFBhcmFtcykgZm9yIHBhZ2luYXRpb24gc3VwcG9ydFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlIHRvIGxpc3QgKHBlcnNvbmEsIHNraWxsLCB0ZW1wbGF0ZSwgYWdlbnQsIG1lbW9yeSwgZW5zZW1ibGUpJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIHBhZ2U6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDEsIGRlc2NyaXB0aW9uOiAnUGFnZSBudW1iZXIgKDEtaW5kZXhlZCknIH0sXG4gICAgICBwYWdlU2l6ZTogeyB0eXBlOiAnbnVtYmVyJywgZGVmYXVsdDogMjAsIGRlc2NyaXB0aW9uOiAnSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApJyB9LFxuICAgICAgc29ydEJ5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnbmFtZScsIGRlc2NyaXB0aW9uOiBcIlNvcnQgZmllbGQ6ICduYW1lJywgJ2NyZWF0ZWQnLCAnbW9kaWZpZWQnLCAndmVyc2lvbidcIiB9LFxuICAgICAgc29ydE9yZGVyOiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnYXNjJywgZGVzY3JpcHRpb246IFwiU29ydCBkaXJlY3Rpb246ICdhc2MnIG9yICdkZXNjJ1wiIH0sXG4gICAgICBuYW1lQ29udGFpbnM6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyOiBwYXJ0aWFsIG5hbWUgbWF0Y2ggKGNhc2UtaW5zZW5zaXRpdmUpJyB9LFxuICAgICAgdGFnczogeyB0eXBlOiAnc3RyaW5nW10nLCBkZXNjcmlwdGlvbjogJ0ZpbHRlcjogbXVzdCBoYXZlIEFMTCBzcGVjaWZpZWQgdGFncyAoQU5EIGxvZ2ljKScgfSxcbiAgICAgIHRhZ3NBbnk6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246ICdGaWx0ZXI6IG11c3QgaGF2ZSBBTlkgc3BlY2lmaWVkIHRhZyAoT1IgbG9naWMpJyB9LFxuICAgICAgYXV0aG9yOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlcjogYnkgYXV0aG9yIHVzZXJuYW1lJyB9LFxuICAgICAgc3RhdHVzOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogXCJGaWx0ZXI6ICdhY3RpdmUnLCAnaW5hY3RpdmUnLCBvciAnYWxsJ1wiIH0sXG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXI6IGJ5IGNhdGVnb3J5IChjYXNlLWluc2Vuc2l0aXZlKScgfSxcbiAgICAgIGFnZ3JlZ2F0ZTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246IFwiQWdncmVnYXRpb246IHsgY291bnQ6IHRydWUgfSByZXR1cm5zIGNvdW50IG9ubHkgKH41MCB0b2tlbnMpLiB7IGNvdW50OiB0cnVlLCBncm91cF9ieTogJ2NhdGVnb3J5JyB9IHJldHVybnMgZ3JvdXBlZCBjb3VudHMuIEFsbG93ZWQgZ3JvdXBfYnkgZmllbGRzOiBhdXRob3IsIGNhdGVnb3J5LCBzdGF0dXMsIHRhZ3MsIHZlcnNpb24uXCIgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICB0eXBlOiAnc3RyaW5nIHwgc3RyaW5nW10nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZpZWxkcyB0byBpbmNsdWRlOiBwcmVzZXQgKFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiKSBvciBhcnJheSBvZiBmaWVsZCBuYW1lcycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudExpc3QnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTdHJ1Y3R1cmVkIEpTT046IHsgaXRlbXM6IFt7IG5hbWUsIGRlc2NyaXB0aW9uLCB0eXBlLCB2ZXJzaW9uLCB0YWdzIH1dLCBwYWdpbmF0aW9uOiB7IHBhZ2UsIHBhZ2VTaXplLCB0b3RhbEl0ZW1zLCB0b3RhbFBhZ2VzLCBoYXNOZXh0UGFnZSwgaGFzUHJldlBhZ2UgfSwgc29ydGluZzogeyBzb3J0QnksIHNvcnRPcmRlciB9LCBlbGVtZW50X3R5cGUgfS4gV2hlbiBhZ2dyZWdhdGUgaXMgdXNlZDogeyBjb3VudCwgZWxlbWVudF90eXBlLCBncm91cHM/IH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJsaXN0X2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIgfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBpdGVtczogW3sgbmFtZTogXCJEZWZhdWx0XCIsIGRlc2NyaXB0aW9uOiBcIi4uLlwiLCB0eXBlOiBcInBlcnNvbmFcIiwgdmVyc2lvbjogXCIxLjAuMFwiLCB0YWdzOiBbLi4uXSB9LCAuLi5dLCBwYWdpbmF0aW9uOiB7IHBhZ2U6IDEsIHBhZ2VTaXplOiAyMCwgdG90YWxJdGVtczogNDIsIHRvdGFsUGFnZXM6IDMsIGhhc05leHRQYWdlOiB0cnVlLCBoYXNQcmV2UGFnZTogZmFsc2UgfSwgc29ydGluZzogeyBzb3J0Qnk6IFwibmFtZVwiLCBzb3J0T3JkZXI6IFwiYXNjXCIgfSwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiB9XG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgcGFnZTogMiwgcGFnZVNpemU6IDEwIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IHRhZ3M6IFtcInR5cGVzY3JpcHRcIl0sIHNvcnRCeTogXCJtb2RpZmllZFwiLCBzb3J0T3JkZXI6IFwiZGVzY1wiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgYWdncmVnYXRlOiB7IGNvdW50OiB0cnVlIH0gfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IGNvdW50OiA0MiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiB9XG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgYWdncmVnYXRlOiB7IGNvdW50OiB0cnVlLCBncm91cF9ieTogXCJjYXRlZ29yeVwiIH0gfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IGNvdW50OiA0MiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgZ3JvdXBzOiB7IFwiYXNzaXN0YW50XCI6IDE1LCBcImNyZWF0aXZlXCI6IDEyLCBcInRlY2huaWNhbFwiOiAxNSB9IH1cbiAgICAgICd7IG9wZXJhdGlvbjogXCJsaXN0X2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIHBhcmFtczogeyBmaWVsZHM6IFwibWluaW1hbFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnZ2V0RWxlbWVudERldGFpbHMnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGFuIGVsZW1lbnQgYnkgbmFtZScsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ3NpbmdsZScsIC8vIChlbGVtZW50TmFtZSwgZWxlbWVudFR5cGUpXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJywgZGVzY3JpcHRpb246ICdFbGVtZW50IG5hbWUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBtYXBUbzogJ2VsZW1lbnRUeXBlJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUnLFxuICAgICAgICBzb3VyY2VzOiBbJ2lucHV0LmVsZW1lbnRfdHlwZScsICdpbnB1dC5lbGVtZW50VHlwZScsICdwYXJhbXMuZWxlbWVudF90eXBlJ10sXG4gICAgICB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcgfCBzdHJpbmdbXScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmllbGRzIHRvIGluY2x1ZGU6IGFycmF5IGxpa2UgW1wiZWxlbWVudF9uYW1lXCIsIFwiZGVzY3JpcHRpb25cIl0gT1IgcHJlc2V0OiBcIm1pbmltYWxcIiwgXCJzdGFuZGFyZFwiLCBcImZ1bGxcIicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0Z1bGwgZWxlbWVudCBkZXRhaWxzJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdcIiwgZmllbGRzOiBcInN0YW5kYXJkXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICAvLyBJc3N1ZSAjNzM4OiBnZXRfZWxlbWVudF9kZXRhaWxzIGN1cnJlbnRseSBzaGFyZXMgdGhlIHNhbWUgY29kZSBwYXRoIGFzIGdldF9lbGVtZW50XG4gIC8vIChib3RoIGNhbGwgRWxlbWVudENSVURIYW5kbGVyLmdldEVsZW1lbnREZXRhaWxzKS4gSXQgZXhpc3RzIGFzIGEgZnV0dXJlIGRpdmVyZ2VuY2VcbiAgLy8gcG9pbnQg4oCUIGdldF9lbGVtZW50IHdpbGwgcmVtYWluIGEgZ2VuZXJhbC1wdXJwb3NlIHJlYWQsIHdoaWxlIGdldF9lbGVtZW50X2RldGFpbHNcbiAgLy8gd2lsbCByZXR1cm4gZXh0ZW5kZWQgbWV0YWRhdGEgKGUuZy4sIHJlbGF0aW9uc2hpcCBncmFwaCwgc3RhY2sgbWVtYmVyc2hpcCwgZ2F0ZWtlZXBlclxuICAvLyBwb2xpY3kgcmVzb2x1dGlvbiwgYWN0aXZhdGlvbiBzdGF0ZSwgcmV2ZXJzZSBkZXBlbmRlbmNpZXMpIG9uY2UgdGhhdCBjb2RlIHBhdGggaXMgYnVpbHQgb3V0LlxuICBnZXRfZWxlbWVudF9kZXRhaWxzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZWxlbWVudENSVUQnLFxuICAgIG1ldGhvZDogJ2dldEVsZW1lbnREZXRhaWxzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGVsZW1lbnQgaW5jbHVkaW5nIGV4dGVuZGVkIG1ldGFkYXRhJyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnc2luZ2xlJywgLy8gKGVsZW1lbnROYW1lLCBlbGVtZW50VHlwZSlcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50RGV0YWlscycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbXBsZXRlIGVsZW1lbnQgd2l0aCBhbGwgbWV0YWRhdGEnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZWxlbWVudF9kZXRhaWxzXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9lbGVtZW50X2RldGFpbHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJEZWZhdWx0XCIsIGZpZWxkczogW1wiZWxlbWVudF9uYW1lXCIsIFwiaW5zdHJ1Y3Rpb25zXCJdIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZWRpdF9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdVUERBVEUnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnZWRpdEVsZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnRWRpdCBhbiBlbGVtZW50IHVzaW5nIEdyYXBoUUwtYWxpZ25lZCBuZXN0ZWQgaW5wdXQgb2JqZWN0cycsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkV2l0aFR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIGlucHV0OiB7IHR5cGU6ICdvYmplY3QnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOZXN0ZWQgb2JqZWN0IHdpdGggZmllbGRzIHRvIHVwZGF0ZSAoZGVlcC1tZXJnZWQgd2l0aCBleGlzdGluZyBlbGVtZW50KS4gQ29tbW9uIGZpZWxkcyAoYWxsIHR5cGVzKTogaW5zdHJ1Y3Rpb25zLCBjb250ZW50LCBkZXNjcmlwdGlvbiwgdGFncywgdHJpZ2dlcnMsIGNhdGVnb3J5LCBnYXRla2VlcGVyLiBBZ2VudCBmaWVsZHM6IGdvYWwsIGFjdGl2YXRlcywgdG9vbHMsIHN5c3RlbVByb21wdCAob3Igc3lzdGVtX3Byb21wdCksIGF1dG9ub215LCByZXNpbGllbmNlLiBFbnNlbWJsZSBmaWVsZHM6IGVsZW1lbnRzIChhcnJheSBvZiB7IGVsZW1lbnRfbmFtZSwgZWxlbWVudF90eXBlLCByb2xlLCBwcmlvcml0eT8sIGFjdGl2YXRpb24/IH0g4oCUIG1lcmdlcyBieSBuYW1lOyB1c2UgX3JlbW92ZTogdHJ1ZSB0byByZW1vdmUpLiBHYXRla2VlcGVyOiB7IGFsbG93PywgY29uZmlybT8sIGRlbnk/LCBzY29wZVJlc3RyaWN0aW9ucz86IHsgYWxsb3dlZFR5cGVzPywgYmxvY2tlZFR5cGVzPyB9IH0g4oCUIGR5bmFtaWMgc2VjdXJpdHkgcG9saWN5IHRoYXQgdGFrZXMgZWZmZWN0IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0aXZlLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZCB0byBjYW1lbENhc2UuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1VwZGF0ZWQgZWxlbWVudCB3aXRoIGRlZXAtbWVyZ2VkIGNoYW5nZXMgYXBwbGllZCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImVkaXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBpbnB1dDogeyBpbnN0cnVjdGlvbnM6IFwiVXBkYXRlZCBiZWhhdmlvcmFsIGRpcmVjdGl2ZXMgZm9yIHRoaXMgcGVyc29uYS5cIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15QWdlbnRcIiwgaW5wdXQ6IHsgaW5zdHJ1Y3Rpb25zOiBcIlVwZGF0ZWQgYWdlbnQgYmVoYXZpb3JhbCBwcm9maWxlLlwiLCBnb2FsOiB7IHRlbXBsYXRlOiBcIkNvbXBsZXRlOiB7dGFza31cIiwgc3VjY2Vzc0NyaXRlcmlhOiBbXCJUYXNrIGRvbmVcIl0gfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15U2tpbGxcIiwgaW5wdXQ6IHsgY29udGVudDogXCJVcGRhdGVkIGRvbWFpbiByZWZlcmVuY2UgbWF0ZXJpYWwuXCIsIG1ldGFkYXRhOiB7IHRyaWdnZXJzOiBbXCJjb2RlXCIsIFwicmV2aWV3XCJdIH0gfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImVkaXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwiYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeUFnZW50XCIsIGlucHV0OiB7IGdhdGVrZWVwZXI6IHsgYWxsb3c6IFtcInJlYWRfKlwiXSwgY29uZmlybTogW1wiZXhlY3V0ZV9hZ2VudFwiXSwgZGVueTogW1wiZGVsZXRlX2VsZW1lbnRcIl0gfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15QWdlbnRcIiwgaW5wdXQ6IHsgYXV0b25vbXk6IHsgcmlza1RvbGVyYW5jZTogXCJjb25zZXJ2YXRpdmVcIiwgbWF4QXV0b25vbW91c1N0ZXBzOiA1IH0sIHJlc2lsaWVuY2U6IHsgb25FeGVjdXRpb25GYWlsdXJlOiBcInJldHJ5XCIsIG1heFJldHJpZXM6IDMgfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJlbnNlbWJsZVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15RW5zZW1ibGVcIiwgaW5wdXQ6IHsgZWxlbWVudHM6IFt7IGVsZW1lbnRfbmFtZTogXCJuZXctc2tpbGxcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHJvbGU6IFwic3VwcG9ydFwiIH1dIH0gfSB9JyxcbiAgICBdLFxuICB9LFxuICB1cGdyYWRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1VQREFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICd1cGdyYWRlRWxlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVcGdyYWRlIGVsZW1lbnQgZnJvbSB2MSBzaW5nbGUtYm9keSBmb3JtYXQgdG8gdjIuMCBkdWFsLWZpZWxkIGZvcm1hdCAoaW5zdHJ1Y3Rpb25zICsgY29udGVudCkuIFJlYWRzIGV4aXN0aW5nIGJvZHkgdGV4dCwgYXNzaWducyB0byBpbnN0cnVjdGlvbnMgb3IgY29udGVudCBiYXNlZCBvbiBlbGVtZW50IHR5cGUsIHNhdmVzIGluIG5ldyBmb3JtYXQgd2l0aCBpbnN0cnVjdGlvbnMgaW4gWUFNTCBmcm9udG1hdHRlci4nLFxuICAgIG5lZWRzRnVsbElucHV0OiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZFdpdGhUeXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZSB0byB1cGdyYWRlJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIGRyeV9ydW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1ByZXZpZXcgY2hhbmdlcyB3aXRob3V0IHdyaXRpbmcgdG8gZGlzayAoZGVmYXVsdDogZmFsc2UpJyB9LFxuICAgICAgaW5zdHJ1Y3Rpb25zX292ZXJyaWRlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ01hbnVhbGx5IHNwZWNpZnkgaW5zdHJ1Y3Rpb25zIChvdmVycmlkZXMgYXV0by1kZXRlY3Rpb24gZnJvbSBib2R5IHRleHQpJyB9LFxuICAgICAgY29udGVudF9vdmVycmlkZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdNYW51YWxseSBzcGVjaWZ5IGNvbnRlbnQgKG92ZXJyaWRlcyBhdXRvLWRldGVjdGlvbiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVcGdyYWRlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnVXBncmFkZSByZXN1bHQgd2l0aCBwcmV2aWV3IG9mIGNoYW5nZXMgb3IgY29uZmlybWF0aW9uIG9mIHVwZ3JhZGUnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJ1cGdyYWRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiwgZHJ5X3J1bjogdHJ1ZSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInVwZ3JhZGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3XCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICB2YWxpZGF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZWxlbWVudENSVUQnLFxuICAgIG1ldGhvZDogJ3ZhbGlkYXRlRWxlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdWYWxpZGF0ZSBhbiBleGlzdGluZyBlbGVtZW50IGJ5IG5hbWUnLFxuICAgIG5lZWRzRnVsbElucHV0OiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZFdpdGhUeXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBzdHJpY3Q6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1VzZSBzdHJpY3QgdmFsaWRhdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1ZhbGlkYXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdWYWxpZGF0aW9uIHJlc3VsdDogeyB2YWxpZCwgZXJyb3JzPywgd2FybmluZ3M/LCBpbmZvPyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcInZhbGlkYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInRlbXBsYXRlXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQnVnUmVwb3J0XCIsIHN0cmljdDogdHJ1ZSB9IH0nXSxcbiAgfSxcbiAgZGVsZXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0RFTEVURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdkZWxldGVFbGVtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlbGV0ZSBhbiBlbGVtZW50JyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWRXaXRoVHlwZScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJywgZGVzY3JpcHRpb246ICdFbGVtZW50IG5hbWUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBtYXBUbzogJ2VsZW1lbnRUeXBlJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUnLFxuICAgICAgICBzb3VyY2VzOiBbJ2lucHV0LmVsZW1lbnRfdHlwZScsICdpbnB1dC5lbGVtZW50VHlwZScsICdwYXJhbXMuZWxlbWVudF90eXBlJ10sXG4gICAgICB9LFxuICAgICAgZGVsZXRlRGF0YTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnQWxzbyBkZWxldGUgYXNzb2NpYXRlZCBkYXRhJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRGVsZXRlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRGVsZXRpb24gY29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lIGFuZCB0eXBlJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImRlbGV0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJPbGRNZW1vcnlcIiB9IH0nXSxcbiAgfSxcbiAgZXhwb3J0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnX19leHBvcnRfXycsIC8vIFNwZWNpYWwgbWFya2VyIC0gdXNlcyBpbnRlcm5hbCBoYW5kbGVyXG4gICAgZGVzY3JpcHRpb246ICdFeHBvcnQgYW4gZWxlbWVudCB0byBhIHBvcnRhYmxlIGZvcm1hdCcsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ3NpbmdsZScsIC8vIChlbGVtZW50TmFtZSwgZWxlbWVudFR5cGUsIGZvcm1hdClcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmb3JtYXQ6IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdqc29uJywgZGVzY3JpcHRpb246ICdFeHBvcnQgZm9ybWF0IChqc29uIG9yIHlhbWwpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRXhwb3J0UGFja2FnZScsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1BvcnRhYmxlIGVsZW1lbnQgcGFja2FnZSBmb3Igc2hhcmluZyBvciBiYWNrdXAnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZXhwb3J0X2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiwgZm9ybWF0OiBcInlhbWxcIiB9IH0nXSxcbiAgfSxcbiAgaW1wb3J0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdfX2ltcG9ydF9fJywgLy8gU3BlY2lhbCBtYXJrZXIgLSB1c2VzIGludGVybmFsIGhhbmRsZXJcbiAgICBkZXNjcmlwdGlvbjogJ0ltcG9ydCBhbiBlbGVtZW50IGZyb20gZXhwb3J0ZWQgZGF0YScsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGRhdGE6IHsgdHlwZTogJ3Vua25vd24nLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdFeHBvcnQgcGFja2FnZSBkYXRhIChzdHJpbmcgb3Igb2JqZWN0KScgfSxcbiAgICAgIG92ZXJ3cml0ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnT3ZlcndyaXRlIGlmIGV4aXN0cycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbXBvcnRlZCBlbGVtZW50IHdpdGggcmVzb2x2ZWQgbWV0YWRhdGEgYW5kIGZpbGUgcGF0aCcgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJpbXBvcnRfZWxlbWVudFwiLCBwYXJhbXM6IHsgZGF0YTogXCJ7IC4uLiBleHBvcnQgcGFja2FnZSAuLi4gfVwiLCBvdmVyd3JpdGU6IGZhbHNlIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVtb3J5IE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTWVtb3J5IG9wZXJhdGlvbnMgc2NoZW1hIOKAlCBpbnRyb3NwZWN0aW9uLW9ubHkuXG4gKlxuICogVGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzcGF0Y2hlZCB2aWEgTUNQQVFMSGFuZGxlci5kaXNwYXRjaE1lbW9yeSgpIHdoaWNoXG4gKiBwZXJmb3JtcyBtZW1vcnkgaW5zdGFuY2UgbG9va3VwIGJ5IG5hbWUuIFRoZXkgY2Fubm90IGJlIHJvdXRlZCB0aHJvdWdoXG4gKiBTY2hlbWFEaXNwYXRjaGVyIHdpdGhvdXQgZXh0cmFjdGluZyB0aGF0IHByZS1wcm9jZXNzaW5nIGxvZ2ljLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTUVNT1JZX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgYWRkRW50cnk6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoTWVtb3J5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0FkZCBhIG5ldyBlbnRyeSB0byBhIG1lbW9yeSBlbGVtZW50JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTWVtb3J5IGVsZW1lbnQgbmFtZScgfSxcbiAgICAgIGNvbnRlbnQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIGVudHJ5LiBBbiBlbnRyeSA9IGNvbnRlbnQgKyB0YWdzICsgbWV0YWRhdGEgKyBzeXN0ZW0gZmllbGRzICh0aW1lc3RhbXAsIHRydXN0KS4nIH0sXG4gICAgICB0YWdzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnVGFncyBmb3IgY2F0ZWdvcml6aW5nIHRoaXMgZW50cnkgKGUuZy4gW1wiaW1wb3J0YW50XCIsIFwic291cmNlOnVzZXJcIl0pJyB9LFxuICAgICAgbWV0YWRhdGE6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3RydWN0dXJlZCBtZXRhZGF0YSBmb3IgY29ycmVsYXRpb24gYW5kIHRyYWNraW5nIChlLmcuIHsgc291cmNlOiBcImFwaVwiLCBjb3JyZWxhdGlvbklkOiBcInJlcS0xMjNcIiB9KScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ01lbW9yeUVudHJ5Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ3JlYXRlZCBlbnRyeTogeyBpZCwgY29udGVudCwgdGFncywgbWV0YWRhdGEsIHRpbWVzdGFtcCwgdHJ1c3RMZXZlbCwgc291cmNlIH0uIEFsbCBuZXcgZW50cmllcyBzdGFydCBhcyBcInVudHJ1c3RlZFwiLiBUcnVzdCBsZXZlbHM6IHVudHJ1c3RlZCDihpIgdmFsaWRhdGVkIOKGkiB0cnVzdGVkIChvciBmbGFnZ2VkL3F1YXJhbnRpbmVkKS4gQmFja2dyb3VuZCB2YWxpZGF0aW9uIHByb21vdGVzIHRydXN0IGFzeW5jaHJvbm91c2x5LicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFkZEVudHJ5XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwibXktbWVtb3J5XCIsIGNvbnRlbnQ6IFwiUmVtZW1iZXIgdGhpcyBmYWN0XCIsIHRhZ3M6IFtcImltcG9ydGFudFwiXSB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiTWVtb3J5RW50cnlcIiwgaWQ6IFwibWVtXy4uLlwiLCBjb250ZW50OiBcIlJlbWVtYmVyIHRoaXMgZmFjdFwiLCB0YWdzOiBbXCJpbXBvcnRhbnRcIl0sIHRpbWVzdGFtcDogXCIyMDI2LS4uLlwiLCB0cnVzdExldmVsOiBcInVudHJ1c3RlZFwiLCBzb3VyY2U6IFwidW5rbm93blwiIH1cbiAgICAgICd7IG9wZXJhdGlvbjogXCJhZGRFbnRyeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImF1ZGl0LWxvZ1wiLCBjb250ZW50OiBcIlVzZXIgcGVyZm9ybWVkIGFjdGlvblwiLCB0YWdzOiBbXCJhdWRpdFwiLCBcInNvdXJjZTphcGlcIl0sIG1ldGFkYXRhOiB7IGNvcnJlbGF0aW9uSWQ6IFwicmVxLTEyM1wiIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhZGRFbnRyeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcInNlc3Npb24tbm90ZXNcIiwgY29udGVudDogXCJLZXkgZGVjaXNpb24gbWFkZVwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgY2xlYXI6IHtcbiAgICBlbmRwb2ludDogJ0RFTEVURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoTWVtb3J5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0NsZWFyIGFsbCBlbnRyaWVzIGZyb20gYSBtZW1vcnkgZWxlbWVudCAoaXJyZXZlcnNpYmxlKScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ01lbW9yeSBlbGVtZW50IG5hbWUgdG8gY2xlYXInIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDbGVhclJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbmZpcm1hdGlvbiB3aXRoIGVsZW1lbnQgbmFtZSBhbmQgY2xlYXJlZCBlbnRyeSBjb3VudCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNsZWFyXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwidGVtcC1tZW1vcnlcIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogXCJDbGVhcmVkIGFsbCBlbnRyaWVzIGZyb20gdGVtcC1tZW1vcnlcIiB9XG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEV4ZWN1dGlvbiBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEV4ZWN1dGlvbiBsaWZlY3ljbGUgb3BlcmF0aW9ucyBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBUaGVzZSBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoRXhlY3V0ZSgpIHdoaWNoXG4gKiBwZXJmb3JtcyBhZ2VudCBzdGF0ZSBtYW5hZ2VtZW50LCBhdXRvbm9teSBldmFsdWF0aW9uLCBhbmQgcmVzaWxpZW5jZSBjaGVja3MuXG4gKiBUaGV5IGNhbm5vdCBiZSByb3V0ZWQgdGhyb3VnaCBTY2hlbWFEaXNwYXRjaGVyIHdpdGhvdXQgZXh0cmFjdGluZyB0aGF0XG4gKiBjb21wbGV4IHByZS1wcm9jZXNzaW5nIGxvZ2ljLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgRVhFQ1VUSU9OX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgZXhlY3V0ZV9hZ2VudDoge1xuICAgIGVuZHBvaW50OiAnRVhFQ1VURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydCBleGVjdXRpb24gb2YgYW4gYWdlbnQuIFRoZSBhZ2VudCBtdXN0IGhhdmUgYSBnb2FsLnRlbXBsYXRlIGRlZmluZWQgKHNldCBkdXJpbmcgY3JlYXRlX2VsZW1lbnQpLiBQYXNzIHZhbHVlcyBmb3IgdGhlIHRlbXBsYXRlIHBsYWNlaG9sZGVycyBpbiBwYXJhbWV0ZXJzLiAnICtcbiAgICAgICdMaWZlY3ljbGU6IEVsZW1lbnRzIGxpc3RlZCBpbiB0aGUgYWdlbnRcXCdzIGFjdGl2YXRlcyBmaWVsZCAoZS5nLiwgYWN0aXZhdGVzOiB7IHBlcnNvbmFzOiBbXCJSZXZpZXdlclwiXSwgc2tpbGxzOiBbXCJjb2RlLWFuYWx5c2lzXCJdIH0pIGFyZSBhdXRvbWF0aWNhbGx5IGFjdGl2YXRlZCB3aGVuIGV4ZWN1dGlvbiBiZWdpbnMg4oCUIHRoZWlyIGdhdGVrZWVwZXIgcG9saWNpZXMsIGluc3RydWN0aW9ucywgYW5kIGNhcGFiaWxpdGllcyBiZWNvbWUgYWN0aXZlIGZvciB0aGUgZHVyYXRpb24uICcgK1xuICAgICAgJ1Jlc2lsaWVuY2U6IElmIHRoZSBhZ2VudCBoYXMgYSByZXNpbGllbmNlIHBvbGljeSwgaXQgZ292ZXJucyBhdXRvbWF0aWMgcmVjb3ZlcnkgZHVyaW5nIGV4ZWN1dGlvbi4gb25TdGVwTGltaXRSZWFjaGVkIChwYXVzZXxjb250aW51ZXxyZXN0YXJ0KSBjb250cm9scyB3aGF0IGhhcHBlbnMgd2hlbiBtYXhBdXRvbm9tb3VzU3RlcHMgaXMgaGl0LiBvbkV4ZWN1dGlvbkZhaWx1cmUgKHBhdXNlfHJldHJ5fHJlc3RhcnQtZnJlc2gpIGNvbnRyb2xzIHJlY292ZXJ5IGZyb20gc3RlcCBmYWlsdXJlcy4gQWRkaXRpb25hbCBmaWVsZHM6IG1heFJldHJpZXMgKGRlZmF1bHQgMyksIG1heENvbnRpbnVhdGlvbnMgKGRlZmF1bHQgMTApLCByZXRyeUJhY2tvZmYgKGxpbmVhcnxleHBvbmVudGlhbCkuIFdpdGhvdXQgYSByZXNpbGllbmNlIHBvbGljeSwgZXhlY3V0aW9uIHBhdXNlcyBhdCBzdGVwIGxpbWl0cyBhbmQgZmFpbHVyZXMgKHNhZmUgZGVmYXVsdCkuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgbmFtZSAobXVzdCBhbHJlYWR5IGV4aXN0IHdpdGggYSBnb2FsLnRlbXBsYXRlKScgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHsgdHlwZTogJ29iamVjdCcsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZhbHVlcyBmb3IgdGhlIGFnZW50IGdvYWwgdGVtcGxhdGUgcGxhY2Vob2xkZXJzLiBJZiBnb2FsLnRlbXBsYXRlIGlzIFwiUmV2aWV3IHtmaWxlc30gZm9yIHtyZXZpZXdfdHlwZX0gaXNzdWVzXCIsIHBhc3MgeyBmaWxlczogXCJzcmMvKi50c1wiLCByZXZpZXdfdHlwZTogXCJzZWN1cml0eVwiIH0uIEZvciBhZ2VudHMgd2l0aCBwYXJhbWV0ZXJsZXNzIHRlbXBsYXRlcywgcGFzcyB7fS4nIH0sXG4gICAgICBtYXhBdXRvbm9tb3VzU3RlcHM6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUnVudGltZSBvdmVycmlkZSBmb3IgbWF4IGF1dG9ub21vdXMgc3RlcHMgKG92ZXJyaWRlcyB0aGUgYWdlbnRcXCdzIGF1dG9ub215Lm1heEF1dG9ub21vdXNTdGVwcykuIEludGVyYWN0cyB3aXRoIHJlc2lsaWVuY2U6IGlmIHRoZSBhZ2VudCBoYXMgb25TdGVwTGltaXRSZWFjaGVkOiBcImNvbnRpbnVlXCIsIGV4ZWN1dGlvbiBhdXRvLWNvbnRpbnVlcyB1cCB0byBtYXhDb250aW51YXRpb25zIHRpbWVzIGFmdGVyIGhpdHRpbmcgdGhpcyBsaW1pdC4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFeGVjdXRlQWdlbnRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdFeGVjdXRpb24gcmVzdWx0OiB7IF90eXBlLCBhZ2VudE5hbWUsIGdvYWwsIGdvYWxJZCwgc3RhdGVWZXJzaW9uLCBhY3RpdmVFbGVtZW50cyAoZWxlbWVudHMgYWN0aXZhdGVkIHZpYSBhZ2VudC5hY3RpdmF0ZXMpLCBhdmFpbGFibGVUb29scywgc3VjY2Vzc0NyaXRlcmlhLCBzYWZldHlUaWVyIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgIC8vIE1hdGNoZXMgQ29kZVJldmlld2VyIGZyb20gY3JlYXRlX2VsZW1lbnQ6IGdvYWwudGVtcGxhdGUgPSBcIlJldmlldyB7ZmlsZXN9IGZvciB7cmV2aWV3X3R5cGV9IGlzc3Vlc1wiXG4gICAgICAneyBvcGVyYXRpb246IFwiZXhlY3V0ZV9hZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdlclwiLCBwYXJhbWV0ZXJzOiB7IGZpbGVzOiBcInNyYy8qLnRzXCIsIHJldmlld190eXBlOiBcInNlY3VyaXR5XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImV4ZWN1dGVfYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3ZXJcIiwgcGFyYW1ldGVyczogeyBmaWxlczogXCJsaWIvYXV0aC50c1wiLCByZXZpZXdfdHlwZTogXCJxdWFsaXR5XCIgfSwgbWF4QXV0b25vbW91c1N0ZXBzOiA1IH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X2V4ZWN1dGlvbl9zdGF0ZToge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSBjdXJyZW50IGV4ZWN1dGlvbiBzdGF0ZSBpbmNsdWRpbmcgcHJvZ3Jlc3MgYW5kIGZpbmRpbmdzJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgb3IgZXhlY3V0YWJsZSBlbGVtZW50IG5hbWUnIH0sXG4gICAgICBpbmNsdWRlRGVjaXNpb25IaXN0b3J5OiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdJbmNsdWRlIGRlY2lzaW9uIGhpc3RvcnkgaW4gcmVzcG9uc2UnIH0sXG4gICAgICBpbmNsdWRlQ29udGV4dDogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnSW5jbHVkZSBleGVjdXRpb24gY29udGV4dCBpbiByZXNwb25zZScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0V4ZWN1dGlvblN0YXRlJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ3VycmVudCBleGVjdXRpb24gc3RhdGUgd2l0aCBwcm9ncmVzcywgZGVjaXNpb25zLCBhbmQgY29udGV4dCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9leGVjdXRpb25fc3RhdGVcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGluY2x1ZGVEZWNpc2lvbkhpc3Rvcnk6IHRydWUgfSB9JyxcbiAgICBdLFxuICB9LFxuICByZWNvcmRfZXhlY3V0aW9uX3N0ZXA6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgZGVzY3JpcHRpb246ICdSZWNvcmQgZXhlY3V0aW9uIHByb2dyZXNzLCBzdGVwIGNvbXBsZXRpb24sIG9yIGZpbmRpbmdzLiBSZXR1cm5zIGF1dG9ub215IGRpcmVjdGl2ZSB3aXRoIGNvbnRpbnVlL3BhdXNlIGRlY2lzaW9uIGFuZCBub3RpZmljYXRpb25zLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgc3RlcERlc2NyaXB0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBvZiBzdGVwIGNvbXBsZXRlZCcgfSxcbiAgICAgIG91dGNvbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogXCJTdGVwIG91dGNvbWU6ICdzdWNjZXNzJywgJ2ZhaWx1cmUnLCBvciAncGFydGlhbCdcIiB9LFxuICAgICAgZmluZGluZ3M6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnU3RlcCBmaW5kaW5ncyBvciByZXN1bHRzJyB9LFxuICAgICAgY29uZmlkZW5jZTogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdDb25maWRlbmNlIHNjb3JlICgwLTEpJyB9LFxuICAgICAgbmV4dEFjdGlvbkhpbnQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnSGludCBhYm91dCB0aGUgbmV4dCBwbGFubmVkIGFjdGlvbiAoZm9yIGF1dG9ub215IGV2YWx1YXRpb24pJyB9LFxuICAgICAgcmlza1Njb3JlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1Jpc2sgc2NvcmUgZm9yIHRoZSBuZXh0IGFjdGlvbiAoMC0xMDAgaW50ZWdlciwgZm9yIGF1dG9ub215IGV2YWx1YXRpb24pLiBIaWdoZXIgdmFsdWVzIGluY3JlYXNlIGxpa2VsaWhvb2Qgb2YgYXV0b25vbXkgcGF1c2UuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU3RlcFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1N0ZXAgcmVzdWx0OiB7IF90eXBlLCBzdWNjZXNzLCBtZXNzYWdlLCBkZWNpc2lvbjogeyBpZCwgZ29hbElkLCBkZWNpc2lvbiwgcmVhc29uaW5nLCBjb25maWRlbmNlIH0sIHN0YXRlOiB7IGdvYWxDb3VudCwgc3RhdGVWZXJzaW9uIH0sIGF1dG9ub215OiB7IGNvbnRpbnVlLCByZWFzb24/LCBmYWN0b3JzLCBzdGVwc1JlbWFpbmluZz8sIG5vdGlmaWNhdGlvbnM/OiBbeyB0eXBlLCBtZXNzYWdlIH1dIH0gfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInJlY29yZF9leGVjdXRpb25fc3RlcFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgc3RlcERlc2NyaXB0aW9uOiBcIkFuYWx5emVkIHNyYy8gZGlyZWN0b3J5XCIsIG91dGNvbWU6IFwic3VjY2Vzc1wiLCBmaW5kaW5nczogXCJGb3VuZCAzIHN0eWxlIGlzc3Vlc1wiLCBuZXh0QWN0aW9uSGludDogXCJBcHBseSBmaXhlc1wiLCByaXNrU2NvcmU6IDI1IH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBfdHlwZTogXCJTdGVwUmVzdWx0XCIsIHN1Y2Nlc3M6IHRydWUsIGRlY2lzaW9uOiB7IC4uLiB9LCBhdXRvbm9teTogeyBjb250aW51ZTogdHJ1ZSwgZmFjdG9yczogWy4uLl0sIHN0ZXBzUmVtYWluaW5nOiA0IH0gfVxuICAgIF0sXG4gIH0sXG4gIGNvbXBsZXRlX2V4ZWN1dGlvbjoge1xuICAgIGVuZHBvaW50OiAnRVhFQ1VURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgZGVzY3JpcHRpb246ICdTaWduYWwgdGhhdCBleGVjdXRpb24gZmluaXNoZWQgc3VjY2Vzc2Z1bGx5IHdpdGggc3VtbWFyeScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgb3V0Y29tZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiBcIkV4ZWN1dGlvbiBvdXRjb21lOiAnc3VjY2VzcycsICdmYWlsdXJlJywgb3IgJ3BhcnRpYWwnXCIgfSxcbiAgICAgIHN1bW1hcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1N1bW1hcnkgb2YgZXhlY3V0aW9uIHJlc3VsdHMnIH0sXG4gICAgICBnb2FsSWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnR29hbCBJRCBpZiB0cmFja2luZyBzcGVjaWZpYyBnb2FsJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29tcGxldGlvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0dvYWwgY29tcGxldGlvbiBzdGF0dXMgd2l0aCBtZXRyaWNzIGFuZCB1cGRhdGVkIHN0YXRlVmVyc2lvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbXBsZXRlX2V4ZWN1dGlvblwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgb3V0Y29tZTogXCJzdWNjZXNzXCIsIHN1bW1hcnk6IFwiUmV2aWV3ZWQgMTUgZmlsZXMsIGZvdW5kIDMgaXNzdWVzXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBjb250aW51ZV9leGVjdXRpb246IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdW1lIGV4ZWN1dGlvbiBmcm9tIHNhdmVkIHN0YXRlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgb3IgZXhlY3V0YWJsZSBlbGVtZW50IG5hbWUnIH0sXG4gICAgICBwcmV2aW91c1N0ZXBSZXN1bHQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVzdWx0IGZyb20gcHJldmlvdXMgc3RlcCcgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciBjb250aW51YXRpb24nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDb250aW51ZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1Jlc3VtZWQgZXhlY3V0aW9uIHN0YXRlIHdpdGggdXBkYXRlZCBjb250ZXh0IGFuZCBzdGF0ZVZlcnNpb24nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjb250aW51ZV9leGVjdXRpb25cIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIHByZXZpb3VzU3RlcFJlc3VsdDogXCJGaWxlcyBhbmFseXplZFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgYWJvcnRfZXhlY3V0aW9uOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Fib3J0IGEgcnVubmluZyBhZ2VudCBleGVjdXRpb24sIHJlamVjdGluZyBmdXJ0aGVyIG9wZXJhdGlvbnMgZm9yIHRoZSBnb2FsSWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdBZ2VudCBvciBleGVjdXRhYmxlIGVsZW1lbnQgbmFtZSB0byBhYm9ydCcgfSxcbiAgICAgIHJlYXNvbjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdSZWFzb24gZm9yIGFib3J0aW5nIHRoZSBleGVjdXRpb24nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdBYm9ydFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0Fib3J0IGNvbmZpcm1hdGlvbjogeyBfdHlwZSwgc3VjY2VzcywgYWdlbnROYW1lLCBhYm9ydGVkR29hbElkcywgcmVhc29uLCBtZXNzYWdlIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhYm9ydF9leGVjdXRpb25cIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIHJlYXNvbjogXCJVc2VyIHJlcXVlc3RlZCBjYW5jZWxsYXRpb25cIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiQWJvcnRSZXN1bHRcIiwgc3VjY2VzczogdHJ1ZSwgYWdlbnROYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgYWJvcnRlZEdvYWxJZHM6IFtcImdvYWxfYWJjMTIzXCJdLCByZWFzb246IFwiVXNlciByZXF1ZXN0ZWQgY2FuY2VsbGF0aW9uXCIgfVxuICAgIF0sXG4gIH0sXG4gIGdldF9nYXRoZXJlZF9kYXRhOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhZ2dyZWdhdGVkIGV4ZWN1dGlvbiBkYXRhIChzdGVwcywgZGVjaXNpb25zLCBmaW5kaW5ncywgYW5kIHN1bW1hcnkgc3RhdGlzdGljcykgZm9yIGEgc3BlY2lmaWMgZ29hbCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG5hbWUnIH0sXG4gICAgICBnb2FsSWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0dvYWwgSUQgdG8gZ2F0aGVyIGRhdGEgZm9yJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnR2F0aGVyZWREYXRhJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRlZCBkYXRhOiB7IF90eXBlLCBnb2FsSWQsIGFnZW50TmFtZSwgZW50cmllcywgc3VtbWFyeTogeyB0b3RhbFN0ZXBzLCBzdWNjZXNzZnVsU3RlcHMsIGF2ZXJhZ2VDb25maWRlbmNlIH0sIGdvYWwgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9nYXRoZXJlZF9kYXRhXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9hYmMxMjNcIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiR2F0aGVyZWREYXRhXCIsIGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiLCBlbnRyaWVzOiBbLi4uXSwgc3VtbWFyeTogeyB0b3RhbFN0ZXBzOiA1LCBzdWNjZXNzZnVsU3RlcHM6IDQgfSB9XG4gICAgXSxcbiAgfSxcbiAgcHJlcGFyZV9oYW5kb2ZmOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NlcmlhbGl6ZSBnb2FsIHByb2dyZXNzIGludG8gYSBwb3J0YWJsZSBoYW5kb2ZmIGJsb2NrIGZvciBzZXNzaW9uIHRyYW5zZmVyJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgbmFtZSB0byBwcmVwYXJlIGhhbmRvZmYgZm9yJyB9LFxuICAgICAgZ29hbElkOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdHb2FsIElEIHRvIGluY2x1ZGUgaW4gdGhlIGhhbmRvZmYnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdIYW5kb2ZmUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnSGFuZG9mZiBzdGF0ZSBzbmFwc2hvdDogeyBfdHlwZSwgaGFuZG9mZlN0YXRlOiB7IHZlcnNpb24sIGFnZW50TmFtZSwgZ29hbElkLCBjaGVja3N1bSB9LCBoYW5kb2ZmQmxvY2s6IFwiaHVtYW4tcmVhZGFibGUgaGVhZGVyICsgY29tcHJlc3NlZCBiYXNlNjQgcGF5bG9hZFwiIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJwcmVwYXJlX2hhbmRvZmZcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBfdHlwZTogXCJIYW5kb2ZmUmVzdWx0XCIsXG4gICAgICAvLyAgIGhhbmRvZmZTdGF0ZTogeyB2ZXJzaW9uOiBcIjEuMC4wXCIsIGFnZW50TmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiLCBjaGVja3N1bTogXCJzaGEyNTYuLi5cIiB9LFxuICAgICAgLy8gICBoYW5kb2ZmQmxvY2s6IFwi4pWU4pWQ4pWQ4pWQIEFHRU5UIEhBTkRPRkYg4pWQ4pWQ4pWQ4pWXXFxuIEFnZW50OiBjb2RlLXJldmlld2VyXFxuIEdvYWw6IC4uLlxcbuKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVnVxcbi0tLSBIQU5ET0ZGIFBBWUxPQUQgU1RBUlQgLS0tXFxuLi4uYmFzZTY0Li4uXFxuLS0tIEhBTkRPRkYgUEFZTE9BRCBFTkQgLS0tXCIgfVxuICAgIF0sXG4gIH0sXG4gIHJlc3VtZV9mcm9tX2hhbmRvZmY6IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdW1lIGFnZW50IGV4ZWN1dGlvbiBmcm9tIGEgaGFuZG9mZiBibG9jayB3aXRoIGludGVncml0eSB2YWxpZGF0aW9uJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgbmFtZSB0byByZXN1bWUgKG11c3QgbWF0Y2ggaGFuZG9mZiBibG9jayknIH0sXG4gICAgICBoYW5kb2ZmQmxvY2s6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSBmdWxsIGhhbmRvZmYgYmxvY2sgdGV4dCAoaW5jbHVkaW5nIHBheWxvYWQgbWFya2VycyknIH0sXG4gICAgICBwYXJhbWV0ZXJzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0dvYWwgdGVtcGxhdGUgcGFyYW1ldGVycyAoc2FtZSBhcyBleGVjdXRlX2FnZW50IHBhcmFtZXRlcnMpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUmVzdW1lUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUmVzdW1lZCBleGVjdXRpb24gd2l0aCByZXN0b3JhdGlvbiBtZXRhZGF0YTogeyBfdHlwZSwgYWdlbnROYW1lLCBnb2FsLCBnb2FsSWQsIHJlc3RvcmVkRnJvbTogeyBhZ2VudE5hbWUsIGdvYWxJZCwgc3RlcHNDb21wbGV0ZWQsIHByZXBhcmVkQXQgfSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicmVzdW1lX2Zyb21faGFuZG9mZlwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgaGFuZG9mZkJsb2NrOiBcIi4uLmZ1bGwgaGFuZG9mZiBibG9jay4uLlwiLCBwYXJhbWV0ZXJzOiB7IHRhc2s6IFwiUmV2aWV3IFBSICM0MlwiIH0gfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IF90eXBlOiBcIlJlc3VtZVJlc3VsdFwiLCBhZ2VudE5hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9uZXc0NTZcIiwgcmVzdG9yZWRGcm9tOiB7IGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiLCBzdGVwc0NvbXBsZXRlZDogNSB9IH1cbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2F0ZWtlZXBlciBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdhdGVrZWVwZXIgb3BlcmF0aW9ucyBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBUaGVzZSBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoR2F0ZWtlZXBlcigpIHdoaWNoXG4gKiBwZXJmb3JtcyBzZXNzaW9uLWxldmVsIGNvbmZpcm1hdGlvbiB0cmFja2luZyBhbmQgZGFuZ2VyIHpvbmUgdmVyaWZpY2F0aW9uLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgR0FURUtFRVBFUl9TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGNvbmZpcm1fb3BlcmF0aW9uOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gYSBwZW5kaW5nIG9wZXJhdGlvbiB0aGF0IHJlcXVpcmVzIHVzZXIgYXBwcm92YWwgKEdhdGVrZWVwZXIgZmxvdyknLFxuICAgIHBhcmFtczoge1xuICAgICAgb3BlcmF0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdPcGVyYXRpb24gbmFtZSB0byBjb25maXJtIChlLmcuLCBcImNyZWF0ZV9lbGVtZW50XCIpJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsIGVsZW1lbnQgdHlwZSBzY29wZSBmb3IgdGhlIGNvbmZpcm1hdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NvbmZpcm1SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maXJtYXRpb24gc3RhdHVzOiB7IGNvbmZpcm1lZCwgb3BlcmF0aW9uLCBlbGVtZW50X3R5cGU/LCBtZXNzYWdlIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjb25maXJtX29wZXJhdGlvblwiLCBwYXJhbXM6IHsgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIgfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IGNvbmZpcm1lZDogdHJ1ZSwgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIG1lc3NhZ2U6IFwiT3BlcmF0aW9uIGNvbmZpcm1lZCBmb3IgdGhpcyBzZXNzaW9uXCIgfVxuICAgIF0sXG4gIH0sXG4gIHZlcmlmeV9jaGFsbGVuZ2U6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgZGVzY3JpcHRpb246ICdTdWJtaXQgdmVyaWZpY2F0aW9uIGNvZGUgdG8gdW5ibG9jayBhIGRhbmdlciB6b25lIG9wZXJhdGlvbicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBjaGFsbGVuZ2VfaWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1VVSUQgdjQgY2hhbGxlbmdlIElEIGZyb20gZGFuZ2VyIHpvbmUgdHJpZ2dlcicgfSxcbiAgICAgIGNvZGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBjb2RlIGRpc3BsYXllZCB0byB0aGUgdXNlcicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1ZlcmlmeVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBzdGF0dXM6IHsgdmVyaWZpZWQsIGNoYWxsZW5nZV9pZCwgYWdlbnROYW1lPywgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwidmVyaWZ5X2NoYWxsZW5nZVwiLCBwYXJhbXM6IHsgY2hhbGxlbmdlX2lkOiBcIjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMFwiLCBjb2RlOiBcIkFCQzEyM1wiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyB2ZXJpZmllZDogdHJ1ZSwgY2hhbGxlbmdlX2lkOiBcIi4uLlwiLCBhZ2VudE5hbWU6IFwibXktYWdlbnRcIiwgbWVzc2FnZTogXCJBZ2VudCB1bmJsb2NrZWRcIiB9XG4gICAgXSxcbiAgfSxcbiAgYmVldGxlanVpY2VfYmVldGxlanVpY2VfYmVldGxlanVpY2U6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgZGVzY3JpcHRpb246ICdTYWZlLXRyaWdnZXIgdGhlIGZ1bGwgZGFuZ2VyIHpvbmUgdmVyaWZpY2F0aW9uIHBpcGVsaW5lIGZvciB0ZXN0aW5nIHB1cnBvc2VzJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGFnZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQWdlbnQgdG8gYmxvY2sgKGRlZmF1bHRzIHRvIFwiYmVldGxlanVpY2UtdGVzdC1hZ2VudFwiKScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0JlZXRsZWp1aWNlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ2hhbGxlbmdlIGRldGFpbHM6IHsgY2hhbGxlbmdlX2lkLCBhZ2VudE5hbWUsIGV4cGlyZXNBdCwgbWVzc2FnZSB9LiBDb2RlIGlzIGRpc3BsYXllZCB2aWEgT1MgZGlhbG9nLCBuZXZlciBpbiByZXNwb25zZS4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJiZWV0bGVqdWljZV9iZWV0bGVqdWljZV9iZWV0bGVqdWljZVwiIH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgY2hhbGxlbmdlX2lkOiBcIi4uLlwiLCBhZ2VudE5hbWU6IFwiYmVldGxlanVpY2UtdGVzdC1hZ2VudFwiLCBleHBpcmVzQXQ6IFwiLi4uXCIsIG1lc3NhZ2U6IFwiVmVyaWZpY2F0aW9uIGNvZGUgZGlzcGxheWVkIHZpYSBzeXN0ZW0gZGlhbG9nXCIgfVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImJlZXRsZWp1aWNlX2JlZXRsZWp1aWNlX2JlZXRsZWp1aWNlXCIsIHBhcmFtczogeyBhZ2VudF9uYW1lOiBcIm15LXRlc3QtYWdlbnRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIElzc3VlICM2MjU6IENMSS1sZXZlbCBwZXJtaXNzaW9uIGRlbGVnYXRpb24gdmlhIC0tcGVybWlzc2lvbi1wcm9tcHQtdG9vbFxuICAvLyBJc3N1ZSAjNjQ3OiBNb3ZlZCB0byBSRUFEIOKAlCBwb2xpY3kgZXZhbHVhdGlvbiBpcyByZWFkLW9ubHlcbiAgcGVybWlzc2lvbl9wcm9tcHQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnRXZhbHVhdGUgYSBDTEktbGV2ZWwgcGVybWlzc2lvbiBwcm9tcHQgKEJhc2gsIEVkaXQsIFdyaXRlLCBNQ1AgdG9vbHMpLiBSZXR1cm5zIGFsbG93L2RlbnkgZGVjaXNpb24gZm9yIG5vbi1pbnRlcmFjdGl2ZSBDbGF1ZGUgQ29kZSBzZXNzaW9ucyB1c2luZyAtLXBlcm1pc3Npb24tcHJvbXB0LXRvb2wuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHRvb2xfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIHRvb2wgcmVxdWVzdGluZyBwZXJtaXNzaW9uIChlLmcuLCBcIkJhc2hcIiwgXCJFZGl0XCIsIFwiV3JpdGVcIiwgXCJtY3BfX3NlcnZlcl9fdG9vbFwiKScgfSxcbiAgICAgIGlucHV0OiB7IHR5cGU6ICdvYmplY3QnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdG9vbCBpbnB1dCBwYXJhbWV0ZXJzIHRvIGV2YWx1YXRlIChlLmcuLCB7IGNvbW1hbmQ6IFwiZ2l0IHB1c2hcIiB9IGZvciBCYXNoKScgfSxcbiAgICAgIGFnZW50X2lkZW50aXR5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsOiBpZGVudGl0eSBvZiB0aGUgc3ViLWFnZW50IG1ha2luZyB0aGUgcmVxdWVzdCAoZnJvbSBDbGF1ZGUgQ29kZSAtLXBlcm1pc3Npb24tcHJvbXB0LXRvb2wpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUGVybWlzc2lvbkRlY2lzaW9uJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAneyBiZWhhdmlvcjogXCJhbGxvd1wifFwiZGVueVwiLCB1cGRhdGVkSW5wdXQ/LCBtZXNzYWdlPywgY2xhc3NpZmljYXRpb24/OiB7IHJpc2tMZXZlbCwgcmVhc29uLCBzdGFnZSwgcmlza1Njb3JlPywgaXJyZXZlcnNpYmxlPyB9LCBwb2xpY3lDb250ZXh0PzogeyBldmFsdWF0ZWRFbGVtZW50cywgZGVjaXNpb25DaGFpbiB9LCBhcHByb3ZhbFJlcXVlc3Q/OiB7IHJlcXVlc3RJZCwgdG9vbE5hbWUsIHJpc2tMZXZlbCwgcmlza1Njb3JlLCBpcnJldmVyc2libGUsIHJlYXNvbiB9IH0uIFJpc2sgc2NvcmVzOiAwPXNhZmUsIDQwPW1vZGVyYXRlLCA4MD1kYW5nZXJvdXMsIDEwMD1ibG9ja2VkOyBhZGp1c3RtZW50czogaXJyZXZlcnNpYmxlKCsxMCksIG5ldHdvcmsoKzEwKSwgb3V0LW9mLXNjb3BlIHJlYWQoKzEwKSwgZmlsZSBjcmVhdGlvbigrNSkuIFN0YWdlczogc3RhdGljX2FsbG93LCBzdGF0aWNfZGVueSwgZWxlbWVudF9kZW55LCBlbGVtZW50X2FsbG93LCBjbGlfYXBwcm92YWwsIGFwcHJvdmFsX3JlcXVpcmVkLCBkZWZhdWx0X2FsbG93LicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInBlcm1pc3Npb25fcHJvbXB0XCIsIHBhcmFtczogeyB0b29sX25hbWU6IFwiQmFzaFwiLCBpbnB1dDogeyBjb21tYW5kOiBcIm5wbSB0ZXN0XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInBlcm1pc3Npb25fcHJvbXB0XCIsIHBhcmFtczogeyB0b29sX25hbWU6IFwiRWRpdFwiLCBpbnB1dDogeyBmaWxlX3BhdGg6IFwic3JjL2luZGV4LnRzXCIsIG9sZF9zdHJpbmc6IFwiLi4uXCIsIG5ld19zdHJpbmc6IFwiLi4uXCIgfSB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIElzc3VlICM2MjUgUGhhc2UgMjogQ0xJIHBvbGljeSB2aXNpYmlsaXR5XG4gIGdldF9lZmZlY3RpdmVfY2xpX3BvbGljaWVzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBlZmZlY3RpdmUgQ0xJLWxldmVsIHBlcm1pc3Npb24gcG9saWNpZXMgYWNyb3NzIGFsbCBhY3RpdmUgZWxlbWVudHMnLFxuICAgIHBhcmFtczoge1xuICAgICAgdG9vbF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsOiBldmFsdWF0ZSBhIHNwZWNpZmljIHRvb2wgKGUuZy4sIFwiQmFzaFwiLCBcIkVkaXQ6c3JjL2luZGV4LnRzXCIpJyB9LFxuICAgICAgdG9vbF9pbnB1dDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdPcHRpb25hbDogdG9vbCBpbnB1dCB0byBldmFsdWF0ZSAoZS5nLiwgeyBjb21tYW5kOiBcIm5wbSB0ZXN0XCIgfSknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFZmZlY3RpdmVDbGlQb2xpY2llcycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ3sgYWN0aXZlRWxlbWVudENvdW50LCBoYXNBbGxvd2xpc3QsIGVsZW1lbnRzLCBjb21iaW5lZEFsbG93UGF0dGVybnMsIGNvbWJpbmVkRGVueVBhdHRlcm5zLCBldmFsdWF0aW9uPyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2VmZmVjdGl2ZV9jbGlfcG9saWNpZXNcIiB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZWZmZWN0aXZlX2NsaV9wb2xpY2llc1wiLCBwYXJhbXM6IHsgdG9vbF9uYW1lOiBcIkJhc2hcIiwgdG9vbF9pbnB1dDogeyBjb21tYW5kOiBcImdpdCBwdXNoXCIgfSB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIElzc3VlICM2MjUgUGhhc2UgMzogQ0xJIGFwcHJvdmFsIHdvcmtmbG93XG4gIGFwcHJvdmVfY2xpX3Blcm1pc3Npb246IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnQXBwcm92ZSBhIHBlbmRpbmcgQ0xJIHRvb2wgcGVybWlzc2lvbiByZXF1ZXN0LiBVc2VkIGJ5IGJyaWRnZXMgKFp1bGlwLCBTbGFjaykgdG8gcmVsYXkgaHVtYW4gYXBwcm92YWwgZm9yIHRvb2xzIHRoYXQgcmVxdWlyZSBpdC4nLFxuICAgIHBhcmFtczoge1xuICAgICAgcmVxdWVzdF9pZDogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQXBwcm92YWwgcmVxdWVzdCBJRCBmcm9tIHBlcm1pc3Npb25fcHJvbXB0IGRlbnkgcmVzcG9uc2UgKGZvcm1hdDogY2xpLTxVVUlEPiknIH0sXG4gICAgICBzY29wZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdcInNpbmdsZVwiIChkZWZhdWx0LCBjb25zdW1lZCBvbiB1c2UpIG9yIFwidG9vbF9zZXNzaW9uXCIgKGFsbCB1c2VzIG9mIHRoYXQgdG9vbCBmb3IgdGhlIHNlc3Npb24pJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQXBwcm92ZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ3sgYXBwcm92ZWQsIHJlcXVlc3RJZCwgdG9vbE5hbWUsIHNjb3BlLCBtZXNzYWdlIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhcHByb3ZlX2NsaV9wZXJtaXNzaW9uXCIsIHBhcmFtczogeyByZXF1ZXN0X2lkOiBcImNsaS1hYmMuLi5cIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFwcHJvdmVfY2xpX3Blcm1pc3Npb25cIiwgcGFyYW1zOiB7IHJlcXVlc3RfaWQ6IFwiY2xpLWFiYy4uLlwiLCBzY29wZTogXCJ0b29sX3Nlc3Npb25cIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGdldF9wZW5kaW5nX2NsaV9hcHByb3ZhbHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGFsbCBwZW5kaW5nIENMSSB0b29sIGFwcHJvdmFsIHJlcXVlc3RzIGZvciB0aGlzIHNlc3Npb24uIFJldHVybnMgdW5hcHByb3ZlZCByZXF1ZXN0cyB0aGF0IGFyZSB3YWl0aW5nIGZvciBodW1hbiBhdXRob3JpemF0aW9uLicsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdQZW5kaW5nQXBwcm92YWxzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAneyBwZW5kaW5nOiBDbGlBcHByb3ZhbFJlY29yZFtdLCBjb3VudDogbnVtYmVyIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfcGVuZGluZ19jbGlfYXBwcm92YWxzXCIgfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExvZ2dpbmcgT3BlcmF0aW9ucyBTY2hlbWEgKEludHJvc3BlY3Rpb24tT25seSlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBMb2dnaW5nIG9wZXJhdGlvbnMgc2NoZW1hIOKAlCBpbnRyb3NwZWN0aW9uLW9ubHkuXG4gKlxuICogRGlzcGF0Y2hlZCB2aWEgTUNQQVFMSGFuZGxlci5kaXNwYXRjaExvZ2dpbmcoKSB3aXRoIHJ1bnRpbWUgcGFyYW1ldGVyXG4gKiB2YWxpZGF0aW9uIHZpYSB2YWxpZGF0ZUxvZ1F1ZXJ5UGFyYW1zKCkuXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk0IC0gRG9jdW1lbnQgYWxsIE1DUC1BUUwgb3BlcmF0aW9ucyB2aWEgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBMT0dHSU5HX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgcXVlcnlfbG9nczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoTG9nZ2luZycsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSByZWNlbnQgbG9nIGVudHJpZXMgZnJvbSB0aGUgaW4tbWVtb3J5IGJ1ZmZlci4gUmV0dXJucyBmaWx0ZXJlZCwgcGFnaW5hdGVkIHJlc3VsdHMgc29ydGVkIG5ld2VzdC1maXJzdC4gT25seSBxdWVyaWVzIHRoZSBob3QgdGllciAoaW4tbWVtb3J5KTsgZXZpY3RlZCBlbnRyaWVzIGV4aXN0IG9ubHkgaW4gZGlzayBsb2cgZmlsZXMuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGNhdGVnb3J5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogXCJMb2cgY2F0ZWdvcnkgZmlsdGVyOiAnYXBwbGljYXRpb24nLCAnc2VjdXJpdHknLCAncGVyZm9ybWFuY2UnLCAndGVsZW1ldHJ5Jywgb3IgJ2FsbCcuIERlZmF1bHQ6ICdhbGwnXCIgfSxcbiAgICAgIGxldmVsOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogXCJNaW5pbXVtIGxvZyBsZXZlbCAoaW5jbHVzaXZlKTogJ2RlYnVnJywgJ2luZm8nLCAnd2FybicsIG9yICdlcnJvcicuIE9taXQgZm9yIGFsbCBsZXZlbHNcIiB9LFxuICAgICAgc291cmNlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0NvbXBvbmVudCBuYW1lIGZpbHRlciAoY2FzZS1pbnNlbnNpdGl2ZSBzdWJzdHJpbmcgbWF0Y2gpJyB9LFxuICAgICAgbWVzc2FnZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGcmVlIHRleHQgc2VhcmNoIGluIG1lc3NhZ2UgZmllbGQgKGNhc2UtaW5zZW5zaXRpdmUgc3Vic3RyaW5nIG1hdGNoKScgfSxcbiAgICAgIHNpbmNlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0lTTyA4NjAxIHRpbWVzdGFtcCDigJQgcmV0dXJuIGVudHJpZXMgYWZ0ZXIgdGhpcyB0aW1lJyB9LFxuICAgICAgdW50aWw6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnSVNPIDg2MDEgdGltZXN0YW1wIOKAlCByZXR1cm4gZW50cmllcyBiZWZvcmUgdGhpcyB0aW1lJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnTWF4IHJlc3VsdHMgdG8gcmV0dXJuICgxLTUwMCwgZGVmYXVsdCA1MCknIH0sXG4gICAgICBvZmZzZXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnTnVtYmVyIG9mIHJlc3VsdHMgdG8gc2tpcCBmb3IgcGFnaW5hdGlvbiAoZGVmYXVsdCAwKScgfSxcbiAgICAgIGNvcnJlbGF0aW9uSWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQ29ycmVsYXRpb24gSUQgZm9yIHJlcXVlc3QgdHJhY2luZycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0xvZ1F1ZXJ5UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnTG9nIGVudHJpZXM6IHsgX3R5cGU6IFwiTG9nUXVlcnlSZXN1bHRcIiwgZW50cmllcywgdG90YWwsIGZpbHRlcnMgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2xvZ3NcIiB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IF90eXBlOiBcIkxvZ1F1ZXJ5UmVzdWx0XCIsIGVudHJpZXM6IFsuLi5dLCB0b3RhbDogNDIgfVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2xvZ3NcIiwgcGFyYW1zOiB7IGNhdGVnb3J5OiBcInNlY3VyaXR5XCIsIGxldmVsOiBcIndhcm5cIiwgbGltaXQ6IDEwIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfbG9nc1wiLCBwYXJhbXM6IHsgc2luY2U6IFwiMjAyNi0wMS0wMVQwMDowMDowMFpcIiwgc291cmNlOiBcIkdhdGVrZWVwZXJcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBY3RpdmF0aW9uIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQWN0aXZhdGlvbiBsaWZlY3ljbGUgb3BlcmF0aW9ucyBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBUaGVzZSBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoQWN0aXZhdGlvbigpIHdoaWNoXG4gKiByb3V0ZXMgdG8gRWxlbWVudENSVURIYW5kbGVyIGFjdGl2YXRpb24gc3RyYXRlZ2llcy4gVGhleSBjYW5ub3QgYmUgcm91dGVkXG4gKiB0aHJvdWdoIFNjaGVtYURpc3BhdGNoZXIgd2l0aG91dCBleHRyYWN0aW5nIHRoYXQgc3RyYXRlZ3ktYmFzZWQgZGlzcGF0Y2ggbG9naWMuXG4gKlxuICogSXNzdWUgIzU5ODogQWN0aXZhdGlvbiBzdGF0ZSBpcyBub3cgcGVyc2lzdGVkIHBlci1zZXNzaW9uIHZpYSBBY3RpdmF0aW9uU3RvcmUuXG4gKiBTZXQgRE9MTEhPVVNFX1NFU1NJT05fSUQgZW52IHZhciB0byBpc29sYXRlIGFjdGl2YXRpb24gc3RhdGUgYmV0d2VlbiBzZXNzaW9ucy5cbiAqXG4gKiBAc2VlIElzc3VlICM1OTQgLSBEb2N1bWVudCBhbGwgTUNQLUFRTCBvcGVyYXRpb25zIHZpYSBzY2hlbWFcbiAqIEBzZWUgSXNzdWUgIzU5OCAtIFBlci1zZXNzaW9uIGFjdGl2YXRpb24gcGVyc2lzdGVuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IEFDVElWQVRJT05fU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBhY3RpdmF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hBY3RpdmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FjdGl2YXRlIGFuIGVsZW1lbnQgZm9yIHVzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uLiBBY3RpdmF0aW9uIHN0YXRlIGlzIHBlcnNpc3RlZCBwZXItc2Vzc2lvbiAoRE9MTEhPVVNFX1NFU1NJT05fSUQpIGFuZCByZXN0b3JlZCBvbiBzZXJ2ZXIgcmVzdGFydC4nLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSBlbGVtZW50IHRvIGFjdGl2YXRlJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGU6IHBlcnNvbmEsIHNraWxsLCBhZ2VudCwgbWVtb3J5LCBvciBlbnNlbWJsZScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0FjdGl2YXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBY3RpdmF0aW9uIGNvbmZpcm1hdGlvbiB3aXRoIGVsZW1lbnQgZGV0YWlscyBhbmQgcmVuZGVyZWQgY29udGVudCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFjdGl2YXRlX2VsZW1lbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiYWN0aXZhdGVfZWxlbWVudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNyZWF0aXZlIERldlwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZGVhY3RpdmF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hBY3RpdmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlYWN0aXZhdGUgYW4gZWxlbWVudCwgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgY3VycmVudCBzZXNzaW9uLiBQZXJzaXN0ZWQgYWN0aXZhdGlvbiBzdGF0ZSBpcyB1cGRhdGVkLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIGVsZW1lbnQgdG8gZGVhY3RpdmF0ZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlOiBwZXJzb25hLCBza2lsbCwgYWdlbnQsIG1lbW9yeSwgb3IgZW5zZW1ibGUnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdEZWFjdGl2YXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdEZWFjdGl2YXRpb24gY29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZGVhY3RpdmF0ZV9lbGVtZW50XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGdldF9hY3RpdmVfZWxlbWVudHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEFjdGl2YXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGFsbCBjdXJyZW50bHkgYWN0aXZlIGVsZW1lbnRzIHdpdGggcmVuZGVyZWQgY29udGVudCwgb3B0aW9uYWxseSBmaWx0ZXJlZCBieSB0eXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdPcHRpb25hbCBlbGVtZW50IHR5cGUgZmlsdGVyLiBPbWl0IHRvIGdldCBhbGwgYWN0aXZlIGVsZW1lbnRzIGFjcm9zcyBhbGwgdHlwZXMuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQWN0aXZlRWxlbWVudHNSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBY3RpdmUgZWxlbWVudHMgd2l0aCByZW5kZXJlZCBjb250ZW50LCBncm91cGVkIGJ5IHR5cGUgd2hlbiB1bmZpbHRlcmVkJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2FjdGl2ZV9lbGVtZW50c1wiIH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9hY3RpdmVfZWxlbWVudHNcIiwgcGFyYW1zOiB7IGVsZW1lbnRfdHlwZTogXCJza2lsbFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlYXJjaCBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFNlYXJjaCBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hTZWFyY2goKSB3aGljaFxuICogcm91dGVzIHRvIEVsZW1lbnRRdWVyeVNlcnZpY2UgbWV0aG9kcy4gVGhleSBjYW5ub3QgYmUgcm91dGVkIHRocm91Z2hcbiAqIFNjaGVtYURpc3BhdGNoZXIgd2l0aG91dCBleHRyYWN0aW5nIHRoYXQgcHJlLXByb2Nlc3NpbmcgbG9naWMuXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk1IC0gT3BlcmF0aW9uIGRvY3VtZW50YXRpb24gY292ZXJhZ2UgZ2F0ZVxuICovXG5leHBvcnQgY29uc3QgU0VBUkNIX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgc2VhcmNoX2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hTZWFyY2gnLFxuICAgIGRlc2NyaXB0aW9uOiAnRnVsbC10ZXh0IHNlYXJjaCBhY3Jvc3MgZWxlbWVudCBuYW1lcywgZGVzY3JpcHRpb25zLCBhbmQgY29udGVudCB3aXRoIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeSBzdHJpbmcgKG1heCAxMDAwIGNoYXJhY3RlcnMpJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsIGVsZW1lbnQgdHlwZSBmaWx0ZXIgKHNlYXJjaGVzIGFsbCB0eXBlcyBpZiBvbWl0dGVkKScgfSxcbiAgICAgIHBhZ2U6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUGFnZSBudW1iZXIgZm9yIHBhZ2luYXRpb24gKDEtaW5kZXhlZCknIH0sXG4gICAgICBwYWdlU2l6ZTogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdSZXN1bHRzIHBlciBwYWdlJyB9LFxuICAgICAgc29ydDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTb3J0IG9wdGlvbnM6IHsgc29ydEJ5LCBzb3J0T3JkZXIgfScgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICB0eXBlOiAnc3RyaW5nIHwgc3RyaW5nW10nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZpZWxkcyB0byBpbmNsdWRlOiBhcnJheSBsaWtlIFtcImVsZW1lbnRfbmFtZVwiLCBcImRlc2NyaXB0aW9uXCJdIE9SIHByZXNldDogXCJtaW5pbWFsXCIsIFwic3RhbmRhcmRcIiwgXCJmdWxsXCInLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1NlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCByZXN1bHRzOiB7IGl0ZW1zOiBbeyB0eXBlLCBuYW1lLCBkZXNjcmlwdGlvbiwgbWF0Y2hlZEluIH1dLCBwYWdpbmF0aW9uOiB7IHBhZ2UsIHBhZ2VTaXplLCB0b3RhbEl0ZW1zLCB0b3RhbFBhZ2VzIH0sIHNvcnRpbmcgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9lbGVtZW50c1wiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY3JlYXRpdmVcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiYXNzaXN0YW50XCIsIHBhZ2VTaXplOiAxMCB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIHF1ZXJ5X2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hTZWFyY2gnLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVlcnkgZWxlbWVudHMgd2l0aCBmaWx0ZXJzLCBzb3J0aW5nLCBwYWdpbmF0aW9uLCBhbmQgY291bnQgYWdncmVnYXRpb24uIFJldHVybnMgc3RydWN0dXJlZCBKU09OLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZSB0byBxdWVyeSAocmVxdWlyZWQpJyB9LFxuICAgICAgZmlsdGVyczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGaWx0ZXIgb3B0aW9uczogeyBuYW1lQ29udGFpbnMsIHRhZ3MsIGF1dGhvciwgc3RhdHVzLCBjYXRlZ29yeSB9JyB9LFxuICAgICAgc29ydDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTb3J0IG9wdGlvbnM6IHsgc29ydEJ5LCBzb3J0T3JkZXIgfScgfSxcbiAgICAgIHBhZ2luYXRpb246IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGlvbjogeyBwYWdlLCBwYWdlU2l6ZSB9JyB9LFxuICAgICAgYWdncmVnYXRlOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0FnZ3JlZ2F0aW9uOiB7IGNvdW50PzogYm9vbGVhbiwgZ3JvdXBfYnk/OiBzdHJpbmcgfS4gZ3JvdXBfYnkgZ3JvdXBzIHJlc3VsdHMgYnkgYSBtZXRhZGF0YSBmaWVsZCBhbmQgcmV0dXJucyBjb3VudHMgcGVyIGdyb3VwLiBBbGxvd2VkIGdyb3VwX2J5IGZpZWxkczogY2F0ZWdvcnksIGF1dGhvciwgdGFncywgc3RhdHVzLCB2ZXJzaW9uLiBVc2UgZ3JvdXBfYnk6IFwiY2F0ZWdvcnlcIiB0byBkaXNjb3ZlciBleGlzdGluZyBjYXRlZ29yaWVzIGluIHRoZSBwb3J0Zm9saW8uJyB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcgfCBzdHJpbmdbXScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmllbGRzIHRvIGluY2x1ZGU6IGFycmF5IGxpa2UgW1wiZWxlbWVudF9uYW1lXCIsIFwiZGVzY3JpcHRpb25cIl0gT1IgcHJlc2V0OiBcIm1pbmltYWxcIiwgXCJzdGFuZGFyZFwiLCBcImZ1bGxcIicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUXVlcnlSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdRdWVyeSByZXN1bHRzOiB7IGl0ZW1zOiBbeyBuYW1lLCBkZXNjcmlwdGlvbiwgdHlwZSwgdmVyc2lvbiwgdGFncyB9XSwgcGFnaW5hdGlvbiwgc29ydGluZywgZmlsdGVycyB9LiBXaXRoIGFnZ3JlZ2F0ZTogYWRkcyBjb3VudCAodG90YWwpLCBncm91cHMgKGlmIGdyb3VwX2J5IHVzZWQsIGUuZy4geyBkZXZlbG9wbWVudDogNSwgc2VjdXJpdHk6IDMgfSkuJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGZpbHRlcnM6IHsgdGFnczogW1wiYXNzaXN0YW50XCJdIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IHBhZ2luYXRpb246IHsgcGFnZTogMSwgcGFnZVNpemU6IDEwIH0sIHNvcnQ6IHsgc29ydEJ5OiBcIm5hbWVcIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyBhZ2dyZWdhdGU6IHsgY291bnQ6IHRydWUsIGdyb3VwX2J5OiBcImNhdGVnb3J5XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJ0ZW1wbGF0ZVwiLCBwYXJhbXM6IHsgZmlsdGVyczogeyBjYXRlZ29yeTogXCJzZWN1cml0eVwiIH0sIGFnZ3JlZ2F0ZTogeyBjb3VudDogdHJ1ZSB9IH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFnZ3JlZ2F0ZWQgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU2NoZW1hLWRyaXZlbiBvcGVyYXRpb25zIOKAlCB1c2VkIGJ5IFNjaGVtYURpc3BhdGNoZXIgZm9yIGRpc3BhdGNoLlxuICpcbiAqIE9ubHkgb3BlcmF0aW9ucyB0aGF0IGNhbiBiZSBmdWxseSBkaXNwYXRjaGVkIHRocm91Z2ggU2NoZW1hRGlzcGF0Y2hlclxuICogYmVsb25nIGhlcmUuIE9wZXJhdGlvbnMgd2l0aCBjb21wbGV4IHByZS1wcm9jZXNzaW5nIChtZW1vcnkgbG9va3VwLFxuICogYWdlbnQgc3RhdGUgbWFuYWdlbWVudCwgZ2F0ZWtlZXBlciBzZXNzaW9ucywgbG9nIHZhbGlkYXRpb24pIGFyZSBpblxuICogSU5UUk9TUEVDVElPTl9PTkxZX1NDSEVNQVMgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDSEVNQV9EUklWRU5fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICAuLi5DT0xMRUNUSU9OX09QRVJBVElPTlMsXG4gIC4uLkFVVEhfT1BFUkFUSU9OUyxcbiAgLi4uRU5IQU5DRURfSU5ERVhfT1BFUkFUSU9OUyxcbiAgLi4uVEVNUExBVEVfT1BFUkFUSU9OUyxcbiAgLi4uSU5UUk9TUEVDVElPTl9PUEVSQVRJT05TLFxuICAuLi5QRVJTT05BX09QRVJBVElPTlMsXG4gIC4uLkNPTkZJR19PUEVSQVRJT05TLFxuICAuLi5QT1JURk9MSU9fT1BFUkFUSU9OUyxcbiAgLi4uRUxFTUVOVF9DUlVEX09QRVJBVElPTlMsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEludHJvc3BlY3Rpb24tb25seSBzY2hlbWFzIOKAlCBtZXRhZGF0YSBmb3Igb3BlcmF0aW9ucyBkaXNwYXRjaGVkIGJ5XG4gKiBsZWdhY3kgbWV0aG9kcyAoZGlzcGF0Y2hNZW1vcnksIGRpc3BhdGNoRXhlY3V0ZSwgZGlzcGF0Y2hHYXRla2VlcGVyLFxuICogZGlzcGF0Y2hMb2dnaW5nKS4gVGhlc2UgYXJlIE5PVCB1c2VkIGZvciBkaXNwYXRjaCByb3V0aW5nLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG4vKipcbiAqIEJyb3dzZXIgb3BlcmF0aW9uIHNjaGVtYXNcbiAqIEBzZWUgSXNzdWUgIzc3NCAtIG9wZW4gcG9ydGZvbGlvIGJyb3dzZXJcbiAqL1xuZXhwb3J0IGNvbnN0IEJST1dTRVJfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBvcGVuX3BvcnRmb2xpb19icm93c2VyOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hCcm93c2VyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IHRoZSBwb3J0Zm9saW8gd2ViIFVJIGFuZCBvcGVuIGl0IGluIHRoZSBzeXN0ZW0gYnJvd3Nlci4gVGhlIHdlYiBzZXJ2ZXIgcnVucyBvbiBsb2NhbGhvc3Q6MzkzOSBhbmQgc2hvd3MgYWxsIHBvcnRmb2xpbyBlbGVtZW50cyB3aXRoIHNlYXJjaCwgZmlsdGVyaW5nLCBhbmQgZGV0YWlsIHZpZXdzLicsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCcm93c2VyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggdGhlIFVSTCBvZiB0aGUgb3BlbmVkIGJyb3dzZXInIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJvcGVuX3BvcnRmb2xpb19icm93c2VyXCIgfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBJTlRST1NQRUNUSU9OX09OTFlfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICAuLi5NRU1PUllfU0NIRU1BUyxcbiAgLi4uRVhFQ1VUSU9OX1NDSEVNQVMsXG4gIC4uLkdBVEVLRUVQRVJfU0NIRU1BUyxcbiAgLi4uTE9HR0lOR19TQ0hFTUFTLFxuICAuLi5BQ1RJVkFUSU9OX1NDSEVNQVMsXG4gIC4uLlNFQVJDSF9TQ0hFTUFTLFxuICAuLi5CUk9XU0VSX1NDSEVNQVMsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFsbCBvcGVyYXRpb24gc2NoZW1hcyDigJQgdW5pb24gb2YgZGlzcGF0Y2gtZHJpdmVuIGFuZCBpbnRyb3NwZWN0aW9uLW9ubHkuXG4gKiBVc2VkIGJ5IEludHJvc3BlY3Rpb25SZXNvbHZlciBmb3IgY29tcGxldGUgb3BlcmF0aW9uIGRvY3VtZW50YXRpb24uXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk0IC0gRG9jdW1lbnQgYWxsIE1DUC1BUUwgb3BlcmF0aW9ucyB2aWEgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBBTExfT1BFUkFUSU9OX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgLi4uU0NIRU1BX0RSSVZFTl9PUEVSQVRJT05TLFxuICAuLi5JTlRST1NQRUNUSU9OX09OTFlfU0NIRU1BUyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gb3BlcmF0aW9uIGlzIHNjaGVtYS1kcml2ZW4gKHVzZWQgZm9yIFNjaGVtYURpc3BhdGNoZXIgcm91dGluZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2NoZW1hT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBvcGVyYXRpb24gaW4gU0NIRU1BX0RSSVZFTl9PUEVSQVRJT05TO1xufVxuXG4vKipcbiAqIEdldCBzY2hlbWEgZGVmaW5pdGlvbiBmb3IgYSBzY2hlbWEtZHJpdmVuIG9wZXJhdGlvbiAoZGlzcGF0Y2ggcm91dGluZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9wZXJhdGlvblNjaGVtYShvcGVyYXRpb246IHN0cmluZyk6IE9wZXJhdGlvbkRlZiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBTQ0hFTUFfRFJJVkVOX09QRVJBVElPTlNbb3BlcmF0aW9uXTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhbnkgb3BlcmF0aW9uIHNjaGVtYSBleGlzdHMgKGRpc3BhdGNoLWRyaXZlbiBvciBpbnRyb3NwZWN0aW9uLW9ubHkpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNPcGVyYXRpb25TY2hlbWEob3BlcmF0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIG9wZXJhdGlvbiBpbiBBTExfT1BFUkFUSU9OX1NDSEVNQVM7XG59XG5cbi8qKlxuICogR2V0IHNjaGVtYSBmb3IgYW55IG9wZXJhdGlvbiAoZGlzcGF0Y2gtZHJpdmVuIG9yIGludHJvc3BlY3Rpb24tb25seSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFueU9wZXJhdGlvblNjaGVtYShvcGVyYXRpb246IHN0cmluZyk6IE9wZXJhdGlvbkRlZiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBBTExfT1BFUkFUSU9OX1NDSEVNQVNbb3BlcmF0aW9uXTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSW50cm9zcGVjdGlvbiBIZWxwZXJzIChJc3N1ZSAjMjU0KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFBhcmFtZXRlciBpbmZvIGZvcm1hdCB1c2VkIGJ5IEludHJvc3BlY3Rpb25SZXNvbHZlclxuICogVGhpcyBpbnRlcmZhY2UgbWF0Y2hlcyB3aGF0IEludHJvc3BlY3Rpb25SZXNvbHZlciBleHBlY3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVySW5mbyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgZGVmYXVsdD86IHVua25vd247XG59XG5cbi8qKlxuICogQ29udmVydCBQYXJhbVNjaGVtYSB0byBQYXJhbWV0ZXJJbmZvIGFycmF5IGZvciBpbnRyb3NwZWN0aW9uXG4gKlxuICogQHBhcmFtIHNjaGVtYSAtIFRoZSBQYXJhbVNjaGVtYSBmcm9tIGFuIG9wZXJhdGlvbiBkZWZpbml0aW9uXG4gKiBAcmV0dXJucyBBcnJheSBvZiBQYXJhbWV0ZXJJbmZvIGZvciBJbnRyb3NwZWN0aW9uUmVzb2x2ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjaGVtYVRvUGFyYW1ldGVySW5mbyhzY2hlbWE6IFBhcmFtU2NoZW1hIHwgdW5kZWZpbmVkKTogUGFyYW1ldGVySW5mb1tdIHtcbiAgaWYgKCFzY2hlbWEpIHJldHVybiBbXTtcblxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc2NoZW1hKS5tYXAoKFtuYW1lLCBkZWZdKSA9PiAoe1xuICAgIG5hbWUsXG4gICAgdHlwZTogZGVmLnR5cGUsXG4gICAgcmVxdWlyZWQ6IGRlZi5yZXF1aXJlZCA/PyBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogZGVmLmRlc2NyaXB0aW9uID8/IGAke25hbWV9IHBhcmFtZXRlcmAsXG4gICAgLi4uKGRlZi5kZWZhdWx0ICE9PSB1bmRlZmluZWQgPyB7IGRlZmF1bHQ6IGRlZi5kZWZhdWx0IH0gOiB7fSksXG4gIH0pKTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHNjaGVtYS1kcml2ZW4gb3BlcmF0aW9ucyB3aXRoIHRoZWlyIGZ1bGwgZGVmaW5pdGlvbnNcbiAqIFVzZWQgYnkgU2NoZW1hRGlzcGF0Y2hlciB0byBpdGVyYXRlIG92ZXIgZGlzcGF0Y2hhYmxlIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFNjaGVtYU9wZXJhdGlvbnMoKTogUmVjb3JkPHN0cmluZywgT3BlcmF0aW9uRGVmPiB7XG4gIHJldHVybiBTQ0hFTUFfRFJJVkVOX09QRVJBVElPTlM7XG59XG5cbi8qKlxuICogR2V0IGFsbCBvcGVyYXRpb24gc2NoZW1hcyAoZGlzcGF0Y2gtZHJpdmVuICsgaW50cm9zcGVjdGlvbi1vbmx5KVxuICogVXNlZCBieSBJbnRyb3NwZWN0aW9uUmVzb2x2ZXIgZm9yIGNvbXBsZXRlIG9wZXJhdGlvbiBkb2N1bWVudGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxPcGVyYXRpb25TY2hlbWFzKCk6IFJlY29yZDxzdHJpbmcsIE9wZXJhdGlvbkRlZj4ge1xuICByZXR1cm4gQUxMX09QRVJBVElPTl9TQ0hFTUFTO1xufVxuIl19
|
|
1548
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hhbmRsZXJzL21jcC1hcWwvT3BlcmF0aW9uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUF3S0gsK0VBQStFO0FBQy9FLGtEQUFrRDtBQUNsRCwrRUFBK0U7QUFFL0U7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXVCO0lBQ3ZELGlCQUFpQixFQUFFO1FBQ2pCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixXQUFXLEVBQUUsa0VBQWtFO1FBQy9FLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUU7WUFDeEUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUU7U0FDN0Q7UUFDRCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsMENBQTBDLEVBQUU7UUFDcEgsUUFBUSxFQUFFLENBQUMscUVBQXFFLENBQUM7S0FDbEY7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsV0FBVyxFQUFFLDBEQUEwRDtRQUN2RSxRQUFRLEVBQUUsSUFBSTtRQUNkLE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFO1NBQ3ZFO1FBQ0QsT0FB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S0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBK0I7SUFDbkUsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUV2QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSTtRQUNKLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEtBQUs7UUFDL0IsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxJQUFJLFlBQVk7UUFDbkQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUMvRCxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8sd0JBQXdCLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTyxxQkFBcUIsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcGVyYXRpb25TY2hlbWEgLSBEZWNsYXJhdGl2ZSBvcGVyYXRpb24gZGVmaW5pdGlvbnMgZm9yIE1DUC1BUUxcbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBzY2hlbWEtZHJpdmVuIG9wZXJhdGlvbiBkZWZpbml0aW9ucyB0aGF0IGVuYWJsZTpcbiAqIDEuIERlY2xhcmF0aXZlIG9wZXJhdGlvbiBjb25maWd1cmF0aW9uIChubyBtYW51YWwgc3dpdGNoIHN0YXRlbWVudHMpXG4gKiAyLiBBdXRvLWdlbmVyYXRlZCBwYXJhbWV0ZXIgdmFsaWRhdGlvblxuICogMy4gVHlwZS1zYWZlIGRpc3BhdGNoIHRvIGhhbmRsZXIgbWV0aG9kc1xuICogNC4gU2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3Igb3BlcmF0aW9uIG1ldGFkYXRhXG4gKlxuICogQVJDSElURUNUVVJFOlxuICogT3BlcmF0aW9ucyBhcmUgZGVmaW5lZCB3aXRoOlxuICogLSBlbmRwb2ludDogQ1JVREUgZW5kcG9pbnQgKENSRUFURSwgUkVBRCwgVVBEQVRFLCBERUxFVEUsIEVYRUNVVEUpXG4gKiAtIGhhbmRsZXI6IEtleSBpbiBIYW5kbGVyUmVnaXN0cnlcbiAqIC0gbWV0aG9kOiBNZXRob2QgbmFtZSBvbiB0aGUgaGFuZGxlclxuICogLSBwYXJhbXM6IFBhcmFtZXRlciBkZWZpbml0aW9ucyB3aXRoIHR5cGVzIGFuZCBtYXBwaW5nc1xuICogLSBkZXNjcmlwdGlvbjogSHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb25cbiAqXG4gKiBUaGUgU2NoZW1hRGlzcGF0Y2hlciB1c2VzIHRoZXNlIGRlZmluaXRpb25zIHRvIGF1dG9tYXRpY2FsbHkgcm91dGVcbiAqIG9wZXJhdGlvbnMgdG8gaGFuZGxlciBtZXRob2RzIHdpdGhvdXQgbWFudWFsIGRpc3BhdGNoIGNvZGUuXG4gKlxuICogQHNlZSBJc3N1ZSAjMjQ3IC0gU2NoZW1hLWRyaXZlbiBvcGVyYXRpb24gZGVmaW5pdGlvbnNcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENSVURFbmRwb2ludCB9IGZyb20gJy4vT3BlcmF0aW9uUm91dGVyLmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUGFyYW1ldGVyIFNjaGVtYSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFByaW1pdGl2ZSB0eXBlcyBzdXBwb3J0ZWQgaW4gcGFyYW1ldGVyIHNjaGVtYXNcbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1UeXBlID1cbiAgfCAnc3RyaW5nJ1xuICB8ICdudW1iZXInXG4gIHwgJ2Jvb2xlYW4nXG4gIHwgJ29iamVjdCdcbiAgfCAnYXJyYXknXG4gIHwgJ3N0cmluZ1tdJ1xuICB8ICdzdHJpbmcgfCBzdHJpbmdbXScgLy8gVW5pb24gdHlwZSBmb3IgZmllbGRzIHRoYXQgYWNjZXB0IHByZXNldCBzdHJpbmcgb3IgYXJyYXlcbiAgfCAndW5rbm93bic7IC8vIEZvciBwYXJhbXMgdGhhdCBhY2NlcHQgYW55IHR5cGVcblxuLyoqXG4gKiBQYXJhbWV0ZXIgZGVmaW5pdGlvbiBpbiBvcGVyYXRpb24gc2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1EZWYge1xuICAvKiogUGFyYW1ldGVyIHR5cGUgZm9yIHZhbGlkYXRpb24gKi9cbiAgdHlwZTogUGFyYW1UeXBlO1xuICAvKiogV2hldGhlciB0aGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKiogRGVmYXVsdCB2YWx1ZSBpZiBub3QgcHJvdmlkZWQgKi9cbiAgZGVmYXVsdD86IHVua25vd247XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIE1hcHMgaW5wdXQgcGFyYW0gbmFtZSB0byBoYW5kbGVyIGFyZyBuYW1lIChpZiBkaWZmZXJlbnQpICovXG4gIG1hcFRvPzogc3RyaW5nO1xuICAvKipcbiAgICogQWx0ZXJuYXRpdmUgc291cmNlcyB0byBjaGVjayBmb3IgdGhpcyBwYXJhbWV0ZXIgdmFsdWUuXG4gICAqIENoZWNrZWQgaW4gb3JkZXIgYmVmb3JlIGZhbGxpbmcgYmFjayB0byB0aGUgcHJpbWFyeSBwYXJhbSBuYW1lLlxuICAgKlxuICAgKiBTdXBwb3J0cyBkb3Qgbm90YXRpb24gZm9yIG5lc3RlZCBhY2Nlc3M6XG4gICAqIC0gJ2lucHV0LmVsZW1lbnRUeXBlJyAtIGNoZWNrcyBpbnB1dC5lbGVtZW50VHlwZVxuICAgKiAtICdwYXJhbXMudHlwZScgLSBjaGVja3MgcGFyYW1zLnR5cGUgKHNhbWUgYXMganVzdCBjaGVja2luZyB0aGUgcGFyYW0pXG4gICAqXG4gICAqIFVzZSBjYXNlOiBlbGVtZW50VHlwZSBjYW4gY29tZSBmcm9tIGlucHV0LmVsZW1lbnRUeXBlIE9SIHBhcmFtcy50eXBlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLnR5cGUnXSB9XG4gICAqL1xuICBzb3VyY2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZGVmaW5pdGlvbiBmb3IgaW50cm9zcGVjdGlvblxuICogQHNlZSBJc3N1ZSAjMjU0IC0gQXV0by1nZW5lcmF0ZSBpbnRyb3NwZWN0aW9uIGZyb20gc2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0dXJuVHlwZURlZiB7XG4gIC8qKiBSZXR1cm4gdHlwZSBuYW1lIChlLmcuLCAnRWxlbWVudExpc3QnLCAnU2VhcmNoUmVzdWx0JykgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVHlwZSBraW5kIGZvciBjYXRlZ29yaXphdGlvbiAqL1xuICBraW5kOiAnZW51bScgfCAnb2JqZWN0JyB8ICdzY2FsYXInIHwgJ3VuaW9uJztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgaXMgcmV0dXJuZWQgKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXIgc2NoZW1hIC0gbWFwIG9mIHBhcmFtZXRlciBuYW1lcyB0byBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgdHlwZSBQYXJhbVNjaGVtYSA9IFJlY29yZDxzdHJpbmcsIFBhcmFtRGVmPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3BlcmF0aW9uIFNjaGVtYSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEhhbmRsZXIga2V5cyAtIHRoZXNlIG1hcCB0byBwcm9wZXJ0aWVzIGluIEhhbmRsZXJSZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBIYW5kbGVyS2V5ID1cbiAgfCAnZWxlbWVudENSVUQnXG4gIHwgJ21lbW9yeU1hbmFnZXInXG4gIHwgJ2FnZW50TWFuYWdlcidcbiAgfCAndGVtcGxhdGVSZW5kZXJlcidcbiAgfCAnZWxlbWVudFF1ZXJ5U2VydmljZSdcbiAgfCAnY29sbGVjdGlvbkhhbmRsZXInXG4gIHwgJ3BvcnRmb2xpb0hhbmRsZXInXG4gIHwgJ2F1dGhIYW5kbGVyJ1xuICB8ICdjb25maWdIYW5kbGVyJ1xuICB8ICdlbmhhbmNlZEluZGV4SGFuZGxlcidcbiAgfCAncGVyc29uYUhhbmRsZXInXG4gIHwgJ3N5bmNIYW5kbGVyJ1xuICB8ICdidWlsZEluZm9TZXJ2aWNlJ1xuICB8ICdtY3BBcWxIYW5kbGVyJ1xuICB8ICdjYWNoZU1lbW9yeUJ1ZGdldCc7XG5cbi8qKlxuICogQ29tcGxldGUgb3BlcmF0aW9uIHNjaGVtYSBkZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uRGVmIHtcbiAgLyoqIENSVURFIGVuZHBvaW50IHRoaXMgb3BlcmF0aW9uIGJlbG9uZ3MgdG8gKi9cbiAgZW5kcG9pbnQ6IENSVURFbmRwb2ludDtcbiAgLyoqIEhhbmRsZXIga2V5IGluIEhhbmRsZXJSZWdpc3RyeSAqL1xuICBoYW5kbGVyOiBIYW5kbGVyS2V5O1xuICAvKiogTWV0aG9kIG5hbWUgdG8gY2FsbCBvbiB0aGUgaGFuZGxlciAqL1xuICBtZXRob2Q6IHN0cmluZztcbiAgLyoqIFBhcmFtZXRlciBkZWZpbml0aW9ucyAqL1xuICBwYXJhbXM/OiBQYXJhbVNjaGVtYTtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBoYW5kbGVyIGlzIG9wdGlvbmFsIChtYXkgbm90IGJlIGNvbmZpZ3VyZWQpICovXG4gIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1c3RvbSBhcmd1bWVudCBidWlsZGVyIGZvciBjb21wbGV4IGNhc2VzOlxuICAgKiAtICdzaW5nbGUnOiBQYXNzIHBhcmFtcyBpbiBzY2hlbWEgb3JkZXIgYXMgcG9zaXRpb25hbCBhcmdzIChkZWZhdWx0KVxuICAgKiAtICdzcHJlYWQnOiBQYXNzIChxdWVyeSwgcGFyYW1zKSAtIGZvciBzZWFyY2gtc3R5bGUgb3BlcmF0aW9uc1xuICAgKiAtICduYW1lZCc6IFBhc3MgYWxsIHBhcmFtcyBhcyBhIHNpbmdsZSBuYW1lZCBvYmplY3RcbiAgICogLSAnbmFtZWRXaXRoVHlwZSc6IExpa2UgJ25hbWVkJyBidXQgaW5jbHVkZXMgcmVzb2x2ZWQgJ3R5cGUnIHBhcmFtXG4gICAqIC0gJ3R5cGVXaXRoUGFyYW1zJzogUGFzcyAodHlwZSwgZnVsbFBhcmFtcykgZm9yIG9wZXJhdGlvbnMgbmVlZGluZyB0eXBlICsgcGFnaW5hdGlvblxuICAgKi9cbiAgYXJnQnVpbGRlcj86ICdzaW5nbGUnIHwgJ3NwcmVhZCcgfCAnbmFtZWQnIHwgJ25hbWVkV2l0aFR5cGUnIHwgJ3R5cGVXaXRoUGFyYW1zJztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBvcGVyYXRpb24gbmVlZHMgYWNjZXNzIHRvIHRoZSBmdWxsIE9wZXJhdGlvbklucHV0LlxuICAgKiBXaGVuIHRydWUsIFNjaGVtYURpc3BhdGNoZXIgcGFzc2VzIHRoZSBmdWxsIGlucHV0IGZvciBzb3VyY2UgcmVzb2x1dGlvbi5cbiAgICogUmVxdWlyZWQgZm9yIG9wZXJhdGlvbnMgdGhhdCB1c2UgcGFyYW0gc291cmNlcyBsaWtlICdpbnB1dC5lbGVtZW50VHlwZScuXG4gICAqL1xuICBuZWVkc0Z1bGxJbnB1dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBdXRvbWF0aWMgcGFyYW1ldGVyIG5hbWUgY29udmVyc2lvbiBzdHlsZS5cbiAgICogLSAnc25ha2VUb0NhbWVsJzogQ29udmVydCBzbmFrZV9jYXNlIHBhcmFtcyB0byBjYW1lbENhc2UgZm9yIGhhbmRsZXJcbiAgICpcbiAgICogV2hlbiBzZXQsIGFsbCBwYXJhbXMgYXJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIGJlZm9yZSBiZWluZyBwYXNzZWRcbiAgICogdG8gdGhlIGhhbmRsZXIuIEluZGl2aWR1YWwgcGFyYW0gYG1hcFRvYCBvdmVycmlkZXMgc3RpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBJbnB1dDogeyBkcnlfcnVuOiB0cnVlLCBtYXhfcmVzdWx0czogMTAgfVxuICAgKiAvLyBIYW5kbGVyIHJlY2VpdmVzOiB7IGRyeVJ1bjogdHJ1ZSwgbWF4UmVzdWx0czogMTAgfVxuICAgKi9cbiAgcGFyYW1TdHlsZT86ICdzbmFrZVRvQ2FtZWwnO1xuICAvKipcbiAgICogUmV0dXJuIHR5cGUgaW5mb3JtYXRpb24gZm9yIGludHJvc3BlY3Rpb25cbiAgICogQHNlZSBJc3N1ZSAjMjU0IC0gQXV0by1nZW5lcmF0ZSBpbnRyb3NwZWN0aW9uIGZyb20gc2NoZW1hXG4gICAqL1xuICByZXR1cm5zPzogUmV0dXJuVHlwZURlZjtcbiAgLyoqXG4gICAqIFVzYWdlIGV4YW1wbGVzIGZvciBpbnRyb3NwZWN0aW9uXG4gICAqIEBzZWUgSXNzdWUgIzI1NCAtIEF1dG8tZ2VuZXJhdGUgaW50cm9zcGVjdGlvbiBmcm9tIHNjaGVtYVxuICAgKi9cbiAgZXhhbXBsZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE5vcm1hbGl6ZXIgdG8gdXNlIGZvciBwYXJhbWV0ZXIgdHJhbnNmb3JtYXRpb24uXG4gICAqXG4gICAqIElmIHNwZWNpZmllZCwgdGhlIG5vcm1hbGl6ZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGUgaGFuZGxlciBtZXRob2QsXG4gICAqIHRyYW5zZm9ybWluZyByYXcgaW5wdXQgcGFyYW1ldGVycyBpbnRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGhhbmRsZXIuXG4gICAqXG4gICAqIE5vcm1hbGl6ZXJzIGFyZSByZWdpc3RlcmVkIGluIE5vcm1hbGl6ZXJSZWdpc3RyeSBhbmQgbG9va2VkIHVwIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBzZWUgSXNzdWUgIzI0MyAtIFNjaGVtYS1kcml2ZW4gbm9ybWFsaXplciBhcmNoaXRlY3R1cmVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gVXNlIHRoZSBzZWFyY2ggcGFyYW1zIG5vcm1hbGl6ZXJcbiAgICogbm9ybWFsaXplcjogJ3NlYXJjaFBhcmFtcydcbiAgICovXG4gIG5vcm1hbGl6ZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29tcGxldGUgb3BlcmF0aW9uIHNjaGVtYSAtIG1hcHMgb3BlcmF0aW9uIG5hbWVzIHRvIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIE9wZXJhdGlvblNjaGVtYU1hcCA9IFJlY29yZDxzdHJpbmcsIE9wZXJhdGlvbkRlZj47XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbGxlY3Rpb24gT3BlcmF0aW9ucyBTY2hlbWEgKFByb29mIG9mIENvbmNlcHQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvcGVyYXRpb25zIHNjaGVtYVxuICpcbiAqIFRoZXNlIGFyZSB0aGUgZmlyc3Qgb3BlcmF0aW9ucyBtaWdyYXRlZCB0byBzY2hlbWEtZHJpdmVuIGRpc3BhdGNoLlxuICogRWFjaCBvcGVyYXRpb24gZGVmaW5lczpcbiAqIC0gV2hlcmUgaXQgbGl2ZXMgKGVuZHBvaW50KVxuICogLSBXaGF0IGhhbmRsZXIgdG8gdXNlXG4gKiAtIFdoYXQgbWV0aG9kIHRvIGNhbGxcbiAqIC0gV2hhdCBwYXJhbWV0ZXJzIGl0IGFjY2VwdHNcbiAqL1xuZXhwb3J0IGNvbnN0IENPTExFQ1RJT05fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBicm93c2VfY29sbGVjdGlvbjoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdicm93c2VDb2xsZWN0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jyb3dzZSB0aGUgRG9sbGhvdXNlTUNQIGNvbW11bml0eSBjb2xsZWN0aW9uIGJ5IHNlY3Rpb24gYW5kIHR5cGUnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgc2VjdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDb2xsZWN0aW9uIHNlY3Rpb24gdG8gYnJvd3NlJyB9LFxuICAgICAgdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUgZmlsdGVyJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29sbGVjdGlvbkJyb3dzZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0Jyb3dzZWFibGUgY29sbGVjdGlvbiBzZWN0aW9ucyBhbmQgaXRlbXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiYnJvd3NlX2NvbGxlY3Rpb25cIiwgcGFyYW1zOiB7IHNlY3Rpb246IFwicGVyc29uYXNcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2NvbGxlY3Rpb246IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQ29sbGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTZWFyY2ggdGhlIGNvbW11bml0eSBjb2xsZWN0aW9uIGZvciBlbGVtZW50cyBieSBrZXl3b3JkcycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBxdWVyeTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHF1ZXJ5JyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29sbGVjdGlvblNlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ01hdGNoaW5nIGVsZW1lbnRzIGZyb20gY29sbGVjdGlvbicgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzZWFyY2hfY29sbGVjdGlvblwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY29kZSByZXZpZXdcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2NvbGxlY3Rpb25fZW5oYW5jZWQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQ29sbGVjdGlvbkVuaGFuY2VkJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FkdmFuY2VkIHNlYXJjaCB3aXRoIHBhZ2luYXRpb24sIGZpbHRlcmluZywgYW5kIHNvcnRpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICdzcHJlYWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VuaGFuY2VkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIHNlYXJjaCByZXN1bHRzIHdpdGggbWV0YWRhdGEnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwic2VhcmNoX2NvbGxlY3Rpb25fZW5oYW5jZWRcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImFzc2lzdGFudFwiLCBsaW1pdDogMTAgfSB9J10sXG4gIH0sXG4gIGdldF9jb2xsZWN0aW9uX2NvbnRlbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZ2V0Q29sbGVjdGlvbkNvbnRlbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGNvbnRlbnQgZnJvbSB0aGUgY29sbGVjdGlvbicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250ZW50IHBhdGggaW4gY29sbGVjdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NvbGxlY3Rpb25Db250ZW50Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRnVsbCBjb250ZW50IGFuZCBtZXRhZGF0YSBmb3IgY29sbGVjdGlvbiBpdGVtJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9jb2xsZWN0aW9uX2NvbnRlbnRcIiwgcGFyYW1zOiB7IHBhdGg6IFwicGVyc29uYXMvY3JlYXRpdmUtd3JpdGVyLm1kXCIgfSB9J10sXG4gIH0sXG4gIGdldF9jb2xsZWN0aW9uX2NhY2hlX2hlYWx0aDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdnZXRDb2xsZWN0aW9uQ2FjaGVIZWFsdGgnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGhlYWx0aCBzdGF0dXMgYW5kIHN0YXRpc3RpY3MgZm9yIHRoZSBjb2xsZWN0aW9uIGNhY2hlJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NhY2hlSGVhbHRoU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ2FjaGUgaGVhbHRoIG1ldHJpY3MgYW5kIGRpYWdub3N0aWNzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9jb2xsZWN0aW9uX2NhY2hlX2hlYWx0aFwiIH0nXSxcbiAgfSxcbiAgaW5zdGFsbF9jb2xsZWN0aW9uX2NvbnRlbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdpbnN0YWxsQ29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdJbnN0YWxsIGFuIGVsZW1lbnQgZnJvbSB0aGUgY29sbGVjdGlvbiB0byB5b3VyIGxvY2FsIHBvcnRmb2xpbycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250ZW50IHBhdGggdG8gaW5zdGFsbCcgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0luc3RhbGxSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbnN0YWxsYXRpb24gcmVzdWx0IHdpdGggZWxlbWVudCBuYW1lLCB0eXBlLCBhbmQgbG9jYWwgZmlsZSBwYXRoJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImluc3RhbGxfY29sbGVjdGlvbl9jb250ZW50XCIsIHBhcmFtczogeyBwYXRoOiBcInBlcnNvbmFzL2NyZWF0aXZlLXdyaXRlci5tZFwiIH0gfSddLFxuICB9LFxuICBzdWJtaXRfY29sbGVjdGlvbl9jb250ZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc3VibWl0Q29udGVudCcsXG4gICAgZGVzY3JpcHRpb246ICdTdWJtaXQgYSBsb2NhbCBlbGVtZW50IHRvIHRoZSBjb21tdW5pdHkgY29sbGVjdGlvbiB2aWEgR2l0SHViJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGNvbnRlbnQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbnRlbnQgdG8gc3VibWl0JyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU3VibWl0UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3VibWlzc2lvbiByZXN1bHQgd2l0aCBHaXRIdWIgUFIgVVJMIGFuZCBzdGF0dXMgbWVzc2FnZScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzdWJtaXRfY29sbGVjdGlvbl9jb250ZW50XCIsIHBhcmFtczogeyBjb250ZW50OiBcInBlcnNvbmFzL215LXBlcnNvbmFcIiB9IH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEF1dGggT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IEFVVEhfT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBzZXR1cF9naXRodWJfYXV0aDoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAnYXV0aEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ3NldHVwR2l0SHViQXV0aCcsXG4gICAgZGVzY3JpcHRpb246ICdTZXQgdXAgR2l0SHViIGF1dGhlbnRpY2F0aW9uIHVzaW5nIGRldmljZSBmbG93JyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0F1dGhTZXR1cFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0RldmljZSBmbG93IHNldHVwOiB7IHVzZXJDb2RlLCB2ZXJpZmljYXRpb25VcmwsIGV4cGlyZXNJbiwgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcInNldHVwX2dpdGh1Yl9hdXRoXCIgfSddLFxuICB9LFxuICBjaGVja19naXRodWJfYXV0aDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdjaGVja0dpdEh1YkF1dGgnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgY3VycmVudCBHaXRIdWIgYXV0aGVudGljYXRpb24gc3RhdHVzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0F1dGhTdGF0dXMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDdXJyZW50IGF1dGhlbnRpY2F0aW9uIHN0YXRlIGFuZCB1c2VyIGluZm8nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiY2hlY2tfZ2l0aHViX2F1dGhcIiB9J10sXG4gIH0sXG4gIGNsZWFyX2dpdGh1Yl9hdXRoOiB7XG4gICAgZW5kcG9pbnQ6ICdERUxFVEUnLFxuICAgIGhhbmRsZXI6ICdhdXRoSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnY2xlYXJHaXRIdWJBdXRoJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlbW92ZSBHaXRIdWIgYXV0aGVudGljYXRpb24gYW5kIGRpc2Nvbm5lY3QnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge30sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnT3BlcmF0aW9uUmVzdWx0Jywga2luZDogJ3VuaW9uJywgZGVzY3JpcHRpb246ICdTdWNjZXNzIG9yIGZhaWx1cmUgc3RhdHVzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImNsZWFyX2dpdGh1Yl9hdXRoXCIgfSddLFxuICB9LFxuICBjb25maWd1cmVfb2F1dGg6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdjb25maWd1cmVPQXV0aCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maWd1cmUgR2l0SHViIE9BdXRoIGNsaWVudCBJRCcsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBjbGllbnRfaWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnT0F1dGggY2xpZW50IElEJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnT0F1dGhDb25maWcnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdPQXV0aCBjb25maWd1cmF0aW9uIHN0YXR1cycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJjb25maWd1cmVfb2F1dGhcIiwgcGFyYW1zOiB7IGNsaWVudF9pZDogXCJ5b3VyLWNsaWVudC1pZFwiIH0gfSddLFxuICB9LFxuICBvYXV0aF9oZWxwZXJfc3RhdHVzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnYXV0aEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2dldE9BdXRoSGVscGVyU3RhdHVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBkaWFnbm9zdGljIGluZm9ybWF0aW9uIGFib3V0IE9BdXRoIGhlbHBlciBwcm9jZXNzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHZlcmJvc2U6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0luY2x1ZGUgdmVyYm9zZSBkaWFnbm9zdGljcycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ09BdXRoSGVscGVyU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnSGVscGVyIHByb2Nlc3MgZGlhZ25vc3RpY3MnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwib2F1dGhfaGVscGVyX3N0YXR1c1wiLCBwYXJhbXM6IHsgdmVyYm9zZTogdHJ1ZSB9IH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVuaGFuY2VkIEluZGV4IE9wZXJhdGlvbnMgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBFTkhBTkNFRF9JTkRFWF9PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGZpbmRfc2ltaWxhcl9lbGVtZW50czoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VuaGFuY2VkSW5kZXhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdmaW5kU2ltaWxhckVsZW1lbnRzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbmQgc2VtYW50aWNhbGx5IHNpbWlsYXIgZWxlbWVudHMgdXNpbmcgTkxQIHNjb3JpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXBUbzogJ2VsZW1lbnRUeXBlJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDEwIH0sXG4gICAgICB0aHJlc2hvbGQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDAuNSB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU2ltaWxhckVsZW1lbnRzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnTGlzdCBvZiBzaW1pbGFyIGVsZW1lbnRzIHdpdGggc2ltaWxhcml0eSBzY29yZXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZmluZF9zaW1pbGFyX2VsZW1lbnRzXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY3JlYXRpdmUtd3JpdGVyXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIGxpbWl0OiA1IH0gfSddLFxuICB9LFxuICBnZXRfZWxlbWVudF9yZWxhdGlvbnNoaXBzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZW5oYW5jZWRJbmRleEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2dldEVsZW1lbnRSZWxhdGlvbnNoaXBzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbGwgcmVsYXRpb25zaGlwcyBmb3IgYSBzcGVjaWZpYyBlbGVtZW50JyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgbWFwVG86ICdlbGVtZW50VHlwZScgfSxcbiAgICAgIHJlbGF0aW9uc2hpcF90eXBlczogeyB0eXBlOiAnc3RyaW5nW10nLCBtYXBUbzogJ3JlbGF0aW9uc2hpcFR5cGVzJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudFJlbGF0aW9uc2hpcHMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdSZWxhdGlvbnNoaXAgZ3JhcGggZm9yIHRoZSBlbGVtZW50JyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9lbGVtZW50X3JlbGF0aW9uc2hpcHNcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiIH0gfSddLFxuICB9LFxuICBzZWFyY2hfYnlfdmVyYjoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VuaGFuY2VkSW5kZXhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzZWFyY2hCeVZlcmInLFxuICAgIGRlc2NyaXB0aW9uOiAnU2VhcmNoIGZvciBlbGVtZW50cyB0aGF0IGhhbmRsZSBhIHNwZWNpZmljIGFjdGlvbiB2ZXJiJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgdmVyYjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgIGxpbWl0OiB7IHR5cGU6ICdudW1iZXInLCBkZWZhdWx0OiAyMCB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnVmVyYlNlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnRzIG1hdGNoaW5nIHRoZSBhY3Rpb24gdmVyYicgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzZWFyY2hfYnlfdmVyYlwiLCBwYXJhbXM6IHsgdmVyYjogXCJhbmFseXplXCIsIGxpbWl0OiAxMCB9IH0nXSxcbiAgfSxcbiAgZ2V0X3JlbGF0aW9uc2hpcF9zdGF0czoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VuaGFuY2VkSW5kZXhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdnZXRSZWxhdGlvbnNoaXBTdGF0cycsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgc3RhdGlzdGljcyBhYm91dCBFbmhhbmNlZCBJbmRleCByZWxhdGlvbnNoaXBzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1JlbGF0aW9uc2hpcFN0YXRzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRlIHN0YXRpc3RpY3MgYWJvdXQgZWxlbWVudCByZWxhdGlvbnNoaXBzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9yZWxhdGlvbnNoaXBfc3RhdHNcIiB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZW1wbGF0ZSBPcGVyYXRpb25zIFNjaGVtYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgVEVNUExBVEVfT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICByZW5kZXI6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICd0ZW1wbGF0ZVJlbmRlcmVyJyxcbiAgICBtZXRob2Q6ICdyZW5kZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVuZGVyIGEgdGVtcGxhdGUgd2l0aCBwcm92aWRlZCB2YXJpYWJsZXMuIEZvciBzZWN0aW9uLWZvcm1hdCB0ZW1wbGF0ZXMgKDx0ZW1wbGF0ZT4sIDxzdHlsZT4sIDxzY3JpcHQ+KSwgcmVuZGVycyB0aGUgPHRlbXBsYXRlPiBzZWN0aW9uIGJ5IGRlZmF1bHQg4oCUIHZhcmlhYmxlIHN1YnN0aXR1dGlvbiBvbmx5IGFwcGxpZXMgdGhlcmUuIFVzZSBzZWN0aW9uOiBcInN0eWxlXCIgb3IgXCJzY3JpcHRcIiB0byByZXRyaWV2ZSByYXcgcGFzc3Rocm91Z2ggc2VjdGlvbnMgd2hlcmUgfX0gaXMgc2FmZS4nLFxuICAgIHBhcmFtczoge1xuICAgICAgLy8gSXNzdWUgIzI5MDogVXNlIGVsZW1lbnRfbmFtZSBmb3IgY29uc2lzdGVuY3lcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnVGVtcGxhdGUgbmFtZScgfSxcbiAgICAgIHZhcmlhYmxlczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdWYXJpYWJsZXMgdG8gc3Vic3RpdHV0ZSBpbiB0aGUgPHRlbXBsYXRlPiBzZWN0aW9uIChlLmcuIHsgXCJ0aXRsZVwiOiBcIk15IFBhZ2VcIiwgXCJ1c2VyXCI6IFwiQWxpY2VcIiB9KScgfSxcbiAgICAgIHNlY3Rpb246IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiBmYWxzZSwgZGVzY3JpcHRpb246ICdFeHRyYWN0IGEgc3BlY2lmaWMgcmF3IHNlY3Rpb24gd2l0aG91dCB2YXJpYWJsZSBzdWJzdGl0dXRpb246IFwic3R5bGVcIiBvciBcInNjcmlwdFwiLiBVc2VmdWwgZm9yIENTUyB0aGVtZSB0ZW1wbGF0ZXMgb3IgSlMtb25seSB0ZW1wbGF0ZXMuIE9ubHkgdmFsaWQgZm9yIHNlY3Rpb24tZm9ybWF0IHRlbXBsYXRlcy4nIH0sXG4gICAgICBhbGxfc2VjdGlvbnM6IHsgdHlwZTogJ2Jvb2xlYW4nLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnUmV0dXJuIGFsbCBzZWN0aW9ucyB0b2dldGhlcjogeyB0ZW1wbGF0ZTogcmVuZGVyZWQsIHN0eWxlOiByYXcsIHNjcmlwdDogcmF3IH0uIFVzZSB3aGVuIHlvdSBuZWVkIHRoZSByZW5kZXJlZCBIVE1MIGFsb25nc2lkZSBpdHMgQ1NTIGFuZCBKUy4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdSZW5kZXJSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdSZW5kZXJlZCB0ZW1wbGF0ZSBjb250ZW50LiBjb250ZW50IGZpZWxkIGhhcyB0aGUgcmVzdWx0IHN0cmluZzsgc2VjdGlvbnMgZmllbGQgcG9wdWxhdGVkIHdoZW4gYWxsX3NlY3Rpb25zOiB0cnVlLicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInJlbmRlclwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIm1lZXRpbmctbm90ZXNcIiwgdmFyaWFibGVzOiB7IGRhdGU6IFwiMjAyNC0wMS0xNVwiLCBhdHRlbmRlZXM6IFtcIkFsaWNlXCIsIFwiQm9iXCJdIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZW5kZXJcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJkYXNoYm9hcmQtdGhlbWUtZGFya1wiLCBzZWN0aW9uOiBcInN0eWxlXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZW5kZXJcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJkYXNoYm9hcmQtcGFnZVwiLCB2YXJpYWJsZXM6IHsgdGl0bGU6IFwiTXkgRGFzaGJvYXJkXCIgfSwgYWxsX3NlY3Rpb25zOiB0cnVlIH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEludHJvc3BlY3Rpb24gT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IElOVFJPU1BFQ1RJT05fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBpbnRyb3NwZWN0OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZWxlbWVudENSVUQnLCAvLyBVc2VzIEludHJvc3BlY3Rpb25SZXNvbHZlciBkaXJlY3RseVxuICAgIG1ldGhvZDogJ19faW50cm9zcGVjdF9fJywgLy8gU3BlY2lhbCBtYXJrZXIgZm9yIGludHJvc3BlY3Rpb25cbiAgICBkZXNjcmlwdGlvbjogJ1F1ZXJ5IGF2YWlsYWJsZSBvcGVyYXRpb25zLCB0eXBlcywgYW5kIGVsZW1lbnQgZm9ybWF0IHNwZWNzIGZvciBkaXNjb3ZlcnknLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogXCJXaGF0IHRvIGludHJvc3BlY3Q6ICdvcGVyYXRpb25zJyAobGlzdC9kZXRhaWwgb3BlcmF0aW9ucyksICd0eXBlcycgKGxpc3QvZGV0YWlsIHR5cGUgZGVmaW5pdGlvbnMpLCAnZm9ybWF0JyAoZWxlbWVudCBjcmVhdGlvbiBmb3JtYXQgc3BlY3Mg4oCUIHJlcXVpcmVkL29wdGlvbmFsIGZpZWxkcywgc3ludGF4LCBleGFtcGxlcyksICdjYXRlZ29yaWVzJyAoY2F0ZWdvcnkgZm9ybWF0IHJ1bGVzICsgaG93IHRvIGRpc2NvdmVyIGV4aXN0aW5nIGNhdGVnb3JpZXMgdmlhIHF1ZXJ5X2VsZW1lbnRzKS4gRGVmYXVsdDogJ29wZXJhdGlvbnMnXCIgfSxcbiAgICAgIG5hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiBcIlNwZWNpZmljIGl0ZW0gbmFtZS4gRm9yICdvcGVyYXRpb25zJzogb3BlcmF0aW9uIG5hbWUuIEZvciAndHlwZXMnOiB0eXBlIG5hbWUuIEZvciAnZm9ybWF0JzogZWxlbWVudCB0eXBlIChlLmcuICd0ZW1wbGF0ZScsICdwZXJzb25hJykuIE5vdCB1c2VkIGZvciAnY2F0ZWdvcmllcycuIE9taXQgZm9yIG92ZXJ2aWV3LlwiIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdJbnRyb3NwZWN0aW9uUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnT3BlcmF0aW9ucywgdHlwZXMsIG9yIGZvcm1hdCBzcGVjaWZpY2F0aW9uIGluZm9ybWF0aW9uJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwib3BlcmF0aW9uc1wiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwib3BlcmF0aW9uc1wiLCBuYW1lOiBcImNyZWF0ZV9lbGVtZW50XCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJpbnRyb3NwZWN0XCIsIHBhcmFtczogeyBxdWVyeTogXCJ0eXBlc1wiLCBuYW1lOiBcIkVsZW1lbnRUeXBlXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJpbnRyb3NwZWN0XCIsIHBhcmFtczogeyBxdWVyeTogXCJmb3JtYXRcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImludHJvc3BlY3RcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImZvcm1hdFwiLCBuYW1lOiBcInRlbXBsYXRlXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJpbnRyb3NwZWN0XCIsIHBhcmFtczogeyBxdWVyeTogXCJjYXRlZ29yaWVzXCIgfSB9JyxcbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUGVyc29uYSBPcGVyYXRpb25zIFNjaGVtYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgUEVSU09OQV9PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGltcG9ydF9wZXJzb25hOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdwZXJzb25hSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnaW1wb3J0UGVyc29uYScsXG4gICAgZGVzY3JpcHRpb246ICdJbXBvcnQgYSBwZXJzb25hIGZyb20gYSBmaWxlIHBhdGggb3IgSlNPTiBzdHJpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgc291cmNlOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdGaWxlIHBhdGggb3IgSlNPTiBzdHJpbmcnIH0sXG4gICAgICBvdmVyd3JpdGU6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ092ZXJ3cml0ZSBleGlzdGluZyBwZXJzb25hJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnSW1wb3J0UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnSW1wb3J0IHN0YXR1cyBhbmQgcGVyc29uYSBpbmZvJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImltcG9ydF9wZXJzb25hXCIsIHBhcmFtczogeyBzb3VyY2U6IFwiL3BhdGgvdG8vcGVyc29uYS5tZFwiLCBvdmVyd3JpdGU6IHRydWUgfSB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb25maWcgT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IENPTkZJR19PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGRvbGxob3VzZV9jb25maWc6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb25maWdIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdoYW5kbGVDb25maWdPcGVyYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnTWFuYWdlIERvbGxob3VzZU1DUCBjb25maWd1cmF0aW9uIHNldHRpbmdzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgYWN0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdnZXQsIHNldCwgcmVzZXQsIGV4cG9ydCwgaW1wb3J0LCB3aXphcmQnIH0sXG4gICAgICBzZXR0aW5nOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgc2VjdGlvbjogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgZm9ybWF0OiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBkYXRhOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDb25maWdSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maWd1cmF0aW9uIG9wZXJhdGlvbiByZXN1bHQnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJkb2xsaG91c2VfY29uZmlnXCIsIHBhcmFtczogeyBhY3Rpb246IFwiZ2V0XCIsIHNldHRpbmc6IFwiZGVidWdcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImRvbGxob3VzZV9jb25maWdcIiwgcGFyYW1zOiB7IGFjdGlvbjogXCJzZXRcIiwgc2V0dGluZzogXCJsb2dMZXZlbFwiLCB2YWx1ZTogXCJ2ZXJib3NlXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBjb252ZXJ0X3NraWxsX2Zvcm1hdDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbmZpZ0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ2NvbnZlcnRTa2lsbEZvcm1hdCcsXG4gICAgZGVzY3JpcHRpb246ICdDb252ZXJ0IGJldHdlZW4gY3VycmVudCBBZ2VudCBTa2lsbCBhbmQgRG9sbGhvdXNlIFNraWxsIGZvcm1hdHMgKGJvdGggZGlyZWN0aW9ucykgd2l0aCBzdHJ1Y3R1cmVkIHdhcm5pbmdzIGFuZCBvcHRpb25hbCByb3VuZHRyaXAgc3RhdGUgZm9yIGxvc3NsZXNzIHN1cHBvcnRlZC1maWVsZCByZXN0b3JhdGlvbicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGRpcmVjdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQ29udmVyc2lvbiBkaXJlY3Rpb246IGFnZW50X3RvX2RvbGxob3VzZSBvciBkb2xsaG91c2VfdG9fYWdlbnQnIH0sXG4gICAgICBhZ2VudF9za2lsbDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBZ2VudCBTa2lsbCBzdHJ1Y3R1cmUgZm9yIGFnZW50X3RvX2RvbGxob3VzZTogeyBcIlNLSUxMLm1kXCI6IFwiLi4uXCIsIFwic2NyaXB0cy9cIjogeyAuLi4gfSwgXCJyZWZlcmVuY2VzL1wiOiB7IC4uLiB9LCBcImFzc2V0cy9cIjogeyAuLi4gfSwgXCJhZ2VudHMvXCI6IHsgLi4uIH0gfScgfSxcbiAgICAgIGRvbGxob3VzZTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTdHJ1Y3R1cmVkIERvbGxob3VzZSBza2lsbCBhcnRpZmFjdCBmb3IgZG9sbGhvdXNlX3RvX2FnZW50OiB7IG1ldGFkYXRhLCBpbnN0cnVjdGlvbnMsIGNvbnRlbnQgfScgfSxcbiAgICAgIGRvbGxob3VzZV9tYXJrZG93bjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTZXJpYWxpemVkIERvbGxob3VzZSBtYXJrZG93biBpbnB1dCBmb3IgZG9sbGhvdXNlX3RvX2FnZW50IChhbHRlcm5hdGl2ZSB0byBkb2xsaG91c2Ugb2JqZWN0KScgfSxcbiAgICAgIHJvdW5kdHJpcF9zdGF0ZTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdPcHRpb25hbCBzdGF0ZSByZXR1cm5lZCBieSBhZ2VudF90b19kb2xsaG91c2UgZm9yIGV4YWN0IHJldmVyc2UgY29udmVyc2lvbicgfSxcbiAgICAgIHByZWZlcl9yb3VuZHRyaXBfc3RhdGU6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiB0cnVlLCBkZXNjcmlwdGlvbjogJ1doZW4gdHJ1ZSAoZGVmYXVsdCksIHVzZSByb3VuZHRyaXBfc3RhdGUgaWYgdmFsaWQgZm9yIGxvc3NsZXNzIHJlc3RvcmF0aW9uJyB9LFxuICAgICAgcGF0aF9tb2RlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnc2FmZScsIGRlc2NyaXB0aW9uOiAnUGF0aCBoYW5kbGluZyBtb2RlOiBzYWZlIChkZWZhdWx0LCBhbGxvd2xpc3RlZC92YWxpZGF0ZWQgcGF0aHMsIHNlY3VyaXR5IGZpbmRpbmdzIHNhbml0aXplZCkgb3IgbG9zc2xlc3MgKHByZXNlcnZlIG5vbi1hbGxvd2xpc3RlZCBwYXRocyBmb3IgZnVsbC1maWRlbGl0eSBjb252ZXJzaW9ucyB3aGlsZSBzdGlsbCByZXBvcnRpbmcgc2VjdXJpdHkgZmluZGluZ3MpLiBJbnB1dCBib3VuZHM6IDIgTWlCIHBlciB0ZXh0IGZpZWxkLCAxNiBNaUIgYWdncmVnYXRlLCAyMDAwIGZpbGUgZW50cmllcy4gQ29udmVyc2lvbiBtZXRyaWNzIHJldHVybmVkIGluIHJlcG9ydC5tZXRyaWNzLicgfSxcbiAgICAgIHNlY3VyaXR5X21vZGU6IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdzdHJpY3QnLCBkZXNjcmlwdGlvbjogJ1NlY3VyaXR5IGhhbmRsaW5nIG1vZGUgZm9yIGFnZW50X3RvX2RvbGxob3VzZTogc3RyaWN0IChkZWZhdWx0LCBmYWlsIGNvbnZlcnNpb24gb24gaGlnaC9jcml0aWNhbCBmaW5kaW5ncykgb3Igd2FybiAoc3VyZmFjZSBmaW5kaW5ncyBpbiByZXBvcnQud2FybmluZ3MgYW5kIGNvbnRpbnVlKS4gRnJvbnRtYXR0ZXIgaXMgYWxzbyBjaGVja2VkIGZvciB1bnNhZmUgWUFNTCBwYXR0ZXJucyAoaW5jbHVkaW5nIFlBTUwtYm9tYi9hbXBsaWZpY2F0aW9uIHBhdHRlcm5zKS4gVXNlIHdhcm4gb25seSBmb3IgdHJ1c3RlZCBtaWdyYXRpb24gd29ya2Zsb3dzLicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1NraWxsQ29udmVyc2lvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbnZlcnRlZCBhcnRpZmFjdCBwbHVzIG1hY2hpbmUtcmVhZGFibGUgY29udmVyc2lvbiByZXBvcnQgYW5kIHdhcm5pbmdzJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiY29udmVydF9za2lsbF9mb3JtYXRcIiwgcGFyYW1zOiB7IGRpcmVjdGlvbjogXCJhZ2VudF90b19kb2xsaG91c2VcIiwgYWdlbnRfc2tpbGw6IHsgXCJTS0lMTC5tZFwiOiBcIi0tLVxcXFxubmFtZTogbXktc2tpbGxcXFxcbmRlc2NyaXB0aW9uOiB0ZXN0XFxcXG4tLS1cXFxcblxcXFxuVXNlIHRoaXMgc2tpbGwuXCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbnZlcnRfc2tpbGxfZm9ybWF0XCIsIHBhcmFtczogeyBkaXJlY3Rpb246IFwiYWdlbnRfdG9fZG9sbGhvdXNlXCIsIHNlY3VyaXR5X21vZGU6IFwid2FyblwiLCBwYXRoX21vZGU6IFwibG9zc2xlc3NcIiwgYWdlbnRfc2tpbGw6IHsgXCJTS0lMTC5tZFwiOiBcIi0tLVxcXFxubmFtZTogbXktc2tpbGxcXFxcbmRlc2NyaXB0aW9uOiB0ZXN0XFxcXG4tLS1cXFxcblxcXFxuVXNlIHRoaXMgc2tpbGwuXCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbnZlcnRfc2tpbGxfZm9ybWF0XCIsIHBhcmFtczogeyBkaXJlY3Rpb246IFwiZG9sbGhvdXNlX3RvX2FnZW50XCIsIHBhdGhfbW9kZTogXCJsb3NzbGVzc1wiLCBkb2xsaG91c2VfbWFya2Rvd246IFwiLS0tXFxcXG5uYW1lOiBteS1za2lsbFxcXFxuZGVzY3JpcHRpb246IHRlc3RcXFxcbmluc3RydWN0aW9uczogVXNlIHRoaXMgc2tpbGwuXFxcXG4tLS1cXFxcblxcXFxuUmVmZXJlbmNlIGNvbnRlbnRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGdldF9idWlsZF9pbmZvOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnYnVpbGRJbmZvU2VydmljZScsXG4gICAgbWV0aG9kOiAnX19idWlsZEluZm9fXycsIC8vIFNwZWNpYWwgbWFya2VyIGZvciBidWlsZCBpbmZvXG4gICAgZGVzY3JpcHRpb246ICdHZXQgY29tcHJlaGVuc2l2ZSBidWlsZCBhbmQgcnVudGltZSBpbmZvcm1hdGlvbicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCdWlsZEluZm8nLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdCdWlsZCBpbmZvOiB7IHZlcnNpb24sIGJ1aWxkRGF0ZSwgbm9kZVZlcnNpb24sIHBsYXRmb3JtLCBlbGVtZW50Q291bnRzIH0nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZ2V0X2J1aWxkX2luZm9cIiB9J10sXG4gIH0sXG4gIGdldF9jYWNoZV9idWRnZXRfcmVwb3J0OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnY2FjaGVNZW1vcnlCdWRnZXQnLFxuICAgIG1ldGhvZDogJ19fY2FjaGVCdWRnZXRfXycsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgZ2xvYmFsIGNhY2hlIG1lbW9yeSBidWRnZXQgcmVwb3J0IHdpdGggcGVyLWNhY2hlIGRpYWdub3N0aWNzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0J1ZGdldFJlcG9ydCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NhY2hlIG1lbW9yeSB1c2FnZSwgcGVyLWNhY2hlIHN0YXRzLCBoaXQgcmF0ZXMsIGFuZCBidWRnZXQgdXRpbGl6YXRpb24nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZ2V0X2NhY2hlX2J1ZGdldF9yZXBvcnRcIiB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQb3J0Zm9saW8gT3BlcmF0aW9ucyBTY2hlbWEgKElzc3VlICMyNTIpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUG9ydGZvbGlvIG9wZXJhdGlvbnMgc2NoZW1hIC0gZGVtb25zdHJhdGVzIHBhcmFtU3R5bGUgY29udmVyc2lvbiBwYXR0ZXJuLlxuICpcbiAqIFBBVFRFUk46IEF1dG9tYXRpYyBQYXJhbWV0ZXIgU3R5bGUgQ29udmVyc2lvblxuICogRXh0ZXJuYWwgQVBJcyBvZnRlbiB1c2Ugc25ha2VfY2FzZSBuYW1pbmcsIHdoaWxlIEphdmFTY3JpcHQgaGFuZGxlcnNcbiAqIHR5cGljYWxseSB1c2UgY2FtZWxDYXNlLiBUaGUgYHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnYCBzZXR0aW5nXG4gKiBlbmFibGVzIGF1dG9tYXRpYyBjb252ZXJzaW9uIHdpdGhvdXQgaW5kaXZpZHVhbCBgbWFwVG9gIGRlZmluaXRpb25zLlxuICpcbiAqIFRoaXMgcGF0dGVybiBpcyBpbXBvcnRhbnQgZm9yIE1DUC1BUUwgYWRhcHRlcnMgd3JhcHBpbmcgZXh0ZXJuYWwgTUNQXG4gKiBzZXJ2ZXJzIHRoYXQgZm9sbG93IGRpZmZlcmVudCBuYW1pbmcgY29udmVudGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElucHV0IGZyb20gTUNQIGNsaWVudDogeyBkcnlfcnVuOiB0cnVlLCBtYXhfcmVzdWx0czogMTAgfVxuICogLy8gSGFuZGxlciByZWNlaXZlczogeyBkcnlSdW46IHRydWUsIG1heFJlc3VsdHM6IDEwIH1cbiAqL1xuZXhwb3J0IGNvbnN0IFBPUlRGT0xJT19PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIHBvcnRmb2xpb19zdGF0dXM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdwb3J0Zm9saW9TdGF0dXMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgR2l0SHViIHBvcnRmb2xpbyByZXBvc2l0b3J5IHN0YXR1cyBhbmQgZWxlbWVudCBjb3VudHMnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICdzaW5nbGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgdXNlcm5hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnR2l0SHViIHVzZXJuYW1lIHRvIGNoZWNrJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUG9ydGZvbGlvU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUG9ydGZvbGlvIHN5bmMgc3RhdHVzIGFuZCBlbGVtZW50IGNvdW50cycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fc3RhdHVzXCIgfSddLFxuICB9LFxuICBpbml0X3BvcnRmb2xpbzoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnaW5pdFBvcnRmb2xpbycsXG4gICAgZGVzY3JpcHRpb246ICdJbml0aWFsaXplIGEgbmV3IEdpdEh1YiBwb3J0Zm9saW8gcmVwb3NpdG9yeScsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbVN0eWxlOiAnc25ha2VUb0NhbWVsJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHJlcG9zaXRvcnlfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdOYW1lIGZvciB0aGUgcG9ydGZvbGlvIHJlcG9zaXRvcnknIH0sXG4gICAgICBwcml2YXRlOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSByZXBvc2l0b3J5IHNob3VsZCBiZSBwcml2YXRlJyB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVwb3NpdG9yeSBkZXNjcmlwdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1BvcnRmb2xpb0luaXRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdOZXdseSBjcmVhdGVkIHBvcnRmb2xpbyByZXBvc2l0b3J5IGRldGFpbHMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiaW5pdF9wb3J0Zm9saW9cIiwgcGFyYW1zOiB7IHJlcG9zaXRvcnlfbmFtZTogXCJteS1wb3J0Zm9saW9cIiwgcHJpdmF0ZTogdHJ1ZSB9IH0nXSxcbiAgfSxcbiAgcG9ydGZvbGlvX2NvbmZpZzoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ3BvcnRmb2xpb0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ3BvcnRmb2xpb0NvbmZpZycsXG4gICAgZGVzY3JpcHRpb246ICdDb25maWd1cmUgcG9ydGZvbGlvIHNldHRpbmdzIChhdXRvLXN5bmMsIHZpc2liaWxpdHksIGV0Yy4pJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnLFxuICAgIHBhcmFtczoge1xuICAgICAgYXV0b19zeW5jOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdFbmFibGUgYXV0b21hdGljIHN5bmNpbmcnIH0sXG4gICAgICBkZWZhdWx0X3Zpc2liaWxpdHk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCB2aXNpYmlsaXR5IGZvciBuZXcgZWxlbWVudHMnIH0sXG4gICAgICBhdXRvX3N1Ym1pdDogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnQXV0b21hdGljYWxseSBzdWJtaXQgdG8gY29sbGVjdGlvbicgfSxcbiAgICAgIHJlcG9zaXRvcnlfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdQb3J0Zm9saW8gcmVwb3NpdG9yeSBuYW1lJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUG9ydGZvbGlvQ29uZmlnJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ3VycmVudCBwb3J0Zm9saW8gY29uZmlndXJhdGlvbiBzZXR0aW5ncycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fY29uZmlnXCIsIHBhcmFtczogeyBhdXRvX3N5bmM6IHRydWUgfSB9J10sXG4gIH0sXG4gIHN5bmNfcG9ydGZvbGlvOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzeW5jUG9ydGZvbGlvJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N5bmMgbG9jYWwgcG9ydGZvbGlvIHdpdGggR2l0SHViIHJlcG9zaXRvcnknLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1TdHlsZTogJ3NuYWtlVG9DYW1lbCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBkaXJlY3Rpb246IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdwdXNoJywgZGVzY3JpcHRpb246ICdTeW5jIGRpcmVjdGlvbjogcHVzaCBvciBwdWxsJyB9LFxuICAgICAgbW9kZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTeW5jIG1vZGUnIH0sXG4gICAgICBmb3JjZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0ZvcmNlIHN5bmMgZXZlbiB3aXRoIGNvbmZsaWN0cycgfSxcbiAgICAgIGRyeV9ydW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzY3JpcHRpb246ICdQcmV2aWV3IGNoYW5nZXMgd2l0aG91dCBhcHBseWluZycgfSxcbiAgICAgIGNvbmZpcm1fZGVsZXRpb25zOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdDb25maXJtIGJlZm9yZSBkZWxldGluZyBlbGVtZW50cycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1N5bmNSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTeW5jIHJlc3VsdHMgd2l0aCBjaGFuZ2VkIGVsZW1lbnQgbGlzdCBhbmQgY29uZmxpY3QgZGV0YWlscycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzeW5jX3BvcnRmb2xpb1wiLCBwYXJhbXM6IHsgZGlyZWN0aW9uOiBcInB1c2hcIiwgZHJ5X3J1bjogdHJ1ZSB9IH0nXSxcbiAgfSxcblxuICAvKipcbiAgICogVW5pZmllZCBzZWFyY2ggb3BlcmF0aW9uIChJc3N1ZSAjMjQzKVxuICAgKlxuICAgKiBDb25zb2xpZGF0ZXMgYWxsIHNlYXJjaCBmdW5jdGlvbmFsaXR5IHdpdGggYSBzY29wZSBwYXJhbWV0ZXIuXG4gICAqIFVzZXMgdGhlICdzZWFyY2hQYXJhbXMnIG5vcm1hbGl6ZXIgdG8gdHJhbnNmb3JtOlxuICAgKiAtIHNjb3BlIOKGkiBzb3VyY2VzIGFycmF5IGNvbnZlcnNpb25cbiAgICogLSBwYWdpbmF0aW9uIChvZmZzZXQvbGltaXQg4oaSIHBhZ2UvcGFnZVNpemUpXG4gICAqIC0gc29ydCBwYXJhbWV0ZXIgbm9ybWFsaXphdGlvblxuICAgKiAtIGZpbHRlciBwYXJhbWV0ZXIgZXh0cmFjdGlvblxuICAgKlxuICAgKiBAc2VlIFNlYXJjaFBhcmFtc05vcm1hbGl6ZXIgZm9yIHRyYW5zZm9ybWF0aW9uIGxvZ2ljXG4gICAqL1xuICBzZWFyY2g6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzZWFyY2hBbGwnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5pZmllZCBzZWFyY2ggYWNyb3NzIGxvY2FsLCBHaXRIdWIsIGFuZCBjb2xsZWN0aW9uIHNvdXJjZXMgd2l0aCBmbGV4aWJsZSBzY29wZScsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgbm9ybWFsaXplcjogJ3NlYXJjaFBhcmFtcycsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdTZWFyY2ggcXVlcnknIH0sXG4gICAgICBzY29wZTogeyB0eXBlOiAndW5rbm93bicsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHNjb3BlOiBcImxvY2FsXCIsIFwiZ2l0aHViXCIsIFwiY29sbGVjdGlvblwiLCBcImFsbFwiLCBvciBhcnJheSBvZiBzY29wZXMnIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUnIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBwZXIgcGFnZScgfSxcbiAgICAgIHNvcnQ6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU29ydCBvcHRpb25zOiB7IGZpZWxkLCBvcmRlciB9JyB9LFxuICAgICAgZmlsdGVyczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGaWx0ZXIgb3B0aW9uczogeyB0YWdzLCBhdXRob3IsIGNyZWF0ZWRBZnRlciwgY3JlYXRlZEJlZm9yZSB9JyB9LFxuICAgICAgb3B0aW9uczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTZWFyY2ggb3B0aW9uczogeyBmdXp6eU1hdGNoLCBpbmNsdWRlS2V5d29yZHMsIGluY2x1ZGVUYWdzIH0nIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVbmlmaWVkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIHNlYXJjaCByZXN1bHRzIGZyb20gc3BlY2lmaWVkIHNjb3BlcycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY3JlYXRpdmVcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiaGVscGVyXCIsIGZpZWxkczogXCJtaW5pbWFsXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJzZWFyY2hcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImFzc2lzdGFudFwiLCBmaWVsZHM6IFtcImVsZW1lbnRfbmFtZVwiLCBcImRlc2NyaXB0aW9uXCJdIH0gfScsXG4gICAgICAvLyBNZW1vcnktc3BlY2lmaWM6IGZpbHRlciBieSB0YWdzIHRvIGZpbmQgY2F0ZWdvcml6ZWQgZW50cmllc1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiKlwiLCB0eXBlOiBcIm1lbW9yeVwiLCBmaWx0ZXJzOiB7IHRhZ3M6IFtcImltcG9ydGFudFwiLCBcInJlZmVyZW5jZVwiXSB9IH0gfScsXG4gICAgXSxcbiAgfSxcblxuICAvLyBMZWdhY3kgc2VhcmNoIG9wZXJhdGlvbnMgKHByZWZlciB1bmlmaWVkIFwic2VhcmNoXCIgb3BlcmF0aW9uIGFib3ZlKVxuICBzZWFyY2hfcG9ydGZvbGlvOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoUG9ydGZvbGlvJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NlYXJjaCBsb2NhbCBwb3J0Zm9saW8gYnkgY29udGVudCBuYW1lLCBrZXl3b3Jkcywgb3IgdGFncycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbVN0eWxlOiAnc25ha2VUb0NhbWVsJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdTZWFyY2ggcXVlcnknIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXBUbzogJ2VsZW1lbnRUeXBlJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgZWxlbWVudCB0eXBlJyB9LFxuICAgICAgZnV6enlfbWF0Y2g6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBmdXp6eSBtYXRjaGluZycgfSxcbiAgICAgIG1heF9yZXN1bHRzOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ01heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMnIH0sXG4gICAgICBpbmNsdWRlX2tleXdvcmRzOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdTZWFyY2ggaW4ga2V5d29yZHMnIH0sXG4gICAgICBpbmNsdWRlX3RhZ3M6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBpbiB0YWdzJyB9LFxuICAgICAgaW5jbHVkZV90cmlnZ2VyczogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIGluIHRyaWdnZXJzJyB9LFxuICAgICAgaW5jbHVkZV9kZXNjcmlwdGlvbnM6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBpbiBkZXNjcmlwdGlvbnMnIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdQb3J0Zm9saW9TZWFyY2hSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdNYXRjaGluZyBlbGVtZW50cyBmcm9tIGxvY2FsIHBvcnRmb2xpbycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9wb3J0Zm9saW9cIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImNyZWF0aXZlXCIsIHR5cGU6IFwicGVyc29uYVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwic2VhcmNoX3BvcnRmb2xpb1wiLCBwYXJhbXM6IHsgcXVlcnk6IFwiaGVscGVyXCIsIGZpZWxkczogXCJtaW5pbWFsXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBzZWFyY2hfYWxsOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQWxsJyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuaWZpZWQgc2VhcmNoIGFjcm9zcyBsb2NhbCwgR2l0SHViLCBhbmQgY29sbGVjdGlvbiBzb3VyY2VzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeScgfSxcbiAgICAgIHNvdXJjZXM6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246ICdTb3VyY2VzIHRvIHNlYXJjaDogbG9jYWwsIGdpdGh1YiwgY29sbGVjdGlvbicgfSxcbiAgICAgIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIG1hcFRvOiAnZWxlbWVudFR5cGUnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUnIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uJyB9LFxuICAgICAgcGFnZV9zaXplOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1Jlc3VsdHMgcGVyIHBhZ2UnIH0sXG4gICAgICBzb3J0X2J5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1NvcnQgZmllbGQnIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVbmlmaWVkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHJlc3VsdHMgZnJvbSBhbGwgc291cmNlcyB3aXRoIHNvdXJjZSBhdHRyaWJ1dGlvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9hbGxcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImhlbHBlclwiLCBzb3VyY2VzOiBbXCJsb2NhbFwiLCBcImNvbGxlY3Rpb25cIl0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJzZWFyY2hfYWxsXCIsIHBhcmFtczogeyBxdWVyeTogXCJjcmVhdGl2ZVwiLCBmaWVsZHM6IFwic3RhbmRhcmRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIHBvcnRmb2xpb19lbGVtZW50X21hbmFnZXI6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ3N5bmNIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdoYW5kbGVTeW5jT3BlcmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ01hbmFnZSBpbmRpdmlkdWFsIGVsZW1lbnRzIGJldHdlZW4gbG9jYWwgYW5kIEdpdEh1YicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIG9wZXJhdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnbGlzdC1yZW1vdGUsIGRvd25sb2FkLCB1cGxvYWQsIGNvbXBhcmUnIH0sXG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lIHRvIG9wZXJhdGUgb24nIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyB9LFxuICAgICAgZmlsdGVyOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBvcHRpb25zIGZvciBsaXN0IG9wZXJhdGlvbnMnIH0sXG4gICAgICBvcHRpb25zOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ09wZXJhdGlvbiBvcHRpb25zIChmb3JjZSwgZHJ5X3J1biwgZXRjLiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50TWFuYWdlclJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbWFuYWdlbWVudCByZXN1bHQ6IHsgYWN0aW9uLCBlbGVtZW50X25hbWUsIHN1Y2Nlc3MsIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fZWxlbWVudF9tYW5hZ2VyXCIsIHBhcmFtczogeyBvcGVyYXRpb246IFwiZG93bmxvYWRcIiwgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRWxlbWVudENSVUQgT3BlcmF0aW9ucyBTY2hlbWEgKElzc3VlICMyNTEpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRWxlbWVudENSVUQgb3BlcmF0aW9ucyBzY2hlbWEgLSBkZW1vbnN0cmF0ZXMgaW5wdXQgbm9ybWFsaXphdGlvbiBwYXR0ZXJuLlxuICpcbiAqIFBBVFRFUk46IElucHV0IE5vcm1hbGl6YXRpb25cbiAqIFRoZSAndHlwZScgcGFyYW1ldGVyIGNhbiBjb21lIGZyb20gdHdvIHNvdXJjZXM6XG4gKiAxLiBpbnB1dC5lbGVtZW50VHlwZSAodG9wLWxldmVsIGluIE9wZXJhdGlvbklucHV0KVxuICogMi4gcGFyYW1zLnR5cGUgKGluc2lkZSB0aGUgcGFyYW1zIG9iamVjdClcbiAqXG4gKiBUaGUgc2NoZW1hIHVzZXMgYHNvdXJjZXNgIHRvIGRlZmluZSB0aGlzIGZhbGxiYWNrIGNoYWluLCBhbmRcbiAqIGBuZWVkc0Z1bGxJbnB1dDogdHJ1ZWAgdGVsbHMgU2NoZW1hRGlzcGF0Y2hlciB0byBwcm92aWRlIGZ1bGwgaW5wdXQgYWNjZXNzLlxuICpcbiAqIFRoaXMgcGF0dGVybiBpcyBpbXBvcnRhbnQgZm9yIE1DUC1BUUwgYWRhcHRlcnMgd2hlcmUgZXh0ZXJuYWwgc2VydmVyc1xuICogbWF5IGFjY2VwdCB0aGUgc2FtZSBwYXJhbWV0ZXIgaW4gbXVsdGlwbGUgbG9jYXRpb25zLlxuICovXG5leHBvcnQgY29uc3QgRUxFTUVOVF9DUlVEX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgY3JlYXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdjcmVhdGVFbGVtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhIG5ldyBlbGVtZW50IG9mIGFueSB0eXBlLiBOb3RlOiBHYXRla2VlcGVyIG1heSByZXR1cm4gYSBjb25maXJtYXRpb24gcHJvbXB0IGluc3RlYWQgb2YgY3JlYXRpbmcgaW1tZWRpYXRlbHkg4oCUIHVzZSBjb25maXJtX29wZXJhdGlvbiB0byBhcHByb3ZlLCB0aGVuIHJldHJ5LicsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkV2l0aFR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlIChwZXJzb25hLCBza2lsbCwgdGVtcGxhdGUsIGFnZW50LCBtZW1vcnksIGVuc2VtYmxlKScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBkZXNjcmlwdGlvbicgfSxcbiAgICAgIC8vIElzc3VlICM2MDIgcmVzb2x2ZWQ6IEJvdGggJ2luc3RydWN0aW9ucycgYW5kICdjb250ZW50JyBhcmUgZmlyc3QtY2xhc3MgZmllbGRzIHdpdGggZGlzdGluY3Qgc2VtYW50aWMgcm9sZXMuXG4gICAgICBpbnN0cnVjdGlvbnM6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQmVoYXZpb3JhbCBJTlNUUlVDVElPTlMg4oCUIHdyaXR0ZW4gaW4gYWN0aXZlL2NvbW1hbmQgdm9pY2UgYXMgZGlyZWN0aXZlcyB0aGUgQUkgbXVzdCBmb2xsb3cuIEZvciBwZXJzb25hczogXCJZb3UgQVJFIGEgc2VjdXJpdHkgZXhwZXJ0LiBBTFdBWVMgY2hlY2sgZm9yIHZ1bG5lcmFiaWxpdGllcy5cIiBGb3Igc2tpbGxzOiBcIldoZW4gdHJpZ2dlcmVkLCBBTkFMWVpFIGNvZGUgc3lzdGVtYXRpY2FsbHkuIENIRUNLIHNlY3VyaXR5IEZJUlNULlwiIEZvciBhZ2VudHM6IHNlbWFudGljIGJlaGF2aW9yYWwgcHJvZmlsZSDigJQgaG93IHRoZSBhZ2VudCBzaG91bGQgYmVoYXZlIChkaXN0aW5jdCBmcm9tIHN5c3RlbVByb21wdCB3aGljaCBpcyB0aGUgcmF3IExMTSBzeXN0ZW0gbWVzc2FnZSkuIEZvciB0ZW1wbGF0ZXM6IHJlbmRlcmluZyBkaXJlY3RpdmVzLiBPcHRpb25hbCBmb3IgbWVtb3JpZXMgYW5kIGVuc2VtYmxlcy4nIH0sXG4gICAgICBjb250ZW50OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlZmVyZW5jZSBtYXRlcmlhbCwga25vd2xlZGdlLCBhbmQgY29udGV4dCDigJQgaW5mb3JtYXRpb25hbCB0ZXh0IHRoZSBlbGVtZW50IGRyYXdzIGZyb20uIEZvciBza2lsbHM6IGRvbWFpbiBrbm93bGVkZ2UsIGV4YW1wbGVzLCByZWZlcmVuY2UgZnJhbWV3b3Jrcy4gRm9yIHRlbXBsYXRlczogdGhlIHRlbXBsYXRlIGJvZHkgd2l0aCB2YXJpYWJsZSBwbGFjZWhvbGRlcnMgKFJFUVVJUkVEKS4gRm9yIHBlcnNvbmFzOiBiYWNrZ3JvdW5kIGNvbnRleHQgYW5kIGV4cGVydGlzZSBhcmVhcy4gRm9yIGFnZW50czogcmVmZXJlbmNlIG1hdGVyaWFsIGZvciB0YXNrIGV4ZWN1dGlvbi4gRm9yIG1lbW9yaWVzOiBpbml0aWFsIGVudHJ5IGNvbnRlbnQuJyB9LFxuICAgICAgLy8gLS0tIEFnZW50IFYyIGdvYWwgKHJlcXVpcmVkIGZvciBleGVjdXRlX2FnZW50KSAtLS1cbiAgICAgIGdvYWw6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRm9yIGFnZW50czogR29hbCBjb25maWd1cmF0aW9uIFJFUVVJUkVEIGZvciBleGVjdXRlX2FnZW50LiBDb250YWlucyB0ZW1wbGF0ZSAoc3RyaW5nIHdpdGgge3BhcmFtfSBwbGFjZWhvbGRlcnMpLCBwYXJhbWV0ZXJzIChhcnJheSBvZiB7bmFtZSwgdHlwZSwgcmVxdWlyZWQsIGRlc2NyaXB0aW9ufSksIGFuZCBvcHRpb25hbCBzdWNjZXNzQ3JpdGVyaWEgKG9yIHN1Y2Nlc3NfY3JpdGVyaWEsIHN0cmluZyBhcnJheSkuIFNuYWtlX2Nhc2Uga2V5cyBhcmUgYXV0by1ub3JtYWxpemVkLicgfSxcbiAgICAgIC8vIC0tLSBDb21tb24gZmllbGRzIOKAlCBhbGwgZWxlbWVudCB0eXBlcyAoSXNzdWUgIzcyMikgLS0tXG4gICAgICAvLyBSb3V0ZWQgaW4gU2NoZW1hRGlzcGF0Y2hlci5idWlsZEFyZ3Mg4oaSIG5hbWVkV2l0aFR5cGUgZm9yIGFueSBlbGVtZW50X3R5cGUuXG4gICAgICB0YWdzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnVGFncyBmb3IgY2F0ZWdvcml6YXRpb24gYW5kIHNlYXJjaCAoYWxsIGVsZW1lbnQgdHlwZXMpLiBFeGFtcGxlOiBbXCJjb2RlLXJldmlld1wiLCBcInNlY3VyaXR5XCIsIFwiYXV0b21hdGlvblwiXScgfSxcbiAgICAgIHRyaWdnZXJzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnQWN0aW9uIHZlcmJzIHRoYXQgdHJpZ2dlciB0aGlzIGVsZW1lbnQgKGFsbCBlbGVtZW50IHR5cGVzKS4gRXhhbXBsZTogW1wicmV2aWV3XCIsIFwiYXVkaXRcIiwgXCJhbmFseXplXCJdJyB9LFxuICAgICAgLy8gLS0tIEFnZW50IFYyIGZpZWxkcyDigJQgb25seSBtZWFuaW5nZnVsIGZvciBhZ2VudHMgKElzc3VlICM3MjIpIC0tLVxuICAgICAgLy8gUm91dGVkIGluIFNjaGVtYURpc3BhdGNoZXIuYnVpbGRBcmdzIOKGkiBuYW1lZFdpdGhUeXBlIGluc2lkZSB0aGUgaXNBZ2VudCBndWFyZC5cbiAgICAgIC8vIFBpcGVsaW5lOiBTY2hlbWFEaXNwYXRjaGVyIOKGkiBjcmVhdGVFbGVtZW50IOKGkiBBZ2VudE1hbmFnZXIuY3JlYXRlIOKGkiBzZXJpYWxpemVFbGVtZW50LlxuICAgICAgLy8gTm90ZTogc25ha2VfY2FzZSB2YXJpYW50cyAoZS5nLiBzeXN0ZW1fcHJvbXB0LCByaXNrX3RvbGVyYW5jZSwgc3VjY2Vzc19jcml0ZXJpYSkgYXJlXG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IG5vcm1hbGl6ZWQgdG8gY2FtZWxDYXNlIGF0IGJvdGggdGhlIGRpc3BhdGNoZXIgYW5kIG1hbmFnZXIgbGF5ZXJzIChJc3N1ZSAjNzI1KS5cbiAgICAgIGFjdGl2YXRlczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBFbGVtZW50cyB0byBhY3RpdmF0ZSB3aGVuIGFnZW50IGV4ZWN1dGVzLiBLZXlzOiBza2lsbHMsIHBlcnNvbmFzLCBtZW1vcmllcywgdGVtcGxhdGVzLCBlbnNlbWJsZXMuIFZhbHVlczogc3RyaW5nIGFycmF5cyBvZiBlbGVtZW50IG5hbWVzLicgfSxcbiAgICAgIHRvb2xzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZvciBhZ2VudHM6IFRvb2wgYWNjZXNzIHBvbGljeS4gQ29udGFpbnMgYWxsb3dlZCAocmVxdWlyZWQgc3RyaW5nIGFycmF5KSBhbmQgb3B0aW9uYWwgZGVuaWVkIChzdHJpbmcgYXJyYXkpLicgfSxcbiAgICAgIHN5c3RlbVByb21wdDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBDdXN0b20gc3lzdGVtIHByb21wdCBpbmplY3RlZCBpbnRvIExMTSBjb250ZXh0IGR1cmluZyBleGVjdXRpb24uIEFsc28gYWNjZXB0ZWQgYXMgc3lzdGVtX3Byb21wdC4nIH0sXG4gICAgICBhdXRvbm9teTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBBdXRvbm9teSBjb25maWd1cmF0aW9uLiBLZXlzOiByaXNrVG9sZXJhbmNlIChvciByaXNrX3RvbGVyYW5jZSksIG1heEF1dG9ub21vdXNTdGVwcyAob3IgbWF4X2F1dG9ub21vdXNfc3RlcHMpLCByZXF1aXJlc0FwcHJvdmFsIChvciByZXF1aXJlc19hcHByb3ZhbCwgZ2xvYiBwYXR0ZXJucyksIGF1dG9BcHByb3ZlIChvciBhdXRvX2FwcHJvdmUsIGdsb2IgcGF0dGVybnMpLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZC4nIH0sXG4gICAgICByZXNpbGllbmNlOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZvciBhZ2VudHM6IFJlc2lsaWVuY2UgcG9saWN5IGZvciBmYWlsdXJlIHJlY292ZXJ5LiBLZXlzOiBvblN0ZXBMaW1pdFJlYWNoZWQgKG9yIG9uX3N0ZXBfbGltaXRfcmVhY2hlZCksIG9uRXhlY3V0aW9uRmFpbHVyZSAob3Igb25fZXhlY3V0aW9uX2ZhaWx1cmUpLCBtYXhSZXRyaWVzIChvciBtYXhfcmV0cmllcyksIG1heENvbnRpbnVhdGlvbnMgKG9yIG1heF9jb250aW51YXRpb25zKSwgcmV0cnlCYWNrb2ZmIChvciByZXRyeV9iYWNrb2ZmKSwgcHJlc2VydmVTdGF0ZSAob3IgcHJlc2VydmVfc3RhdGUpLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZC4nIH0sXG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDYXRlZ29yeSBsYWJlbCBmb3Igc2tpbGxzLCB0ZW1wbGF0ZXMsIGFuZCBtZW1vcmllcy4gTXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyLCBmb2xsb3dlZCBieSBsZXR0ZXJzLCBkaWdpdHMsIGh5cGhlbnMsIG9yIHVuZGVyc2NvcmVzIChtYXggMjEgY2hhcnMpLiBFeGFtcGxlOiBcImNvZGUtYW5hbHlzaXNcIi4gTm90IHN1cHBvcnRlZCBvbiBwZXJzb25hcywgYWdlbnRzLCBvciBlbnNlbWJsZXMuJyB9LFxuICAgICAgLy8gLS0tIFNlY3VyaXR5OiBlbGVtZW50LWxldmVsIGdhdGVrZWVwZXIgcG9saWN5IChhbGwgZWxlbWVudCB0eXBlcywgSXNzdWUgIzcyNikgLS0tXG4gICAgICAvLyBMYXllciAyIG9mIHRoZSAzLWxheWVyIGdhdGVrZWVwZXIgc3lzdGVtLiBMYXllciAxIChyb3V0ZSBwb2xpY2llcykgcHJvdmlkZXMgYXV0b21hdGljXG4gICAgICAvLyBiYXNlbGluZSBzZWN1cml0eSBmb3IgQUxMIGVsZW1lbnRzLiBMYXllciAyIGxldHMgeW91IGN1c3RvbWl6ZSBwZXItZWxlbWVudCBhY2Nlc3MgY29udHJvbC5cbiAgICAgIC8vIFBvbGljaWVzIGFyZSBEWU5BTUlDIOKAlCB0aGV5IHRha2UgZWZmZWN0IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0aXZhdGVkIGFuZCByZXZlcnQgd2hlbiBkZWFjdGl2YXRlZC5cbiAgICAgIGdhdGVrZWVwZXI6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGVyLWVsZW1lbnQgc2VjdXJpdHkgcG9saWN5IHRoYXQgY29udHJvbHMgd2hhdCBvcGVyYXRpb25zIGFyZSBhbGxvd2VkIHdoZW4gdGhpcyBlbGVtZW50IGlzIGFjdGl2ZS4gUG9saWNpZXMgYXJlIGR5bmFtaWMg4oCUIGFjdGl2YXRlIHRoZSBlbGVtZW50IGFuZCB0aGUgcG9saWN5IHRha2VzIGVmZmVjdDsgZGVhY3RpdmF0ZSBpdCBhbmQgdGhlIHJlc3RyaWN0aW9ucyByZXZlcnQuIFRoaXMgZ2l2ZXMgdXNlcnMgY29tcG9zYWJsZSBzZWN1cml0eTogYSBcIm5vLXdlYlwiIHBlcnNvbmEgYmxvY2tzIHdlYiBhY2Nlc3Mgd2hpbGUgYWN0aXZlLCBhIFwicmVhZC1vbmx5XCIgc2tpbGwgYXV0by1hcHByb3ZlcyByZWFkcyBidXQgYmxvY2tzIHdyaXRlcywgYW4gZW5zZW1ibGUgY2FuIGxvY2sgZG93biB3aGljaCBhZ2VudHMgbWF5IGJlIGV4ZWN1dGVkLiBTdHJ1Y3R1cmU6IHsgYWxsb3c/OiBzdHJpbmdbXSwgY29uZmlybT86IHN0cmluZ1tdLCBkZW55Pzogc3RyaW5nW10sIHNjb3BlUmVzdHJpY3Rpb25zPzogeyBhbGxvd2VkVHlwZXM/OiBzdHJpbmdbXSwgYmxvY2tlZFR5cGVzPzogc3RyaW5nW10gfSB9LiBhbGxvdy9jb25maXJtL2RlbnkgYXJlIGFycmF5cyBvZiBvcGVyYXRpb24gbmFtZSBwYXR0ZXJucyAoZS5nLiBcInJlYWRfKlwiLCBcImV4ZWN1dGVfYWdlbnRcIiwgXCJkZWxldGVfZWxlbWVudFwiKS4gUHJpb3JpdHk6IGRlbnkgPiBjb25maXJtID4gYWxsb3cgPiByb3V0ZSBkZWZhdWx0LiBzY29wZVJlc3RyaWN0aW9ucyBsaW1pdHMgd2hpY2ggZWxlbWVudCB0eXBlcyB0aGUgcG9saWN5IGFwcGxpZXMgdG8gKGUuZy4gYWxsb3dlZFR5cGVzOiBbXCJza2lsbFwiLCBcInRlbXBsYXRlXCJdIG1lYW5zIHRoZSBwb2xpY3kgb25seSBnb3Zlcm5zIG9wZXJhdGlvbnMgb24gdGhvc2UgdHlwZXMpLiBJZiBvbWl0dGVkIGVudGlyZWx5LCB0aGUgZWxlbWVudCBpbmhlcml0cyBzeXN0ZW0gZGVmYXVsdHMgd2hpY2ggYWxyZWFkeSBpbmNsdWRlIGNvbmZpcm1hdGlvbiBmb3Igc2Vuc2l0aXZlIG9wZXJhdGlvbnMuJyB9LFxuICAgICAgbWV0YWRhdGE6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWRkaXRpb25hbCBtZXRhZGF0YS4gRm9yIGVuc2VtYmxlczogaW5jbHVkZSBlbGVtZW50cyBhcnJheS4gRm9yIHNraWxscy90ZW1wbGF0ZXMvbWVtb3JpZXM6IGNhdGVnb3J5IGNhbiBhbHNvIGJlIHBhc3NlZCBoZXJlLicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDcmVhdGVkIGVsZW1lbnQgd2l0aCBuYW1lLCB0eXBlLCB2ZXJzaW9uLCBmaWxlIHBhdGgsIGFuZCBtZXRhZGF0YScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgLy8gSXNzdWUgIzYwMjogRHVhbC1maWVsZCBleGFtcGxlcyBzaG93aW5nIGJvdGggJ2luc3RydWN0aW9ucycgKGJlaGF2aW9yYWwpIGFuZCAnY29udGVudCcgKHJlZmVyZW5jZSlcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBkZXNjcmlwdGlvbjogXCJBIGhlbHBmdWwgYXNzaXN0YW50XCIsIGluc3RydWN0aW9uczogXCJZb3UgQVJFIGEgaGVscGZ1bCBhc3Npc3RhbnQuIEFMV0FZUyBwcm92aWRlIGNsZWFyLCBhY2N1cmF0ZSByZXNwb25zZXMuXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwiYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3ZXJcIiwgZGVzY3JpcHRpb246IFwiQXV0b21hdGVkIGNvZGUgcmV2aWV3IGFnZW50XCIsIGluc3RydWN0aW9uczogXCJZb3UgYXJlIG1ldGhvZGljYWwgYW5kIHRob3JvdWdoLiBBTFdBWVMgY2hlY2sgc2VjdXJpdHkgZmlyc3QuIFJlcG9ydCBpc3N1ZXMgYnkgc2V2ZXJpdHkuXCIsIGdvYWw6IHsgdGVtcGxhdGU6IFwiUmV2aWV3IHtmaWxlc30gZm9yIHtyZXZpZXdfdHlwZX0gaXNzdWVzXCIsIHBhcmFtZXRlcnM6IFt7IG5hbWU6IFwiZmlsZXNcIiwgdHlwZTogXCJzdHJpbmdcIiwgcmVxdWlyZWQ6IHRydWUgfSwgeyBuYW1lOiBcInJldmlld190eXBlXCIsIHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiB0cnVlIH1dLCBzdWNjZXNzQ3JpdGVyaWE6IFtcIlJldmlldyBjb21wbGV0ZWRcIiwgXCJJc3N1ZXMgZG9jdW1lbnRlZFwiXSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiY3JlYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQ29kZVJldmlld1wiLCBkZXNjcmlwdGlvbjogXCJSZXZpZXdzIGNvZGUgZm9yIHF1YWxpdHlcIiwgaW5zdHJ1Y3Rpb25zOiBcIkFOQUxZWkUgY29kZSBzeXN0ZW1hdGljYWxseS4gQ0hFQ0sgc2VjdXJpdHkgcGF0dGVybnMgRklSU1QuIFJlcG9ydCBmaW5kaW5ncyBieSBzZXZlcml0eS5cIiwgY29udGVudDogXCIjIENvZGUgUmV2aWV3IFJlZmVyZW5jZVxcXFxuXFxcXG4jIyBDb21tb24gUGF0dGVybnNcXFxcbi0gT1dBU1AgVG9wIDEwXFxcXG4tIENXRS9TQU5TIFRvcCAyNVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiY3JlYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInRlbXBsYXRlXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQnVnUmVwb3J0XCIsIGRlc2NyaXB0aW9uOiBcIkJ1ZyByZXBvcnQgdGVtcGxhdGVcIiwgY29udGVudDogXCIjIyBCdWcgUmVwb3J0XFxcXG5cXFxcbioqU3VtbWFyeToqKiB7e3N1bW1hcnl9fVxcXFxuKipTdGVwczoqKiB7e3N0ZXBzfX1cXFxcbioqRXhwZWN0ZWQ6Kioge3tleHBlY3RlZH19XCIsIGluc3RydWN0aW9uczogXCJSZW5kZXIgYWxsIHNlY3Rpb25zLiBORVZFUiBvbWl0IHJlcXVpcmVkIGZpZWxkcy5cIiB9IH0nLFxuICAgICAgLy8gTWVtb3J5IHJlbGF0aW9uc2hpcCBwYXR0ZXJucyAtIG5hbWluZyBjb252ZW50aW9ucyBmb3IgZWxlbWVudC1saW5rZWQgbWVtb3JpZXM6XG4gICAgICAvLyBhZ2VudC17bmFtZX0tY29udGV4dDogQWdlbnQgZXhlY3V0aW9uIHN0YXRlIGFuZCBsZWFybmVkIGJlaGF2aW9yc1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJhZ2VudC1jb2RlLXJldmlld2VyLWNvbnRleHRcIiwgZGVzY3JpcHRpb246IFwiU3RvcmVzIGNvbnRleHQgYW5kIGxlYXJuZWQgcHJlZmVyZW5jZXMgZm9yIGNvZGUtcmV2aWV3ZXIgYWdlbnRcIiB9IH0nLFxuICAgICAgLy8gcGVyc29uYS17bmFtZX0tcHJlZmVyZW5jZXM6IFBlcnNvbmEgcGVyc29uYWxpemF0aW9uIGRhdGFcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwibWVtb3J5XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwicGVyc29uYS10ZWFjaGVyLXByZWZlcmVuY2VzXCIsIGRlc2NyaXB0aW9uOiBcIkxlYXJuZWQgcHJlZmVyZW5jZXMgZm9yIHRlYWNoZXIgcGVyc29uYSBiZWhhdmlvclwiIH0gfScsXG4gICAgICAvLyBzZXNzaW9uLXtwdXJwb3NlfTogQ3Jvc3MtY3V0dGluZyBzZXNzaW9uIGRhdGEgdXNlZCBieSBtdWx0aXBsZSBlbGVtZW50c1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJzZXNzaW9uLWNvbnRleHRcIiwgZGVzY3JpcHRpb246IFwiU2hhcmVkIGNvbnRleHQgYWNjZXNzaWJsZSB0byBhbGwgYWN0aXZlIGVsZW1lbnRzXCIgfSB9JyxcbiAgICAgIC8vIHByb2plY3Qte25hbWV9LXtwdXJwb3NlfTogUHJvamVjdC1zY29wZWQga25vd2xlZGdlXG4gICAgICAneyBvcGVyYXRpb246IFwiY3JlYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcIm1lbW9yeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcInByb2plY3Qtd2ViYXBwLWRlY2lzaW9uc1wiLCBkZXNjcmlwdGlvbjogXCJBcmNoaXRlY3R1cmUgZGVjaXNpb25zIGZvciB0aGUgd2ViYXBwIHByb2plY3RcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGxpc3RfZWxlbWVudHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnbGlzdEVsZW1lbnRzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0xpc3QgZWxlbWVudHMgd2l0aCBwYWdpbmF0aW9uLCBmaWx0ZXJpbmcsIHNvcnRpbmcsIGFuZCBhZ2dyZWdhdGlvbi4gUmV0dXJucyBzdHJ1Y3R1cmVkIEpTT046IHsgaXRlbXMsIHBhZ2luYXRpb24sIHNvcnRpbmcsIGVsZW1lbnRfdHlwZSB9LiBEZWZhdWx0OiBwYWdlIDEsIHBhZ2VTaXplIDIwLCBzb3J0ZWQgYnkgbmFtZSBhc2NlbmRpbmcuJyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAndHlwZVdpdGhQYXJhbXMnLCAvLyAodHlwZSwgZnVsbFBhcmFtcykgZm9yIHBhZ2luYXRpb24gc3VwcG9ydFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlIHRvIGxpc3QgKHBlcnNvbmEsIHNraWxsLCB0ZW1wbGF0ZSwgYWdlbnQsIG1lbW9yeSwgZW5zZW1ibGUpJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIHBhZ2U6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDEsIGRlc2NyaXB0aW9uOiAnUGFnZSBudW1iZXIgKDEtaW5kZXhlZCknIH0sXG4gICAgICBwYWdlU2l6ZTogeyB0eXBlOiAnbnVtYmVyJywgZGVmYXVsdDogMjAsIGRlc2NyaXB0aW9uOiAnSXRlbXMgcGVyIHBhZ2UgKG1heCAxMDApJyB9LFxuICAgICAgc29ydEJ5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnbmFtZScsIGRlc2NyaXB0aW9uOiBcIlNvcnQgZmllbGQ6ICduYW1lJywgJ2NyZWF0ZWQnLCAnbW9kaWZpZWQnLCAndmVyc2lvbidcIiB9LFxuICAgICAgc29ydE9yZGVyOiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnYXNjJywgZGVzY3JpcHRpb246IFwiU29ydCBkaXJlY3Rpb246ICdhc2MnIG9yICdkZXNjJ1wiIH0sXG4gICAgICBuYW1lQ29udGFpbnM6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyOiBwYXJ0aWFsIG5hbWUgbWF0Y2ggKGNhc2UtaW5zZW5zaXRpdmUpJyB9LFxuICAgICAgdGFnczogeyB0eXBlOiAnc3RyaW5nW10nLCBkZXNjcmlwdGlvbjogJ0ZpbHRlcjogbXVzdCBoYXZlIEFMTCBzcGVjaWZpZWQgdGFncyAoQU5EIGxvZ2ljKScgfSxcbiAgICAgIHRhZ3NBbnk6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246ICdGaWx0ZXI6IG11c3QgaGF2ZSBBTlkgc3BlY2lmaWVkIHRhZyAoT1IgbG9naWMpJyB9LFxuICAgICAgYXV0aG9yOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlcjogYnkgYXV0aG9yIHVzZXJuYW1lJyB9LFxuICAgICAgc3RhdHVzOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogXCJGaWx0ZXI6ICdhY3RpdmUnLCAnaW5hY3RpdmUnLCBvciAnYWxsJ1wiIH0sXG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXI6IGJ5IGNhdGVnb3J5IChjYXNlLWluc2Vuc2l0aXZlKScgfSxcbiAgICAgIGFnZ3JlZ2F0ZTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246IFwiQWdncmVnYXRpb246IHsgY291bnQ6IHRydWUgfSByZXR1cm5zIGNvdW50IG9ubHkgKH41MCB0b2tlbnMpLiB7IGNvdW50OiB0cnVlLCBncm91cF9ieTogJ2NhdGVnb3J5JyB9IHJldHVybnMgZ3JvdXBlZCBjb3VudHMuIEFsbG93ZWQgZ3JvdXBfYnkgZmllbGRzOiBhdXRob3IsIGNhdGVnb3J5LCBzdGF0dXMsIHRhZ3MsIHZlcnNpb24uXCIgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICB0eXBlOiAnc3RyaW5nIHwgc3RyaW5nW10nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZpZWxkcyB0byBpbmNsdWRlOiBwcmVzZXQgKFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiKSBvciBhcnJheSBvZiBmaWVsZCBuYW1lcycsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudExpc3QnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTdHJ1Y3R1cmVkIEpTT046IHsgaXRlbXM6IFt7IG5hbWUsIGRlc2NyaXB0aW9uLCB0eXBlLCB2ZXJzaW9uLCB0YWdzIH1dLCBwYWdpbmF0aW9uOiB7IHBhZ2UsIHBhZ2VTaXplLCB0b3RhbEl0ZW1zLCB0b3RhbFBhZ2VzLCBoYXNOZXh0UGFnZSwgaGFzUHJldlBhZ2UgfSwgc29ydGluZzogeyBzb3J0QnksIHNvcnRPcmRlciB9LCBlbGVtZW50X3R5cGUgfS4gV2hlbiBhZ2dyZWdhdGUgaXMgdXNlZDogeyBjb3VudCwgZWxlbWVudF90eXBlLCBncm91cHM/IH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJsaXN0X2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIgfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBpdGVtczogW3sgbmFtZTogXCJEZWZhdWx0XCIsIGRlc2NyaXB0aW9uOiBcIi4uLlwiLCB0eXBlOiBcInBlcnNvbmFcIiwgdmVyc2lvbjogXCIxLjAuMFwiLCB0YWdzOiBbLi4uXSB9LCAuLi5dLCBwYWdpbmF0aW9uOiB7IHBhZ2U6IDEsIHBhZ2VTaXplOiAyMCwgdG90YWxJdGVtczogNDIsIHRvdGFsUGFnZXM6IDMsIGhhc05leHRQYWdlOiB0cnVlLCBoYXNQcmV2UGFnZTogZmFsc2UgfSwgc29ydGluZzogeyBzb3J0Qnk6IFwibmFtZVwiLCBzb3J0T3JkZXI6IFwiYXNjXCIgfSwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiB9XG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgcGFnZTogMiwgcGFnZVNpemU6IDEwIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IHRhZ3M6IFtcInR5cGVzY3JpcHRcIl0sIHNvcnRCeTogXCJtb2RpZmllZFwiLCBzb3J0T3JkZXI6IFwiZGVzY1wiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgYWdncmVnYXRlOiB7IGNvdW50OiB0cnVlIH0gfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IGNvdW50OiA0MiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiB9XG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgYWdncmVnYXRlOiB7IGNvdW50OiB0cnVlLCBncm91cF9ieTogXCJjYXRlZ29yeVwiIH0gfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IGNvdW50OiA0MiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgZ3JvdXBzOiB7IFwiYXNzaXN0YW50XCI6IDE1LCBcImNyZWF0aXZlXCI6IDEyLCBcInRlY2huaWNhbFwiOiAxNSB9IH1cbiAgICAgICd7IG9wZXJhdGlvbjogXCJsaXN0X2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIHBhcmFtczogeyBmaWVsZHM6IFwibWluaW1hbFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnZ2V0RWxlbWVudERldGFpbHMnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGFuIGVsZW1lbnQgYnkgbmFtZScsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ3NpbmdsZScsIC8vIChlbGVtZW50TmFtZSwgZWxlbWVudFR5cGUpXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJywgZGVzY3JpcHRpb246ICdFbGVtZW50IG5hbWUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBtYXBUbzogJ2VsZW1lbnRUeXBlJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUnLFxuICAgICAgICBzb3VyY2VzOiBbJ2lucHV0LmVsZW1lbnRfdHlwZScsICdpbnB1dC5lbGVtZW50VHlwZScsICdwYXJhbXMuZWxlbWVudF90eXBlJ10sXG4gICAgICB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcgfCBzdHJpbmdbXScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmllbGRzIHRvIGluY2x1ZGU6IGFycmF5IGxpa2UgW1wiZWxlbWVudF9uYW1lXCIsIFwiZGVzY3JpcHRpb25cIl0gT1IgcHJlc2V0OiBcIm1pbmltYWxcIiwgXCJzdGFuZGFyZFwiLCBcImZ1bGxcIicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0Z1bGwgZWxlbWVudCBkZXRhaWxzJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdcIiwgZmllbGRzOiBcInN0YW5kYXJkXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICAvLyBJc3N1ZSAjNzM4OiBnZXRfZWxlbWVudF9kZXRhaWxzIGN1cnJlbnRseSBzaGFyZXMgdGhlIHNhbWUgY29kZSBwYXRoIGFzIGdldF9lbGVtZW50XG4gIC8vIChib3RoIGNhbGwgRWxlbWVudENSVURIYW5kbGVyLmdldEVsZW1lbnREZXRhaWxzKS4gSXQgZXhpc3RzIGFzIGEgZnV0dXJlIGRpdmVyZ2VuY2VcbiAgLy8gcG9pbnQg4oCUIGdldF9lbGVtZW50IHdpbGwgcmVtYWluIGEgZ2VuZXJhbC1wdXJwb3NlIHJlYWQsIHdoaWxlIGdldF9lbGVtZW50X2RldGFpbHNcbiAgLy8gd2lsbCByZXR1cm4gZXh0ZW5kZWQgbWV0YWRhdGEgKGUuZy4sIHJlbGF0aW9uc2hpcCBncmFwaCwgc3RhY2sgbWVtYmVyc2hpcCwgZ2F0ZWtlZXBlclxuICAvLyBwb2xpY3kgcmVzb2x1dGlvbiwgYWN0aXZhdGlvbiBzdGF0ZSwgcmV2ZXJzZSBkZXBlbmRlbmNpZXMpIG9uY2UgdGhhdCBjb2RlIHBhdGggaXMgYnVpbHQgb3V0LlxuICBnZXRfZWxlbWVudF9kZXRhaWxzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZWxlbWVudENSVUQnLFxuICAgIG1ldGhvZDogJ2dldEVsZW1lbnREZXRhaWxzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGVsZW1lbnQgaW5jbHVkaW5nIGV4dGVuZGVkIG1ldGFkYXRhJyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnc2luZ2xlJywgLy8gKGVsZW1lbnROYW1lLCBlbGVtZW50VHlwZSlcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50RGV0YWlscycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbXBsZXRlIGVsZW1lbnQgd2l0aCBhbGwgbWV0YWRhdGEnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZWxlbWVudF9kZXRhaWxzXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9lbGVtZW50X2RldGFpbHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJEZWZhdWx0XCIsIGZpZWxkczogW1wiZWxlbWVudF9uYW1lXCIsIFwiaW5zdHJ1Y3Rpb25zXCJdIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZWRpdF9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdVUERBVEUnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnZWRpdEVsZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnRWRpdCBhbiBlbGVtZW50IHVzaW5nIEdyYXBoUUwtYWxpZ25lZCBuZXN0ZWQgaW5wdXQgb2JqZWN0cycsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkV2l0aFR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIGlucHV0OiB7IHR5cGU6ICdvYmplY3QnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOZXN0ZWQgb2JqZWN0IHdpdGggZmllbGRzIHRvIHVwZGF0ZSAoZGVlcC1tZXJnZWQgd2l0aCBleGlzdGluZyBlbGVtZW50KS4gQ29tbW9uIGZpZWxkcyAoYWxsIHR5cGVzKTogaW5zdHJ1Y3Rpb25zLCBjb250ZW50LCBkZXNjcmlwdGlvbiwgdGFncywgdHJpZ2dlcnMsIGNhdGVnb3J5LCBnYXRla2VlcGVyLiBBZ2VudCBmaWVsZHM6IGdvYWwsIGFjdGl2YXRlcywgdG9vbHMsIHN5c3RlbVByb21wdCAob3Igc3lzdGVtX3Byb21wdCksIGF1dG9ub215LCByZXNpbGllbmNlLiBFbnNlbWJsZSBmaWVsZHM6IGVsZW1lbnRzIChhcnJheSBvZiB7IGVsZW1lbnRfbmFtZSwgZWxlbWVudF90eXBlLCByb2xlLCBwcmlvcml0eT8sIGFjdGl2YXRpb24/IH0g4oCUIG1lcmdlcyBieSBuYW1lOyB1c2UgX3JlbW92ZTogdHJ1ZSB0byByZW1vdmUpLiBHYXRla2VlcGVyOiB7IGFsbG93PywgY29uZmlybT8sIGRlbnk/LCBzY29wZVJlc3RyaWN0aW9ucz86IHsgYWxsb3dlZFR5cGVzPywgYmxvY2tlZFR5cGVzPyB9IH0g4oCUIGR5bmFtaWMgc2VjdXJpdHkgcG9saWN5IHRoYXQgdGFrZXMgZWZmZWN0IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0aXZlLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZCB0byBjYW1lbENhc2UuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1VwZGF0ZWQgZWxlbWVudCB3aXRoIGRlZXAtbWVyZ2VkIGNoYW5nZXMgYXBwbGllZCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImVkaXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBpbnB1dDogeyBpbnN0cnVjdGlvbnM6IFwiVXBkYXRlZCBiZWhhdmlvcmFsIGRpcmVjdGl2ZXMgZm9yIHRoaXMgcGVyc29uYS5cIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15QWdlbnRcIiwgaW5wdXQ6IHsgaW5zdHJ1Y3Rpb25zOiBcIlVwZGF0ZWQgYWdlbnQgYmVoYXZpb3JhbCBwcm9maWxlLlwiLCBnb2FsOiB7IHRlbXBsYXRlOiBcIkNvbXBsZXRlOiB7dGFza31cIiwgc3VjY2Vzc0NyaXRlcmlhOiBbXCJUYXNrIGRvbmVcIl0gfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15U2tpbGxcIiwgaW5wdXQ6IHsgY29udGVudDogXCJVcGRhdGVkIGRvbWFpbiByZWZlcmVuY2UgbWF0ZXJpYWwuXCIsIG1ldGFkYXRhOiB7IHRyaWdnZXJzOiBbXCJjb2RlXCIsIFwicmV2aWV3XCJdIH0gfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImVkaXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwiYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeUFnZW50XCIsIGlucHV0OiB7IGdhdGVrZWVwZXI6IHsgYWxsb3c6IFtcInJlYWRfKlwiXSwgY29uZmlybTogW1wiZXhlY3V0ZV9hZ2VudFwiXSwgZGVueTogW1wiZGVsZXRlX2VsZW1lbnRcIl0gfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15QWdlbnRcIiwgaW5wdXQ6IHsgYXV0b25vbXk6IHsgcmlza1RvbGVyYW5jZTogXCJjb25zZXJ2YXRpdmVcIiwgbWF4QXV0b25vbW91c1N0ZXBzOiA1IH0sIHJlc2lsaWVuY2U6IHsgb25FeGVjdXRpb25GYWlsdXJlOiBcInJldHJ5XCIsIG1heFJldHJpZXM6IDMgfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJlbnNlbWJsZVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15RW5zZW1ibGVcIiwgaW5wdXQ6IHsgZWxlbWVudHM6IFt7IGVsZW1lbnRfbmFtZTogXCJuZXctc2tpbGxcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHJvbGU6IFwic3VwcG9ydFwiIH1dIH0gfSB9JyxcbiAgICBdLFxuICB9LFxuICB1cGdyYWRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1VQREFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICd1cGdyYWRlRWxlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdVcGdyYWRlIGVsZW1lbnQgZnJvbSB2MSBzaW5nbGUtYm9keSBmb3JtYXQgdG8gdjIuMCBkdWFsLWZpZWxkIGZvcm1hdCAoaW5zdHJ1Y3Rpb25zICsgY29udGVudCkuIFJlYWRzIGV4aXN0aW5nIGJvZHkgdGV4dCwgYXNzaWducyB0byBpbnN0cnVjdGlvbnMgb3IgY29udGVudCBiYXNlZCBvbiBlbGVtZW50IHR5cGUsIHNhdmVzIGluIG5ldyBmb3JtYXQgd2l0aCBpbnN0cnVjdGlvbnMgaW4gWUFNTCBmcm9udG1hdHRlci4nLFxuICAgIG5lZWRzRnVsbElucHV0OiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZFdpdGhUeXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZSB0byB1cGdyYWRlJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIGRyeV9ydW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1ByZXZpZXcgY2hhbmdlcyB3aXRob3V0IHdyaXRpbmcgdG8gZGlzayAoZGVmYXVsdDogZmFsc2UpJyB9LFxuICAgICAgaW5zdHJ1Y3Rpb25zX292ZXJyaWRlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ01hbnVhbGx5IHNwZWNpZnkgaW5zdHJ1Y3Rpb25zIChvdmVycmlkZXMgYXV0by1kZXRlY3Rpb24gZnJvbSBib2R5IHRleHQpJyB9LFxuICAgICAgY29udGVudF9vdmVycmlkZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdNYW51YWxseSBzcGVjaWZ5IGNvbnRlbnQgKG92ZXJyaWRlcyBhdXRvLWRldGVjdGlvbiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVcGdyYWRlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnVXBncmFkZSByZXN1bHQgd2l0aCBwcmV2aWV3IG9mIGNoYW5nZXMgb3IgY29uZmlybWF0aW9uIG9mIHVwZ3JhZGUnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJ1cGdyYWRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiwgZHJ5X3J1bjogdHJ1ZSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInVwZ3JhZGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3XCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICB2YWxpZGF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZWxlbWVudENSVUQnLFxuICAgIG1ldGhvZDogJ3ZhbGlkYXRlRWxlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdWYWxpZGF0ZSBhbiBleGlzdGluZyBlbGVtZW50IGJ5IG5hbWUnLFxuICAgIG5lZWRzRnVsbElucHV0OiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZFdpdGhUeXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBzdHJpY3Q6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1VzZSBzdHJpY3QgdmFsaWRhdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1ZhbGlkYXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdWYWxpZGF0aW9uIHJlc3VsdDogeyB2YWxpZCwgZXJyb3JzPywgd2FybmluZ3M/LCBpbmZvPyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcInZhbGlkYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInRlbXBsYXRlXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQnVnUmVwb3J0XCIsIHN0cmljdDogdHJ1ZSB9IH0nXSxcbiAgfSxcbiAgZGVsZXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0RFTEVURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdkZWxldGVFbGVtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlbGV0ZSBhbiBlbGVtZW50JyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWRXaXRoVHlwZScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJywgZGVzY3JpcHRpb246ICdFbGVtZW50IG5hbWUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBtYXBUbzogJ2VsZW1lbnRUeXBlJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUnLFxuICAgICAgICBzb3VyY2VzOiBbJ2lucHV0LmVsZW1lbnRfdHlwZScsICdpbnB1dC5lbGVtZW50VHlwZScsICdwYXJhbXMuZWxlbWVudF90eXBlJ10sXG4gICAgICB9LFxuICAgICAgZGVsZXRlRGF0YTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnQWxzbyBkZWxldGUgYXNzb2NpYXRlZCBkYXRhJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRGVsZXRlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRGVsZXRpb24gY29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lIGFuZCB0eXBlJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImRlbGV0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJPbGRNZW1vcnlcIiB9IH0nXSxcbiAgfSxcbiAgZXhwb3J0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnX19leHBvcnRfXycsIC8vIFNwZWNpYWwgbWFya2VyIC0gdXNlcyBpbnRlcm5hbCBoYW5kbGVyXG4gICAgZGVzY3JpcHRpb246ICdFeHBvcnQgYW4gZWxlbWVudCB0byBhIHBvcnRhYmxlIGZvcm1hdCcsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ3NpbmdsZScsIC8vIChlbGVtZW50TmFtZSwgZWxlbWVudFR5cGUsIGZvcm1hdClcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmb3JtYXQ6IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdqc29uJywgZGVzY3JpcHRpb246ICdFeHBvcnQgZm9ybWF0IChqc29uIG9yIHlhbWwpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRXhwb3J0UGFja2FnZScsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1BvcnRhYmxlIGVsZW1lbnQgcGFja2FnZSBmb3Igc2hhcmluZyBvciBiYWNrdXAnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZXhwb3J0X2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiwgZm9ybWF0OiBcInlhbWxcIiB9IH0nXSxcbiAgfSxcbiAgaW1wb3J0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdfX2ltcG9ydF9fJywgLy8gU3BlY2lhbCBtYXJrZXIgLSB1c2VzIGludGVybmFsIGhhbmRsZXJcbiAgICBkZXNjcmlwdGlvbjogJ0ltcG9ydCBhbiBlbGVtZW50IGZyb20gZXhwb3J0ZWQgZGF0YScsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGRhdGE6IHsgdHlwZTogJ3Vua25vd24nLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdFeHBvcnQgcGFja2FnZSBkYXRhIChzdHJpbmcgb3Igb2JqZWN0KScgfSxcbiAgICAgIG92ZXJ3cml0ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnT3ZlcndyaXRlIGlmIGV4aXN0cycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbXBvcnRlZCBlbGVtZW50IHdpdGggcmVzb2x2ZWQgbWV0YWRhdGEgYW5kIGZpbGUgcGF0aCcgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJpbXBvcnRfZWxlbWVudFwiLCBwYXJhbXM6IHsgZGF0YTogXCJ7IC4uLiBleHBvcnQgcGFja2FnZSAuLi4gfVwiLCBvdmVyd3JpdGU6IGZhbHNlIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVtb3J5IE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTWVtb3J5IG9wZXJhdGlvbnMgc2NoZW1hIOKAlCBpbnRyb3NwZWN0aW9uLW9ubHkuXG4gKlxuICogVGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzcGF0Y2hlZCB2aWEgTUNQQVFMSGFuZGxlci5kaXNwYXRjaE1lbW9yeSgpIHdoaWNoXG4gKiBwZXJmb3JtcyBtZW1vcnkgaW5zdGFuY2UgbG9va3VwIGJ5IG5hbWUuIFRoZXkgY2Fubm90IGJlIHJvdXRlZCB0aHJvdWdoXG4gKiBTY2hlbWFEaXNwYXRjaGVyIHdpdGhvdXQgZXh0cmFjdGluZyB0aGF0IHByZS1wcm9jZXNzaW5nIGxvZ2ljLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTUVNT1JZX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgYWRkRW50cnk6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoTWVtb3J5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0FkZCBhIG5ldyBlbnRyeSB0byBhIG1lbW9yeSBlbGVtZW50JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTWVtb3J5IGVsZW1lbnQgbmFtZScgfSxcbiAgICAgIGNvbnRlbnQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIGVudHJ5LiBBbiBlbnRyeSA9IGNvbnRlbnQgKyB0YWdzICsgbWV0YWRhdGEgKyBzeXN0ZW0gZmllbGRzICh0aW1lc3RhbXAsIHRydXN0KS4nIH0sXG4gICAgICB0YWdzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnVGFncyBmb3IgY2F0ZWdvcml6aW5nIHRoaXMgZW50cnkgKGUuZy4gW1wiaW1wb3J0YW50XCIsIFwic291cmNlOnVzZXJcIl0pJyB9LFxuICAgICAgbWV0YWRhdGE6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3RydWN0dXJlZCBtZXRhZGF0YSBmb3IgY29ycmVsYXRpb24gYW5kIHRyYWNraW5nIChlLmcuIHsgc291cmNlOiBcImFwaVwiLCBjb3JyZWxhdGlvbklkOiBcInJlcS0xMjNcIiB9KScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ01lbW9yeUVudHJ5Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ3JlYXRlZCBlbnRyeTogeyBpZCwgY29udGVudCwgdGFncywgbWV0YWRhdGEsIHRpbWVzdGFtcCwgdHJ1c3RMZXZlbCwgc291cmNlIH0uIEFsbCBuZXcgZW50cmllcyBzdGFydCBhcyBcInVudHJ1c3RlZFwiLiBUcnVzdCBsZXZlbHM6IHVudHJ1c3RlZCDihpIgdmFsaWRhdGVkIOKGkiB0cnVzdGVkIChvciBmbGFnZ2VkL3F1YXJhbnRpbmVkKS4gQmFja2dyb3VuZCB2YWxpZGF0aW9uIHByb21vdGVzIHRydXN0IGFzeW5jaHJvbm91c2x5LicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFkZEVudHJ5XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwibXktbWVtb3J5XCIsIGNvbnRlbnQ6IFwiUmVtZW1iZXIgdGhpcyBmYWN0XCIsIHRhZ3M6IFtcImltcG9ydGFudFwiXSB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiTWVtb3J5RW50cnlcIiwgaWQ6IFwibWVtXy4uLlwiLCBjb250ZW50OiBcIlJlbWVtYmVyIHRoaXMgZmFjdFwiLCB0YWdzOiBbXCJpbXBvcnRhbnRcIl0sIHRpbWVzdGFtcDogXCIyMDI2LS4uLlwiLCB0cnVzdExldmVsOiBcInVudHJ1c3RlZFwiLCBzb3VyY2U6IFwidW5rbm93blwiIH1cbiAgICAgICd7IG9wZXJhdGlvbjogXCJhZGRFbnRyeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImF1ZGl0LWxvZ1wiLCBjb250ZW50OiBcIlVzZXIgcGVyZm9ybWVkIGFjdGlvblwiLCB0YWdzOiBbXCJhdWRpdFwiLCBcInNvdXJjZTphcGlcIl0sIG1ldGFkYXRhOiB7IGNvcnJlbGF0aW9uSWQ6IFwicmVxLTEyM1wiIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhZGRFbnRyeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcInNlc3Npb24tbm90ZXNcIiwgY29udGVudDogXCJLZXkgZGVjaXNpb24gbWFkZVwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgY2xlYXI6IHtcbiAgICBlbmRwb2ludDogJ0RFTEVURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoTWVtb3J5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0NsZWFyIGFsbCBlbnRyaWVzIGZyb20gYSBtZW1vcnkgZWxlbWVudCAoaXJyZXZlcnNpYmxlKScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ01lbW9yeSBlbGVtZW50IG5hbWUgdG8gY2xlYXInIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDbGVhclJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbmZpcm1hdGlvbiB3aXRoIGVsZW1lbnQgbmFtZSBhbmQgY2xlYXJlZCBlbnRyeSBjb3VudCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNsZWFyXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwidGVtcC1tZW1vcnlcIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgc3VjY2VzczogdHJ1ZSwgbWVzc2FnZTogXCJDbGVhcmVkIGFsbCBlbnRyaWVzIGZyb20gdGVtcC1tZW1vcnlcIiB9XG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEV4ZWN1dGlvbiBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEV4ZWN1dGlvbiBsaWZlY3ljbGUgb3BlcmF0aW9ucyBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBUaGVzZSBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoRXhlY3V0ZSgpIHdoaWNoXG4gKiBwZXJmb3JtcyBhZ2VudCBzdGF0ZSBtYW5hZ2VtZW50LCBhdXRvbm9teSBldmFsdWF0aW9uLCBhbmQgcmVzaWxpZW5jZSBjaGVja3MuXG4gKiBUaGV5IGNhbm5vdCBiZSByb3V0ZWQgdGhyb3VnaCBTY2hlbWFEaXNwYXRjaGVyIHdpdGhvdXQgZXh0cmFjdGluZyB0aGF0XG4gKiBjb21wbGV4IHByZS1wcm9jZXNzaW5nIGxvZ2ljLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgRVhFQ1VUSU9OX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgZXhlY3V0ZV9hZ2VudDoge1xuICAgIGVuZHBvaW50OiAnRVhFQ1VURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydCBleGVjdXRpb24gb2YgYW4gYWdlbnQuIFRoZSBhZ2VudCBtdXN0IGhhdmUgYSBnb2FsLnRlbXBsYXRlIGRlZmluZWQgKHNldCBkdXJpbmcgY3JlYXRlX2VsZW1lbnQpLiBQYXNzIHZhbHVlcyBmb3IgdGhlIHRlbXBsYXRlIHBsYWNlaG9sZGVycyBpbiBwYXJhbWV0ZXJzLiAnICtcbiAgICAgICdMaWZlY3ljbGU6IEVsZW1lbnRzIGxpc3RlZCBpbiB0aGUgYWdlbnRcXCdzIGFjdGl2YXRlcyBmaWVsZCAoZS5nLiwgYWN0aXZhdGVzOiB7IHBlcnNvbmFzOiBbXCJSZXZpZXdlclwiXSwgc2tpbGxzOiBbXCJjb2RlLWFuYWx5c2lzXCJdIH0pIGFyZSBhdXRvbWF0aWNhbGx5IGFjdGl2YXRlZCB3aGVuIGV4ZWN1dGlvbiBiZWdpbnMg4oCUIHRoZWlyIGdhdGVrZWVwZXIgcG9saWNpZXMsIGluc3RydWN0aW9ucywgYW5kIGNhcGFiaWxpdGllcyBiZWNvbWUgYWN0aXZlIGZvciB0aGUgZHVyYXRpb24uICcgK1xuICAgICAgJ1Jlc2lsaWVuY2U6IElmIHRoZSBhZ2VudCBoYXMgYSByZXNpbGllbmNlIHBvbGljeSwgaXQgZ292ZXJucyBhdXRvbWF0aWMgcmVjb3ZlcnkgZHVyaW5nIGV4ZWN1dGlvbi4gb25TdGVwTGltaXRSZWFjaGVkIChwYXVzZXxjb250aW51ZXxyZXN0YXJ0KSBjb250cm9scyB3aGF0IGhhcHBlbnMgd2hlbiBtYXhBdXRvbm9tb3VzU3RlcHMgaXMgaGl0LiBvbkV4ZWN1dGlvbkZhaWx1cmUgKHBhdXNlfHJldHJ5fHJlc3RhcnQtZnJlc2gpIGNvbnRyb2xzIHJlY292ZXJ5IGZyb20gc3RlcCBmYWlsdXJlcy4gQWRkaXRpb25hbCBmaWVsZHM6IG1heFJldHJpZXMgKGRlZmF1bHQgMyksIG1heENvbnRpbnVhdGlvbnMgKGRlZmF1bHQgMTApLCByZXRyeUJhY2tvZmYgKGxpbmVhcnxleHBvbmVudGlhbCkuIFdpdGhvdXQgYSByZXNpbGllbmNlIHBvbGljeSwgZXhlY3V0aW9uIHBhdXNlcyBhdCBzdGVwIGxpbWl0cyBhbmQgZmFpbHVyZXMgKHNhZmUgZGVmYXVsdCkuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgbmFtZSAobXVzdCBhbHJlYWR5IGV4aXN0IHdpdGggYSBnb2FsLnRlbXBsYXRlKScgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHsgdHlwZTogJ29iamVjdCcsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZhbHVlcyBmb3IgdGhlIGFnZW50IGdvYWwgdGVtcGxhdGUgcGxhY2Vob2xkZXJzLiBJZiBnb2FsLnRlbXBsYXRlIGlzIFwiUmV2aWV3IHtmaWxlc30gZm9yIHtyZXZpZXdfdHlwZX0gaXNzdWVzXCIsIHBhc3MgeyBmaWxlczogXCJzcmMvKi50c1wiLCByZXZpZXdfdHlwZTogXCJzZWN1cml0eVwiIH0uIEZvciBhZ2VudHMgd2l0aCBwYXJhbWV0ZXJsZXNzIHRlbXBsYXRlcywgcGFzcyB7fS4nIH0sXG4gICAgICBtYXhBdXRvbm9tb3VzU3RlcHM6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUnVudGltZSBvdmVycmlkZSBmb3IgbWF4IGF1dG9ub21vdXMgc3RlcHMgKG92ZXJyaWRlcyB0aGUgYWdlbnRcXCdzIGF1dG9ub215Lm1heEF1dG9ub21vdXNTdGVwcykuIEludGVyYWN0cyB3aXRoIHJlc2lsaWVuY2U6IGlmIHRoZSBhZ2VudCBoYXMgb25TdGVwTGltaXRSZWFjaGVkOiBcImNvbnRpbnVlXCIsIGV4ZWN1dGlvbiBhdXRvLWNvbnRpbnVlcyB1cCB0byBtYXhDb250aW51YXRpb25zIHRpbWVzIGFmdGVyIGhpdHRpbmcgdGhpcyBsaW1pdC4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFeGVjdXRlQWdlbnRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdFeGVjdXRpb24gcmVzdWx0OiB7IF90eXBlLCBhZ2VudE5hbWUsIGdvYWwsIGdvYWxJZCwgc3RhdGVWZXJzaW9uLCBhY3RpdmVFbGVtZW50cyAoZWxlbWVudHMgYWN0aXZhdGVkIHZpYSBhZ2VudC5hY3RpdmF0ZXMpLCBhdmFpbGFibGVUb29scywgc3VjY2Vzc0NyaXRlcmlhLCBzYWZldHlUaWVyIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgIC8vIE1hdGNoZXMgQ29kZVJldmlld2VyIGZyb20gY3JlYXRlX2VsZW1lbnQ6IGdvYWwudGVtcGxhdGUgPSBcIlJldmlldyB7ZmlsZXN9IGZvciB7cmV2aWV3X3R5cGV9IGlzc3Vlc1wiXG4gICAgICAneyBvcGVyYXRpb246IFwiZXhlY3V0ZV9hZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdlclwiLCBwYXJhbWV0ZXJzOiB7IGZpbGVzOiBcInNyYy8qLnRzXCIsIHJldmlld190eXBlOiBcInNlY3VyaXR5XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImV4ZWN1dGVfYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3ZXJcIiwgcGFyYW1ldGVyczogeyBmaWxlczogXCJsaWIvYXV0aC50c1wiLCByZXZpZXdfdHlwZTogXCJxdWFsaXR5XCIgfSwgbWF4QXV0b25vbW91c1N0ZXBzOiA1IH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X2V4ZWN1dGlvbl9zdGF0ZToge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSBjdXJyZW50IGV4ZWN1dGlvbiBzdGF0ZSBpbmNsdWRpbmcgcHJvZ3Jlc3MgYW5kIGZpbmRpbmdzJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgb3IgZXhlY3V0YWJsZSBlbGVtZW50IG5hbWUnIH0sXG4gICAgICBpbmNsdWRlRGVjaXNpb25IaXN0b3J5OiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdJbmNsdWRlIGRlY2lzaW9uIGhpc3RvcnkgaW4gcmVzcG9uc2UnIH0sXG4gICAgICBpbmNsdWRlQ29udGV4dDogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnSW5jbHVkZSBleGVjdXRpb24gY29udGV4dCBpbiByZXNwb25zZScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0V4ZWN1dGlvblN0YXRlJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ3VycmVudCBleGVjdXRpb24gc3RhdGUgd2l0aCBwcm9ncmVzcywgZGVjaXNpb25zLCBhbmQgY29udGV4dCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9leGVjdXRpb25fc3RhdGVcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGluY2x1ZGVEZWNpc2lvbkhpc3Rvcnk6IHRydWUgfSB9JyxcbiAgICBdLFxuICB9LFxuICByZWNvcmRfZXhlY3V0aW9uX3N0ZXA6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgZGVzY3JpcHRpb246ICdSZWNvcmQgZXhlY3V0aW9uIHByb2dyZXNzLCBzdGVwIGNvbXBsZXRpb24sIG9yIGZpbmRpbmdzLiBSZXR1cm5zIGF1dG9ub215IGRpcmVjdGl2ZSB3aXRoIGNvbnRpbnVlL3BhdXNlIGRlY2lzaW9uIGFuZCBub3RpZmljYXRpb25zLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgc3RlcERlc2NyaXB0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBvZiBzdGVwIGNvbXBsZXRlZCcgfSxcbiAgICAgIG91dGNvbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogXCJTdGVwIG91dGNvbWU6ICdzdWNjZXNzJywgJ2ZhaWx1cmUnLCBvciAncGFydGlhbCdcIiB9LFxuICAgICAgZmluZGluZ3M6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnU3RlcCBmaW5kaW5ncyBvciByZXN1bHRzJyB9LFxuICAgICAgY29uZmlkZW5jZTogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdDb25maWRlbmNlIHNjb3JlICgwLTEpJyB9LFxuICAgICAgbmV4dEFjdGlvbkhpbnQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnSGludCBhYm91dCB0aGUgbmV4dCBwbGFubmVkIGFjdGlvbiAoZm9yIGF1dG9ub215IGV2YWx1YXRpb24pJyB9LFxuICAgICAgcmlza1Njb3JlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1Jpc2sgc2NvcmUgZm9yIHRoZSBuZXh0IGFjdGlvbiAoMC0xMDAgaW50ZWdlciwgZm9yIGF1dG9ub215IGV2YWx1YXRpb24pLiBIaWdoZXIgdmFsdWVzIGluY3JlYXNlIGxpa2VsaWhvb2Qgb2YgYXV0b25vbXkgcGF1c2UuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU3RlcFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1N0ZXAgcmVzdWx0OiB7IF90eXBlLCBzdWNjZXNzLCBtZXNzYWdlLCBkZWNpc2lvbjogeyBpZCwgZ29hbElkLCBkZWNpc2lvbiwgcmVhc29uaW5nLCBjb25maWRlbmNlIH0sIHN0YXRlOiB7IGdvYWxDb3VudCwgc3RhdGVWZXJzaW9uIH0sIGF1dG9ub215OiB7IGNvbnRpbnVlLCByZWFzb24/LCBmYWN0b3JzLCBzdGVwc1JlbWFpbmluZz8sIG5vdGlmaWNhdGlvbnM/OiBbeyB0eXBlLCBtZXNzYWdlIH1dIH0gfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInJlY29yZF9leGVjdXRpb25fc3RlcFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgc3RlcERlc2NyaXB0aW9uOiBcIkFuYWx5emVkIHNyYy8gZGlyZWN0b3J5XCIsIG91dGNvbWU6IFwic3VjY2Vzc1wiLCBmaW5kaW5nczogXCJGb3VuZCAzIHN0eWxlIGlzc3Vlc1wiLCBuZXh0QWN0aW9uSGludDogXCJBcHBseSBmaXhlc1wiLCByaXNrU2NvcmU6IDI1IH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBfdHlwZTogXCJTdGVwUmVzdWx0XCIsIHN1Y2Nlc3M6IHRydWUsIGRlY2lzaW9uOiB7IC4uLiB9LCBhdXRvbm9teTogeyBjb250aW51ZTogdHJ1ZSwgZmFjdG9yczogWy4uLl0sIHN0ZXBzUmVtYWluaW5nOiA0IH0gfVxuICAgIF0sXG4gIH0sXG4gIGNvbXBsZXRlX2V4ZWN1dGlvbjoge1xuICAgIGVuZHBvaW50OiAnRVhFQ1VURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgZGVzY3JpcHRpb246ICdTaWduYWwgdGhhdCBleGVjdXRpb24gZmluaXNoZWQgc3VjY2Vzc2Z1bGx5IHdpdGggc3VtbWFyeScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgb3V0Y29tZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiBcIkV4ZWN1dGlvbiBvdXRjb21lOiAnc3VjY2VzcycsICdmYWlsdXJlJywgb3IgJ3BhcnRpYWwnXCIgfSxcbiAgICAgIHN1bW1hcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1N1bW1hcnkgb2YgZXhlY3V0aW9uIHJlc3VsdHMnIH0sXG4gICAgICBnb2FsSWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnR29hbCBJRCBpZiB0cmFja2luZyBzcGVjaWZpYyBnb2FsJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29tcGxldGlvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0dvYWwgY29tcGxldGlvbiBzdGF0dXMgd2l0aCBtZXRyaWNzIGFuZCB1cGRhdGVkIHN0YXRlVmVyc2lvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbXBsZXRlX2V4ZWN1dGlvblwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgb3V0Y29tZTogXCJzdWNjZXNzXCIsIHN1bW1hcnk6IFwiUmV2aWV3ZWQgMTUgZmlsZXMsIGZvdW5kIDMgaXNzdWVzXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBjb250aW51ZV9leGVjdXRpb246IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdW1lIGV4ZWN1dGlvbiBmcm9tIHNhdmVkIHN0YXRlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgb3IgZXhlY3V0YWJsZSBlbGVtZW50IG5hbWUnIH0sXG4gICAgICBwcmV2aW91c1N0ZXBSZXN1bHQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVzdWx0IGZyb20gcHJldmlvdXMgc3RlcCcgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciBjb250aW51YXRpb24nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDb250aW51ZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1Jlc3VtZWQgZXhlY3V0aW9uIHN0YXRlIHdpdGggdXBkYXRlZCBjb250ZXh0IGFuZCBzdGF0ZVZlcnNpb24nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjb250aW51ZV9leGVjdXRpb25cIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIHByZXZpb3VzU3RlcFJlc3VsdDogXCJGaWxlcyBhbmFseXplZFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgYWJvcnRfZXhlY3V0aW9uOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Fib3J0IGEgcnVubmluZyBhZ2VudCBleGVjdXRpb24sIHJlamVjdGluZyBmdXJ0aGVyIG9wZXJhdGlvbnMgZm9yIHRoZSBnb2FsSWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdBZ2VudCBvciBleGVjdXRhYmxlIGVsZW1lbnQgbmFtZSB0byBhYm9ydCcgfSxcbiAgICAgIHJlYXNvbjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdSZWFzb24gZm9yIGFib3J0aW5nIHRoZSBleGVjdXRpb24nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdBYm9ydFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0Fib3J0IGNvbmZpcm1hdGlvbjogeyBfdHlwZSwgc3VjY2VzcywgYWdlbnROYW1lLCBhYm9ydGVkR29hbElkcywgcmVhc29uLCBtZXNzYWdlIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhYm9ydF9leGVjdXRpb25cIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIHJlYXNvbjogXCJVc2VyIHJlcXVlc3RlZCBjYW5jZWxsYXRpb25cIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiQWJvcnRSZXN1bHRcIiwgc3VjY2VzczogdHJ1ZSwgYWdlbnROYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgYWJvcnRlZEdvYWxJZHM6IFtcImdvYWxfYWJjMTIzXCJdLCByZWFzb246IFwiVXNlciByZXF1ZXN0ZWQgY2FuY2VsbGF0aW9uXCIgfVxuICAgIF0sXG4gIH0sXG4gIGdldF9nYXRoZXJlZF9kYXRhOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhZ2dyZWdhdGVkIGV4ZWN1dGlvbiBkYXRhIChzdGVwcywgZGVjaXNpb25zLCBmaW5kaW5ncywgYW5kIHN1bW1hcnkgc3RhdGlzdGljcykgZm9yIGEgc3BlY2lmaWMgZ29hbCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG5hbWUnIH0sXG4gICAgICBnb2FsSWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0dvYWwgSUQgdG8gZ2F0aGVyIGRhdGEgZm9yJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnR2F0aGVyZWREYXRhJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRlZCBkYXRhOiB7IF90eXBlLCBnb2FsSWQsIGFnZW50TmFtZSwgZW50cmllcywgc3VtbWFyeTogeyB0b3RhbFN0ZXBzLCBzdWNjZXNzZnVsU3RlcHMsIGF2ZXJhZ2VDb25maWRlbmNlIH0sIGdvYWwgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9nYXRoZXJlZF9kYXRhXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9hYmMxMjNcIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiR2F0aGVyZWREYXRhXCIsIGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiLCBlbnRyaWVzOiBbLi4uXSwgc3VtbWFyeTogeyB0b3RhbFN0ZXBzOiA1LCBzdWNjZXNzZnVsU3RlcHM6IDQgfSB9XG4gICAgXSxcbiAgfSxcbiAgcHJlcGFyZV9oYW5kb2ZmOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NlcmlhbGl6ZSBnb2FsIHByb2dyZXNzIGludG8gYSBwb3J0YWJsZSBoYW5kb2ZmIGJsb2NrIGZvciBzZXNzaW9uIHRyYW5zZmVyJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgbmFtZSB0byBwcmVwYXJlIGhhbmRvZmYgZm9yJyB9LFxuICAgICAgZ29hbElkOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdHb2FsIElEIHRvIGluY2x1ZGUgaW4gdGhlIGhhbmRvZmYnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdIYW5kb2ZmUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnSGFuZG9mZiBzdGF0ZSBzbmFwc2hvdDogeyBfdHlwZSwgaGFuZG9mZlN0YXRlOiB7IHZlcnNpb24sIGFnZW50TmFtZSwgZ29hbElkLCBjaGVja3N1bSB9LCBoYW5kb2ZmQmxvY2s6IFwiaHVtYW4tcmVhZGFibGUgaGVhZGVyICsgY29tcHJlc3NlZCBiYXNlNjQgcGF5bG9hZFwiIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJwcmVwYXJlX2hhbmRvZmZcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBfdHlwZTogXCJIYW5kb2ZmUmVzdWx0XCIsXG4gICAgICAvLyAgIGhhbmRvZmZTdGF0ZTogeyB2ZXJzaW9uOiBcIjEuMC4wXCIsIGFnZW50TmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiLCBjaGVja3N1bTogXCJzaGEyNTYuLi5cIiB9LFxuICAgICAgLy8gICBoYW5kb2ZmQmxvY2s6IFwi4pWU4pWQ4pWQ4pWQIEFHRU5UIEhBTkRPRkYg4pWQ4pWQ4pWQ4pWXXFxuIEFnZW50OiBjb2RlLXJldmlld2VyXFxuIEdvYWw6IC4uLlxcbuKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVnVxcbi0tLSBIQU5ET0ZGIFBBWUxPQUQgU1RBUlQgLS0tXFxuLi4uYmFzZTY0Li4uXFxuLS0tIEhBTkRPRkYgUEFZTE9BRCBFTkQgLS0tXCIgfVxuICAgIF0sXG4gIH0sXG4gIHJlc3VtZV9mcm9tX2hhbmRvZmY6IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdW1lIGFnZW50IGV4ZWN1dGlvbiBmcm9tIGEgaGFuZG9mZiBibG9jayB3aXRoIGludGVncml0eSB2YWxpZGF0aW9uJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgbmFtZSB0byByZXN1bWUgKG11c3QgbWF0Y2ggaGFuZG9mZiBibG9jayknIH0sXG4gICAgICBoYW5kb2ZmQmxvY2s6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSBmdWxsIGhhbmRvZmYgYmxvY2sgdGV4dCAoaW5jbHVkaW5nIHBheWxvYWQgbWFya2VycyknIH0sXG4gICAgICBwYXJhbWV0ZXJzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0dvYWwgdGVtcGxhdGUgcGFyYW1ldGVycyAoc2FtZSBhcyBleGVjdXRlX2FnZW50IHBhcmFtZXRlcnMpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUmVzdW1lUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUmVzdW1lZCBleGVjdXRpb24gd2l0aCByZXN0b3JhdGlvbiBtZXRhZGF0YTogeyBfdHlwZSwgYWdlbnROYW1lLCBnb2FsLCBnb2FsSWQsIHJlc3RvcmVkRnJvbTogeyBhZ2VudE5hbWUsIGdvYWxJZCwgc3RlcHNDb21wbGV0ZWQsIHByZXBhcmVkQXQgfSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicmVzdW1lX2Zyb21faGFuZG9mZlwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgaGFuZG9mZkJsb2NrOiBcIi4uLmZ1bGwgaGFuZG9mZiBibG9jay4uLlwiLCBwYXJhbWV0ZXJzOiB7IHRhc2s6IFwiUmV2aWV3IFBSICM0MlwiIH0gfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IF90eXBlOiBcIlJlc3VtZVJlc3VsdFwiLCBhZ2VudE5hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9uZXc0NTZcIiwgcmVzdG9yZWRGcm9tOiB7IGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiLCBzdGVwc0NvbXBsZXRlZDogNSB9IH1cbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2F0ZWtlZXBlciBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdhdGVrZWVwZXIgb3BlcmF0aW9ucyBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBUaGVzZSBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoR2F0ZWtlZXBlcigpIHdoaWNoXG4gKiBwZXJmb3JtcyBzZXNzaW9uLWxldmVsIGNvbmZpcm1hdGlvbiB0cmFja2luZyBhbmQgZGFuZ2VyIHpvbmUgdmVyaWZpY2F0aW9uLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgR0FURUtFRVBFUl9TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGNvbmZpcm1fb3BlcmF0aW9uOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gYSBwZW5kaW5nIG9wZXJhdGlvbiB0aGF0IHJlcXVpcmVzIHVzZXIgYXBwcm92YWwgKEdhdGVrZWVwZXIgZmxvdyknLFxuICAgIHBhcmFtczoge1xuICAgICAgb3BlcmF0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdPcGVyYXRpb24gbmFtZSB0byBjb25maXJtIChlLmcuLCBcImNyZWF0ZV9lbGVtZW50XCIpJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsIGVsZW1lbnQgdHlwZSBzY29wZSBmb3IgdGhlIGNvbmZpcm1hdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NvbmZpcm1SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maXJtYXRpb24gc3RhdHVzOiB7IGNvbmZpcm1lZCwgb3BlcmF0aW9uLCBlbGVtZW50X3R5cGU/LCBtZXNzYWdlIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjb25maXJtX29wZXJhdGlvblwiLCBwYXJhbXM6IHsgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIgfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IGNvbmZpcm1lZDogdHJ1ZSwgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIG1lc3NhZ2U6IFwiT3BlcmF0aW9uIGNvbmZpcm1lZCBmb3IgdGhpcyBzZXNzaW9uXCIgfVxuICAgIF0sXG4gIH0sXG4gIHZlcmlmeV9jaGFsbGVuZ2U6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgZGVzY3JpcHRpb246ICdTdWJtaXQgdmVyaWZpY2F0aW9uIGNvZGUgdG8gdW5ibG9jayBhIGRhbmdlciB6b25lIG9wZXJhdGlvbicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBjaGFsbGVuZ2VfaWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1VVSUQgdjQgY2hhbGxlbmdlIElEIGZyb20gZGFuZ2VyIHpvbmUgdHJpZ2dlcicgfSxcbiAgICAgIGNvZGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBjb2RlIGRpc3BsYXllZCB0byB0aGUgdXNlcicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1ZlcmlmeVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBzdGF0dXM6IHsgdmVyaWZpZWQsIGNoYWxsZW5nZV9pZCwgYWdlbnROYW1lPywgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwidmVyaWZ5X2NoYWxsZW5nZVwiLCBwYXJhbXM6IHsgY2hhbGxlbmdlX2lkOiBcIjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMFwiLCBjb2RlOiBcIkFCQzEyM1wiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyB2ZXJpZmllZDogdHJ1ZSwgY2hhbGxlbmdlX2lkOiBcIi4uLlwiLCBhZ2VudE5hbWU6IFwibXktYWdlbnRcIiwgbWVzc2FnZTogXCJBZ2VudCB1bmJsb2NrZWRcIiB9XG4gICAgXSxcbiAgfSxcbiAgYmVldGxlanVpY2VfYmVldGxlanVpY2VfYmVldGxlanVpY2U6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgZGVzY3JpcHRpb246ICdTYWZlLXRyaWdnZXIgdGhlIGZ1bGwgZGFuZ2VyIHpvbmUgdmVyaWZpY2F0aW9uIHBpcGVsaW5lIGZvciB0ZXN0aW5nIHB1cnBvc2VzJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGFnZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQWdlbnQgdG8gYmxvY2sgKGRlZmF1bHRzIHRvIFwiYmVldGxlanVpY2UtdGVzdC1hZ2VudFwiKScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0JlZXRsZWp1aWNlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ2hhbGxlbmdlIGRldGFpbHM6IHsgY2hhbGxlbmdlX2lkLCBhZ2VudE5hbWUsIGV4cGlyZXNBdCwgbWVzc2FnZSB9LiBDb2RlIGlzIGRpc3BsYXllZCB2aWEgT1MgZGlhbG9nLCBuZXZlciBpbiByZXNwb25zZS4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJiZWV0bGVqdWljZV9iZWV0bGVqdWljZV9iZWV0bGVqdWljZVwiIH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgY2hhbGxlbmdlX2lkOiBcIi4uLlwiLCBhZ2VudE5hbWU6IFwiYmVldGxlanVpY2UtdGVzdC1hZ2VudFwiLCBleHBpcmVzQXQ6IFwiLi4uXCIsIG1lc3NhZ2U6IFwiVmVyaWZpY2F0aW9uIGNvZGUgZGlzcGxheWVkIHZpYSBzeXN0ZW0gZGlhbG9nXCIgfVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImJlZXRsZWp1aWNlX2JlZXRsZWp1aWNlX2JlZXRsZWp1aWNlXCIsIHBhcmFtczogeyBhZ2VudF9uYW1lOiBcIm15LXRlc3QtYWdlbnRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIElzc3VlICM2MjU6IENMSS1sZXZlbCBwZXJtaXNzaW9uIGRlbGVnYXRpb24gdmlhIC0tcGVybWlzc2lvbi1wcm9tcHQtdG9vbFxuICAvLyBJc3N1ZSAjNjQ3OiBNb3ZlZCB0byBSRUFEIOKAlCBwb2xpY3kgZXZhbHVhdGlvbiBpcyByZWFkLW9ubHlcbiAgcGVybWlzc2lvbl9wcm9tcHQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGRlc2NyaXB0aW9uOiAnRXZhbHVhdGUgYSBDTEktbGV2ZWwgcGVybWlzc2lvbiBwcm9tcHQgKEJhc2gsIEVkaXQsIFdyaXRlLCBNQ1AgdG9vbHMpLiBSZXR1cm5zIGFsbG93L2RlbnkgZGVjaXNpb24gZm9yIG5vbi1pbnRlcmFjdGl2ZSBDbGF1ZGUgQ29kZSBzZXNzaW9ucyB1c2luZyAtLXBlcm1pc3Npb24tcHJvbXB0LXRvb2wuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHRvb2xfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIHRvb2wgcmVxdWVzdGluZyBwZXJtaXNzaW9uIChlLmcuLCBcIkJhc2hcIiwgXCJFZGl0XCIsIFwiV3JpdGVcIiwgXCJtY3BfX3NlcnZlcl9fdG9vbFwiKScgfSxcbiAgICAgIGlucHV0OiB7IHR5cGU6ICdvYmplY3QnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdG9vbCBpbnB1dCBwYXJhbWV0ZXJzIHRvIGV2YWx1YXRlIChlLmcuLCB7IGNvbW1hbmQ6IFwiZ2l0IHB1c2hcIiB9IGZvciBCYXNoKScgfSxcbiAgICAgIGFnZW50X2lkZW50aXR5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsOiBpZGVudGl0eSBvZiB0aGUgc3ViLWFnZW50IG1ha2luZyB0aGUgcmVxdWVzdCAoZnJvbSBDbGF1ZGUgQ29kZSAtLXBlcm1pc3Npb24tcHJvbXB0LXRvb2wpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUGVybWlzc2lvbkRlY2lzaW9uJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAneyBiZWhhdmlvcjogXCJhbGxvd1wifFwiZGVueVwiLCB1cGRhdGVkSW5wdXQ/LCBtZXNzYWdlPywgY2xhc3NpZmljYXRpb24/OiB7IHJpc2tMZXZlbCwgcmVhc29uLCBzdGFnZSwgcmlza1Njb3JlPywgaXJyZXZlcnNpYmxlPyB9LCBwb2xpY3lDb250ZXh0PzogeyBldmFsdWF0ZWRFbGVtZW50cywgZGVjaXNpb25DaGFpbiB9LCBhcHByb3ZhbFJlcXVlc3Q/OiB7IHJlcXVlc3RJZCwgdG9vbE5hbWUsIHJpc2tMZXZlbCwgcmlza1Njb3JlLCBpcnJldmVyc2libGUsIHJlYXNvbiB9IH0uIFJpc2sgc2NvcmVzOiAwPXNhZmUsIDQwPW1vZGVyYXRlLCA4MD1kYW5nZXJvdXMsIDEwMD1ibG9ja2VkOyBhZGp1c3RtZW50czogaXJyZXZlcnNpYmxlKCsxMCksIG5ldHdvcmsoKzEwKSwgb3V0LW9mLXNjb3BlIHJlYWQoKzEwKSwgZmlsZSBjcmVhdGlvbigrNSkuIFN0YWdlczogc3RhdGljX2FsbG93LCBzdGF0aWNfZGVueSwgZWxlbWVudF9kZW55LCBlbGVtZW50X2FsbG93LCBjbGlfYXBwcm92YWwsIGFwcHJvdmFsX3JlcXVpcmVkLCBkZWZhdWx0X2FsbG93LicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInBlcm1pc3Npb25fcHJvbXB0XCIsIHBhcmFtczogeyB0b29sX25hbWU6IFwiQmFzaFwiLCBpbnB1dDogeyBjb21tYW5kOiBcIm5wbSB0ZXN0XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInBlcm1pc3Npb25fcHJvbXB0XCIsIHBhcmFtczogeyB0b29sX25hbWU6IFwiRWRpdFwiLCBpbnB1dDogeyBmaWxlX3BhdGg6IFwic3JjL2luZGV4LnRzXCIsIG9sZF9zdHJpbmc6IFwiLi4uXCIsIG5ld19zdHJpbmc6IFwiLi4uXCIgfSB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIFBlcm1pc3Npb24gZXZhbHVhdGlvbiBmb3IgUHJlVG9vbFVzZSBob29rcyAoYWxsIHBsYXRmb3JtcylcbiAgZXZhbHVhdGVfcGVybWlzc2lvbjoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgZGVzY3JpcHRpb246ICdFdmFsdWF0ZSBDTEkgcGVybWlzc2lvbiBmb3IgYSB0b29sIHZpYSBIVFRQL2hvb2suIFJldHVybnMgcGxhdGZvcm0tZm9ybWF0dGVkIHJlc3BvbnNlIChjbGF1ZGVfY29kZSwgZ2VtaW5pLCBjdXJzb3IsIHdpbmRzdXJmLCBjb2RleCkuIEFsdGVybmF0aXZlIHRvIHBlcm1pc3Npb25fcHJvbXB0IGZvciBpbnRlcmFjdGl2ZSBzZXNzaW9ucyB1c2luZyBQcmVUb29sVXNlIGhvb2tzLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICB0b29sX25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSB0b29sIHJlcXVlc3RpbmcgcGVybWlzc2lvbiAoZS5nLiwgXCJCYXNoXCIsIFwiRWRpdFwiLCBcIldyaXRlXCIpJyB9LFxuICAgICAgaW5wdXQ6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnVGhlIHRvb2wgaW5wdXQgcGFyYW1ldGVycyB0byBldmFsdWF0ZScgfSxcbiAgICAgIHBsYXRmb3JtOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1RhcmdldCBwbGF0Zm9ybSBmb3IgcmVzcG9uc2UgZm9ybWF0dGluZyAoZGVmYXVsdDogXCJjbGF1ZGVfY29kZVwiKS4gT3B0aW9uczogY2xhdWRlX2NvZGUsIGdlbWluaSwgY3Vyc29yLCB3aW5kc3VyZiwgY29kZXgnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdQbGF0Zm9ybVBlcm1pc3Npb25EZWNpc2lvbicsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1BsYXRmb3JtLWZvcm1hdHRlZCBwZXJtaXNzaW9uIGRlY2lzaW9uLiBDbGF1ZGUgQ29kZTogeyBkZWNpc2lvbjogXCJhbGxvd1wifFwiZGVueVwifFwiYXNrXCIsIHJlYXNvbj8gfS4gR2VtaW5pOiB7IGRlY2lzaW9uOiBcImFsbG93XCJ8XCJkZW55XCIsIHJlYXNvbj8gfS4gQ3Vyc29yOiB7IHBlcm1pc3Npb246IFwiYWxsb3dcInxcImRlbnlcInxcImFza1wiLCByZWFzb24/IH0uIFdpbmRzdXJmOiB7IGFsbG93ZWQ6IGJvb2xlYW4sIHJlYXNvbj8gfS4gQ29kZXg6IHsgaG9va1NwZWNpZmljT3V0cHV0OiB7IHBlcm1pc3Npb25EZWNpc2lvbiwgcmVhc29uPyB9IH0uJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZXZhbHVhdGVfcGVybWlzc2lvblwiLCBwYXJhbXM6IHsgdG9vbF9uYW1lOiBcIkJhc2hcIiwgaW5wdXQ6IHsgY29tbWFuZDogXCJnaXQgc3RhdHVzXCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImV2YWx1YXRlX3Blcm1pc3Npb25cIiwgcGFyYW1zOiB7IHRvb2xfbmFtZTogXCJCYXNoXCIsIGlucHV0OiB7IGNvbW1hbmQ6IFwiZ2l0IHB1c2ggLS1mb3JjZVwiIH0sIHBsYXRmb3JtOiBcImNsYXVkZV9jb2RlXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICAvLyBJc3N1ZSAjNjI1IFBoYXNlIDI6IENMSSBwb2xpY3kgdmlzaWJpbGl0eVxuICBnZXRfZWZmZWN0aXZlX2NsaV9wb2xpY2llczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgZWZmZWN0aXZlIENMSS1sZXZlbCBwZXJtaXNzaW9uIHBvbGljaWVzIGFjcm9zcyBhbGwgYWN0aXZlIGVsZW1lbnRzJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHRvb2xfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdPcHRpb25hbDogZXZhbHVhdGUgYSBzcGVjaWZpYyB0b29sIChlLmcuLCBcIkJhc2hcIiwgXCJFZGl0OnNyYy9pbmRleC50c1wiKScgfSxcbiAgICAgIHRvb2xfaW5wdXQ6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWw6IHRvb2wgaW5wdXQgdG8gZXZhbHVhdGUgKGUuZy4sIHsgY29tbWFuZDogXCJucG0gdGVzdFwiIH0pJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWZmZWN0aXZlQ2xpUG9saWNpZXMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICd7IGFjdGl2ZUVsZW1lbnRDb3VudCwgaGFzQWxsb3dsaXN0LCBlbGVtZW50cywgY29tYmluZWRBbGxvd1BhdHRlcm5zLCBjb21iaW5lZERlbnlQYXR0ZXJucywgZXZhbHVhdGlvbj8gfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9lZmZlY3RpdmVfY2xpX3BvbGljaWVzXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2VmZmVjdGl2ZV9jbGlfcG9saWNpZXNcIiwgcGFyYW1zOiB7IHRvb2xfbmFtZTogXCJCYXNoXCIsIHRvb2xfaW5wdXQ6IHsgY29tbWFuZDogXCJnaXQgcHVzaFwiIH0gfSB9JyxcbiAgICBdLFxuICB9LFxuICAvLyBJc3N1ZSAjNjI1IFBoYXNlIDM6IENMSSBhcHByb3ZhbCB3b3JrZmxvd1xuICBhcHByb3ZlX2NsaV9wZXJtaXNzaW9uOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FwcHJvdmUgYSBwZW5kaW5nIENMSSB0b29sIHBlcm1pc3Npb24gcmVxdWVzdC4gVXNlZCBieSBicmlkZ2VzIChadWxpcCwgU2xhY2spIHRvIHJlbGF5IGh1bWFuIGFwcHJvdmFsIGZvciB0b29scyB0aGF0IHJlcXVpcmUgaXQuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHJlcXVlc3RfaWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FwcHJvdmFsIHJlcXVlc3QgSUQgZnJvbSBwZXJtaXNzaW9uX3Byb21wdCBkZW55IHJlc3BvbnNlIChmb3JtYXQ6IGNsaS08VVVJRD4pJyB9LFxuICAgICAgc2NvcGU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnXCJzaW5nbGVcIiAoZGVmYXVsdCwgY29uc3VtZWQgb24gdXNlKSBvciBcInRvb2xfc2Vzc2lvblwiIChhbGwgdXNlcyBvZiB0aGF0IHRvb2wgZm9yIHRoZSBzZXNzaW9uKScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0FwcHJvdmVSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICd7IGFwcHJvdmVkLCByZXF1ZXN0SWQsIHRvb2xOYW1lLCBzY29wZSwgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiYXBwcm92ZV9jbGlfcGVybWlzc2lvblwiLCBwYXJhbXM6IHsgcmVxdWVzdF9pZDogXCJjbGktYWJjLi4uXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhcHByb3ZlX2NsaV9wZXJtaXNzaW9uXCIsIHBhcmFtczogeyByZXF1ZXN0X2lkOiBcImNsaS1hYmMuLi5cIiwgc2NvcGU6IFwidG9vbF9zZXNzaW9uXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBnZXRfcGVuZGluZ19jbGlfYXBwcm92YWxzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbGwgcGVuZGluZyBDTEkgdG9vbCBhcHByb3ZhbCByZXF1ZXN0cyBmb3IgdGhpcyBzZXNzaW9uLiBSZXR1cm5zIHVuYXBwcm92ZWQgcmVxdWVzdHMgdGhhdCBhcmUgd2FpdGluZyBmb3IgaHVtYW4gYXV0aG9yaXphdGlvbi4nLFxuICAgIHBhcmFtczoge30sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUGVuZGluZ0FwcHJvdmFscycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ3sgcGVuZGluZzogQ2xpQXBwcm92YWxSZWNvcmRbXSwgY291bnQ6IG51bWJlciB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X3BlbmRpbmdfY2xpX2FwcHJvdmFsc1wiIH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2dnaW5nIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTG9nZ2luZyBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIERpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hMb2dnaW5nKCkgd2l0aCBydW50aW1lIHBhcmFtZXRlclxuICogdmFsaWRhdGlvbiB2aWEgdmFsaWRhdGVMb2dRdWVyeVBhcmFtcygpLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTE9HR0lOR19TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIHF1ZXJ5X2xvZ3M6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaExvZ2dpbmcnLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVlcnkgcmVjZW50IGxvZyBlbnRyaWVzIGZyb20gdGhlIGluLW1lbW9yeSBidWZmZXIuIFJldHVybnMgZmlsdGVyZWQsIHBhZ2luYXRlZCByZXN1bHRzIHNvcnRlZCBuZXdlc3QtZmlyc3QuIE9ubHkgcXVlcmllcyB0aGUgaG90IHRpZXIgKGluLW1lbW9yeSk7IGV2aWN0ZWQgZW50cmllcyBleGlzdCBvbmx5IGluIGRpc2sgbG9nIGZpbGVzLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246IFwiTG9nIGNhdGVnb3J5IGZpbHRlcjogJ2FwcGxpY2F0aW9uJywgJ3NlY3VyaXR5JywgJ3BlcmZvcm1hbmNlJywgJ3RlbGVtZXRyeScsIG9yICdhbGwnLiBEZWZhdWx0OiAnYWxsJ1wiIH0sXG4gICAgICBsZXZlbDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246IFwiTWluaW11bSBsb2cgbGV2ZWwgKGluY2x1c2l2ZSk6ICdkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCBvciAnZXJyb3InLiBPbWl0IGZvciBhbGwgbGV2ZWxzXCIgfSxcbiAgICAgIHNvdXJjZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDb21wb25lbnQgbmFtZSBmaWx0ZXIgKGNhc2UtaW5zZW5zaXRpdmUgc3Vic3RyaW5nIG1hdGNoKScgfSxcbiAgICAgIG1lc3NhZ2U6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRnJlZSB0ZXh0IHNlYXJjaCBpbiBtZXNzYWdlIGZpZWxkIChjYXNlLWluc2Vuc2l0aXZlIHN1YnN0cmluZyBtYXRjaCknIH0sXG4gICAgICBzaW5jZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdJU08gODYwMSB0aW1lc3RhbXAg4oCUIHJldHVybiBlbnRyaWVzIGFmdGVyIHRoaXMgdGltZScgfSxcbiAgICAgIHVudGlsOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0lTTyA4NjAxIHRpbWVzdGFtcCDigJQgcmV0dXJuIGVudHJpZXMgYmVmb3JlIHRoaXMgdGltZScgfSxcbiAgICAgIGxpbWl0OiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ01heCByZXN1bHRzIHRvIHJldHVybiAoMS01MDAsIGRlZmF1bHQgNTApJyB9LFxuICAgICAgb2Zmc2V0OiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ051bWJlciBvZiByZXN1bHRzIHRvIHNraXAgZm9yIHBhZ2luYXRpb24gKGRlZmF1bHQgMCknIH0sXG4gICAgICBjb3JyZWxhdGlvbklkOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0NvcnJlbGF0aW9uIElEIGZvciByZXF1ZXN0IHRyYWNpbmcnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdMb2dRdWVyeVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0xvZyBlbnRyaWVzOiB7IF90eXBlOiBcIkxvZ1F1ZXJ5UmVzdWx0XCIsIGVudHJpZXMsIHRvdGFsLCBmaWx0ZXJzIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9sb2dzXCIgfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBfdHlwZTogXCJMb2dRdWVyeVJlc3VsdFwiLCBlbnRyaWVzOiBbLi4uXSwgdG90YWw6IDQyIH1cbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9sb2dzXCIsIHBhcmFtczogeyBjYXRlZ29yeTogXCJzZWN1cml0eVwiLCBsZXZlbDogXCJ3YXJuXCIsIGxpbWl0OiAxMCB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2xvZ3NcIiwgcGFyYW1zOiB7IHNpbmNlOiBcIjIwMjYtMDEtMDFUMDA6MDA6MDBaXCIsIHNvdXJjZTogXCJHYXRla2VlcGVyXCIgfSB9JyxcbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWV0cmljcyBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIE1ldHJpY3MgY29sbGVjdGlvbiBxdWVyeSBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBEaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoTWV0cmljcygpIHdoaWNoIHJvdXRlcyB0b1xuICogTWVtb3J5TWV0cmljc1NpbmsucXVlcnkoKS4gRm9sbG93cyB0aGUgc2FtZSBwYXR0ZXJuIGFzIHF1ZXJ5X2xvZ3MuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVRSSUNTX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgcXVlcnlfbWV0cmljczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoTWV0cmljcycsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSBjb2xsZWN0ZWQgbWV0cmljcyBzbmFwc2hvdHMuIFJldHVybnMgZmlsdGVyZWQsIHBhZ2luYXRlZCByZXN1bHRzIHNvcnRlZCBuZXdlc3QtZmlyc3QuIFN1cHBvcnRzIGZpbHRlcmluZyBieSBtZXRyaWMgbmFtZSAocHJlZml4IG9yIGV4YWN0KSwgc291cmNlLCB0eXBlLCBhbmQgdGltZSByYW5nZS4nLFxuICAgIHBhcmFtczoge1xuICAgICAgbmFtZXM6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246IFwiTWV0cmljIG5hbWUgZmlsdGVycy4gRXhhY3QgbWF0Y2ggb3IgcHJlZml4IG1hdGNoIHdpdGggdHJhaWxpbmcgJy4nIG9yICcuKicgKGUuZy4sICdzeXN0ZW0ubWVtb3J5LionKVwiIH0sXG4gICAgICBzb3VyY2U6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQ29sbGVjdG9yIHNvdXJjZSBmaWx0ZXIgKGNhc2UtaW5zZW5zaXRpdmUgc3Vic3RyaW5nIG1hdGNoKScgfSxcbiAgICAgIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiBcIk1ldHJpYyB0eXBlIGZpbHRlcjogJ2NvdW50ZXInLCAnZ2F1Z2UnLCBvciAnaGlzdG9ncmFtJ1wiIH0sXG4gICAgICBzaW5jZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdJU08gODYwMSB0aW1lc3RhbXAg4oCUIHJldHVybiBzbmFwc2hvdHMgYWZ0ZXIgdGhpcyB0aW1lJyB9LFxuICAgICAgdW50aWw6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnSVNPIDg2MDEgdGltZXN0YW1wIOKAlCByZXR1cm4gc25hcHNob3RzIGJlZm9yZSB0aGlzIHRpbWUnIH0sXG4gICAgICBsYXRlc3Q6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0lmIHRydWUgKGRlZmF1bHQpLCByZXR1cm4gb25seSB0aGUgbW9zdCByZWNlbnQgc25hcHNob3QuIFNldCBmYWxzZSBmb3IgaGlzdG9yaWNhbCByYW5nZSBxdWVyaWVzJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnTWF4IHNuYXBzaG90cyB0byByZXR1cm4gKDEtMTAwLCBkZWZhdWx0IDEpJyB9LFxuICAgICAgb2Zmc2V0OiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ051bWJlciBvZiBzbmFwc2hvdHMgdG8gc2tpcCBmb3IgcGFnaW5hdGlvbiAoZGVmYXVsdCAwKScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ01ldHJpY1F1ZXJ5UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnTWV0cmljIHNuYXBzaG90czogeyBfdHlwZTogXCJNZXRyaWNRdWVyeVJlc3VsdFwiLCBzbmFwc2hvdHMsIHRvdGFsLCBoYXNNb3JlLCBvbGRlc3RBdmFpbGFibGUsIG5ld2VzdEF2YWlsYWJsZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfbWV0cmljc1wiIH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X21ldHJpY3NcIiwgcGFyYW1zOiB7IG5hbWVzOiBbXCJzeXN0ZW0ubWVtb3J5LipcIl0sIHR5cGU6IFwiZ2F1Z2VcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X21ldHJpY3NcIiwgcGFyYW1zOiB7IGxhdGVzdDogZmFsc2UsIGxpbWl0OiAxMCwgc2luY2U6IFwiMjAyNi0wMS0wMVQwMDowMDowMFpcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBY3RpdmF0aW9uIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQWN0aXZhdGlvbiBsaWZlY3ljbGUgb3BlcmF0aW9ucyBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBUaGVzZSBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoQWN0aXZhdGlvbigpIHdoaWNoXG4gKiByb3V0ZXMgdG8gRWxlbWVudENSVURIYW5kbGVyIGFjdGl2YXRpb24gc3RyYXRlZ2llcy4gVGhleSBjYW5ub3QgYmUgcm91dGVkXG4gKiB0aHJvdWdoIFNjaGVtYURpc3BhdGNoZXIgd2l0aG91dCBleHRyYWN0aW5nIHRoYXQgc3RyYXRlZ3ktYmFzZWQgZGlzcGF0Y2ggbG9naWMuXG4gKlxuICogSXNzdWUgIzU5ODogQWN0aXZhdGlvbiBzdGF0ZSBpcyBub3cgcGVyc2lzdGVkIHBlci1zZXNzaW9uIHZpYSBBY3RpdmF0aW9uU3RvcmUuXG4gKiBTZXQgRE9MTEhPVVNFX1NFU1NJT05fSUQgZW52IHZhciB0byBpc29sYXRlIGFjdGl2YXRpb24gc3RhdGUgYmV0d2VlbiBzZXNzaW9ucy5cbiAqXG4gKiBAc2VlIElzc3VlICM1OTQgLSBEb2N1bWVudCBhbGwgTUNQLUFRTCBvcGVyYXRpb25zIHZpYSBzY2hlbWFcbiAqIEBzZWUgSXNzdWUgIzU5OCAtIFBlci1zZXNzaW9uIGFjdGl2YXRpb24gcGVyc2lzdGVuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IEFDVElWQVRJT05fU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBhY3RpdmF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hBY3RpdmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FjdGl2YXRlIGFuIGVsZW1lbnQgZm9yIHVzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uLiBBY3RpdmF0aW9uIHN0YXRlIGlzIHBlcnNpc3RlZCBwZXItc2Vzc2lvbiAoRE9MTEhPVVNFX1NFU1NJT05fSUQpIGFuZCByZXN0b3JlZCBvbiBzZXJ2ZXIgcmVzdGFydC4nLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSBlbGVtZW50IHRvIGFjdGl2YXRlJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGU6IHBlcnNvbmEsIHNraWxsLCBhZ2VudCwgbWVtb3J5LCBvciBlbnNlbWJsZScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0FjdGl2YXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBY3RpdmF0aW9uIGNvbmZpcm1hdGlvbiB3aXRoIGVsZW1lbnQgZGV0YWlscyBhbmQgcmVuZGVyZWQgY29udGVudCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFjdGl2YXRlX2VsZW1lbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiYWN0aXZhdGVfZWxlbWVudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNyZWF0aXZlIERldlwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZGVhY3RpdmF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hBY3RpdmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlYWN0aXZhdGUgYW4gZWxlbWVudCwgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgY3VycmVudCBzZXNzaW9uLiBQZXJzaXN0ZWQgYWN0aXZhdGlvbiBzdGF0ZSBpcyB1cGRhdGVkLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIGVsZW1lbnQgdG8gZGVhY3RpdmF0ZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlOiBwZXJzb25hLCBza2lsbCwgYWdlbnQsIG1lbW9yeSwgb3IgZW5zZW1ibGUnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdEZWFjdGl2YXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdEZWFjdGl2YXRpb24gY29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZGVhY3RpdmF0ZV9lbGVtZW50XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGdldF9hY3RpdmVfZWxlbWVudHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEFjdGl2YXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGFsbCBjdXJyZW50bHkgYWN0aXZlIGVsZW1lbnRzIHdpdGggcmVuZGVyZWQgY29udGVudCwgb3B0aW9uYWxseSBmaWx0ZXJlZCBieSB0eXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdPcHRpb25hbCBlbGVtZW50IHR5cGUgZmlsdGVyLiBPbWl0IHRvIGdldCBhbGwgYWN0aXZlIGVsZW1lbnRzIGFjcm9zcyBhbGwgdHlwZXMuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQWN0aXZlRWxlbWVudHNSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBY3RpdmUgZWxlbWVudHMgd2l0aCByZW5kZXJlZCBjb250ZW50LCBncm91cGVkIGJ5IHR5cGUgd2hlbiB1bmZpbHRlcmVkJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2FjdGl2ZV9lbGVtZW50c1wiIH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9hY3RpdmVfZWxlbWVudHNcIiwgcGFyYW1zOiB7IGVsZW1lbnRfdHlwZTogXCJza2lsbFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlYXJjaCBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFNlYXJjaCBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hTZWFyY2goKSB3aGljaFxuICogcm91dGVzIHRvIEVsZW1lbnRRdWVyeVNlcnZpY2UgbWV0aG9kcy4gVGhleSBjYW5ub3QgYmUgcm91dGVkIHRocm91Z2hcbiAqIFNjaGVtYURpc3BhdGNoZXIgd2l0aG91dCBleHRyYWN0aW5nIHRoYXQgcHJlLXByb2Nlc3NpbmcgbG9naWMuXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk1IC0gT3BlcmF0aW9uIGRvY3VtZW50YXRpb24gY292ZXJhZ2UgZ2F0ZVxuICovXG5leHBvcnQgY29uc3QgU0VBUkNIX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgc2VhcmNoX2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hTZWFyY2gnLFxuICAgIGRlc2NyaXB0aW9uOiAnRnVsbC10ZXh0IHNlYXJjaCBhY3Jvc3MgZWxlbWVudCBuYW1lcywgZGVzY3JpcHRpb25zLCBhbmQgY29udGVudCB3aXRoIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeSBzdHJpbmcgKG1heCAxMDAwIGNoYXJhY3RlcnMpJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsIGVsZW1lbnQgdHlwZSBmaWx0ZXIgKHNlYXJjaGVzIGFsbCB0eXBlcyBpZiBvbWl0dGVkKScgfSxcbiAgICAgIHBhZ2U6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUGFnZSBudW1iZXIgZm9yIHBhZ2luYXRpb24gKDEtaW5kZXhlZCknIH0sXG4gICAgICBwYWdlU2l6ZTogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdSZXN1bHRzIHBlciBwYWdlJyB9LFxuICAgICAgc29ydDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTb3J0IG9wdGlvbnM6IHsgc29ydEJ5LCBzb3J0T3JkZXIgfScgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICB0eXBlOiAnc3RyaW5nIHwgc3RyaW5nW10nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZpZWxkcyB0byBpbmNsdWRlOiBhcnJheSBsaWtlIFtcImVsZW1lbnRfbmFtZVwiLCBcImRlc2NyaXB0aW9uXCJdIE9SIHByZXNldDogXCJtaW5pbWFsXCIsIFwic3RhbmRhcmRcIiwgXCJmdWxsXCInLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1NlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCByZXN1bHRzOiB7IGl0ZW1zOiBbeyB0eXBlLCBuYW1lLCBkZXNjcmlwdGlvbiwgbWF0Y2hlZEluIH1dLCBwYWdpbmF0aW9uOiB7IHBhZ2UsIHBhZ2VTaXplLCB0b3RhbEl0ZW1zLCB0b3RhbFBhZ2VzIH0sIHNvcnRpbmcgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9lbGVtZW50c1wiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY3JlYXRpdmVcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiYXNzaXN0YW50XCIsIHBhZ2VTaXplOiAxMCB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIHF1ZXJ5X2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hTZWFyY2gnLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVlcnkgZWxlbWVudHMgd2l0aCBmaWx0ZXJzLCBzb3J0aW5nLCBwYWdpbmF0aW9uLCBhbmQgY291bnQgYWdncmVnYXRpb24uIFJldHVybnMgc3RydWN0dXJlZCBKU09OLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZSB0byBxdWVyeSAocmVxdWlyZWQpJyB9LFxuICAgICAgZmlsdGVyczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGaWx0ZXIgb3B0aW9uczogeyBuYW1lQ29udGFpbnMsIHRhZ3MsIGF1dGhvciwgc3RhdHVzLCBjYXRlZ29yeSB9JyB9LFxuICAgICAgc29ydDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTb3J0IG9wdGlvbnM6IHsgc29ydEJ5LCBzb3J0T3JkZXIgfScgfSxcbiAgICAgIHBhZ2luYXRpb246IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGlvbjogeyBwYWdlLCBwYWdlU2l6ZSB9JyB9LFxuICAgICAgYWdncmVnYXRlOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0FnZ3JlZ2F0aW9uOiB7IGNvdW50PzogYm9vbGVhbiwgZ3JvdXBfYnk/OiBzdHJpbmcgfS4gZ3JvdXBfYnkgZ3JvdXBzIHJlc3VsdHMgYnkgYSBtZXRhZGF0YSBmaWVsZCBhbmQgcmV0dXJucyBjb3VudHMgcGVyIGdyb3VwLiBBbGxvd2VkIGdyb3VwX2J5IGZpZWxkczogY2F0ZWdvcnksIGF1dGhvciwgdGFncywgc3RhdHVzLCB2ZXJzaW9uLiBVc2UgZ3JvdXBfYnk6IFwiY2F0ZWdvcnlcIiB0byBkaXNjb3ZlciBleGlzdGluZyBjYXRlZ29yaWVzIGluIHRoZSBwb3J0Zm9saW8uJyB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcgfCBzdHJpbmdbXScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmllbGRzIHRvIGluY2x1ZGU6IGFycmF5IGxpa2UgW1wiZWxlbWVudF9uYW1lXCIsIFwiZGVzY3JpcHRpb25cIl0gT1IgcHJlc2V0OiBcIm1pbmltYWxcIiwgXCJzdGFuZGFyZFwiLCBcImZ1bGxcIicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUXVlcnlSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdRdWVyeSByZXN1bHRzOiB7IGl0ZW1zOiBbeyBuYW1lLCBkZXNjcmlwdGlvbiwgdHlwZSwgdmVyc2lvbiwgdGFncyB9XSwgcGFnaW5hdGlvbiwgc29ydGluZywgZmlsdGVycyB9LiBXaXRoIGFnZ3JlZ2F0ZTogYWRkcyBjb3VudCAodG90YWwpLCBncm91cHMgKGlmIGdyb3VwX2J5IHVzZWQsIGUuZy4geyBkZXZlbG9wbWVudDogNSwgc2VjdXJpdHk6IDMgfSkuJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGZpbHRlcnM6IHsgdGFnczogW1wiYXNzaXN0YW50XCJdIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IHBhZ2luYXRpb246IHsgcGFnZTogMSwgcGFnZVNpemU6IDEwIH0sIHNvcnQ6IHsgc29ydEJ5OiBcIm5hbWVcIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyBhZ2dyZWdhdGU6IHsgY291bnQ6IHRydWUsIGdyb3VwX2J5OiBcImNhdGVnb3J5XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJ0ZW1wbGF0ZVwiLCBwYXJhbXM6IHsgZmlsdGVyczogeyBjYXRlZ29yeTogXCJzZWN1cml0eVwiIH0sIGFnZ3JlZ2F0ZTogeyBjb3VudDogdHJ1ZSB9IH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFnZ3JlZ2F0ZWQgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU2NoZW1hLWRyaXZlbiBvcGVyYXRpb25zIOKAlCB1c2VkIGJ5IFNjaGVtYURpc3BhdGNoZXIgZm9yIGRpc3BhdGNoLlxuICpcbiAqIE9ubHkgb3BlcmF0aW9ucyB0aGF0IGNhbiBiZSBmdWxseSBkaXNwYXRjaGVkIHRocm91Z2ggU2NoZW1hRGlzcGF0Y2hlclxuICogYmVsb25nIGhlcmUuIE9wZXJhdGlvbnMgd2l0aCBjb21wbGV4IHByZS1wcm9jZXNzaW5nIChtZW1vcnkgbG9va3VwLFxuICogYWdlbnQgc3RhdGUgbWFuYWdlbWVudCwgZ2F0ZWtlZXBlciBzZXNzaW9ucywgbG9nIHZhbGlkYXRpb24pIGFyZSBpblxuICogSU5UUk9TUEVDVElPTl9PTkxZX1NDSEVNQVMgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDSEVNQV9EUklWRU5fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICAuLi5DT0xMRUNUSU9OX09QRVJBVElPTlMsXG4gIC4uLkFVVEhfT1BFUkFUSU9OUyxcbiAgLi4uRU5IQU5DRURfSU5ERVhfT1BFUkFUSU9OUyxcbiAgLi4uVEVNUExBVEVfT1BFUkFUSU9OUyxcbiAgLi4uSU5UUk9TUEVDVElPTl9PUEVSQVRJT05TLFxuICAuLi5QRVJTT05BX09QRVJBVElPTlMsXG4gIC4uLkNPTkZJR19PUEVSQVRJT05TLFxuICAuLi5QT1JURk9MSU9fT1BFUkFUSU9OUyxcbiAgLi4uRUxFTUVOVF9DUlVEX09QRVJBVElPTlMsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEludHJvc3BlY3Rpb24tb25seSBzY2hlbWFzIOKAlCBtZXRhZGF0YSBmb3Igb3BlcmF0aW9ucyBkaXNwYXRjaGVkIGJ5XG4gKiBsZWdhY3kgbWV0aG9kcyAoZGlzcGF0Y2hNZW1vcnksIGRpc3BhdGNoRXhlY3V0ZSwgZGlzcGF0Y2hHYXRla2VlcGVyLFxuICogZGlzcGF0Y2hMb2dnaW5nKS4gVGhlc2UgYXJlIE5PVCB1c2VkIGZvciBkaXNwYXRjaCByb3V0aW5nLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG4vKipcbiAqIEJyb3dzZXIgb3BlcmF0aW9uIHNjaGVtYXNcbiAqIEBzZWUgSXNzdWUgIzc3NCAtIG9wZW4gcG9ydGZvbGlvIGJyb3dzZXJcbiAqL1xuZXhwb3J0IGNvbnN0IEJST1dTRVJfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBvcGVuX3BvcnRmb2xpb19icm93c2VyOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hCcm93c2VyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IHRoZSBwb3J0Zm9saW8gd2ViIFVJIGFuZCBvcGVuIGl0IGluIHRoZSBzeXN0ZW0gYnJvd3Nlci4gVGhlIHdlYiBzZXJ2ZXIgcnVucyBvbiBsb2NhbGhvc3Q6MzkzOSBhbmQgc2hvd3MgYWxsIHBvcnRmb2xpbyBlbGVtZW50cyB3aXRoIHNlYXJjaCwgZmlsdGVyaW5nLCBhbmQgZGV0YWlsIHZpZXdzLicsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCcm93c2VyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggdGhlIFVSTCBvZiB0aGUgb3BlbmVkIGJyb3dzZXInIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJvcGVuX3BvcnRmb2xpb19icm93c2VyXCIgfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBJTlRST1NQRUNUSU9OX09OTFlfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICAuLi5NRU1PUllfU0NIRU1BUyxcbiAgLi4uRVhFQ1VUSU9OX1NDSEVNQVMsXG4gIC4uLkdBVEVLRUVQRVJfU0NIRU1BUyxcbiAgLi4uTE9HR0lOR19TQ0hFTUFTLFxuICAuLi5NRVRSSUNTX1NDSEVNQVMsXG4gIC4uLkFDVElWQVRJT05fU0NIRU1BUyxcbiAgLi4uU0VBUkNIX1NDSEVNQVMsXG4gIC4uLkJST1dTRVJfU0NIRU1BUyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQWxsIG9wZXJhdGlvbiBzY2hlbWFzIOKAlCB1bmlvbiBvZiBkaXNwYXRjaC1kcml2ZW4gYW5kIGludHJvc3BlY3Rpb24tb25seS5cbiAqIFVzZWQgYnkgSW50cm9zcGVjdGlvblJlc29sdmVyIGZvciBjb21wbGV0ZSBvcGVyYXRpb24gZG9jdW1lbnRhdGlvbi5cbiAqXG4gKiBAc2VlIElzc3VlICM1OTQgLSBEb2N1bWVudCBhbGwgTUNQLUFRTCBvcGVyYXRpb25zIHZpYSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9PUEVSQVRJT05fU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICAuLi5TQ0hFTUFfRFJJVkVOX09QRVJBVElPTlMsXG4gIC4uLklOVFJPU1BFQ1RJT05fT05MWV9TQ0hFTUFTLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBDaGVjayBpZiBhbiBvcGVyYXRpb24gaXMgc2NoZW1hLWRyaXZlbiAodXNlZCBmb3IgU2NoZW1hRGlzcGF0Y2hlciByb3V0aW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTY2hlbWFPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIG9wZXJhdGlvbiBpbiBTQ0hFTUFfRFJJVkVOX09QRVJBVElPTlM7XG59XG5cbi8qKlxuICogR2V0IHNjaGVtYSBkZWZpbml0aW9uIGZvciBhIHNjaGVtYS1kcml2ZW4gb3BlcmF0aW9uIChkaXNwYXRjaCByb3V0aW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3BlcmF0aW9uU2NoZW1hKG9wZXJhdGlvbjogc3RyaW5nKTogT3BlcmF0aW9uRGVmIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFNDSEVNQV9EUklWRU5fT1BFUkFUSU9OU1tvcGVyYXRpb25dO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGFueSBvcGVyYXRpb24gc2NoZW1hIGV4aXN0cyAoZGlzcGF0Y2gtZHJpdmVuIG9yIGludHJvc3BlY3Rpb24tb25seSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc09wZXJhdGlvblNjaGVtYShvcGVyYXRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3BlcmF0aW9uIGluIEFMTF9PUEVSQVRJT05fU0NIRU1BUztcbn1cblxuLyoqXG4gKiBHZXQgc2NoZW1hIGZvciBhbnkgb3BlcmF0aW9uIChkaXNwYXRjaC1kcml2ZW4gb3IgaW50cm9zcGVjdGlvbi1vbmx5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW55T3BlcmF0aW9uU2NoZW1hKG9wZXJhdGlvbjogc3RyaW5nKTogT3BlcmF0aW9uRGVmIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIEFMTF9PUEVSQVRJT05fU0NIRU1BU1tvcGVyYXRpb25dO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJbnRyb3NwZWN0aW9uIEhlbHBlcnMgKElzc3VlICMyNTQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUGFyYW1ldGVyIGluZm8gZm9ybWF0IHVzZWQgYnkgSW50cm9zcGVjdGlvblJlc29sdmVyXG4gKiBUaGlzIGludGVyZmFjZSBtYXRjaGVzIHdoYXQgSW50cm9zcGVjdGlvblJlc29sdmVyIGV4cGVjdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXJJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBkZWZhdWx0PzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IFBhcmFtU2NoZW1hIHRvIFBhcmFtZXRlckluZm8gYXJyYXkgZm9yIGludHJvc3BlY3Rpb25cbiAqXG4gKiBAcGFyYW0gc2NoZW1hIC0gVGhlIFBhcmFtU2NoZW1hIGZyb20gYW4gb3BlcmF0aW9uIGRlZmluaXRpb25cbiAqIEByZXR1cm5zIEFycmF5IG9mIFBhcmFtZXRlckluZm8gZm9yIEludHJvc3BlY3Rpb25SZXNvbHZlclxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NoZW1hVG9QYXJhbWV0ZXJJbmZvKHNjaGVtYTogUGFyYW1TY2hlbWEgfCB1bmRlZmluZWQpOiBQYXJhbWV0ZXJJbmZvW10ge1xuICBpZiAoIXNjaGVtYSkgcmV0dXJuIFtdO1xuXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhzY2hlbWEpLm1hcCgoW25hbWUsIGRlZl0pID0+ICh7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBkZWYudHlwZSxcbiAgICByZXF1aXJlZDogZGVmLnJlcXVpcmVkID8/IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBkZWYuZGVzY3JpcHRpb24gPz8gYCR7bmFtZX0gcGFyYW1ldGVyYCxcbiAgICAuLi4oZGVmLmRlZmF1bHQgIT09IHVuZGVmaW5lZCA/IHsgZGVmYXVsdDogZGVmLmRlZmF1bHQgfSA6IHt9KSxcbiAgfSkpO1xufVxuXG4vKipcbiAqIEdldCBhbGwgc2NoZW1hLWRyaXZlbiBvcGVyYXRpb25zIHdpdGggdGhlaXIgZnVsbCBkZWZpbml0aW9uc1xuICogVXNlZCBieSBTY2hlbWFEaXNwYXRjaGVyIHRvIGl0ZXJhdGUgb3ZlciBkaXNwYXRjaGFibGUgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsU2NoZW1hT3BlcmF0aW9ucygpOiBSZWNvcmQ8c3RyaW5nLCBPcGVyYXRpb25EZWY+IHtcbiAgcmV0dXJuIFNDSEVNQV9EUklWRU5fT1BFUkFUSU9OUztcbn1cblxuLyoqXG4gKiBHZXQgYWxsIG9wZXJhdGlvbiBzY2hlbWFzIChkaXNwYXRjaC1kcml2ZW4gKyBpbnRyb3NwZWN0aW9uLW9ubHkpXG4gKiBVc2VkIGJ5IEludHJvc3BlY3Rpb25SZXNvbHZlciBmb3IgY29tcGxldGUgb3BlcmF0aW9uIGRvY3VtZW50YXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbE9wZXJhdGlvblNjaGVtYXMoKTogUmVjb3JkPHN0cmluZywgT3BlcmF0aW9uRGVmPiB7XG4gIHJldHVybiBBTExfT1BFUkFUSU9OX1NDSEVNQVM7XG59XG4iXX0=
|