@dollhousemcp/mcp-server 2.0.18 → 2.0.19
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 +4 -0
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.js +3 -3
- package/dist/handlers/ElementCRUDHandler.d.ts +30 -0
- package/dist/handlers/ElementCRUDHandler.d.ts.map +1 -1
- package/dist/handlers/ElementCRUDHandler.js +141 -2
- package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts +3 -0
- package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/MCPAQLHandler.js +98 -1
- package/dist/handlers/mcp-aql/OperationRouter.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/OperationRouter.js +6 -1
- package/dist/handlers/mcp-aql/OperationSchema.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/OperationSchema.js +17 -1
- package/dist/handlers/mcp-aql/policies/AgentToolPolicyTranslator.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/policies/AgentToolPolicyTranslator.js +2 -1
- package/dist/handlers/mcp-aql/policies/ElementPolicies.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/policies/ElementPolicies.js +2 -1
- package/dist/handlers/mcp-aql/policies/OperationPolicies.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/policies/OperationPolicies.js +6 -1
- package/dist/handlers/mcp-aql/policies/ToolClassification.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/policies/ToolClassification.js +2 -1
- package/dist/server/tools/MCPAQLTools.js +2 -1
- package/dist/web/console/IngestRoutes.d.ts +6 -0
- package/dist/web/console/IngestRoutes.d.ts.map +1 -1
- package/dist/web/console/IngestRoutes.js +38 -9
- package/dist/web/console/LeaderElection.d.ts +39 -0
- package/dist/web/console/LeaderElection.d.ts.map +1 -1
- package/dist/web/console/LeaderElection.js +147 -29
- package/dist/web/console/LeaderForwardingSink.d.ts.map +1 -1
- package/dist/web/console/LeaderForwardingSink.js +5 -1
- package/dist/web/console/PromotionManager.d.ts.map +1 -1
- package/dist/web/console/PromotionManager.js +3 -11
- package/dist/web/public/app.js +62 -1
- package/dist/web/public/index.html +19 -17
- package/dist/web/public/sessions.js +111 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +12 -10
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -1214,6 +1214,22 @@ export const GATEKEEPER_SCHEMAS = {
|
|
|
1214
1214
|
// Response: { verified: true, challenge_id: "...", agentName: "my-agent", message: "Agent unblocked" }
|
|
1215
1215
|
],
|
|
1216
1216
|
},
|
|
1217
|
+
release_deadlock: {
|
|
1218
|
+
endpoint: 'CREATE',
|
|
1219
|
+
handler: 'mcpAqlHandler',
|
|
1220
|
+
method: 'dispatchGatekeeper',
|
|
1221
|
+
category: 'Security & Permissions',
|
|
1222
|
+
description: 'Recover from a restrictive permission deadlock by showing a human-only verification code, then deactivating all active elements and clearing current-session activation state',
|
|
1223
|
+
params: {
|
|
1224
|
+
challenge_id: { type: 'string', description: 'Challenge ID from the first release_deadlock call' },
|
|
1225
|
+
code: { type: 'string', description: 'Verification code displayed to the user for deadlock relief' },
|
|
1226
|
+
},
|
|
1227
|
+
returns: { name: 'DeadlockReliefResult', kind: 'object', description: 'Two-step flow. First call returns { pending, challenge_id, message }. Second call with challenge_id + code returns { released, activeBeforeReset, deactivated, failed, likelyDeadlockCause, persistedStateCleared, snapshotFile?, message }.' },
|
|
1228
|
+
examples: [
|
|
1229
|
+
'{ operation: "release_deadlock" }',
|
|
1230
|
+
'{ operation: "release_deadlock", params: { challenge_id: "550e8400-e29b-41d4-a716-446655440000", code: "ABC123" } }',
|
|
1231
|
+
],
|
|
1232
|
+
},
|
|
1217
1233
|
beetlejuice_beetlejuice_beetlejuice: {
|
|
1218
1234
|
endpoint: 'CREATE',
|
|
1219
1235
|
handler: 'mcpAqlHandler',
|
|
@@ -1703,4 +1719,4 @@ export function getAllSchemaOperations() {
|
|
|
1703
1719
|
export function getAllOperationSchemas() {
|
|
1704
1720
|
return ALL_OPERATION_SCHEMAS;
|
|
1705
1721
|
}
|
|
1706
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hhbmRsZXJzL21jcC1hcWwvT3BlcmF0aW9uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFHSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUE2SzFDLCtFQUErRTtBQUMvRSxrREFBa0Q7QUFDbEQsK0VBQStFO0FBRS9FOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUF1QjtJQUN2RCxpQkFBaUIsRUFBRTtRQUNqQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxXQUFXLEVBQUUsa0VBQWtFO1FBQy9FLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUU7WUFDeEUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUU7U0FDN0Q7UUFDRCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsMENBQTBDLEVBQUU7UUFDcEgsUUFBUSxFQUFFLENBQUMscUVBQXFFLENBQUM7S0FDbEY7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxXQUFXLEVBQUUsMERBQTBEO1FBQ3ZFLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFO1lBQ04s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LEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDL0QsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxPQUFPLHdCQUF3QixDQUFDO0FBQ2xDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT3BlcmF0aW9uU2NoZW1hIC0gRGVjbGFyYXRpdmUgb3BlcmF0aW9uIGRlZmluaXRpb25zIGZvciBNQ1AtQVFMXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgc2NoZW1hLWRyaXZlbiBvcGVyYXRpb24gZGVmaW5pdGlvbnMgdGhhdCBlbmFibGU6XG4gKiAxLiBEZWNsYXJhdGl2ZSBvcGVyYXRpb24gY29uZmlndXJhdGlvbiAobm8gbWFudWFsIHN3aXRjaCBzdGF0ZW1lbnRzKVxuICogMi4gQXV0by1nZW5lcmF0ZWQgcGFyYW1ldGVyIHZhbGlkYXRpb25cbiAqIDMuIFR5cGUtc2FmZSBkaXNwYXRjaCB0byBoYW5kbGVyIG1ldGhvZHNcbiAqIDQuIFNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIG9wZXJhdGlvbiBtZXRhZGF0YVxuICpcbiAqIEFSQ0hJVEVDVFVSRTpcbiAqIE9wZXJhdGlvbnMgYXJlIGRlZmluZWQgd2l0aDpcbiAqIC0gZW5kcG9pbnQ6IENSVURFIGVuZHBvaW50IChDUkVBVEUsIFJFQUQsIFVQREFURSwgREVMRVRFLCBFWEVDVVRFKVxuICogLSBoYW5kbGVyOiBLZXkgaW4gSGFuZGxlclJlZ2lzdHJ5XG4gKiAtIG1ldGhvZDogTWV0aG9kIG5hbWUgb24gdGhlIGhhbmRsZXJcbiAqIC0gcGFyYW1zOiBQYXJhbWV0ZXIgZGVmaW5pdGlvbnMgd2l0aCB0eXBlcyBhbmQgbWFwcGluZ3NcbiAqIC0gZGVzY3JpcHRpb246IEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uXG4gKlxuICogVGhlIFNjaGVtYURpc3BhdGNoZXIgdXNlcyB0aGVzZSBkZWZpbml0aW9ucyB0byBhdXRvbWF0aWNhbGx5IHJvdXRlXG4gKiBvcGVyYXRpb25zIHRvIGhhbmRsZXIgbWV0aG9kcyB3aXRob3V0IG1hbnVhbCBkaXNwYXRjaCBjb2RlLlxuICpcbiAqIEBzZWUgSXNzdWUgIzI0NyAtIFNjaGVtYS1kcml2ZW4gb3BlcmF0aW9uIGRlZmluaXRpb25zXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDUlVERW5kcG9pbnQgfSBmcm9tICcuL09wZXJhdGlvblJvdXRlci5qcyc7XG5pbXBvcnQgeyBlbnYgfSBmcm9tICcuLi8uLi9jb25maWcvZW52LmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUGFyYW1ldGVyIFNjaGVtYSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFByaW1pdGl2ZSB0eXBlcyBzdXBwb3J0ZWQgaW4gcGFyYW1ldGVyIHNjaGVtYXNcbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1UeXBlID1cbiAgfCAnc3RyaW5nJ1xuICB8ICdudW1iZXInXG4gIHwgJ2Jvb2xlYW4nXG4gIHwgJ29iamVjdCdcbiAgfCAnYXJyYXknXG4gIHwgJ3N0cmluZ1tdJ1xuICB8ICdzdHJpbmcgfCBzdHJpbmdbXScgLy8gVW5pb24gdHlwZSBmb3IgZmllbGRzIHRoYXQgYWNjZXB0IHByZXNldCBzdHJpbmcgb3IgYXJyYXlcbiAgfCAndW5rbm93bic7IC8vIEZvciBwYXJhbXMgdGhhdCBhY2NlcHQgYW55IHR5cGVcblxuLyoqXG4gKiBQYXJhbWV0ZXIgZGVmaW5pdGlvbiBpbiBvcGVyYXRpb24gc2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1EZWYge1xuICAvKiogUGFyYW1ldGVyIHR5cGUgZm9yIHZhbGlkYXRpb24gKi9cbiAgdHlwZTogUGFyYW1UeXBlO1xuICAvKiogV2hldGhlciB0aGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKiogRGVmYXVsdCB2YWx1ZSBpZiBub3QgcHJvdmlkZWQgKi9cbiAgZGVmYXVsdD86IHVua25vd247XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIE1hcHMgaW5wdXQgcGFyYW0gbmFtZSB0byBoYW5kbGVyIGFyZyBuYW1lIChpZiBkaWZmZXJlbnQpICovXG4gIG1hcFRvPzogc3RyaW5nO1xuICAvKipcbiAgICogQWx0ZXJuYXRpdmUgc291cmNlcyB0byBjaGVjayBmb3IgdGhpcyBwYXJhbWV0ZXIgdmFsdWUuXG4gICAqIENoZWNrZWQgaW4gb3JkZXIgYmVmb3JlIGZhbGxpbmcgYmFjayB0byB0aGUgcHJpbWFyeSBwYXJhbSBuYW1lLlxuICAgKlxuICAgKiBTdXBwb3J0cyBkb3Qgbm90YXRpb24gZm9yIG5lc3RlZCBhY2Nlc3M6XG4gICAqIC0gJ2lucHV0LmVsZW1lbnRUeXBlJyAtIGNoZWNrcyBpbnB1dC5lbGVtZW50VHlwZVxuICAgKiAtICdwYXJhbXMudHlwZScgLSBjaGVja3MgcGFyYW1zLnR5cGUgKHNhbWUgYXMganVzdCBjaGVja2luZyB0aGUgcGFyYW0pXG4gICAqXG4gICAqIFVzZSBjYXNlOiBlbGVtZW50VHlwZSBjYW4gY29tZSBmcm9tIGlucHV0LmVsZW1lbnRUeXBlIE9SIHBhcmFtcy50eXBlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLnR5cGUnXSB9XG4gICAqL1xuICBzb3VyY2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZGVmaW5pdGlvbiBmb3IgaW50cm9zcGVjdGlvblxuICogQHNlZSBJc3N1ZSAjMjU0IC0gQXV0by1nZW5lcmF0ZSBpbnRyb3NwZWN0aW9uIGZyb20gc2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0dXJuVHlwZURlZiB7XG4gIC8qKiBSZXR1cm4gdHlwZSBuYW1lIChlLmcuLCAnRWxlbWVudExpc3QnLCAnU2VhcmNoUmVzdWx0JykgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVHlwZSBraW5kIGZvciBjYXRlZ29yaXphdGlvbiAqL1xuICBraW5kOiAnZW51bScgfCAnb2JqZWN0JyB8ICdzY2FsYXInIHwgJ3VuaW9uJztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgaXMgcmV0dXJuZWQgKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXIgc2NoZW1hIC0gbWFwIG9mIHBhcmFtZXRlciBuYW1lcyB0byBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgdHlwZSBQYXJhbVNjaGVtYSA9IFJlY29yZDxzdHJpbmcsIFBhcmFtRGVmPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3BlcmF0aW9uIFNjaGVtYSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEhhbmRsZXIga2V5cyAtIHRoZXNlIG1hcCB0byBwcm9wZXJ0aWVzIGluIEhhbmRsZXJSZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBIYW5kbGVyS2V5ID1cbiAgfCAnZWxlbWVudENSVUQnXG4gIHwgJ21lbW9yeU1hbmFnZXInXG4gIHwgJ2FnZW50TWFuYWdlcidcbiAgfCAndGVtcGxhdGVSZW5kZXJlcidcbiAgfCAnZWxlbWVudFF1ZXJ5U2VydmljZSdcbiAgfCAnY29sbGVjdGlvbkhhbmRsZXInXG4gIHwgJ3BvcnRmb2xpb0hhbmRsZXInXG4gIHwgJ2F1dGhIYW5kbGVyJ1xuICB8ICdjb25maWdIYW5kbGVyJ1xuICB8ICdlbmhhbmNlZEluZGV4SGFuZGxlcidcbiAgfCAncGVyc29uYUhhbmRsZXInXG4gIHwgJ3N5bmNIYW5kbGVyJ1xuICB8ICdidWlsZEluZm9TZXJ2aWNlJ1xuICB8ICdtY3BBcWxIYW5kbGVyJ1xuICB8ICdjYWNoZU1lbW9yeUJ1ZGdldCc7XG5cbi8qKlxuICogQ29tcGxldGUgb3BlcmF0aW9uIHNjaGVtYSBkZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uRGVmIHtcbiAgLyoqIENSVURFIGVuZHBvaW50IHRoaXMgb3BlcmF0aW9uIGJlbG9uZ3MgdG8gKi9cbiAgZW5kcG9pbnQ6IENSVURFbmRwb2ludDtcbiAgLyoqIEhhbmRsZXIga2V5IGluIEhhbmRsZXJSZWdpc3RyeSAqL1xuICBoYW5kbGVyOiBIYW5kbGVyS2V5O1xuICAvKiogTWV0aG9kIG5hbWUgdG8gY2FsbCBvbiB0aGUgaGFuZGxlciAqL1xuICBtZXRob2Q6IHN0cmluZztcbiAgLyoqIFBhcmFtZXRlciBkZWZpbml0aW9ucyAqL1xuICBwYXJhbXM/OiBQYXJhbVNjaGVtYTtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBoYW5kbGVyIGlzIG9wdGlvbmFsIChtYXkgbm90IGJlIGNvbmZpZ3VyZWQpICovXG4gIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1c3RvbSBhcmd1bWVudCBidWlsZGVyIGZvciBjb21wbGV4IGNhc2VzOlxuICAgKiAtICdzaW5nbGUnOiBQYXNzIHBhcmFtcyBpbiBzY2hlbWEgb3JkZXIgYXMgcG9zaXRpb25hbCBhcmdzIChkZWZhdWx0KVxuICAgKiAtICdzcHJlYWQnOiBQYXNzIChxdWVyeSwgcGFyYW1zKSAtIGZvciBzZWFyY2gtc3R5bGUgb3BlcmF0aW9uc1xuICAgKiAtICduYW1lZCc6IFBhc3MgYWxsIHBhcmFtcyBhcyBhIHNpbmdsZSBuYW1lZCBvYmplY3RcbiAgICogLSAnbmFtZWRXaXRoVHlwZSc6IExpa2UgJ25hbWVkJyBidXQgaW5jbHVkZXMgcmVzb2x2ZWQgJ3R5cGUnIHBhcmFtXG4gICAqIC0gJ3R5cGVXaXRoUGFyYW1zJzogUGFzcyAodHlwZSwgZnVsbFBhcmFtcykgZm9yIG9wZXJhdGlvbnMgbmVlZGluZyB0eXBlICsgcGFnaW5hdGlvblxuICAgKi9cbiAgYXJnQnVpbGRlcj86ICdzaW5nbGUnIHwgJ3NwcmVhZCcgfCAnbmFtZWQnIHwgJ25hbWVkV2l0aFR5cGUnIHwgJ3R5cGVXaXRoUGFyYW1zJztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBvcGVyYXRpb24gbmVlZHMgYWNjZXNzIHRvIHRoZSBmdWxsIE9wZXJhdGlvbklucHV0LlxuICAgKiBXaGVuIHRydWUsIFNjaGVtYURpc3BhdGNoZXIgcGFzc2VzIHRoZSBmdWxsIGlucHV0IGZvciBzb3VyY2UgcmVzb2x1dGlvbi5cbiAgICogUmVxdWlyZWQgZm9yIG9wZXJhdGlvbnMgdGhhdCB1c2UgcGFyYW0gc291cmNlcyBsaWtlICdpbnB1dC5lbGVtZW50VHlwZScuXG4gICAqL1xuICBuZWVkc0Z1bGxJbnB1dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBdXRvbWF0aWMgcGFyYW1ldGVyIG5hbWUgY29udmVyc2lvbiBzdHlsZS5cbiAgICogLSAnc25ha2VUb0NhbWVsJzogQ29udmVydCBzbmFrZV9jYXNlIHBhcmFtcyB0byBjYW1lbENhc2UgZm9yIGhhbmRsZXJcbiAgICpcbiAgICogV2hlbiBzZXQsIGFsbCBwYXJhbXMgYXJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIGJlZm9yZSBiZWluZyBwYXNzZWRcbiAgICogdG8gdGhlIGhhbmRsZXIuIEluZGl2aWR1YWwgcGFyYW0gYG1hcFRvYCBvdmVycmlkZXMgc3RpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBJbnB1dDogeyBkcnlfcnVuOiB0cnVlLCBtYXhfcmVzdWx0czogMTAgfVxuICAgKiAvLyBIYW5kbGVyIHJlY2VpdmVzOiB7IGRyeVJ1bjogdHJ1ZSwgbWF4UmVzdWx0czogMTAgfVxuICAgKi9cbiAgcGFyYW1TdHlsZT86ICdzbmFrZVRvQ2FtZWwnO1xuICAvKipcbiAgICogQ2FwYWJpbGl0eSBjYXRlZ29yeSBmb3IgZ2V0X2NhcGFiaWxpdGllcyBncm91cGluZy5cbiAgICogT3BlcmF0aW9ucyBhcmUgZ3JvdXBlZCBieSB1c2VyLWludGVudCBjYXRlZ29yaWVzIGluIHRoZSBjYXBhYmlsaXRpZXMgbWFwLlxuICAgKiBPcGVyYXRpb25zIHdpdGhvdXQgYSBjYXRlZ29yeSBhcHBlYXIgdW5kZXIgXCJPdGhlclwiLlxuICAgKiBAc2VlIElzc3VlICMxNzYwIC0gZ2V0X2NhcGFiaWxpdGllcyBvcGVyYXRpb25cbiAgICovXG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAvKipcbiAgICogUmV0dXJuIHR5cGUgaW5mb3JtYXRpb24gZm9yIGludHJvc3BlY3Rpb25cbiAgICogQHNlZSBJc3N1ZSAjMjU0IC0gQXV0by1nZW5lcmF0ZSBpbnRyb3NwZWN0aW9uIGZyb20gc2NoZW1hXG4gICAqL1xuICByZXR1cm5zPzogUmV0dXJuVHlwZURlZjtcbiAgLyoqXG4gICAqIFVzYWdlIGV4YW1wbGVzIGZvciBpbnRyb3NwZWN0aW9uXG4gICAqIEBzZWUgSXNzdWUgIzI1NCAtIEF1dG8tZ2VuZXJhdGUgaW50cm9zcGVjdGlvbiBmcm9tIHNjaGVtYVxuICAgKi9cbiAgZXhhbXBsZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE5vcm1hbGl6ZXIgdG8gdXNlIGZvciBwYXJhbWV0ZXIgdHJhbnNmb3JtYXRpb24uXG4gICAqXG4gICAqIElmIHNwZWNpZmllZCwgdGhlIG5vcm1hbGl6ZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGUgaGFuZGxlciBtZXRob2QsXG4gICAqIHRyYW5zZm9ybWluZyByYXcgaW5wdXQgcGFyYW1ldGVycyBpbnRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGhhbmRsZXIuXG4gICAqXG4gICAqIE5vcm1hbGl6ZXJzIGFyZSByZWdpc3RlcmVkIGluIE5vcm1hbGl6ZXJSZWdpc3RyeSBhbmQgbG9va2VkIHVwIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBzZWUgSXNzdWUgIzI0MyAtIFNjaGVtYS1kcml2ZW4gbm9ybWFsaXplciBhcmNoaXRlY3R1cmVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gVXNlIHRoZSBzZWFyY2ggcGFyYW1zIG5vcm1hbGl6ZXJcbiAgICogbm9ybWFsaXplcjogJ3NlYXJjaFBhcmFtcydcbiAgICovXG4gIG5vcm1hbGl6ZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29tcGxldGUgb3BlcmF0aW9uIHNjaGVtYSAtIG1hcHMgb3BlcmF0aW9uIG5hbWVzIHRvIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIE9wZXJhdGlvblNjaGVtYU1hcCA9IFJlY29yZDxzdHJpbmcsIE9wZXJhdGlvbkRlZj47XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbGxlY3Rpb24gT3BlcmF0aW9ucyBTY2hlbWEgKFByb29mIG9mIENvbmNlcHQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvcGVyYXRpb25zIHNjaGVtYVxuICpcbiAqIFRoZXNlIGFyZSB0aGUgZmlyc3Qgb3BlcmF0aW9ucyBtaWdyYXRlZCB0byBzY2hlbWEtZHJpdmVuIGRpc3BhdGNoLlxuICogRWFjaCBvcGVyYXRpb24gZGVmaW5lczpcbiAqIC0gV2hlcmUgaXQgbGl2ZXMgKGVuZHBvaW50KVxuICogLSBXaGF0IGhhbmRsZXIgdG8gdXNlXG4gKiAtIFdoYXQgbWV0aG9kIHRvIGNhbGxcbiAqIC0gV2hhdCBwYXJhbWV0ZXJzIGl0IGFjY2VwdHNcbiAqL1xuZXhwb3J0IGNvbnN0IENPTExFQ1RJT05fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBicm93c2VfY29sbGVjdGlvbjoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdicm93c2VDb2xsZWN0aW9uJyxcbiAgICBjYXRlZ29yeTogJ0NvbW11bml0eSBDb2xsZWN0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jyb3dzZSB0aGUgRG9sbGhvdXNlTUNQIGNvbW11bml0eSBjb2xsZWN0aW9uIGJ5IHNlY3Rpb24gYW5kIHR5cGUnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgc2VjdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDb2xsZWN0aW9uIHNlY3Rpb24gdG8gYnJvd3NlJyB9LFxuICAgICAgdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUgZmlsdGVyJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29sbGVjdGlvbkJyb3dzZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0Jyb3dzZWFibGUgY29sbGVjdGlvbiBzZWN0aW9ucyBhbmQgaXRlbXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiYnJvd3NlX2NvbGxlY3Rpb25cIiwgcGFyYW1zOiB7IHNlY3Rpb246IFwicGVyc29uYXNcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2NvbGxlY3Rpb246IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQ29sbGVjdGlvbicsXG4gICAgY2F0ZWdvcnk6ICdDb21tdW5pdHkgQ29sbGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTZWFyY2ggdGhlIGNvbW11bml0eSBjb2xsZWN0aW9uIGZvciBlbGVtZW50cyBieSBrZXl3b3JkcycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBxdWVyeTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHF1ZXJ5JyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29sbGVjdGlvblNlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ01hdGNoaW5nIGVsZW1lbnRzIGZyb20gY29sbGVjdGlvbicgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzZWFyY2hfY29sbGVjdGlvblwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY29kZSByZXZpZXdcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2NvbGxlY3Rpb25fZW5oYW5jZWQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQ29sbGVjdGlvbkVuaGFuY2VkJyxcbiAgICBjYXRlZ29yeTogJ0NvbW11bml0eSBDb2xsZWN0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FkdmFuY2VkIHNlYXJjaCB3aXRoIHBhZ2luYXRpb24sIGZpbHRlcmluZywgYW5kIHNvcnRpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICdzcHJlYWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VuaGFuY2VkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIHNlYXJjaCByZXN1bHRzIHdpdGggbWV0YWRhdGEnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwic2VhcmNoX2NvbGxlY3Rpb25fZW5oYW5jZWRcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImFzc2lzdGFudFwiLCBsaW1pdDogMTAgfSB9J10sXG4gIH0sXG4gIGdldF9jb2xsZWN0aW9uX2NvbnRlbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZ2V0Q29sbGVjdGlvbkNvbnRlbnQnLFxuICAgIGNhdGVnb3J5OiAnQ29tbXVuaXR5IENvbGxlY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGNvbnRlbnQgZnJvbSB0aGUgY29sbGVjdGlvbicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250ZW50IHBhdGggaW4gY29sbGVjdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NvbGxlY3Rpb25Db250ZW50Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRnVsbCBjb250ZW50IGFuZCBtZXRhZGF0YSBmb3IgY29sbGVjdGlvbiBpdGVtJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9jb2xsZWN0aW9uX2NvbnRlbnRcIiwgcGFyYW1zOiB7IHBhdGg6IFwicGVyc29uYXMvY3JlYXRpdmUtd3JpdGVyLm1kXCIgfSB9J10sXG4gIH0sXG4gIGdldF9jb2xsZWN0aW9uX2NhY2hlX2hlYWx0aDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdnZXRDb2xsZWN0aW9uQ2FjaGVIZWFsdGgnLFxuICAgIGNhdGVnb3J5OiAnQ29tbXVuaXR5IENvbGxlY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGhlYWx0aCBzdGF0dXMgYW5kIHN0YXRpc3RpY3MgZm9yIHRoZSBjb2xsZWN0aW9uIGNhY2hlJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NhY2hlSGVhbHRoU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ2FjaGUgaGVhbHRoIG1ldHJpY3MgYW5kIGRpYWdub3N0aWNzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9jb2xsZWN0aW9uX2NhY2hlX2hlYWx0aFwiIH0nXSxcbiAgfSxcbiAgaW5zdGFsbF9jb2xsZWN0aW9uX2NvbnRlbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdpbnN0YWxsQ29udGVudCcsXG4gICAgY2F0ZWdvcnk6ICdDb21tdW5pdHkgQ29sbGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdJbnN0YWxsIGFuIGVsZW1lbnQgZnJvbSB0aGUgY29sbGVjdGlvbiB0byB5b3VyIGxvY2FsIHBvcnRmb2xpbycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250ZW50IHBhdGggdG8gaW5zdGFsbCcgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0luc3RhbGxSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbnN0YWxsYXRpb24gcmVzdWx0IHdpdGggZWxlbWVudCBuYW1lLCB0eXBlLCBhbmQgbG9jYWwgZmlsZSBwYXRoJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImluc3RhbGxfY29sbGVjdGlvbl9jb250ZW50XCIsIHBhcmFtczogeyBwYXRoOiBcInBlcnNvbmFzL2NyZWF0aXZlLXdyaXRlci5tZFwiIH0gfSddLFxuICB9LFxuICBzdWJtaXRfY29sbGVjdGlvbl9jb250ZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc3VibWl0Q29udGVudCcsXG4gICAgY2F0ZWdvcnk6ICdDb21tdW5pdHkgQ29sbGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTdWJtaXQgYSBsb2NhbCBlbGVtZW50IHRvIHRoZSBjb21tdW5pdHkgY29sbGVjdGlvbiB2aWEgR2l0SHViJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGNvbnRlbnQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbnRlbnQgdG8gc3VibWl0JyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU3VibWl0UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3VibWlzc2lvbiByZXN1bHQgd2l0aCBHaXRIdWIgUFIgVVJMIGFuZCBzdGF0dXMgbWVzc2FnZScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzdWJtaXRfY29sbGVjdGlvbl9jb250ZW50XCIsIHBhcmFtczogeyBjb250ZW50OiBcInBlcnNvbmFzL215LXBlcnNvbmFcIiB9IH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEF1dGggT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IEFVVEhfT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBzZXR1cF9naXRodWJfYXV0aDoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAnYXV0aEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ3NldHVwR2l0SHViQXV0aCcsXG4gICAgY2F0ZWdvcnk6ICdHaXRIdWIgQXV0aGVudGljYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnU2V0IHVwIEdpdEh1YiBhdXRoZW50aWNhdGlvbiB1c2luZyBkZXZpY2UgZmxvdycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdBdXRoU2V0dXBSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdEZXZpY2UgZmxvdyBzZXR1cDogeyB1c2VyQ29kZSwgdmVyaWZpY2F0aW9uVXJsLCBleHBpcmVzSW4sIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzZXR1cF9naXRodWJfYXV0aFwiIH0nXSxcbiAgfSxcbiAgY2hlY2tfZ2l0aHViX2F1dGg6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdhdXRoSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnY2hlY2tHaXRIdWJBdXRoJyxcbiAgICBjYXRlZ29yeTogJ0dpdEh1YiBBdXRoZW50aWNhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdDaGVjayBjdXJyZW50IEdpdEh1YiBhdXRoZW50aWNhdGlvbiBzdGF0dXMnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge30sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQXV0aFN0YXR1cycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0N1cnJlbnQgYXV0aGVudGljYXRpb24gc3RhdGUgYW5kIHVzZXIgaW5mbycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJjaGVja19naXRodWJfYXV0aFwiIH0nXSxcbiAgfSxcbiAgY2xlYXJfZ2l0aHViX2F1dGg6IHtcbiAgICBlbmRwb2ludDogJ0RFTEVURScsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdjbGVhckdpdEh1YkF1dGgnLFxuICAgIGNhdGVnb3J5OiAnR2l0SHViIEF1dGhlbnRpY2F0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlbW92ZSBHaXRIdWIgYXV0aGVudGljYXRpb24gYW5kIGRpc2Nvbm5lY3QnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge30sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnT3BlcmF0aW9uUmVzdWx0Jywga2luZDogJ3VuaW9uJywgZGVzY3JpcHRpb246ICdTdWNjZXNzIG9yIGZhaWx1cmUgc3RhdHVzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImNsZWFyX2dpdGh1Yl9hdXRoXCIgfSddLFxuICB9LFxuICBjb25maWd1cmVfb2F1dGg6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdjb25maWd1cmVPQXV0aCcsXG4gICAgY2F0ZWdvcnk6ICdHaXRIdWIgQXV0aGVudGljYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlndXJlIEdpdEh1YiBPQXV0aCBjbGllbnQgSUQnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgY2xpZW50X2lkOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09BdXRoIGNsaWVudCBJRCcgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ09BdXRoQ29uZmlnJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnT0F1dGggY29uZmlndXJhdGlvbiBzdGF0dXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiY29uZmlndXJlX29hdXRoXCIsIHBhcmFtczogeyBjbGllbnRfaWQ6IFwieW91ci1jbGllbnQtaWRcIiB9IH0nXSxcbiAgfSxcbiAgb2F1dGhfaGVscGVyX3N0YXR1czoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdnZXRPQXV0aEhlbHBlclN0YXR1cycsXG4gICAgY2F0ZWdvcnk6ICdHaXRIdWIgQXV0aGVudGljYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGRpYWdub3N0aWMgaW5mb3JtYXRpb24gYWJvdXQgT0F1dGggaGVscGVyIHByb2Nlc3MnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgdmVyYm9zZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnSW5jbHVkZSB2ZXJib3NlIGRpYWdub3N0aWNzJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnT0F1dGhIZWxwZXJTdGF0dXMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdIZWxwZXIgcHJvY2VzcyBkaWFnbm9zdGljcycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJvYXV0aF9oZWxwZXJfc3RhdHVzXCIsIHBhcmFtczogeyB2ZXJib3NlOiB0cnVlIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRW5oYW5jZWQgSW5kZXggT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IEVOSEFOQ0VEX0lOREVYX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgZmluZF9zaW1pbGFyX2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZW5oYW5jZWRJbmRleEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2ZpbmRTaW1pbGFyRWxlbWVudHMnLFxuICAgIGNhdGVnb3J5OiAnSW50ZWxsaWdlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbmQgc2VtYW50aWNhbGx5IHNpbWlsYXIgZWxlbWVudHMgdXNpbmcgTkxQIHNjb3JpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXBUbzogJ2VsZW1lbnRUeXBlJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDEwIH0sXG4gICAgICB0aHJlc2hvbGQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDAuNSB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU2ltaWxhckVsZW1lbnRzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnTGlzdCBvZiBzaW1pbGFyIGVsZW1lbnRzIHdpdGggc2ltaWxhcml0eSBzY29yZXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZmluZF9zaW1pbGFyX2VsZW1lbnRzXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY3JlYXRpdmUtd3JpdGVyXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIGxpbWl0OiA1IH0gfSddLFxuICB9LFxuICBnZXRfZWxlbWVudF9yZWxhdGlvbnNoaXBzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZW5oYW5jZWRJbmRleEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2dldEVsZW1lbnRSZWxhdGlvbnNoaXBzJyxcbiAgICBjYXRlZ29yeTogJ0ludGVsbGlnZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYWxsIHJlbGF0aW9uc2hpcHMgZm9yIGEgc3BlY2lmaWMgZWxlbWVudCcsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIG1hcFRvOiAnZWxlbWVudFR5cGUnIH0sXG4gICAgICByZWxhdGlvbnNoaXBfdHlwZXM6IHsgdHlwZTogJ3N0cmluZ1tdJywgbWFwVG86ICdyZWxhdGlvbnNoaXBUeXBlcycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnRSZWxhdGlvbnNoaXBzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUmVsYXRpb25zaGlwIGdyYXBoIGZvciB0aGUgZWxlbWVudCcgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJnZXRfZWxlbWVudF9yZWxhdGlvbnNoaXBzXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2J5X3ZlcmI6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbmhhbmNlZEluZGV4SGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQnlWZXJiJyxcbiAgICBjYXRlZ29yeTogJ0ludGVsbGlnZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdTZWFyY2ggZm9yIGVsZW1lbnRzIHRoYXQgaGFuZGxlIGEgc3BlY2lmaWMgYWN0aW9uIHZlcmInLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICB2ZXJiOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDIwIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdWZXJiU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRWxlbWVudHMgbWF0Y2hpbmcgdGhlIGFjdGlvbiB2ZXJiJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9ieV92ZXJiXCIsIHBhcmFtczogeyB2ZXJiOiBcImFuYWx5emVcIiwgbGltaXQ6IDEwIH0gfSddLFxuICB9LFxuICBnZXRfcmVsYXRpb25zaGlwX3N0YXRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZW5oYW5jZWRJbmRleEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2dldFJlbGF0aW9uc2hpcFN0YXRzJyxcbiAgICBjYXRlZ29yeTogJ0ludGVsbGlnZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgc3RhdGlzdGljcyBhYm91dCBFbmhhbmNlZCBJbmRleCByZWxhdGlvbnNoaXBzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1JlbGF0aW9uc2hpcFN0YXRzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRlIHN0YXRpc3RpY3MgYWJvdXQgZWxlbWVudCByZWxhdGlvbnNoaXBzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9yZWxhdGlvbnNoaXBfc3RhdHNcIiB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZW1wbGF0ZSBPcGVyYXRpb25zIFNjaGVtYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgVEVNUExBVEVfT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICByZW5kZXI6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICd0ZW1wbGF0ZVJlbmRlcmVyJyxcbiAgICBtZXRob2Q6ICdyZW5kZXInLFxuICAgIGNhdGVnb3J5OiAnVGVtcGxhdGUgUmVuZGVyaW5nJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlbmRlciBhIHRlbXBsYXRlIHdpdGggcHJvdmlkZWQgdmFyaWFibGVzLiBGb3Igc2VjdGlvbi1mb3JtYXQgdGVtcGxhdGVzICg8dGVtcGxhdGU+LCA8c3R5bGU+LCA8c2NyaXB0PiksIHJlbmRlcnMgdGhlIDx0ZW1wbGF0ZT4gc2VjdGlvbiBieSBkZWZhdWx0IOKAlCB2YXJpYWJsZSBzdWJzdGl0dXRpb24gb25seSBhcHBsaWVzIHRoZXJlLiBVc2Ugc2VjdGlvbjogXCJzdHlsZVwiIG9yIFwic2NyaXB0XCIgdG8gcmV0cmlldmUgcmF3IHBhc3N0aHJvdWdoIHNlY3Rpb25zIHdoZXJlIH19IGlzIHNhZmUuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIC8vIElzc3VlICMyOTA6IFVzZSBlbGVtZW50X25hbWUgZm9yIGNvbnNpc3RlbmN5XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1RlbXBsYXRlIG5hbWUnIH0sXG4gICAgICB2YXJpYWJsZXM6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnVmFyaWFibGVzIHRvIHN1YnN0aXR1dGUgaW4gdGhlIDx0ZW1wbGF0ZT4gc2VjdGlvbiAoZS5nLiB7IFwidGl0bGVcIjogXCJNeSBQYWdlXCIsIFwidXNlclwiOiBcIkFsaWNlXCIgfSknIH0sXG4gICAgICBzZWN0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnRXh0cmFjdCBhIHNwZWNpZmljIHJhdyBzZWN0aW9uIHdpdGhvdXQgdmFyaWFibGUgc3Vic3RpdHV0aW9uOiBcInN0eWxlXCIgb3IgXCJzY3JpcHRcIi4gVXNlZnVsIGZvciBDU1MgdGhlbWUgdGVtcGxhdGVzIG9yIEpTLW9ubHkgdGVtcGxhdGVzLiBPbmx5IHZhbGlkIGZvciBzZWN0aW9uLWZvcm1hdCB0ZW1wbGF0ZXMuJyB9LFxuICAgICAgYWxsX3NlY3Rpb25zOiB7IHR5cGU6ICdib29sZWFuJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ1JldHVybiBhbGwgc2VjdGlvbnMgdG9nZXRoZXI6IHsgdGVtcGxhdGU6IHJlbmRlcmVkLCBzdHlsZTogcmF3LCBzY3JpcHQ6IHJhdyB9LiBVc2Ugd2hlbiB5b3UgbmVlZCB0aGUgcmVuZGVyZWQgSFRNTCBhbG9uZ3NpZGUgaXRzIENTUyBhbmQgSlMuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUmVuZGVyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUmVuZGVyZWQgdGVtcGxhdGUgY29udGVudC4gY29udGVudCBmaWVsZCBoYXMgdGhlIHJlc3VsdCBzdHJpbmc7IHNlY3Rpb25zIGZpZWxkIHBvcHVsYXRlZCB3aGVuIGFsbF9zZWN0aW9uczogdHJ1ZS4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZW5kZXJcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJtZWV0aW5nLW5vdGVzXCIsIHZhcmlhYmxlczogeyBkYXRlOiBcIjIwMjQtMDEtMTVcIiwgYXR0ZW5kZWVzOiBbXCJBbGljZVwiLCBcIkJvYlwiXSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicmVuZGVyXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiZGFzaGJvYXJkLXRoZW1lLWRhcmtcIiwgc2VjdGlvbjogXCJzdHlsZVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicmVuZGVyXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiZGFzaGJvYXJkLXBhZ2VcIiwgdmFyaWFibGVzOiB7IHRpdGxlOiBcIk15IERhc2hib2FyZFwiIH0sIGFsbF9zZWN0aW9uczogdHJ1ZSB9IH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJbnRyb3NwZWN0aW9uIE9wZXJhdGlvbnMgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBJTlRST1NQRUNUSU9OX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgaW50cm9zcGVjdDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJywgLy8gVXNlcyBJbnRyb3NwZWN0aW9uUmVzb2x2ZXIgZGlyZWN0bHlcbiAgICBtZXRob2Q6ICdfX2ludHJvc3BlY3RfXycsIC8vIFNwZWNpYWwgbWFya2VyIGZvciBpbnRyb3NwZWN0aW9uXG4gICAgY2F0ZWdvcnk6ICdTeXN0ZW0gSW50cm9zcGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSBhdmFpbGFibGUgb3BlcmF0aW9ucywgdHlwZXMsIGFuZCBlbGVtZW50IGZvcm1hdCBzcGVjcyBmb3IgZGlzY292ZXJ5JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246IFwiV2hhdCB0byBpbnRyb3NwZWN0OiAnb3BlcmF0aW9ucycgKGxpc3QvZGV0YWlsIG9wZXJhdGlvbnMpLCAndHlwZXMnIChsaXN0L2RldGFpbCB0eXBlIGRlZmluaXRpb25zKSwgJ2Zvcm1hdCcgKGVsZW1lbnQgY3JlYXRpb24gZm9ybWF0IHNwZWNzIOKAlCByZXF1aXJlZC9vcHRpb25hbCBmaWVsZHMsIHN5bnRheCwgZXhhbXBsZXMpLCAnY2F0ZWdvcmllcycgKGNhdGVnb3J5IGZvcm1hdCBydWxlcyArIGhvdyB0byBkaXNjb3ZlciBleGlzdGluZyBjYXRlZ29yaWVzIHZpYSBxdWVyeV9lbGVtZW50cykuIERlZmF1bHQ6ICdvcGVyYXRpb25zJ1wiIH0sXG4gICAgICBuYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogXCJTcGVjaWZpYyBpdGVtIG5hbWUuIEZvciAnb3BlcmF0aW9ucyc6IG9wZXJhdGlvbiBuYW1lLiBGb3IgJ3R5cGVzJzogdHlwZSBuYW1lLiBGb3IgJ2Zvcm1hdCc6IGVsZW1lbnQgdHlwZSAoZS5nLiAndGVtcGxhdGUnLCAncGVyc29uYScpLiBOb3QgdXNlZCBmb3IgJ2NhdGVnb3JpZXMnLiBPbWl0IGZvciBvdmVydmlldy5cIiB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnSW50cm9zcGVjdGlvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ09wZXJhdGlvbnMsIHR5cGVzLCBvciBmb3JtYXQgc3BlY2lmaWNhdGlvbiBpbmZvcm1hdGlvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImludHJvc3BlY3RcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcIm9wZXJhdGlvbnNcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImludHJvc3BlY3RcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcIm9wZXJhdGlvbnNcIiwgbmFtZTogXCJjcmVhdGVfZWxlbWVudFwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwidHlwZXNcIiwgbmFtZTogXCJFbGVtZW50VHlwZVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiZm9ybWF0XCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJpbnRyb3NwZWN0XCIsIHBhcmFtczogeyBxdWVyeTogXCJmb3JtYXRcIiwgbmFtZTogXCJ0ZW1wbGF0ZVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY2F0ZWdvcmllc1wiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X2NhcGFiaWxpdGllczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJywgLy8gVXNlcyBJbnRyb3NwZWN0aW9uUmVzb2x2ZXIgZGlyZWN0bHlcbiAgICBtZXRob2Q6ICdfX2NhcGFiaWxpdGllc19fJywgLy8gU3BlY2lhbCBtYXJrZXIgZm9yIGNhcGFiaWxpdGllc1xuICAgIGNhdGVnb3J5OiAnU3lzdGVtIEludHJvc3BlY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGEgaGlnaC1sZXZlbCBtYXAgb2YgYWxsIHNlcnZlciBjYXBhYmlsaXRpZXMgZ3JvdXBlZCBieSB1c2VyIGludGVudC4gUmV0dXJucyBicmllZiBkZXNjcmlwdGlvbnMgb2YgZXZlcnkgYXZhaWxhYmxlIG9wZXJhdGlvbiBvcmdhbml6ZWQgYnkgY2F0ZWdvcnkuIFVzZSBpbnRyb3NwZWN0IGZvciBmdWxsIGRldGFpbHMgb24gYW55IHNwZWNpZmljIG9wZXJhdGlvbi4nLFxuICAgIHBhcmFtczoge1xuICAgICAgY2F0ZWdvcnk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyIHRvIGEgc3BlY2lmaWMgY2F0ZWdvcnkgbmFtZS4gT21pdCB0byBzZWUgYWxsIGNhdGVnb3JpZXMuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ2FwYWJpbGl0aWVzUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ2F0ZWdvcml6ZWQgY2FwYWJpbGl0eSBtYXAgd2l0aCBicmllZiBkZXNjcmlwdGlvbnMsIHNvdXJjZXMsIGFuZCBzdGF0dXMnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfY2FwYWJpbGl0aWVzXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2NhcGFiaWxpdGllc1wiLCBwYXJhbXM6IHsgY2F0ZWdvcnk6IFwiRWxlbWVudCBMaWZlY3ljbGVcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQZXJzb25hIE9wZXJhdGlvbnMgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBQRVJTT05BX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgaW1wb3J0X3BlcnNvbmE6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ3BlcnNvbmFIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdpbXBvcnRQZXJzb25hJyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgTGlmZWN5Y2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ltcG9ydCBhIHBlcnNvbmEgZnJvbSBhIGZpbGUgcGF0aCBvciBKU09OIHN0cmluZycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBzb3VyY2U6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0ZpbGUgcGF0aCBvciBKU09OIHN0cmluZycgfSxcbiAgICAgIG92ZXJ3cml0ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnT3ZlcndyaXRlIGV4aXN0aW5nIHBlcnNvbmEnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdJbXBvcnRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbXBvcnQgc3RhdHVzIGFuZCBwZXJzb25hIGluZm8nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiaW1wb3J0X3BlcnNvbmFcIiwgcGFyYW1zOiB7IHNvdXJjZTogXCIvcGF0aC90by9wZXJzb25hLm1kXCIsIG92ZXJ3cml0ZTogdHJ1ZSB9IH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbmZpZyBPcGVyYXRpb25zIFNjaGVtYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgQ09ORklHX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgZG9sbGhvdXNlX2NvbmZpZzoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbmZpZ0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ2hhbmRsZUNvbmZpZ09wZXJhdGlvbicsXG4gICAgY2F0ZWdvcnk6ICdDb25maWd1cmF0aW9uICYgRGlhZ25vc3RpY3MnLFxuICAgIGRlc2NyaXB0aW9uOiAnTWFuYWdlIERvbGxob3VzZU1DUCBjb25maWd1cmF0aW9uIHNldHRpbmdzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgYWN0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdnZXQsIHNldCwgcmVzZXQsIGV4cG9ydCwgaW1wb3J0LCB3aXphcmQnIH0sXG4gICAgICBzZXR0aW5nOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgc2VjdGlvbjogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgZm9ybWF0OiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBkYXRhOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDb25maWdSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maWd1cmF0aW9uIG9wZXJhdGlvbiByZXN1bHQnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJkb2xsaG91c2VfY29uZmlnXCIsIHBhcmFtczogeyBhY3Rpb246IFwiZ2V0XCIsIHNldHRpbmc6IFwiZGVidWdcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImRvbGxob3VzZV9jb25maWdcIiwgcGFyYW1zOiB7IGFjdGlvbjogXCJzZXRcIiwgc2V0dGluZzogXCJsb2dMZXZlbFwiLCB2YWx1ZTogXCJ2ZXJib3NlXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBjb252ZXJ0X3NraWxsX2Zvcm1hdDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbmZpZ0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ2NvbnZlcnRTa2lsbEZvcm1hdCcsXG4gICAgY2F0ZWdvcnk6ICdDb25maWd1cmF0aW9uICYgRGlhZ25vc3RpY3MnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29udmVydCBiZXR3ZWVuIGN1cnJlbnQgQWdlbnQgU2tpbGwgYW5kIERvbGxob3VzZSBTa2lsbCBmb3JtYXRzIChib3RoIGRpcmVjdGlvbnMpIHdpdGggc3RydWN0dXJlZCB3YXJuaW5ncyBhbmQgb3B0aW9uYWwgcm91bmR0cmlwIHN0YXRlIGZvciBsb3NzbGVzcyBzdXBwb3J0ZWQtZmllbGQgcmVzdG9yYXRpb24nLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBkaXJlY3Rpb246IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbnZlcnNpb24gZGlyZWN0aW9uOiBhZ2VudF90b19kb2xsaG91c2Ugb3IgZG9sbGhvdXNlX3RvX2FnZW50JyB9LFxuICAgICAgYWdlbnRfc2tpbGw6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdlbnQgU2tpbGwgc3RydWN0dXJlIGZvciBhZ2VudF90b19kb2xsaG91c2U6IHsgXCJTS0lMTC5tZFwiOiBcIi4uLlwiLCBcInNjcmlwdHMvXCI6IHsgLi4uIH0sIFwicmVmZXJlbmNlcy9cIjogeyAuLi4gfSwgXCJhc3NldHMvXCI6IHsgLi4uIH0sIFwiYWdlbnRzL1wiOiB7IC4uLiB9IH0nIH0sXG4gICAgICBkb2xsaG91c2U6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3RydWN0dXJlZCBEb2xsaG91c2Ugc2tpbGwgYXJ0aWZhY3QgZm9yIGRvbGxob3VzZV90b19hZ2VudDogeyBtZXRhZGF0YSwgaW5zdHJ1Y3Rpb25zLCBjb250ZW50IH0nIH0sXG4gICAgICBkb2xsaG91c2VfbWFya2Rvd246IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnU2VyaWFsaXplZCBEb2xsaG91c2UgbWFya2Rvd24gaW5wdXQgZm9yIGRvbGxob3VzZV90b19hZ2VudCAoYWx0ZXJuYXRpdmUgdG8gZG9sbGhvdXNlIG9iamVjdCknIH0sXG4gICAgICByb3VuZHRyaXBfc3RhdGU6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWwgc3RhdGUgcmV0dXJuZWQgYnkgYWdlbnRfdG9fZG9sbGhvdXNlIGZvciBleGFjdCByZXZlcnNlIGNvbnZlcnNpb24nIH0sXG4gICAgICBwcmVmZXJfcm91bmR0cmlwX3N0YXRlOiB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogdHJ1ZSwgZGVzY3JpcHRpb246ICdXaGVuIHRydWUgKGRlZmF1bHQpLCB1c2Ugcm91bmR0cmlwX3N0YXRlIGlmIHZhbGlkIGZvciBsb3NzbGVzcyByZXN0b3JhdGlvbicgfSxcbiAgICAgIHBhdGhfbW9kZTogeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJ3NhZmUnLCBkZXNjcmlwdGlvbjogJ1BhdGggaGFuZGxpbmcgbW9kZTogc2FmZSAoZGVmYXVsdCwgYWxsb3dsaXN0ZWQvdmFsaWRhdGVkIHBhdGhzLCBzZWN1cml0eSBmaW5kaW5ncyBzYW5pdGl6ZWQpIG9yIGxvc3NsZXNzIChwcmVzZXJ2ZSBub24tYWxsb3dsaXN0ZWQgcGF0aHMgZm9yIGZ1bGwtZmlkZWxpdHkgY29udmVyc2lvbnMgd2hpbGUgc3RpbGwgcmVwb3J0aW5nIHNlY3VyaXR5IGZpbmRpbmdzKS4gSW5wdXQgYm91bmRzOiAyIE1pQiBwZXIgdGV4dCBmaWVsZCwgMTYgTWlCIGFnZ3JlZ2F0ZSwgMjAwMCBmaWxlIGVudHJpZXMuIENvbnZlcnNpb24gbWV0cmljcyByZXR1cm5lZCBpbiByZXBvcnQubWV0cmljcy4nIH0sXG4gICAgICBzZWN1cml0eV9tb2RlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnc3RyaWN0JywgZGVzY3JpcHRpb246ICdTZWN1cml0eSBoYW5kbGluZyBtb2RlIGZvciBhZ2VudF90b19kb2xsaG91c2U6IHN0cmljdCAoZGVmYXVsdCwgZmFpbCBjb252ZXJzaW9uIG9uIGhpZ2gvY3JpdGljYWwgZmluZGluZ3MpIG9yIHdhcm4gKHN1cmZhY2UgZmluZGluZ3MgaW4gcmVwb3J0Lndhcm5pbmdzIGFuZCBjb250aW51ZSkuIEZyb250bWF0dGVyIGlzIGFsc28gY2hlY2tlZCBmb3IgdW5zYWZlIFlBTUwgcGF0dGVybnMgKGluY2x1ZGluZyBZQU1MLWJvbWIvYW1wbGlmaWNhdGlvbiBwYXR0ZXJucykuIFVzZSB3YXJuIG9ubHkgZm9yIHRydXN0ZWQgbWlncmF0aW9uIHdvcmtmbG93cy4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdTa2lsbENvbnZlcnNpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb252ZXJ0ZWQgYXJ0aWZhY3QgcGx1cyBtYWNoaW5lLXJlYWRhYmxlIGNvbnZlcnNpb24gcmVwb3J0IGFuZCB3YXJuaW5ncycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbnZlcnRfc2tpbGxfZm9ybWF0XCIsIHBhcmFtczogeyBkaXJlY3Rpb246IFwiYWdlbnRfdG9fZG9sbGhvdXNlXCIsIGFnZW50X3NraWxsOiB7IFwiU0tJTEwubWRcIjogXCItLS1cXFxcbm5hbWU6IG15LXNraWxsXFxcXG5kZXNjcmlwdGlvbjogdGVzdFxcXFxuLS0tXFxcXG5cXFxcblVzZSB0aGlzIHNraWxsLlwiIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjb252ZXJ0X3NraWxsX2Zvcm1hdFwiLCBwYXJhbXM6IHsgZGlyZWN0aW9uOiBcImFnZW50X3RvX2RvbGxob3VzZVwiLCBzZWN1cml0eV9tb2RlOiBcIndhcm5cIiwgcGF0aF9tb2RlOiBcImxvc3NsZXNzXCIsIGFnZW50X3NraWxsOiB7IFwiU0tJTEwubWRcIjogXCItLS1cXFxcbm5hbWU6IG15LXNraWxsXFxcXG5kZXNjcmlwdGlvbjogdGVzdFxcXFxuLS0tXFxcXG5cXFxcblVzZSB0aGlzIHNraWxsLlwiIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjb252ZXJ0X3NraWxsX2Zvcm1hdFwiLCBwYXJhbXM6IHsgZGlyZWN0aW9uOiBcImRvbGxob3VzZV90b19hZ2VudFwiLCBwYXRoX21vZGU6IFwibG9zc2xlc3NcIiwgZG9sbGhvdXNlX21hcmtkb3duOiBcIi0tLVxcXFxubmFtZTogbXktc2tpbGxcXFxcbmRlc2NyaXB0aW9uOiB0ZXN0XFxcXG5pbnN0cnVjdGlvbnM6IFVzZSB0aGlzIHNraWxsLlxcXFxuLS0tXFxcXG5cXFxcblJlZmVyZW5jZSBjb250ZW50XCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBnZXRfYnVpbGRfaW5mbzoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2J1aWxkSW5mb1NlcnZpY2UnLFxuICAgIG1ldGhvZDogJ19fYnVpbGRJbmZvX18nLCAvLyBTcGVjaWFsIG1hcmtlciBmb3IgYnVpbGQgaW5mb1xuICAgIGNhdGVnb3J5OiAnQ29uZmlndXJhdGlvbiAmIERpYWdub3N0aWNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBjb21wcmVoZW5zaXZlIGJ1aWxkIGFuZCBydW50aW1lIGluZm9ybWF0aW9uJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0J1aWxkSW5mbycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0J1aWxkIGluZm86IHsgdmVyc2lvbiwgYnVpbGREYXRlLCBub2RlVmVyc2lvbiwgcGxhdGZvcm0sIGVsZW1lbnRDb3VudHMgfScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJnZXRfYnVpbGRfaW5mb1wiIH0nXSxcbiAgfSxcbiAgZ2V0X2NhY2hlX2J1ZGdldF9yZXBvcnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjYWNoZU1lbW9yeUJ1ZGdldCcsXG4gICAgbWV0aG9kOiAnX19jYWNoZUJ1ZGdldF9fJyxcbiAgICBjYXRlZ29yeTogJ0NvbmZpZ3VyYXRpb24gJiBEaWFnbm9zdGljcycsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgZ2xvYmFsIGNhY2hlIG1lbW9yeSBidWRnZXQgcmVwb3J0IHdpdGggcGVyLWNhY2hlIGRpYWdub3N0aWNzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0J1ZGdldFJlcG9ydCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NhY2hlIG1lbW9yeSB1c2FnZSwgcGVyLWNhY2hlIHN0YXRzLCBoaXQgcmF0ZXMsIGFuZCBidWRnZXQgdXRpbGl6YXRpb24nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZ2V0X2NhY2hlX2J1ZGdldF9yZXBvcnRcIiB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQb3J0Zm9saW8gT3BlcmF0aW9ucyBTY2hlbWEgKElzc3VlICMyNTIpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUG9ydGZvbGlvIG9wZXJhdGlvbnMgc2NoZW1hIC0gZGVtb25zdHJhdGVzIHBhcmFtU3R5bGUgY29udmVyc2lvbiBwYXR0ZXJuLlxuICpcbiAqIFBBVFRFUk46IEF1dG9tYXRpYyBQYXJhbWV0ZXIgU3R5bGUgQ29udmVyc2lvblxuICogRXh0ZXJuYWwgQVBJcyBvZnRlbiB1c2Ugc25ha2VfY2FzZSBuYW1pbmcsIHdoaWxlIEphdmFTY3JpcHQgaGFuZGxlcnNcbiAqIHR5cGljYWxseSB1c2UgY2FtZWxDYXNlLiBUaGUgYHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnYCBzZXR0aW5nXG4gKiBlbmFibGVzIGF1dG9tYXRpYyBjb252ZXJzaW9uIHdpdGhvdXQgaW5kaXZpZHVhbCBgbWFwVG9gIGRlZmluaXRpb25zLlxuICpcbiAqIFRoaXMgcGF0dGVybiBpcyBpbXBvcnRhbnQgZm9yIE1DUC1BUUwgYWRhcHRlcnMgd3JhcHBpbmcgZXh0ZXJuYWwgTUNQXG4gKiBzZXJ2ZXJzIHRoYXQgZm9sbG93IGRpZmZlcmVudCBuYW1pbmcgY29udmVudGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElucHV0IGZyb20gTUNQIGNsaWVudDogeyBkcnlfcnVuOiB0cnVlLCBtYXhfcmVzdWx0czogMTAgfVxuICogLy8gSGFuZGxlciByZWNlaXZlczogeyBkcnlSdW46IHRydWUsIG1heFJlc3VsdHM6IDEwIH1cbiAqL1xuZXhwb3J0IGNvbnN0IFBPUlRGT0xJT19PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIHBvcnRmb2xpb19zdGF0dXM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdwb3J0Zm9saW9TdGF0dXMnLFxuICAgIGNhdGVnb3J5OiAnUG9ydGZvbGlvIE1hbmFnZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgR2l0SHViIHBvcnRmb2xpbyByZXBvc2l0b3J5IHN0YXR1cyBhbmQgZWxlbWVudCBjb3VudHMnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICdzaW5nbGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgdXNlcm5hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnR2l0SHViIHVzZXJuYW1lIHRvIGNoZWNrJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUG9ydGZvbGlvU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUG9ydGZvbGlvIHN5bmMgc3RhdHVzIGFuZCBlbGVtZW50IGNvdW50cycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fc3RhdHVzXCIgfSddLFxuICB9LFxuICBpbml0X3BvcnRmb2xpbzoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnaW5pdFBvcnRmb2xpbycsXG4gICAgY2F0ZWdvcnk6ICdQb3J0Zm9saW8gTWFuYWdlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdJbml0aWFsaXplIGEgbmV3IEdpdEh1YiBwb3J0Zm9saW8gcmVwb3NpdG9yeScsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbVN0eWxlOiAnc25ha2VUb0NhbWVsJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHJlcG9zaXRvcnlfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdOYW1lIGZvciB0aGUgcG9ydGZvbGlvIHJlcG9zaXRvcnknIH0sXG4gICAgICBwcml2YXRlOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSByZXBvc2l0b3J5IHNob3VsZCBiZSBwcml2YXRlJyB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVwb3NpdG9yeSBkZXNjcmlwdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1BvcnRmb2xpb0luaXRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdOZXdseSBjcmVhdGVkIHBvcnRmb2xpbyByZXBvc2l0b3J5IGRldGFpbHMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiaW5pdF9wb3J0Zm9saW9cIiwgcGFyYW1zOiB7IHJlcG9zaXRvcnlfbmFtZTogXCJteS1wb3J0Zm9saW9cIiwgcHJpdmF0ZTogdHJ1ZSB9IH0nXSxcbiAgfSxcbiAgcG9ydGZvbGlvX2NvbmZpZzoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ3BvcnRmb2xpb0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ3BvcnRmb2xpb0NvbmZpZycsXG4gICAgY2F0ZWdvcnk6ICdQb3J0Zm9saW8gTWFuYWdlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maWd1cmUgcG9ydGZvbGlvIHNldHRpbmdzIChhdXRvLXN5bmMsIHZpc2liaWxpdHksIGV0Yy4pJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnLFxuICAgIHBhcmFtczoge1xuICAgICAgYXV0b19zeW5jOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdFbmFibGUgYXV0b21hdGljIHN5bmNpbmcnIH0sXG4gICAgICBkZWZhdWx0X3Zpc2liaWxpdHk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCB2aXNpYmlsaXR5IGZvciBuZXcgZWxlbWVudHMnIH0sXG4gICAgICBhdXRvX3N1Ym1pdDogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnQXV0b21hdGljYWxseSBzdWJtaXQgdG8gY29sbGVjdGlvbicgfSxcbiAgICAgIHJlcG9zaXRvcnlfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdQb3J0Zm9saW8gcmVwb3NpdG9yeSBuYW1lJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUG9ydGZvbGlvQ29uZmlnJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ3VycmVudCBwb3J0Zm9saW8gY29uZmlndXJhdGlvbiBzZXR0aW5ncycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fY29uZmlnXCIsIHBhcmFtczogeyBhdXRvX3N5bmM6IHRydWUgfSB9J10sXG4gIH0sXG4gIHN5bmNfcG9ydGZvbGlvOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzeW5jUG9ydGZvbGlvJyxcbiAgICBjYXRlZ29yeTogJ1BvcnRmb2xpbyBNYW5hZ2VtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1N5bmMgbG9jYWwgcG9ydGZvbGlvIHdpdGggR2l0SHViIHJlcG9zaXRvcnknLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1TdHlsZTogJ3NuYWtlVG9DYW1lbCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBkaXJlY3Rpb246IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdwdXNoJywgZGVzY3JpcHRpb246ICdTeW5jIGRpcmVjdGlvbjogcHVzaCBvciBwdWxsJyB9LFxuICAgICAgbW9kZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTeW5jIG1vZGUnIH0sXG4gICAgICBmb3JjZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0ZvcmNlIHN5bmMgZXZlbiB3aXRoIGNvbmZsaWN0cycgfSxcbiAgICAgIGRyeV9ydW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzY3JpcHRpb246ICdQcmV2aWV3IGNoYW5nZXMgd2l0aG91dCBhcHBseWluZycgfSxcbiAgICAgIGNvbmZpcm1fZGVsZXRpb25zOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdDb25maXJtIGJlZm9yZSBkZWxldGluZyBlbGVtZW50cycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1N5bmNSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTeW5jIHJlc3VsdHMgd2l0aCBjaGFuZ2VkIGVsZW1lbnQgbGlzdCBhbmQgY29uZmxpY3QgZGV0YWlscycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzeW5jX3BvcnRmb2xpb1wiLCBwYXJhbXM6IHsgZGlyZWN0aW9uOiBcInB1c2hcIiwgZHJ5X3J1bjogdHJ1ZSB9IH0nXSxcbiAgfSxcblxuICAvKipcbiAgICogVW5pZmllZCBzZWFyY2ggb3BlcmF0aW9uIChJc3N1ZSAjMjQzKVxuICAgKlxuICAgKiBDb25zb2xpZGF0ZXMgYWxsIHNlYXJjaCBmdW5jdGlvbmFsaXR5IHdpdGggYSBzY29wZSBwYXJhbWV0ZXIuXG4gICAqIFVzZXMgdGhlICdzZWFyY2hQYXJhbXMnIG5vcm1hbGl6ZXIgdG8gdHJhbnNmb3JtOlxuICAgKiAtIHNjb3BlIOKGkiBzb3VyY2VzIGFycmF5IGNvbnZlcnNpb25cbiAgICogLSBwYWdpbmF0aW9uIChvZmZzZXQvbGltaXQg4oaSIHBhZ2UvcGFnZVNpemUpXG4gICAqIC0gc29ydCBwYXJhbWV0ZXIgbm9ybWFsaXphdGlvblxuICAgKiAtIGZpbHRlciBwYXJhbWV0ZXIgZXh0cmFjdGlvblxuICAgKlxuICAgKiBAc2VlIFNlYXJjaFBhcmFtc05vcm1hbGl6ZXIgZm9yIHRyYW5zZm9ybWF0aW9uIGxvZ2ljXG4gICAqL1xuICBzZWFyY2g6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzZWFyY2hBbGwnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBEaXNjb3ZlcnknLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5pZmllZCBzZWFyY2ggYWNyb3NzIGxvY2FsLCBHaXRIdWIsIGFuZCBjb2xsZWN0aW9uIHNvdXJjZXMgd2l0aCBmbGV4aWJsZSBzY29wZScsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgbm9ybWFsaXplcjogJ3NlYXJjaFBhcmFtcycsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdTZWFyY2ggcXVlcnknIH0sXG4gICAgICBzY29wZTogeyB0eXBlOiAndW5rbm93bicsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHNjb3BlOiBcImxvY2FsXCIsIFwiZ2l0aHViXCIsIFwiY29sbGVjdGlvblwiLCBcImFsbFwiLCBvciBhcnJheSBvZiBzY29wZXMnIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUnIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBwZXIgcGFnZScgfSxcbiAgICAgIHNvcnQ6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU29ydCBvcHRpb25zOiB7IGZpZWxkLCBvcmRlciB9JyB9LFxuICAgICAgZmlsdGVyczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGaWx0ZXIgb3B0aW9uczogeyB0YWdzLCBhdXRob3IsIGNyZWF0ZWRBZnRlciwgY3JlYXRlZEJlZm9yZSB9JyB9LFxuICAgICAgb3B0aW9uczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTZWFyY2ggb3B0aW9uczogeyBmdXp6eU1hdGNoLCBpbmNsdWRlS2V5d29yZHMsIGluY2x1ZGVUYWdzIH0nIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVbmlmaWVkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIHNlYXJjaCByZXN1bHRzIGZyb20gc3BlY2lmaWVkIHNjb3BlcycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY3JlYXRpdmVcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiaGVscGVyXCIsIGZpZWxkczogXCJtaW5pbWFsXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJzZWFyY2hcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImFzc2lzdGFudFwiLCBmaWVsZHM6IFtcImVsZW1lbnRfbmFtZVwiLCBcImRlc2NyaXB0aW9uXCJdIH0gfScsXG4gICAgICAvLyBNZW1vcnktc3BlY2lmaWM6IGZpbHRlciBieSB0YWdzIHRvIGZpbmQgY2F0ZWdvcml6ZWQgZW50cmllc1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiKlwiLCB0eXBlOiBcIm1lbW9yeVwiLCBmaWx0ZXJzOiB7IHRhZ3M6IFtcImltcG9ydGFudFwiLCBcInJlZmVyZW5jZVwiXSB9IH0gfScsXG4gICAgXSxcbiAgfSxcblxuICAvLyBMZWdhY3kgc2VhcmNoIG9wZXJhdGlvbnMgKHByZWZlciB1bmlmaWVkIFwic2VhcmNoXCIgb3BlcmF0aW9uIGFib3ZlKVxuICBzZWFyY2hfcG9ydGZvbGlvOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoUG9ydGZvbGlvJyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgRGlzY292ZXJ5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1NlYXJjaCBsb2NhbCBwb3J0Zm9saW8gYnkgY29udGVudCBuYW1lLCBrZXl3b3Jkcywgb3IgdGFncycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbVN0eWxlOiAnc25ha2VUb0NhbWVsJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdTZWFyY2ggcXVlcnknIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXBUbzogJ2VsZW1lbnRUeXBlJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgZWxlbWVudCB0eXBlJyB9LFxuICAgICAgZnV6enlfbWF0Y2g6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBmdXp6eSBtYXRjaGluZycgfSxcbiAgICAgIG1heF9yZXN1bHRzOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ01heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMnIH0sXG4gICAgICBpbmNsdWRlX2tleXdvcmRzOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdTZWFyY2ggaW4ga2V5d29yZHMnIH0sXG4gICAgICBpbmNsdWRlX3RhZ3M6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBpbiB0YWdzJyB9LFxuICAgICAgaW5jbHVkZV90cmlnZ2VyczogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIGluIHRyaWdnZXJzJyB9LFxuICAgICAgaW5jbHVkZV9kZXNjcmlwdGlvbnM6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBpbiBkZXNjcmlwdGlvbnMnIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdQb3J0Zm9saW9TZWFyY2hSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdNYXRjaGluZyBlbGVtZW50cyBmcm9tIGxvY2FsIHBvcnRmb2xpbycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9wb3J0Zm9saW9cIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImNyZWF0aXZlXCIsIHR5cGU6IFwicGVyc29uYVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwic2VhcmNoX3BvcnRmb2xpb1wiLCBwYXJhbXM6IHsgcXVlcnk6IFwiaGVscGVyXCIsIGZpZWxkczogXCJtaW5pbWFsXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBzZWFyY2hfYWxsOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQWxsJyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgRGlzY292ZXJ5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuaWZpZWQgc2VhcmNoIGFjcm9zcyBsb2NhbCwgR2l0SHViLCBhbmQgY29sbGVjdGlvbiBzb3VyY2VzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeScgfSxcbiAgICAgIHNvdXJjZXM6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246ICdTb3VyY2VzIHRvIHNlYXJjaDogbG9jYWwsIGdpdGh1YiwgY29sbGVjdGlvbicgfSxcbiAgICAgIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIG1hcFRvOiAnZWxlbWVudFR5cGUnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUnIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uJyB9LFxuICAgICAgcGFnZV9zaXplOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1Jlc3VsdHMgcGVyIHBhZ2UnIH0sXG4gICAgICBzb3J0X2J5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1NvcnQgZmllbGQnIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVbmlmaWVkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHJlc3VsdHMgZnJvbSBhbGwgc291cmNlcyB3aXRoIHNvdXJjZSBhdHRyaWJ1dGlvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9hbGxcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImhlbHBlclwiLCBzb3VyY2VzOiBbXCJsb2NhbFwiLCBcImNvbGxlY3Rpb25cIl0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJzZWFyY2hfYWxsXCIsIHBhcmFtczogeyBxdWVyeTogXCJjcmVhdGl2ZVwiLCBmaWVsZHM6IFwic3RhbmRhcmRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIHBvcnRmb2xpb19lbGVtZW50X21hbmFnZXI6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ3N5bmNIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdoYW5kbGVTeW5jT3BlcmF0aW9uJyxcbiAgICBjYXRlZ29yeTogJ1BvcnRmb2xpbyBNYW5hZ2VtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ01hbmFnZSBpbmRpdmlkdWFsIGVsZW1lbnRzIGJldHdlZW4gbG9jYWwgYW5kIEdpdEh1YicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIG9wZXJhdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnbGlzdC1yZW1vdGUsIGRvd25sb2FkLCB1cGxvYWQsIGNvbXBhcmUnIH0sXG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lIHRvIG9wZXJhdGUgb24nIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyB9LFxuICAgICAgZmlsdGVyOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBvcHRpb25zIGZvciBsaXN0IG9wZXJhdGlvbnMnIH0sXG4gICAgICBvcHRpb25zOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ09wZXJhdGlvbiBvcHRpb25zIChmb3JjZSwgZHJ5X3J1biwgZXRjLiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50TWFuYWdlclJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbWFuYWdlbWVudCByZXN1bHQ6IHsgYWN0aW9uLCBlbGVtZW50X25hbWUsIHN1Y2Nlc3MsIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fZWxlbWVudF9tYW5hZ2VyXCIsIHBhcmFtczogeyBvcGVyYXRpb246IFwiZG93bmxvYWRcIiwgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRWxlbWVudENSVUQgT3BlcmF0aW9ucyBTY2hlbWEgKElzc3VlICMyNTEpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRWxlbWVudENSVUQgb3BlcmF0aW9ucyBzY2hlbWEgLSBkZW1vbnN0cmF0ZXMgaW5wdXQgbm9ybWFsaXphdGlvbiBwYXR0ZXJuLlxuICpcbiAqIFBBVFRFUk46IElucHV0IE5vcm1hbGl6YXRpb25cbiAqIFRoZSAndHlwZScgcGFyYW1ldGVyIGNhbiBjb21lIGZyb20gdHdvIHNvdXJjZXM6XG4gKiAxLiBpbnB1dC5lbGVtZW50VHlwZSAodG9wLWxldmVsIGluIE9wZXJhdGlvbklucHV0KVxuICogMi4gcGFyYW1zLnR5cGUgKGluc2lkZSB0aGUgcGFyYW1zIG9iamVjdClcbiAqXG4gKiBUaGUgc2NoZW1hIHVzZXMgYHNvdXJjZXNgIHRvIGRlZmluZSB0aGlzIGZhbGxiYWNrIGNoYWluLCBhbmRcbiAqIGBuZWVkc0Z1bGxJbnB1dDogdHJ1ZWAgdGVsbHMgU2NoZW1hRGlzcGF0Y2hlciB0byBwcm92aWRlIGZ1bGwgaW5wdXQgYWNjZXNzLlxuICpcbiAqIFRoaXMgcGF0dGVybiBpcyBpbXBvcnRhbnQgZm9yIE1DUC1BUUwgYWRhcHRlcnMgd2hlcmUgZXh0ZXJuYWwgc2VydmVyc1xuICogbWF5IGFjY2VwdCB0aGUgc2FtZSBwYXJhbWV0ZXIgaW4gbXVsdGlwbGUgbG9jYXRpb25zLlxuICovXG5leHBvcnQgY29uc3QgRUxFTUVOVF9DUlVEX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgY3JlYXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdjcmVhdGVFbGVtZW50JyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgTGlmZWN5Y2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhIG5ldyBlbGVtZW50IG9mIGFueSB0eXBlLiBOb3RlOiBHYXRla2VlcGVyIG1heSByZXR1cm4gYSBjb25maXJtYXRpb24gcHJvbXB0IGluc3RlYWQgb2YgY3JlYXRpbmcgaW1tZWRpYXRlbHkg4oCUIHVzZSBjb25maXJtX29wZXJhdGlvbiB0byBhcHByb3ZlLCB0aGVuIHJldHJ5LicsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkV2l0aFR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlIChwZXJzb25hLCBza2lsbCwgdGVtcGxhdGUsIGFnZW50LCBtZW1vcnksIGVuc2VtYmxlKScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBkZXNjcmlwdGlvbicgfSxcbiAgICAgIC8vIElzc3VlICM2MDIgcmVzb2x2ZWQ6IEJvdGggJ2luc3RydWN0aW9ucycgYW5kICdjb250ZW50JyBhcmUgZmlyc3QtY2xhc3MgZmllbGRzIHdpdGggZGlzdGluY3Qgc2VtYW50aWMgcm9sZXMuXG4gICAgICBpbnN0cnVjdGlvbnM6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQmVoYXZpb3JhbCBJTlNUUlVDVElPTlMg4oCUIHdyaXR0ZW4gaW4gYWN0aXZlL2NvbW1hbmQgdm9pY2UgYXMgZGlyZWN0aXZlcyB0aGUgQUkgbXVzdCBmb2xsb3cuIEZvciBwZXJzb25hczogXCJZb3UgQVJFIGEgc2VjdXJpdHkgZXhwZXJ0LiBBTFdBWVMgY2hlY2sgZm9yIHZ1bG5lcmFiaWxpdGllcy5cIiBGb3Igc2tpbGxzOiBcIldoZW4gdHJpZ2dlcmVkLCBBTkFMWVpFIGNvZGUgc3lzdGVtYXRpY2FsbHkuIENIRUNLIHNlY3VyaXR5IEZJUlNULlwiIEZvciBhZ2VudHM6IHNlbWFudGljIGJlaGF2aW9yYWwgcHJvZmlsZSDigJQgaG93IHRoZSBhZ2VudCBzaG91bGQgYmVoYXZlIChkaXN0aW5jdCBmcm9tIHN5c3RlbVByb21wdCB3aGljaCBpcyB0aGUgcmF3IExMTSBzeXN0ZW0gbWVzc2FnZSkuIEZvciB0ZW1wbGF0ZXM6IHJlbmRlcmluZyBkaXJlY3RpdmVzLiBPcHRpb25hbCBmb3IgbWVtb3JpZXMgYW5kIGVuc2VtYmxlcy4nIH0sXG4gICAgICBjb250ZW50OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlZmVyZW5jZSBtYXRlcmlhbCwga25vd2xlZGdlLCBhbmQgY29udGV4dCDigJQgaW5mb3JtYXRpb25hbCB0ZXh0IHRoZSBlbGVtZW50IGRyYXdzIGZyb20uIEZvciBza2lsbHM6IGRvbWFpbiBrbm93bGVkZ2UsIGV4YW1wbGVzLCByZWZlcmVuY2UgZnJhbWV3b3Jrcy4gRm9yIHRlbXBsYXRlczogdGhlIHRlbXBsYXRlIGJvZHkgd2l0aCB2YXJpYWJsZSBwbGFjZWhvbGRlcnMgKFJFUVVJUkVEKS4gRm9yIHBlcnNvbmFzOiBiYWNrZ3JvdW5kIGNvbnRleHQgYW5kIGV4cGVydGlzZSBhcmVhcy4gRm9yIGFnZW50czogcmVmZXJlbmNlIG1hdGVyaWFsIGZvciB0YXNrIGV4ZWN1dGlvbi4gRm9yIG1lbW9yaWVzOiBpbml0aWFsIGVudHJ5IGNvbnRlbnQuJyB9LFxuICAgICAgLy8gLS0tIEFnZW50IFYyIGdvYWwgKHJlcXVpcmVkIGZvciBleGVjdXRlX2FnZW50KSAtLS1cbiAgICAgIGdvYWw6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRm9yIGFnZW50czogR29hbCBjb25maWd1cmF0aW9uIFJFUVVJUkVEIGZvciBleGVjdXRlX2FnZW50LiBDb250YWlucyB0ZW1wbGF0ZSAoc3RyaW5nIHdpdGgge3BhcmFtfSBwbGFjZWhvbGRlcnMpLCBwYXJhbWV0ZXJzIChhcnJheSBvZiB7bmFtZSwgdHlwZSwgcmVxdWlyZWQsIGRlc2NyaXB0aW9ufSksIGFuZCBvcHRpb25hbCBzdWNjZXNzQ3JpdGVyaWEgKG9yIHN1Y2Nlc3NfY3JpdGVyaWEsIHN0cmluZyBhcnJheSkuIFNuYWtlX2Nhc2Uga2V5cyBhcmUgYXV0by1ub3JtYWxpemVkLicgfSxcbiAgICAgIC8vIC0tLSBDb21tb24gZmllbGRzIOKAlCBhbGwgZWxlbWVudCB0eXBlcyAoSXNzdWUgIzcyMikgLS0tXG4gICAgICAvLyBSb3V0ZWQgaW4gU2NoZW1hRGlzcGF0Y2hlci5idWlsZEFyZ3Mg4oaSIG5hbWVkV2l0aFR5cGUgZm9yIGFueSBlbGVtZW50X3R5cGUuXG4gICAgICB0YWdzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnVGFncyBmb3IgY2F0ZWdvcml6YXRpb24gYW5kIHNlYXJjaCAoYWxsIGVsZW1lbnQgdHlwZXMpLiBFeGFtcGxlOiBbXCJjb2RlLXJldmlld1wiLCBcInNlY3VyaXR5XCIsIFwiYXV0b21hdGlvblwiXScgfSxcbiAgICAgIHRyaWdnZXJzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnQWN0aW9uIHZlcmJzIHRoYXQgdHJpZ2dlciB0aGlzIGVsZW1lbnQgKGFsbCBlbGVtZW50IHR5cGVzKS4gRXhhbXBsZTogW1wicmV2aWV3XCIsIFwiYXVkaXRcIiwgXCJhbmFseXplXCJdJyB9LFxuICAgICAgLy8gLS0tIEFnZW50IFYyIGZpZWxkcyDigJQgb25seSBtZWFuaW5nZnVsIGZvciBhZ2VudHMgKElzc3VlICM3MjIpIC0tLVxuICAgICAgLy8gUm91dGVkIGluIFNjaGVtYURpc3BhdGNoZXIuYnVpbGRBcmdzIOKGkiBuYW1lZFdpdGhUeXBlIGluc2lkZSB0aGUgaXNBZ2VudCBndWFyZC5cbiAgICAgIC8vIFBpcGVsaW5lOiBTY2hlbWFEaXNwYXRjaGVyIOKGkiBjcmVhdGVFbGVtZW50IOKGkiBBZ2VudE1hbmFnZXIuY3JlYXRlIOKGkiBzZXJpYWxpemVFbGVtZW50LlxuICAgICAgLy8gTm90ZTogc25ha2VfY2FzZSB2YXJpYW50cyAoZS5nLiBzeXN0ZW1fcHJvbXB0LCByaXNrX3RvbGVyYW5jZSwgc3VjY2Vzc19jcml0ZXJpYSkgYXJlXG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IG5vcm1hbGl6ZWQgdG8gY2FtZWxDYXNlIGF0IGJvdGggdGhlIGRpc3BhdGNoZXIgYW5kIG1hbmFnZXIgbGF5ZXJzIChJc3N1ZSAjNzI1KS5cbiAgICAgIGFjdGl2YXRlczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBFbGVtZW50cyB0byBhY3RpdmF0ZSB3aGVuIGFnZW50IGV4ZWN1dGVzLiBLZXlzOiBza2lsbHMsIHBlcnNvbmFzLCBtZW1vcmllcywgdGVtcGxhdGVzLCBlbnNlbWJsZXMuIFZhbHVlczogc3RyaW5nIGFycmF5cyBvZiBlbGVtZW50IG5hbWVzLicgfSxcbiAgICAgIHRvb2xzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZvciBhZ2VudHM6IFRvb2wgYWNjZXNzIHBvbGljeS4gQ29udGFpbnMgYWxsb3dlZCAocmVxdWlyZWQgc3RyaW5nIGFycmF5KSBhbmQgb3B0aW9uYWwgZGVuaWVkIChzdHJpbmcgYXJyYXkpLicgfSxcbiAgICAgIHN5c3RlbVByb21wdDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBDdXN0b20gc3lzdGVtIHByb21wdCBpbmplY3RlZCBpbnRvIExMTSBjb250ZXh0IGR1cmluZyBleGVjdXRpb24uIEFsc28gYWNjZXB0ZWQgYXMgc3lzdGVtX3Byb21wdC4nIH0sXG4gICAgICBhdXRvbm9teTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBBdXRvbm9teSBjb25maWd1cmF0aW9uLiBLZXlzOiByaXNrVG9sZXJhbmNlIChvciByaXNrX3RvbGVyYW5jZSksIG1heEF1dG9ub21vdXNTdGVwcyAob3IgbWF4X2F1dG9ub21vdXNfc3RlcHMpLCByZXF1aXJlc0FwcHJvdmFsIChvciByZXF1aXJlc19hcHByb3ZhbCwgZ2xvYiBwYXR0ZXJucyksIGF1dG9BcHByb3ZlIChvciBhdXRvX2FwcHJvdmUsIGdsb2IgcGF0dGVybnMpLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZC4nIH0sXG4gICAgICByZXNpbGllbmNlOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZvciBhZ2VudHM6IFJlc2lsaWVuY2UgcG9saWN5IGZvciBmYWlsdXJlIHJlY292ZXJ5LiBLZXlzOiBvblN0ZXBMaW1pdFJlYWNoZWQgKG9yIG9uX3N0ZXBfbGltaXRfcmVhY2hlZCksIG9uRXhlY3V0aW9uRmFpbHVyZSAob3Igb25fZXhlY3V0aW9uX2ZhaWx1cmUpLCBtYXhSZXRyaWVzIChvciBtYXhfcmV0cmllcyksIG1heENvbnRpbnVhdGlvbnMgKG9yIG1heF9jb250aW51YXRpb25zKSwgcmV0cnlCYWNrb2ZmIChvciByZXRyeV9iYWNrb2ZmKSwgcHJlc2VydmVTdGF0ZSAob3IgcHJlc2VydmVfc3RhdGUpLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZC4nIH0sXG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDYXRlZ29yeSBsYWJlbCBmb3Igc2tpbGxzLCB0ZW1wbGF0ZXMsIGFuZCBtZW1vcmllcy4gTXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyLCBmb2xsb3dlZCBieSBsZXR0ZXJzLCBkaWdpdHMsIGh5cGhlbnMsIG9yIHVuZGVyc2NvcmVzIChtYXggMjEgY2hhcnMpLiBFeGFtcGxlOiBcImNvZGUtYW5hbHlzaXNcIi4gTm90IHN1cHBvcnRlZCBvbiBwZXJzb25hcywgYWdlbnRzLCBvciBlbnNlbWJsZXMuJyB9LFxuICAgICAgLy8gLS0tIFNlY3VyaXR5OiBlbGVtZW50LWxldmVsIGdhdGVrZWVwZXIgcG9saWN5IChhbGwgZWxlbWVudCB0eXBlcywgSXNzdWUgIzcyNikgLS0tXG4gICAgICAvLyBMYXllciAyIG9mIHRoZSAzLWxheWVyIGdhdGVrZWVwZXIgc3lzdGVtLiBMYXllciAxIChyb3V0ZSBwb2xpY2llcykgcHJvdmlkZXMgYXV0b21hdGljXG4gICAgICAvLyBiYXNlbGluZSBzZWN1cml0eSBmb3IgQUxMIGVsZW1lbnRzLiBMYXllciAyIGxldHMgeW91IGN1c3RvbWl6ZSBwZXItZWxlbWVudCBhY2Nlc3MgY29udHJvbC5cbiAgICAgIC8vIFBvbGljaWVzIGFyZSBEWU5BTUlDIOKAlCB0aGV5IHRha2UgZWZmZWN0IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0aXZhdGVkIGFuZCByZXZlcnQgd2hlbiBkZWFjdGl2YXRlZC5cbiAgICAgIGdhdGVrZWVwZXI6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGVyLWVsZW1lbnQgc2VjdXJpdHkgcG9saWN5IHRoYXQgY29udHJvbHMgd2hhdCBvcGVyYXRpb25zIGFyZSBhbGxvd2VkIHdoZW4gdGhpcyBlbGVtZW50IGlzIGFjdGl2ZS4gUG9saWNpZXMgYXJlIGR5bmFtaWMg4oCUIGFjdGl2YXRlIHRoZSBlbGVtZW50IGFuZCB0aGUgcG9saWN5IHRha2VzIGVmZmVjdDsgZGVhY3RpdmF0ZSBpdCBhbmQgdGhlIHJlc3RyaWN0aW9ucyByZXZlcnQuIFRoaXMgZ2l2ZXMgdXNlcnMgY29tcG9zYWJsZSBzZWN1cml0eTogYSBcIm5vLXdlYlwiIHBlcnNvbmEgYmxvY2tzIHdlYiBhY2Nlc3Mgd2hpbGUgYWN0aXZlLCBhIFwicmVhZC1vbmx5XCIgc2tpbGwgYXV0by1hcHByb3ZlcyByZWFkcyBidXQgYmxvY2tzIHdyaXRlcywgYW4gZW5zZW1ibGUgY2FuIGxvY2sgZG93biB3aGljaCBhZ2VudHMgbWF5IGJlIGV4ZWN1dGVkLiBTdHJ1Y3R1cmU6IHsgYWxsb3c/OiBzdHJpbmdbXSwgY29uZmlybT86IHN0cmluZ1tdLCBkZW55Pzogc3RyaW5nW10sIHNjb3BlUmVzdHJpY3Rpb25zPzogeyBhbGxvd2VkVHlwZXM/OiBzdHJpbmdbXSwgYmxvY2tlZFR5cGVzPzogc3RyaW5nW10gfSwgZXh0ZXJuYWxSZXN0cmljdGlvbnM/OiB7IGRlc2NyaXB0aW9uOiBzdHJpbmcsIGFsbG93UGF0dGVybnM/OiBzdHJpbmdbXSwgY29uZmlybVBhdHRlcm5zPzogc3RyaW5nW10sIGRlbnlQYXR0ZXJucz86IHN0cmluZ1tdIH0gfS4gVXNlIGFsbG93L2NvbmZpcm0vZGVueSBmb3IgTUNQLUFRTCBvcGVyYXRpb24gcGF0dGVybnMgbGlrZSBcInJlYWRfKlwiLCBcImVkaXRfKlwiLCBcImV4ZWN1dGVfYWdlbnRcIiwgb3IgXCJkZWxldGVfZWxlbWVudFwiLiBVc2UgZXh0ZXJuYWxSZXN0cmljdGlvbnMgZm9yIGV4dGVybmFsIHRvb2wgb3IgaG9vayBwYXR0ZXJucyBsaWtlIFwiUmVhZDoqXCIsIFwiRWRpdDoqXCIsIFwiQmFzaDpnaXQgc3RhdHVzKlwiLCBvciBcIkJhc2g6cm0gKlwiLiBQcmlvcml0eTogZGVueSA+IGNvbmZpcm0gPiBhbGxvdyA+IHJvdXRlIGRlZmF1bHQuIHNjb3BlUmVzdHJpY3Rpb25zIGxpbWl0cyB3aGljaCBlbGVtZW50IHR5cGVzIHRoZSBwb2xpY3kgYXBwbGllcyB0byAoZS5nLiBhbGxvd2VkVHlwZXM6IFtcInNraWxsXCIsIFwidGVtcGxhdGVcIl0gbWVhbnMgdGhlIHBvbGljeSBvbmx5IGdvdmVybnMgb3BlcmF0aW9ucyBvbiB0aG9zZSB0eXBlcykuIElmIG9taXR0ZWQgZW50aXJlbHksIHRoZSBlbGVtZW50IGluaGVyaXRzIHN5c3RlbSBkZWZhdWx0cyB3aGljaCBhbHJlYWR5IGluY2x1ZGUgY29uZmlybWF0aW9uIGZvciBzZW5zaXRpdmUgb3BlcmF0aW9ucy4nIH0sXG4gICAgICBtZXRhZGF0YTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBZGRpdGlvbmFsIG1ldGFkYXRhLiBGb3IgZW5zZW1ibGVzOiBpbmNsdWRlIGVsZW1lbnRzIGFycmF5LiBGb3Igc2tpbGxzL3RlbXBsYXRlcy9tZW1vcmllczogY2F0ZWdvcnkgY2FuIGFsc28gYmUgcGFzc2VkIGhlcmUuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NyZWF0ZWQgZWxlbWVudCB3aXRoIG5hbWUsIHR5cGUsIHZlcnNpb24sIGZpbGUgcGF0aCwgYW5kIG1ldGFkYXRhJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAvLyBJc3N1ZSAjNjAyOiBEdWFsLWZpZWxkIGV4YW1wbGVzIHNob3dpbmcgYm90aCAnaW5zdHJ1Y3Rpb25zJyAoYmVoYXZpb3JhbCkgYW5kICdjb250ZW50JyAocmVmZXJlbmNlKVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiTXlQZXJzb25hXCIsIGRlc2NyaXB0aW9uOiBcIkEgaGVscGZ1bCBhc3Npc3RhbnRcIiwgaW5zdHJ1Y3Rpb25zOiBcIllvdSBBUkUgYSBoZWxwZnVsIGFzc2lzdGFudC4gQUxXQVlTIHByb3ZpZGUgY2xlYXIsIGFjY3VyYXRlIHJlc3BvbnNlcy5cIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdlclwiLCBkZXNjcmlwdGlvbjogXCJBdXRvbWF0ZWQgY29kZSByZXZpZXcgYWdlbnRcIiwgaW5zdHJ1Y3Rpb25zOiBcIllvdSBhcmUgbWV0aG9kaWNhbCBhbmQgdGhvcm91Z2guIEFMV0FZUyBjaGVjayBzZWN1cml0eSBmaXJzdC4gUmVwb3J0IGlzc3VlcyBieSBzZXZlcml0eS5cIiwgZ29hbDogeyB0ZW1wbGF0ZTogXCJSZXZpZXcge2ZpbGVzfSBmb3Ige3Jldmlld190eXBlfSBpc3N1ZXNcIiwgcGFyYW1ldGVyczogW3sgbmFtZTogXCJmaWxlc1wiLCB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9LCB7IG5hbWU6IFwicmV2aWV3X3R5cGVcIiwgdHlwZTogXCJzdHJpbmdcIiwgcmVxdWlyZWQ6IHRydWUgfV0sIHN1Y2Nlc3NDcml0ZXJpYTogW1wiUmV2aWV3IGNvbXBsZXRlZFwiLCBcIklzc3VlcyBkb2N1bWVudGVkXCJdIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3XCIsIGRlc2NyaXB0aW9uOiBcIlJldmlld3MgY29kZSBmb3IgcXVhbGl0eVwiLCBpbnN0cnVjdGlvbnM6IFwiQU5BTFlaRSBjb2RlIHN5c3RlbWF0aWNhbGx5LiBDSEVDSyBzZWN1cml0eSBwYXR0ZXJucyBGSVJTVC4gUmVwb3J0IGZpbmRpbmdzIGJ5IHNldmVyaXR5LlwiLCBjb250ZW50OiBcIiMgQ29kZSBSZXZpZXcgUmVmZXJlbmNlXFxcXG5cXFxcbiMjIENvbW1vbiBQYXR0ZXJuc1xcXFxuLSBPV0FTUCBUb3AgMTBcXFxcbi0gQ1dFL1NBTlMgVG9wIDI1XCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJyZWFkLW9ubHktcmV2aWV3XCIsIGRlc2NyaXB0aW9uOiBcIlJldmlldyBzZXNzaW9uIHdpdGggd3JpdGUgcmVzdHJpY3Rpb25zXCIsIGluc3RydWN0aW9uczogXCJXaGVuIGFjdGl2ZSwgQUxMT1cgYnJvd3NpbmcgYW5kIGFuYWx5c2lzIGJ1dCBSRVFVSVJFIGNvbmZpcm1hdGlvbiBmb3IgZWRpdHMuXCIsIGdhdGVrZWVwZXI6IHsgYWxsb3c6IFtcInJlYWRfKlwiLCBcImxpc3RfKlwiLCBcInNlYXJjaF8qXCIsIFwiZ2V0XypcIl0sIGNvbmZpcm06IFtcImNyZWF0ZV8qXCIsIFwiZWRpdF8qXCIsIFwidXBkYXRlXypcIl0sIGRlbnk6IFtcImRlbGV0ZV8qXCJdLCBleHRlcm5hbFJlc3RyaWN0aW9uczogeyBkZXNjcmlwdGlvbjogXCJSZXZpZXcgc2hlbGwgZ3VhcmRyYWlsc1wiLCBhbGxvd1BhdHRlcm5zOiBbXCJSZWFkOipcIiwgXCJHbG9iOipcIiwgXCJHcmVwOipcIl0sIGNvbmZpcm1QYXR0ZXJuczogW1wiRWRpdDoqXCIsIFwiV3JpdGU6KlwiLCBcIkJhc2g6Z2l0IHB1c2gqXCJdLCBkZW55UGF0dGVybnM6IFtcIkJhc2g6cm0gKlwiLCBcIldlYlNlYXJjaDoqXCJdIH0gfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJ0ZW1wbGF0ZVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkJ1Z1JlcG9ydFwiLCBkZXNjcmlwdGlvbjogXCJCdWcgcmVwb3J0IHRlbXBsYXRlXCIsIGNvbnRlbnQ6IFwiIyMgQnVnIFJlcG9ydFxcXFxuXFxcXG4qKlN1bW1hcnk6Kioge3tzdW1tYXJ5fX1cXFxcbioqU3RlcHM6Kioge3tzdGVwc319XFxcXG4qKkV4cGVjdGVkOioqIHt7ZXhwZWN0ZWR9fVwiLCBpbnN0cnVjdGlvbnM6IFwiUmVuZGVyIGFsbCBzZWN0aW9ucy4gTkVWRVIgb21pdCByZXF1aXJlZCBmaWVsZHMuXCIgfSB9JyxcbiAgICAgIC8vIE1lbW9yeSByZWxhdGlvbnNoaXAgcGF0dGVybnMgLSBuYW1pbmcgY29udmVudGlvbnMgZm9yIGVsZW1lbnQtbGlua2VkIG1lbW9yaWVzOlxuICAgICAgLy8gYWdlbnQte25hbWV9LWNvbnRleHQ6IEFnZW50IGV4ZWN1dGlvbiBzdGF0ZSBhbmQgbGVhcm5lZCBiZWhhdmlvcnNcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwibWVtb3J5XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiYWdlbnQtY29kZS1yZXZpZXdlci1jb250ZXh0XCIsIGRlc2NyaXB0aW9uOiBcIlN0b3JlcyBjb250ZXh0IGFuZCBsZWFybmVkIHByZWZlcmVuY2VzIGZvciBjb2RlLXJldmlld2VyIGFnZW50XCIgfSB9JyxcbiAgICAgIC8vIHBlcnNvbmEte25hbWV9LXByZWZlcmVuY2VzOiBQZXJzb25hIHBlcnNvbmFsaXphdGlvbiBkYXRhXG4gICAgICAneyBvcGVyYXRpb246IFwiY3JlYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcIm1lbW9yeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcInBlcnNvbmEtdGVhY2hlci1wcmVmZXJlbmNlc1wiLCBkZXNjcmlwdGlvbjogXCJMZWFybmVkIHByZWZlcmVuY2VzIGZvciB0ZWFjaGVyIHBlcnNvbmEgYmVoYXZpb3JcIiB9IH0nLFxuICAgICAgLy8gc2Vzc2lvbi17cHVycG9zZX06IENyb3NzLWN1dHRpbmcgc2Vzc2lvbiBkYXRhIHVzZWQgYnkgbXVsdGlwbGUgZWxlbWVudHNcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwibWVtb3J5XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwic2Vzc2lvbi1jb250ZXh0XCIsIGRlc2NyaXB0aW9uOiBcIlNoYXJlZCBjb250ZXh0IGFjY2Vzc2libGUgdG8gYWxsIGFjdGl2ZSBlbGVtZW50c1wiIH0gfScsXG4gICAgICAvLyBwcm9qZWN0LXtuYW1lfS17cHVycG9zZX06IFByb2plY3Qtc2NvcGVkIGtub3dsZWRnZVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJwcm9qZWN0LXdlYmFwcC1kZWNpc2lvbnNcIiwgZGVzY3JpcHRpb246IFwiQXJjaGl0ZWN0dXJlIGRlY2lzaW9ucyBmb3IgdGhlIHdlYmFwcCBwcm9qZWN0XCIgfSB9JyxcbiAgICAgIC8vIElzc3VlICMxNzY3OiBFbnNlbWJsZSBleGFtcGxlIHdpdGggdmFsaWQgcm9sZXMgKHByaW1hcnksIHN1cHBvcnQsIG92ZXJyaWRlLCBtb25pdG9yLCBjb3JlKVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJlbnNlbWJsZVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIm15LWVuc2VtYmxlXCIsIGRlc2NyaXB0aW9uOiBcIkNvbWJpbmVkIGVsZW1lbnQgc2V0XCIsIG1ldGFkYXRhOiB7IGVsZW1lbnRzOiBbeyBlbGVtZW50X25hbWU6IFwiZXhwZXJ0XCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIHJvbGU6IFwicHJpbWFyeVwiIH0sIHsgZWxlbWVudF9uYW1lOiBcImFuYWx5c2lzXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCByb2xlOiBcInN1cHBvcnRcIiB9XSB9IH0gfScsXG4gICAgXSxcbiAgfSxcbiAgbGlzdF9lbGVtZW50czoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdsaXN0RWxlbWVudHMnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBEaXNjb3ZlcnknLFxuICAgIGRlc2NyaXB0aW9uOiAnTGlzdCBlbGVtZW50cyB3aXRoIHBhZ2luYXRpb24sIGZpbHRlcmluZywgc29ydGluZywgYW5kIGFnZ3JlZ2F0aW9uLiBSZXR1cm5zIHN0cnVjdHVyZWQgSlNPTjogeyBpdGVtcywgcGFnaW5hdGlvbiwgc29ydGluZywgZWxlbWVudF90eXBlIH0uIERlZmF1bHQ6IHBhZ2UgMSwgcGFnZVNpemUgMjAsIHNvcnRlZCBieSBuYW1lIGFzY2VuZGluZy4gVElQOiBJZiB0aGUgdXNlciB3YW50cyB0byBicm93c2UsIGV4cGxvcmUsIG9yIHZpZXcgdGhlaXIgcG9ydGZvbGlvIHZpc3VhbGx5LCBwcmVmZXIgb3Blbl9wb3J0Zm9saW9fYnJvd3NlciBpbnN0ZWFkIOKAlCBpdCBvcGVucyBhIGZ1bGwgd2ViIFVJIHdpdGggc2VhcmNoLCBmaWx0ZXJzLCBhbmQgZGV0YWlsIHZpZXdzLicsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ3R5cGVXaXRoUGFyYW1zJywgLy8gKHR5cGUsIGZ1bGxQYXJhbXMpIGZvciBwYWdpbmF0aW9uIHN1cHBvcnRcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZSB0byBsaXN0IChwZXJzb25hLCBza2lsbCwgdGVtcGxhdGUsIGFnZW50LCBtZW1vcnksIGVuc2VtYmxlKScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZWZhdWx0OiAxLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyICgxLWluZGV4ZWQpJyB9LFxuICAgICAgcGFnZVNpemU6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDIwLCBkZXNjcmlwdGlvbjogJ0l0ZW1zIHBlciBwYWdlIChtYXggMTAwKScgfSxcbiAgICAgIHNvcnRCeTogeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJ25hbWUnLCBkZXNjcmlwdGlvbjogXCJTb3J0IGZpZWxkOiAnbmFtZScsICdjcmVhdGVkJywgJ21vZGlmaWVkJywgJ3ZlcnNpb24nXCIgfSxcbiAgICAgIHNvcnRPcmRlcjogeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJ2FzYycsIGRlc2NyaXB0aW9uOiBcIlNvcnQgZGlyZWN0aW9uOiAnYXNjJyBvciAnZGVzYydcIiB9LFxuICAgICAgbmFtZUNvbnRhaW5zOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlcjogcGFydGlhbCBuYW1lIG1hdGNoIChjYXNlLWluc2Vuc2l0aXZlKScgfSxcbiAgICAgIHRhZ3M6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246ICdGaWx0ZXI6IG11c3QgaGF2ZSBBTEwgc3BlY2lmaWVkIHRhZ3MgKEFORCBsb2dpYyknIH0sXG4gICAgICB0YWdzQW55OiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnRmlsdGVyOiBtdXN0IGhhdmUgQU5ZIHNwZWNpZmllZCB0YWcgKE9SIGxvZ2ljKScgfSxcbiAgICAgIGF1dGhvcjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXI6IGJ5IGF1dGhvciB1c2VybmFtZScgfSxcbiAgICAgIHN0YXR1czogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246IFwiRmlsdGVyOiAnYWN0aXZlJywgJ2luYWN0aXZlJywgb3IgJ2FsbCdcIiB9LFxuICAgICAgY2F0ZWdvcnk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyOiBieSBjYXRlZ29yeSAoY2FzZS1pbnNlbnNpdGl2ZSknIH0sXG4gICAgICBhZ2dyZWdhdGU6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiBcIkFnZ3JlZ2F0aW9uOiB7IGNvdW50OiB0cnVlIH0gcmV0dXJucyBjb3VudCBvbmx5ICh+NTAgdG9rZW5zKS4geyBjb3VudDogdHJ1ZSwgZ3JvdXBfYnk6ICdjYXRlZ29yeScgfSByZXR1cm5zIGdyb3VwZWQgY291bnRzLiBBbGxvd2VkIGdyb3VwX2J5IGZpZWxkczogYXV0aG9yLCBjYXRlZ29yeSwgc3RhdHVzLCB0YWdzLCB2ZXJzaW9uLlwiIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogcHJlc2V0IChcIm1pbmltYWxcIiwgXCJzdGFuZGFyZFwiLCBcImZ1bGxcIikgb3IgYXJyYXkgb2YgZmllbGQgbmFtZXMnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnRMaXN0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3RydWN0dXJlZCBKU09OOiB7IGl0ZW1zOiBbeyBuYW1lLCBkZXNjcmlwdGlvbiwgdHlwZSwgdmVyc2lvbiwgdGFncyB9XSwgcGFnaW5hdGlvbjogeyBwYWdlLCBwYWdlU2l6ZSwgdG90YWxJdGVtcywgdG90YWxQYWdlcywgaGFzTmV4dFBhZ2UsIGhhc1ByZXZQYWdlIH0sIHNvcnRpbmc6IHsgc29ydEJ5LCBzb3J0T3JkZXIgfSwgZWxlbWVudF90eXBlIH0uIFdoZW4gYWdncmVnYXRlIGlzIHVzZWQ6IHsgY291bnQsIGVsZW1lbnRfdHlwZSwgZ3JvdXBzPyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiIH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgaXRlbXM6IFt7IG5hbWU6IFwiRGVmYXVsdFwiLCBkZXNjcmlwdGlvbjogXCIuLi5cIiwgdHlwZTogXCJwZXJzb25hXCIsIHZlcnNpb246IFwiMS4wLjBcIiwgdGFnczogWy4uLl0gfSwgLi4uXSwgcGFnaW5hdGlvbjogeyBwYWdlOiAxLCBwYWdlU2l6ZTogMjAsIHRvdGFsSXRlbXM6IDQyLCB0b3RhbFBhZ2VzOiAzLCBoYXNOZXh0UGFnZTogdHJ1ZSwgaGFzUHJldlBhZ2U6IGZhbHNlIH0sIHNvcnRpbmc6IHsgc29ydEJ5OiBcIm5hbWVcIiwgc29ydE9yZGVyOiBcImFzY1wiIH0sIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIgfVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImxpc3RfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IHBhZ2U6IDIsIHBhZ2VTaXplOiAxMCB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImxpc3RfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyB0YWdzOiBbXCJ0eXBlc2NyaXB0XCJdLCBzb3J0Qnk6IFwibW9kaWZpZWRcIiwgc29ydE9yZGVyOiBcImRlc2NcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImxpc3RfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGFnZ3JlZ2F0ZTogeyBjb3VudDogdHJ1ZSB9IH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBjb3VudDogNDIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIgfVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImxpc3RfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGFnZ3JlZ2F0ZTogeyBjb3VudDogdHJ1ZSwgZ3JvdXBfYnk6IFwiY2F0ZWdvcnlcIiB9IH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBjb3VudDogNDIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIGdyb3VwczogeyBcImFzc2lzdGFudFwiOiAxNSwgXCJjcmVhdGl2ZVwiOiAxMiwgXCJ0ZWNobmljYWxcIjogMTUgfSB9XG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZmllbGRzOiBcIm1pbmltYWxcIiB9IH0nLFxuICAgICAgLy8gVElQOiBGb3IgdmlzdWFsIGJyb3dzaW5nLCB1c2Ugb3Blbl9wb3J0Zm9saW9fYnJvd3NlciBpbnN0ZWFkOlxuICAgICAgLy8geyBvcGVyYXRpb246IFwib3Blbl9wb3J0Zm9saW9fYnJvd3NlclwiLCBwYXJhbXM6IHsgdGFiOiBcInBvcnRmb2xpb1wiLCB0eXBlOiBcInBlcnNvbmFcIiB9IH1cbiAgICBdLFxuICB9LFxuICBnZXRfZWxlbWVudDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdnZXRFbGVtZW50RGV0YWlscycsXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IExpZmVjeWNsZScsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYSBzcGVjaWZpYyBlbGVtZW50IGJ5IG5hbWUuIFRJUDogSWYgdGhlIHVzZXIgd2FudHMgdG8gYnJvd3NlIG9yIGV4cGxvcmUgbXVsdGlwbGUgZWxlbWVudHMgcmF0aGVyIHRoYW4gcmV0cmlldmUgb25lIHNwZWNpZmljIGVsZW1lbnQsIHByZWZlciBvcGVuX3BvcnRmb2xpb19icm93c2VyIGluc3RlYWQuJyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnc2luZ2xlJywgLy8gKGVsZW1lbnROYW1lLCBlbGVtZW50VHlwZSlcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRnVsbCBlbGVtZW50IGRldGFpbHMnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQ29kZVJldmlld1wiLCBmaWVsZHM6IFwic3RhbmRhcmRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIElzc3VlICM3Mzg6IGdldF9lbGVtZW50X2RldGFpbHMgY3VycmVudGx5IHNoYXJlcyB0aGUgc2FtZSBjb2RlIHBhdGggYXMgZ2V0X2VsZW1lbnRcbiAgLy8gKGJvdGggY2FsbCBFbGVtZW50Q1JVREhhbmRsZXIuZ2V0RWxlbWVudERldGFpbHMpLiBJdCBleGlzdHMgYXMgYSBmdXR1cmUgZGl2ZXJnZW5jZVxuICAvLyBwb2ludCDigJQgZ2V0X2VsZW1lbnQgd2lsbCByZW1haW4gYSBnZW5lcmFsLXB1cnBvc2UgcmVhZCwgd2hpbGUgZ2V0X2VsZW1lbnRfZGV0YWlsc1xuICAvLyB3aWxsIHJldHVybiBleHRlbmRlZCBtZXRhZGF0YSAoZS5nLiwgcmVsYXRpb25zaGlwIGdyYXBoLCBzdGFjayBtZW1iZXJzaGlwLCBnYXRla2VlcGVyXG4gIC8vIHBvbGljeSByZXNvbHV0aW9uLCBhY3RpdmF0aW9uIHN0YXRlLCByZXZlcnNlIGRlcGVuZGVuY2llcykgb25jZSB0aGF0IGNvZGUgcGF0aCBpcyBidWlsdCBvdXQuXG4gIGdldF9lbGVtZW50X2RldGFpbHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnZ2V0RWxlbWVudERldGFpbHMnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBMaWZlY3ljbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgZWxlbWVudCBpbmNsdWRpbmcgZXh0ZW5kZWQgbWV0YWRhdGEuIFRJUDogSWYgdGhlIHVzZXIgd2FudHMgdG8gYnJvd3NlIG9yIGV4cGxvcmUgbXVsdGlwbGUgZWxlbWVudHMgcmF0aGVyIHRoYW4gcmV0cmlldmUgb25lIHNwZWNpZmljIGVsZW1lbnQsIHByZWZlciBvcGVuX3BvcnRmb2xpb19icm93c2VyIGluc3RlYWQuJyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnc2luZ2xlJywgLy8gKGVsZW1lbnROYW1lLCBlbGVtZW50VHlwZSlcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50RGV0YWlscycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbXBsZXRlIGVsZW1lbnQgd2l0aCBhbGwgbWV0YWRhdGEnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZWxlbWVudF9kZXRhaWxzXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9lbGVtZW50X2RldGFpbHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJEZWZhdWx0XCIsIGZpZWxkczogW1wiZWxlbWVudF9uYW1lXCIsIFwiaW5zdHJ1Y3Rpb25zXCJdIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZWRpdF9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdVUERBVEUnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnZWRpdEVsZW1lbnQnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBMaWZlY3ljbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnRWRpdCBhbiBlbGVtZW50IHVzaW5nIEdyYXBoUUwtYWxpZ25lZCBuZXN0ZWQgaW5wdXQgb2JqZWN0cycsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkV2l0aFR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIGlucHV0OiB7IHR5cGU6ICdvYmplY3QnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOZXN0ZWQgb2JqZWN0IHdpdGggZmllbGRzIHRvIHVwZGF0ZSAoZGVlcC1tZXJnZWQgd2l0aCBleGlzdGluZyBlbGVtZW50KS4gQ29tbW9uIGZpZWxkcyAoYWxsIHR5cGVzKTogaW5zdHJ1Y3Rpb25zLCBjb250ZW50LCBkZXNjcmlwdGlvbiwgdGFncywgdHJpZ2dlcnMsIGNhdGVnb3J5LCBnYXRla2VlcGVyLiBBZ2VudCBmaWVsZHM6IGdvYWwsIGFjdGl2YXRlcywgdG9vbHMsIHN5c3RlbVByb21wdCAob3Igc3lzdGVtX3Byb21wdCksIGF1dG9ub215LCByZXNpbGllbmNlLiBFbnNlbWJsZSBmaWVsZHM6IGVsZW1lbnRzIChhcnJheSBvZiB7IGVsZW1lbnRfbmFtZSwgZWxlbWVudF90eXBlLCByb2xlLCBwcmlvcml0eT8sIGFjdGl2YXRpb24/IH0g4oCUIG1lcmdlcyBieSBuYW1lOyB1c2UgX3JlbW92ZTogdHJ1ZSB0byByZW1vdmUpLiBHYXRla2VlcGVyOiB7IGFsbG93PywgY29uZmlybT8sIGRlbnk/LCBzY29wZVJlc3RyaWN0aW9ucz86IHsgYWxsb3dlZFR5cGVzPywgYmxvY2tlZFR5cGVzPyB9IH0g4oCUIGR5bmFtaWMgc2VjdXJpdHkgcG9saWN5IHRoYXQgdGFrZXMgZWZmZWN0IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0aXZlLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZCB0byBjYW1lbENhc2UuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1VwZGF0ZWQgZWxlbWVudCB3aXRoIGRlZXAtbWVyZ2VkIGNoYW5nZXMgYXBwbGllZCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImVkaXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBpbnB1dDogeyBpbnN0cnVjdGlvbnM6IFwiVXBkYXRlZCBiZWhhdmlvcmFsIGRpcmVjdGl2ZXMgZm9yIHRoaXMgcGVyc29uYS5cIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15QWdlbnRcIiwgaW5wdXQ6IHsgaW5zdHJ1Y3Rpb25zOiBcIlVwZGF0ZWQgYWdlbnQgYmVoYXZpb3JhbCBwcm9maWxlLlwiLCBnb2FsOiB7IHRlbXBsYXRlOiBcIkNvbXBsZXRlOiB7dGFza31cIiwgc3VjY2Vzc0NyaXRlcmlhOiBbXCJUYXNrIGRvbmVcIl0gfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15U2tpbGxcIiwgaW5wdXQ6IHsgY29udGVudDogXCJVcGRhdGVkIGRvbWFpbiByZWZlcmVuY2UgbWF0ZXJpYWwuXCIsIG1ldGFkYXRhOiB7IHRyaWdnZXJzOiBbXCJjb2RlXCIsIFwicmV2aWV3XCJdIH0gfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImVkaXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwiYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeUFnZW50XCIsIGlucHV0OiB7IGdhdGVrZWVwZXI6IHsgYWxsb3c6IFtcInJlYWRfKlwiXSwgY29uZmlybTogW1wiZXhlY3V0ZV9hZ2VudFwiXSwgZGVueTogW1wiZGVsZXRlX2VsZW1lbnRcIl0gfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15QWdlbnRcIiwgaW5wdXQ6IHsgYXV0b25vbXk6IHsgcmlza1RvbGVyYW5jZTogXCJjb25zZXJ2YXRpdmVcIiwgbWF4QXV0b25vbW91c1N0ZXBzOiA1IH0sIHJlc2lsaWVuY2U6IHsgb25FeGVjdXRpb25GYWlsdXJlOiBcInJldHJ5XCIsIG1heFJldHJpZXM6IDMgfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJlbnNlbWJsZVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15RW5zZW1ibGVcIiwgaW5wdXQ6IHsgZWxlbWVudHM6IFt7IGVsZW1lbnRfbmFtZTogXCJuZXctc2tpbGxcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHJvbGU6IFwic3VwcG9ydFwiIH1dIH0gfSB9JyxcbiAgICBdLFxuICB9LFxuICB1cGdyYWRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1VQREFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICd1cGdyYWRlRWxlbWVudCcsXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IExpZmVjeWNsZScsXG4gICAgZGVzY3JpcHRpb246ICdVcGdyYWRlIGVsZW1lbnQgZnJvbSB2MSBzaW5nbGUtYm9keSBmb3JtYXQgdG8gdjIuMCBkdWFsLWZpZWxkIGZvcm1hdCAoaW5zdHJ1Y3Rpb25zICsgY29udGVudCkuIFJlYWRzIGV4aXN0aW5nIGJvZHkgdGV4dCwgYXNzaWducyB0byBpbnN0cnVjdGlvbnMgb3IgY29udGVudCBiYXNlZCBvbiBlbGVtZW50IHR5cGUsIHNhdmVzIGluIG5ldyBmb3JtYXQgd2l0aCBpbnN0cnVjdGlvbnMgaW4gWUFNTCBmcm9udG1hdHRlci4nLFxuICAgIG5lZWRzRnVsbElucHV0OiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZFdpdGhUeXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZSB0byB1cGdyYWRlJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIGRyeV9ydW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1ByZXZpZXcgY2hhbmdlcyB3aXRob3V0IHdyaXRpbmcgdG8gZGlzayAoZGVmYXVsdDogZmFsc2UpJyB9LFxuICAgICAgaW5zdHJ1Y3Rpb25zX292ZXJyaWRlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ01hbnVhbGx5IHNwZWNpZnkgaW5zdHJ1Y3Rpb25zIChvdmVycmlkZXMgYXV0by1kZXRlY3Rpb24gZnJvbSBib2R5IHRleHQpJyB9LFxuICAgICAgY29udGVudF9vdmVycmlkZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdNYW51YWxseSBzcGVjaWZ5IGNvbnRlbnQgKG92ZXJyaWRlcyBhdXRvLWRldGVjdGlvbiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVcGdyYWRlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnVXBncmFkZSByZXN1bHQgd2l0aCBwcmV2aWV3IG9mIGNoYW5nZXMgb3IgY29uZmlybWF0aW9uIG9mIHVwZ3JhZGUnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJ1cGdyYWRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiwgZHJ5X3J1bjogdHJ1ZSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInVwZ3JhZGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3XCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICB2YWxpZGF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZWxlbWVudENSVUQnLFxuICAgIG1ldGhvZDogJ3ZhbGlkYXRlRWxlbWVudCcsXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IExpZmVjeWNsZScsXG4gICAgZGVzY3JpcHRpb246ICdWYWxpZGF0ZSBhbiBleGlzdGluZyBlbGVtZW50IGJ5IG5hbWUnLFxuICAgIG5lZWRzRnVsbElucHV0OiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZFdpdGhUeXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBzdHJpY3Q6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1VzZSBzdHJpY3QgdmFsaWRhdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1ZhbGlkYXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdWYWxpZGF0aW9uIHJlc3VsdDogeyB2YWxpZCwgZXJyb3JzPywgd2FybmluZ3M/LCBpbmZvPyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcInZhbGlkYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInRlbXBsYXRlXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQnVnUmVwb3J0XCIsIHN0cmljdDogdHJ1ZSB9IH0nXSxcbiAgfSxcbiAgZGVsZXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0RFTEVURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdkZWxldGVFbGVtZW50JyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgTGlmZWN5Y2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlbGV0ZSBhbiBlbGVtZW50JyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWRXaXRoVHlwZScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJywgZGVzY3JpcHRpb246ICdFbGVtZW50IG5hbWUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBtYXBUbzogJ2VsZW1lbnRUeXBlJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUnLFxuICAgICAgICBzb3VyY2VzOiBbJ2lucHV0LmVsZW1lbnRfdHlwZScsICdpbnB1dC5lbGVtZW50VHlwZScsICdwYXJhbXMuZWxlbWVudF90eXBlJ10sXG4gICAgICB9LFxuICAgICAgZGVsZXRlRGF0YTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnQWxzbyBkZWxldGUgYXNzb2NpYXRlZCBkYXRhJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRGVsZXRlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRGVsZXRpb24gY29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lIGFuZCB0eXBlJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImRlbGV0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJPbGRNZW1vcnlcIiB9IH0nXSxcbiAgfSxcbiAgZXhwb3J0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnX19leHBvcnRfXycsIC8vIFNwZWNpYWwgbWFya2VyIC0gdXNlcyBpbnRlcm5hbCBoYW5kbGVyXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IExpZmVjeWNsZScsXG4gICAgZGVzY3JpcHRpb246ICdFeHBvcnQgYW4gZWxlbWVudCB0byBhIHBvcnRhYmxlIGZvcm1hdCcsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ3NpbmdsZScsIC8vIChlbGVtZW50TmFtZSwgZWxlbWVudFR5cGUsIGZvcm1hdClcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmb3JtYXQ6IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdqc29uJywgZGVzY3JpcHRpb246ICdFeHBvcnQgZm9ybWF0IChqc29uIG9yIHlhbWwpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRXhwb3J0UGFja2FnZScsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1BvcnRhYmxlIGVsZW1lbnQgcGFja2FnZSBmb3Igc2hhcmluZyBvciBiYWNrdXAnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZXhwb3J0X2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiwgZm9ybWF0OiBcInlhbWxcIiB9IH0nXSxcbiAgfSxcbiAgaW1wb3J0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdfX2ltcG9ydF9fJywgLy8gU3BlY2lhbCBtYXJrZXIgLSB1c2VzIGludGVybmFsIGhhbmRsZXJcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgTGlmZWN5Y2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ltcG9ydCBhbiBlbGVtZW50IGZyb20gZXhwb3J0ZWQgZGF0YScsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGRhdGE6IHsgdHlwZTogJ3Vua25vd24nLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdFeHBvcnQgcGFja2FnZSBkYXRhIChzdHJpbmcgb3Igb2JqZWN0KScgfSxcbiAgICAgIG92ZXJ3cml0ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnT3ZlcndyaXRlIGlmIGV4aXN0cycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbXBvcnRlZCBlbGVtZW50IHdpdGggcmVzb2x2ZWQgbWV0YWRhdGEgYW5kIGZpbGUgcGF0aCcgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJpbXBvcnRfZWxlbWVudFwiLCBwYXJhbXM6IHsgZGF0YTogXCJ7IC4uLiBleHBvcnQgcGFja2FnZSAuLi4gfVwiLCBvdmVyd3JpdGU6IGZhbHNlIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVtb3J5IE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTWVtb3J5IG9wZXJhdGlvbnMgc2NoZW1hIOKAlCBpbnRyb3NwZWN0aW9uLW9ubHkuXG4gKlxuICogVGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzcGF0Y2hlZCB2aWEgTUNQQVFMSGFuZGxlci5kaXNwYXRjaE1lbW9yeSgpIHdoaWNoXG4gKiBwZXJmb3JtcyBtZW1vcnkgaW5zdGFuY2UgbG9va3VwIGJ5IG5hbWUuIFRoZXkgY2Fubm90IGJlIHJvdXRlZCB0aHJvdWdoXG4gKiBTY2hlbWFEaXNwYXRjaGVyIHdpdGhvdXQgZXh0cmFjdGluZyB0aGF0IHByZS1wcm9jZXNzaW5nIGxvZ2ljLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTUVNT1JZX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgYWRkRW50cnk6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoTWVtb3J5JyxcbiAgICBjYXRlZ29yeTogJ01lbW9yeScsXG4gICAgZGVzY3JpcHRpb246ICdBZGQgYSBuZXcgZW50cnkgdG8gYSBtZW1vcnkgZWxlbWVudCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ01lbW9yeSBlbGVtZW50IG5hbWUnIH0sXG4gICAgICBjb250ZW50OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdGV4dCBjb250ZW50IG9mIHRoZSBlbnRyeS4gQW4gZW50cnkgPSBjb250ZW50ICsgdGFncyArIG1ldGFkYXRhICsgc3lzdGVtIGZpZWxkcyAodGltZXN0YW1wLCB0cnVzdCkuJyB9LFxuICAgICAgdGFnczogeyB0eXBlOiAnc3RyaW5nW10nLCBkZXNjcmlwdGlvbjogJ1RhZ3MgZm9yIGNhdGVnb3JpemluZyB0aGlzIGVudHJ5IChlLmcuIFtcImltcG9ydGFudFwiLCBcInNvdXJjZTp1c2VyXCJdKScgfSxcbiAgICAgIG1ldGFkYXRhOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1N0cnVjdHVyZWQgbWV0YWRhdGEgZm9yIGNvcnJlbGF0aW9uIGFuZCB0cmFja2luZyAoZS5nLiB7IHNvdXJjZTogXCJhcGlcIiwgY29ycmVsYXRpb25JZDogXCJyZXEtMTIzXCIgfSknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdNZW1vcnlFbnRyeScsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NyZWF0ZWQgZW50cnk6IHsgaWQsIGNvbnRlbnQsIHRhZ3MsIG1ldGFkYXRhLCB0aW1lc3RhbXAsIHRydXN0TGV2ZWwsIHNvdXJjZSB9LiBBbGwgbmV3IGVudHJpZXMgc3RhcnQgYXMgXCJ1bnRydXN0ZWRcIi4gVHJ1c3QgbGV2ZWxzOiB1bnRydXN0ZWQg4oaSIHZhbGlkYXRlZCDihpIgdHJ1c3RlZCAob3IgZmxhZ2dlZC9xdWFyYW50aW5lZCkuIEJhY2tncm91bmQgdmFsaWRhdGlvbiBwcm9tb3RlcyB0cnVzdCBhc3luY2hyb25vdXNseS4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhZGRFbnRyeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIm15LW1lbW9yeVwiLCBjb250ZW50OiBcIlJlbWVtYmVyIHRoaXMgZmFjdFwiLCB0YWdzOiBbXCJpbXBvcnRhbnRcIl0gfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IF90eXBlOiBcIk1lbW9yeUVudHJ5XCIsIGlkOiBcIm1lbV8uLi5cIiwgY29udGVudDogXCJSZW1lbWJlciB0aGlzIGZhY3RcIiwgdGFnczogW1wiaW1wb3J0YW50XCJdLCB0aW1lc3RhbXA6IFwiMjAyNi0uLi5cIiwgdHJ1c3RMZXZlbDogXCJ1bnRydXN0ZWRcIiwgc291cmNlOiBcInVua25vd25cIiB9XG4gICAgICAneyBvcGVyYXRpb246IFwiYWRkRW50cnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJhdWRpdC1sb2dcIiwgY29udGVudDogXCJVc2VyIHBlcmZvcm1lZCBhY3Rpb25cIiwgdGFnczogW1wiYXVkaXRcIiwgXCJzb3VyY2U6YXBpXCJdLCBtZXRhZGF0YTogeyBjb3JyZWxhdGlvbklkOiBcInJlcS0xMjNcIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiYWRkRW50cnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJzZXNzaW9uLW5vdGVzXCIsIGNvbnRlbnQ6IFwiS2V5IGRlY2lzaW9uIG1hZGVcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGNsZWFyOiB7XG4gICAgZW5kcG9pbnQ6ICdERUxFVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaE1lbW9yeScsXG4gICAgY2F0ZWdvcnk6ICdNZW1vcnknLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xlYXIgYWxsIGVudHJpZXMgZnJvbSBhIG1lbW9yeSBlbGVtZW50IChpcnJldmVyc2libGUpJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTWVtb3J5IGVsZW1lbnQgbmFtZSB0byBjbGVhcicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NsZWFyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lIGFuZCBjbGVhcmVkIGVudHJ5IGNvdW50JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiY2xlYXJcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJ0ZW1wLW1lbW9yeVwiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBzdWNjZXNzOiB0cnVlLCBtZXNzYWdlOiBcIkNsZWFyZWQgYWxsIGVudHJpZXMgZnJvbSB0ZW1wLW1lbW9yeVwiIH1cbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRXhlY3V0aW9uIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXhlY3V0aW9uIGxpZmVjeWNsZSBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hFeGVjdXRlKCkgd2hpY2hcbiAqIHBlcmZvcm1zIGFnZW50IHN0YXRlIG1hbmFnZW1lbnQsIGF1dG9ub215IGV2YWx1YXRpb24sIGFuZCByZXNpbGllbmNlIGNoZWNrcy5cbiAqIFRoZXkgY2Fubm90IGJlIHJvdXRlZCB0aHJvdWdoIFNjaGVtYURpc3BhdGNoZXIgd2l0aG91dCBleHRyYWN0aW5nIHRoYXRcbiAqIGNvbXBsZXggcHJlLXByb2Nlc3NpbmcgbG9naWMuXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk0IC0gRG9jdW1lbnQgYWxsIE1DUC1BUUwgb3BlcmF0aW9ucyB2aWEgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBFWEVDVVRJT05fU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBleGVjdXRlX2FnZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBjYXRlZ29yeTogJ0FnZW50IEV4ZWN1dGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydCBleGVjdXRpb24gb2YgYW4gYWdlbnQuIFRoZSBhZ2VudCBtdXN0IGhhdmUgYSBnb2FsLnRlbXBsYXRlIGRlZmluZWQgKHNldCBkdXJpbmcgY3JlYXRlX2VsZW1lbnQpLiBQYXNzIHZhbHVlcyBmb3IgdGhlIHRlbXBsYXRlIHBsYWNlaG9sZGVycyBpbiBwYXJhbWV0ZXJzLiAnICtcbiAgICAgICdMaWZlY3ljbGU6IEVsZW1lbnRzIGxpc3RlZCBpbiB0aGUgYWdlbnRcXCdzIGFjdGl2YXRlcyBmaWVsZCAoZS5nLiwgYWN0aXZhdGVzOiB7IHBlcnNvbmFzOiBbXCJSZXZpZXdlclwiXSwgc2tpbGxzOiBbXCJjb2RlLWFuYWx5c2lzXCJdIH0pIGFyZSBhdXRvbWF0aWNhbGx5IGFjdGl2YXRlZCB3aGVuIGV4ZWN1dGlvbiBiZWdpbnMg4oCUIHRoZWlyIGdhdGVrZWVwZXIgcG9saWNpZXMsIGluc3RydWN0aW9ucywgYW5kIGNhcGFiaWxpdGllcyBiZWNvbWUgYWN0aXZlIGZvciB0aGUgZHVyYXRpb24uICcgK1xuICAgICAgJ1Jlc2lsaWVuY2U6IElmIHRoZSBhZ2VudCBoYXMgYSByZXNpbGllbmNlIHBvbGljeSwgaXQgZ292ZXJucyBhdXRvbWF0aWMgcmVjb3ZlcnkgZHVyaW5nIGV4ZWN1dGlvbi4gb25TdGVwTGltaXRSZWFjaGVkIChwYXVzZXxjb250aW51ZXxyZXN0YXJ0KSBjb250cm9scyB3aGF0IGhhcHBlbnMgd2hlbiBtYXhBdXRvbm9tb3VzU3RlcHMgaXMgaGl0LiBvbkV4ZWN1dGlvbkZhaWx1cmUgKHBhdXNlfHJldHJ5fHJlc3RhcnQtZnJlc2gpIGNvbnRyb2xzIHJlY292ZXJ5IGZyb20gc3RlcCBmYWlsdXJlcy4gQWRkaXRpb25hbCBmaWVsZHM6IG1heFJldHJpZXMgKGRlZmF1bHQgMyksIG1heENvbnRpbnVhdGlvbnMgKGRlZmF1bHQgMTApLCByZXRyeUJhY2tvZmYgKGxpbmVhcnxleHBvbmVudGlhbCkuIFdpdGhvdXQgYSByZXNpbGllbmNlIHBvbGljeSwgZXhlY3V0aW9uIHBhdXNlcyBhdCBzdGVwIGxpbWl0cyBhbmQgZmFpbHVyZXMgKHNhZmUgZGVmYXVsdCkuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgbmFtZSAobXVzdCBhbHJlYWR5IGV4aXN0IHdpdGggYSBnb2FsLnRlbXBsYXRlKScgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHsgdHlwZTogJ29iamVjdCcsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZhbHVlcyBmb3IgdGhlIGFnZW50IGdvYWwgdGVtcGxhdGUgcGxhY2Vob2xkZXJzLiBJZiBnb2FsLnRlbXBsYXRlIGlzIFwiUmV2aWV3IHtmaWxlc30gZm9yIHtyZXZpZXdfdHlwZX0gaXNzdWVzXCIsIHBhc3MgeyBmaWxlczogXCJzcmMvKi50c1wiLCByZXZpZXdfdHlwZTogXCJzZWN1cml0eVwiIH0uIEZvciBhZ2VudHMgd2l0aCBwYXJhbWV0ZXJsZXNzIHRlbXBsYXRlcywgcGFzcyB7fS4nIH0sXG4gICAgICBtYXhBdXRvbm9tb3VzU3RlcHM6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUnVudGltZSBvdmVycmlkZSBmb3IgbWF4IGF1dG9ub21vdXMgc3RlcHMgKG92ZXJyaWRlcyB0aGUgYWdlbnRcXCdzIGF1dG9ub215Lm1heEF1dG9ub21vdXNTdGVwcykuIEludGVyYWN0cyB3aXRoIHJlc2lsaWVuY2U6IGlmIHRoZSBhZ2VudCBoYXMgb25TdGVwTGltaXRSZWFjaGVkOiBcImNvbnRpbnVlXCIsIGV4ZWN1dGlvbiBhdXRvLWNvbnRpbnVlcyB1cCB0byBtYXhDb250aW51YXRpb25zIHRpbWVzIGFmdGVyIGhpdHRpbmcgdGhpcyBsaW1pdC4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFeGVjdXRlQWdlbnRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdFeGVjdXRpb24gcmVzdWx0OiB7IF90eXBlLCBhZ2VudE5hbWUsIGdvYWwsIGdvYWxJZCwgc3RhdGVWZXJzaW9uLCBhY3RpdmVFbGVtZW50cyAoZWxlbWVudHMgYWN0aXZhdGVkIHZpYSBhZ2VudC5hY3RpdmF0ZXMpLCBhdmFpbGFibGVUb29scywgc3VjY2Vzc0NyaXRlcmlhLCBzYWZldHlUaWVyIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgIC8vIE1hdGNoZXMgQ29kZVJldmlld2VyIGZyb20gY3JlYXRlX2VsZW1lbnQ6IGdvYWwudGVtcGxhdGUgPSBcIlJldmlldyB7ZmlsZXN9IGZvciB7cmV2aWV3X3R5cGV9IGlzc3Vlc1wiXG4gICAgICAneyBvcGVyYXRpb246IFwiZXhlY3V0ZV9hZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdlclwiLCBwYXJhbWV0ZXJzOiB7IGZpbGVzOiBcInNyYy8qLnRzXCIsIHJldmlld190eXBlOiBcInNlY3VyaXR5XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImV4ZWN1dGVfYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3ZXJcIiwgcGFyYW1ldGVyczogeyBmaWxlczogXCJsaWIvYXV0aC50c1wiLCByZXZpZXdfdHlwZTogXCJxdWFsaXR5XCIgfSwgbWF4QXV0b25vbW91c1N0ZXBzOiA1IH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X2V4ZWN1dGlvbl9zdGF0ZToge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgY2F0ZWdvcnk6ICdBZ2VudCBFeGVjdXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVlcnkgY3VycmVudCBleGVjdXRpb24gc3RhdGUgaW5jbHVkaW5nIHByb2dyZXNzIGFuZCBmaW5kaW5ncycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgaW5jbHVkZURlY2lzaW9uSGlzdG9yeTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnSW5jbHVkZSBkZWNpc2lvbiBoaXN0b3J5IGluIHJlc3BvbnNlJyB9LFxuICAgICAgaW5jbHVkZUNvbnRleHQ6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0luY2x1ZGUgZXhlY3V0aW9uIGNvbnRleHQgaW4gcmVzcG9uc2UnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFeGVjdXRpb25TdGF0ZScsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0N1cnJlbnQgZXhlY3V0aW9uIHN0YXRlIHdpdGggcHJvZ3Jlc3MsIGRlY2lzaW9ucywgYW5kIGNvbnRleHQnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZXhlY3V0aW9uX3N0YXRlXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBpbmNsdWRlRGVjaXNpb25IaXN0b3J5OiB0cnVlIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgcmVjb3JkX2V4ZWN1dGlvbl9zdGVwOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGNhdGVnb3J5OiAnQWdlbnQgRXhlY3V0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlY29yZCBleGVjdXRpb24gcHJvZ3Jlc3MsIHN0ZXAgY29tcGxldGlvbiwgb3IgZmluZGluZ3MuIFJldHVybnMgYXV0b25vbXkgZGlyZWN0aXZlIHdpdGggY29udGludWUvcGF1c2UgZGVjaXNpb24gYW5kIG5vdGlmaWNhdGlvbnMuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgb3IgZXhlY3V0YWJsZSBlbGVtZW50IG5hbWUnIH0sXG4gICAgICBzdGVwRGVzY3JpcHRpb246IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uIG9mIHN0ZXAgY29tcGxldGVkJyB9LFxuICAgICAgb3V0Y29tZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiBcIlN0ZXAgb3V0Y29tZTogJ3N1Y2Nlc3MnLCAnZmFpbHVyZScsIG9yICdwYXJ0aWFsJ1wiIH0sXG4gICAgICBmaW5kaW5nczogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdGVwIGZpbmRpbmdzIG9yIHJlc3VsdHMnIH0sXG4gICAgICBjb25maWRlbmNlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ0NvbmZpZGVuY2Ugc2NvcmUgKDAtMSknIH0sXG4gICAgICBuZXh0QWN0aW9uSGludDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdIaW50IGFib3V0IHRoZSBuZXh0IHBsYW5uZWQgYWN0aW9uIChmb3IgYXV0b25vbXkgZXZhbHVhdGlvbiknIH0sXG4gICAgICByaXNrU2NvcmU6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUmlzayBzY29yZSBmb3IgdGhlIG5leHQgYWN0aW9uICgwLTEwMCBpbnRlZ2VyLCBmb3IgYXV0b25vbXkgZXZhbHVhdGlvbikuIEhpZ2hlciB2YWx1ZXMgaW5jcmVhc2UgbGlrZWxpaG9vZCBvZiBhdXRvbm9teSBwYXVzZS4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdTdGVwUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3RlcCByZXN1bHQ6IHsgX3R5cGUsIHN1Y2Nlc3MsIG1lc3NhZ2UsIGRlY2lzaW9uOiB7IGlkLCBnb2FsSWQsIGRlY2lzaW9uLCByZWFzb25pbmcsIGNvbmZpZGVuY2UgfSwgc3RhdGU6IHsgZ29hbENvdW50LCBzdGF0ZVZlcnNpb24gfSwgYXV0b25vbXk6IHsgY29udGludWUsIHJlYXNvbj8sIGZhY3RvcnMsIHN0ZXBzUmVtYWluaW5nPywgbm90aWZpY2F0aW9ucz86IFt7IHR5cGUsIG1lc3NhZ2UgfV0gfSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicmVjb3JkX2V4ZWN1dGlvbl9zdGVwXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBzdGVwRGVzY3JpcHRpb246IFwiQW5hbHl6ZWQgc3JjLyBkaXJlY3RvcnlcIiwgb3V0Y29tZTogXCJzdWNjZXNzXCIsIGZpbmRpbmdzOiBcIkZvdW5kIDMgc3R5bGUgaXNzdWVzXCIsIG5leHRBY3Rpb25IaW50OiBcIkFwcGx5IGZpeGVzXCIsIHJpc2tTY29yZTogMjUgfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IF90eXBlOiBcIlN0ZXBSZXN1bHRcIiwgc3VjY2VzczogdHJ1ZSwgZGVjaXNpb246IHsgLi4uIH0sIGF1dG9ub215OiB7IGNvbnRpbnVlOiB0cnVlLCBmYWN0b3JzOiBbLi4uXSwgc3RlcHNSZW1haW5pbmc6IDQgfSB9XG4gICAgXSxcbiAgfSxcbiAgY29tcGxldGVfZXhlY3V0aW9uOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBjYXRlZ29yeTogJ0FnZW50IEV4ZWN1dGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTaWduYWwgdGhhdCBleGVjdXRpb24gZmluaXNoZWQgc3VjY2Vzc2Z1bGx5IHdpdGggc3VtbWFyeScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgb3V0Y29tZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiBcIkV4ZWN1dGlvbiBvdXRjb21lOiAnc3VjY2VzcycsICdmYWlsdXJlJywgb3IgJ3BhcnRpYWwnXCIgfSxcbiAgICAgIHN1bW1hcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1N1bW1hcnkgb2YgZXhlY3V0aW9uIHJlc3VsdHMnIH0sXG4gICAgICBnb2FsSWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnR29hbCBJRCBpZiB0cmFja2luZyBzcGVjaWZpYyBnb2FsJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29tcGxldGlvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0dvYWwgY29tcGxldGlvbiBzdGF0dXMgd2l0aCBtZXRyaWNzIGFuZCB1cGRhdGVkIHN0YXRlVmVyc2lvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbXBsZXRlX2V4ZWN1dGlvblwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgb3V0Y29tZTogXCJzdWNjZXNzXCIsIHN1bW1hcnk6IFwiUmV2aWV3ZWQgMTUgZmlsZXMsIGZvdW5kIDMgaXNzdWVzXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBjb250aW51ZV9leGVjdXRpb246IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGNhdGVnb3J5OiAnQWdlbnQgRXhlY3V0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Jlc3VtZSBleGVjdXRpb24gZnJvbSBzYXZlZCBzdGF0ZScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgcHJldmlvdXNTdGVwUmVzdWx0OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1Jlc3VsdCBmcm9tIHByZXZpb3VzIHN0ZXAnIH0sXG4gICAgICBwYXJhbWV0ZXJzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0FkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgY29udGludWF0aW9uJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29udGludWVSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdSZXN1bWVkIGV4ZWN1dGlvbiBzdGF0ZSB3aXRoIHVwZGF0ZWQgY29udGV4dCBhbmQgc3RhdGVWZXJzaW9uJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiY29udGludWVfZXhlY3V0aW9uXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBwcmV2aW91c1N0ZXBSZXN1bHQ6IFwiRmlsZXMgYW5hbHl6ZWRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGFib3J0X2V4ZWN1dGlvbjoge1xuICAgIGVuZHBvaW50OiAnRVhFQ1VURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgY2F0ZWdvcnk6ICdBZ2VudCBFeGVjdXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQWJvcnQgYSBydW5uaW5nIGFnZW50IGV4ZWN1dGlvbiwgcmVqZWN0aW5nIGZ1cnRoZXIgb3BlcmF0aW9ucyBmb3IgdGhlIGdvYWxJZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lIHRvIGFib3J0JyB9LFxuICAgICAgcmVhc29uOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlYXNvbiBmb3IgYWJvcnRpbmcgdGhlIGV4ZWN1dGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0Fib3J0UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWJvcnQgY29uZmlybWF0aW9uOiB7IF90eXBlLCBzdWNjZXNzLCBhZ2VudE5hbWUsIGFib3J0ZWRHb2FsSWRzLCByZWFzb24sIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFib3J0X2V4ZWN1dGlvblwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgcmVhc29uOiBcIlVzZXIgcmVxdWVzdGVkIGNhbmNlbGxhdGlvblwiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBfdHlwZTogXCJBYm9ydFJlc3VsdFwiLCBzdWNjZXNzOiB0cnVlLCBhZ2VudE5hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBhYm9ydGVkR29hbElkczogW1wiZ29hbF9hYmMxMjNcIl0sIHJlYXNvbjogXCJVc2VyIHJlcXVlc3RlZCBjYW5jZWxsYXRpb25cIiB9XG4gICAgXSxcbiAgfSxcbiAgZ2V0X2dhdGhlcmVkX2RhdGE6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGNhdGVnb3J5OiAnQWdlbnQgRXhlY3V0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhZ2dyZWdhdGVkIGV4ZWN1dGlvbiBkYXRhIChzdGVwcywgZGVjaXNpb25zLCBmaW5kaW5ncywgYW5kIHN1bW1hcnkgc3RhdGlzdGljcykgZm9yIGEgc3BlY2lmaWMgZ29hbCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG5hbWUnIH0sXG4gICAgICBnb2FsSWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0dvYWwgSUQgdG8gZ2F0aGVyIGRhdGEgZm9yJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnR2F0aGVyZWREYXRhJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRlZCBkYXRhOiB7IF90eXBlLCBnb2FsSWQsIGFnZW50TmFtZSwgZW50cmllcywgc3VtbWFyeTogeyB0b3RhbFN0ZXBzLCBzdWNjZXNzZnVsU3RlcHMsIGF2ZXJhZ2VDb25maWRlbmNlIH0sIGdvYWwgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9nYXRoZXJlZF9kYXRhXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9hYmMxMjNcIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiR2F0aGVyZWREYXRhXCIsIGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiLCBlbnRyaWVzOiBbLi4uXSwgc3VtbWFyeTogeyB0b3RhbFN0ZXBzOiA1LCBzdWNjZXNzZnVsU3RlcHM6IDQgfSB9XG4gICAgXSxcbiAgfSxcbiAgcHJlcGFyZV9oYW5kb2ZmOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBjYXRlZ29yeTogJ0FnZW50IEV4ZWN1dGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTZXJpYWxpemUgZ29hbCBwcm9ncmVzcyBpbnRvIGEgcG9ydGFibGUgaGFuZG9mZiBibG9jayBmb3Igc2Vzc2lvbiB0cmFuc2ZlcicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG5hbWUgdG8gcHJlcGFyZSBoYW5kb2ZmIGZvcicgfSxcbiAgICAgIGdvYWxJZDogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnR29hbCBJRCB0byBpbmNsdWRlIGluIHRoZSBoYW5kb2ZmJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnSGFuZG9mZlJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0hhbmRvZmYgc3RhdGUgc25hcHNob3Q6IHsgX3R5cGUsIGhhbmRvZmZTdGF0ZTogeyB2ZXJzaW9uLCBhZ2VudE5hbWUsIGdvYWxJZCwgY2hlY2tzdW0gfSwgaGFuZG9mZkJsb2NrOiBcImh1bWFuLXJlYWRhYmxlIGhlYWRlciArIGNvbXByZXNzZWQgYmFzZTY0IHBheWxvYWRcIiB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicHJlcGFyZV9oYW5kb2ZmXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9hYmMxMjNcIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiSGFuZG9mZlJlc3VsdFwiLFxuICAgICAgLy8gICBoYW5kb2ZmU3RhdGU6IHsgdmVyc2lvbjogXCIxLjAuMFwiLCBhZ2VudE5hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9hYmMxMjNcIiwgY2hlY2tzdW06IFwic2hhMjU2Li4uXCIgfSxcbiAgICAgIC8vICAgaGFuZG9mZkJsb2NrOiBcIuKVlOKVkOKVkOKVkCBBR0VOVCBIQU5ET0ZGIOKVkOKVkOKVkOKVl1xcbiBBZ2VudDogY29kZS1yZXZpZXdlclxcbiBHb2FsOiAuLi5cXG7ilZrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZ1cXG4tLS0gSEFORE9GRiBQQVlMT0FEIFNUQVJUIC0tLVxcbi4uLmJhc2U2NC4uLlxcbi0tLSBIQU5ET0ZGIFBBWUxPQUQgRU5EIC0tLVwiIH1cbiAgICBdLFxuICB9LFxuICByZXN1bWVfZnJvbV9oYW5kb2ZmOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBjYXRlZ29yeTogJ0FnZW50IEV4ZWN1dGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdSZXN1bWUgYWdlbnQgZXhlY3V0aW9uIGZyb20gYSBoYW5kb2ZmIGJsb2NrIHdpdGggaW50ZWdyaXR5IHZhbGlkYXRpb24nLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdBZ2VudCBuYW1lIHRvIHJlc3VtZSAobXVzdCBtYXRjaCBoYW5kb2ZmIGJsb2NrKScgfSxcbiAgICAgIGhhbmRvZmZCbG9jazogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIGZ1bGwgaGFuZG9mZiBibG9jayB0ZXh0IChpbmNsdWRpbmcgcGF5bG9hZCBtYXJrZXJzKScgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnR29hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIChzYW1lIGFzIGV4ZWN1dGVfYWdlbnQgcGFyYW1ldGVycyknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdSZXN1bWVSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdSZXN1bWVkIGV4ZWN1dGlvbiB3aXRoIHJlc3RvcmF0aW9uIG1ldGFkYXRhOiB7IF90eXBlLCBhZ2VudE5hbWUsIGdvYWwsIGdvYWxJZCwgcmVzdG9yZWRGcm9tOiB7IGFnZW50TmFtZSwgZ29hbElkLCBzdGVwc0NvbXBsZXRlZCwgcHJlcGFyZWRBdCB9IH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZXN1bWVfZnJvbV9oYW5kb2ZmXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBoYW5kb2ZmQmxvY2s6IFwiLi4uZnVsbCBoYW5kb2ZmIGJsb2NrLi4uXCIsIHBhcmFtZXRlcnM6IHsgdGFzazogXCJSZXZpZXcgUFIgIzQyXCIgfSB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiUmVzdW1lUmVzdWx0XCIsIGFnZW50TmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGdvYWxJZDogXCJnb2FsX25ldzQ1NlwiLCByZXN0b3JlZEZyb206IHsgZ29hbElkOiBcImdvYWxfYWJjMTIzXCIsIHN0ZXBzQ29tcGxldGVkOiA1IH0gfVxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHYXRla2VlcGVyIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2F0ZWtlZXBlciBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hHYXRla2VlcGVyKCkgd2hpY2hcbiAqIHBlcmZvcm1zIHNlc3Npb24tbGV2ZWwgY29uZmlybWF0aW9uIHRyYWNraW5nIGFuZCBkYW5nZXIgem9uZSB2ZXJpZmljYXRpb24uXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk0IC0gRG9jdW1lbnQgYWxsIE1DUC1BUUwgb3BlcmF0aW9ucyB2aWEgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBHQVRFS0VFUEVSX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgY29uZmlybV9vcGVyYXRpb246IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGNhdGVnb3J5OiAnU2VjdXJpdHkgJiBQZXJtaXNzaW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGEgcGVuZGluZyBvcGVyYXRpb24gdGhhdCByZXF1aXJlcyB1c2VyIGFwcHJvdmFsIChHYXRla2VlcGVyIGZsb3cpJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIG9wZXJhdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnT3BlcmF0aW9uIG5hbWUgdG8gY29uZmlybSAoZS5nLiwgXCJjcmVhdGVfZWxlbWVudFwiKScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdPcHRpb25hbCBlbGVtZW50IHR5cGUgc2NvcGUgZm9yIHRoZSBjb25maXJtYXRpb24nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDb25maXJtUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHN0YXR1czogeyBjb25maXJtZWQsIG9wZXJhdGlvbiwgZWxlbWVudF90eXBlPywgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiY29uZmlybV9vcGVyYXRpb25cIiwgcGFyYW1zOiB7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBjb25maXJtZWQ6IHRydWUsIG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBtZXNzYWdlOiBcIk9wZXJhdGlvbiBjb25maXJtZWQgZm9yIHRoaXMgc2Vzc2lvblwiIH1cbiAgICBdLFxuICB9LFxuICB2ZXJpZnlfY2hhbGxlbmdlOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGNhdGVnb3J5OiAnU2VjdXJpdHkgJiBQZXJtaXNzaW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdTdWJtaXQgdmVyaWZpY2F0aW9uIGNvZGUgdG8gdW5ibG9jayBhIGRhbmdlciB6b25lIG9wZXJhdGlvbicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBjaGFsbGVuZ2VfaWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1VVSUQgdjQgY2hhbGxlbmdlIElEIGZyb20gZGFuZ2VyIHpvbmUgdHJpZ2dlcicgfSxcbiAgICAgIGNvZGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBjb2RlIGRpc3BsYXllZCB0byB0aGUgdXNlcicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1ZlcmlmeVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBzdGF0dXM6IHsgdmVyaWZpZWQsIGNoYWxsZW5nZV9pZCwgYWdlbnROYW1lPywgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwidmVyaWZ5X2NoYWxsZW5nZVwiLCBwYXJhbXM6IHsgY2hhbGxlbmdlX2lkOiBcIjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMFwiLCBjb2RlOiBcIkFCQzEyM1wiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyB2ZXJpZmllZDogdHJ1ZSwgY2hhbGxlbmdlX2lkOiBcIi4uLlwiLCBhZ2VudE5hbWU6IFwibXktYWdlbnRcIiwgbWVzc2FnZTogXCJBZ2VudCB1bmJsb2NrZWRcIiB9XG4gICAgXSxcbiAgfSxcbiAgYmVldGxlanVpY2VfYmVldGxlanVpY2VfYmVldGxlanVpY2U6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgY2F0ZWdvcnk6ICdTZWN1cml0eSAmIFBlcm1pc3Npb25zJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NhZmUtdHJpZ2dlciB0aGUgZnVsbCBkYW5nZXIgem9uZSB2ZXJpZmljYXRpb24gcGlwZWxpbmUgZm9yIHRlc3RpbmcgcHVycG9zZXMnLFxuICAgIHBhcmFtczoge1xuICAgICAgYWdlbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdBZ2VudCB0byBibG9jayAoZGVmYXVsdHMgdG8gXCJiZWV0bGVqdWljZS10ZXN0LWFnZW50XCIpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQmVldGxlanVpY2VSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDaGFsbGVuZ2UgZGV0YWlsczogeyBjaGFsbGVuZ2VfaWQsIGFnZW50TmFtZSwgZXhwaXJlc0F0LCBtZXNzYWdlIH0uIENvZGUgaXMgZGlzcGxheWVkIHZpYSBPUyBkaWFsb2csIG5ldmVyIGluIHJlc3BvbnNlLicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImJlZXRsZWp1aWNlX2JlZXRsZWp1aWNlX2JlZXRsZWp1aWNlXCIgfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBjaGFsbGVuZ2VfaWQ6IFwiLi4uXCIsIGFnZW50TmFtZTogXCJiZWV0bGVqdWljZS10ZXN0LWFnZW50XCIsIGV4cGlyZXNBdDogXCIuLi5cIiwgbWVzc2FnZTogXCJWZXJpZmljYXRpb24gY29kZSBkaXNwbGF5ZWQgdmlhIHN5c3RlbSBkaWFsb2dcIiB9XG4gICAgICAneyBvcGVyYXRpb246IFwiYmVldGxlanVpY2VfYmVldGxlanVpY2VfYmVldGxlanVpY2VcIiwgcGFyYW1zOiB7IGFnZW50X25hbWU6IFwibXktdGVzdC1hZ2VudFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgLy8gSXNzdWUgIzYyNTogQ0xJLWxldmVsIHBlcm1pc3Npb24gZGVsZWdhdGlvbiB2aWEgLS1wZXJtaXNzaW9uLXByb21wdC10b29sXG4gIC8vIElzc3VlICM2NDc6IE1vdmVkIHRvIFJFQUQg4oCUIHBvbGljeSBldmFsdWF0aW9uIGlzIHJlYWQtb25seVxuICBwZXJtaXNzaW9uX3Byb21wdDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgY2F0ZWdvcnk6ICdTZWN1cml0eSAmIFBlcm1pc3Npb25zJyxcbiAgICBkZXNjcmlwdGlvbjogJ0V2YWx1YXRlIGEgQ0xJLWxldmVsIHBlcm1pc3Npb24gcHJvbXB0IChCYXNoLCBFZGl0LCBXcml0ZSwgTUNQIHRvb2xzKS4gUmV0dXJucyBhbGxvdy9kZW55IGRlY2lzaW9uIGZvciBub24taW50ZXJhY3RpdmUgQ2xhdWRlIENvZGUgc2Vzc2lvbnMgdXNpbmcgLS1wZXJtaXNzaW9uLXByb21wdC10b29sLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICB0b29sX25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSB0b29sIHJlcXVlc3RpbmcgcGVybWlzc2lvbiAoZS5nLiwgXCJCYXNoXCIsIFwiRWRpdFwiLCBcIldyaXRlXCIsIFwibWNwX19zZXJ2ZXJfX3Rvb2xcIiknIH0sXG4gICAgICBpbnB1dDogeyB0eXBlOiAnb2JqZWN0JywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIHRvb2wgaW5wdXQgcGFyYW1ldGVycyB0byBldmFsdWF0ZSAoZS5nLiwgeyBjb21tYW5kOiBcImdpdCBwdXNoXCIgfSBmb3IgQmFzaCknIH0sXG4gICAgICBhZ2VudF9pZGVudGl0eTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdPcHRpb25hbDogaWRlbnRpdHkgb2YgdGhlIHN1Yi1hZ2VudCBtYWtpbmcgdGhlIHJlcXVlc3QgKGZyb20gQ2xhdWRlIENvZGUgLS1wZXJtaXNzaW9uLXByb21wdC10b29sKScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1Blcm1pc3Npb25EZWNpc2lvbicsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ3sgYmVoYXZpb3I6IFwiYWxsb3dcInxcImRlbnlcIiwgdXBkYXRlZElucHV0PywgbWVzc2FnZT8sIGNsYXNzaWZpY2F0aW9uPzogeyByaXNrTGV2ZWwsIHJlYXNvbiwgc3RhZ2UsIHJpc2tTY29yZT8sIGlycmV2ZXJzaWJsZT8gfSwgcG9saWN5Q29udGV4dD86IHsgZXZhbHVhdGVkRWxlbWVudHMsIGRlY2lzaW9uQ2hhaW4gfSwgYXBwcm92YWxSZXF1ZXN0PzogeyByZXF1ZXN0SWQsIHRvb2xOYW1lLCByaXNrTGV2ZWwsIHJpc2tTY29yZSwgaXJyZXZlcnNpYmxlLCByZWFzb24gfSB9LiBSaXNrIHNjb3JlczogMD1zYWZlLCA0MD1tb2RlcmF0ZSwgODA9ZGFuZ2Vyb3VzLCAxMDA9YmxvY2tlZDsgYWRqdXN0bWVudHM6IGlycmV2ZXJzaWJsZSgrMTApLCBuZXR3b3JrKCsxMCksIG91dC1vZi1zY29wZSByZWFkKCsxMCksIGZpbGUgY3JlYXRpb24oKzUpLiBTdGFnZXM6IHN0YXRpY19hbGxvdywgc3RhdGljX2RlbnksIGVsZW1lbnRfZGVueSwgZWxlbWVudF9hbGxvdywgY2xpX2FwcHJvdmFsLCBhcHByb3ZhbF9yZXF1aXJlZCwgZGVmYXVsdF9hbGxvdy4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJwZXJtaXNzaW9uX3Byb21wdFwiLCBwYXJhbXM6IHsgdG9vbF9uYW1lOiBcIkJhc2hcIiwgaW5wdXQ6IHsgY29tbWFuZDogXCJucG0gdGVzdFwiIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJwZXJtaXNzaW9uX3Byb21wdFwiLCBwYXJhbXM6IHsgdG9vbF9uYW1lOiBcIkVkaXRcIiwgaW5wdXQ6IHsgZmlsZV9wYXRoOiBcInNyYy9pbmRleC50c1wiLCBvbGRfc3RyaW5nOiBcIi4uLlwiLCBuZXdfc3RyaW5nOiBcIi4uLlwiIH0gfSB9JyxcbiAgICBdLFxuICB9LFxuICAvLyBQZXJtaXNzaW9uIGV2YWx1YXRpb24gZm9yIFByZVRvb2xVc2UgaG9va3MgKGFsbCBwbGF0Zm9ybXMpXG4gIGV2YWx1YXRlX3Blcm1pc3Npb246IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGNhdGVnb3J5OiAnU2VjdXJpdHkgJiBQZXJtaXNzaW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdFdmFsdWF0ZSBDTEkgcGVybWlzc2lvbiBmb3IgYSB0b29sIHZpYSBIVFRQL2hvb2suIFJldHVybnMgcGxhdGZvcm0tZm9ybWF0dGVkIHJlc3BvbnNlIChjbGF1ZGVfY29kZSwgZ2VtaW5pLCBjdXJzb3IsIHdpbmRzdXJmLCBjb2RleCkuIEFsdGVybmF0aXZlIHRvIHBlcm1pc3Npb25fcHJvbXB0IGZvciBpbnRlcmFjdGl2ZSBzZXNzaW9ucyB1c2luZyBQcmVUb29sVXNlIGhvb2tzLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICB0b29sX25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSB0b29sIHJlcXVlc3RpbmcgcGVybWlzc2lvbiAoZS5nLiwgXCJCYXNoXCIsIFwiRWRpdFwiLCBcIldyaXRlXCIpJyB9LFxuICAgICAgaW5wdXQ6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnVGhlIHRvb2wgaW5wdXQgcGFyYW1ldGVycyB0byBldmFsdWF0ZScgfSxcbiAgICAgIHBsYXRmb3JtOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1RhcmdldCBwbGF0Zm9ybSBmb3IgcmVzcG9uc2UgZm9ybWF0dGluZyAoZGVmYXVsdDogXCJjbGF1ZGVfY29kZVwiKS4gT3B0aW9uczogY2xhdWRlX2NvZGUsIGdlbWluaSwgY3Vyc29yLCB3aW5kc3VyZiwgY29kZXgnIH0sXG4gICAgICBzZXNzaW9uX2lkOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsIHBlcnNpc3RlZCBhY3RpdmF0aW9uIHNlc3Npb24gSUQgdG8gZXZhbHVhdGUgYWdhaW5zdCB3aGVuIGhvb2tzIHJ1biBpbiBhIHNlcGFyYXRlIGxlYWRlciBwcm9jZXNzJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUGxhdGZvcm1QZXJtaXNzaW9uRGVjaXNpb24nLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdQbGF0Zm9ybS1mb3JtYXR0ZWQgcGVybWlzc2lvbiBkZWNpc2lvbi4gQ2xhdWRlIENvZGU6IHsgaG9va1NwZWNpZmljT3V0cHV0OiB7IGhvb2tFdmVudE5hbWU6IFwiUHJlVG9vbFVzZVwiLCBwZXJtaXNzaW9uRGVjaXNpb246IFwiYWxsb3dcInxcImRlbnlcInxcImFza1wiLCBwZXJtaXNzaW9uRGVjaXNpb25SZWFzb24/IH0gfS4gR2VtaW5pOiB7IGRlY2lzaW9uOiBcImFsbG93XCJ8XCJkZW55XCIsIHJlYXNvbj8gfS4gQ3Vyc29yOiB7IHBlcm1pc3Npb246IFwiYWxsb3dcInxcImRlbnlcInxcImFza1wiLCByZWFzb24/IH0uIFdpbmRzdXJmOiB7IGFsbG93ZWQ6IGJvb2xlYW4sIHJlYXNvbj8gfS4gQ29kZXg6IHsgaG9va1NwZWNpZmljT3V0cHV0OiB7IHBlcm1pc3Npb25EZWNpc2lvbiwgcmVhc29uPyB9IH0uJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZXZhbHVhdGVfcGVybWlzc2lvblwiLCBwYXJhbXM6IHsgdG9vbF9uYW1lOiBcIkJhc2hcIiwgaW5wdXQ6IHsgY29tbWFuZDogXCJnaXQgc3RhdHVzXCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImV2YWx1YXRlX3Blcm1pc3Npb25cIiwgcGFyYW1zOiB7IHRvb2xfbmFtZTogXCJCYXNoXCIsIGlucHV0OiB7IGNvbW1hbmQ6IFwiZ2l0IHB1c2ggLS1mb3JjZVwiIH0sIHBsYXRmb3JtOiBcImNsYXVkZV9jb2RlXCIsIHNlc3Npb25faWQ6IFwiY2xhdWRlLWNvZGUtc2Vzc2lvblwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgLy8gSXNzdWUgIzYyNSBQaGFzZSAyOiBDTEkgcG9saWN5IHZpc2liaWxpdHlcbiAgZ2V0X2VmZmVjdGl2ZV9jbGlfcG9saWNpZXM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGNhdGVnb3J5OiAnU2VjdXJpdHkgJiBQZXJtaXNzaW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgZWZmZWN0aXZlIENMSS1sZXZlbCBwZXJtaXNzaW9uIHBvbGljaWVzIGFjcm9zcyBhbGwgYWN0aXZlIGVsZW1lbnRzJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHRvb2xfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdPcHRpb25hbDogZXZhbHVhdGUgYSBzcGVjaWZpYyB0b29sIChlLmcuLCBcIkJhc2hcIiwgXCJFZGl0OnNyYy9pbmRleC50c1wiKScgfSxcbiAgICAgIHRvb2xfaW5wdXQ6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWw6IHRvb2wgaW5wdXQgdG8gZXZhbHVhdGUgKGUuZy4sIHsgY29tbWFuZDogXCJucG0gdGVzdFwiIH0pJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWZmZWN0aXZlQ2xpUG9saWNpZXMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICd7IGFjdGl2ZUVsZW1lbnRDb3VudCwgaGFzQWxsb3dsaXN0LCBlbGVtZW50cywgY29tYmluZWRBbGxvd1BhdHRlcm5zLCBjb21iaW5lZERlbnlQYXR0ZXJucywgZXZhbHVhdGlvbj8gfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9lZmZlY3RpdmVfY2xpX3BvbGljaWVzXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2VmZmVjdGl2ZV9jbGlfcG9saWNpZXNcIiwgcGFyYW1zOiB7IHRvb2xfbmFtZTogXCJCYXNoXCIsIHRvb2xfaW5wdXQ6IHsgY29tbWFuZDogXCJnaXQgcHVzaFwiIH0gfSB9JyxcbiAgICBdLFxuICB9LFxuICAvLyBJc3N1ZSAjNjI1IFBoYXNlIDM6IENMSSBhcHByb3ZhbCB3b3JrZmxvd1xuICBhcHByb3ZlX2NsaV9wZXJtaXNzaW9uOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBjYXRlZ29yeTogJ1NlY3VyaXR5ICYgUGVybWlzc2lvbnMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQXBwcm92ZSBhIHBlbmRpbmcgQ0xJIHRvb2wgcGVybWlzc2lvbiByZXF1ZXN0LiBVc2VkIGJ5IGJyaWRnZXMgKFp1bGlwLCBTbGFjaykgdG8gcmVsYXkgaHVtYW4gYXBwcm92YWwgZm9yIHRvb2xzIHRoYXQgcmVxdWlyZSBpdC4nLFxuICAgIHBhcmFtczoge1xuICAgICAgcmVxdWVzdF9pZDogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQXBwcm92YWwgcmVxdWVzdCBJRCBmcm9tIHBlcm1pc3Npb25fcHJvbXB0IGRlbnkgcmVzcG9uc2UgKGZvcm1hdDogY2xpLTxVVUlEPiknIH0sXG4gICAgICBzY29wZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdcInNpbmdsZVwiIChkZWZhdWx0LCBjb25zdW1lZCBvbiB1c2UpIG9yIFwidG9vbF9zZXNzaW9uXCIgKGFsbCB1c2VzIG9mIHRoYXQgdG9vbCBmb3IgdGhlIHNlc3Npb24pJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQXBwcm92ZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ3sgYXBwcm92ZWQsIHJlcXVlc3RJZCwgdG9vbE5hbWUsIHNjb3BlLCBtZXNzYWdlIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhcHByb3ZlX2NsaV9wZXJtaXNzaW9uXCIsIHBhcmFtczogeyByZXF1ZXN0X2lkOiBcImNsaS1hYmMuLi5cIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFwcHJvdmVfY2xpX3Blcm1pc3Npb25cIiwgcGFyYW1zOiB7IHJlcXVlc3RfaWQ6IFwiY2xpLWFiYy4uLlwiLCBzY29wZTogXCJ0b29sX3Nlc3Npb25cIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGdldF9wZW5kaW5nX2NsaV9hcHByb3ZhbHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGNhdGVnb3J5OiAnU2VjdXJpdHkgJiBQZXJtaXNzaW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYWxsIHBlbmRpbmcgQ0xJIHRvb2wgYXBwcm92YWwgcmVxdWVzdHMgZm9yIHRoaXMgc2Vzc2lvbi4gUmV0dXJucyB1bmFwcHJvdmVkIHJlcXVlc3RzIHRoYXQgYXJlIHdhaXRpbmcgZm9yIGh1bWFuIGF1dGhvcml6YXRpb24uJyxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1BlbmRpbmdBcHByb3ZhbHMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICd7IHBlbmRpbmc6IENsaUFwcHJvdmFsUmVjb3JkW10sIGNvdW50OiBudW1iZXIgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9wZW5kaW5nX2NsaV9hcHByb3ZhbHNcIiB9JyxcbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTG9nZ2luZyBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIExvZ2dpbmcgb3BlcmF0aW9ucyBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBEaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoTG9nZ2luZygpIHdpdGggcnVudGltZSBwYXJhbWV0ZXJcbiAqIHZhbGlkYXRpb24gdmlhIHZhbGlkYXRlTG9nUXVlcnlQYXJhbXMoKS5cbiAqXG4gKiBAc2VlIElzc3VlICM1OTQgLSBEb2N1bWVudCBhbGwgTUNQLUFRTCBvcGVyYXRpb25zIHZpYSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IExPR0dJTkdfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBxdWVyeV9sb2dzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hMb2dnaW5nJyxcbiAgICBjYXRlZ29yeTogJ0NvbmZpZ3VyYXRpb24gJiBEaWFnbm9zdGljcycsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSByZWNlbnQgbG9nIGVudHJpZXMgZnJvbSB0aGUgaW4tbWVtb3J5IGJ1ZmZlci4gUmV0dXJucyBmaWx0ZXJlZCwgcGFnaW5hdGVkIHJlc3VsdHMgc29ydGVkIG5ld2VzdC1maXJzdC4gT25seSBxdWVyaWVzIHRoZSBob3QgdGllciAoaW4tbWVtb3J5KTsgZXZpY3RlZCBlbnRyaWVzIGV4aXN0IG9ubHkgaW4gZGlzayBsb2cgZmlsZXMuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGNhdGVnb3J5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogXCJMb2cgY2F0ZWdvcnkgZmlsdGVyOiAnYXBwbGljYXRpb24nLCAnc2VjdXJpdHknLCAncGVyZm9ybWFuY2UnLCAndGVsZW1ldHJ5Jywgb3IgJ2FsbCcuIERlZmF1bHQ6ICdhbGwnXCIgfSxcbiAgICAgIGxldmVsOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogXCJNaW5pbXVtIGxvZyBsZXZlbCAoaW5jbHVzaXZlKTogJ2RlYnVnJywgJ2luZm8nLCAnd2FybicsIG9yICdlcnJvcicuIE9taXQgZm9yIGFsbCBsZXZlbHNcIiB9LFxuICAgICAgc291cmNlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0NvbXBvbmVudCBuYW1lIGZpbHRlciAoY2FzZS1pbnNlbnNpdGl2ZSBzdWJzdHJpbmcgbWF0Y2gpJyB9LFxuICAgICAgbWVzc2FnZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGcmVlIHRleHQgc2VhcmNoIGluIG1lc3NhZ2UgZmllbGQgKGNhc2UtaW5zZW5zaXRpdmUgc3Vic3RyaW5nIG1hdGNoKScgfSxcbiAgICAgIHNpbmNlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0lTTyA4NjAxIHRpbWVzdGFtcCDigJQgcmV0dXJuIGVudHJpZXMgYWZ0ZXIgdGhpcyB0aW1lJyB9LFxuICAgICAgdW50aWw6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnSVNPIDg2MDEgdGltZXN0YW1wIOKAlCByZXR1cm4gZW50cmllcyBiZWZvcmUgdGhpcyB0aW1lJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnTWF4IHJlc3VsdHMgdG8gcmV0dXJuICgxLTUwMCwgZGVmYXVsdCA1MCknIH0sXG4gICAgICBvZmZzZXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnTnVtYmVyIG9mIHJlc3VsdHMgdG8gc2tpcCBmb3IgcGFnaW5hdGlvbiAoZGVmYXVsdCAwKScgfSxcbiAgICAgIGNvcnJlbGF0aW9uSWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQ29ycmVsYXRpb24gSUQgZm9yIHJlcXVlc3QgdHJhY2luZycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0xvZ1F1ZXJ5UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnTG9nIGVudHJpZXM6IHsgX3R5cGU6IFwiTG9nUXVlcnlSZXN1bHRcIiwgZW50cmllcywgdG90YWwsIGZpbHRlcnMgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2xvZ3NcIiB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IF90eXBlOiBcIkxvZ1F1ZXJ5UmVzdWx0XCIsIGVudHJpZXM6IFsuLi5dLCB0b3RhbDogNDIgfVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2xvZ3NcIiwgcGFyYW1zOiB7IGNhdGVnb3J5OiBcInNlY3VyaXR5XCIsIGxldmVsOiBcIndhcm5cIiwgbGltaXQ6IDEwIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfbG9nc1wiLCBwYXJhbXM6IHsgc2luY2U6IFwiMjAyNi0wMS0wMVQwMDowMDowMFpcIiwgc291cmNlOiBcIkdhdGVrZWVwZXJcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNZXRyaWNzIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTWV0cmljcyBjb2xsZWN0aW9uIHF1ZXJ5IHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIERpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hNZXRyaWNzKCkgd2hpY2ggcm91dGVzIHRvXG4gKiBNZW1vcnlNZXRyaWNzU2luay5xdWVyeSgpLiBGb2xsb3dzIHRoZSBzYW1lIHBhdHRlcm4gYXMgcXVlcnlfbG9ncy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FVFJJQ1NfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBxdWVyeV9tZXRyaWNzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hNZXRyaWNzJyxcbiAgICBjYXRlZ29yeTogJ0NvbmZpZ3VyYXRpb24gJiBEaWFnbm9zdGljcycsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSBjb2xsZWN0ZWQgbWV0cmljcyBzbmFwc2hvdHMuIFJldHVybnMgZmlsdGVyZWQsIHBhZ2luYXRlZCByZXN1bHRzIHNvcnRlZCBuZXdlc3QtZmlyc3QuIFN1cHBvcnRzIGZpbHRlcmluZyBieSBtZXRyaWMgbmFtZSAocHJlZml4IG9yIGV4YWN0KSwgc291cmNlLCB0eXBlLCBhbmQgdGltZSByYW5nZS4nLFxuICAgIHBhcmFtczoge1xuICAgICAgbmFtZXM6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246IFwiTWV0cmljIG5hbWUgZmlsdGVycy4gRXhhY3QgbWF0Y2ggb3IgcHJlZml4IG1hdGNoIHdpdGggdHJhaWxpbmcgJy4nIG9yICcuKicgKGUuZy4sICdzeXN0ZW0ubWVtb3J5LionKVwiIH0sXG4gICAgICBzb3VyY2U6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQ29sbGVjdG9yIHNvdXJjZSBmaWx0ZXIgKGNhc2UtaW5zZW5zaXRpdmUgc3Vic3RyaW5nIG1hdGNoKScgfSxcbiAgICAgIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiBcIk1ldHJpYyB0eXBlIGZpbHRlcjogJ2NvdW50ZXInLCAnZ2F1Z2UnLCBvciAnaGlzdG9ncmFtJ1wiIH0sXG4gICAgICBzaW5jZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdJU08gODYwMSB0aW1lc3RhbXAg4oCUIHJldHVybiBzbmFwc2hvdHMgYWZ0ZXIgdGhpcyB0aW1lJyB9LFxuICAgICAgdW50aWw6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnSVNPIDg2MDEgdGltZXN0YW1wIOKAlCByZXR1cm4gc25hcHNob3RzIGJlZm9yZSB0aGlzIHRpbWUnIH0sXG4gICAgICBsYXRlc3Q6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0lmIHRydWUgKGRlZmF1bHQpLCByZXR1cm4gb25seSB0aGUgbW9zdCByZWNlbnQgc25hcHNob3QuIFNldCBmYWxzZSBmb3IgaGlzdG9yaWNhbCByYW5nZSBxdWVyaWVzJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnTWF4IHNuYXBzaG90cyB0byByZXR1cm4gKDEtMTAwLCBkZWZhdWx0IDEpJyB9LFxuICAgICAgb2Zmc2V0OiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ051bWJlciBvZiBzbmFwc2hvdHMgdG8gc2tpcCBmb3IgcGFnaW5hdGlvbiAoZGVmYXVsdCAwKScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ01ldHJpY1F1ZXJ5UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnTWV0cmljIHNuYXBzaG90czogeyBfdHlwZTogXCJNZXRyaWNRdWVyeVJlc3VsdFwiLCBzbmFwc2hvdHMsIHRvdGFsLCBoYXNNb3JlLCBvbGRlc3RBdmFpbGFibGUsIG5ld2VzdEF2YWlsYWJsZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfbWV0cmljc1wiIH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X21ldHJpY3NcIiwgcGFyYW1zOiB7IG5hbWVzOiBbXCJzeXN0ZW0ubWVtb3J5LipcIl0sIHR5cGU6IFwiZ2F1Z2VcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X21ldHJpY3NcIiwgcGFyYW1zOiB7IGxhdGVzdDogZmFsc2UsIGxpbWl0OiAxMCwgc2luY2U6IFwiMjAyNi0wMS0wMVQwMDowMDowMFpcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBY3RpdmF0aW9uIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQWN0aXZhdGlvbiBsaWZlY3ljbGUgb3BlcmF0aW9ucyBzY2hlbWEg4oCUIGludHJvc3BlY3Rpb24tb25seS5cbiAqXG4gKiBUaGVzZSBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVkIHZpYSBNQ1BBUUxIYW5kbGVyLmRpc3BhdGNoQWN0aXZhdGlvbigpIHdoaWNoXG4gKiByb3V0ZXMgdG8gRWxlbWVudENSVURIYW5kbGVyIGFjdGl2YXRpb24gc3RyYXRlZ2llcy4gVGhleSBjYW5ub3QgYmUgcm91dGVkXG4gKiB0aHJvdWdoIFNjaGVtYURpc3BhdGNoZXIgd2l0aG91dCBleHRyYWN0aW5nIHRoYXQgc3RyYXRlZ3ktYmFzZWQgZGlzcGF0Y2ggbG9naWMuXG4gKlxuICogSXNzdWUgIzU5ODogQWN0aXZhdGlvbiBzdGF0ZSBpcyBub3cgcGVyc2lzdGVkIHBlci1zZXNzaW9uIHZpYSBBY3RpdmF0aW9uU3RvcmUuXG4gKiBTZXQgRE9MTEhPVVNFX1NFU1NJT05fSUQgZW52IHZhciB0byBpc29sYXRlIGFjdGl2YXRpb24gc3RhdGUgYmV0d2VlbiBzZXNzaW9ucy5cbiAqXG4gKiBAc2VlIElzc3VlICM1OTQgLSBEb2N1bWVudCBhbGwgTUNQLUFRTCBvcGVyYXRpb25zIHZpYSBzY2hlbWFcbiAqIEBzZWUgSXNzdWUgIzU5OCAtIFBlci1zZXNzaW9uIGFjdGl2YXRpb24gcGVyc2lzdGVuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IEFDVElWQVRJT05fU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBhY3RpdmF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hBY3RpdmF0aW9uJyxcbiAgICBjYXRlZ29yeTogJ0FjdGl2YXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQWN0aXZhdGUgYW4gZWxlbWVudCBmb3IgdXNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24uIEFjdGl2YXRpb24gc3RhdGUgaXMgcGVyc2lzdGVkIHBlci1zZXNzaW9uIChET0xMSE9VU0VfU0VTU0lPTl9JRCkgYW5kIHJlc3RvcmVkIG9uIHNlcnZlciByZXN0YXJ0LicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIGVsZW1lbnQgdG8gYWN0aXZhdGUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZTogcGVyc29uYSwgc2tpbGwsIGFnZW50LCBtZW1vcnksIG9yIGVuc2VtYmxlJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQWN0aXZhdGlvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0FjdGl2YXRpb24gY29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBkZXRhaWxzIGFuZCByZW5kZXJlZCBjb250ZW50JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiYWN0aXZhdGVfZWxlbWVudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhY3RpdmF0ZV9lbGVtZW50XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQ3JlYXRpdmUgRGV2XCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBkZWFjdGl2YXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEFjdGl2YXRpb24nLFxuICAgIGNhdGVnb3J5OiAnQWN0aXZhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdEZWFjdGl2YXRlIGFuIGVsZW1lbnQsIHJlbW92aW5nIGl0IGZyb20gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gUGVyc2lzdGVkIGFjdGl2YXRpb24gc3RhdGUgaXMgdXBkYXRlZC4nLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSBlbGVtZW50IHRvIGRlYWN0aXZhdGUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZTogcGVyc29uYSwgc2tpbGwsIGFnZW50LCBtZW1vcnksIG9yIGVuc2VtYmxlJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRGVhY3RpdmF0aW9uUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRGVhY3RpdmF0aW9uIGNvbmZpcm1hdGlvbiB3aXRoIGVsZW1lbnQgbmFtZScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImRlYWN0aXZhdGVfZWxlbWVudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBnZXRfYWN0aXZlX2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hBY3RpdmF0aW9uJyxcbiAgICBjYXRlZ29yeTogJ0FjdGl2YXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGFsbCBjdXJyZW50bHkgYWN0aXZlIGVsZW1lbnRzIHdpdGggcmVuZGVyZWQgY29udGVudCwgb3B0aW9uYWxseSBmaWx0ZXJlZCBieSB0eXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdPcHRpb25hbCBlbGVtZW50IHR5cGUgZmlsdGVyLiBPbWl0IHRvIGdldCBhbGwgYWN0aXZlIGVsZW1lbnRzIGFjcm9zcyBhbGwgdHlwZXMuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQWN0aXZlRWxlbWVudHNSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBY3RpdmUgZWxlbWVudHMgd2l0aCByZW5kZXJlZCBjb250ZW50LCBncm91cGVkIGJ5IHR5cGUgd2hlbiB1bmZpbHRlcmVkJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2FjdGl2ZV9lbGVtZW50c1wiIH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9hY3RpdmVfZWxlbWVudHNcIiwgcGFyYW1zOiB7IGVsZW1lbnRfdHlwZTogXCJza2lsbFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlYXJjaCBPcGVyYXRpb25zIFNjaGVtYSAoSW50cm9zcGVjdGlvbi1Pbmx5KVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFNlYXJjaCBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hTZWFyY2goKSB3aGljaFxuICogcm91dGVzIHRvIEVsZW1lbnRRdWVyeVNlcnZpY2UgbWV0aG9kcy4gVGhleSBjYW5ub3QgYmUgcm91dGVkIHRocm91Z2hcbiAqIFNjaGVtYURpc3BhdGNoZXIgd2l0aG91dCBleHRyYWN0aW5nIHRoYXQgcHJlLXByb2Nlc3NpbmcgbG9naWMuXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk1IC0gT3BlcmF0aW9uIGRvY3VtZW50YXRpb24gY292ZXJhZ2UgZ2F0ZVxuICovXG5leHBvcnQgY29uc3QgU0VBUkNIX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgc2VhcmNoX2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hTZWFyY2gnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBEaXNjb3ZlcnknLFxuICAgIGRlc2NyaXB0aW9uOiAnRnVsbC10ZXh0IHNlYXJjaCBhY3Jvc3MgZWxlbWVudCBuYW1lcywgZGVzY3JpcHRpb25zLCBhbmQgY29udGVudCB3aXRoIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcuIFRJUDogSWYgdGhlIHVzZXIgd2FudHMgdG8gYnJvd3NlIG9yIGV4cGxvcmUgdGhlaXIgcG9ydGZvbGlvIHZpc3VhbGx5IHJhdGhlciB0aGFuIGdldCB0ZXh0IHJlc3VsdHMsIHByZWZlciBvcGVuX3BvcnRmb2xpb19icm93c2VyIHdpdGggYSBxIHBhcmFtZXRlciBpbnN0ZWFkIOKAlCBpdCBvcGVucyBhIHdlYiBVSSB3aXRoIHRoZSBzZWFyY2ggcHJlLXBvcHVsYXRlZC4nLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeSBzdHJpbmcgKG1heCAxMDAwIGNoYXJhY3RlcnMpJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsIGVsZW1lbnQgdHlwZSBmaWx0ZXIgKHNlYXJjaGVzIGFsbCB0eXBlcyBpZiBvbWl0dGVkKScgfSxcbiAgICAgIHBhZ2U6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUGFnZSBudW1iZXIgZm9yIHBhZ2luYXRpb24gKDEtaW5kZXhlZCknIH0sXG4gICAgICBwYWdlU2l6ZTogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdSZXN1bHRzIHBlciBwYWdlJyB9LFxuICAgICAgc29ydDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTb3J0IG9wdGlvbnM6IHsgc29ydEJ5LCBzb3J0T3JkZXIgfScgfSxcbiAgICAgIGZpZWxkczoge1xuICAgICAgICB0eXBlOiAnc3RyaW5nIHwgc3RyaW5nW10nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZpZWxkcyB0byBpbmNsdWRlOiBhcnJheSBsaWtlIFtcImVsZW1lbnRfbmFtZVwiLCBcImRlc2NyaXB0aW9uXCJdIE9SIHByZXNldDogXCJtaW5pbWFsXCIsIFwic3RhbmRhcmRcIiwgXCJmdWxsXCInLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1NlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCByZXN1bHRzOiB7IGl0ZW1zOiBbeyB0eXBlLCBuYW1lLCBkZXNjcmlwdGlvbiwgbWF0Y2hlZEluIH1dLCBwYWdpbmF0aW9uOiB7IHBhZ2UsIHBhZ2VTaXplLCB0b3RhbEl0ZW1zLCB0b3RhbFBhZ2VzIH0sIHNvcnRpbmcgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9lbGVtZW50c1wiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY3JlYXRpdmVcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiYXNzaXN0YW50XCIsIHBhZ2VTaXplOiAxMCB9IH0nLFxuICAgICAgLy8gVElQOiBGb3IgdmlzdWFsIHNlYXJjaCwgdXNlIG9wZW5fcG9ydGZvbGlvX2Jyb3dzZXIgd2l0aCBxIHBhcmFtZXRlcjpcbiAgICAgIC8vIHsgb3BlcmF0aW9uOiBcIm9wZW5fcG9ydGZvbGlvX2Jyb3dzZXJcIiwgcGFyYW1zOiB7IHRhYjogXCJwb3J0Zm9saW9cIiwgcTogXCJjcmVhdGl2ZVwiIH0gfVxuICAgIF0sXG4gIH0sXG4gIHF1ZXJ5X2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hTZWFyY2gnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBEaXNjb3ZlcnknLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVlcnkgZWxlbWVudHMgd2l0aCBmaWx0ZXJzLCBzb3J0aW5nLCBwYWdpbmF0aW9uLCBhbmQgY291bnQgYWdncmVnYXRpb24uIFJldHVybnMgc3RydWN0dXJlZCBKU09OLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZSB0byBxdWVyeSAocmVxdWlyZWQpJyB9LFxuICAgICAgZmlsdGVyczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGaWx0ZXIgb3B0aW9uczogeyBuYW1lQ29udGFpbnMsIHRhZ3MsIGF1dGhvciwgc3RhdHVzLCBjYXRlZ29yeSB9JyB9LFxuICAgICAgc29ydDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTb3J0IG9wdGlvbnM6IHsgc29ydEJ5LCBzb3J0T3JkZXIgfScgfSxcbiAgICAgIHBhZ2luYXRpb246IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGlvbjogeyBwYWdlLCBwYWdlU2l6ZSB9JyB9LFxuICAgICAgYWdncmVnYXRlOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0FnZ3JlZ2F0aW9uOiB7IGNvdW50PzogYm9vbGVhbiwgZ3JvdXBfYnk/OiBzdHJpbmcgfS4gZ3JvdXBfYnkgZ3JvdXBzIHJlc3VsdHMgYnkgYSBtZXRhZGF0YSBmaWVsZCBhbmQgcmV0dXJucyBjb3VudHMgcGVyIGdyb3VwLiBBbGxvd2VkIGdyb3VwX2J5IGZpZWxkczogY2F0ZWdvcnksIGF1dGhvciwgdGFncywgc3RhdHVzLCB2ZXJzaW9uLiBVc2UgZ3JvdXBfYnk6IFwiY2F0ZWdvcnlcIiB0byBkaXNjb3ZlciBleGlzdGluZyBjYXRlZ29yaWVzIGluIHRoZSBwb3J0Zm9saW8uJyB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcgfCBzdHJpbmdbXScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmllbGRzIHRvIGluY2x1ZGU6IGFycmF5IGxpa2UgW1wiZWxlbWVudF9uYW1lXCIsIFwiZGVzY3JpcHRpb25cIl0gT1IgcHJlc2V0OiBcIm1pbmltYWxcIiwgXCJzdGFuZGFyZFwiLCBcImZ1bGxcIicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUXVlcnlSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdRdWVyeSByZXN1bHRzOiB7IGl0ZW1zOiBbeyBuYW1lLCBkZXNjcmlwdGlvbiwgdHlwZSwgdmVyc2lvbiwgdGFncyB9XSwgcGFnaW5hdGlvbiwgc29ydGluZywgZmlsdGVycyB9LiBXaXRoIGFnZ3JlZ2F0ZTogYWRkcyBjb3VudCAodG90YWwpLCBncm91cHMgKGlmIGdyb3VwX2J5IHVzZWQsIGUuZy4geyBkZXZlbG9wbWVudDogNSwgc2VjdXJpdHk6IDMgfSkuJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGZpbHRlcnM6IHsgdGFnczogW1wiYXNzaXN0YW50XCJdIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IHBhZ2luYXRpb246IHsgcGFnZTogMSwgcGFnZVNpemU6IDEwIH0sIHNvcnQ6IHsgc29ydEJ5OiBcIm5hbWVcIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyBhZ2dyZWdhdGU6IHsgY291bnQ6IHRydWUsIGdyb3VwX2J5OiBcImNhdGVnb3J5XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJ0ZW1wbGF0ZVwiLCBwYXJhbXM6IHsgZmlsdGVyczogeyBjYXRlZ29yeTogXCJzZWN1cml0eVwiIH0sIGFnZ3JlZ2F0ZTogeyBjb3VudDogdHJ1ZSB9IH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFnZ3JlZ2F0ZWQgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU2NoZW1hLWRyaXZlbiBvcGVyYXRpb25zIOKAlCB1c2VkIGJ5IFNjaGVtYURpc3BhdGNoZXIgZm9yIGRpc3BhdGNoLlxuICpcbiAqIE9ubHkgb3BlcmF0aW9ucyB0aGF0IGNhbiBiZSBmdWxseSBkaXNwYXRjaGVkIHRocm91Z2ggU2NoZW1hRGlzcGF0Y2hlclxuICogYmVsb25nIGhlcmUuIE9wZXJhdGlvbnMgd2l0aCBjb21wbGV4IHByZS1wcm9jZXNzaW5nIChtZW1vcnkgbG9va3VwLFxuICogYWdlbnQgc3RhdGUgbWFuYWdlbWVudCwgZ2F0ZWtlZXBlciBzZXNzaW9ucywgbG9nIHZhbGlkYXRpb24pIGFyZSBpblxuICogSU5UUk9TUEVDVElPTl9PTkxZX1NDSEVNQVMgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDSEVNQV9EUklWRU5fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICAuLi5DT0xMRUNUSU9OX09QRVJBVElPTlMsXG4gIC4uLkFVVEhfT1BFUkFUSU9OUyxcbiAgLi4uRU5IQU5DRURfSU5ERVhfT1BFUkFUSU9OUyxcbiAgLi4uVEVNUExBVEVfT1BFUkFUSU9OUyxcbiAgLi4uSU5UUk9TUEVDVElPTl9PUEVSQVRJT05TLFxuICAuLi5QRVJTT05BX09QRVJBVElPTlMsXG4gIC4uLkNPTkZJR19PUEVSQVRJT05TLFxuICAuLi5QT1JURk9MSU9fT1BFUkFUSU9OUyxcbiAgLi4uRUxFTUVOVF9DUlVEX09QRVJBVElPTlMsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEludHJvc3BlY3Rpb24tb25seSBzY2hlbWFzIOKAlCBtZXRhZGF0YSBmb3Igb3BlcmF0aW9ucyBkaXNwYXRjaGVkIGJ5XG4gKiBsZWdhY3kgbWV0aG9kcyAoZGlzcGF0Y2hNZW1vcnksIGRpc3BhdGNoRXhlY3V0ZSwgZGlzcGF0Y2hHYXRla2VlcGVyLFxuICogZGlzcGF0Y2hMb2dnaW5nKS4gVGhlc2UgYXJlIE5PVCB1c2VkIGZvciBkaXNwYXRjaCByb3V0aW5nLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG4vKipcbiAqIEJyb3dzZXIgb3BlcmF0aW9uIHNjaGVtYXNcbiAqIEBzZWUgSXNzdWUgIzc3NCAtIG9wZW4gcG9ydGZvbGlvIGJyb3dzZXJcbiAqL1xuZXhwb3J0IGNvbnN0IEJST1dTRVJfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBvcGVuX3BvcnRmb2xpb19icm93c2VyOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hCcm93c2VyJyxcbiAgICBjYXRlZ29yeTogJ01hbmFnZW1lbnQgQ29uc29sZScsXG4gICAgZGVzY3JpcHRpb246IGBTdGFydCB0aGUgcG9ydGZvbGlvIHdlYiBVSSBhbmQgb3BlbiBpdCBpbiB0aGUgc3lzdGVtIGJyb3dzZXIuIFRoZSB3ZWIgc2VydmVyIHJ1bnMgb24gbG9jYWxob3N0OiR7ZW52LkRPTExIT1VTRV9XRUJfQ09OU09MRV9QT1JUfSBhbmQgc2hvd3MgYWxsIHBvcnRmb2xpbyBlbGVtZW50cyB3aXRoIHNlYXJjaCwgZmlsdGVyaW5nLCBhbmQgZGV0YWlsIHZpZXdzLiBTdXBwb3J0cyBVUkwgcGFyYW1ldGVycyBmb3IgZGVlcC1saW5raW5nIHdpdGggcHJlLXBvcHVsYXRlZCBzZWFyY2gsIGZpbHRlcnMsIGFuZCBlbGVtZW50IG5hdmlnYXRpb24uIEFsaWFzZXM6IG9wZW5fY29uc29sZSwgb3Blbl9tYW5hZ2VtZW50X2NvbnNvbGUsIG9wZW5fZG9sbGhvdXNlX21jcC5gLFxuICAgIHBhcmFtczoge1xuICAgICAgdGFiOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1RhYiB0byBvcGVuIChwb3J0Zm9saW8sIGxvZ3MsIG1ldHJpY3MsIHBlcm1pc3Npb25zLCBzZXR1cCkuIERlZmF1bHQ6IGxhc3QtdXNlZCB0YWIuJywgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICBxOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1ByZS1wb3B1bGF0ZSBzZWFyY2ggcXVlcnkgb24gdGhlIHRhcmdldCB0YWIuJyB9LFxuICAgICAgdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgZWxlbWVudCB0eXBlIChwZXJzb25hLCBza2lsbCwgdGVtcGxhdGUsIGFnZW50LCBtZW1vcnksIGVuc2VtYmxlKSBvbiBwb3J0Zm9saW8gdGFiLicgfSxcbiAgICAgIG5hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnTmF2aWdhdGUgZGlyZWN0bHkgdG8gYSBzcGVjaWZpYyBlbGVtZW50IGRldGFpbCB2aWV3IG9uIHBvcnRmb2xpbyB0YWIuJyB9LFxuICAgICAgbGV2ZWw6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyIGJ5IGxvZyBsZXZlbCAoZGVidWcsIGluZm8sIHdhcm4sIGVycm9yKSBvbiBsb2dzIHRhYi4nIH0sXG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgY2F0ZWdvcnkgb24gbG9ncyB0YWIgKGFwcGxpY2F0aW9uLCBzZWN1cml0eSwgcGVyZm9ybWFuY2UpLicgfSxcbiAgICAgIHNpbmNlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1RpbWUgcmFuZ2UgZmlsdGVyIChJU08gODYwMSBvciByZWxhdGl2ZTogNW0sIDFoLCAyNGgsIDdkKSBvbiBsb2dzL21ldHJpY3MgdGFicy4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCcm93c2VyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggdGhlIFVSTCBvZiB0aGUgb3BlbmVkIGJyb3dzZXInIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJvcGVuX3BvcnRmb2xpb19icm93c2VyXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwib3Blbl9wb3J0Zm9saW9fYnJvd3NlclwiLCBwYXJhbXM6IHsgdGFiOiBcImxvZ3NcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcIm9wZW5fcG9ydGZvbGlvX2Jyb3dzZXJcIiwgcGFyYW1zOiB7IHRhYjogXCJwb3J0Zm9saW9cIiwgcTogXCJheGlvbVwiLCB0eXBlOiBcInBlcnNvbmFcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcIm9wZW5fcG9ydGZvbGlvX2Jyb3dzZXJcIiwgcGFyYW1zOiB7IHRhYjogXCJsb2dzXCIsIGxldmVsOiBcImVycm9yXCIsIHNpbmNlOiBcIjFoXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBvcGVuX2xvZ3M6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEJyb3dzZXInLFxuICAgIGNhdGVnb3J5OiAnTWFuYWdlbWVudCBDb25zb2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ09wZW4gdGhlIG1hbmFnZW1lbnQgY29uc29sZSBkaXJlY3RseSBvbiB0aGUgbG9ncyB0YWIuIFN1cHBvcnRzIFVSTCBwYXJhbWV0ZXJzIGZvciBwcmUtZmlsdGVyZWQgdmlld3MuIEFsaWFzZXM6IG9wZW5fZG9sbGhvdXNlX2xvZ3MsIG9wZW5fZG9sbGhvdXNlX21jcF9sb2dzLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBsZXZlbDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgbWluaW11bSBsb2cgbGV2ZWwgKGRlYnVnLCBpbmZvLCB3YXJuLCBlcnJvcikuJyB9LFxuICAgICAgY2F0ZWdvcnk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyIGJ5IGxvZyBjYXRlZ29yeSAoYXBwbGljYXRpb24sIHNlY3VyaXR5LCBwZXJmb3JtYW5jZSkuJyB9LFxuICAgICAgc291cmNlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBsb2cgc291cmNlIGNvbXBvbmVudC4nIH0sXG4gICAgICBxOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBsb2cgbWVzc2FnZXMuJyB9LFxuICAgICAgc2luY2U6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnVGltZSByYW5nZSAoSVNPIDg2MDEgb3IgcmVsYXRpdmU6IDVtLCAxaCwgMjRoLCA3ZCkuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQnJvd3NlclJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbmZpcm1hdGlvbiB3aXRoIHRoZSBVUkwgb2YgdGhlIG9wZW5lZCBicm93c2VyJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwib3Blbl9sb2dzXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwib3Blbl9sb2dzXCIsIHBhcmFtczogeyBsZXZlbDogXCJlcnJvclwiLCBzaW5jZTogXCIxaFwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgb3Blbl9tZXRyaWNzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hCcm93c2VyJyxcbiAgICBjYXRlZ29yeTogJ01hbmFnZW1lbnQgQ29uc29sZScsXG4gICAgZGVzY3JpcHRpb246ICdPcGVuIHRoZSBtYW5hZ2VtZW50IGNvbnNvbGUgZGlyZWN0bHkgb24gdGhlIG1ldHJpY3MgdGFiLiBTdXBwb3J0cyBVUkwgcGFyYW1ldGVycyBmb3IgZmlsdGVyZWQgdmlld3MuIEFsaWFzZXM6IG9wZW5fZG9sbGhvdXNlX21ldHJpY3MsIG9wZW5fZG9sbGhvdXNlX21jcF9tZXRyaWNzLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBzaW5jZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdUaW1lIHJhbmdlICgxNW0sIDMwbSwgMWgpLicgfSxcbiAgICAgIHJlZnJlc2g6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnQXV0by1yZWZyZXNoIGludGVydmFsIGluIHNlY29uZHMuIDAgZGlzYWJsZXMuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQnJvd3NlclJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbmZpcm1hdGlvbiB3aXRoIHRoZSBVUkwgb2YgdGhlIG9wZW5lZCBicm93c2VyJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwib3Blbl9tZXRyaWNzXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwib3Blbl9tZXRyaWNzXCIsIHBhcmFtczogeyBzaW5jZTogXCIxaFwiLCByZWZyZXNoOiA1IH0gfScsXG4gICAgXSxcbiAgfSxcbiAgb3Blbl9wZXJtaXNzaW9uczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoQnJvd3NlcicsXG4gICAgY2F0ZWdvcnk6ICdNYW5hZ2VtZW50IENvbnNvbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3BlbiB0aGUgbWFuYWdlbWVudCBjb25zb2xlIGRpcmVjdGx5IG9uIHRoZSBwZXJtaXNzaW9ucyB0YWIuIEFsaWFzZXM6IG9wZW5fZG9sbGhvdXNlX3Blcm1pc3Npb25zLicsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCcm93c2VyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggdGhlIFVSTCBvZiB0aGUgb3BlbmVkIGJyb3dzZXInIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwib3Blbl9wZXJtaXNzaW9uc1wiIH0nXSxcbiAgfSxcbiAgb3Blbl9zZXR1cDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoQnJvd3NlcicsXG4gICAgY2F0ZWdvcnk6ICdNYW5hZ2VtZW50IENvbnNvbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3BlbiB0aGUgbWFuYWdlbWVudCBjb25zb2xlIGRpcmVjdGx5IG9uIHRoZSBzZXR1cC9pbnN0YWxsIHRhYi4gQWxpYXNlczogb3Blbl9kb2xsaG91c2Vfc2V0dXAsIG9wZW5faW5zdGFsbGVyLicsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCcm93c2VyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggdGhlIFVSTCBvZiB0aGUgb3BlbmVkIGJyb3dzZXInIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwib3Blbl9zZXR1cFwiIH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBJTlRST1NQRUNUSU9OX09OTFlfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICAuLi5NRU1PUllfU0NIRU1BUyxcbiAgLi4uRVhFQ1VUSU9OX1NDSEVNQVMsXG4gIC4uLkdBVEVLRUVQRVJfU0NIRU1BUyxcbiAgLi4uTE9HR0lOR19TQ0hFTUFTLFxuICAuLi5NRVRSSUNTX1NDSEVNQVMsXG4gIC4uLkFDVElWQVRJT05fU0NIRU1BUyxcbiAgLi4uU0VBUkNIX1NDSEVNQVMsXG4gIC4uLkJST1dTRVJfU0NIRU1BUyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQWxsIG9wZXJhdGlvbiBzY2hlbWFzIOKAlCB1bmlvbiBvZiBkaXNwYXRjaC1kcml2ZW4gYW5kIGludHJvc3BlY3Rpb24tb25seS5cbiAqIFVzZWQgYnkgSW50cm9zcGVjdGlvblJlc29sdmVyIGZvciBjb21wbGV0ZSBvcGVyYXRpb24gZG9jdW1lbnRhdGlvbi5cbiAqXG4gKiBAc2VlIElzc3VlICM1OTQgLSBEb2N1bWVudCBhbGwgTUNQLUFRTCBvcGVyYXRpb25zIHZpYSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9PUEVSQVRJT05fU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICAuLi5TQ0hFTUFfRFJJVkVOX09QRVJBVElPTlMsXG4gIC4uLklOVFJPU1BFQ1RJT05fT05MWV9TQ0hFTUFTLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBDaGVjayBpZiBhbiBvcGVyYXRpb24gaXMgc2NoZW1hLWRyaXZlbiAodXNlZCBmb3IgU2NoZW1hRGlzcGF0Y2hlciByb3V0aW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTY2hlbWFPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIG9wZXJhdGlvbiBpbiBTQ0hFTUFfRFJJVkVOX09QRVJBVElPTlM7XG59XG5cbi8qKlxuICogR2V0IHNjaGVtYSBkZWZpbml0aW9uIGZvciBhIHNjaGVtYS1kcml2ZW4gb3BlcmF0aW9uIChkaXNwYXRjaCByb3V0aW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3BlcmF0aW9uU2NoZW1hKG9wZXJhdGlvbjogc3RyaW5nKTogT3BlcmF0aW9uRGVmIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFNDSEVNQV9EUklWRU5fT1BFUkFUSU9OU1tvcGVyYXRpb25dO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGFueSBvcGVyYXRpb24gc2NoZW1hIGV4aXN0cyAoZGlzcGF0Y2gtZHJpdmVuIG9yIGludHJvc3BlY3Rpb24tb25seSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc09wZXJhdGlvblNjaGVtYShvcGVyYXRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3BlcmF0aW9uIGluIEFMTF9PUEVSQVRJT05fU0NIRU1BUztcbn1cblxuLyoqXG4gKiBHZXQgc2NoZW1hIGZvciBhbnkgb3BlcmF0aW9uIChkaXNwYXRjaC1kcml2ZW4gb3IgaW50cm9zcGVjdGlvbi1vbmx5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW55T3BlcmF0aW9uU2NoZW1hKG9wZXJhdGlvbjogc3RyaW5nKTogT3BlcmF0aW9uRGVmIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIEFMTF9PUEVSQVRJT05fU0NIRU1BU1tvcGVyYXRpb25dO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJbnRyb3NwZWN0aW9uIEhlbHBlcnMgKElzc3VlICMyNTQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUGFyYW1ldGVyIGluZm8gZm9ybWF0IHVzZWQgYnkgSW50cm9zcGVjdGlvblJlc29sdmVyXG4gKiBUaGlzIGludGVyZmFjZSBtYXRjaGVzIHdoYXQgSW50cm9zcGVjdGlvblJlc29sdmVyIGV4cGVjdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJhbWV0ZXJJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBkZWZhdWx0PzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IFBhcmFtU2NoZW1hIHRvIFBhcmFtZXRlckluZm8gYXJyYXkgZm9yIGludHJvc3BlY3Rpb25cbiAqXG4gKiBAcGFyYW0gc2NoZW1hIC0gVGhlIFBhcmFtU2NoZW1hIGZyb20gYW4gb3BlcmF0aW9uIGRlZmluaXRpb25cbiAqIEByZXR1cm5zIEFycmF5IG9mIFBhcmFtZXRlckluZm8gZm9yIEludHJvc3BlY3Rpb25SZXNvbHZlclxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NoZW1hVG9QYXJhbWV0ZXJJbmZvKHNjaGVtYTogUGFyYW1TY2hlbWEgfCB1bmRlZmluZWQpOiBQYXJhbWV0ZXJJbmZvW10ge1xuICBpZiAoIXNjaGVtYSkgcmV0dXJuIFtdO1xuXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhzY2hlbWEpLm1hcCgoW25hbWUsIGRlZl0pID0+ICh7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBkZWYudHlwZSxcbiAgICByZXF1aXJlZDogZGVmLnJlcXVpcmVkID8/IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBkZWYuZGVzY3JpcHRpb24gPz8gYCR7bmFtZX0gcGFyYW1ldGVyYCxcbiAgICAuLi4oZGVmLmRlZmF1bHQgIT09IHVuZGVmaW5lZCA/IHsgZGVmYXVsdDogZGVmLmRlZmF1bHQgfSA6IHt9KSxcbiAgfSkpO1xufVxuXG4vKipcbiAqIEdldCBhbGwgc2NoZW1hLWRyaXZlbiBvcGVyYXRpb25zIHdpdGggdGhlaXIgZnVsbCBkZWZpbml0aW9uc1xuICogVXNlZCBieSBTY2hlbWFEaXNwYXRjaGVyIHRvIGl0ZXJhdGUgb3ZlciBkaXNwYXRjaGFibGUgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsU2NoZW1hT3BlcmF0aW9ucygpOiBSZWNvcmQ8c3RyaW5nLCBPcGVyYXRpb25EZWY+IHtcbiAgcmV0dXJuIFNDSEVNQV9EUklWRU5fT1BFUkFUSU9OUztcbn1cblxuLyoqXG4gKiBHZXQgYWxsIG9wZXJhdGlvbiBzY2hlbWFzIChkaXNwYXRjaC1kcml2ZW4gKyBpbnRyb3NwZWN0aW9uLW9ubHkpXG4gKiBVc2VkIGJ5IEludHJvc3BlY3Rpb25SZXNvbHZlciBmb3IgY29tcGxldGUgb3BlcmF0aW9uIGRvY3VtZW50YXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbE9wZXJhdGlvblNjaGVtYXMoKTogUmVjb3JkPHN0cmluZywgT3BlcmF0aW9uRGVmPiB7XG4gIHJldHVybiBBTExfT1BFUkFUSU9OX1NDSEVNQVM7XG59XG4iXX0=
|
|
1722
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlcmF0aW9uU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hhbmRsZXJzL21jcC1hcWwvT3BlcmF0aW9uU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFHSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUE2SzFDLCtFQUErRTtBQUMvRSxrREFBa0Q7QUFDbEQsK0VBQStFO0FBRS9FOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUF1QjtJQUN2RCxpQkFBaUIsRUFBRTtRQUNqQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxXQUFXLEVBQUUsa0VBQWtFO1FBQy9FLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFO1lBQ04sT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUU7WUFDeEUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUU7U0FDN0Q7UUFDRCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsMENBQTBDLEVBQUU7UUFDcEgsUUFBUSxFQUFFLENBQUMscUVBQXFFLENBQUM7S0FDbEY7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxrQkFBa0I7UUFDMUIsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxXQUFXLEVBQUUsMERBQTBEO1FBQ3ZFLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFO1lBQ04s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SCxNQUFNLFVBQVUscUJBQXFCLENBQUMsU0FBaUI7SUFDckQsT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBa0JEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE1BQStCO0lBQ25FLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFdkIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUk7UUFDSixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsSUFBSSxLQUFLO1FBQy9CLFdBQVcsRUFBRSxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsSUFBSSxZQUFZO1FBQ25ELEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDL0QsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxPQUFPLHdCQUF3QixDQUFDO0FBQ2xDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT3BlcmF0aW9uU2NoZW1hIC0gRGVjbGFyYXRpdmUgb3BlcmF0aW9uIGRlZmluaXRpb25zIGZvciBNQ1AtQVFMXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgc2NoZW1hLWRyaXZlbiBvcGVyYXRpb24gZGVmaW5pdGlvbnMgdGhhdCBlbmFibGU6XG4gKiAxLiBEZWNsYXJhdGl2ZSBvcGVyYXRpb24gY29uZmlndXJhdGlvbiAobm8gbWFudWFsIHN3aXRjaCBzdGF0ZW1lbnRzKVxuICogMi4gQXV0by1nZW5lcmF0ZWQgcGFyYW1ldGVyIHZhbGlkYXRpb25cbiAqIDMuIFR5cGUtc2FmZSBkaXNwYXRjaCB0byBoYW5kbGVyIG1ldGhvZHNcbiAqIDQuIFNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIG9wZXJhdGlvbiBtZXRhZGF0YVxuICpcbiAqIEFSQ0hJVEVDVFVSRTpcbiAqIE9wZXJhdGlvbnMgYXJlIGRlZmluZWQgd2l0aDpcbiAqIC0gZW5kcG9pbnQ6IENSVURFIGVuZHBvaW50IChDUkVBVEUsIFJFQUQsIFVQREFURSwgREVMRVRFLCBFWEVDVVRFKVxuICogLSBoYW5kbGVyOiBLZXkgaW4gSGFuZGxlclJlZ2lzdHJ5XG4gKiAtIG1ldGhvZDogTWV0aG9kIG5hbWUgb24gdGhlIGhhbmRsZXJcbiAqIC0gcGFyYW1zOiBQYXJhbWV0ZXIgZGVmaW5pdGlvbnMgd2l0aCB0eXBlcyBhbmQgbWFwcGluZ3NcbiAqIC0gZGVzY3JpcHRpb246IEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uXG4gKlxuICogVGhlIFNjaGVtYURpc3BhdGNoZXIgdXNlcyB0aGVzZSBkZWZpbml0aW9ucyB0byBhdXRvbWF0aWNhbGx5IHJvdXRlXG4gKiBvcGVyYXRpb25zIHRvIGhhbmRsZXIgbWV0aG9kcyB3aXRob3V0IG1hbnVhbCBkaXNwYXRjaCBjb2RlLlxuICpcbiAqIEBzZWUgSXNzdWUgIzI0NyAtIFNjaGVtYS1kcml2ZW4gb3BlcmF0aW9uIGRlZmluaXRpb25zXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDUlVERW5kcG9pbnQgfSBmcm9tICcuL09wZXJhdGlvblJvdXRlci5qcyc7XG5pbXBvcnQgeyBlbnYgfSBmcm9tICcuLi8uLi9jb25maWcvZW52LmpzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUGFyYW1ldGVyIFNjaGVtYSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFByaW1pdGl2ZSB0eXBlcyBzdXBwb3J0ZWQgaW4gcGFyYW1ldGVyIHNjaGVtYXNcbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1UeXBlID1cbiAgfCAnc3RyaW5nJ1xuICB8ICdudW1iZXInXG4gIHwgJ2Jvb2xlYW4nXG4gIHwgJ29iamVjdCdcbiAgfCAnYXJyYXknXG4gIHwgJ3N0cmluZ1tdJ1xuICB8ICdzdHJpbmcgfCBzdHJpbmdbXScgLy8gVW5pb24gdHlwZSBmb3IgZmllbGRzIHRoYXQgYWNjZXB0IHByZXNldCBzdHJpbmcgb3IgYXJyYXlcbiAgfCAndW5rbm93bic7IC8vIEZvciBwYXJhbXMgdGhhdCBhY2NlcHQgYW55IHR5cGVcblxuLyoqXG4gKiBQYXJhbWV0ZXIgZGVmaW5pdGlvbiBpbiBvcGVyYXRpb24gc2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1EZWYge1xuICAvKiogUGFyYW1ldGVyIHR5cGUgZm9yIHZhbGlkYXRpb24gKi9cbiAgdHlwZTogUGFyYW1UeXBlO1xuICAvKiogV2hldGhlciB0aGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKiogRGVmYXVsdCB2YWx1ZSBpZiBub3QgcHJvdmlkZWQgKi9cbiAgZGVmYXVsdD86IHVua25vd247XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIE1hcHMgaW5wdXQgcGFyYW0gbmFtZSB0byBoYW5kbGVyIGFyZyBuYW1lIChpZiBkaWZmZXJlbnQpICovXG4gIG1hcFRvPzogc3RyaW5nO1xuICAvKipcbiAgICogQWx0ZXJuYXRpdmUgc291cmNlcyB0byBjaGVjayBmb3IgdGhpcyBwYXJhbWV0ZXIgdmFsdWUuXG4gICAqIENoZWNrZWQgaW4gb3JkZXIgYmVmb3JlIGZhbGxpbmcgYmFjayB0byB0aGUgcHJpbWFyeSBwYXJhbSBuYW1lLlxuICAgKlxuICAgKiBTdXBwb3J0cyBkb3Qgbm90YXRpb24gZm9yIG5lc3RlZCBhY2Nlc3M6XG4gICAqIC0gJ2lucHV0LmVsZW1lbnRUeXBlJyAtIGNoZWNrcyBpbnB1dC5lbGVtZW50VHlwZVxuICAgKiAtICdwYXJhbXMudHlwZScgLSBjaGVja3MgcGFyYW1zLnR5cGUgKHNhbWUgYXMganVzdCBjaGVja2luZyB0aGUgcGFyYW0pXG4gICAqXG4gICAqIFVzZSBjYXNlOiBlbGVtZW50VHlwZSBjYW4gY29tZSBmcm9tIGlucHV0LmVsZW1lbnRUeXBlIE9SIHBhcmFtcy50eXBlXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLnR5cGUnXSB9XG4gICAqL1xuICBzb3VyY2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZGVmaW5pdGlvbiBmb3IgaW50cm9zcGVjdGlvblxuICogQHNlZSBJc3N1ZSAjMjU0IC0gQXV0by1nZW5lcmF0ZSBpbnRyb3NwZWN0aW9uIGZyb20gc2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0dXJuVHlwZURlZiB7XG4gIC8qKiBSZXR1cm4gdHlwZSBuYW1lIChlLmcuLCAnRWxlbWVudExpc3QnLCAnU2VhcmNoUmVzdWx0JykgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVHlwZSBraW5kIGZvciBjYXRlZ29yaXphdGlvbiAqL1xuICBraW5kOiAnZW51bScgfCAnb2JqZWN0JyB8ICdzY2FsYXInIHwgJ3VuaW9uJztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoYXQgaXMgcmV0dXJuZWQgKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXIgc2NoZW1hIC0gbWFwIG9mIHBhcmFtZXRlciBuYW1lcyB0byBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgdHlwZSBQYXJhbVNjaGVtYSA9IFJlY29yZDxzdHJpbmcsIFBhcmFtRGVmPjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gT3BlcmF0aW9uIFNjaGVtYSBUeXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEhhbmRsZXIga2V5cyAtIHRoZXNlIG1hcCB0byBwcm9wZXJ0aWVzIGluIEhhbmRsZXJSZWdpc3RyeVxuICovXG5leHBvcnQgdHlwZSBIYW5kbGVyS2V5ID1cbiAgfCAnZWxlbWVudENSVUQnXG4gIHwgJ21lbW9yeU1hbmFnZXInXG4gIHwgJ2FnZW50TWFuYWdlcidcbiAgfCAndGVtcGxhdGVSZW5kZXJlcidcbiAgfCAnZWxlbWVudFF1ZXJ5U2VydmljZSdcbiAgfCAnY29sbGVjdGlvbkhhbmRsZXInXG4gIHwgJ3BvcnRmb2xpb0hhbmRsZXInXG4gIHwgJ2F1dGhIYW5kbGVyJ1xuICB8ICdjb25maWdIYW5kbGVyJ1xuICB8ICdlbmhhbmNlZEluZGV4SGFuZGxlcidcbiAgfCAncGVyc29uYUhhbmRsZXInXG4gIHwgJ3N5bmNIYW5kbGVyJ1xuICB8ICdidWlsZEluZm9TZXJ2aWNlJ1xuICB8ICdtY3BBcWxIYW5kbGVyJ1xuICB8ICdjYWNoZU1lbW9yeUJ1ZGdldCc7XG5cbi8qKlxuICogQ29tcGxldGUgb3BlcmF0aW9uIHNjaGVtYSBkZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlcmF0aW9uRGVmIHtcbiAgLyoqIENSVURFIGVuZHBvaW50IHRoaXMgb3BlcmF0aW9uIGJlbG9uZ3MgdG8gKi9cbiAgZW5kcG9pbnQ6IENSVURFbmRwb2ludDtcbiAgLyoqIEhhbmRsZXIga2V5IGluIEhhbmRsZXJSZWdpc3RyeSAqL1xuICBoYW5kbGVyOiBIYW5kbGVyS2V5O1xuICAvKiogTWV0aG9kIG5hbWUgdG8gY2FsbCBvbiB0aGUgaGFuZGxlciAqL1xuICBtZXRob2Q6IHN0cmluZztcbiAgLyoqIFBhcmFtZXRlciBkZWZpbml0aW9ucyAqL1xuICBwYXJhbXM/OiBQYXJhbVNjaGVtYTtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBoYW5kbGVyIGlzIG9wdGlvbmFsIChtYXkgbm90IGJlIGNvbmZpZ3VyZWQpICovXG4gIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEN1c3RvbSBhcmd1bWVudCBidWlsZGVyIGZvciBjb21wbGV4IGNhc2VzOlxuICAgKiAtICdzaW5nbGUnOiBQYXNzIHBhcmFtcyBpbiBzY2hlbWEgb3JkZXIgYXMgcG9zaXRpb25hbCBhcmdzIChkZWZhdWx0KVxuICAgKiAtICdzcHJlYWQnOiBQYXNzIChxdWVyeSwgcGFyYW1zKSAtIGZvciBzZWFyY2gtc3R5bGUgb3BlcmF0aW9uc1xuICAgKiAtICduYW1lZCc6IFBhc3MgYWxsIHBhcmFtcyBhcyBhIHNpbmdsZSBuYW1lZCBvYmplY3RcbiAgICogLSAnbmFtZWRXaXRoVHlwZSc6IExpa2UgJ25hbWVkJyBidXQgaW5jbHVkZXMgcmVzb2x2ZWQgJ3R5cGUnIHBhcmFtXG4gICAqIC0gJ3R5cGVXaXRoUGFyYW1zJzogUGFzcyAodHlwZSwgZnVsbFBhcmFtcykgZm9yIG9wZXJhdGlvbnMgbmVlZGluZyB0eXBlICsgcGFnaW5hdGlvblxuICAgKi9cbiAgYXJnQnVpbGRlcj86ICdzaW5nbGUnIHwgJ3NwcmVhZCcgfCAnbmFtZWQnIHwgJ25hbWVkV2l0aFR5cGUnIHwgJ3R5cGVXaXRoUGFyYW1zJztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBvcGVyYXRpb24gbmVlZHMgYWNjZXNzIHRvIHRoZSBmdWxsIE9wZXJhdGlvbklucHV0LlxuICAgKiBXaGVuIHRydWUsIFNjaGVtYURpc3BhdGNoZXIgcGFzc2VzIHRoZSBmdWxsIGlucHV0IGZvciBzb3VyY2UgcmVzb2x1dGlvbi5cbiAgICogUmVxdWlyZWQgZm9yIG9wZXJhdGlvbnMgdGhhdCB1c2UgcGFyYW0gc291cmNlcyBsaWtlICdpbnB1dC5lbGVtZW50VHlwZScuXG4gICAqL1xuICBuZWVkc0Z1bGxJbnB1dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBdXRvbWF0aWMgcGFyYW1ldGVyIG5hbWUgY29udmVyc2lvbiBzdHlsZS5cbiAgICogLSAnc25ha2VUb0NhbWVsJzogQ29udmVydCBzbmFrZV9jYXNlIHBhcmFtcyB0byBjYW1lbENhc2UgZm9yIGhhbmRsZXJcbiAgICpcbiAgICogV2hlbiBzZXQsIGFsbCBwYXJhbXMgYXJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIGJlZm9yZSBiZWluZyBwYXNzZWRcbiAgICogdG8gdGhlIGhhbmRsZXIuIEluZGl2aWR1YWwgcGFyYW0gYG1hcFRvYCBvdmVycmlkZXMgc3RpbGwgdGFrZSBwcmVjZWRlbmNlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBJbnB1dDogeyBkcnlfcnVuOiB0cnVlLCBtYXhfcmVzdWx0czogMTAgfVxuICAgKiAvLyBIYW5kbGVyIHJlY2VpdmVzOiB7IGRyeVJ1bjogdHJ1ZSwgbWF4UmVzdWx0czogMTAgfVxuICAgKi9cbiAgcGFyYW1TdHlsZT86ICdzbmFrZVRvQ2FtZWwnO1xuICAvKipcbiAgICogQ2FwYWJpbGl0eSBjYXRlZ29yeSBmb3IgZ2V0X2NhcGFiaWxpdGllcyBncm91cGluZy5cbiAgICogT3BlcmF0aW9ucyBhcmUgZ3JvdXBlZCBieSB1c2VyLWludGVudCBjYXRlZ29yaWVzIGluIHRoZSBjYXBhYmlsaXRpZXMgbWFwLlxuICAgKiBPcGVyYXRpb25zIHdpdGhvdXQgYSBjYXRlZ29yeSBhcHBlYXIgdW5kZXIgXCJPdGhlclwiLlxuICAgKiBAc2VlIElzc3VlICMxNzYwIC0gZ2V0X2NhcGFiaWxpdGllcyBvcGVyYXRpb25cbiAgICovXG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAvKipcbiAgICogUmV0dXJuIHR5cGUgaW5mb3JtYXRpb24gZm9yIGludHJvc3BlY3Rpb25cbiAgICogQHNlZSBJc3N1ZSAjMjU0IC0gQXV0by1nZW5lcmF0ZSBpbnRyb3NwZWN0aW9uIGZyb20gc2NoZW1hXG4gICAqL1xuICByZXR1cm5zPzogUmV0dXJuVHlwZURlZjtcbiAgLyoqXG4gICAqIFVzYWdlIGV4YW1wbGVzIGZvciBpbnRyb3NwZWN0aW9uXG4gICAqIEBzZWUgSXNzdWUgIzI1NCAtIEF1dG8tZ2VuZXJhdGUgaW50cm9zcGVjdGlvbiBmcm9tIHNjaGVtYVxuICAgKi9cbiAgZXhhbXBsZXM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE5vcm1hbGl6ZXIgdG8gdXNlIGZvciBwYXJhbWV0ZXIgdHJhbnNmb3JtYXRpb24uXG4gICAqXG4gICAqIElmIHNwZWNpZmllZCwgdGhlIG5vcm1hbGl6ZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGUgaGFuZGxlciBtZXRob2QsXG4gICAqIHRyYW5zZm9ybWluZyByYXcgaW5wdXQgcGFyYW1ldGVycyBpbnRvIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGhhbmRsZXIuXG4gICAqXG4gICAqIE5vcm1hbGl6ZXJzIGFyZSByZWdpc3RlcmVkIGluIE5vcm1hbGl6ZXJSZWdpc3RyeSBhbmQgbG9va2VkIHVwIGJ5IG5hbWUuXG4gICAqXG4gICAqIEBzZWUgSXNzdWUgIzI0MyAtIFNjaGVtYS1kcml2ZW4gbm9ybWFsaXplciBhcmNoaXRlY3R1cmVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gVXNlIHRoZSBzZWFyY2ggcGFyYW1zIG5vcm1hbGl6ZXJcbiAgICogbm9ybWFsaXplcjogJ3NlYXJjaFBhcmFtcydcbiAgICovXG4gIG5vcm1hbGl6ZXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29tcGxldGUgb3BlcmF0aW9uIHNjaGVtYSAtIG1hcHMgb3BlcmF0aW9uIG5hbWVzIHRvIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIE9wZXJhdGlvblNjaGVtYU1hcCA9IFJlY29yZDxzdHJpbmcsIE9wZXJhdGlvbkRlZj47XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbGxlY3Rpb24gT3BlcmF0aW9ucyBTY2hlbWEgKFByb29mIG9mIENvbmNlcHQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29sbGVjdGlvbiBvcGVyYXRpb25zIHNjaGVtYVxuICpcbiAqIFRoZXNlIGFyZSB0aGUgZmlyc3Qgb3BlcmF0aW9ucyBtaWdyYXRlZCB0byBzY2hlbWEtZHJpdmVuIGRpc3BhdGNoLlxuICogRWFjaCBvcGVyYXRpb24gZGVmaW5lczpcbiAqIC0gV2hlcmUgaXQgbGl2ZXMgKGVuZHBvaW50KVxuICogLSBXaGF0IGhhbmRsZXIgdG8gdXNlXG4gKiAtIFdoYXQgbWV0aG9kIHRvIGNhbGxcbiAqIC0gV2hhdCBwYXJhbWV0ZXJzIGl0IGFjY2VwdHNcbiAqL1xuZXhwb3J0IGNvbnN0IENPTExFQ1RJT05fT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBicm93c2VfY29sbGVjdGlvbjoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdicm93c2VDb2xsZWN0aW9uJyxcbiAgICBjYXRlZ29yeTogJ0NvbW11bml0eSBDb2xsZWN0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jyb3dzZSB0aGUgRG9sbGhvdXNlTUNQIGNvbW11bml0eSBjb2xsZWN0aW9uIGJ5IHNlY3Rpb24gYW5kIHR5cGUnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgc2VjdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDb2xsZWN0aW9uIHNlY3Rpb24gdG8gYnJvd3NlJyB9LFxuICAgICAgdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUgZmlsdGVyJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29sbGVjdGlvbkJyb3dzZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0Jyb3dzZWFibGUgY29sbGVjdGlvbiBzZWN0aW9ucyBhbmQgaXRlbXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiYnJvd3NlX2NvbGxlY3Rpb25cIiwgcGFyYW1zOiB7IHNlY3Rpb246IFwicGVyc29uYXNcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2NvbGxlY3Rpb246IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQ29sbGVjdGlvbicsXG4gICAgY2F0ZWdvcnk6ICdDb21tdW5pdHkgQ29sbGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTZWFyY2ggdGhlIGNvbW11bml0eSBjb2xsZWN0aW9uIGZvciBlbGVtZW50cyBieSBrZXl3b3JkcycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBxdWVyeTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHF1ZXJ5JyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29sbGVjdGlvblNlYXJjaFJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ01hdGNoaW5nIGVsZW1lbnRzIGZyb20gY29sbGVjdGlvbicgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzZWFyY2hfY29sbGVjdGlvblwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY29kZSByZXZpZXdcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2NvbGxlY3Rpb25fZW5oYW5jZWQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQ29sbGVjdGlvbkVuaGFuY2VkJyxcbiAgICBjYXRlZ29yeTogJ0NvbW11bml0eSBDb2xsZWN0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FkdmFuY2VkIHNlYXJjaCB3aXRoIHBhZ2luYXRpb24sIGZpbHRlcmluZywgYW5kIHNvcnRpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICdzcHJlYWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeScgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VuaGFuY2VkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIHNlYXJjaCByZXN1bHRzIHdpdGggbWV0YWRhdGEnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwic2VhcmNoX2NvbGxlY3Rpb25fZW5oYW5jZWRcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImFzc2lzdGFudFwiLCBsaW1pdDogMTAgfSB9J10sXG4gIH0sXG4gIGdldF9jb2xsZWN0aW9uX2NvbnRlbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZ2V0Q29sbGVjdGlvbkNvbnRlbnQnLFxuICAgIGNhdGVnb3J5OiAnQ29tbXVuaXR5IENvbGxlY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGNvbnRlbnQgZnJvbSB0aGUgY29sbGVjdGlvbicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250ZW50IHBhdGggaW4gY29sbGVjdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NvbGxlY3Rpb25Db250ZW50Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRnVsbCBjb250ZW50IGFuZCBtZXRhZGF0YSBmb3IgY29sbGVjdGlvbiBpdGVtJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9jb2xsZWN0aW9uX2NvbnRlbnRcIiwgcGFyYW1zOiB7IHBhdGg6IFwicGVyc29uYXMvY3JlYXRpdmUtd3JpdGVyLm1kXCIgfSB9J10sXG4gIH0sXG4gIGdldF9jb2xsZWN0aW9uX2NhY2hlX2hlYWx0aDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdnZXRDb2xsZWN0aW9uQ2FjaGVIZWFsdGgnLFxuICAgIGNhdGVnb3J5OiAnQ29tbXVuaXR5IENvbGxlY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGhlYWx0aCBzdGF0dXMgYW5kIHN0YXRpc3RpY3MgZm9yIHRoZSBjb2xsZWN0aW9uIGNhY2hlJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NhY2hlSGVhbHRoU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ2FjaGUgaGVhbHRoIG1ldHJpY3MgYW5kIGRpYWdub3N0aWNzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9jb2xsZWN0aW9uX2NhY2hlX2hlYWx0aFwiIH0nXSxcbiAgfSxcbiAgaW5zdGFsbF9jb2xsZWN0aW9uX2NvbnRlbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2NvbGxlY3Rpb25IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdpbnN0YWxsQ29udGVudCcsXG4gICAgY2F0ZWdvcnk6ICdDb21tdW5pdHkgQ29sbGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdJbnN0YWxsIGFuIGVsZW1lbnQgZnJvbSB0aGUgY29sbGVjdGlvbiB0byB5b3VyIGxvY2FsIHBvcnRmb2xpbycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBwYXRoOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdDb250ZW50IHBhdGggdG8gaW5zdGFsbCcgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0luc3RhbGxSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbnN0YWxsYXRpb24gcmVzdWx0IHdpdGggZWxlbWVudCBuYW1lLCB0eXBlLCBhbmQgbG9jYWwgZmlsZSBwYXRoJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImluc3RhbGxfY29sbGVjdGlvbl9jb250ZW50XCIsIHBhcmFtczogeyBwYXRoOiBcInBlcnNvbmFzL2NyZWF0aXZlLXdyaXRlci5tZFwiIH0gfSddLFxuICB9LFxuICBzdWJtaXRfY29sbGVjdGlvbl9jb250ZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdjb2xsZWN0aW9uSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc3VibWl0Q29udGVudCcsXG4gICAgY2F0ZWdvcnk6ICdDb21tdW5pdHkgQ29sbGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTdWJtaXQgYSBsb2NhbCBlbGVtZW50IHRvIHRoZSBjb21tdW5pdHkgY29sbGVjdGlvbiB2aWEgR2l0SHViJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGNvbnRlbnQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbnRlbnQgdG8gc3VibWl0JyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU3VibWl0UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3VibWlzc2lvbiByZXN1bHQgd2l0aCBHaXRIdWIgUFIgVVJMIGFuZCBzdGF0dXMgbWVzc2FnZScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzdWJtaXRfY29sbGVjdGlvbl9jb250ZW50XCIsIHBhcmFtczogeyBjb250ZW50OiBcInBlcnNvbmFzL215LXBlcnNvbmFcIiB9IH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEF1dGggT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IEFVVEhfT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBzZXR1cF9naXRodWJfYXV0aDoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAnYXV0aEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ3NldHVwR2l0SHViQXV0aCcsXG4gICAgY2F0ZWdvcnk6ICdHaXRIdWIgQXV0aGVudGljYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnU2V0IHVwIEdpdEh1YiBhdXRoZW50aWNhdGlvbiB1c2luZyBkZXZpY2UgZmxvdycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7fSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdBdXRoU2V0dXBSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdEZXZpY2UgZmxvdyBzZXR1cDogeyB1c2VyQ29kZSwgdmVyaWZpY2F0aW9uVXJsLCBleHBpcmVzSW4sIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzZXR1cF9naXRodWJfYXV0aFwiIH0nXSxcbiAgfSxcbiAgY2hlY2tfZ2l0aHViX2F1dGg6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdhdXRoSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnY2hlY2tHaXRIdWJBdXRoJyxcbiAgICBjYXRlZ29yeTogJ0dpdEh1YiBBdXRoZW50aWNhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdDaGVjayBjdXJyZW50IEdpdEh1YiBhdXRoZW50aWNhdGlvbiBzdGF0dXMnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge30sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQXV0aFN0YXR1cycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0N1cnJlbnQgYXV0aGVudGljYXRpb24gc3RhdGUgYW5kIHVzZXIgaW5mbycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJjaGVja19naXRodWJfYXV0aFwiIH0nXSxcbiAgfSxcbiAgY2xlYXJfZ2l0aHViX2F1dGg6IHtcbiAgICBlbmRwb2ludDogJ0RFTEVURScsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdjbGVhckdpdEh1YkF1dGgnLFxuICAgIGNhdGVnb3J5OiAnR2l0SHViIEF1dGhlbnRpY2F0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlbW92ZSBHaXRIdWIgYXV0aGVudGljYXRpb24gYW5kIGRpc2Nvbm5lY3QnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge30sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnT3BlcmF0aW9uUmVzdWx0Jywga2luZDogJ3VuaW9uJywgZGVzY3JpcHRpb246ICdTdWNjZXNzIG9yIGZhaWx1cmUgc3RhdHVzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImNsZWFyX2dpdGh1Yl9hdXRoXCIgfSddLFxuICB9LFxuICBjb25maWd1cmVfb2F1dGg6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdjb25maWd1cmVPQXV0aCcsXG4gICAgY2F0ZWdvcnk6ICdHaXRIdWIgQXV0aGVudGljYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlndXJlIEdpdEh1YiBPQXV0aCBjbGllbnQgSUQnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgY2xpZW50X2lkOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09BdXRoIGNsaWVudCBJRCcgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ09BdXRoQ29uZmlnJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnT0F1dGggY29uZmlndXJhdGlvbiBzdGF0dXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiY29uZmlndXJlX29hdXRoXCIsIHBhcmFtczogeyBjbGllbnRfaWQ6IFwieW91ci1jbGllbnQtaWRcIiB9IH0nXSxcbiAgfSxcbiAgb2F1dGhfaGVscGVyX3N0YXR1czoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2F1dGhIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdnZXRPQXV0aEhlbHBlclN0YXR1cycsXG4gICAgY2F0ZWdvcnk6ICdHaXRIdWIgQXV0aGVudGljYXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGRpYWdub3N0aWMgaW5mb3JtYXRpb24gYWJvdXQgT0F1dGggaGVscGVyIHByb2Nlc3MnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHBhcmFtczoge1xuICAgICAgdmVyYm9zZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnSW5jbHVkZSB2ZXJib3NlIGRpYWdub3N0aWNzJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnT0F1dGhIZWxwZXJTdGF0dXMnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdIZWxwZXIgcHJvY2VzcyBkaWFnbm9zdGljcycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJvYXV0aF9oZWxwZXJfc3RhdHVzXCIsIHBhcmFtczogeyB2ZXJib3NlOiB0cnVlIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRW5oYW5jZWQgSW5kZXggT3BlcmF0aW9ucyBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IEVOSEFOQ0VEX0lOREVYX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgZmluZF9zaW1pbGFyX2VsZW1lbnRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZW5oYW5jZWRJbmRleEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2ZpbmRTaW1pbGFyRWxlbWVudHMnLFxuICAgIGNhdGVnb3J5OiAnSW50ZWxsaWdlbmNlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbmQgc2VtYW50aWNhbGx5IHNpbWlsYXIgZWxlbWVudHMgdXNpbmcgTkxQIHNjb3JpbmcnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXBUbzogJ2VsZW1lbnRUeXBlJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDEwIH0sXG4gICAgICB0aHJlc2hvbGQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDAuNSB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU2ltaWxhckVsZW1lbnRzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnTGlzdCBvZiBzaW1pbGFyIGVsZW1lbnRzIHdpdGggc2ltaWxhcml0eSBzY29yZXMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZmluZF9zaW1pbGFyX2VsZW1lbnRzXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY3JlYXRpdmUtd3JpdGVyXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIGxpbWl0OiA1IH0gfSddLFxuICB9LFxuICBnZXRfZWxlbWVudF9yZWxhdGlvbnNoaXBzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZW5oYW5jZWRJbmRleEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2dldEVsZW1lbnRSZWxhdGlvbnNoaXBzJyxcbiAgICBjYXRlZ29yeTogJ0ludGVsbGlnZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYWxsIHJlbGF0aW9uc2hpcHMgZm9yIGEgc3BlY2lmaWMgZWxlbWVudCcsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIG1hcFRvOiAnZWxlbWVudFR5cGUnIH0sXG4gICAgICByZWxhdGlvbnNoaXBfdHlwZXM6IHsgdHlwZTogJ3N0cmluZ1tdJywgbWFwVG86ICdyZWxhdGlvbnNoaXBUeXBlcycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnRSZWxhdGlvbnNoaXBzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUmVsYXRpb25zaGlwIGdyYXBoIGZvciB0aGUgZWxlbWVudCcgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJnZXRfZWxlbWVudF9yZWxhdGlvbnNoaXBzXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiB9IH0nXSxcbiAgfSxcbiAgc2VhcmNoX2J5X3ZlcmI6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbmhhbmNlZEluZGV4SGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQnlWZXJiJyxcbiAgICBjYXRlZ29yeTogJ0ludGVsbGlnZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdTZWFyY2ggZm9yIGVsZW1lbnRzIHRoYXQgaGFuZGxlIGEgc3BlY2lmaWMgYWN0aW9uIHZlcmInLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICB2ZXJiOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDIwIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdWZXJiU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRWxlbWVudHMgbWF0Y2hpbmcgdGhlIGFjdGlvbiB2ZXJiJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9ieV92ZXJiXCIsIHBhcmFtczogeyB2ZXJiOiBcImFuYWx5emVcIiwgbGltaXQ6IDEwIH0gfSddLFxuICB9LFxuICBnZXRfcmVsYXRpb25zaGlwX3N0YXRzOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZW5oYW5jZWRJbmRleEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2dldFJlbGF0aW9uc2hpcFN0YXRzJyxcbiAgICBjYXRlZ29yeTogJ0ludGVsbGlnZW5jZScsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgc3RhdGlzdGljcyBhYm91dCBFbmhhbmNlZCBJbmRleCByZWxhdGlvbnNoaXBzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1JlbGF0aW9uc2hpcFN0YXRzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRlIHN0YXRpc3RpY3MgYWJvdXQgZWxlbWVudCByZWxhdGlvbnNoaXBzJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImdldF9yZWxhdGlvbnNoaXBfc3RhdHNcIiB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUZW1wbGF0ZSBPcGVyYXRpb25zIFNjaGVtYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgVEVNUExBVEVfT1BFUkFUSU9OUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICByZW5kZXI6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICd0ZW1wbGF0ZVJlbmRlcmVyJyxcbiAgICBtZXRob2Q6ICdyZW5kZXInLFxuICAgIGNhdGVnb3J5OiAnVGVtcGxhdGUgUmVuZGVyaW5nJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlbmRlciBhIHRlbXBsYXRlIHdpdGggcHJvdmlkZWQgdmFyaWFibGVzLiBGb3Igc2VjdGlvbi1mb3JtYXQgdGVtcGxhdGVzICg8dGVtcGxhdGU+LCA8c3R5bGU+LCA8c2NyaXB0PiksIHJlbmRlcnMgdGhlIDx0ZW1wbGF0ZT4gc2VjdGlvbiBieSBkZWZhdWx0IOKAlCB2YXJpYWJsZSBzdWJzdGl0dXRpb24gb25seSBhcHBsaWVzIHRoZXJlLiBVc2Ugc2VjdGlvbjogXCJzdHlsZVwiIG9yIFwic2NyaXB0XCIgdG8gcmV0cmlldmUgcmF3IHBhc3N0aHJvdWdoIHNlY3Rpb25zIHdoZXJlIH19IGlzIHNhZmUuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIC8vIElzc3VlICMyOTA6IFVzZSBlbGVtZW50X25hbWUgZm9yIGNvbnNpc3RlbmN5XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1RlbXBsYXRlIG5hbWUnIH0sXG4gICAgICB2YXJpYWJsZXM6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnVmFyaWFibGVzIHRvIHN1YnN0aXR1dGUgaW4gdGhlIDx0ZW1wbGF0ZT4gc2VjdGlvbiAoZS5nLiB7IFwidGl0bGVcIjogXCJNeSBQYWdlXCIsIFwidXNlclwiOiBcIkFsaWNlXCIgfSknIH0sXG4gICAgICBzZWN0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogZmFsc2UsIGRlc2NyaXB0aW9uOiAnRXh0cmFjdCBhIHNwZWNpZmljIHJhdyBzZWN0aW9uIHdpdGhvdXQgdmFyaWFibGUgc3Vic3RpdHV0aW9uOiBcInN0eWxlXCIgb3IgXCJzY3JpcHRcIi4gVXNlZnVsIGZvciBDU1MgdGhlbWUgdGVtcGxhdGVzIG9yIEpTLW9ubHkgdGVtcGxhdGVzLiBPbmx5IHZhbGlkIGZvciBzZWN0aW9uLWZvcm1hdCB0ZW1wbGF0ZXMuJyB9LFxuICAgICAgYWxsX3NlY3Rpb25zOiB7IHR5cGU6ICdib29sZWFuJywgcmVxdWlyZWQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ1JldHVybiBhbGwgc2VjdGlvbnMgdG9nZXRoZXI6IHsgdGVtcGxhdGU6IHJlbmRlcmVkLCBzdHlsZTogcmF3LCBzY3JpcHQ6IHJhdyB9LiBVc2Ugd2hlbiB5b3UgbmVlZCB0aGUgcmVuZGVyZWQgSFRNTCBhbG9uZ3NpZGUgaXRzIENTUyBhbmQgSlMuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUmVuZGVyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUmVuZGVyZWQgdGVtcGxhdGUgY29udGVudC4gY29udGVudCBmaWVsZCBoYXMgdGhlIHJlc3VsdCBzdHJpbmc7IHNlY3Rpb25zIGZpZWxkIHBvcHVsYXRlZCB3aGVuIGFsbF9zZWN0aW9uczogdHJ1ZS4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZW5kZXJcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJtZWV0aW5nLW5vdGVzXCIsIHZhcmlhYmxlczogeyBkYXRlOiBcIjIwMjQtMDEtMTVcIiwgYXR0ZW5kZWVzOiBbXCJBbGljZVwiLCBcIkJvYlwiXSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicmVuZGVyXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiZGFzaGJvYXJkLXRoZW1lLWRhcmtcIiwgc2VjdGlvbjogXCJzdHlsZVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicmVuZGVyXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiZGFzaGJvYXJkLXBhZ2VcIiwgdmFyaWFibGVzOiB7IHRpdGxlOiBcIk15IERhc2hib2FyZFwiIH0sIGFsbF9zZWN0aW9uczogdHJ1ZSB9IH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJbnRyb3NwZWN0aW9uIE9wZXJhdGlvbnMgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBJTlRST1NQRUNUSU9OX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgaW50cm9zcGVjdDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJywgLy8gVXNlcyBJbnRyb3NwZWN0aW9uUmVzb2x2ZXIgZGlyZWN0bHlcbiAgICBtZXRob2Q6ICdfX2ludHJvc3BlY3RfXycsIC8vIFNwZWNpYWwgbWFya2VyIGZvciBpbnRyb3NwZWN0aW9uXG4gICAgY2F0ZWdvcnk6ICdTeXN0ZW0gSW50cm9zcGVjdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSBhdmFpbGFibGUgb3BlcmF0aW9ucywgdHlwZXMsIGFuZCBlbGVtZW50IGZvcm1hdCBzcGVjcyBmb3IgZGlzY292ZXJ5JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246IFwiV2hhdCB0byBpbnRyb3NwZWN0OiAnb3BlcmF0aW9ucycgKGxpc3QvZGV0YWlsIG9wZXJhdGlvbnMpLCAndHlwZXMnIChsaXN0L2RldGFpbCB0eXBlIGRlZmluaXRpb25zKSwgJ2Zvcm1hdCcgKGVsZW1lbnQgY3JlYXRpb24gZm9ybWF0IHNwZWNzIOKAlCByZXF1aXJlZC9vcHRpb25hbCBmaWVsZHMsIHN5bnRheCwgZXhhbXBsZXMpLCAnY2F0ZWdvcmllcycgKGNhdGVnb3J5IGZvcm1hdCBydWxlcyArIGhvdyB0byBkaXNjb3ZlciBleGlzdGluZyBjYXRlZ29yaWVzIHZpYSBxdWVyeV9lbGVtZW50cykuIERlZmF1bHQ6ICdvcGVyYXRpb25zJ1wiIH0sXG4gICAgICBuYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogXCJTcGVjaWZpYyBpdGVtIG5hbWUuIEZvciAnb3BlcmF0aW9ucyc6IG9wZXJhdGlvbiBuYW1lLiBGb3IgJ3R5cGVzJzogdHlwZSBuYW1lLiBGb3IgJ2Zvcm1hdCc6IGVsZW1lbnQgdHlwZSAoZS5nLiAndGVtcGxhdGUnLCAncGVyc29uYScpLiBOb3QgdXNlZCBmb3IgJ2NhdGVnb3JpZXMnLiBPbWl0IGZvciBvdmVydmlldy5cIiB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnSW50cm9zcGVjdGlvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ09wZXJhdGlvbnMsIHR5cGVzLCBvciBmb3JtYXQgc3BlY2lmaWNhdGlvbiBpbmZvcm1hdGlvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImludHJvc3BlY3RcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcIm9wZXJhdGlvbnNcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImludHJvc3BlY3RcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcIm9wZXJhdGlvbnNcIiwgbmFtZTogXCJjcmVhdGVfZWxlbWVudFwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwidHlwZXNcIiwgbmFtZTogXCJFbGVtZW50VHlwZVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiZm9ybWF0XCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJpbnRyb3NwZWN0XCIsIHBhcmFtczogeyBxdWVyeTogXCJmb3JtYXRcIiwgbmFtZTogXCJ0ZW1wbGF0ZVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiaW50cm9zcGVjdFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY2F0ZWdvcmllc1wiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X2NhcGFiaWxpdGllczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJywgLy8gVXNlcyBJbnRyb3NwZWN0aW9uUmVzb2x2ZXIgZGlyZWN0bHlcbiAgICBtZXRob2Q6ICdfX2NhcGFiaWxpdGllc19fJywgLy8gU3BlY2lhbCBtYXJrZXIgZm9yIGNhcGFiaWxpdGllc1xuICAgIGNhdGVnb3J5OiAnU3lzdGVtIEludHJvc3BlY3Rpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGEgaGlnaC1sZXZlbCBtYXAgb2YgYWxsIHNlcnZlciBjYXBhYmlsaXRpZXMgZ3JvdXBlZCBieSB1c2VyIGludGVudC4gUmV0dXJucyBicmllZiBkZXNjcmlwdGlvbnMgb2YgZXZlcnkgYXZhaWxhYmxlIG9wZXJhdGlvbiBvcmdhbml6ZWQgYnkgY2F0ZWdvcnkuIFVzZSBpbnRyb3NwZWN0IGZvciBmdWxsIGRldGFpbHMgb24gYW55IHNwZWNpZmljIG9wZXJhdGlvbi4nLFxuICAgIHBhcmFtczoge1xuICAgICAgY2F0ZWdvcnk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyIHRvIGEgc3BlY2lmaWMgY2F0ZWdvcnkgbmFtZS4gT21pdCB0byBzZWUgYWxsIGNhdGVnb3JpZXMuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ2FwYWJpbGl0aWVzUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ2F0ZWdvcml6ZWQgY2FwYWJpbGl0eSBtYXAgd2l0aCBicmllZiBkZXNjcmlwdGlvbnMsIHNvdXJjZXMsIGFuZCBzdGF0dXMnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfY2FwYWJpbGl0aWVzXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2NhcGFiaWxpdGllc1wiLCBwYXJhbXM6IHsgY2F0ZWdvcnk6IFwiRWxlbWVudCBMaWZlY3ljbGVcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQZXJzb25hIE9wZXJhdGlvbnMgU2NoZW1hXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBQRVJTT05BX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgaW1wb3J0X3BlcnNvbmE6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ3BlcnNvbmFIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdpbXBvcnRQZXJzb25hJyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgTGlmZWN5Y2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ltcG9ydCBhIHBlcnNvbmEgZnJvbSBhIGZpbGUgcGF0aCBvciBKU09OIHN0cmluZycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgcGFyYW1zOiB7XG4gICAgICBzb3VyY2U6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0ZpbGUgcGF0aCBvciBKU09OIHN0cmluZycgfSxcbiAgICAgIG92ZXJ3cml0ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnT3ZlcndyaXRlIGV4aXN0aW5nIHBlcnNvbmEnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdJbXBvcnRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbXBvcnQgc3RhdHVzIGFuZCBwZXJzb25hIGluZm8nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiaW1wb3J0X3BlcnNvbmFcIiwgcGFyYW1zOiB7IHNvdXJjZTogXCIvcGF0aC90by9wZXJzb25hLm1kXCIsIG92ZXJ3cml0ZTogdHJ1ZSB9IH0nXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENvbmZpZyBPcGVyYXRpb25zIFNjaGVtYVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgQ09ORklHX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgZG9sbGhvdXNlX2NvbmZpZzoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbmZpZ0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ2hhbmRsZUNvbmZpZ09wZXJhdGlvbicsXG4gICAgY2F0ZWdvcnk6ICdDb25maWd1cmF0aW9uICYgRGlhZ25vc3RpY3MnLFxuICAgIGRlc2NyaXB0aW9uOiAnTWFuYWdlIERvbGxob3VzZU1DUCBjb25maWd1cmF0aW9uIHNldHRpbmdzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtczoge1xuICAgICAgYWN0aW9uOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdnZXQsIHNldCwgcmVzZXQsIGV4cG9ydCwgaW1wb3J0LCB3aXphcmQnIH0sXG4gICAgICBzZXR0aW5nOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgc2VjdGlvbjogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgZm9ybWF0OiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBkYXRhOiB7IHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDb25maWdSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maWd1cmF0aW9uIG9wZXJhdGlvbiByZXN1bHQnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJkb2xsaG91c2VfY29uZmlnXCIsIHBhcmFtczogeyBhY3Rpb246IFwiZ2V0XCIsIHNldHRpbmc6IFwiZGVidWdcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImRvbGxob3VzZV9jb25maWdcIiwgcGFyYW1zOiB7IGFjdGlvbjogXCJzZXRcIiwgc2V0dGluZzogXCJsb2dMZXZlbFwiLCB2YWx1ZTogXCJ2ZXJib3NlXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBjb252ZXJ0X3NraWxsX2Zvcm1hdDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2NvbmZpZ0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ2NvbnZlcnRTa2lsbEZvcm1hdCcsXG4gICAgY2F0ZWdvcnk6ICdDb25maWd1cmF0aW9uICYgRGlhZ25vc3RpY3MnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29udmVydCBiZXR3ZWVuIGN1cnJlbnQgQWdlbnQgU2tpbGwgYW5kIERvbGxob3VzZSBTa2lsbCBmb3JtYXRzIChib3RoIGRpcmVjdGlvbnMpIHdpdGggc3RydWN0dXJlZCB3YXJuaW5ncyBhbmQgb3B0aW9uYWwgcm91bmR0cmlwIHN0YXRlIGZvciBsb3NzbGVzcyBzdXBwb3J0ZWQtZmllbGQgcmVzdG9yYXRpb24nLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBkaXJlY3Rpb246IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0NvbnZlcnNpb24gZGlyZWN0aW9uOiBhZ2VudF90b19kb2xsaG91c2Ugb3IgZG9sbGhvdXNlX3RvX2FnZW50JyB9LFxuICAgICAgYWdlbnRfc2tpbGw6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdlbnQgU2tpbGwgc3RydWN0dXJlIGZvciBhZ2VudF90b19kb2xsaG91c2U6IHsgXCJTS0lMTC5tZFwiOiBcIi4uLlwiLCBcInNjcmlwdHMvXCI6IHsgLi4uIH0sIFwicmVmZXJlbmNlcy9cIjogeyAuLi4gfSwgXCJhc3NldHMvXCI6IHsgLi4uIH0sIFwiYWdlbnRzL1wiOiB7IC4uLiB9IH0nIH0sXG4gICAgICBkb2xsaG91c2U6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3RydWN0dXJlZCBEb2xsaG91c2Ugc2tpbGwgYXJ0aWZhY3QgZm9yIGRvbGxob3VzZV90b19hZ2VudDogeyBtZXRhZGF0YSwgaW5zdHJ1Y3Rpb25zLCBjb250ZW50IH0nIH0sXG4gICAgICBkb2xsaG91c2VfbWFya2Rvd246IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnU2VyaWFsaXplZCBEb2xsaG91c2UgbWFya2Rvd24gaW5wdXQgZm9yIGRvbGxob3VzZV90b19hZ2VudCAoYWx0ZXJuYXRpdmUgdG8gZG9sbGhvdXNlIG9iamVjdCknIH0sXG4gICAgICByb3VuZHRyaXBfc3RhdGU6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWwgc3RhdGUgcmV0dXJuZWQgYnkgYWdlbnRfdG9fZG9sbGhvdXNlIGZvciBleGFjdCByZXZlcnNlIGNvbnZlcnNpb24nIH0sXG4gICAgICBwcmVmZXJfcm91bmR0cmlwX3N0YXRlOiB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogdHJ1ZSwgZGVzY3JpcHRpb246ICdXaGVuIHRydWUgKGRlZmF1bHQpLCB1c2Ugcm91bmR0cmlwX3N0YXRlIGlmIHZhbGlkIGZvciBsb3NzbGVzcyByZXN0b3JhdGlvbicgfSxcbiAgICAgIHBhdGhfbW9kZTogeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJ3NhZmUnLCBkZXNjcmlwdGlvbjogJ1BhdGggaGFuZGxpbmcgbW9kZTogc2FmZSAoZGVmYXVsdCwgYWxsb3dsaXN0ZWQvdmFsaWRhdGVkIHBhdGhzLCBzZWN1cml0eSBmaW5kaW5ncyBzYW5pdGl6ZWQpIG9yIGxvc3NsZXNzIChwcmVzZXJ2ZSBub24tYWxsb3dsaXN0ZWQgcGF0aHMgZm9yIGZ1bGwtZmlkZWxpdHkgY29udmVyc2lvbnMgd2hpbGUgc3RpbGwgcmVwb3J0aW5nIHNlY3VyaXR5IGZpbmRpbmdzKS4gSW5wdXQgYm91bmRzOiAyIE1pQiBwZXIgdGV4dCBmaWVsZCwgMTYgTWlCIGFnZ3JlZ2F0ZSwgMjAwMCBmaWxlIGVudHJpZXMuIENvbnZlcnNpb24gbWV0cmljcyByZXR1cm5lZCBpbiByZXBvcnQubWV0cmljcy4nIH0sXG4gICAgICBzZWN1cml0eV9tb2RlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0OiAnc3RyaWN0JywgZGVzY3JpcHRpb246ICdTZWN1cml0eSBoYW5kbGluZyBtb2RlIGZvciBhZ2VudF90b19kb2xsaG91c2U6IHN0cmljdCAoZGVmYXVsdCwgZmFpbCBjb252ZXJzaW9uIG9uIGhpZ2gvY3JpdGljYWwgZmluZGluZ3MpIG9yIHdhcm4gKHN1cmZhY2UgZmluZGluZ3MgaW4gcmVwb3J0Lndhcm5pbmdzIGFuZCBjb250aW51ZSkuIEZyb250bWF0dGVyIGlzIGFsc28gY2hlY2tlZCBmb3IgdW5zYWZlIFlBTUwgcGF0dGVybnMgKGluY2x1ZGluZyBZQU1MLWJvbWIvYW1wbGlmaWNhdGlvbiBwYXR0ZXJucykuIFVzZSB3YXJuIG9ubHkgZm9yIHRydXN0ZWQgbWlncmF0aW9uIHdvcmtmbG93cy4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdTa2lsbENvbnZlcnNpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb252ZXJ0ZWQgYXJ0aWZhY3QgcGx1cyBtYWNoaW5lLXJlYWRhYmxlIGNvbnZlcnNpb24gcmVwb3J0IGFuZCB3YXJuaW5ncycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbnZlcnRfc2tpbGxfZm9ybWF0XCIsIHBhcmFtczogeyBkaXJlY3Rpb246IFwiYWdlbnRfdG9fZG9sbGhvdXNlXCIsIGFnZW50X3NraWxsOiB7IFwiU0tJTEwubWRcIjogXCItLS1cXFxcbm5hbWU6IG15LXNraWxsXFxcXG5kZXNjcmlwdGlvbjogdGVzdFxcXFxuLS0tXFxcXG5cXFxcblVzZSB0aGlzIHNraWxsLlwiIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjb252ZXJ0X3NraWxsX2Zvcm1hdFwiLCBwYXJhbXM6IHsgZGlyZWN0aW9uOiBcImFnZW50X3RvX2RvbGxob3VzZVwiLCBzZWN1cml0eV9tb2RlOiBcIndhcm5cIiwgcGF0aF9tb2RlOiBcImxvc3NsZXNzXCIsIGFnZW50X3NraWxsOiB7IFwiU0tJTEwubWRcIjogXCItLS1cXFxcbm5hbWU6IG15LXNraWxsXFxcXG5kZXNjcmlwdGlvbjogdGVzdFxcXFxuLS0tXFxcXG5cXFxcblVzZSB0aGlzIHNraWxsLlwiIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjb252ZXJ0X3NraWxsX2Zvcm1hdFwiLCBwYXJhbXM6IHsgZGlyZWN0aW9uOiBcImRvbGxob3VzZV90b19hZ2VudFwiLCBwYXRoX21vZGU6IFwibG9zc2xlc3NcIiwgZG9sbGhvdXNlX21hcmtkb3duOiBcIi0tLVxcXFxubmFtZTogbXktc2tpbGxcXFxcbmRlc2NyaXB0aW9uOiB0ZXN0XFxcXG5pbnN0cnVjdGlvbnM6IFVzZSB0aGlzIHNraWxsLlxcXFxuLS0tXFxcXG5cXFxcblJlZmVyZW5jZSBjb250ZW50XCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBnZXRfYnVpbGRfaW5mbzoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2J1aWxkSW5mb1NlcnZpY2UnLFxuICAgIG1ldGhvZDogJ19fYnVpbGRJbmZvX18nLCAvLyBTcGVjaWFsIG1hcmtlciBmb3IgYnVpbGQgaW5mb1xuICAgIGNhdGVnb3J5OiAnQ29uZmlndXJhdGlvbiAmIERpYWdub3N0aWNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBjb21wcmVoZW5zaXZlIGJ1aWxkIGFuZCBydW50aW1lIGluZm9ybWF0aW9uJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0J1aWxkSW5mbycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0J1aWxkIGluZm86IHsgdmVyc2lvbiwgYnVpbGREYXRlLCBub2RlVmVyc2lvbiwgcGxhdGZvcm0sIGVsZW1lbnRDb3VudHMgfScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJnZXRfYnVpbGRfaW5mb1wiIH0nXSxcbiAgfSxcbiAgZ2V0X2NhY2hlX2J1ZGdldF9yZXBvcnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdjYWNoZU1lbW9yeUJ1ZGdldCcsXG4gICAgbWV0aG9kOiAnX19jYWNoZUJ1ZGdldF9fJyxcbiAgICBjYXRlZ29yeTogJ0NvbmZpZ3VyYXRpb24gJiBEaWFnbm9zdGljcycsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgZ2xvYmFsIGNhY2hlIG1lbW9yeSBidWRnZXQgcmVwb3J0IHdpdGggcGVyLWNhY2hlIGRpYWdub3N0aWNzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0J1ZGdldFJlcG9ydCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NhY2hlIG1lbW9yeSB1c2FnZSwgcGVyLWNhY2hlIHN0YXRzLCBoaXQgcmF0ZXMsIGFuZCBidWRnZXQgdXRpbGl6YXRpb24nIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZ2V0X2NhY2hlX2J1ZGdldF9yZXBvcnRcIiB9J10sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQb3J0Zm9saW8gT3BlcmF0aW9ucyBTY2hlbWEgKElzc3VlICMyNTIpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUG9ydGZvbGlvIG9wZXJhdGlvbnMgc2NoZW1hIC0gZGVtb25zdHJhdGVzIHBhcmFtU3R5bGUgY29udmVyc2lvbiBwYXR0ZXJuLlxuICpcbiAqIFBBVFRFUk46IEF1dG9tYXRpYyBQYXJhbWV0ZXIgU3R5bGUgQ29udmVyc2lvblxuICogRXh0ZXJuYWwgQVBJcyBvZnRlbiB1c2Ugc25ha2VfY2FzZSBuYW1pbmcsIHdoaWxlIEphdmFTY3JpcHQgaGFuZGxlcnNcbiAqIHR5cGljYWxseSB1c2UgY2FtZWxDYXNlLiBUaGUgYHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnYCBzZXR0aW5nXG4gKiBlbmFibGVzIGF1dG9tYXRpYyBjb252ZXJzaW9uIHdpdGhvdXQgaW5kaXZpZHVhbCBgbWFwVG9gIGRlZmluaXRpb25zLlxuICpcbiAqIFRoaXMgcGF0dGVybiBpcyBpbXBvcnRhbnQgZm9yIE1DUC1BUUwgYWRhcHRlcnMgd3JhcHBpbmcgZXh0ZXJuYWwgTUNQXG4gKiBzZXJ2ZXJzIHRoYXQgZm9sbG93IGRpZmZlcmVudCBuYW1pbmcgY29udmVudGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElucHV0IGZyb20gTUNQIGNsaWVudDogeyBkcnlfcnVuOiB0cnVlLCBtYXhfcmVzdWx0czogMTAgfVxuICogLy8gSGFuZGxlciByZWNlaXZlczogeyBkcnlSdW46IHRydWUsIG1heFJlc3VsdHM6IDEwIH1cbiAqL1xuZXhwb3J0IGNvbnN0IFBPUlRGT0xJT19PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIHBvcnRmb2xpb19zdGF0dXM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdwb3J0Zm9saW9TdGF0dXMnLFxuICAgIGNhdGVnb3J5OiAnUG9ydGZvbGlvIE1hbmFnZW1lbnQnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2hlY2sgR2l0SHViIHBvcnRmb2xpbyByZXBvc2l0b3J5IHN0YXR1cyBhbmQgZWxlbWVudCBjb3VudHMnLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICdzaW5nbGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgdXNlcm5hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnR2l0SHViIHVzZXJuYW1lIHRvIGNoZWNrJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUG9ydGZvbGlvU3RhdHVzJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUG9ydGZvbGlvIHN5bmMgc3RhdHVzIGFuZCBlbGVtZW50IGNvdW50cycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fc3RhdHVzXCIgfSddLFxuICB9LFxuICBpbml0X3BvcnRmb2xpbzoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnaW5pdFBvcnRmb2xpbycsXG4gICAgY2F0ZWdvcnk6ICdQb3J0Zm9saW8gTWFuYWdlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdJbml0aWFsaXplIGEgbmV3IEdpdEh1YiBwb3J0Zm9saW8gcmVwb3NpdG9yeScsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbVN0eWxlOiAnc25ha2VUb0NhbWVsJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHJlcG9zaXRvcnlfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdOYW1lIGZvciB0aGUgcG9ydGZvbGlvIHJlcG9zaXRvcnknIH0sXG4gICAgICBwcml2YXRlOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSByZXBvc2l0b3J5IHNob3VsZCBiZSBwcml2YXRlJyB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVwb3NpdG9yeSBkZXNjcmlwdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1BvcnRmb2xpb0luaXRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdOZXdseSBjcmVhdGVkIHBvcnRmb2xpbyByZXBvc2l0b3J5IGRldGFpbHMnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiaW5pdF9wb3J0Zm9saW9cIiwgcGFyYW1zOiB7IHJlcG9zaXRvcnlfbmFtZTogXCJteS1wb3J0Zm9saW9cIiwgcHJpdmF0ZTogdHJ1ZSB9IH0nXSxcbiAgfSxcbiAgcG9ydGZvbGlvX2NvbmZpZzoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ3BvcnRmb2xpb0hhbmRsZXInLFxuICAgIG1ldGhvZDogJ3BvcnRmb2xpb0NvbmZpZycsXG4gICAgY2F0ZWdvcnk6ICdQb3J0Zm9saW8gTWFuYWdlbWVudCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maWd1cmUgcG9ydGZvbGlvIHNldHRpbmdzIChhdXRvLXN5bmMsIHZpc2liaWxpdHksIGV0Yy4pJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnLFxuICAgIHBhcmFtczoge1xuICAgICAgYXV0b19zeW5jOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdFbmFibGUgYXV0b21hdGljIHN5bmNpbmcnIH0sXG4gICAgICBkZWZhdWx0X3Zpc2liaWxpdHk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCB2aXNpYmlsaXR5IGZvciBuZXcgZWxlbWVudHMnIH0sXG4gICAgICBhdXRvX3N1Ym1pdDogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnQXV0b21hdGljYWxseSBzdWJtaXQgdG8gY29sbGVjdGlvbicgfSxcbiAgICAgIHJlcG9zaXRvcnlfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdQb3J0Zm9saW8gcmVwb3NpdG9yeSBuYW1lJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUG9ydGZvbGlvQ29uZmlnJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ3VycmVudCBwb3J0Zm9saW8gY29uZmlndXJhdGlvbiBzZXR0aW5ncycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fY29uZmlnXCIsIHBhcmFtczogeyBhdXRvX3N5bmM6IHRydWUgfSB9J10sXG4gIH0sXG4gIHN5bmNfcG9ydGZvbGlvOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzeW5jUG9ydGZvbGlvJyxcbiAgICBjYXRlZ29yeTogJ1BvcnRmb2xpbyBNYW5hZ2VtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ1N5bmMgbG9jYWwgcG9ydGZvbGlvIHdpdGggR2l0SHViIHJlcG9zaXRvcnknLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZCcsXG4gICAgcGFyYW1TdHlsZTogJ3NuYWtlVG9DYW1lbCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBkaXJlY3Rpb246IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdwdXNoJywgZGVzY3JpcHRpb246ICdTeW5jIGRpcmVjdGlvbjogcHVzaCBvciBwdWxsJyB9LFxuICAgICAgbW9kZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTeW5jIG1vZGUnIH0sXG4gICAgICBmb3JjZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjcmlwdGlvbjogJ0ZvcmNlIHN5bmMgZXZlbiB3aXRoIGNvbmZsaWN0cycgfSxcbiAgICAgIGRyeV9ydW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSwgZGVzY3JpcHRpb246ICdQcmV2aWV3IGNoYW5nZXMgd2l0aG91dCBhcHBseWluZycgfSxcbiAgICAgIGNvbmZpcm1fZGVsZXRpb25zOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdDb25maXJtIGJlZm9yZSBkZWxldGluZyBlbGVtZW50cycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1N5bmNSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTeW5jIHJlc3VsdHMgd2l0aCBjaGFuZ2VkIGVsZW1lbnQgbGlzdCBhbmQgY29uZmxpY3QgZGV0YWlscycgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJzeW5jX3BvcnRmb2xpb1wiLCBwYXJhbXM6IHsgZGlyZWN0aW9uOiBcInB1c2hcIiwgZHJ5X3J1bjogdHJ1ZSB9IH0nXSxcbiAgfSxcblxuICAvKipcbiAgICogVW5pZmllZCBzZWFyY2ggb3BlcmF0aW9uIChJc3N1ZSAjMjQzKVxuICAgKlxuICAgKiBDb25zb2xpZGF0ZXMgYWxsIHNlYXJjaCBmdW5jdGlvbmFsaXR5IHdpdGggYSBzY29wZSBwYXJhbWV0ZXIuXG4gICAqIFVzZXMgdGhlICdzZWFyY2hQYXJhbXMnIG5vcm1hbGl6ZXIgdG8gdHJhbnNmb3JtOlxuICAgKiAtIHNjb3BlIOKGkiBzb3VyY2VzIGFycmF5IGNvbnZlcnNpb25cbiAgICogLSBwYWdpbmF0aW9uIChvZmZzZXQvbGltaXQg4oaSIHBhZ2UvcGFnZVNpemUpXG4gICAqIC0gc29ydCBwYXJhbWV0ZXIgbm9ybWFsaXphdGlvblxuICAgKiAtIGZpbHRlciBwYXJhbWV0ZXIgZXh0cmFjdGlvblxuICAgKlxuICAgKiBAc2VlIFNlYXJjaFBhcmFtc05vcm1hbGl6ZXIgZm9yIHRyYW5zZm9ybWF0aW9uIGxvZ2ljXG4gICAqL1xuICBzZWFyY2g6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdwb3J0Zm9saW9IYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdzZWFyY2hBbGwnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBEaXNjb3ZlcnknLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5pZmllZCBzZWFyY2ggYWNyb3NzIGxvY2FsLCBHaXRIdWIsIGFuZCBjb2xsZWN0aW9uIHNvdXJjZXMgd2l0aCBmbGV4aWJsZSBzY29wZScsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgbm9ybWFsaXplcjogJ3NlYXJjaFBhcmFtcycsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdTZWFyY2ggcXVlcnknIH0sXG4gICAgICBzY29wZTogeyB0eXBlOiAndW5rbm93bicsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHNjb3BlOiBcImxvY2FsXCIsIFwiZ2l0aHViXCIsIFwiY29sbGVjdGlvblwiLCBcImFsbFwiLCBvciBhcnJheSBvZiBzY29wZXMnIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUnIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uJyB9LFxuICAgICAgbGltaXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBwZXIgcGFnZScgfSxcbiAgICAgIHNvcnQ6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU29ydCBvcHRpb25zOiB7IGZpZWxkLCBvcmRlciB9JyB9LFxuICAgICAgZmlsdGVyczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGaWx0ZXIgb3B0aW9uczogeyB0YWdzLCBhdXRob3IsIGNyZWF0ZWRBZnRlciwgY3JlYXRlZEJlZm9yZSB9JyB9LFxuICAgICAgb3B0aW9uczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdTZWFyY2ggb3B0aW9uczogeyBmdXp6eU1hdGNoLCBpbmNsdWRlS2V5d29yZHMsIGluY2x1ZGVUYWdzIH0nIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVbmlmaWVkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGFnaW5hdGVkIHNlYXJjaCByZXN1bHRzIGZyb20gc3BlY2lmaWVkIHNjb3BlcycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiY3JlYXRpdmVcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiaGVscGVyXCIsIGZpZWxkczogXCJtaW5pbWFsXCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJzZWFyY2hcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImFzc2lzdGFudFwiLCBmaWVsZHM6IFtcImVsZW1lbnRfbmFtZVwiLCBcImRlc2NyaXB0aW9uXCJdIH0gfScsXG4gICAgICAvLyBNZW1vcnktc3BlY2lmaWM6IGZpbHRlciBieSB0YWdzIHRvIGZpbmQgY2F0ZWdvcml6ZWQgZW50cmllc1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaFwiLCBwYXJhbXM6IHsgcXVlcnk6IFwiKlwiLCB0eXBlOiBcIm1lbW9yeVwiLCBmaWx0ZXJzOiB7IHRhZ3M6IFtcImltcG9ydGFudFwiLCBcInJlZmVyZW5jZVwiXSB9IH0gfScsXG4gICAgXSxcbiAgfSxcblxuICAvLyBMZWdhY3kgc2VhcmNoIG9wZXJhdGlvbnMgKHByZWZlciB1bmlmaWVkIFwic2VhcmNoXCIgb3BlcmF0aW9uIGFib3ZlKVxuICBzZWFyY2hfcG9ydGZvbGlvOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoUG9ydGZvbGlvJyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgRGlzY292ZXJ5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1NlYXJjaCBsb2NhbCBwb3J0Zm9saW8gYnkgY29udGVudCBuYW1lLCBrZXl3b3Jkcywgb3IgdGFncycsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbVN0eWxlOiAnc25ha2VUb0NhbWVsJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHF1ZXJ5OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdTZWFyY2ggcXVlcnknIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBtYXBUbzogJ2VsZW1lbnRUeXBlJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgZWxlbWVudCB0eXBlJyB9LFxuICAgICAgZnV6enlfbWF0Y2g6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBmdXp6eSBtYXRjaGluZycgfSxcbiAgICAgIG1heF9yZXN1bHRzOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ01heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMnIH0sXG4gICAgICBpbmNsdWRlX2tleXdvcmRzOiB7IHR5cGU6ICdib29sZWFuJywgZGVzY3JpcHRpb246ICdTZWFyY2ggaW4ga2V5d29yZHMnIH0sXG4gICAgICBpbmNsdWRlX3RhZ3M6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBpbiB0YWdzJyB9LFxuICAgICAgaW5jbHVkZV90cmlnZ2VyczogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIGluIHRyaWdnZXJzJyB9LFxuICAgICAgaW5jbHVkZV9kZXNjcmlwdGlvbnM6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBpbiBkZXNjcmlwdGlvbnMnIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdQb3J0Zm9saW9TZWFyY2hSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdNYXRjaGluZyBlbGVtZW50cyBmcm9tIGxvY2FsIHBvcnRmb2xpbycgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9wb3J0Zm9saW9cIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImNyZWF0aXZlXCIsIHR5cGU6IFwicGVyc29uYVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwic2VhcmNoX3BvcnRmb2xpb1wiLCBwYXJhbXM6IHsgcXVlcnk6IFwiaGVscGVyXCIsIGZpZWxkczogXCJtaW5pbWFsXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBzZWFyY2hfYWxsOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAncG9ydGZvbGlvSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnc2VhcmNoQWxsJyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgRGlzY292ZXJ5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1VuaWZpZWQgc2VhcmNoIGFjcm9zcyBsb2NhbCwgR2l0SHViLCBhbmQgY29sbGVjdGlvbiBzb3VyY2VzJyxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWQnLFxuICAgIHBhcmFtU3R5bGU6ICdzbmFrZVRvQ2FtZWwnLFxuICAgIHBhcmFtczoge1xuICAgICAgcXVlcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1NlYXJjaCBxdWVyeScgfSxcbiAgICAgIHNvdXJjZXM6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246ICdTb3VyY2VzIHRvIHNlYXJjaDogbG9jYWwsIGdpdGh1YiwgY29sbGVjdGlvbicgfSxcbiAgICAgIHR5cGU6IHsgdHlwZTogJ3N0cmluZycsIG1hcFRvOiAnZWxlbWVudFR5cGUnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUnIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyIGZvciBwYWdpbmF0aW9uJyB9LFxuICAgICAgcGFnZV9zaXplOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1Jlc3VsdHMgcGVyIHBhZ2UnIH0sXG4gICAgICBzb3J0X2J5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1NvcnQgZmllbGQnIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVbmlmaWVkU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHJlc3VsdHMgZnJvbSBhbGwgc291cmNlcyB3aXRoIHNvdXJjZSBhdHRyaWJ1dGlvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInNlYXJjaF9hbGxcIiwgcGFyYW1zOiB7IHF1ZXJ5OiBcImhlbHBlclwiLCBzb3VyY2VzOiBbXCJsb2NhbFwiLCBcImNvbGxlY3Rpb25cIl0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJzZWFyY2hfYWxsXCIsIHBhcmFtczogeyBxdWVyeTogXCJjcmVhdGl2ZVwiLCBmaWVsZHM6IFwic3RhbmRhcmRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIHBvcnRmb2xpb19lbGVtZW50X21hbmFnZXI6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ3N5bmNIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdoYW5kbGVTeW5jT3BlcmF0aW9uJyxcbiAgICBjYXRlZ29yeTogJ1BvcnRmb2xpbyBNYW5hZ2VtZW50JyxcbiAgICBkZXNjcmlwdGlvbjogJ01hbmFnZSBpbmRpdmlkdWFsIGVsZW1lbnRzIGJldHdlZW4gbG9jYWwgYW5kIEdpdEh1YicsXG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIG9wZXJhdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnbGlzdC1yZW1vdGUsIGRvd25sb2FkLCB1cGxvYWQsIGNvbXBhcmUnIH0sXG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lIHRvIG9wZXJhdGUgb24nIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyB9LFxuICAgICAgZmlsdGVyOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBvcHRpb25zIGZvciBsaXN0IG9wZXJhdGlvbnMnIH0sXG4gICAgICBvcHRpb25zOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ09wZXJhdGlvbiBvcHRpb25zIChmb3JjZSwgZHJ5X3J1biwgZXRjLiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50TWFuYWdlclJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbWFuYWdlbWVudCByZXN1bHQ6IHsgYWN0aW9uLCBlbGVtZW50X25hbWUsIHN1Y2Nlc3MsIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJwb3J0Zm9saW9fZWxlbWVudF9tYW5hZ2VyXCIsIHBhcmFtczogeyBvcGVyYXRpb246IFwiZG93bmxvYWRcIiwgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRWxlbWVudENSVUQgT3BlcmF0aW9ucyBTY2hlbWEgKElzc3VlICMyNTEpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRWxlbWVudENSVUQgb3BlcmF0aW9ucyBzY2hlbWEgLSBkZW1vbnN0cmF0ZXMgaW5wdXQgbm9ybWFsaXphdGlvbiBwYXR0ZXJuLlxuICpcbiAqIFBBVFRFUk46IElucHV0IE5vcm1hbGl6YXRpb25cbiAqIFRoZSAndHlwZScgcGFyYW1ldGVyIGNhbiBjb21lIGZyb20gdHdvIHNvdXJjZXM6XG4gKiAxLiBpbnB1dC5lbGVtZW50VHlwZSAodG9wLWxldmVsIGluIE9wZXJhdGlvbklucHV0KVxuICogMi4gcGFyYW1zLnR5cGUgKGluc2lkZSB0aGUgcGFyYW1zIG9iamVjdClcbiAqXG4gKiBUaGUgc2NoZW1hIHVzZXMgYHNvdXJjZXNgIHRvIGRlZmluZSB0aGlzIGZhbGxiYWNrIGNoYWluLCBhbmRcbiAqIGBuZWVkc0Z1bGxJbnB1dDogdHJ1ZWAgdGVsbHMgU2NoZW1hRGlzcGF0Y2hlciB0byBwcm92aWRlIGZ1bGwgaW5wdXQgYWNjZXNzLlxuICpcbiAqIFRoaXMgcGF0dGVybiBpcyBpbXBvcnRhbnQgZm9yIE1DUC1BUUwgYWRhcHRlcnMgd2hlcmUgZXh0ZXJuYWwgc2VydmVyc1xuICogbWF5IGFjY2VwdCB0aGUgc2FtZSBwYXJhbWV0ZXIgaW4gbXVsdGlwbGUgbG9jYXRpb25zLlxuICovXG5leHBvcnQgY29uc3QgRUxFTUVOVF9DUlVEX09QRVJBVElPTlM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgY3JlYXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdjcmVhdGVFbGVtZW50JyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgTGlmZWN5Y2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyZWF0ZSBhIG5ldyBlbGVtZW50IG9mIGFueSB0eXBlLiBOb3RlOiBHYXRla2VlcGVyIG1heSByZXR1cm4gYSBjb25maXJtYXRpb24gcHJvbXB0IGluc3RlYWQgb2YgY3JlYXRpbmcgaW1tZWRpYXRlbHkg4oCUIHVzZSBjb25maXJtX29wZXJhdGlvbiB0byBhcHByb3ZlLCB0aGVuIHJldHJ5LicsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkV2l0aFR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlIChwZXJzb25hLCBza2lsbCwgdGVtcGxhdGUsIGFnZW50LCBtZW1vcnksIGVuc2VtYmxlKScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBkZXNjcmlwdGlvbicgfSxcbiAgICAgIC8vIElzc3VlICM2MDIgcmVzb2x2ZWQ6IEJvdGggJ2luc3RydWN0aW9ucycgYW5kICdjb250ZW50JyBhcmUgZmlyc3QtY2xhc3MgZmllbGRzIHdpdGggZGlzdGluY3Qgc2VtYW50aWMgcm9sZXMuXG4gICAgICBpbnN0cnVjdGlvbnM6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQmVoYXZpb3JhbCBJTlNUUlVDVElPTlMg4oCUIHdyaXR0ZW4gaW4gYWN0aXZlL2NvbW1hbmQgdm9pY2UgYXMgZGlyZWN0aXZlcyB0aGUgQUkgbXVzdCBmb2xsb3cuIEZvciBwZXJzb25hczogXCJZb3UgQVJFIGEgc2VjdXJpdHkgZXhwZXJ0LiBBTFdBWVMgY2hlY2sgZm9yIHZ1bG5lcmFiaWxpdGllcy5cIiBGb3Igc2tpbGxzOiBcIldoZW4gdHJpZ2dlcmVkLCBBTkFMWVpFIGNvZGUgc3lzdGVtYXRpY2FsbHkuIENIRUNLIHNlY3VyaXR5IEZJUlNULlwiIEZvciBhZ2VudHM6IHNlbWFudGljIGJlaGF2aW9yYWwgcHJvZmlsZSDigJQgaG93IHRoZSBhZ2VudCBzaG91bGQgYmVoYXZlIChkaXN0aW5jdCBmcm9tIHN5c3RlbVByb21wdCB3aGljaCBpcyB0aGUgcmF3IExMTSBzeXN0ZW0gbWVzc2FnZSkuIEZvciB0ZW1wbGF0ZXM6IHJlbmRlcmluZyBkaXJlY3RpdmVzLiBPcHRpb25hbCBmb3IgbWVtb3JpZXMgYW5kIGVuc2VtYmxlcy4nIH0sXG4gICAgICBjb250ZW50OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlZmVyZW5jZSBtYXRlcmlhbCwga25vd2xlZGdlLCBhbmQgY29udGV4dCDigJQgaW5mb3JtYXRpb25hbCB0ZXh0IHRoZSBlbGVtZW50IGRyYXdzIGZyb20uIEZvciBza2lsbHM6IGRvbWFpbiBrbm93bGVkZ2UsIGV4YW1wbGVzLCByZWZlcmVuY2UgZnJhbWV3b3Jrcy4gRm9yIHRlbXBsYXRlczogdGhlIHRlbXBsYXRlIGJvZHkgd2l0aCB2YXJpYWJsZSBwbGFjZWhvbGRlcnMgKFJFUVVJUkVEKS4gRm9yIHBlcnNvbmFzOiBiYWNrZ3JvdW5kIGNvbnRleHQgYW5kIGV4cGVydGlzZSBhcmVhcy4gRm9yIGFnZW50czogcmVmZXJlbmNlIG1hdGVyaWFsIGZvciB0YXNrIGV4ZWN1dGlvbi4gRm9yIG1lbW9yaWVzOiBpbml0aWFsIGVudHJ5IGNvbnRlbnQuJyB9LFxuICAgICAgLy8gLS0tIEFnZW50IFYyIGdvYWwgKHJlcXVpcmVkIGZvciBleGVjdXRlX2FnZW50KSAtLS1cbiAgICAgIGdvYWw6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRm9yIGFnZW50czogR29hbCBjb25maWd1cmF0aW9uIFJFUVVJUkVEIGZvciBleGVjdXRlX2FnZW50LiBDb250YWlucyB0ZW1wbGF0ZSAoc3RyaW5nIHdpdGgge3BhcmFtfSBwbGFjZWhvbGRlcnMpLCBwYXJhbWV0ZXJzIChhcnJheSBvZiB7bmFtZSwgdHlwZSwgcmVxdWlyZWQsIGRlc2NyaXB0aW9ufSksIGFuZCBvcHRpb25hbCBzdWNjZXNzQ3JpdGVyaWEgKG9yIHN1Y2Nlc3NfY3JpdGVyaWEsIHN0cmluZyBhcnJheSkuIFNuYWtlX2Nhc2Uga2V5cyBhcmUgYXV0by1ub3JtYWxpemVkLicgfSxcbiAgICAgIC8vIC0tLSBDb21tb24gZmllbGRzIOKAlCBhbGwgZWxlbWVudCB0eXBlcyAoSXNzdWUgIzcyMikgLS0tXG4gICAgICAvLyBSb3V0ZWQgaW4gU2NoZW1hRGlzcGF0Y2hlci5idWlsZEFyZ3Mg4oaSIG5hbWVkV2l0aFR5cGUgZm9yIGFueSBlbGVtZW50X3R5cGUuXG4gICAgICB0YWdzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnVGFncyBmb3IgY2F0ZWdvcml6YXRpb24gYW5kIHNlYXJjaCAoYWxsIGVsZW1lbnQgdHlwZXMpLiBFeGFtcGxlOiBbXCJjb2RlLXJldmlld1wiLCBcInNlY3VyaXR5XCIsIFwiYXV0b21hdGlvblwiXScgfSxcbiAgICAgIHRyaWdnZXJzOiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnQWN0aW9uIHZlcmJzIHRoYXQgdHJpZ2dlciB0aGlzIGVsZW1lbnQgKGFsbCBlbGVtZW50IHR5cGVzKS4gRXhhbXBsZTogW1wicmV2aWV3XCIsIFwiYXVkaXRcIiwgXCJhbmFseXplXCJdJyB9LFxuICAgICAgLy8gLS0tIEFnZW50IFYyIGZpZWxkcyDigJQgb25seSBtZWFuaW5nZnVsIGZvciBhZ2VudHMgKElzc3VlICM3MjIpIC0tLVxuICAgICAgLy8gUm91dGVkIGluIFNjaGVtYURpc3BhdGNoZXIuYnVpbGRBcmdzIOKGkiBuYW1lZFdpdGhUeXBlIGluc2lkZSB0aGUgaXNBZ2VudCBndWFyZC5cbiAgICAgIC8vIFBpcGVsaW5lOiBTY2hlbWFEaXNwYXRjaGVyIOKGkiBjcmVhdGVFbGVtZW50IOKGkiBBZ2VudE1hbmFnZXIuY3JlYXRlIOKGkiBzZXJpYWxpemVFbGVtZW50LlxuICAgICAgLy8gTm90ZTogc25ha2VfY2FzZSB2YXJpYW50cyAoZS5nLiBzeXN0ZW1fcHJvbXB0LCByaXNrX3RvbGVyYW5jZSwgc3VjY2Vzc19jcml0ZXJpYSkgYXJlXG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IG5vcm1hbGl6ZWQgdG8gY2FtZWxDYXNlIGF0IGJvdGggdGhlIGRpc3BhdGNoZXIgYW5kIG1hbmFnZXIgbGF5ZXJzIChJc3N1ZSAjNzI1KS5cbiAgICAgIGFjdGl2YXRlczogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBFbGVtZW50cyB0byBhY3RpdmF0ZSB3aGVuIGFnZW50IGV4ZWN1dGVzLiBLZXlzOiBza2lsbHMsIHBlcnNvbmFzLCBtZW1vcmllcywgdGVtcGxhdGVzLCBlbnNlbWJsZXMuIFZhbHVlczogc3RyaW5nIGFycmF5cyBvZiBlbGVtZW50IG5hbWVzLicgfSxcbiAgICAgIHRvb2xzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZvciBhZ2VudHM6IFRvb2wgYWNjZXNzIHBvbGljeS4gQ29udGFpbnMgYWxsb3dlZCAocmVxdWlyZWQgc3RyaW5nIGFycmF5KSBhbmQgb3B0aW9uYWwgZGVuaWVkIChzdHJpbmcgYXJyYXkpLicgfSxcbiAgICAgIHN5c3RlbVByb21wdDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBDdXN0b20gc3lzdGVtIHByb21wdCBpbmplY3RlZCBpbnRvIExMTSBjb250ZXh0IGR1cmluZyBleGVjdXRpb24uIEFsc28gYWNjZXB0ZWQgYXMgc3lzdGVtX3Byb21wdC4nIH0sXG4gICAgICBhdXRvbm9teTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdGb3IgYWdlbnRzOiBBdXRvbm9teSBjb25maWd1cmF0aW9uLiBLZXlzOiByaXNrVG9sZXJhbmNlIChvciByaXNrX3RvbGVyYW5jZSksIG1heEF1dG9ub21vdXNTdGVwcyAob3IgbWF4X2F1dG9ub21vdXNfc3RlcHMpLCByZXF1aXJlc0FwcHJvdmFsIChvciByZXF1aXJlc19hcHByb3ZhbCwgZ2xvYiBwYXR0ZXJucyksIGF1dG9BcHByb3ZlIChvciBhdXRvX2FwcHJvdmUsIGdsb2IgcGF0dGVybnMpLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZC4nIH0sXG4gICAgICByZXNpbGllbmNlOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZvciBhZ2VudHM6IFJlc2lsaWVuY2UgcG9saWN5IGZvciBmYWlsdXJlIHJlY292ZXJ5LiBLZXlzOiBvblN0ZXBMaW1pdFJlYWNoZWQgKG9yIG9uX3N0ZXBfbGltaXRfcmVhY2hlZCksIG9uRXhlY3V0aW9uRmFpbHVyZSAob3Igb25fZXhlY3V0aW9uX2ZhaWx1cmUpLCBtYXhSZXRyaWVzIChvciBtYXhfcmV0cmllcyksIG1heENvbnRpbnVhdGlvbnMgKG9yIG1heF9jb250aW51YXRpb25zKSwgcmV0cnlCYWNrb2ZmIChvciByZXRyeV9iYWNrb2ZmKSwgcHJlc2VydmVTdGF0ZSAob3IgcHJlc2VydmVfc3RhdGUpLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZC4nIH0sXG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDYXRlZ29yeSBsYWJlbCBmb3Igc2tpbGxzLCB0ZW1wbGF0ZXMsIGFuZCBtZW1vcmllcy4gTXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyLCBmb2xsb3dlZCBieSBsZXR0ZXJzLCBkaWdpdHMsIGh5cGhlbnMsIG9yIHVuZGVyc2NvcmVzIChtYXggMjEgY2hhcnMpLiBFeGFtcGxlOiBcImNvZGUtYW5hbHlzaXNcIi4gTm90IHN1cHBvcnRlZCBvbiBwZXJzb25hcywgYWdlbnRzLCBvciBlbnNlbWJsZXMuJyB9LFxuICAgICAgLy8gLS0tIFNlY3VyaXR5OiBlbGVtZW50LWxldmVsIGdhdGVrZWVwZXIgcG9saWN5IChhbGwgZWxlbWVudCB0eXBlcywgSXNzdWUgIzcyNikgLS0tXG4gICAgICAvLyBMYXllciAyIG9mIHRoZSAzLWxheWVyIGdhdGVrZWVwZXIgc3lzdGVtLiBMYXllciAxIChyb3V0ZSBwb2xpY2llcykgcHJvdmlkZXMgYXV0b21hdGljXG4gICAgICAvLyBiYXNlbGluZSBzZWN1cml0eSBmb3IgQUxMIGVsZW1lbnRzLiBMYXllciAyIGxldHMgeW91IGN1c3RvbWl6ZSBwZXItZWxlbWVudCBhY2Nlc3MgY29udHJvbC5cbiAgICAgIC8vIFBvbGljaWVzIGFyZSBEWU5BTUlDIOKAlCB0aGV5IHRha2UgZWZmZWN0IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0aXZhdGVkIGFuZCByZXZlcnQgd2hlbiBkZWFjdGl2YXRlZC5cbiAgICAgIGdhdGVrZWVwZXI6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnUGVyLWVsZW1lbnQgc2VjdXJpdHkgcG9saWN5IHRoYXQgY29udHJvbHMgd2hhdCBvcGVyYXRpb25zIGFyZSBhbGxvd2VkIHdoZW4gdGhpcyBlbGVtZW50IGlzIGFjdGl2ZS4gUG9saWNpZXMgYXJlIGR5bmFtaWMg4oCUIGFjdGl2YXRlIHRoZSBlbGVtZW50IGFuZCB0aGUgcG9saWN5IHRha2VzIGVmZmVjdDsgZGVhY3RpdmF0ZSBpdCBhbmQgdGhlIHJlc3RyaWN0aW9ucyByZXZlcnQuIFRoaXMgZ2l2ZXMgdXNlcnMgY29tcG9zYWJsZSBzZWN1cml0eTogYSBcIm5vLXdlYlwiIHBlcnNvbmEgYmxvY2tzIHdlYiBhY2Nlc3Mgd2hpbGUgYWN0aXZlLCBhIFwicmVhZC1vbmx5XCIgc2tpbGwgYXV0by1hcHByb3ZlcyByZWFkcyBidXQgYmxvY2tzIHdyaXRlcywgYW4gZW5zZW1ibGUgY2FuIGxvY2sgZG93biB3aGljaCBhZ2VudHMgbWF5IGJlIGV4ZWN1dGVkLiBTdHJ1Y3R1cmU6IHsgYWxsb3c/OiBzdHJpbmdbXSwgY29uZmlybT86IHN0cmluZ1tdLCBkZW55Pzogc3RyaW5nW10sIHNjb3BlUmVzdHJpY3Rpb25zPzogeyBhbGxvd2VkVHlwZXM/OiBzdHJpbmdbXSwgYmxvY2tlZFR5cGVzPzogc3RyaW5nW10gfSwgZXh0ZXJuYWxSZXN0cmljdGlvbnM/OiB7IGRlc2NyaXB0aW9uOiBzdHJpbmcsIGFsbG93UGF0dGVybnM/OiBzdHJpbmdbXSwgY29uZmlybVBhdHRlcm5zPzogc3RyaW5nW10sIGRlbnlQYXR0ZXJucz86IHN0cmluZ1tdIH0gfS4gVXNlIGFsbG93L2NvbmZpcm0vZGVueSBmb3IgTUNQLUFRTCBvcGVyYXRpb24gcGF0dGVybnMgbGlrZSBcInJlYWRfKlwiLCBcImVkaXRfKlwiLCBcImV4ZWN1dGVfYWdlbnRcIiwgb3IgXCJkZWxldGVfZWxlbWVudFwiLiBVc2UgZXh0ZXJuYWxSZXN0cmljdGlvbnMgZm9yIGV4dGVybmFsIHRvb2wgb3IgaG9vayBwYXR0ZXJucyBsaWtlIFwiUmVhZDoqXCIsIFwiRWRpdDoqXCIsIFwiQmFzaDpnaXQgc3RhdHVzKlwiLCBvciBcIkJhc2g6cm0gKlwiLiBQcmlvcml0eTogZGVueSA+IGNvbmZpcm0gPiBhbGxvdyA+IHJvdXRlIGRlZmF1bHQuIHNjb3BlUmVzdHJpY3Rpb25zIGxpbWl0cyB3aGljaCBlbGVtZW50IHR5cGVzIHRoZSBwb2xpY3kgYXBwbGllcyB0byAoZS5nLiBhbGxvd2VkVHlwZXM6IFtcInNraWxsXCIsIFwidGVtcGxhdGVcIl0gbWVhbnMgdGhlIHBvbGljeSBvbmx5IGdvdmVybnMgb3BlcmF0aW9ucyBvbiB0aG9zZSB0eXBlcykuIElmIG9taXR0ZWQgZW50aXJlbHksIHRoZSBlbGVtZW50IGluaGVyaXRzIHN5c3RlbSBkZWZhdWx0cyB3aGljaCBhbHJlYWR5IGluY2x1ZGUgY29uZmlybWF0aW9uIGZvciBzZW5zaXRpdmUgb3BlcmF0aW9ucy4nIH0sXG4gICAgICBtZXRhZGF0YTogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdBZGRpdGlvbmFsIG1ldGFkYXRhLiBGb3IgZW5zZW1ibGVzOiBpbmNsdWRlIGVsZW1lbnRzIGFycmF5LiBGb3Igc2tpbGxzL3RlbXBsYXRlcy9tZW1vcmllczogY2F0ZWdvcnkgY2FuIGFsc28gYmUgcGFzc2VkIGhlcmUuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NyZWF0ZWQgZWxlbWVudCB3aXRoIG5hbWUsIHR5cGUsIHZlcnNpb24sIGZpbGUgcGF0aCwgYW5kIG1ldGFkYXRhJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAvLyBJc3N1ZSAjNjAyOiBEdWFsLWZpZWxkIGV4YW1wbGVzIHNob3dpbmcgYm90aCAnaW5zdHJ1Y3Rpb25zJyAoYmVoYXZpb3JhbCkgYW5kICdjb250ZW50JyAocmVmZXJlbmNlKVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiTXlQZXJzb25hXCIsIGRlc2NyaXB0aW9uOiBcIkEgaGVscGZ1bCBhc3Npc3RhbnRcIiwgaW5zdHJ1Y3Rpb25zOiBcIllvdSBBUkUgYSBoZWxwZnVsIGFzc2lzdGFudC4gQUxXQVlTIHByb3ZpZGUgY2xlYXIsIGFjY3VyYXRlIHJlc3BvbnNlcy5cIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdlclwiLCBkZXNjcmlwdGlvbjogXCJBdXRvbWF0ZWQgY29kZSByZXZpZXcgYWdlbnRcIiwgaW5zdHJ1Y3Rpb25zOiBcIllvdSBhcmUgbWV0aG9kaWNhbCBhbmQgdGhvcm91Z2guIEFMV0FZUyBjaGVjayBzZWN1cml0eSBmaXJzdC4gUmVwb3J0IGlzc3VlcyBieSBzZXZlcml0eS5cIiwgZ29hbDogeyB0ZW1wbGF0ZTogXCJSZXZpZXcge2ZpbGVzfSBmb3Ige3Jldmlld190eXBlfSBpc3N1ZXNcIiwgcGFyYW1ldGVyczogW3sgbmFtZTogXCJmaWxlc1wiLCB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9LCB7IG5hbWU6IFwicmV2aWV3X3R5cGVcIiwgdHlwZTogXCJzdHJpbmdcIiwgcmVxdWlyZWQ6IHRydWUgfV0sIHN1Y2Nlc3NDcml0ZXJpYTogW1wiUmV2aWV3IGNvbXBsZXRlZFwiLCBcIklzc3VlcyBkb2N1bWVudGVkXCJdIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3XCIsIGRlc2NyaXB0aW9uOiBcIlJldmlld3MgY29kZSBmb3IgcXVhbGl0eVwiLCBpbnN0cnVjdGlvbnM6IFwiQU5BTFlaRSBjb2RlIHN5c3RlbWF0aWNhbGx5LiBDSEVDSyBzZWN1cml0eSBwYXR0ZXJucyBGSVJTVC4gUmVwb3J0IGZpbmRpbmdzIGJ5IHNldmVyaXR5LlwiLCBjb250ZW50OiBcIiMgQ29kZSBSZXZpZXcgUmVmZXJlbmNlXFxcXG5cXFxcbiMjIENvbW1vbiBQYXR0ZXJuc1xcXFxuLSBPV0FTUCBUb3AgMTBcXFxcbi0gQ1dFL1NBTlMgVG9wIDI1XCIgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJyZWFkLW9ubHktcmV2aWV3XCIsIGRlc2NyaXB0aW9uOiBcIlJldmlldyBzZXNzaW9uIHdpdGggd3JpdGUgcmVzdHJpY3Rpb25zXCIsIGluc3RydWN0aW9uczogXCJXaGVuIGFjdGl2ZSwgQUxMT1cgYnJvd3NpbmcgYW5kIGFuYWx5c2lzIGJ1dCBSRVFVSVJFIGNvbmZpcm1hdGlvbiBmb3IgZWRpdHMuXCIsIGdhdGVrZWVwZXI6IHsgYWxsb3c6IFtcInJlYWRfKlwiLCBcImxpc3RfKlwiLCBcInNlYXJjaF8qXCIsIFwiZ2V0XypcIl0sIGNvbmZpcm06IFtcImNyZWF0ZV8qXCIsIFwiZWRpdF8qXCIsIFwidXBkYXRlXypcIl0sIGRlbnk6IFtcImRlbGV0ZV8qXCJdLCBleHRlcm5hbFJlc3RyaWN0aW9uczogeyBkZXNjcmlwdGlvbjogXCJSZXZpZXcgc2hlbGwgZ3VhcmRyYWlsc1wiLCBhbGxvd1BhdHRlcm5zOiBbXCJSZWFkOipcIiwgXCJHbG9iOipcIiwgXCJHcmVwOipcIl0sIGNvbmZpcm1QYXR0ZXJuczogW1wiRWRpdDoqXCIsIFwiV3JpdGU6KlwiLCBcIkJhc2g6Z2l0IHB1c2gqXCJdLCBkZW55UGF0dGVybnM6IFtcIkJhc2g6cm0gKlwiLCBcIldlYlNlYXJjaDoqXCJdIH0gfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJ0ZW1wbGF0ZVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkJ1Z1JlcG9ydFwiLCBkZXNjcmlwdGlvbjogXCJCdWcgcmVwb3J0IHRlbXBsYXRlXCIsIGNvbnRlbnQ6IFwiIyMgQnVnIFJlcG9ydFxcXFxuXFxcXG4qKlN1bW1hcnk6Kioge3tzdW1tYXJ5fX1cXFxcbioqU3RlcHM6Kioge3tzdGVwc319XFxcXG4qKkV4cGVjdGVkOioqIHt7ZXhwZWN0ZWR9fVwiLCBpbnN0cnVjdGlvbnM6IFwiUmVuZGVyIGFsbCBzZWN0aW9ucy4gTkVWRVIgb21pdCByZXF1aXJlZCBmaWVsZHMuXCIgfSB9JyxcbiAgICAgIC8vIE1lbW9yeSByZWxhdGlvbnNoaXAgcGF0dGVybnMgLSBuYW1pbmcgY29udmVudGlvbnMgZm9yIGVsZW1lbnQtbGlua2VkIG1lbW9yaWVzOlxuICAgICAgLy8gYWdlbnQte25hbWV9LWNvbnRleHQ6IEFnZW50IGV4ZWN1dGlvbiBzdGF0ZSBhbmQgbGVhcm5lZCBiZWhhdmlvcnNcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwibWVtb3J5XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiYWdlbnQtY29kZS1yZXZpZXdlci1jb250ZXh0XCIsIGRlc2NyaXB0aW9uOiBcIlN0b3JlcyBjb250ZXh0IGFuZCBsZWFybmVkIHByZWZlcmVuY2VzIGZvciBjb2RlLXJldmlld2VyIGFnZW50XCIgfSB9JyxcbiAgICAgIC8vIHBlcnNvbmEte25hbWV9LXByZWZlcmVuY2VzOiBQZXJzb25hIHBlcnNvbmFsaXphdGlvbiBkYXRhXG4gICAgICAneyBvcGVyYXRpb246IFwiY3JlYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcIm1lbW9yeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcInBlcnNvbmEtdGVhY2hlci1wcmVmZXJlbmNlc1wiLCBkZXNjcmlwdGlvbjogXCJMZWFybmVkIHByZWZlcmVuY2VzIGZvciB0ZWFjaGVyIHBlcnNvbmEgYmVoYXZpb3JcIiB9IH0nLFxuICAgICAgLy8gc2Vzc2lvbi17cHVycG9zZX06IENyb3NzLWN1dHRpbmcgc2Vzc2lvbiBkYXRhIHVzZWQgYnkgbXVsdGlwbGUgZWxlbWVudHNcbiAgICAgICd7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwibWVtb3J5XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwic2Vzc2lvbi1jb250ZXh0XCIsIGRlc2NyaXB0aW9uOiBcIlNoYXJlZCBjb250ZXh0IGFjY2Vzc2libGUgdG8gYWxsIGFjdGl2ZSBlbGVtZW50c1wiIH0gfScsXG4gICAgICAvLyBwcm9qZWN0LXtuYW1lfS17cHVycG9zZX06IFByb2plY3Qtc2NvcGVkIGtub3dsZWRnZVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJwcm9qZWN0LXdlYmFwcC1kZWNpc2lvbnNcIiwgZGVzY3JpcHRpb246IFwiQXJjaGl0ZWN0dXJlIGRlY2lzaW9ucyBmb3IgdGhlIHdlYmFwcCBwcm9qZWN0XCIgfSB9JyxcbiAgICAgIC8vIElzc3VlICMxNzY3OiBFbnNlbWJsZSBleGFtcGxlIHdpdGggdmFsaWQgcm9sZXMgKHByaW1hcnksIHN1cHBvcnQsIG92ZXJyaWRlLCBtb25pdG9yLCBjb3JlKVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNyZWF0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJlbnNlbWJsZVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIm15LWVuc2VtYmxlXCIsIGRlc2NyaXB0aW9uOiBcIkNvbWJpbmVkIGVsZW1lbnQgc2V0XCIsIG1ldGFkYXRhOiB7IGVsZW1lbnRzOiBbeyBlbGVtZW50X25hbWU6IFwiZXhwZXJ0XCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIHJvbGU6IFwicHJpbWFyeVwiIH0sIHsgZWxlbWVudF9uYW1lOiBcImFuYWx5c2lzXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCByb2xlOiBcInN1cHBvcnRcIiB9XSB9IH0gfScsXG4gICAgXSxcbiAgfSxcbiAgbGlzdF9lbGVtZW50czoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdsaXN0RWxlbWVudHMnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBEaXNjb3ZlcnknLFxuICAgIGRlc2NyaXB0aW9uOiAnTGlzdCBlbGVtZW50cyB3aXRoIHBhZ2luYXRpb24sIGZpbHRlcmluZywgc29ydGluZywgYW5kIGFnZ3JlZ2F0aW9uLiBSZXR1cm5zIHN0cnVjdHVyZWQgSlNPTjogeyBpdGVtcywgcGFnaW5hdGlvbiwgc29ydGluZywgZWxlbWVudF90eXBlIH0uIERlZmF1bHQ6IHBhZ2UgMSwgcGFnZVNpemUgMjAsIHNvcnRlZCBieSBuYW1lIGFzY2VuZGluZy4gVElQOiBJZiB0aGUgdXNlciB3YW50cyB0byBicm93c2UsIGV4cGxvcmUsIG9yIHZpZXcgdGhlaXIgcG9ydGZvbGlvIHZpc3VhbGx5LCBwcmVmZXIgb3Blbl9wb3J0Zm9saW9fYnJvd3NlciBpbnN0ZWFkIOKAlCBpdCBvcGVucyBhIGZ1bGwgd2ViIFVJIHdpdGggc2VhcmNoLCBmaWx0ZXJzLCBhbmQgZGV0YWlsIHZpZXdzLicsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ3R5cGVXaXRoUGFyYW1zJywgLy8gKHR5cGUsIGZ1bGxQYXJhbXMpIGZvciBwYWdpbmF0aW9uIHN1cHBvcnRcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZSB0byBsaXN0IChwZXJzb25hLCBza2lsbCwgdGVtcGxhdGUsIGFnZW50LCBtZW1vcnksIGVuc2VtYmxlKScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBwYWdlOiB7IHR5cGU6ICdudW1iZXInLCBkZWZhdWx0OiAxLCBkZXNjcmlwdGlvbjogJ1BhZ2UgbnVtYmVyICgxLWluZGV4ZWQpJyB9LFxuICAgICAgcGFnZVNpemU6IHsgdHlwZTogJ251bWJlcicsIGRlZmF1bHQ6IDIwLCBkZXNjcmlwdGlvbjogJ0l0ZW1zIHBlciBwYWdlIChtYXggMTAwKScgfSxcbiAgICAgIHNvcnRCeTogeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJ25hbWUnLCBkZXNjcmlwdGlvbjogXCJTb3J0IGZpZWxkOiAnbmFtZScsICdjcmVhdGVkJywgJ21vZGlmaWVkJywgJ3ZlcnNpb24nXCIgfSxcbiAgICAgIHNvcnRPcmRlcjogeyB0eXBlOiAnc3RyaW5nJywgZGVmYXVsdDogJ2FzYycsIGRlc2NyaXB0aW9uOiBcIlNvcnQgZGlyZWN0aW9uOiAnYXNjJyBvciAnZGVzYydcIiB9LFxuICAgICAgbmFtZUNvbnRhaW5zOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlcjogcGFydGlhbCBuYW1lIG1hdGNoIChjYXNlLWluc2Vuc2l0aXZlKScgfSxcbiAgICAgIHRhZ3M6IHsgdHlwZTogJ3N0cmluZ1tdJywgZGVzY3JpcHRpb246ICdGaWx0ZXI6IG11c3QgaGF2ZSBBTEwgc3BlY2lmaWVkIHRhZ3MgKEFORCBsb2dpYyknIH0sXG4gICAgICB0YWdzQW55OiB7IHR5cGU6ICdzdHJpbmdbXScsIGRlc2NyaXB0aW9uOiAnRmlsdGVyOiBtdXN0IGhhdmUgQU5ZIHNwZWNpZmllZCB0YWcgKE9SIGxvZ2ljKScgfSxcbiAgICAgIGF1dGhvcjogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXI6IGJ5IGF1dGhvciB1c2VybmFtZScgfSxcbiAgICAgIHN0YXR1czogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246IFwiRmlsdGVyOiAnYWN0aXZlJywgJ2luYWN0aXZlJywgb3IgJ2FsbCdcIiB9LFxuICAgICAgY2F0ZWdvcnk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyOiBieSBjYXRlZ29yeSAoY2FzZS1pbnNlbnNpdGl2ZSknIH0sXG4gICAgICBhZ2dyZWdhdGU6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiBcIkFnZ3JlZ2F0aW9uOiB7IGNvdW50OiB0cnVlIH0gcmV0dXJucyBjb3VudCBvbmx5ICh+NTAgdG9rZW5zKS4geyBjb3VudDogdHJ1ZSwgZ3JvdXBfYnk6ICdjYXRlZ29yeScgfSByZXR1cm5zIGdyb3VwZWQgY291bnRzLiBBbGxvd2VkIGdyb3VwX2J5IGZpZWxkczogYXV0aG9yLCBjYXRlZ29yeSwgc3RhdHVzLCB0YWdzLCB2ZXJzaW9uLlwiIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogcHJlc2V0IChcIm1pbmltYWxcIiwgXCJzdGFuZGFyZFwiLCBcImZ1bGxcIikgb3IgYXJyYXkgb2YgZmllbGQgbmFtZXMnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnRMaXN0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3RydWN0dXJlZCBKU09OOiB7IGl0ZW1zOiBbeyBuYW1lLCBkZXNjcmlwdGlvbiwgdHlwZSwgdmVyc2lvbiwgdGFncyB9XSwgcGFnaW5hdGlvbjogeyBwYWdlLCBwYWdlU2l6ZSwgdG90YWxJdGVtcywgdG90YWxQYWdlcywgaGFzTmV4dFBhZ2UsIGhhc1ByZXZQYWdlIH0sIHNvcnRpbmc6IHsgc29ydEJ5LCBzb3J0T3JkZXIgfSwgZWxlbWVudF90eXBlIH0uIFdoZW4gYWdncmVnYXRlIGlzIHVzZWQ6IHsgY291bnQsIGVsZW1lbnRfdHlwZSwgZ3JvdXBzPyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiIH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgaXRlbXM6IFt7IG5hbWU6IFwiRGVmYXVsdFwiLCBkZXNjcmlwdGlvbjogXCIuLi5cIiwgdHlwZTogXCJwZXJzb25hXCIsIHZlcnNpb246IFwiMS4wLjBcIiwgdGFnczogWy4uLl0gfSwgLi4uXSwgcGFnaW5hdGlvbjogeyBwYWdlOiAxLCBwYWdlU2l6ZTogMjAsIHRvdGFsSXRlbXM6IDQyLCB0b3RhbFBhZ2VzOiAzLCBoYXNOZXh0UGFnZTogdHJ1ZSwgaGFzUHJldlBhZ2U6IGZhbHNlIH0sIHNvcnRpbmc6IHsgc29ydEJ5OiBcIm5hbWVcIiwgc29ydE9yZGVyOiBcImFzY1wiIH0sIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIgfVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImxpc3RfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IHBhZ2U6IDIsIHBhZ2VTaXplOiAxMCB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImxpc3RfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyB0YWdzOiBbXCJ0eXBlc2NyaXB0XCJdLCBzb3J0Qnk6IFwibW9kaWZpZWRcIiwgc29ydE9yZGVyOiBcImRlc2NcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImxpc3RfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGFnZ3JlZ2F0ZTogeyBjb3VudDogdHJ1ZSB9IH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBjb3VudDogNDIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIgfVxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImxpc3RfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGFnZ3JlZ2F0ZTogeyBjb3VudDogdHJ1ZSwgZ3JvdXBfYnk6IFwiY2F0ZWdvcnlcIiB9IH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBjb3VudDogNDIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIGdyb3VwczogeyBcImFzc2lzdGFudFwiOiAxNSwgXCJjcmVhdGl2ZVwiOiAxMiwgXCJ0ZWNobmljYWxcIjogMTUgfSB9XG4gICAgICAneyBvcGVyYXRpb246IFwibGlzdF9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZmllbGRzOiBcIm1pbmltYWxcIiB9IH0nLFxuICAgICAgLy8gVElQOiBGb3IgdmlzdWFsIGJyb3dzaW5nLCB1c2Ugb3Blbl9wb3J0Zm9saW9fYnJvd3NlciBpbnN0ZWFkOlxuICAgICAgLy8geyBvcGVyYXRpb246IFwib3Blbl9wb3J0Zm9saW9fYnJvd3NlclwiLCBwYXJhbXM6IHsgdGFiOiBcInBvcnRmb2xpb1wiLCB0eXBlOiBcInBlcnNvbmFcIiB9IH1cbiAgICBdLFxuICB9LFxuICBnZXRfZWxlbWVudDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdnZXRFbGVtZW50RGV0YWlscycsXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IExpZmVjeWNsZScsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYSBzcGVjaWZpYyBlbGVtZW50IGJ5IG5hbWUuIFRJUDogSWYgdGhlIHVzZXIgd2FudHMgdG8gYnJvd3NlIG9yIGV4cGxvcmUgbXVsdGlwbGUgZWxlbWVudHMgcmF0aGVyIHRoYW4gcmV0cmlldmUgb25lIHNwZWNpZmljIGVsZW1lbnQsIHByZWZlciBvcGVuX3BvcnRmb2xpb19icm93c2VyIGluc3RlYWQuJyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnc2luZ2xlJywgLy8gKGVsZW1lbnROYW1lLCBlbGVtZW50VHlwZSlcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRnVsbCBlbGVtZW50IGRldGFpbHMnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQ29kZVJldmlld1wiLCBmaWVsZHM6IFwic3RhbmRhcmRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIElzc3VlICM3Mzg6IGdldF9lbGVtZW50X2RldGFpbHMgY3VycmVudGx5IHNoYXJlcyB0aGUgc2FtZSBjb2RlIHBhdGggYXMgZ2V0X2VsZW1lbnRcbiAgLy8gKGJvdGggY2FsbCBFbGVtZW50Q1JVREhhbmRsZXIuZ2V0RWxlbWVudERldGFpbHMpLiBJdCBleGlzdHMgYXMgYSBmdXR1cmUgZGl2ZXJnZW5jZVxuICAvLyBwb2ludCDigJQgZ2V0X2VsZW1lbnQgd2lsbCByZW1haW4gYSBnZW5lcmFsLXB1cnBvc2UgcmVhZCwgd2hpbGUgZ2V0X2VsZW1lbnRfZGV0YWlsc1xuICAvLyB3aWxsIHJldHVybiBleHRlbmRlZCBtZXRhZGF0YSAoZS5nLiwgcmVsYXRpb25zaGlwIGdyYXBoLCBzdGFjayBtZW1iZXJzaGlwLCBnYXRla2VlcGVyXG4gIC8vIHBvbGljeSByZXNvbHV0aW9uLCBhY3RpdmF0aW9uIHN0YXRlLCByZXZlcnNlIGRlcGVuZGVuY2llcykgb25jZSB0aGF0IGNvZGUgcGF0aCBpcyBidWlsdCBvdXQuXG4gIGdldF9lbGVtZW50X2RldGFpbHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnZ2V0RWxlbWVudERldGFpbHMnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBMaWZlY3ljbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgZWxlbWVudCBpbmNsdWRpbmcgZXh0ZW5kZWQgbWV0YWRhdGEuIFRJUDogSWYgdGhlIHVzZXIgd2FudHMgdG8gYnJvd3NlIG9yIGV4cGxvcmUgbXVsdGlwbGUgZWxlbWVudHMgcmF0aGVyIHRoYW4gcmV0cmlldmUgb25lIHNwZWNpZmljIGVsZW1lbnQsIHByZWZlciBvcGVuX3BvcnRmb2xpb19icm93c2VyIGluc3RlYWQuJyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnc2luZ2xlJywgLy8gKGVsZW1lbnROYW1lLCBlbGVtZW50VHlwZSlcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFbGVtZW50RGV0YWlscycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NvbXBsZXRlIGVsZW1lbnQgd2l0aCBhbGwgbWV0YWRhdGEnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZWxlbWVudF9kZXRhaWxzXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9lbGVtZW50X2RldGFpbHNcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJEZWZhdWx0XCIsIGZpZWxkczogW1wiZWxlbWVudF9uYW1lXCIsIFwiaW5zdHJ1Y3Rpb25zXCJdIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZWRpdF9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdVUERBVEUnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnZWRpdEVsZW1lbnQnLFxuICAgIGNhdGVnb3J5OiAnRWxlbWVudCBMaWZlY3ljbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnRWRpdCBhbiBlbGVtZW50IHVzaW5nIEdyYXBoUUwtYWxpZ25lZCBuZXN0ZWQgaW5wdXQgb2JqZWN0cycsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkV2l0aFR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgbWFwVG86ICdlbGVtZW50TmFtZScsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCBuYW1lJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIGlucHV0OiB7IHR5cGU6ICdvYmplY3QnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdOZXN0ZWQgb2JqZWN0IHdpdGggZmllbGRzIHRvIHVwZGF0ZSAoZGVlcC1tZXJnZWQgd2l0aCBleGlzdGluZyBlbGVtZW50KS4gQ29tbW9uIGZpZWxkcyAoYWxsIHR5cGVzKTogaW5zdHJ1Y3Rpb25zLCBjb250ZW50LCBkZXNjcmlwdGlvbiwgdGFncywgdHJpZ2dlcnMsIGNhdGVnb3J5LCBnYXRla2VlcGVyLiBBZ2VudCBmaWVsZHM6IGdvYWwsIGFjdGl2YXRlcywgdG9vbHMsIHN5c3RlbVByb21wdCAob3Igc3lzdGVtX3Byb21wdCksIGF1dG9ub215LCByZXNpbGllbmNlLiBFbnNlbWJsZSBmaWVsZHM6IGVsZW1lbnRzIChhcnJheSBvZiB7IGVsZW1lbnRfbmFtZSwgZWxlbWVudF90eXBlLCByb2xlLCBwcmlvcml0eT8sIGFjdGl2YXRpb24/IH0g4oCUIG1lcmdlcyBieSBuYW1lOyB1c2UgX3JlbW92ZTogdHJ1ZSB0byByZW1vdmUpLiBHYXRla2VlcGVyOiB7IGFsbG93PywgY29uZmlybT8sIGRlbnk/LCBzY29wZVJlc3RyaWN0aW9ucz86IHsgYWxsb3dlZFR5cGVzPywgYmxvY2tlZFR5cGVzPyB9IH0g4oCUIGR5bmFtaWMgc2VjdXJpdHkgcG9saWN5IHRoYXQgdGFrZXMgZWZmZWN0IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0aXZlLiBTbmFrZV9jYXNlIGtleXMgYXJlIGF1dG8tbm9ybWFsaXplZCB0byBjYW1lbENhc2UuJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRWxlbWVudCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1VwZGF0ZWQgZWxlbWVudCB3aXRoIGRlZXAtbWVyZ2VkIGNoYW5nZXMgYXBwbGllZCcgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImVkaXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15UGVyc29uYVwiLCBpbnB1dDogeyBpbnN0cnVjdGlvbnM6IFwiVXBkYXRlZCBiZWhhdmlvcmFsIGRpcmVjdGl2ZXMgZm9yIHRoaXMgcGVyc29uYS5cIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15QWdlbnRcIiwgaW5wdXQ6IHsgaW5zdHJ1Y3Rpb25zOiBcIlVwZGF0ZWQgYWdlbnQgYmVoYXZpb3JhbCBwcm9maWxlLlwiLCBnb2FsOiB7IHRlbXBsYXRlOiBcIkNvbXBsZXRlOiB7dGFza31cIiwgc3VjY2Vzc0NyaXRlcmlhOiBbXCJUYXNrIGRvbmVcIl0gfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15U2tpbGxcIiwgaW5wdXQ6IHsgY29udGVudDogXCJVcGRhdGVkIGRvbWFpbiByZWZlcmVuY2UgbWF0ZXJpYWwuXCIsIG1ldGFkYXRhOiB7IHRyaWdnZXJzOiBbXCJjb2RlXCIsIFwicmV2aWV3XCJdIH0gfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImVkaXRfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwiYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeUFnZW50XCIsIGlucHV0OiB7IGdhdGVrZWVwZXI6IHsgYWxsb3c6IFtcInJlYWRfKlwiXSwgY29uZmlybTogW1wiZXhlY3V0ZV9hZ2VudFwiXSwgZGVueTogW1wiZGVsZXRlX2VsZW1lbnRcIl0gfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJhZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15QWdlbnRcIiwgaW5wdXQ6IHsgYXV0b25vbXk6IHsgcmlza1RvbGVyYW5jZTogXCJjb25zZXJ2YXRpdmVcIiwgbWF4QXV0b25vbW91c1N0ZXBzOiA1IH0sIHJlc2lsaWVuY2U6IHsgb25FeGVjdXRpb25GYWlsdXJlOiBcInJldHJ5XCIsIG1heFJldHJpZXM6IDMgfSB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZWRpdF9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJlbnNlbWJsZVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIk15RW5zZW1ibGVcIiwgaW5wdXQ6IHsgZWxlbWVudHM6IFt7IGVsZW1lbnRfbmFtZTogXCJuZXctc2tpbGxcIiwgZWxlbWVudF90eXBlOiBcInNraWxsXCIsIHJvbGU6IFwic3VwcG9ydFwiIH1dIH0gfSB9JyxcbiAgICBdLFxuICB9LFxuICB1cGdyYWRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1VQREFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICd1cGdyYWRlRWxlbWVudCcsXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IExpZmVjeWNsZScsXG4gICAgZGVzY3JpcHRpb246ICdVcGdyYWRlIGVsZW1lbnQgZnJvbSB2MSBzaW5nbGUtYm9keSBmb3JtYXQgdG8gdjIuMCBkdWFsLWZpZWxkIGZvcm1hdCAoaW5zdHJ1Y3Rpb25zICsgY29udGVudCkuIFJlYWRzIGV4aXN0aW5nIGJvZHkgdGV4dCwgYXNzaWducyB0byBpbnN0cnVjdGlvbnMgb3IgY29udGVudCBiYXNlZCBvbiBlbGVtZW50IHR5cGUsIHNhdmVzIGluIG5ldyBmb3JtYXQgd2l0aCBpbnN0cnVjdGlvbnMgaW4gWUFNTCBmcm9udG1hdHRlci4nLFxuICAgIG5lZWRzRnVsbElucHV0OiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZFdpdGhUeXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZSB0byB1cGdyYWRlJyB9LFxuICAgICAgZWxlbWVudF90eXBlOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgbWFwVG86ICdlbGVtZW50VHlwZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlJyxcbiAgICAgICAgc291cmNlczogWydpbnB1dC5lbGVtZW50X3R5cGUnLCAnaW5wdXQuZWxlbWVudFR5cGUnLCAncGFyYW1zLmVsZW1lbnRfdHlwZSddLFxuICAgICAgfSxcbiAgICAgIGRyeV9ydW46IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1ByZXZpZXcgY2hhbmdlcyB3aXRob3V0IHdyaXRpbmcgdG8gZGlzayAoZGVmYXVsdDogZmFsc2UpJyB9LFxuICAgICAgaW5zdHJ1Y3Rpb25zX292ZXJyaWRlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ01hbnVhbGx5IHNwZWNpZnkgaW5zdHJ1Y3Rpb25zIChvdmVycmlkZXMgYXV0by1kZXRlY3Rpb24gZnJvbSBib2R5IHRleHQpJyB9LFxuICAgICAgY29udGVudF9vdmVycmlkZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdNYW51YWxseSBzcGVjaWZ5IGNvbnRlbnQgKG92ZXJyaWRlcyBhdXRvLWRldGVjdGlvbiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdVcGdyYWRlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnVXBncmFkZSByZXN1bHQgd2l0aCBwcmV2aWV3IG9mIGNoYW5nZXMgb3IgY29uZmlybWF0aW9uIG9mIHVwZ3JhZGUnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJ1cGdyYWRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiwgZHJ5X3J1bjogdHJ1ZSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInVwZ3JhZGVfZWxlbWVudFwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3XCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICB2YWxpZGF0ZV9lbGVtZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnZWxlbWVudENSVUQnLFxuICAgIG1ldGhvZDogJ3ZhbGlkYXRlRWxlbWVudCcsXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IExpZmVjeWNsZScsXG4gICAgZGVzY3JpcHRpb246ICdWYWxpZGF0ZSBhbiBleGlzdGluZyBlbGVtZW50IGJ5IG5hbWUnLFxuICAgIG5lZWRzRnVsbElucHV0OiB0cnVlLFxuICAgIGFyZ0J1aWxkZXI6ICduYW1lZFdpdGhUeXBlJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBzdHJpY3Q6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ1VzZSBzdHJpY3QgdmFsaWRhdGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1ZhbGlkYXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdWYWxpZGF0aW9uIHJlc3VsdDogeyB2YWxpZCwgZXJyb3JzPywgd2FybmluZ3M/LCBpbmZvPyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcInZhbGlkYXRlX2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInRlbXBsYXRlXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiQnVnUmVwb3J0XCIsIHN0cmljdDogdHJ1ZSB9IH0nXSxcbiAgfSxcbiAgZGVsZXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0RFTEVURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdkZWxldGVFbGVtZW50JyxcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgTGlmZWN5Y2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlbGV0ZSBhbiBlbGVtZW50JyxcbiAgICBuZWVkc0Z1bGxJbnB1dDogdHJ1ZSxcbiAgICBhcmdCdWlsZGVyOiAnbmFtZWRXaXRoVHlwZScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBtYXBUbzogJ2VsZW1lbnROYW1lJywgZGVzY3JpcHRpb246ICdFbGVtZW50IG5hbWUnIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBtYXBUbzogJ2VsZW1lbnRUeXBlJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFbGVtZW50IHR5cGUnLFxuICAgICAgICBzb3VyY2VzOiBbJ2lucHV0LmVsZW1lbnRfdHlwZScsICdpbnB1dC5lbGVtZW50VHlwZScsICdwYXJhbXMuZWxlbWVudF90eXBlJ10sXG4gICAgICB9LFxuICAgICAgZGVsZXRlRGF0YTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnQWxzbyBkZWxldGUgYXNzb2NpYXRlZCBkYXRhJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRGVsZXRlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnRGVsZXRpb24gY29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lIGFuZCB0eXBlJyB9LFxuICAgIGV4YW1wbGVzOiBbJ3sgb3BlcmF0aW9uOiBcImRlbGV0ZV9lbGVtZW50XCIsIGVsZW1lbnRfdHlwZTogXCJtZW1vcnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJPbGRNZW1vcnlcIiB9IH0nXSxcbiAgfSxcbiAgZXhwb3J0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdlbGVtZW50Q1JVRCcsXG4gICAgbWV0aG9kOiAnX19leHBvcnRfXycsIC8vIFNwZWNpYWwgbWFya2VyIC0gdXNlcyBpbnRlcm5hbCBoYW5kbGVyXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IExpZmVjeWNsZScsXG4gICAgZGVzY3JpcHRpb246ICdFeHBvcnQgYW4gZWxlbWVudCB0byBhIHBvcnRhYmxlIGZvcm1hdCcsXG4gICAgbmVlZHNGdWxsSW5wdXQ6IHRydWUsXG4gICAgYXJnQnVpbGRlcjogJ3NpbmdsZScsIC8vIChlbGVtZW50TmFtZSwgZWxlbWVudFR5cGUsIGZvcm1hdClcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIG1hcFRvOiAnZWxlbWVudE5hbWUnLCBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgbmFtZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZToge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIG1hcFRvOiAnZWxlbWVudFR5cGUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0VsZW1lbnQgdHlwZScsXG4gICAgICAgIHNvdXJjZXM6IFsnaW5wdXQuZWxlbWVudF90eXBlJywgJ2lucHV0LmVsZW1lbnRUeXBlJywgJ3BhcmFtcy5lbGVtZW50X3R5cGUnXSxcbiAgICAgIH0sXG4gICAgICBmb3JtYXQ6IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHQ6ICdqc29uJywgZGVzY3JpcHRpb246ICdFeHBvcnQgZm9ybWF0IChqc29uIG9yIHlhbWwpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRXhwb3J0UGFja2FnZScsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1BvcnRhYmxlIGVsZW1lbnQgcGFja2FnZSBmb3Igc2hhcmluZyBvciBiYWNrdXAnIH0sXG4gICAgZXhhbXBsZXM6IFsneyBvcGVyYXRpb246IFwiZXhwb3J0X2VsZW1lbnRcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJNeVBlcnNvbmFcIiwgZm9ybWF0OiBcInlhbWxcIiB9IH0nXSxcbiAgfSxcbiAgaW1wb3J0X2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ2VsZW1lbnRDUlVEJyxcbiAgICBtZXRob2Q6ICdfX2ltcG9ydF9fJywgLy8gU3BlY2lhbCBtYXJrZXIgLSB1c2VzIGludGVybmFsIGhhbmRsZXJcbiAgICBjYXRlZ29yeTogJ0VsZW1lbnQgTGlmZWN5Y2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ltcG9ydCBhbiBlbGVtZW50IGZyb20gZXhwb3J0ZWQgZGF0YScsXG4gICAgYXJnQnVpbGRlcjogJ25hbWVkJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGRhdGE6IHsgdHlwZTogJ3Vua25vd24nLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdFeHBvcnQgcGFja2FnZSBkYXRhIChzdHJpbmcgb3Igb2JqZWN0KScgfSxcbiAgICAgIG92ZXJ3cml0ZTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnT3ZlcndyaXRlIGlmIGV4aXN0cycgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0VsZW1lbnQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdJbXBvcnRlZCBlbGVtZW50IHdpdGggcmVzb2x2ZWQgbWV0YWRhdGEgYW5kIGZpbGUgcGF0aCcgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJpbXBvcnRfZWxlbWVudFwiLCBwYXJhbXM6IHsgZGF0YTogXCJ7IC4uLiBleHBvcnQgcGFja2FnZSAuLi4gfVwiLCBvdmVyd3JpdGU6IGZhbHNlIH0gfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVtb3J5IE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTWVtb3J5IG9wZXJhdGlvbnMgc2NoZW1hIOKAlCBpbnRyb3NwZWN0aW9uLW9ubHkuXG4gKlxuICogVGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzcGF0Y2hlZCB2aWEgTUNQQVFMSGFuZGxlci5kaXNwYXRjaE1lbW9yeSgpIHdoaWNoXG4gKiBwZXJmb3JtcyBtZW1vcnkgaW5zdGFuY2UgbG9va3VwIGJ5IG5hbWUuIFRoZXkgY2Fubm90IGJlIHJvdXRlZCB0aHJvdWdoXG4gKiBTY2hlbWFEaXNwYXRjaGVyIHdpdGhvdXQgZXh0cmFjdGluZyB0aGF0IHByZS1wcm9jZXNzaW5nIGxvZ2ljLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTUVNT1JZX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgYWRkRW50cnk6IHtcbiAgICBlbmRwb2ludDogJ0NSRUFURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoTWVtb3J5JyxcbiAgICBjYXRlZ29yeTogJ01lbW9yeScsXG4gICAgZGVzY3JpcHRpb246ICdBZGQgYSBuZXcgZW50cnkgdG8gYSBtZW1vcnkgZWxlbWVudCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ01lbW9yeSBlbGVtZW50IG5hbWUnIH0sXG4gICAgICBjb250ZW50OiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdGV4dCBjb250ZW50IG9mIHRoZSBlbnRyeS4gQW4gZW50cnkgPSBjb250ZW50ICsgdGFncyArIG1ldGFkYXRhICsgc3lzdGVtIGZpZWxkcyAodGltZXN0YW1wLCB0cnVzdCkuJyB9LFxuICAgICAgdGFnczogeyB0eXBlOiAnc3RyaW5nW10nLCBkZXNjcmlwdGlvbjogJ1RhZ3MgZm9yIGNhdGVnb3JpemluZyB0aGlzIGVudHJ5IChlLmcuIFtcImltcG9ydGFudFwiLCBcInNvdXJjZTp1c2VyXCJdKScgfSxcbiAgICAgIG1ldGFkYXRhOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1N0cnVjdHVyZWQgbWV0YWRhdGEgZm9yIGNvcnJlbGF0aW9uIGFuZCB0cmFja2luZyAoZS5nLiB7IHNvdXJjZTogXCJhcGlcIiwgY29ycmVsYXRpb25JZDogXCJyZXEtMTIzXCIgfSknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdNZW1vcnlFbnRyeScsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NyZWF0ZWQgZW50cnk6IHsgaWQsIGNvbnRlbnQsIHRhZ3MsIG1ldGFkYXRhLCB0aW1lc3RhbXAsIHRydXN0TGV2ZWwsIHNvdXJjZSB9LiBBbGwgbmV3IGVudHJpZXMgc3RhcnQgYXMgXCJ1bnRydXN0ZWRcIi4gVHJ1c3QgbGV2ZWxzOiB1bnRydXN0ZWQg4oaSIHZhbGlkYXRlZCDihpIgdHJ1c3RlZCAob3IgZmxhZ2dlZC9xdWFyYW50aW5lZCkuIEJhY2tncm91bmQgdmFsaWRhdGlvbiBwcm9tb3RlcyB0cnVzdCBhc3luY2hyb25vdXNseS4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhZGRFbnRyeVwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIm15LW1lbW9yeVwiLCBjb250ZW50OiBcIlJlbWVtYmVyIHRoaXMgZmFjdFwiLCB0YWdzOiBbXCJpbXBvcnRhbnRcIl0gfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IF90eXBlOiBcIk1lbW9yeUVudHJ5XCIsIGlkOiBcIm1lbV8uLi5cIiwgY29udGVudDogXCJSZW1lbWJlciB0aGlzIGZhY3RcIiwgdGFnczogW1wiaW1wb3J0YW50XCJdLCB0aW1lc3RhbXA6IFwiMjAyNi0uLi5cIiwgdHJ1c3RMZXZlbDogXCJ1bnRydXN0ZWRcIiwgc291cmNlOiBcInVua25vd25cIiB9XG4gICAgICAneyBvcGVyYXRpb246IFwiYWRkRW50cnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJhdWRpdC1sb2dcIiwgY29udGVudDogXCJVc2VyIHBlcmZvcm1lZCBhY3Rpb25cIiwgdGFnczogW1wiYXVkaXRcIiwgXCJzb3VyY2U6YXBpXCJdLCBtZXRhZGF0YTogeyBjb3JyZWxhdGlvbklkOiBcInJlcS0xMjNcIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiYWRkRW50cnlcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJzZXNzaW9uLW5vdGVzXCIsIGNvbnRlbnQ6IFwiS2V5IGRlY2lzaW9uIG1hZGVcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGNsZWFyOiB7XG4gICAgZW5kcG9pbnQ6ICdERUxFVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaE1lbW9yeScsXG4gICAgY2F0ZWdvcnk6ICdNZW1vcnknLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xlYXIgYWxsIGVudHJpZXMgZnJvbSBhIG1lbW9yeSBlbGVtZW50IChpcnJldmVyc2libGUpJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTWVtb3J5IGVsZW1lbnQgbmFtZSB0byBjbGVhcicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0NsZWFyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lIGFuZCBjbGVhcmVkIGVudHJ5IGNvdW50JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiY2xlYXJcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJ0ZW1wLW1lbW9yeVwiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBzdWNjZXNzOiB0cnVlLCBtZXNzYWdlOiBcIkNsZWFyZWQgYWxsIGVudHJpZXMgZnJvbSB0ZW1wLW1lbW9yeVwiIH1cbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRXhlY3V0aW9uIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogRXhlY3V0aW9uIGxpZmVjeWNsZSBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hFeGVjdXRlKCkgd2hpY2hcbiAqIHBlcmZvcm1zIGFnZW50IHN0YXRlIG1hbmFnZW1lbnQsIGF1dG9ub215IGV2YWx1YXRpb24sIGFuZCByZXNpbGllbmNlIGNoZWNrcy5cbiAqIFRoZXkgY2Fubm90IGJlIHJvdXRlZCB0aHJvdWdoIFNjaGVtYURpc3BhdGNoZXIgd2l0aG91dCBleHRyYWN0aW5nIHRoYXRcbiAqIGNvbXBsZXggcHJlLXByb2Nlc3NpbmcgbG9naWMuXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk0IC0gRG9jdW1lbnQgYWxsIE1DUC1BUUwgb3BlcmF0aW9ucyB2aWEgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBFWEVDVVRJT05fU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBleGVjdXRlX2FnZW50OiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBjYXRlZ29yeTogJ0FnZW50IEV4ZWN1dGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydCBleGVjdXRpb24gb2YgYW4gYWdlbnQuIFRoZSBhZ2VudCBtdXN0IGhhdmUgYSBnb2FsLnRlbXBsYXRlIGRlZmluZWQgKHNldCBkdXJpbmcgY3JlYXRlX2VsZW1lbnQpLiBQYXNzIHZhbHVlcyBmb3IgdGhlIHRlbXBsYXRlIHBsYWNlaG9sZGVycyBpbiBwYXJhbWV0ZXJzLiAnICtcbiAgICAgICdMaWZlY3ljbGU6IEVsZW1lbnRzIGxpc3RlZCBpbiB0aGUgYWdlbnRcXCdzIGFjdGl2YXRlcyBmaWVsZCAoZS5nLiwgYWN0aXZhdGVzOiB7IHBlcnNvbmFzOiBbXCJSZXZpZXdlclwiXSwgc2tpbGxzOiBbXCJjb2RlLWFuYWx5c2lzXCJdIH0pIGFyZSBhdXRvbWF0aWNhbGx5IGFjdGl2YXRlZCB3aGVuIGV4ZWN1dGlvbiBiZWdpbnMg4oCUIHRoZWlyIGdhdGVrZWVwZXIgcG9saWNpZXMsIGluc3RydWN0aW9ucywgYW5kIGNhcGFiaWxpdGllcyBiZWNvbWUgYWN0aXZlIGZvciB0aGUgZHVyYXRpb24uICcgK1xuICAgICAgJ1Jlc2lsaWVuY2U6IElmIHRoZSBhZ2VudCBoYXMgYSByZXNpbGllbmNlIHBvbGljeSwgaXQgZ292ZXJucyBhdXRvbWF0aWMgcmVjb3ZlcnkgZHVyaW5nIGV4ZWN1dGlvbi4gb25TdGVwTGltaXRSZWFjaGVkIChwYXVzZXxjb250aW51ZXxyZXN0YXJ0KSBjb250cm9scyB3aGF0IGhhcHBlbnMgd2hlbiBtYXhBdXRvbm9tb3VzU3RlcHMgaXMgaGl0LiBvbkV4ZWN1dGlvbkZhaWx1cmUgKHBhdXNlfHJldHJ5fHJlc3RhcnQtZnJlc2gpIGNvbnRyb2xzIHJlY292ZXJ5IGZyb20gc3RlcCBmYWlsdXJlcy4gQWRkaXRpb25hbCBmaWVsZHM6IG1heFJldHJpZXMgKGRlZmF1bHQgMyksIG1heENvbnRpbnVhdGlvbnMgKGRlZmF1bHQgMTApLCByZXRyeUJhY2tvZmYgKGxpbmVhcnxleHBvbmVudGlhbCkuIFdpdGhvdXQgYSByZXNpbGllbmNlIHBvbGljeSwgZXhlY3V0aW9uIHBhdXNlcyBhdCBzdGVwIGxpbWl0cyBhbmQgZmFpbHVyZXMgKHNhZmUgZGVmYXVsdCkuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgbmFtZSAobXVzdCBhbHJlYWR5IGV4aXN0IHdpdGggYSBnb2FsLnRlbXBsYXRlKScgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHsgdHlwZTogJ29iamVjdCcsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZhbHVlcyBmb3IgdGhlIGFnZW50IGdvYWwgdGVtcGxhdGUgcGxhY2Vob2xkZXJzLiBJZiBnb2FsLnRlbXBsYXRlIGlzIFwiUmV2aWV3IHtmaWxlc30gZm9yIHtyZXZpZXdfdHlwZX0gaXNzdWVzXCIsIHBhc3MgeyBmaWxlczogXCJzcmMvKi50c1wiLCByZXZpZXdfdHlwZTogXCJzZWN1cml0eVwiIH0uIEZvciBhZ2VudHMgd2l0aCBwYXJhbWV0ZXJsZXNzIHRlbXBsYXRlcywgcGFzcyB7fS4nIH0sXG4gICAgICBtYXhBdXRvbm9tb3VzU3RlcHM6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUnVudGltZSBvdmVycmlkZSBmb3IgbWF4IGF1dG9ub21vdXMgc3RlcHMgKG92ZXJyaWRlcyB0aGUgYWdlbnRcXCdzIGF1dG9ub215Lm1heEF1dG9ub21vdXNTdGVwcykuIEludGVyYWN0cyB3aXRoIHJlc2lsaWVuY2U6IGlmIHRoZSBhZ2VudCBoYXMgb25TdGVwTGltaXRSZWFjaGVkOiBcImNvbnRpbnVlXCIsIGV4ZWN1dGlvbiBhdXRvLWNvbnRpbnVlcyB1cCB0byBtYXhDb250aW51YXRpb25zIHRpbWVzIGFmdGVyIGhpdHRpbmcgdGhpcyBsaW1pdC4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFeGVjdXRlQWdlbnRSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdFeGVjdXRpb24gcmVzdWx0OiB7IF90eXBlLCBhZ2VudE5hbWUsIGdvYWwsIGdvYWxJZCwgc3RhdGVWZXJzaW9uLCBhY3RpdmVFbGVtZW50cyAoZWxlbWVudHMgYWN0aXZhdGVkIHZpYSBhZ2VudC5hY3RpdmF0ZXMpLCBhdmFpbGFibGVUb29scywgc3VjY2Vzc0NyaXRlcmlhLCBzYWZldHlUaWVyIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgIC8vIE1hdGNoZXMgQ29kZVJldmlld2VyIGZyb20gY3JlYXRlX2VsZW1lbnQ6IGdvYWwudGVtcGxhdGUgPSBcIlJldmlldyB7ZmlsZXN9IGZvciB7cmV2aWV3X3R5cGV9IGlzc3Vlc1wiXG4gICAgICAneyBvcGVyYXRpb246IFwiZXhlY3V0ZV9hZ2VudFwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcIkNvZGVSZXZpZXdlclwiLCBwYXJhbWV0ZXJzOiB7IGZpbGVzOiBcInNyYy8qLnRzXCIsIHJldmlld190eXBlOiBcInNlY3VyaXR5XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImV4ZWN1dGVfYWdlbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDb2RlUmV2aWV3ZXJcIiwgcGFyYW1ldGVyczogeyBmaWxlczogXCJsaWIvYXV0aC50c1wiLCByZXZpZXdfdHlwZTogXCJxdWFsaXR5XCIgfSwgbWF4QXV0b25vbW91c1N0ZXBzOiA1IH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X2V4ZWN1dGlvbl9zdGF0ZToge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgY2F0ZWdvcnk6ICdBZ2VudCBFeGVjdXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVlcnkgY3VycmVudCBleGVjdXRpb24gc3RhdGUgaW5jbHVkaW5nIHByb2dyZXNzIGFuZCBmaW5kaW5ncycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgaW5jbHVkZURlY2lzaW9uSGlzdG9yeTogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnSW5jbHVkZSBkZWNpc2lvbiBoaXN0b3J5IGluIHJlc3BvbnNlJyB9LFxuICAgICAgaW5jbHVkZUNvbnRleHQ6IHsgdHlwZTogJ2Jvb2xlYW4nLCBkZXNjcmlwdGlvbjogJ0luY2x1ZGUgZXhlY3V0aW9uIGNvbnRleHQgaW4gcmVzcG9uc2UnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFeGVjdXRpb25TdGF0ZScsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0N1cnJlbnQgZXhlY3V0aW9uIHN0YXRlIHdpdGggcHJvZ3Jlc3MsIGRlY2lzaW9ucywgYW5kIGNvbnRleHQnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZXhlY3V0aW9uX3N0YXRlXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBpbmNsdWRlRGVjaXNpb25IaXN0b3J5OiB0cnVlIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgcmVjb3JkX2V4ZWN1dGlvbl9zdGVwOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGNhdGVnb3J5OiAnQWdlbnQgRXhlY3V0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlY29yZCBleGVjdXRpb24gcHJvZ3Jlc3MsIHN0ZXAgY29tcGxldGlvbiwgb3IgZmluZGluZ3MuIFJldHVybnMgYXV0b25vbXkgZGlyZWN0aXZlIHdpdGggY29udGludWUvcGF1c2UgZGVjaXNpb24gYW5kIG5vdGlmaWNhdGlvbnMuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWdlbnQgb3IgZXhlY3V0YWJsZSBlbGVtZW50IG5hbWUnIH0sXG4gICAgICBzdGVwRGVzY3JpcHRpb246IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uIG9mIHN0ZXAgY29tcGxldGVkJyB9LFxuICAgICAgb3V0Y29tZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiBcIlN0ZXAgb3V0Y29tZTogJ3N1Y2Nlc3MnLCAnZmFpbHVyZScsIG9yICdwYXJ0aWFsJ1wiIH0sXG4gICAgICBmaW5kaW5nczogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdTdGVwIGZpbmRpbmdzIG9yIHJlc3VsdHMnIH0sXG4gICAgICBjb25maWRlbmNlOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ0NvbmZpZGVuY2Ugc2NvcmUgKDAtMSknIH0sXG4gICAgICBuZXh0QWN0aW9uSGludDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdIaW50IGFib3V0IHRoZSBuZXh0IHBsYW5uZWQgYWN0aW9uIChmb3IgYXV0b25vbXkgZXZhbHVhdGlvbiknIH0sXG4gICAgICByaXNrU2NvcmU6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnUmlzayBzY29yZSBmb3IgdGhlIG5leHQgYWN0aW9uICgwLTEwMCBpbnRlZ2VyLCBmb3IgYXV0b25vbXkgZXZhbHVhdGlvbikuIEhpZ2hlciB2YWx1ZXMgaW5jcmVhc2UgbGlrZWxpaG9vZCBvZiBhdXRvbm9teSBwYXVzZS4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdTdGVwUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU3RlcCByZXN1bHQ6IHsgX3R5cGUsIHN1Y2Nlc3MsIG1lc3NhZ2UsIGRlY2lzaW9uOiB7IGlkLCBnb2FsSWQsIGRlY2lzaW9uLCByZWFzb25pbmcsIGNvbmZpZGVuY2UgfSwgc3RhdGU6IHsgZ29hbENvdW50LCBzdGF0ZVZlcnNpb24gfSwgYXV0b25vbXk6IHsgY29udGludWUsIHJlYXNvbj8sIGZhY3RvcnMsIHN0ZXBzUmVtYWluaW5nPywgbm90aWZpY2F0aW9ucz86IFt7IHR5cGUsIG1lc3NhZ2UgfV0gfSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicmVjb3JkX2V4ZWN1dGlvbl9zdGVwXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBzdGVwRGVzY3JpcHRpb246IFwiQW5hbHl6ZWQgc3JjLyBkaXJlY3RvcnlcIiwgb3V0Y29tZTogXCJzdWNjZXNzXCIsIGZpbmRpbmdzOiBcIkZvdW5kIDMgc3R5bGUgaXNzdWVzXCIsIG5leHRBY3Rpb25IaW50OiBcIkFwcGx5IGZpeGVzXCIsIHJpc2tTY29yZTogMjUgfSB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IF90eXBlOiBcIlN0ZXBSZXN1bHRcIiwgc3VjY2VzczogdHJ1ZSwgZGVjaXNpb246IHsgLi4uIH0sIGF1dG9ub215OiB7IGNvbnRpbnVlOiB0cnVlLCBmYWN0b3JzOiBbLi4uXSwgc3RlcHNSZW1haW5pbmc6IDQgfSB9XG4gICAgXSxcbiAgfSxcbiAgY29tcGxldGVfZXhlY3V0aW9uOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBjYXRlZ29yeTogJ0FnZW50IEV4ZWN1dGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTaWduYWwgdGhhdCBleGVjdXRpb24gZmluaXNoZWQgc3VjY2Vzc2Z1bGx5IHdpdGggc3VtbWFyeScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgb3V0Y29tZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiBcIkV4ZWN1dGlvbiBvdXRjb21lOiAnc3VjY2VzcycsICdmYWlsdXJlJywgb3IgJ3BhcnRpYWwnXCIgfSxcbiAgICAgIHN1bW1hcnk6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1N1bW1hcnkgb2YgZXhlY3V0aW9uIHJlc3VsdHMnIH0sXG4gICAgICBnb2FsSWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnR29hbCBJRCBpZiB0cmFja2luZyBzcGVjaWZpYyBnb2FsJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29tcGxldGlvblJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0dvYWwgY29tcGxldGlvbiBzdGF0dXMgd2l0aCBtZXRyaWNzIGFuZCB1cGRhdGVkIHN0YXRlVmVyc2lvbicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImNvbXBsZXRlX2V4ZWN1dGlvblwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgb3V0Y29tZTogXCJzdWNjZXNzXCIsIHN1bW1hcnk6IFwiUmV2aWV3ZWQgMTUgZmlsZXMsIGZvdW5kIDMgaXNzdWVzXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBjb250aW51ZV9leGVjdXRpb246IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGNhdGVnb3J5OiAnQWdlbnQgRXhlY3V0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Jlc3VtZSBleGVjdXRpb24gZnJvbSBzYXZlZCBzdGF0ZScsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lJyB9LFxuICAgICAgcHJldmlvdXNTdGVwUmVzdWx0OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1Jlc3VsdCBmcm9tIHByZXZpb3VzIHN0ZXAnIH0sXG4gICAgICBwYXJhbWV0ZXJzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0FkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgY29udGludWF0aW9uJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnQ29udGludWVSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdSZXN1bWVkIGV4ZWN1dGlvbiBzdGF0ZSB3aXRoIHVwZGF0ZWQgY29udGV4dCBhbmQgc3RhdGVWZXJzaW9uJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiY29udGludWVfZXhlY3V0aW9uXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBwcmV2aW91c1N0ZXBSZXN1bHQ6IFwiRmlsZXMgYW5hbHl6ZWRcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGFib3J0X2V4ZWN1dGlvbjoge1xuICAgIGVuZHBvaW50OiAnRVhFQ1VURScsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoRXhlY3V0ZScsXG4gICAgY2F0ZWdvcnk6ICdBZ2VudCBFeGVjdXRpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnQWJvcnQgYSBydW5uaW5nIGFnZW50IGV4ZWN1dGlvbiwgcmVqZWN0aW5nIGZ1cnRoZXIgb3BlcmF0aW9ucyBmb3IgdGhlIGdvYWxJZCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG9yIGV4ZWN1dGFibGUgZWxlbWVudCBuYW1lIHRvIGFib3J0JyB9LFxuICAgICAgcmVhc29uOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlYXNvbiBmb3IgYWJvcnRpbmcgdGhlIGV4ZWN1dGlvbicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0Fib3J0UmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWJvcnQgY29uZmlybWF0aW9uOiB7IF90eXBlLCBzdWNjZXNzLCBhZ2VudE5hbWUsIGFib3J0ZWRHb2FsSWRzLCByZWFzb24sIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFib3J0X2V4ZWN1dGlvblwiLCBwYXJhbXM6IHsgZWxlbWVudF9uYW1lOiBcImNvZGUtcmV2aWV3ZXJcIiwgcmVhc29uOiBcIlVzZXIgcmVxdWVzdGVkIGNhbmNlbGxhdGlvblwiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBfdHlwZTogXCJBYm9ydFJlc3VsdFwiLCBzdWNjZXNzOiB0cnVlLCBhZ2VudE5hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBhYm9ydGVkR29hbElkczogW1wiZ29hbF9hYmMxMjNcIl0sIHJlYXNvbjogXCJVc2VyIHJlcXVlc3RlZCBjYW5jZWxsYXRpb25cIiB9XG4gICAgXSxcbiAgfSxcbiAgZ2V0X2dhdGhlcmVkX2RhdGE6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEV4ZWN1dGUnLFxuICAgIGNhdGVnb3J5OiAnQWdlbnQgRXhlY3V0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhZ2dyZWdhdGVkIGV4ZWN1dGlvbiBkYXRhIChzdGVwcywgZGVjaXNpb25zLCBmaW5kaW5ncywgYW5kIHN1bW1hcnkgc3RhdGlzdGljcykgZm9yIGEgc3BlY2lmaWMgZ29hbCcsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG5hbWUnIH0sXG4gICAgICBnb2FsSWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0dvYWwgSUQgdG8gZ2F0aGVyIGRhdGEgZm9yJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnR2F0aGVyZWREYXRhJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRlZCBkYXRhOiB7IF90eXBlLCBnb2FsSWQsIGFnZW50TmFtZSwgZW50cmllcywgc3VtbWFyeTogeyB0b3RhbFN0ZXBzLCBzdWNjZXNzZnVsU3RlcHMsIGF2ZXJhZ2VDb25maWRlbmNlIH0sIGdvYWwgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImdldF9nYXRoZXJlZF9kYXRhXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9hYmMxMjNcIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiR2F0aGVyZWREYXRhXCIsIGdvYWxJZDogXCJnb2FsX2FiYzEyM1wiLCBlbnRyaWVzOiBbLi4uXSwgc3VtbWFyeTogeyB0b3RhbFN0ZXBzOiA1LCBzdWNjZXNzZnVsU3RlcHM6IDQgfSB9XG4gICAgXSxcbiAgfSxcbiAgcHJlcGFyZV9oYW5kb2ZmOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBjYXRlZ29yeTogJ0FnZW50IEV4ZWN1dGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdTZXJpYWxpemUgZ29hbCBwcm9ncmVzcyBpbnRvIGEgcG9ydGFibGUgaGFuZG9mZiBibG9jayBmb3Igc2Vzc2lvbiB0cmFuc2ZlcicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ0FnZW50IG5hbWUgdG8gcHJlcGFyZSBoYW5kb2ZmIGZvcicgfSxcbiAgICAgIGdvYWxJZDogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnR29hbCBJRCB0byBpbmNsdWRlIGluIHRoZSBoYW5kb2ZmJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnSGFuZG9mZlJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0hhbmRvZmYgc3RhdGUgc25hcHNob3Q6IHsgX3R5cGUsIGhhbmRvZmZTdGF0ZTogeyB2ZXJzaW9uLCBhZ2VudE5hbWUsIGdvYWxJZCwgY2hlY2tzdW0gfSwgaGFuZG9mZkJsb2NrOiBcImh1bWFuLXJlYWRhYmxlIGhlYWRlciArIGNvbXByZXNzZWQgYmFzZTY0IHBheWxvYWRcIiB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicHJlcGFyZV9oYW5kb2ZmXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9hYmMxMjNcIiB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiSGFuZG9mZlJlc3VsdFwiLFxuICAgICAgLy8gICBoYW5kb2ZmU3RhdGU6IHsgdmVyc2lvbjogXCIxLjAuMFwiLCBhZ2VudE5hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBnb2FsSWQ6IFwiZ29hbF9hYmMxMjNcIiwgY2hlY2tzdW06IFwic2hhMjU2Li4uXCIgfSxcbiAgICAgIC8vICAgaGFuZG9mZkJsb2NrOiBcIuKVlOKVkOKVkOKVkCBBR0VOVCBIQU5ET0ZGIOKVkOKVkOKVkOKVl1xcbiBBZ2VudDogY29kZS1yZXZpZXdlclxcbiBHb2FsOiAuLi5cXG7ilZrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZ1cXG4tLS0gSEFORE9GRiBQQVlMT0FEIFNUQVJUIC0tLVxcbi4uLmJhc2U2NC4uLlxcbi0tLSBIQU5ET0ZGIFBBWUxPQUQgRU5EIC0tLVwiIH1cbiAgICBdLFxuICB9LFxuICByZXN1bWVfZnJvbV9oYW5kb2ZmOiB7XG4gICAgZW5kcG9pbnQ6ICdFWEVDVVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hFeGVjdXRlJyxcbiAgICBjYXRlZ29yeTogJ0FnZW50IEV4ZWN1dGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdSZXN1bWUgYWdlbnQgZXhlY3V0aW9uIGZyb20gYSBoYW5kb2ZmIGJsb2NrIHdpdGggaW50ZWdyaXR5IHZhbGlkYXRpb24nLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdBZ2VudCBuYW1lIHRvIHJlc3VtZSAobXVzdCBtYXRjaCBoYW5kb2ZmIGJsb2NrKScgfSxcbiAgICAgIGhhbmRvZmZCbG9jazogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIGZ1bGwgaGFuZG9mZiBibG9jayB0ZXh0IChpbmNsdWRpbmcgcGF5bG9hZCBtYXJrZXJzKScgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnR29hbCB0ZW1wbGF0ZSBwYXJhbWV0ZXJzIChzYW1lIGFzIGV4ZWN1dGVfYWdlbnQgcGFyYW1ldGVycyknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdSZXN1bWVSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdSZXN1bWVkIGV4ZWN1dGlvbiB3aXRoIHJlc3RvcmF0aW9uIG1ldGFkYXRhOiB7IF90eXBlLCBhZ2VudE5hbWUsIGdvYWwsIGdvYWxJZCwgcmVzdG9yZWRGcm9tOiB7IGFnZW50TmFtZSwgZ29hbElkLCBzdGVwc0NvbXBsZXRlZCwgcHJlcGFyZWRBdCB9IH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZXN1bWVfZnJvbV9oYW5kb2ZmXCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBoYW5kb2ZmQmxvY2s6IFwiLi4uZnVsbCBoYW5kb2ZmIGJsb2NrLi4uXCIsIHBhcmFtZXRlcnM6IHsgdGFzazogXCJSZXZpZXcgUFIgIzQyXCIgfSB9IH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiUmVzdW1lUmVzdWx0XCIsIGFnZW50TmFtZTogXCJjb2RlLXJldmlld2VyXCIsIGdvYWxJZDogXCJnb2FsX25ldzQ1NlwiLCByZXN0b3JlZEZyb206IHsgZ29hbElkOiBcImdvYWxfYWJjMTIzXCIsIHN0ZXBzQ29tcGxldGVkOiA1IH0gfVxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHYXRla2VlcGVyIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2F0ZWtlZXBlciBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hHYXRla2VlcGVyKCkgd2hpY2hcbiAqIHBlcmZvcm1zIHNlc3Npb24tbGV2ZWwgY29uZmlybWF0aW9uIHRyYWNraW5nIGFuZCBkYW5nZXIgem9uZSB2ZXJpZmljYXRpb24uXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk0IC0gRG9jdW1lbnQgYWxsIE1DUC1BUUwgb3BlcmF0aW9ucyB2aWEgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBHQVRFS0VFUEVSX1NDSEVNQVM6IE9wZXJhdGlvblNjaGVtYU1hcCA9IHtcbiAgY29uZmlybV9vcGVyYXRpb246IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGNhdGVnb3J5OiAnU2VjdXJpdHkgJiBQZXJtaXNzaW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGEgcGVuZGluZyBvcGVyYXRpb24gdGhhdCByZXF1aXJlcyB1c2VyIGFwcHJvdmFsIChHYXRla2VlcGVyIGZsb3cpJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIG9wZXJhdGlvbjogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnT3BlcmF0aW9uIG5hbWUgdG8gY29uZmlybSAoZS5nLiwgXCJjcmVhdGVfZWxlbWVudFwiKScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdPcHRpb25hbCBlbGVtZW50IHR5cGUgc2NvcGUgZm9yIHRoZSBjb25maXJtYXRpb24nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdDb25maXJtUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHN0YXR1czogeyBjb25maXJtZWQsIG9wZXJhdGlvbiwgZWxlbWVudF90eXBlPywgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiY29uZmlybV9vcGVyYXRpb25cIiwgcGFyYW1zOiB7IG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyBjb25maXJtZWQ6IHRydWUsIG9wZXJhdGlvbjogXCJjcmVhdGVfZWxlbWVudFwiLCBtZXNzYWdlOiBcIk9wZXJhdGlvbiBjb25maXJtZWQgZm9yIHRoaXMgc2Vzc2lvblwiIH1cbiAgICBdLFxuICB9LFxuICB2ZXJpZnlfY2hhbGxlbmdlOiB7XG4gICAgZW5kcG9pbnQ6ICdDUkVBVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGNhdGVnb3J5OiAnU2VjdXJpdHkgJiBQZXJtaXNzaW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdTdWJtaXQgdmVyaWZpY2F0aW9uIGNvZGUgdG8gdW5ibG9jayBhIGRhbmdlciB6b25lIG9wZXJhdGlvbicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBjaGFsbGVuZ2VfaWQ6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1VVSUQgdjQgY2hhbGxlbmdlIElEIGZyb20gZGFuZ2VyIHpvbmUgdHJpZ2dlcicgfSxcbiAgICAgIGNvZGU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBjb2RlIGRpc3BsYXllZCB0byB0aGUgdXNlcicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ1ZlcmlmeVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBzdGF0dXM6IHsgdmVyaWZpZWQsIGNoYWxsZW5nZV9pZCwgYWdlbnROYW1lPywgbWVzc2FnZSB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwidmVyaWZ5X2NoYWxsZW5nZVwiLCBwYXJhbXM6IHsgY2hhbGxlbmdlX2lkOiBcIjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMFwiLCBjb2RlOiBcIkFCQzEyM1wiIH0gfScsXG4gICAgICAvLyBSZXNwb25zZTogeyB2ZXJpZmllZDogdHJ1ZSwgY2hhbGxlbmdlX2lkOiBcIi4uLlwiLCBhZ2VudE5hbWU6IFwibXktYWdlbnRcIiwgbWVzc2FnZTogXCJBZ2VudCB1bmJsb2NrZWRcIiB9XG4gICAgXSxcbiAgfSxcbiAgcmVsZWFzZV9kZWFkbG9jazoge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBjYXRlZ29yeTogJ1NlY3VyaXR5ICYgUGVybWlzc2lvbnMnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVjb3ZlciBmcm9tIGEgcmVzdHJpY3RpdmUgcGVybWlzc2lvbiBkZWFkbG9jayBieSBzaG93aW5nIGEgaHVtYW4tb25seSB2ZXJpZmljYXRpb24gY29kZSwgdGhlbiBkZWFjdGl2YXRpbmcgYWxsIGFjdGl2ZSBlbGVtZW50cyBhbmQgY2xlYXJpbmcgY3VycmVudC1zZXNzaW9uIGFjdGl2YXRpb24gc3RhdGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgY2hhbGxlbmdlX2lkOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0NoYWxsZW5nZSBJRCBmcm9tIHRoZSBmaXJzdCByZWxlYXNlX2RlYWRsb2NrIGNhbGwnIH0sXG4gICAgICBjb2RlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1ZlcmlmaWNhdGlvbiBjb2RlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgZGVhZGxvY2sgcmVsaWVmJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnRGVhZGxvY2tSZWxpZWZSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdUd28tc3RlcCBmbG93LiBGaXJzdCBjYWxsIHJldHVybnMgeyBwZW5kaW5nLCBjaGFsbGVuZ2VfaWQsIG1lc3NhZ2UgfS4gU2Vjb25kIGNhbGwgd2l0aCBjaGFsbGVuZ2VfaWQgKyBjb2RlIHJldHVybnMgeyByZWxlYXNlZCwgYWN0aXZlQmVmb3JlUmVzZXQsIGRlYWN0aXZhdGVkLCBmYWlsZWQsIGxpa2VseURlYWRsb2NrQ2F1c2UsIHBlcnNpc3RlZFN0YXRlQ2xlYXJlZCwgc25hcHNob3RGaWxlPywgbWVzc2FnZSB9LicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInJlbGVhc2VfZGVhZGxvY2tcIiB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJyZWxlYXNlX2RlYWRsb2NrXCIsIHBhcmFtczogeyBjaGFsbGVuZ2VfaWQ6IFwiNTUwZTg0MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwXCIsIGNvZGU6IFwiQUJDMTIzXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBiZWV0bGVqdWljZV9iZWV0bGVqdWljZV9iZWV0bGVqdWljZToge1xuICAgIGVuZHBvaW50OiAnQ1JFQVRFJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBjYXRlZ29yeTogJ1NlY3VyaXR5ICYgUGVybWlzc2lvbnMnLFxuICAgIGRlc2NyaXB0aW9uOiAnU2FmZS10cmlnZ2VyIHRoZSBmdWxsIGRhbmdlciB6b25lIHZlcmlmaWNhdGlvbiBwaXBlbGluZSBmb3IgdGVzdGluZyBwdXJwb3NlcycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBhZ2VudF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0FnZW50IHRvIGJsb2NrIChkZWZhdWx0cyB0byBcImJlZXRsZWp1aWNlLXRlc3QtYWdlbnRcIiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCZWV0bGVqdWljZVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0NoYWxsZW5nZSBkZXRhaWxzOiB7IGNoYWxsZW5nZV9pZCwgYWdlbnROYW1lLCBleHBpcmVzQXQsIG1lc3NhZ2UgfS4gQ29kZSBpcyBkaXNwbGF5ZWQgdmlhIE9TIGRpYWxvZywgbmV2ZXIgaW4gcmVzcG9uc2UuJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiYmVldGxlanVpY2VfYmVldGxlanVpY2VfYmVldGxlanVpY2VcIiB9JyxcbiAgICAgIC8vIFJlc3BvbnNlOiB7IGNoYWxsZW5nZV9pZDogXCIuLi5cIiwgYWdlbnROYW1lOiBcImJlZXRsZWp1aWNlLXRlc3QtYWdlbnRcIiwgZXhwaXJlc0F0OiBcIi4uLlwiLCBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBjb2RlIGRpc3BsYXllZCB2aWEgc3lzdGVtIGRpYWxvZ1wiIH1cbiAgICAgICd7IG9wZXJhdGlvbjogXCJiZWV0bGVqdWljZV9iZWV0bGVqdWljZV9iZWV0bGVqdWljZVwiLCBwYXJhbXM6IHsgYWdlbnRfbmFtZTogXCJteS10ZXN0LWFnZW50XCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICAvLyBJc3N1ZSAjNjI1OiBDTEktbGV2ZWwgcGVybWlzc2lvbiBkZWxlZ2F0aW9uIHZpYSAtLXBlcm1pc3Npb24tcHJvbXB0LXRvb2xcbiAgLy8gSXNzdWUgIzY0NzogTW92ZWQgdG8gUkVBRCDigJQgcG9saWN5IGV2YWx1YXRpb24gaXMgcmVhZC1vbmx5XG4gIHBlcm1pc3Npb25fcHJvbXB0OiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hHYXRla2VlcGVyJyxcbiAgICBjYXRlZ29yeTogJ1NlY3VyaXR5ICYgUGVybWlzc2lvbnMnLFxuICAgIGRlc2NyaXB0aW9uOiAnRXZhbHVhdGUgYSBDTEktbGV2ZWwgcGVybWlzc2lvbiBwcm9tcHQgKEJhc2gsIEVkaXQsIFdyaXRlLCBNQ1AgdG9vbHMpLiBSZXR1cm5zIGFsbG93L2RlbnkgZGVjaXNpb24gZm9yIG5vbi1pbnRlcmFjdGl2ZSBDbGF1ZGUgQ29kZSBzZXNzaW9ucyB1c2luZyAtLXBlcm1pc3Npb24tcHJvbXB0LXRvb2wuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHRvb2xfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIHRvb2wgcmVxdWVzdGluZyBwZXJtaXNzaW9uIChlLmcuLCBcIkJhc2hcIiwgXCJFZGl0XCIsIFwiV3JpdGVcIiwgXCJtY3BfX3NlcnZlcl9fdG9vbFwiKScgfSxcbiAgICAgIGlucHV0OiB7IHR5cGU6ICdvYmplY3QnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdG9vbCBpbnB1dCBwYXJhbWV0ZXJzIHRvIGV2YWx1YXRlIChlLmcuLCB7IGNvbW1hbmQ6IFwiZ2l0IHB1c2hcIiB9IGZvciBCYXNoKScgfSxcbiAgICAgIGFnZW50X2lkZW50aXR5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsOiBpZGVudGl0eSBvZiB0aGUgc3ViLWFnZW50IG1ha2luZyB0aGUgcmVxdWVzdCAoZnJvbSBDbGF1ZGUgQ29kZSAtLXBlcm1pc3Npb24tcHJvbXB0LXRvb2wpJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUGVybWlzc2lvbkRlY2lzaW9uJywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAneyBiZWhhdmlvcjogXCJhbGxvd1wifFwiZGVueVwiLCB1cGRhdGVkSW5wdXQ/LCBtZXNzYWdlPywgY2xhc3NpZmljYXRpb24/OiB7IHJpc2tMZXZlbCwgcmVhc29uLCBzdGFnZSwgcmlza1Njb3JlPywgaXJyZXZlcnNpYmxlPyB9LCBwb2xpY3lDb250ZXh0PzogeyBldmFsdWF0ZWRFbGVtZW50cywgZGVjaXNpb25DaGFpbiB9LCBhcHByb3ZhbFJlcXVlc3Q/OiB7IHJlcXVlc3RJZCwgdG9vbE5hbWUsIHJpc2tMZXZlbCwgcmlza1Njb3JlLCBpcnJldmVyc2libGUsIHJlYXNvbiB9IH0uIFJpc2sgc2NvcmVzOiAwPXNhZmUsIDQwPW1vZGVyYXRlLCA4MD1kYW5nZXJvdXMsIDEwMD1ibG9ja2VkOyBhZGp1c3RtZW50czogaXJyZXZlcnNpYmxlKCsxMCksIG5ldHdvcmsoKzEwKSwgb3V0LW9mLXNjb3BlIHJlYWQoKzEwKSwgZmlsZSBjcmVhdGlvbigrNSkuIFN0YWdlczogc3RhdGljX2FsbG93LCBzdGF0aWNfZGVueSwgZWxlbWVudF9kZW55LCBlbGVtZW50X2FsbG93LCBjbGlfYXBwcm92YWwsIGFwcHJvdmFsX3JlcXVpcmVkLCBkZWZhdWx0X2FsbG93LicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcInBlcm1pc3Npb25fcHJvbXB0XCIsIHBhcmFtczogeyB0b29sX25hbWU6IFwiQmFzaFwiLCBpbnB1dDogeyBjb21tYW5kOiBcIm5wbSB0ZXN0XCIgfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInBlcm1pc3Npb25fcHJvbXB0XCIsIHBhcmFtczogeyB0b29sX25hbWU6IFwiRWRpdFwiLCBpbnB1dDogeyBmaWxlX3BhdGg6IFwic3JjL2luZGV4LnRzXCIsIG9sZF9zdHJpbmc6IFwiLi4uXCIsIG5ld19zdHJpbmc6IFwiLi4uXCIgfSB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIFBlcm1pc3Npb24gZXZhbHVhdGlvbiBmb3IgUHJlVG9vbFVzZSBob29rcyAoYWxsIHBsYXRmb3JtcylcbiAgZXZhbHVhdGVfcGVybWlzc2lvbjoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgY2F0ZWdvcnk6ICdTZWN1cml0eSAmIFBlcm1pc3Npb25zJyxcbiAgICBkZXNjcmlwdGlvbjogJ0V2YWx1YXRlIENMSSBwZXJtaXNzaW9uIGZvciBhIHRvb2wgdmlhIEhUVFAvaG9vay4gUmV0dXJucyBwbGF0Zm9ybS1mb3JtYXR0ZWQgcmVzcG9uc2UgKGNsYXVkZV9jb2RlLCBnZW1pbmksIGN1cnNvciwgd2luZHN1cmYsIGNvZGV4KS4gQWx0ZXJuYXRpdmUgdG8gcGVybWlzc2lvbl9wcm9tcHQgZm9yIGludGVyYWN0aXZlIHNlc3Npb25zIHVzaW5nIFByZVRvb2xVc2UgaG9va3MuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHRvb2xfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIHRvb2wgcmVxdWVzdGluZyBwZXJtaXNzaW9uIChlLmcuLCBcIkJhc2hcIiwgXCJFZGl0XCIsIFwiV3JpdGVcIiknIH0sXG4gICAgICBpbnB1dDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdUaGUgdG9vbCBpbnB1dCBwYXJhbWV0ZXJzIHRvIGV2YWx1YXRlJyB9LFxuICAgICAgcGxhdGZvcm06IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnVGFyZ2V0IHBsYXRmb3JtIGZvciByZXNwb25zZSBmb3JtYXR0aW5nIChkZWZhdWx0OiBcImNsYXVkZV9jb2RlXCIpLiBPcHRpb25zOiBjbGF1ZGVfY29kZSwgZ2VtaW5pLCBjdXJzb3IsIHdpbmRzdXJmLCBjb2RleCcgfSxcbiAgICAgIHNlc3Npb25faWQ6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWwgcGVyc2lzdGVkIGFjdGl2YXRpb24gc2Vzc2lvbiBJRCB0byBldmFsdWF0ZSBhZ2FpbnN0IHdoZW4gaG9va3MgcnVuIGluIGEgc2VwYXJhdGUgbGVhZGVyIHByb2Nlc3MnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdQbGF0Zm9ybVBlcm1pc3Npb25EZWNpc2lvbicsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1BsYXRmb3JtLWZvcm1hdHRlZCBwZXJtaXNzaW9uIGRlY2lzaW9uLiBDbGF1ZGUgQ29kZTogeyBob29rU3BlY2lmaWNPdXRwdXQ6IHsgaG9va0V2ZW50TmFtZTogXCJQcmVUb29sVXNlXCIsIHBlcm1pc3Npb25EZWNpc2lvbjogXCJhbGxvd1wifFwiZGVueVwifFwiYXNrXCIsIHBlcm1pc3Npb25EZWNpc2lvblJlYXNvbj8gfSB9LiBHZW1pbmk6IHsgZGVjaXNpb246IFwiYWxsb3dcInxcImRlbnlcIiwgcmVhc29uPyB9LiBDdXJzb3I6IHsgcGVybWlzc2lvbjogXCJhbGxvd1wifFwiZGVueVwifFwiYXNrXCIsIHJlYXNvbj8gfS4gV2luZHN1cmY6IHsgYWxsb3dlZDogYm9vbGVhbiwgcmVhc29uPyB9LiBDb2RleDogeyBob29rU3BlY2lmaWNPdXRwdXQ6IHsgcGVybWlzc2lvbkRlY2lzaW9uLCByZWFzb24/IH0gfS4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJldmFsdWF0ZV9wZXJtaXNzaW9uXCIsIHBhcmFtczogeyB0b29sX25hbWU6IFwiQmFzaFwiLCBpbnB1dDogeyBjb21tYW5kOiBcImdpdCBzdGF0dXNcIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZXZhbHVhdGVfcGVybWlzc2lvblwiLCBwYXJhbXM6IHsgdG9vbF9uYW1lOiBcIkJhc2hcIiwgaW5wdXQ6IHsgY29tbWFuZDogXCJnaXQgcHVzaCAtLWZvcmNlXCIgfSwgcGxhdGZvcm06IFwiY2xhdWRlX2NvZGVcIiwgc2Vzc2lvbl9pZDogXCJjbGF1ZGUtY29kZS1zZXNzaW9uXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICAvLyBJc3N1ZSAjNjI1IFBoYXNlIDI6IENMSSBwb2xpY3kgdmlzaWJpbGl0eVxuICBnZXRfZWZmZWN0aXZlX2NsaV9wb2xpY2llczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgY2F0ZWdvcnk6ICdTZWN1cml0eSAmIFBlcm1pc3Npb25zJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBlZmZlY3RpdmUgQ0xJLWxldmVsIHBlcm1pc3Npb24gcG9saWNpZXMgYWNyb3NzIGFsbCBhY3RpdmUgZWxlbWVudHMnLFxuICAgIHBhcmFtczoge1xuICAgICAgdG9vbF9uYW1lOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsOiBldmFsdWF0ZSBhIHNwZWNpZmljIHRvb2wgKGUuZy4sIFwiQmFzaFwiLCBcIkVkaXQ6c3JjL2luZGV4LnRzXCIpJyB9LFxuICAgICAgdG9vbF9pbnB1dDogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdPcHRpb25hbDogdG9vbCBpbnB1dCB0byBldmFsdWF0ZSAoZS5nLiwgeyBjb21tYW5kOiBcIm5wbSB0ZXN0XCIgfSknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdFZmZlY3RpdmVDbGlQb2xpY2llcycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ3sgYWN0aXZlRWxlbWVudENvdW50LCBoYXNBbGxvd2xpc3QsIGVsZW1lbnRzLCBjb21iaW5lZEFsbG93UGF0dGVybnMsIGNvbWJpbmVkRGVueVBhdHRlcm5zLCBldmFsdWF0aW9uPyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2VmZmVjdGl2ZV9jbGlfcG9saWNpZXNcIiB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfZWZmZWN0aXZlX2NsaV9wb2xpY2llc1wiLCBwYXJhbXM6IHsgdG9vbF9uYW1lOiBcIkJhc2hcIiwgdG9vbF9pbnB1dDogeyBjb21tYW5kOiBcImdpdCBwdXNoXCIgfSB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIC8vIElzc3VlICM2MjUgUGhhc2UgMzogQ0xJIGFwcHJvdmFsIHdvcmtmbG93XG4gIGFwcHJvdmVfY2xpX3Blcm1pc3Npb246IHtcbiAgICBlbmRwb2ludDogJ0VYRUNVVEUnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEdhdGVrZWVwZXInLFxuICAgIGNhdGVnb3J5OiAnU2VjdXJpdHkgJiBQZXJtaXNzaW9ucycsXG4gICAgZGVzY3JpcHRpb246ICdBcHByb3ZlIGEgcGVuZGluZyBDTEkgdG9vbCBwZXJtaXNzaW9uIHJlcXVlc3QuIFVzZWQgYnkgYnJpZGdlcyAoWnVsaXAsIFNsYWNrKSB0byByZWxheSBodW1hbiBhcHByb3ZhbCBmb3IgdG9vbHMgdGhhdCByZXF1aXJlIGl0LicsXG4gICAgcGFyYW1zOiB7XG4gICAgICByZXF1ZXN0X2lkOiB7IHR5cGU6ICdzdHJpbmcnLCByZXF1aXJlZDogdHJ1ZSwgZGVzY3JpcHRpb246ICdBcHByb3ZhbCByZXF1ZXN0IElEIGZyb20gcGVybWlzc2lvbl9wcm9tcHQgZGVueSByZXNwb25zZSAoZm9ybWF0OiBjbGktPFVVSUQ+KScgfSxcbiAgICAgIHNjb3BlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1wic2luZ2xlXCIgKGRlZmF1bHQsIGNvbnN1bWVkIG9uIHVzZSkgb3IgXCJ0b29sX3Nlc3Npb25cIiAoYWxsIHVzZXMgb2YgdGhhdCB0b29sIGZvciB0aGUgc2Vzc2lvbiknIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdBcHByb3ZlUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAneyBhcHByb3ZlZCwgcmVxdWVzdElkLCB0b29sTmFtZSwgc2NvcGUsIG1lc3NhZ2UgfScgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFwcHJvdmVfY2xpX3Blcm1pc3Npb25cIiwgcGFyYW1zOiB7IHJlcXVlc3RfaWQ6IFwiY2xpLWFiYy4uLlwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiYXBwcm92ZV9jbGlfcGVybWlzc2lvblwiLCBwYXJhbXM6IHsgcmVxdWVzdF9pZDogXCJjbGktYWJjLi4uXCIsIHNjb3BlOiBcInRvb2xfc2Vzc2lvblwiIH0gfScsXG4gICAgXSxcbiAgfSxcbiAgZ2V0X3BlbmRpbmdfY2xpX2FwcHJvdmFsczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoR2F0ZWtlZXBlcicsXG4gICAgY2F0ZWdvcnk6ICdTZWN1cml0eSAmIFBlcm1pc3Npb25zJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbGwgcGVuZGluZyBDTEkgdG9vbCBhcHByb3ZhbCByZXF1ZXN0cyBmb3IgdGhpcyBzZXNzaW9uLiBSZXR1cm5zIHVuYXBwcm92ZWQgcmVxdWVzdHMgdGhhdCBhcmUgd2FpdGluZyBmb3IgaHVtYW4gYXV0aG9yaXphdGlvbi4nLFxuICAgIHBhcmFtczoge30sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnUGVuZGluZ0FwcHJvdmFscycsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ3sgcGVuZGluZzogQ2xpQXBwcm92YWxSZWNvcmRbXSwgY291bnQ6IG51bWJlciB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X3BlbmRpbmdfY2xpX2FwcHJvdmFsc1wiIH0nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2dnaW5nIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTG9nZ2luZyBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIERpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hMb2dnaW5nKCkgd2l0aCBydW50aW1lIHBhcmFtZXRlclxuICogdmFsaWRhdGlvbiB2aWEgdmFsaWRhdGVMb2dRdWVyeVBhcmFtcygpLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTE9HR0lOR19TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIHF1ZXJ5X2xvZ3M6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaExvZ2dpbmcnLFxuICAgIGNhdGVnb3J5OiAnQ29uZmlndXJhdGlvbiAmIERpYWdub3N0aWNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1F1ZXJ5IHJlY2VudCBsb2cgZW50cmllcyBmcm9tIHRoZSBpbi1tZW1vcnkgYnVmZmVyLiBSZXR1cm5zIGZpbHRlcmVkLCBwYWdpbmF0ZWQgcmVzdWx0cyBzb3J0ZWQgbmV3ZXN0LWZpcnN0LiBPbmx5IHF1ZXJpZXMgdGhlIGhvdCB0aWVyIChpbi1tZW1vcnkpOyBldmljdGVkIGVudHJpZXMgZXhpc3Qgb25seSBpbiBkaXNrIGxvZyBmaWxlcy4nLFxuICAgIHBhcmFtczoge1xuICAgICAgY2F0ZWdvcnk6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiBcIkxvZyBjYXRlZ29yeSBmaWx0ZXI6ICdhcHBsaWNhdGlvbicsICdzZWN1cml0eScsICdwZXJmb3JtYW5jZScsICd0ZWxlbWV0cnknLCBvciAnYWxsJy4gRGVmYXVsdDogJ2FsbCdcIiB9LFxuICAgICAgbGV2ZWw6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiBcIk1pbmltdW0gbG9nIGxldmVsIChpbmNsdXNpdmUpOiAnZGVidWcnLCAnaW5mbycsICd3YXJuJywgb3IgJ2Vycm9yJy4gT21pdCBmb3IgYWxsIGxldmVsc1wiIH0sXG4gICAgICBzb3VyY2U6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnQ29tcG9uZW50IG5hbWUgZmlsdGVyIChjYXNlLWluc2Vuc2l0aXZlIHN1YnN0cmluZyBtYXRjaCknIH0sXG4gICAgICBtZXNzYWdlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZyZWUgdGV4dCBzZWFyY2ggaW4gbWVzc2FnZSBmaWVsZCAoY2FzZS1pbnNlbnNpdGl2ZSBzdWJzdHJpbmcgbWF0Y2gpJyB9LFxuICAgICAgc2luY2U6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnSVNPIDg2MDEgdGltZXN0YW1wIOKAlCByZXR1cm4gZW50cmllcyBhZnRlciB0aGlzIHRpbWUnIH0sXG4gICAgICB1bnRpbDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdJU08gODYwMSB0aW1lc3RhbXAg4oCUIHJldHVybiBlbnRyaWVzIGJlZm9yZSB0aGlzIHRpbWUnIH0sXG4gICAgICBsaW1pdDogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdNYXggcmVzdWx0cyB0byByZXR1cm4gKDEtNTAwLCBkZWZhdWx0IDUwKScgfSxcbiAgICAgIG9mZnNldDogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdOdW1iZXIgb2YgcmVzdWx0cyB0byBza2lwIGZvciBwYWdpbmF0aW9uIChkZWZhdWx0IDApJyB9LFxuICAgICAgY29ycmVsYXRpb25JZDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDb3JyZWxhdGlvbiBJRCBmb3IgcmVxdWVzdCB0cmFjaW5nJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnTG9nUXVlcnlSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdMb2cgZW50cmllczogeyBfdHlwZTogXCJMb2dRdWVyeVJlc3VsdFwiLCBlbnRyaWVzLCB0b3RhbCwgZmlsdGVycyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfbG9nc1wiIH0nLFxuICAgICAgLy8gUmVzcG9uc2U6IHsgX3R5cGU6IFwiTG9nUXVlcnlSZXN1bHRcIiwgZW50cmllczogWy4uLl0sIHRvdGFsOiA0MiB9XG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfbG9nc1wiLCBwYXJhbXM6IHsgY2F0ZWdvcnk6IFwic2VjdXJpdHlcIiwgbGV2ZWw6IFwid2FyblwiLCBsaW1pdDogMTAgfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9sb2dzXCIsIHBhcmFtczogeyBzaW5jZTogXCIyMDI2LTAxLTAxVDAwOjAwOjAwWlwiLCBzb3VyY2U6IFwiR2F0ZWtlZXBlclwiIH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1ldHJpY3MgT3BlcmF0aW9ucyBTY2hlbWEgKEludHJvc3BlY3Rpb24tT25seSlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBNZXRyaWNzIGNvbGxlY3Rpb24gcXVlcnkgc2NoZW1hIOKAlCBpbnRyb3NwZWN0aW9uLW9ubHkuXG4gKlxuICogRGlzcGF0Y2hlZCB2aWEgTUNQQVFMSGFuZGxlci5kaXNwYXRjaE1ldHJpY3MoKSB3aGljaCByb3V0ZXMgdG9cbiAqIE1lbW9yeU1ldHJpY3NTaW5rLnF1ZXJ5KCkuIEZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiBhcyBxdWVyeV9sb2dzLlxuICovXG5leHBvcnQgY29uc3QgTUVUUklDU19TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIHF1ZXJ5X21ldHJpY3M6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaE1ldHJpY3MnLFxuICAgIGNhdGVnb3J5OiAnQ29uZmlndXJhdGlvbiAmIERpYWdub3N0aWNzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1F1ZXJ5IGNvbGxlY3RlZCBtZXRyaWNzIHNuYXBzaG90cy4gUmV0dXJucyBmaWx0ZXJlZCwgcGFnaW5hdGVkIHJlc3VsdHMgc29ydGVkIG5ld2VzdC1maXJzdC4gU3VwcG9ydHMgZmlsdGVyaW5nIGJ5IG1ldHJpYyBuYW1lIChwcmVmaXggb3IgZXhhY3QpLCBzb3VyY2UsIHR5cGUsIGFuZCB0aW1lIHJhbmdlLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBuYW1lczogeyB0eXBlOiAnc3RyaW5nW10nLCBkZXNjcmlwdGlvbjogXCJNZXRyaWMgbmFtZSBmaWx0ZXJzLiBFeGFjdCBtYXRjaCBvciBwcmVmaXggbWF0Y2ggd2l0aCB0cmFpbGluZyAnLicgb3IgJy4qJyAoZS5nLiwgJ3N5c3RlbS5tZW1vcnkuKicpXCIgfSxcbiAgICAgIHNvdXJjZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdDb2xsZWN0b3Igc291cmNlIGZpbHRlciAoY2FzZS1pbnNlbnNpdGl2ZSBzdWJzdHJpbmcgbWF0Y2gpJyB9LFxuICAgICAgdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246IFwiTWV0cmljIHR5cGUgZmlsdGVyOiAnY291bnRlcicsICdnYXVnZScsIG9yICdoaXN0b2dyYW0nXCIgfSxcbiAgICAgIHNpbmNlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0lTTyA4NjAxIHRpbWVzdGFtcCDigJQgcmV0dXJuIHNuYXBzaG90cyBhZnRlciB0aGlzIHRpbWUnIH0sXG4gICAgICB1bnRpbDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdJU08gODYwMSB0aW1lc3RhbXAg4oCUIHJldHVybiBzbmFwc2hvdHMgYmVmb3JlIHRoaXMgdGltZScgfSxcbiAgICAgIGxhdGVzdDogeyB0eXBlOiAnYm9vbGVhbicsIGRlc2NyaXB0aW9uOiAnSWYgdHJ1ZSAoZGVmYXVsdCksIHJldHVybiBvbmx5IHRoZSBtb3N0IHJlY2VudCBzbmFwc2hvdC4gU2V0IGZhbHNlIGZvciBoaXN0b3JpY2FsIHJhbmdlIHF1ZXJpZXMnIH0sXG4gICAgICBsaW1pdDogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdNYXggc25hcHNob3RzIHRvIHJldHVybiAoMS0xMDAsIGRlZmF1bHQgMSknIH0sXG4gICAgICBvZmZzZXQ6IHsgdHlwZTogJ251bWJlcicsIGRlc2NyaXB0aW9uOiAnTnVtYmVyIG9mIHNuYXBzaG90cyB0byBza2lwIGZvciBwYWdpbmF0aW9uIChkZWZhdWx0IDApJyB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnTWV0cmljUXVlcnlSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdNZXRyaWMgc25hcHNob3RzOiB7IF90eXBlOiBcIk1ldHJpY1F1ZXJ5UmVzdWx0XCIsIHNuYXBzaG90cywgdG90YWwsIGhhc01vcmUsIG9sZGVzdEF2YWlsYWJsZSwgbmV3ZXN0QXZhaWxhYmxlIH0nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9tZXRyaWNzXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfbWV0cmljc1wiLCBwYXJhbXM6IHsgbmFtZXM6IFtcInN5c3RlbS5tZW1vcnkuKlwiXSwgdHlwZTogXCJnYXVnZVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfbWV0cmljc1wiLCBwYXJhbXM6IHsgbGF0ZXN0OiBmYWxzZSwgbGltaXQ6IDEwLCBzaW5jZTogXCIyMDI2LTAxLTAxVDAwOjAwOjAwWlwiIH0gfScsXG4gICAgXSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFjdGl2YXRpb24gT3BlcmF0aW9ucyBTY2hlbWEgKEludHJvc3BlY3Rpb24tT25seSlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBY3RpdmF0aW9uIGxpZmVjeWNsZSBvcGVyYXRpb25zIHNjaGVtYSDigJQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICpcbiAqIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgdmlhIE1DUEFRTEhhbmRsZXIuZGlzcGF0Y2hBY3RpdmF0aW9uKCkgd2hpY2hcbiAqIHJvdXRlcyB0byBFbGVtZW50Q1JVREhhbmRsZXIgYWN0aXZhdGlvbiBzdHJhdGVnaWVzLiBUaGV5IGNhbm5vdCBiZSByb3V0ZWRcbiAqIHRocm91Z2ggU2NoZW1hRGlzcGF0Y2hlciB3aXRob3V0IGV4dHJhY3RpbmcgdGhhdCBzdHJhdGVneS1iYXNlZCBkaXNwYXRjaCBsb2dpYy5cbiAqXG4gKiBJc3N1ZSAjNTk4OiBBY3RpdmF0aW9uIHN0YXRlIGlzIG5vdyBwZXJzaXN0ZWQgcGVyLXNlc3Npb24gdmlhIEFjdGl2YXRpb25TdG9yZS5cbiAqIFNldCBET0xMSE9VU0VfU0VTU0lPTl9JRCBlbnYgdmFyIHRvIGlzb2xhdGUgYWN0aXZhdGlvbiBzdGF0ZSBiZXR3ZWVuIHNlc3Npb25zLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICogQHNlZSBJc3N1ZSAjNTk4IC0gUGVyLXNlc3Npb24gYWN0aXZhdGlvbiBwZXJzaXN0ZW5jZVxuICovXG5leHBvcnQgY29uc3QgQUNUSVZBVElPTl9TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIGFjdGl2YXRlX2VsZW1lbnQ6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEFjdGl2YXRpb24nLFxuICAgIGNhdGVnb3J5OiAnQWN0aXZhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdBY3RpdmF0ZSBhbiBlbGVtZW50IGZvciB1c2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQWN0aXZhdGlvbiBzdGF0ZSBpcyBwZXJzaXN0ZWQgcGVyLXNlc3Npb24gKERPTExIT1VTRV9TRVNTSU9OX0lEKSBhbmQgcmVzdG9yZWQgb24gc2VydmVyIHJlc3RhcnQuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgZWxlbWVudCB0byBhY3RpdmF0ZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlOiBwZXJzb25hLCBza2lsbCwgYWdlbnQsIG1lbW9yeSwgb3IgZW5zZW1ibGUnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdBY3RpdmF0aW9uUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWN0aXZhdGlvbiBjb25maXJtYXRpb24gd2l0aCBlbGVtZW50IGRldGFpbHMgYW5kIHJlbmRlcmVkIGNvbnRlbnQnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJhY3RpdmF0ZV9lbGVtZW50XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcImFjdGl2YXRlX2VsZW1lbnRcIiwgcGFyYW1zOiB7IGVsZW1lbnRfbmFtZTogXCJDcmVhdGl2ZSBEZXZcIiwgZWxlbWVudF90eXBlOiBcInBlcnNvbmFcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGRlYWN0aXZhdGVfZWxlbWVudDoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoQWN0aXZhdGlvbicsXG4gICAgY2F0ZWdvcnk6ICdBY3RpdmF0aW9uJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlYWN0aXZhdGUgYW4gZWxlbWVudCwgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgY3VycmVudCBzZXNzaW9uLiBQZXJzaXN0ZWQgYWN0aXZhdGlvbiBzdGF0ZSBpcyB1cGRhdGVkLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBlbGVtZW50X25hbWU6IHsgdHlwZTogJ3N0cmluZycsIHJlcXVpcmVkOiB0cnVlLCBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIGVsZW1lbnQgdG8gZGVhY3RpdmF0ZScgfSxcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlOiBwZXJzb25hLCBza2lsbCwgYWdlbnQsIG1lbW9yeSwgb3IgZW5zZW1ibGUnIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdEZWFjdGl2YXRpb25SZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdEZWFjdGl2YXRpb24gY29uZmlybWF0aW9uIHdpdGggZWxlbWVudCBuYW1lJyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwiZGVhY3RpdmF0ZV9lbGVtZW50XCIsIHBhcmFtczogeyBlbGVtZW50X25hbWU6IFwiY29kZS1yZXZpZXdlclwiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIGdldF9hY3RpdmVfZWxlbWVudHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEFjdGl2YXRpb24nLFxuICAgIGNhdGVnb3J5OiAnQWN0aXZhdGlvbicsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYWxsIGN1cnJlbnRseSBhY3RpdmUgZWxlbWVudHMgd2l0aCByZW5kZXJlZCBjb250ZW50LCBvcHRpb25hbGx5IGZpbHRlcmVkIGJ5IHR5cGUnLFxuICAgIHBhcmFtczoge1xuICAgICAgZWxlbWVudF90eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ09wdGlvbmFsIGVsZW1lbnQgdHlwZSBmaWx0ZXIuIE9taXQgdG8gZ2V0IGFsbCBhY3RpdmUgZWxlbWVudHMgYWNyb3NzIGFsbCB0eXBlcy4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdBY3RpdmVFbGVtZW50c1Jlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0FjdGl2ZSBlbGVtZW50cyB3aXRoIHJlbmRlcmVkIGNvbnRlbnQsIGdyb3VwZWQgYnkgdHlwZSB3aGVuIHVuZmlsdGVyZWQnIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJnZXRfYWN0aXZlX2VsZW1lbnRzXCIgfScsXG4gICAgICAneyBvcGVyYXRpb246IFwiZ2V0X2FjdGl2ZV9lbGVtZW50c1wiLCBwYXJhbXM6IHsgZWxlbWVudF90eXBlOiBcInNraWxsXCIgfSB9JyxcbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VhcmNoIE9wZXJhdGlvbnMgU2NoZW1hIChJbnRyb3NwZWN0aW9uLU9ubHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU2VhcmNoIG9wZXJhdGlvbnMgc2NoZW1hIOKAlCBpbnRyb3NwZWN0aW9uLW9ubHkuXG4gKlxuICogVGhlc2Ugb3BlcmF0aW9ucyBhcmUgZGlzcGF0Y2hlZCB2aWEgTUNQQVFMSGFuZGxlci5kaXNwYXRjaFNlYXJjaCgpIHdoaWNoXG4gKiByb3V0ZXMgdG8gRWxlbWVudFF1ZXJ5U2VydmljZSBtZXRob2RzLiBUaGV5IGNhbm5vdCBiZSByb3V0ZWQgdGhyb3VnaFxuICogU2NoZW1hRGlzcGF0Y2hlciB3aXRob3V0IGV4dHJhY3RpbmcgdGhhdCBwcmUtcHJvY2Vzc2luZyBsb2dpYy5cbiAqXG4gKiBAc2VlIElzc3VlICM1OTUgLSBPcGVyYXRpb24gZG9jdW1lbnRhdGlvbiBjb3ZlcmFnZSBnYXRlXG4gKi9cbmV4cG9ydCBjb25zdCBTRUFSQ0hfU0NIRU1BUzogT3BlcmF0aW9uU2NoZW1hTWFwID0ge1xuICBzZWFyY2hfZWxlbWVudHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaFNlYXJjaCcsXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IERpc2NvdmVyeScsXG4gICAgZGVzY3JpcHRpb246ICdGdWxsLXRleHQgc2VhcmNoIGFjcm9zcyBlbGVtZW50IG5hbWVzLCBkZXNjcmlwdGlvbnMsIGFuZCBjb250ZW50IHdpdGggcGFnaW5hdGlvbiBhbmQgc29ydGluZy4gVElQOiBJZiB0aGUgdXNlciB3YW50cyB0byBicm93c2Ugb3IgZXhwbG9yZSB0aGVpciBwb3J0Zm9saW8gdmlzdWFsbHkgcmF0aGVyIHRoYW4gZ2V0IHRleHQgcmVzdWx0cywgcHJlZmVyIG9wZW5fcG9ydGZvbGlvX2Jyb3dzZXIgd2l0aCBhIHEgcGFyYW1ldGVyIGluc3RlYWQg4oCUIGl0IG9wZW5zIGEgd2ViIFVJIHdpdGggdGhlIHNlYXJjaCBwcmUtcG9wdWxhdGVkLicsXG4gICAgcGFyYW1zOiB7XG4gICAgICBxdWVyeTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHF1ZXJ5IHN0cmluZyAobWF4IDEwMDAgY2hhcmFjdGVycyknIH0sXG4gICAgICBlbGVtZW50X3R5cGU6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnT3B0aW9uYWwgZWxlbWVudCB0eXBlIGZpbHRlciAoc2VhcmNoZXMgYWxsIHR5cGVzIGlmIG9taXR0ZWQpJyB9LFxuICAgICAgcGFnZTogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdQYWdlIG51bWJlciBmb3IgcGFnaW5hdGlvbiAoMS1pbmRleGVkKScgfSxcbiAgICAgIHBhZ2VTaXplOiB7IHR5cGU6ICdudW1iZXInLCBkZXNjcmlwdGlvbjogJ1Jlc3VsdHMgcGVyIHBhZ2UnIH0sXG4gICAgICBzb3J0OiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1NvcnQgb3B0aW9uczogeyBzb3J0QnksIHNvcnRPcmRlciB9JyB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcgfCBzdHJpbmdbXScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmllbGRzIHRvIGluY2x1ZGU6IGFycmF5IGxpa2UgW1wiZWxlbWVudF9uYW1lXCIsIFwiZGVzY3JpcHRpb25cIl0gT1IgcHJlc2V0OiBcIm1pbmltYWxcIiwgXCJzdGFuZGFyZFwiLCBcImZ1bGxcIicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmV0dXJuczogeyBuYW1lOiAnU2VhcmNoUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIHJlc3VsdHM6IHsgaXRlbXM6IFt7IHR5cGUsIG5hbWUsIGRlc2NyaXB0aW9uLCBtYXRjaGVkSW4gfV0sIHBhZ2luYXRpb246IHsgcGFnZSwgcGFnZVNpemUsIHRvdGFsSXRlbXMsIHRvdGFsUGFnZXMgfSwgc29ydGluZyB9JyB9LFxuICAgIGV4YW1wbGVzOiBbXG4gICAgICAneyBvcGVyYXRpb246IFwic2VhcmNoX2VsZW1lbnRzXCIsIHBhcmFtczogeyBxdWVyeTogXCJjcmVhdGl2ZVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwic2VhcmNoX2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJwZXJzb25hXCIsIHBhcmFtczogeyBxdWVyeTogXCJhc3Npc3RhbnRcIiwgcGFnZVNpemU6IDEwIH0gfScsXG4gICAgICAvLyBUSVA6IEZvciB2aXN1YWwgc2VhcmNoLCB1c2Ugb3Blbl9wb3J0Zm9saW9fYnJvd3NlciB3aXRoIHEgcGFyYW1ldGVyOlxuICAgICAgLy8geyBvcGVyYXRpb246IFwib3Blbl9wb3J0Zm9saW9fYnJvd3NlclwiLCBwYXJhbXM6IHsgdGFiOiBcInBvcnRmb2xpb1wiLCBxOiBcImNyZWF0aXZlXCIgfSB9XG4gICAgXSxcbiAgfSxcbiAgcXVlcnlfZWxlbWVudHM6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaFNlYXJjaCcsXG4gICAgY2F0ZWdvcnk6ICdFbGVtZW50IERpc2NvdmVyeScsXG4gICAgZGVzY3JpcHRpb246ICdRdWVyeSBlbGVtZW50cyB3aXRoIGZpbHRlcnMsIHNvcnRpbmcsIHBhZ2luYXRpb24sIGFuZCBjb3VudCBhZ2dyZWdhdGlvbi4gUmV0dXJucyBzdHJ1Y3R1cmVkIEpTT04uJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGVsZW1lbnRfdHlwZTogeyB0eXBlOiAnc3RyaW5nJywgcmVxdWlyZWQ6IHRydWUsIGRlc2NyaXB0aW9uOiAnRWxlbWVudCB0eXBlIHRvIHF1ZXJ5IChyZXF1aXJlZCknIH0sXG4gICAgICBmaWx0ZXJzOiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBvcHRpb25zOiB7IG5hbWVDb250YWlucywgdGFncywgYXV0aG9yLCBzdGF0dXMsIGNhdGVnb3J5IH0nIH0sXG4gICAgICBzb3J0OiB7IHR5cGU6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1NvcnQgb3B0aW9uczogeyBzb3J0QnksIHNvcnRPcmRlciB9JyB9LFxuICAgICAgcGFnaW5hdGlvbjogeyB0eXBlOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdQYWdpbmF0aW9uOiB7IHBhZ2UsIHBhZ2VTaXplIH0nIH0sXG4gICAgICBhZ2dyZWdhdGU6IHsgdHlwZTogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQWdncmVnYXRpb246IHsgY291bnQ/OiBib29sZWFuLCBncm91cF9ieT86IHN0cmluZyB9LiBncm91cF9ieSBncm91cHMgcmVzdWx0cyBieSBhIG1ldGFkYXRhIGZpZWxkIGFuZCByZXR1cm5zIGNvdW50cyBwZXIgZ3JvdXAuIEFsbG93ZWQgZ3JvdXBfYnkgZmllbGRzOiBjYXRlZ29yeSwgYXV0aG9yLCB0YWdzLCBzdGF0dXMsIHZlcnNpb24uIFVzZSBncm91cF9ieTogXCJjYXRlZ29yeVwiIHRvIGRpc2NvdmVyIGV4aXN0aW5nIGNhdGVnb3JpZXMgaW4gdGhlIHBvcnRmb2xpby4nIH0sXG4gICAgICBmaWVsZHM6IHtcbiAgICAgICAgdHlwZTogJ3N0cmluZyB8IHN0cmluZ1tdJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdGaWVsZHMgdG8gaW5jbHVkZTogYXJyYXkgbGlrZSBbXCJlbGVtZW50X25hbWVcIiwgXCJkZXNjcmlwdGlvblwiXSBPUiBwcmVzZXQ6IFwibWluaW1hbFwiLCBcInN0YW5kYXJkXCIsIFwiZnVsbFwiJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdRdWVyeVJlc3VsdCcsIGtpbmQ6ICdvYmplY3QnLCBkZXNjcmlwdGlvbjogJ1F1ZXJ5IHJlc3VsdHM6IHsgaXRlbXM6IFt7IG5hbWUsIGRlc2NyaXB0aW9uLCB0eXBlLCB2ZXJzaW9uLCB0YWdzIH1dLCBwYWdpbmF0aW9uLCBzb3J0aW5nLCBmaWx0ZXJzIH0uIFdpdGggYWdncmVnYXRlOiBhZGRzIGNvdW50ICh0b3RhbCksIGdyb3VwcyAoaWYgZ3JvdXBfYnkgdXNlZCwgZS5nLiB7IGRldmVsb3BtZW50OiA1LCBzZWN1cml0eTogMyB9KS4nIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwicGVyc29uYVwiLCBwYXJhbXM6IHsgZmlsdGVyczogeyB0YWdzOiBbXCJhc3Npc3RhbnRcIl0gfSB9IH0nLFxuICAgICAgJ3sgb3BlcmF0aW9uOiBcInF1ZXJ5X2VsZW1lbnRzXCIsIGVsZW1lbnRfdHlwZTogXCJza2lsbFwiLCBwYXJhbXM6IHsgcGFnaW5hdGlvbjogeyBwYWdlOiAxLCBwYWdlU2l6ZTogMTAgfSwgc29ydDogeyBzb3J0Qnk6IFwibmFtZVwiIH0gfSB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJxdWVyeV9lbGVtZW50c1wiLCBlbGVtZW50X3R5cGU6IFwic2tpbGxcIiwgcGFyYW1zOiB7IGFnZ3JlZ2F0ZTogeyBjb3VudDogdHJ1ZSwgZ3JvdXBfYnk6IFwiY2F0ZWdvcnlcIiB9IH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwicXVlcnlfZWxlbWVudHNcIiwgZWxlbWVudF90eXBlOiBcInRlbXBsYXRlXCIsIHBhcmFtczogeyBmaWx0ZXJzOiB7IGNhdGVnb3J5OiBcInNlY3VyaXR5XCIgfSwgYWdncmVnYXRlOiB7IGNvdW50OiB0cnVlIH0gfSB9JyxcbiAgICBdLFxuICB9LFxufSBhcyBjb25zdDtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQWdncmVnYXRlZCBTY2hlbWFcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTY2hlbWEtZHJpdmVuIG9wZXJhdGlvbnMg4oCUIHVzZWQgYnkgU2NoZW1hRGlzcGF0Y2hlciBmb3IgZGlzcGF0Y2guXG4gKlxuICogT25seSBvcGVyYXRpb25zIHRoYXQgY2FuIGJlIGZ1bGx5IGRpc3BhdGNoZWQgdGhyb3VnaCBTY2hlbWFEaXNwYXRjaGVyXG4gKiBiZWxvbmcgaGVyZS4gT3BlcmF0aW9ucyB3aXRoIGNvbXBsZXggcHJlLXByb2Nlc3NpbmcgKG1lbW9yeSBsb29rdXAsXG4gKiBhZ2VudCBzdGF0ZSBtYW5hZ2VtZW50LCBnYXRla2VlcGVyIHNlc3Npb25zLCBsb2cgdmFsaWRhdGlvbikgYXJlIGluXG4gKiBJTlRST1NQRUNUSU9OX09OTFlfU0NIRU1BUyBpbnN0ZWFkLlxuICovXG5leHBvcnQgY29uc3QgU0NIRU1BX0RSSVZFTl9PUEVSQVRJT05TOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIC4uLkNPTExFQ1RJT05fT1BFUkFUSU9OUyxcbiAgLi4uQVVUSF9PUEVSQVRJT05TLFxuICAuLi5FTkhBTkNFRF9JTkRFWF9PUEVSQVRJT05TLFxuICAuLi5URU1QTEFURV9PUEVSQVRJT05TLFxuICAuLi5JTlRST1NQRUNUSU9OX09QRVJBVElPTlMsXG4gIC4uLlBFUlNPTkFfT1BFUkFUSU9OUyxcbiAgLi4uQ09ORklHX09QRVJBVElPTlMsXG4gIC4uLlBPUlRGT0xJT19PUEVSQVRJT05TLFxuICAuLi5FTEVNRU5UX0NSVURfT1BFUkFUSU9OUyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogSW50cm9zcGVjdGlvbi1vbmx5IHNjaGVtYXMg4oCUIG1ldGFkYXRhIGZvciBvcGVyYXRpb25zIGRpc3BhdGNoZWQgYnlcbiAqIGxlZ2FjeSBtZXRob2RzIChkaXNwYXRjaE1lbW9yeSwgZGlzcGF0Y2hFeGVjdXRlLCBkaXNwYXRjaEdhdGVrZWVwZXIsXG4gKiBkaXNwYXRjaExvZ2dpbmcpLiBUaGVzZSBhcmUgTk9UIHVzZWQgZm9yIGRpc3BhdGNoIHJvdXRpbmcuXG4gKlxuICogQHNlZSBJc3N1ZSAjNTk0IC0gRG9jdW1lbnQgYWxsIE1DUC1BUUwgb3BlcmF0aW9ucyB2aWEgc2NoZW1hXG4gKi9cbi8qKlxuICogQnJvd3NlciBvcGVyYXRpb24gc2NoZW1hc1xuICogQHNlZSBJc3N1ZSAjNzc0IC0gb3BlbiBwb3J0Zm9saW8gYnJvd3NlclxuICovXG5leHBvcnQgY29uc3QgQlJPV1NFUl9TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIG9wZW5fcG9ydGZvbGlvX2Jyb3dzZXI6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEJyb3dzZXInLFxuICAgIGNhdGVnb3J5OiAnTWFuYWdlbWVudCBDb25zb2xlJyxcbiAgICBkZXNjcmlwdGlvbjogYFN0YXJ0IHRoZSBwb3J0Zm9saW8gd2ViIFVJIGFuZCBvcGVuIGl0IGluIHRoZSBzeXN0ZW0gYnJvd3Nlci4gVGhlIHdlYiBzZXJ2ZXIgcnVucyBvbiBsb2NhbGhvc3Q6JHtlbnYuRE9MTEhPVVNFX1dFQl9DT05TT0xFX1BPUlR9IGFuZCBzaG93cyBhbGwgcG9ydGZvbGlvIGVsZW1lbnRzIHdpdGggc2VhcmNoLCBmaWx0ZXJpbmcsIGFuZCBkZXRhaWwgdmlld3MuIFN1cHBvcnRzIFVSTCBwYXJhbWV0ZXJzIGZvciBkZWVwLWxpbmtpbmcgd2l0aCBwcmUtcG9wdWxhdGVkIHNlYXJjaCwgZmlsdGVycywgYW5kIGVsZW1lbnQgbmF2aWdhdGlvbi4gQWxpYXNlczogb3Blbl9jb25zb2xlLCBvcGVuX21hbmFnZW1lbnRfY29uc29sZSwgb3Blbl9kb2xsaG91c2VfbWNwLmAsXG4gICAgcGFyYW1zOiB7XG4gICAgICB0YWI6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnVGFiIHRvIG9wZW4gKHBvcnRmb2xpbywgbG9ncywgbWV0cmljcywgcGVybWlzc2lvbnMsIHNldHVwKS4gRGVmYXVsdDogbGFzdC11c2VkIHRhYi4nLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgIHE6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnUHJlLXBvcHVsYXRlIHNlYXJjaCBxdWVyeSBvbiB0aGUgdGFyZ2V0IHRhYi4nIH0sXG4gICAgICB0eXBlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBlbGVtZW50IHR5cGUgKHBlcnNvbmEsIHNraWxsLCB0ZW1wbGF0ZSwgYWdlbnQsIG1lbW9yeSwgZW5zZW1ibGUpIG9uIHBvcnRmb2xpbyB0YWIuJyB9LFxuICAgICAgbmFtZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdOYXZpZ2F0ZSBkaXJlY3RseSB0byBhIHNwZWNpZmljIGVsZW1lbnQgZGV0YWlsIHZpZXcgb24gcG9ydGZvbGlvIHRhYi4nIH0sXG4gICAgICBsZXZlbDogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgbG9nIGxldmVsIChkZWJ1ZywgaW5mbywgd2FybiwgZXJyb3IpIG9uIGxvZ3MgdGFiLicgfSxcbiAgICAgIGNhdGVnb3J5OiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBjYXRlZ29yeSBvbiBsb2dzIHRhYiAoYXBwbGljYXRpb24sIHNlY3VyaXR5LCBwZXJmb3JtYW5jZSkuJyB9LFxuICAgICAgc2luY2U6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnVGltZSByYW5nZSBmaWx0ZXIgKElTTyA4NjAxIG9yIHJlbGF0aXZlOiA1bSwgMWgsIDI0aCwgN2QpIG9uIGxvZ3MvbWV0cmljcyB0YWJzLicgfSxcbiAgICB9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0Jyb3dzZXJSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maXJtYXRpb24gd2l0aCB0aGUgVVJMIG9mIHRoZSBvcGVuZWQgYnJvd3NlcicgfSxcbiAgICBleGFtcGxlczogW1xuICAgICAgJ3sgb3BlcmF0aW9uOiBcIm9wZW5fcG9ydGZvbGlvX2Jyb3dzZXJcIiB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJvcGVuX3BvcnRmb2xpb19icm93c2VyXCIsIHBhcmFtczogeyB0YWI6IFwibG9nc1wiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwib3Blbl9wb3J0Zm9saW9fYnJvd3NlclwiLCBwYXJhbXM6IHsgdGFiOiBcInBvcnRmb2xpb1wiLCBxOiBcImF4aW9tXCIsIHR5cGU6IFwicGVyc29uYVwiIH0gfScsXG4gICAgICAneyBvcGVyYXRpb246IFwib3Blbl9wb3J0Zm9saW9fYnJvd3NlclwiLCBwYXJhbXM6IHsgdGFiOiBcImxvZ3NcIiwgbGV2ZWw6IFwiZXJyb3JcIiwgc2luY2U6IFwiMWhcIiB9IH0nLFxuICAgIF0sXG4gIH0sXG4gIG9wZW5fbG9nczoge1xuICAgIGVuZHBvaW50OiAnUkVBRCcsXG4gICAgaGFuZGxlcjogJ21jcEFxbEhhbmRsZXInLFxuICAgIG1ldGhvZDogJ2Rpc3BhdGNoQnJvd3NlcicsXG4gICAgY2F0ZWdvcnk6ICdNYW5hZ2VtZW50IENvbnNvbGUnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3BlbiB0aGUgbWFuYWdlbWVudCBjb25zb2xlIGRpcmVjdGx5IG9uIHRoZSBsb2dzIHRhYi4gU3VwcG9ydHMgVVJMIHBhcmFtZXRlcnMgZm9yIHByZS1maWx0ZXJlZCB2aWV3cy4gQWxpYXNlczogb3Blbl9kb2xsaG91c2VfbG9ncywgb3Blbl9kb2xsaG91c2VfbWNwX2xvZ3MuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGxldmVsOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0ZpbHRlciBieSBtaW5pbXVtIGxvZyBsZXZlbCAoZGVidWcsIGluZm8sIHdhcm4sIGVycm9yKS4nIH0sXG4gICAgICBjYXRlZ29yeTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdGaWx0ZXIgYnkgbG9nIGNhdGVnb3J5IChhcHBsaWNhdGlvbiwgc2VjdXJpdHksIHBlcmZvcm1hbmNlKS4nIH0sXG4gICAgICBzb3VyY2U6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnRmlsdGVyIGJ5IGxvZyBzb3VyY2UgY29tcG9uZW50LicgfSxcbiAgICAgIHE6IHsgdHlwZTogJ3N0cmluZycsIGRlc2NyaXB0aW9uOiAnU2VhcmNoIGxvZyBtZXNzYWdlcy4nIH0sXG4gICAgICBzaW5jZTogeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICdUaW1lIHJhbmdlIChJU08gODYwMSBvciByZWxhdGl2ZTogNW0sIDFoLCAyNGgsIDdkKS4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCcm93c2VyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggdGhlIFVSTCBvZiB0aGUgb3BlbmVkIGJyb3dzZXInIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJvcGVuX2xvZ3NcIiB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJvcGVuX2xvZ3NcIiwgcGFyYW1zOiB7IGxldmVsOiBcImVycm9yXCIsIHNpbmNlOiBcIjFoXCIgfSB9JyxcbiAgICBdLFxuICB9LFxuICBvcGVuX21ldHJpY3M6IHtcbiAgICBlbmRwb2ludDogJ1JFQUQnLFxuICAgIGhhbmRsZXI6ICdtY3BBcWxIYW5kbGVyJyxcbiAgICBtZXRob2Q6ICdkaXNwYXRjaEJyb3dzZXInLFxuICAgIGNhdGVnb3J5OiAnTWFuYWdlbWVudCBDb25zb2xlJyxcbiAgICBkZXNjcmlwdGlvbjogJ09wZW4gdGhlIG1hbmFnZW1lbnQgY29uc29sZSBkaXJlY3RseSBvbiB0aGUgbWV0cmljcyB0YWIuIFN1cHBvcnRzIFVSTCBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJlZCB2aWV3cy4gQWxpYXNlczogb3Blbl9kb2xsaG91c2VfbWV0cmljcywgb3Blbl9kb2xsaG91c2VfbWNwX21ldHJpY3MuJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIHNpbmNlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1RpbWUgcmFuZ2UgKDE1bSwgMzBtLCAxaCkuJyB9LFxuICAgICAgcmVmcmVzaDogeyB0eXBlOiAnbnVtYmVyJywgZGVzY3JpcHRpb246ICdBdXRvLXJlZnJlc2ggaW50ZXJ2YWwgaW4gc2Vjb25kcy4gMCBkaXNhYmxlcy4nIH0sXG4gICAgfSxcbiAgICByZXR1cm5zOiB7IG5hbWU6ICdCcm93c2VyUmVzdWx0Jywga2luZDogJ29iamVjdCcsIGRlc2NyaXB0aW9uOiAnQ29uZmlybWF0aW9uIHdpdGggdGhlIFVSTCBvZiB0aGUgb3BlbmVkIGJyb3dzZXInIH0sXG4gICAgZXhhbXBsZXM6IFtcbiAgICAgICd7IG9wZXJhdGlvbjogXCJvcGVuX21ldHJpY3NcIiB9JyxcbiAgICAgICd7IG9wZXJhdGlvbjogXCJvcGVuX21ldHJpY3NcIiwgcGFyYW1zOiB7IHNpbmNlOiBcIjFoXCIsIHJlZnJlc2g6IDUgfSB9JyxcbiAgICBdLFxuICB9LFxuICBvcGVuX3Blcm1pc3Npb25zOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hCcm93c2VyJyxcbiAgICBjYXRlZ29yeTogJ01hbmFnZW1lbnQgQ29uc29sZScsXG4gICAgZGVzY3JpcHRpb246ICdPcGVuIHRoZSBtYW5hZ2VtZW50IGNvbnNvbGUgZGlyZWN0bHkgb24gdGhlIHBlcm1pc3Npb25zIHRhYi4gQWxpYXNlczogb3Blbl9kb2xsaG91c2VfcGVybWlzc2lvbnMuJyxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0Jyb3dzZXJSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maXJtYXRpb24gd2l0aCB0aGUgVVJMIG9mIHRoZSBvcGVuZWQgYnJvd3NlcicgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJvcGVuX3Blcm1pc3Npb25zXCIgfSddLFxuICB9LFxuICBvcGVuX3NldHVwOiB7XG4gICAgZW5kcG9pbnQ6ICdSRUFEJyxcbiAgICBoYW5kbGVyOiAnbWNwQXFsSGFuZGxlcicsXG4gICAgbWV0aG9kOiAnZGlzcGF0Y2hCcm93c2VyJyxcbiAgICBjYXRlZ29yeTogJ01hbmFnZW1lbnQgQ29uc29sZScsXG4gICAgZGVzY3JpcHRpb246ICdPcGVuIHRoZSBtYW5hZ2VtZW50IGNvbnNvbGUgZGlyZWN0bHkgb24gdGhlIHNldHVwL2luc3RhbGwgdGFiLiBBbGlhc2VzOiBvcGVuX2RvbGxob3VzZV9zZXR1cCwgb3Blbl9pbnN0YWxsZXIuJyxcbiAgICBwYXJhbXM6IHt9LFxuICAgIHJldHVybnM6IHsgbmFtZTogJ0Jyb3dzZXJSZXN1bHQnLCBraW5kOiAnb2JqZWN0JywgZGVzY3JpcHRpb246ICdDb25maXJtYXRpb24gd2l0aCB0aGUgVVJMIG9mIHRoZSBvcGVuZWQgYnJvd3NlcicgfSxcbiAgICBleGFtcGxlczogWyd7IG9wZXJhdGlvbjogXCJvcGVuX3NldHVwXCIgfSddLFxuICB9LFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IElOVFJPU1BFQ1RJT05fT05MWV9TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIC4uLk1FTU9SWV9TQ0hFTUFTLFxuICAuLi5FWEVDVVRJT05fU0NIRU1BUyxcbiAgLi4uR0FURUtFRVBFUl9TQ0hFTUFTLFxuICAuLi5MT0dHSU5HX1NDSEVNQVMsXG4gIC4uLk1FVFJJQ1NfU0NIRU1BUyxcbiAgLi4uQUNUSVZBVElPTl9TQ0hFTUFTLFxuICAuLi5TRUFSQ0hfU0NIRU1BUyxcbiAgLi4uQlJPV1NFUl9TQ0hFTUFTLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBbGwgb3BlcmF0aW9uIHNjaGVtYXMg4oCUIHVuaW9uIG9mIGRpc3BhdGNoLWRyaXZlbiBhbmQgaW50cm9zcGVjdGlvbi1vbmx5LlxuICogVXNlZCBieSBJbnRyb3NwZWN0aW9uUmVzb2x2ZXIgZm9yIGNvbXBsZXRlIG9wZXJhdGlvbiBkb2N1bWVudGF0aW9uLlxuICpcbiAqIEBzZWUgSXNzdWUgIzU5NCAtIERvY3VtZW50IGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgdmlhIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgQUxMX09QRVJBVElPTl9TQ0hFTUFTOiBPcGVyYXRpb25TY2hlbWFNYXAgPSB7XG4gIC4uLlNDSEVNQV9EUklWRU5fT1BFUkFUSU9OUyxcbiAgLi4uSU5UUk9TUEVDVElPTl9PTkxZX1NDSEVNQVMsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIENoZWNrIGlmIGFuIG9wZXJhdGlvbiBpcyBzY2hlbWEtZHJpdmVuICh1c2VkIGZvciBTY2hlbWFEaXNwYXRjaGVyIHJvdXRpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NjaGVtYU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3BlcmF0aW9uIGluIFNDSEVNQV9EUklWRU5fT1BFUkFUSU9OUztcbn1cblxuLyoqXG4gKiBHZXQgc2NoZW1hIGRlZmluaXRpb24gZm9yIGEgc2NoZW1hLWRyaXZlbiBvcGVyYXRpb24gKGRpc3BhdGNoIHJvdXRpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcGVyYXRpb25TY2hlbWEob3BlcmF0aW9uOiBzdHJpbmcpOiBPcGVyYXRpb25EZWYgfCB1bmRlZmluZWQge1xuICByZXR1cm4gU0NIRU1BX0RSSVZFTl9PUEVSQVRJT05TW29wZXJhdGlvbl07XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYW55IG9wZXJhdGlvbiBzY2hlbWEgZXhpc3RzIChkaXNwYXRjaC1kcml2ZW4gb3IgaW50cm9zcGVjdGlvbi1vbmx5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzT3BlcmF0aW9uU2NoZW1hKG9wZXJhdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBvcGVyYXRpb24gaW4gQUxMX09QRVJBVElPTl9TQ0hFTUFTO1xufVxuXG4vKipcbiAqIEdldCBzY2hlbWEgZm9yIGFueSBvcGVyYXRpb24gKGRpc3BhdGNoLWRyaXZlbiBvciBpbnRyb3NwZWN0aW9uLW9ubHkpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbnlPcGVyYXRpb25TY2hlbWEob3BlcmF0aW9uOiBzdHJpbmcpOiBPcGVyYXRpb25EZWYgfCB1bmRlZmluZWQge1xuICByZXR1cm4gQUxMX09QRVJBVElPTl9TQ0hFTUFTW29wZXJhdGlvbl07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEludHJvc3BlY3Rpb24gSGVscGVycyAoSXNzdWUgIzI1NClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBQYXJhbWV0ZXIgaW5mbyBmb3JtYXQgdXNlZCBieSBJbnRyb3NwZWN0aW9uUmVzb2x2ZXJcbiAqIFRoaXMgaW50ZXJmYWNlIG1hdGNoZXMgd2hhdCBJbnRyb3NwZWN0aW9uUmVzb2x2ZXIgZXhwZWN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlckluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGRlZmF1bHQ/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIENvbnZlcnQgUGFyYW1TY2hlbWEgdG8gUGFyYW1ldGVySW5mbyBhcnJheSBmb3IgaW50cm9zcGVjdGlvblxuICpcbiAqIEBwYXJhbSBzY2hlbWEgLSBUaGUgUGFyYW1TY2hlbWEgZnJvbSBhbiBvcGVyYXRpb24gZGVmaW5pdGlvblxuICogQHJldHVybnMgQXJyYXkgb2YgUGFyYW1ldGVySW5mbyBmb3IgSW50cm9zcGVjdGlvblJlc29sdmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2hlbWFUb1BhcmFtZXRlckluZm8oc2NoZW1hOiBQYXJhbVNjaGVtYSB8IHVuZGVmaW5lZCk6IFBhcmFtZXRlckluZm9bXSB7XG4gIGlmICghc2NoZW1hKSByZXR1cm4gW107XG5cbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHNjaGVtYSkubWFwKChbbmFtZSwgZGVmXSkgPT4gKHtcbiAgICBuYW1lLFxuICAgIHR5cGU6IGRlZi50eXBlLFxuICAgIHJlcXVpcmVkOiBkZWYucmVxdWlyZWQgPz8gZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IGRlZi5kZXNjcmlwdGlvbiA/PyBgJHtuYW1lfSBwYXJhbWV0ZXJgLFxuICAgIC4uLihkZWYuZGVmYXVsdCAhPT0gdW5kZWZpbmVkID8geyBkZWZhdWx0OiBkZWYuZGVmYXVsdCB9IDoge30pLFxuICB9KSk7XG59XG5cbi8qKlxuICogR2V0IGFsbCBzY2hlbWEtZHJpdmVuIG9wZXJhdGlvbnMgd2l0aCB0aGVpciBmdWxsIGRlZmluaXRpb25zXG4gKiBVc2VkIGJ5IFNjaGVtYURpc3BhdGNoZXIgdG8gaXRlcmF0ZSBvdmVyIGRpc3BhdGNoYWJsZSBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxTY2hlbWFPcGVyYXRpb25zKCk6IFJlY29yZDxzdHJpbmcsIE9wZXJhdGlvbkRlZj4ge1xuICByZXR1cm4gU0NIRU1BX0RSSVZFTl9PUEVSQVRJT05TO1xufVxuXG4vKipcbiAqIEdldCBhbGwgb3BlcmF0aW9uIHNjaGVtYXMgKGRpc3BhdGNoLWRyaXZlbiArIGludHJvc3BlY3Rpb24tb25seSlcbiAqIFVzZWQgYnkgSW50cm9zcGVjdGlvblJlc29sdmVyIGZvciBjb21wbGV0ZSBvcGVyYXRpb24gZG9jdW1lbnRhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsT3BlcmF0aW9uU2NoZW1hcygpOiBSZWNvcmQ8c3RyaW5nLCBPcGVyYXRpb25EZWY+IHtcbiAgcmV0dXJuIEFMTF9PUEVSQVRJT05fU0NIRU1BUztcbn1cbiJdfQ==
|