@riddance/env
Version:
407 lines • 56.4 kB
JavaScript
import js from '@eslint/js';
import node from 'eslint-plugin-n';
import arrow from 'eslint-plugin-prefer-arrow-functions';
import promise from 'eslint-plugin-promise';
import unicorn from 'eslint-plugin-unicorn';
import globals from 'globals';
import ts from 'typescript-eslint';
export function configuration(dir) {
return [
{
ignores: ['**/eslint.config.mjs', '**/*.js', '**/*.d.ts', 'node_modules/**'],
},
...ts.config({
languageOptions: {
sourceType: 'module',
ecmaVersion: 2023,
globals: globals.node,
parserOptions: {
projectService: true,
tsconfigRootDir: dir,
},
},
}, js.configs.recommended, {
rules: {
'no-console': 'error',
'no-debugger': 'error',
'no-promise-executor-return': 'error',
'no-self-compare': 'error',
'no-template-curly-in-string': 'error',
'no-unmodified-loop-condition': 'error',
'no-unreachable-loop': 'error',
'no-unused-private-class-members': 'error',
'require-atomic-updates': 'error',
'guard-for-in': 'error',
'no-eval': 'error',
'no-new-wrappers': 'error',
'object-shorthand': 'error',
'one-var': ['error', 'never'],
radix: 'error',
'valid-typeof': 'off',
camelcase: 'error',
'consistent-this': ['error', 'self'],
curly: 'error',
'default-case-last': 'error',
eqeqeq: 'error',
'no-alert': 'error',
'no-object-constructor': 'error',
'no-array-constructor': 'error',
'new-cap': 'error',
'no-bitwise': 'error',
'no-delete-var': 'error',
'no-implicit-coercion': [
'error',
{
allow: ['!!'],
},
],
'no-return-assign': 'error',
'no-sequences': 'error',
'no-shadow': 'error',
'no-undef-init': 'error',
'no-unneeded-ternary': 'error',
'no-unused-expressions': 'error',
'no-useless-call': 'error',
'no-useless-catch': 'error',
'no-useless-computed-key': 'error',
'no-useless-constructor': 'error',
'no-useless-escape': 'error',
'no-useless-backreference': 'error',
'no-useless-rename': 'error',
'no-useless-return': 'error',
'no-var': 'error',
'no-void': 'error',
'prefer-arrow-callback': 'error',
'prefer-const': 'error',
'prefer-destructuring': 'error',
'prefer-numeric-literals': 'error',
'prefer-object-has-own': 'error',
'prefer-object-spread': 'error',
'prefer-promise-reject-errors': ['error', { allowThrowingUnknown: true }],
'prefer-regex-literals': 'error',
'prefer-rest-params': 'error',
'prefer-spread': 'error',
'require-await': 'error',
'require-unicode-regexp': 'error',
yoda: 'error',
'no-restricted-imports': [
'error',
{
paths: [
{
name: 'assert',
message: 'Please use node:assert/strict instead.',
},
{
name: 'assert/strict',
message: 'Please use node:assert/strict instead.',
},
{
name: 'node:assert',
message: 'Please use node:assert/strict instead.',
},
{
name: 'async_hooks',
message: 'Please use node:async_hooks instead.',
},
{
name: 'buffer',
message: 'Please use node:buffer instead.',
},
{
name: 'child_process',
message: 'Please use node:child_process instead.',
},
{
name: 'cluster',
message: 'Please use node:cluster instead.',
},
{
name: 'console',
message: 'Please use node:console instead.',
},
{
name: 'constants',
message: 'Please use constants property exposed by the relevant module instead.',
},
{
name: 'node:constants',
message: 'Please use constants property exposed by the relevant module instead.',
},
{
name: 'crypto',
message: 'Please use node:crypto instead.',
},
{
name: 'dgram',
message: 'Please use node:dgram instead.',
},
{
name: 'diagnostics_channel',
message: 'Please use node:diagnostics_channel instead.',
},
{
name: 'dns',
message: 'Please use node:dns/promise instead.',
},
{
name: 'dns/promises',
message: 'Please use node:dns/promises instead.',
},
{
name: 'node:dns',
message: 'Please use node:dns/promises instead.',
},
{
name: 'domains',
message: 'Module is pending deprecation.',
},
{
name: 'node:domains',
message: 'Module is pending deprecation.',
},
{
name: 'events',
message: 'Please use node:events instead.',
},
{
name: 'fs',
message: 'Please use node:fs/promises instead.',
},
{
name: 'node:fs',
message: 'Please use node:fs/promises instead.',
},
{
name: 'fs/promises',
message: 'Please use node:fs/promises instead.',
},
{
name: 'os',
message: 'Please use node:os instead.',
},
{
name: 'http',
message: 'Please use node:http instead.',
},
{
name: 'http2',
message: 'Please use node:https instead.',
},
{
name: 'https',
message: 'Please use node:http2 instead.',
},
{
name: 'path',
message: 'Please use node:path instead.',
},
{
name: 'process',
message: 'Please use node:process instead.',
},
{
name: 'readline',
message: 'Please use node:readline/promises instead.',
},
{
name: 'readline/promises',
message: 'Please use node:readline/promises instead.',
},
{
name: 'node:readline',
message: 'Please use node:readline/promises instead.',
},
{
name: 'stream',
message: 'Please use node:stream/promises instead.',
},
{
name: 'stream/promises',
message: 'Please use node:stream/promises instead.',
},
{
name: 'node:stream',
message: 'Please use node:stream/promises instead.',
},
{
name: 'node:stream/web',
message: 'This module is experimental.',
},
{
name: 'timers',
message: 'Please use node:timers/promises instead.',
},
{
name: 'timers/promises',
message: 'Please use node:timers/promises instead.',
},
{
name: 'node:timers',
message: 'Please use node:timers/promises instead.',
},
{
name: 'querystring',
message: 'Please use URLSearchParams API instead.',
},
{
name: 'url',
message: 'Please use node:url instead.',
},
{
name: 'util',
message: 'Please use node:util instead.',
},
{
name: 'wasi',
message: 'This module is experimental.',
},
{
name: 'node:wasi',
message: 'This module is experimental.',
},
{
name: 'zlib',
message: 'Please use node:zlib instead.',
},
],
},
],
},
}, promise.configs['flat/recommended'], {
plugins: {
'prefer-arrow': arrow,
},
rules: {
'prefer-arrow/prefer-arrow-functions': [
'error',
{ allowNamedFunctions: true, singleReturnOnly: true },
],
},
}, ...ts.configs.strictTypeChecked, ...ts.configs.stylisticTypeChecked, {
rules: {
'@typescript-eslint/restrict-template-expressions': [
'error',
{
allowAny: false,
allowBoolean: false,
allowNullish: false,
allowNumber: true,
allowRegExp: false,
allowNever: false,
},
],
'@typescript-eslint/prefer-readonly': 'error',
'@typescript-eslint/no-restricted-types': [
'error',
{
types: {
Object: {
message: 'Avoid using the `Object` type. Did you mean `object`?',
},
Function: {
message: 'Avoid using the `Function` type. Prefer a specific function type, like `() => void`.',
},
Boolean: {
message: 'Avoid using the `Boolean` type. Did you mean `boolean`?',
},
Number: {
message: 'Avoid using the `Number` type. Did you mean `number`?',
},
String: {
message: 'Avoid using the `String` type. Did you mean `string`?',
},
Symbol: {
message: 'Avoid using the `Symbol` type. Did you mean `symbol`?',
},
},
},
],
'@typescript-eslint/no-invalid-void-type': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/no-dynamic-delete': 'off',
'@typescript-eslint/consistent-indexed-object-style': [
'error',
'index-signature',
],
'@typescript-eslint/consistent-type-definitions': ['error', 'type'],
'@typescript-eslint/prefer-nullish-coalescing': 'error',
},
}, node.configs['flat/recommended-module'], {
rules: {
'n/no-process-exit': 'off',
'n/hashbang': 'off',
'n/no-missing-import': 'off',
'n/no-unpublished-import': 'off',
'n/no-deprecated-api': ['error'],
'n/prefer-global/buffer': 'error',
'n/prefer-global/console': 'error',
'n/prefer-global/process': 'error',
'n/prefer-global/text-decoder': 'error',
'n/prefer-global/text-encoder': 'error',
'n/prefer-global/url-search-params': 'error',
'n/prefer-global/url': 'error',
'n/prefer-promises/dns': 'error',
'n/prefer-promises/fs': 'error',
'n/no-unsupported-features/es-builtins': 'off',
'n/no-unsupported-features/es-syntax': 'off',
'n/no-unsupported-features/node-builtins': 'off',
'n/file-extension-in-import': 'off',
'n/no-extraneous-import': 'off',
},
}, unicorn.configs.all, {
rules: {
'unicorn/no-array-callback-reference': 'off',
'unicorn/catch-error-name': 'off',
'unicorn/consistent-destructuring': 'off',
'unicorn/explicit-length-check': ['error', { 'non-zero': 'not-equal' }],
'unicorn/import-style': 'off',
'unicorn/no-array-for-each': 'off',
'unicorn/no-array-reduce': 'off',
'unicorn/no-await-expression-member': 'off',
'unicorn/no-keyword-prefix': 'off',
'unicorn/no-lonely-if': 'off',
'unicorn/no-useless-undefined': 'off',
'unicorn/number-literal-case': 'off',
'unicorn/prefer-string-raw': 'off',
'unicorn/prefer-ternary': 'off',
'unicorn/prevent-abbreviations': 'off',
'unicorn/switch-case-braces': ['error', 'avoid'],
'unicorn/text-encoding-identifier-case': 'off',
'unicorn/no-unreadable-array-destructuring': 'off',
},
}, {
files: ['test/**/*.ts', 'example/test/**/*.ts'],
languageOptions: {
globals: globals.mocha,
},
rules: {
'no-debugger': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/restrict-template-expressions': 'off',
'@typescript-eslint/restrict-plus-operands': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
},
}, {
files: ['bin/**/*.ts'],
rules: {
'no-console': 'off',
'no-process-exit': 'off',
'@typescript-eslint/restrict-template-expressions': [
'error',
{
allowBoolean: true,
allowNumber: true,
},
],
'n/no-unpublished-bin': 'error',
'unicorn/no-process-exit': 'off',
},
}),
];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVzbGludC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzNCLE9BQU8sSUFBSSxNQUFNLGlCQUFpQixDQUFBO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLHNDQUFzQyxDQUFBO0FBQ3hELE9BQU8sT0FBTyxNQUFNLHVCQUF1QixDQUFBO0FBQzNDLE9BQU8sT0FBTyxNQUFNLHVCQUF1QixDQUFBO0FBQzNDLE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQTtBQUM3QixPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVsQyxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQVc7SUFDckMsT0FBTztRQUNIO1lBQ0ksT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztTQUMvRTtRQUNELEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FDUjtZQUNJLGVBQWUsRUFBRTtnQkFDYixVQUFVLEVBQUUsUUFBUTtnQkFDcEIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSTtnQkFDckIsYUFBYSxFQUFFO29CQUNYLGNBQWMsRUFBRSxJQUFJO29CQUNwQixlQUFlLEVBQUUsR0FBRztpQkFDdkI7YUFDSjtTQUNKLEVBQ0QsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQ3RCO1lBQ0ksS0FBSyxFQUFFO2dCQUNILFlBQVksRUFBRSxPQUFPO2dCQUNyQixhQUFhLEVBQUUsT0FBTztnQkFDdEIsNEJBQTRCLEVBQUUsT0FBTztnQkFDckMsaUJBQWlCLEVBQUUsT0FBTztnQkFDMUIsNkJBQTZCLEVBQUUsT0FBTztnQkFDdEMsOEJBQThCLEVBQUUsT0FBTztnQkFDdkMscUJBQXFCLEVBQUUsT0FBTztnQkFDOUIsaUNBQWlDLEVBQUUsT0FBTztnQkFDMUMsd0JBQXdC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dUMsRUFBRSxLQUFLO2dCQUM5Qyw0Q0FBNEMsRUFBRSxLQUFLO2FBQ3REO1NBQ0osRUFDRDtZQUNJLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUN0QixLQUFLLEVBQUU7Z0JBQ0gsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGtEQUFrRCxFQUFFO29CQUNoRCxPQUFPO29CQUNQO3dCQUNJLFlBQVksRUFBRSxJQUFJO3dCQUNsQixXQUFXLEVBQUUsSUFBSTtxQkFDcEI7aUJBQ0o7Z0JBQ0Qsc0JBQXNCLEVBQUUsT0FBTztnQkFDL0IseUJBQXlCLEVBQUUsS0FBSzthQUNuQztTQUNKLENBQ0o7S0FDSixDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqcyBmcm9tICdAZXNsaW50L2pzJ1xuaW1wb3J0IG5vZGUgZnJvbSAnZXNsaW50LXBsdWdpbi1uJ1xuaW1wb3J0IGFycm93IGZyb20gJ2VzbGludC1wbHVnaW4tcHJlZmVyLWFycm93LWZ1bmN0aW9ucydcbmltcG9ydCBwcm9taXNlIGZyb20gJ2VzbGludC1wbHVnaW4tcHJvbWlzZSdcbmltcG9ydCB1bmljb3JuIGZyb20gJ2VzbGludC1wbHVnaW4tdW5pY29ybidcbmltcG9ydCBnbG9iYWxzIGZyb20gJ2dsb2JhbHMnXG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdC1lc2xpbnQnXG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maWd1cmF0aW9uKGRpcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgICAgaWdub3JlczogWycqKi9lc2xpbnQuY29uZmlnLm1qcycsICcqKi8qLmpzJywgJyoqLyouZC50cycsICdub2RlX21vZHVsZXMvKionXSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4udHMuY29uZmlnKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2VUeXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgICAgICAgZWNtYVZlcnNpb246IDIwMjMsXG4gICAgICAgICAgICAgICAgICAgIGdsb2JhbHM6IGdsb2JhbHMubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VyT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdFNlcnZpY2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0c2NvbmZpZ1Jvb3REaXI6IGRpcixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGpzLmNvbmZpZ3MucmVjb21tZW5kZWQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcnVsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ25vLWNvbnNvbGUnOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tZGVidWdnZXInOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tcHJvbWlzZS1leGVjdXRvci1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tc2VsZi1jb21wYXJlJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZyc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLXVucmVhY2hhYmxlLWxvb3AnOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tdW51c2VkLXByaXZhdGUtY2xhc3MtbWVtYmVycyc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICdyZXF1aXJlLWF0b21pYy11cGRhdGVzJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ2d1YXJkLWZvci1pbic6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICdvYmplY3Qtc2hvcnRoYW5kJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ29uZS12YXInOiBbJ2Vycm9yJywgJ25ldmVyJ10sXG4gICAgICAgICAgICAgICAgICAgIHJhZGl4OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAndmFsaWQtdHlwZW9mJzogJ29mZicsXG4gICAgICAgICAgICAgICAgICAgIGNhbWVsY2FzZTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ2NvbnNpc3RlbnQtdGhpcyc6IFsnZXJyb3InLCAnc2VsZiddLFxuICAgICAgICAgICAgICAgICAgICBjdXJseTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQtY2FzZS1sYXN0JzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgZXFlcWVxOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tb2JqZWN0LWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLWFycmF5LWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25ldy1jYXAnOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby1kZWxldGUtdmFyJzogJ2Vycm9yJyxcblxuICAgICAgICAgICAgICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93OiBbJyEhJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuXG4gICAgICAgICAgICAgICAgICAgICduby1yZXR1cm4tYXNzaWduJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLXNlcXVlbmNlcyc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby1zaGFkb3cnOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tdW5kZWYtaW5pdCc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby11bm5lZWRlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLXVudXNlZC1leHByZXNzaW9ucyc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby11c2VsZXNzLWNhbGwnOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tdXNlbGVzcy1jYXRjaCc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby11c2VsZXNzLWNvbXB1dGVkLWtleSc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby11c2VsZXNzLWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLXVzZWxlc3MtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLXVzZWxlc3MtYmFja3JlZmVyZW5jZSc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby11c2VsZXNzLXJlbmFtZSc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby11c2VsZXNzLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICduby12YXInOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAnbm8tdm9pZCc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICdwcmVmZXItYXJyb3ctY2FsbGJhY2snOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAncHJlZmVyLWNvbnN0JzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ3ByZWZlci1kZXN0cnVjdHVyaW5nJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ3ByZWZlci1udW1lcmljLWxpdGVyYWxzJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ3ByZWZlci1vYmplY3QtaGFzLW93bic6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICdwcmVmZXItb2JqZWN0LXNwcmVhZCc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICdwcmVmZXItcHJvbWlzZS1yZWplY3QtZXJyb3JzJzogWydlcnJvcicsIHsgYWxsb3dUaHJvd2luZ1Vua25vd246IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgICAgICdwcmVmZXItcmVnZXgtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAncHJlZmVyLXJlc3QtcGFyYW1zJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ3ByZWZlci1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAncmVxdWlyZS1hd2FpdCc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICdyZXF1aXJlLXVuaWNvZGUtcmVnZXhwJzogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgeW9kYTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgJ25vLXJlc3RyaWN0ZWQtaW1wb3J0cyc6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2Fzc2VydCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmFzc2VydC9zdHJpY3QgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnYXNzZXJ0L3N0cmljdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmFzc2VydC9zdHJpY3QgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbm9kZTphc3NlcnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTphc3NlcnQvc3RyaWN0IGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2FzeW5jX2hvb2tzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6YXN5bmNfaG9va3MgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnYnVmZmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6YnVmZmVyIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NoaWxkX3Byb2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTpjaGlsZF9wcm9jZXNzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NsdXN0ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTpjbHVzdGVyIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NvbnNvbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTpjb25zb2xlIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NvbnN0YW50cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdQbGVhc2UgdXNlIGNvbnN0YW50cyBwcm9wZXJ0eSBleHBvc2VkIGJ5IHRoZSByZWxldmFudCBtb2R1bGUgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbm9kZTpjb25zdGFudHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHVzZSBjb25zdGFudHMgcHJvcGVydHkgZXhwb3NlZCBieSB0aGUgcmVsZXZhbnQgbW9kdWxlIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NyeXB0bycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmNyeXB0byBpbnN0ZWFkLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdkZ3JhbScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmRncmFtIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2RpYWdub3N0aWNzX2NoYW5uZWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTpkaWFnbm9zdGljc19jaGFubmVsIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2RucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmRucy9wcm9taXNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2Rucy9wcm9taXNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmRucy9wcm9taXNlcyBpbnN0ZWFkLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdub2RlOmRucycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmRucy9wcm9taXNlcyBpbnN0ZWFkLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdkb21haW5zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNb2R1bGUgaXMgcGVuZGluZyBkZXByZWNhdGlvbi4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbm9kZTpkb21haW5zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdNb2R1bGUgaXMgcGVuZGluZyBkZXByZWNhdGlvbi4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZXZlbnRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6ZXZlbnRzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2ZzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6ZnMvcHJvbWlzZXMgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbm9kZTpmcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmZzL3Byb21pc2VzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2ZzL3Byb21pc2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6ZnMvcHJvbWlzZXMgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnb3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTpvcyBpbnN0ZWFkLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdodHRwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6aHR0cCBpbnN0ZWFkLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdodHRwMicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOmh0dHBzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2h0dHBzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6aHR0cDIgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncGF0aCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOnBhdGggaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncHJvY2VzcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOnByb2Nlc3MgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAncmVhZGxpbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTpyZWFkbGluZS9wcm9taXNlcyBpbnN0ZWFkLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdyZWFkbGluZS9wcm9taXNlcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUGxlYXNlIHVzZSBub2RlOnJlYWRsaW5lL3Byb21pc2VzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ25vZGU6cmVhZGxpbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTpyZWFkbGluZS9wcm9taXNlcyBpbnN0ZWFkLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdzdHJlYW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTpzdHJlYW0vcHJvbWlzZXMgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc3RyZWFtL3Byb21pc2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6c3RyZWFtL3Byb21pc2VzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ25vZGU6c3RyZWFtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6c3RyZWFtL3Byb21pc2VzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ25vZGU6c3RyZWFtL3dlYicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnVGhpcyBtb2R1bGUgaXMgZXhwZXJpbWVudGFsLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICd0aW1lcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTp0aW1lcnMvcHJvbWlzZXMgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAndGltZXJzL3Byb21pc2VzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6dGltZXJzL3Byb21pc2VzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ25vZGU6dGltZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6dGltZXJzL3Byb21pc2VzIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3F1ZXJ5c3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIFVSTFNlYXJjaFBhcmFtcyBBUEkgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAndXJsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQbGVhc2UgdXNlIG5vZGU6dXJsIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3V0aWwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTp1dGlsIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3dhc2knLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1RoaXMgbW9kdWxlIGlzIGV4cGVyaW1lbnRhbC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnbm9kZTp3YXNpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdUaGlzIG1vZHVsZSBpcyBleHBlcmltZW50YWwuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3psaWInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1BsZWFzZSB1c2Ugbm9kZTp6bGliIGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb21pc2UuY29uZmlnc1snZmxhdC9yZWNvbW1lbmRlZCddLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3ByZWZlci1hcnJvdyc6IGFycm93LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcnVsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3ByZWZlci1hcnJvdy9wcmVmZXItYXJyb3ctZnVuY3Rpb25zJzogW1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYWxsb3dOYW1lZEZ1bmN0aW9uczogdHJ1ZSwgc2luZ2xlUmV0dXJuT25seTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4udHMuY29uZmlncy5zdHJpY3RUeXBlQ2hlY2tlZCxcbiAgICAgICAgICAgIC4uLnRzLmNvbmZpZ3Muc3R5bGlzdGljVHlwZUNoZWNrZWQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcnVsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9yZXN0cmljdC10ZW1wbGF0ZS1leHByZXNzaW9ucyc6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dBbnk6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93Qm9vbGVhbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOdWxsaXNoOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd051bWJlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd1JlZ0V4cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOZXZlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVzdHJpY3RlZC10eXBlcyc6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBdm9pZCB1c2luZyB0aGUgYE9iamVjdGAgdHlwZS4gRGlkIHlvdSBtZWFuIGBvYmplY3RgPycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBdm9pZCB1c2luZyB0aGUgYEZ1bmN0aW9uYCB0eXBlLiBQcmVmZXIgYSBzcGVjaWZpYyBmdW5jdGlvbiB0eXBlLCBsaWtlIGAoKSA9PiB2b2lkYC4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb29sZWFuOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBdm9pZCB1c2luZyB0aGUgYEJvb2xlYW5gIHR5cGUuIERpZCB5b3UgbWVhbiBgYm9vbGVhbmA/JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVtYmVyOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBdm9pZCB1c2luZyB0aGUgYE51bWJlcmAgdHlwZS4gRGlkIHlvdSBtZWFuIGBudW1iZXJgPycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQXZvaWQgdXNpbmcgdGhlIGBTdHJpbmdgIHR5cGUuIERpZCB5b3UgbWVhbiBgc3RyaW5nYD8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgIC