bytefun-ai-mcp 1.13.66 → 1.13.67

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.
Files changed (2) hide show
  1. package/build/index.js +89 -89
  2. package/package.json +1 -1
package/build/index.js CHANGED
@@ -81,34 +81,34 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
81
81
  required: ['user_input']
82
82
  }
83
83
  },
84
- {
85
- name: 'optimize_hand_drawn_ui_design_prompt',
86
- description: 'Analyze hand-drawn UI design sketches and extract detailed information for UI design',
87
- inputSchema: {
88
- type: 'object',
89
- properties: {
90
- user_input: {
91
- type: 'string',
92
- description: 'User input with hand-drawn UI design sketch that needs to be analyzed'
93
- }
94
- },
95
- required: ['user_input']
96
- }
97
- },
98
- {
99
- name: 'optimize_ui_design_thinking_prompt',
100
- description: 'Optimize prompt for UI design thinking process before actual design work, generating detailed UI design thinking documentation',
101
- inputSchema: {
102
- type: 'object',
103
- properties: {
104
- user_input: {
105
- type: 'string',
106
- description: 'User input prompt that needs to be optimized for UI design thinking process'
107
- }
108
- },
109
- required: ['user_input']
110
- }
111
- },
84
+ // {
85
+ // name: 'optimize_hand_drawn_ui_design_prompt',
86
+ // description: 'Analyze hand-drawn UI design sketches and extract detailed information for UI design',
87
+ // inputSchema: {
88
+ // type: 'object',
89
+ // properties: {
90
+ // user_input: {
91
+ // type: 'string',
92
+ // description: 'User input with hand-drawn UI design sketch that needs to be analyzed'
93
+ // }
94
+ // },
95
+ // required: ['user_input']
96
+ // }
97
+ // },
98
+ // {
99
+ // name: 'optimize_ui_design_thinking_prompt',
100
+ // description: 'Optimize prompt for UI design thinking process before actual design work, generating detailed UI design thinking documentation',
101
+ // inputSchema: {
102
+ // type: 'object',
103
+ // properties: {
104
+ // user_input: {
105
+ // type: 'string',
106
+ // description: 'User input prompt that needs to be optimized for UI design thinking process'
107
+ // }
108
+ // },
109
+ // required: ['user_input']
110
+ // }
111
+ // },
112
112
  {
113
113
  name: 'optimize_backend_design_prompt',
114
114
  description: 'Optimize prompt for backend database and API interface design by reading module business logic documents',
@@ -123,24 +123,24 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
123
123
  required: ['user_input']
124
124
  }
125
125
  },
126
- {
127
- name: 'functional_module_business_logic_prompt',
128
- description: 'Optimize prompt for functional module business logic analysis based on product requirements document',
129
- inputSchema: {
130
- type: 'object',
131
- properties: {
132
- functionalModule: {
133
- type: 'string',
134
- description: 'The functional module currently being designed'
135
- },
136
- user_input: {
137
- type: 'string',
138
- description: 'User input prompt that needs to be optimized for functional module business logic analysis'
139
- }
140
- },
141
- required: ['functionalModule', 'user_input']
142
- }
143
- },
126
+ // {
127
+ // name: 'functional_module_business_logic_prompt',
128
+ // description: 'Optimize prompt for functional module business logic analysis based on product requirements document',
129
+ // inputSchema: {
130
+ // type: 'object',
131
+ // properties: {
132
+ // functionalModule: {
133
+ // type: 'string',
134
+ // description: 'The functional module currently being designed'
135
+ // },
136
+ // user_input: {
137
+ // type: 'string',
138
+ // description: 'User input prompt that needs to be optimized for functional module business logic analysis'
139
+ // }
140
+ // },
141
+ // required: ['functionalModule', 'user_input']
142
+ // }
143
+ // },
144
144
  // {
145
145
  // name: 'talk_to_editor',
146
146
  // description: 'Establish long connection with editor backend using Socket.IO. Before calling this tool, you must first use read_file to read .bytefun/project.json and get projectID and uid values. This tool will wait for backend messages and return tasks to execute.',
@@ -196,20 +196,20 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
196
196
  required: ['user_input']
197
197
  }
198
198
  },
199
- {
200
- name: 'optimize_ui_design_replenish_prompt',
201
- description: 'Optimize prompt for UI design HTML replenishment and attribute completion',
202
- inputSchema: {
203
- type: 'object',
204
- properties: {
205
- user_input: {
206
- type: 'string',
207
- description: 'User input prompt that needs to be optimized for UI design HTML replenishment'
208
- }
209
- },
210
- required: ['user_input']
211
- }
212
- },
199
+ // {
200
+ // name: 'optimize_ui_design_replenish_prompt',
201
+ // description: 'Optimize prompt for UI design HTML replenishment and attribute completion',
202
+ // inputSchema: {
203
+ // type: 'object',
204
+ // properties: {
205
+ // user_input: {
206
+ // type: 'string',
207
+ // description: 'User input prompt that needs to be optimized for UI design HTML replenishment'
208
+ // }
209
+ // },
210
+ // required: ['user_input']
211
+ // }
212
+ // },
213
213
  {
214
214
  name: 'optimize_jump_page_code_prompt',
215
215
  description: 'Optimize prompt for page navigation code development based on UI design progress and jumping rules',
@@ -224,20 +224,20 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
224
224
  required: ['user_input']
225
225
  }
226
226
  },
227
- {
228
- name: 'optimize_declarative_ui_prompt',
229
- description: 'Optimize prompt for declarative UI design using JSON format to describe UI components and interfaces',
230
- inputSchema: {
231
- type: 'object',
232
- properties: {
233
- user_input: {
234
- type: 'string',
235
- description: 'User input prompt that needs to be optimized for declarative UI design'
236
- }
237
- },
238
- required: ['user_input']
239
- }
240
- },
227
+ // {
228
+ // name: 'optimize_declarative_ui_prompt',
229
+ // description: 'Optimize prompt for declarative UI design using JSON format to describe UI components and interfaces',
230
+ // inputSchema: {
231
+ // type: 'object',
232
+ // properties: {
233
+ // user_input: {
234
+ // type: 'string',
235
+ // description: 'User input prompt that needs to be optimized for declarative UI design'
236
+ // }
237
+ // },
238
+ // required: ['user_input']
239
+ // }
240
+ // },
241
241
  {
242
242
  name: 'optimize_ui_spec_design_prompt',
243
243
  description: 'Optimize prompt for UI specification design based on product requirements document to complete UI design standards',
@@ -251,21 +251,21 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
251
251
  },
252
252
  required: ['user_input']
253
253
  }
254
- },
255
- {
256
- name: 'implement_ui_code_prompt',
257
- description: 'Return prompt for implementing UI code with strict execution steps',
258
- inputSchema: {
259
- type: 'object',
260
- properties: {
261
- user_input: {
262
- type: 'string',
263
- description: 'User input describing UI code implementation requirements'
264
- }
265
- },
266
- required: ['user_input']
267
- }
268
254
  }
255
+ // {
256
+ // name: 'implement_ui_code_prompt',
257
+ // description: 'Return prompt for implementing UI code with strict execution steps',
258
+ // inputSchema: {
259
+ // type: 'object',
260
+ // properties: {
261
+ // user_input: {
262
+ // type: 'string',
263
+ // description: 'User input describing UI code implementation requirements'
264
+ // }
265
+ // },
266
+ // required: ['user_input']
267
+ // }
268
+ // }
269
269
  ]
270
270
  };
271
271
  });
@@ -484,4 +484,4 @@ async function main() {
484
484
  console.error('ByteFun AI Prompt MCP server running on stdio');
485
485
  }
486
486
  main().catch(console.error);
487
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFJOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLGdDQUFnQztnQkFDdEMsV0FBVyxFQUFFLHVEQUF1RDtnQkFDcEUsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixRQUFRLEVBQUU7NEJBQ1IsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLGlEQUFpRDt5QkFDL0Q7d0JBQ0QsVUFBVSxFQUFFOzRCQUNWLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSxvRkFBb0Y7eUJBQ2xHO3FCQUNGO29CQUNELFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7aUJBQ3JDO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsMkJBQTJCO2dCQUNqQyxXQUFXLEVBQUUsbUZBQW1GO2dCQUNoRyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxF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LE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUM3QyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBTZXJ2ZXIgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9pbmRleC5qcyc7XG5pbXBvcnQgeyBTdGRpb1NlcnZlclRyYW5zcG9ydCB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc2VydmVyL3N0ZGlvLmpzJztcbmltcG9ydCB7XG4gIENhbGxUb29sUmVxdWVzdFNjaGVtYSxcbiAgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSxcbiAgVG9vbCxcbn0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay90eXBlcy5qcyc7XG5pbXBvcnQgeyBQcm9tcHRPcHRpbWl6ZXIgfSBmcm9tICcuL3Byb21wdC1vcHRpbWl6ZXIuanMnO1xuXG5jb25zdCBzZXJ2ZXIgPSBuZXcgU2VydmVyKFxuICB7XG4gICAgbmFtZTogJ2J5dGVmdW4tYWktcHJvbXB0JyxcbiAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICB9XG4pO1xuXG5jb25zdCBwcm9tcHRPcHRpbWl6ZXIgPSBuZXcgUHJvbXB0T3B0aW1pemVyKCk7XG5cblxuXG4vLyBMaXN0IGF2YWlsYWJsZSB0b29sc1xuc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKExpc3RUb29sc1JlcXVlc3RTY2hlbWEsIGFzeW5jICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b29sczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfcHJvZHVjdF9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIHByb2R1Y3QgYW5kIGJ1c2luZXNzIGxvZ2ljIGRlc2lnbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgaW5kdXN0cnk6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGluZHVzdHJ5IHRoYXQgdGhlIEFQUCBvciB3ZWJzaXRlIGJlbG9uZ3MgdG8nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgcHJvZHVjdCBhbmQgYnVzaW5lc3MgbG9naWMgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsnaW5kdXN0cnknLCAndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIGRlc2lnbiBieSByZWFkaW5nIHBhZ2UgbGlzdCBhbmQgcmVxdWlyZW1lbnRzIGZyb20gZG9jIGZpbGUnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIGRlc2lnbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndWlfZGVzaWduX2d1aWRlX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmV0dXJuIGNvbXByZWhlbnNpdmUgVUkgZGVzaWduIGd1aWRlIHByb21wdCB3aXRoIHN0cmljdCBleGVjdXRpb24gcnVsZXMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfY29kZV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGNvZGUgbG9naWMgZGVzaWduIHRoaW5raW5nIGJlZm9yZSBkZXZlbG9wbWVudCwgZ2VuZXJhdGluZyBkZXRhaWxlZCBkZXNpZ24gZG9jdW1lbnRhdGlvbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgY29kZSBsb2dpYyBkZXNpZ24gdGhpbmtpbmcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ltcGxlbWVudF9sb2dpY19jb2RlX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBUeXBlU2NyaXB0IGNvZGUgZGV2ZWxvcG1lbnQgYnkgYWRkaW5nIGNvZGUgZGV2ZWxvcG1lbnQgcnVsZXMgYW5kIG1hcmtpbmcgdXNlciBpbnB1dCcsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgY29kZSBkZXZlbG9wbWVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfaGFuZF9kcmF3bl91aV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdBbmFseXplIGhhbmQtZHJhd24gVUkgZGVzaWduIHNrZXRjaGVzIGFuZCBleHRyYWN0IGRldGFpbGVkIGluZm9ybWF0aW9uIGZvciBVSSBkZXNpZ24nLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCB3aXRoIGhhbmQtZHJhd24gVUkgZGVzaWduIHNrZXRjaCB0aGF0IG5lZWRzIHRvIGJlIGFuYWx5emVkJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fdGhpbmtpbmdfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIGRlc2lnbiB0aGlua2luZyBwcm9jZXNzIGJlZm9yZSBhY3R1YWwgZGVzaWduIHdvcmssIGdlbmVyYXRpbmcgZGV0YWlsZWQgVUkgZGVzaWduIHRoaW5raW5nIGRvY3VtZW50YXRpb24nLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIGRlc2lnbiB0aGlua2luZyBwcm9jZXNzJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2JhY2tlbmRfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBiYWNrZW5kIGRhdGFiYXNlIGFuZCBBUEkgaW50ZXJmYWNlIGRlc2lnbiBieSByZWFkaW5nIG1vZHVsZSBidXNpbmVzcyBsb2dpYyBkb2N1bWVudHMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGJhY2tlbmQgZGF0YWJhc2UgYW5kIEFQSSBpbnRlcmZhY2UgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2Z1bmN0aW9uYWxfbW9kdWxlX2J1c2luZXNzX2xvZ2ljX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBmdW5jdGlvbmFsIG1vZHVsZSBidXNpbmVzcyBsb2dpYyBhbmFseXNpcyBiYXNlZCBvbiBwcm9kdWN0IHJlcXVpcmVtZW50cyBkb2N1bWVudCcsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgZnVuY3Rpb25hbE1vZHVsZToge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgZnVuY3Rpb25hbCBtb2R1bGUgY3VycmVudGx5IGJlaW5nIGRlc2lnbmVkJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGZ1bmN0aW9uYWwgbW9kdWxlIGJ1c2luZXNzIGxvZ2ljIGFuYWx5c2lzJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsnZnVuY3Rpb25hbE1vZHVsZScsICd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAndGFsa190b19lZGl0b3InLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ0VzdGFibGlzaCBsb25nIGNvbm5lY3Rpb24gd2l0aCBlZGl0b3IgYmFja2VuZCB1c2luZyBTb2NrZXQuSU8uIEJlZm9yZSBjYWxsaW5nIHRoaXMgdG9vbCwgeW91IG11c3QgZmlyc3QgdXNlIHJlYWRfZmlsZSB0byByZWFkIC5ieXRlZnVuL3Byb2plY3QuanNvbiBhbmQgZ2V0IHByb2plY3RJRCBhbmQgdWlkIHZhbHVlcy4gVGhpcyB0b29sIHdpbGwgd2FpdCBmb3IgYmFja2VuZCBtZXNzYWdlcyBhbmQgcmV0dXJuIHRhc2tzIHRvIGV4ZWN1dGUuJyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAvLyAgICAgICBwcm9qZWN0SUQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnUHJvamVjdCBJRCBmcm9tIC5ieXRlZnVuL3Byb2plY3QuanNvbiBjb25maWd1cmF0aW9uIGZpbGUnXG4gICAgICAvLyAgICAgICB9LFxuICAgICAgLy8gICAgICAgdWlkOiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgSUQgZnJvbSAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24gY29uZmlndXJhdGlvbiBmaWxlJ1xuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFsncHJvamVjdElEJywgJ3VpZCddXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICd0YWxrX3RvX2VkaXRvcl9ydWxlcycsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnR2V0IEFJIGJlaGF2aW9yIHJ1bGVzIGZvciBpbnRlcmFjdGluZyB3aXRoIHRhbGtfdG9fZWRpdG9yIHRvb2wuIFJldHVybnMgZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIG9uIGhvdyBBSSBzaG91bGQgbWFpbnRhaW4gY29udGludW91cyBjb252ZXJzYXRpb24gYW5kIHdhaXQgZm9yIGJhY2tlbmQgY29udHJvbC4nLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaW1wbGVtZW50X2JhY2tlbmRfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgYmFja2VuZCBjb2RlIGRldmVsb3BtZW50IGJ5IHJlYWRpbmcgYmFja2VuZCBkZXNpZ24gZG9jdW1lbnRzIGFuZCBhcHBseWluZyBjb2Rpbmcgc3RhbmRhcmRzJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBiYWNrZW5kIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl9lZGl0X3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gbW9kaWZpY2F0aW9uIGFuZCBlZGl0aW5nIHRhc2tzLCByZXR1cm5pbmcgZGV0YWlsZWQgVUkgZGVzaWduIHNwZWNpZmljYXRpb25zJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBkZXNpZ24gbW9kaWZpY2F0aW9uJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fcmVwbGVuaXNoX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gSFRNTCByZXBsZW5pc2htZW50IGFuZCBhdHRyaWJ1dGUgY29tcGxldGlvbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduIEhUTUwgcmVwbGVuaXNobWVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfanVtcF9wYWdlX2NvZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIHBhZ2UgbmF2aWdhdGlvbiBjb2RlIGRldmVsb3BtZW50IGJhc2VkIG9uIFVJIGRlc2lnbiBwcm9ncmVzcyBhbmQganVtcGluZyBydWxlcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgcGFnZSBuYXZpZ2F0aW9uIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2RlY2xhcmF0aXZlX3VpX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBkZWNsYXJhdGl2ZSBVSSBkZXNpZ24gdXNpbmcgSlNPTiBmb3JtYXQgdG8gZGVzY3JpYmUgVUkgY29tcG9uZW50cyBhbmQgaW50ZXJmYWNlcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgZGVjbGFyYXRpdmUgVUkgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9zcGVjX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgc3BlY2lmaWNhdGlvbiBkZXNpZ24gYmFzZWQgb24gcHJvZHVjdCByZXF1aXJlbWVudHMgZG9jdW1lbnQgdG8gY29tcGxldGUgVUkgZGVzaWduIHN0YW5kYXJkcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgc3BlY2lmaWNhdGlvbiBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaW1wbGVtZW50X3VpX2NvZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdSZXR1cm4gcHJvbXB0IGZvciBpbXBsZW1lbnRpbmcgVUkgY29kZSB3aXRoIHN0cmljdCBleGVjdXRpb24gc3RlcHMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBkZXNjcmliaW5nIFVJIGNvZGUgaW1wbGVtZW50YXRpb24gcmVxdWlyZW1lbnRzJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdIGFzIFRvb2xbXVxuICB9O1xufSk7XG5cbi8vIEhhbmRsZSB0b29sIGNhbGxzXG5zZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoQ2FsbFRvb2xSZXF1ZXN0U2NoZW1hLCBhc3luYyAocmVxdWVzdCkgPT4ge1xuICBjb25zdCB7IG5hbWUsIGFyZ3VtZW50czogYXJncyB9ID0gcmVxdWVzdC5wYXJhbXM7XG5cbiAgaWYgKCFhcmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGFyZ3VtZW50cycpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgJ29wdGltaXplX3Byb2R1Y3RfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFByb2R1Y3REZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVQcm9kdWN0RGVzaWduUHJvbXB0KGFyZ3MuaW5kdXN0cnkgYXMgc3RyaW5nLCBhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkUHJvZHVjdERlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFVJUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICd1aV9kZXNpZ25fZ3VpZGVfcHJvbXB0JzpcbiAgICAgICAgY29uc3QgdWlEZXNpZ25HdWlkZVRleHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIudWlEZXNpZ25HdWlkZVByb21wdCgpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiB1aURlc2lnbkd1aWRlVGV4dFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfY29kZV9kZXNpZ25fcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkQ29kZURlc2lnblByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUNvZGVEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZENvZGVEZXNpZ25Qcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ2ltcGxlbWVudF9sb2dpY19jb2RlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZENvZGVQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRDb2RlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAvLyBjYXNlICdvcHRpbWl6ZV9oYW5kX2RyYXduX3VpX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgLy8gICBjb25zdCBvcHRpbWl6ZWRIYW5kRHJhd25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVIYW5kRHJhd25VSURlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgIC8vICAgcmV0dXJuIHtcbiAgICAgIC8vICAgICBjb250ZW50OiBbXG4gICAgICAvLyAgICAgICB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIC8vICAgICAgICAgdGV4dDogb3B0aW1pemVkSGFuZERyYXduUHJvbXB0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICAvLyBjYXNlICdvcHRpbWl6ZV91aV9kZXNpZ25fdGhpbmtpbmdfcHJvbXB0JzpcbiAgICAgIC8vICAgY29uc3Qgb3B0aW1pemVkVUlEZXNpZ25UaGlua2luZ1Byb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVVJRGVzaWduVGhpbmtpbmdQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAvLyAgIHJldHVybiB7XG4gICAgICAvLyAgICAgY29udGVudDogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAvLyAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJRGVzaWduVGhpbmtpbmdQcm9tcHRcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICBdXG4gICAgICAvLyAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX2JhY2tlbmRfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZEJhY2tlbmREZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVCYWNrZW5kRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRCYWNrZW5kRGVzaWduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdmdW5jdGlvbmFsX21vZHVsZV9idXNpbmVzc19sb2dpY19wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRGdW5jdGlvbmFsTW9kdWxlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplRnVuY3Rpb25hbE1vZHVsZVByb21wdChhcmdzLmZ1bmN0aW9uYWxNb2R1bGUgYXMgc3RyaW5nLCBhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkRnVuY3Rpb25hbE1vZHVsZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuXG4gICAgICAvLyBjYXNlICd0YWxrX3RvX2VkaXRvcic6XG4gICAgICAvLyAgIGNvbnN0IHByb2plY3RJRCA9IGFyZ3MucHJvamVjdElEIGFzIG51bWJlciB8fCAwO1xuICAgICAgLy8gICBjb25zdCB1aWQgPSBhcmdzLnVpZCBhcyBudW1iZXIgfHwgMDtcbiAgICAgICAgXG4gICAgICAvLyAgIGNvbnN0IHRhbGtSZXN1bHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIudGFsa1RvRWRpdG9yKHtcbiAgICAgIC8vICAgICBwcm9qZWN0SUQsXG4gICAgICAvLyAgICAgdWlkXG4gICAgICAvLyAgIH0pO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiB0YWxrUmVzdWx0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICAvLyBjYXNlICd0YWxrX3RvX2VkaXRvcl9ydWxlcyc6XG4gICAgICAvLyAgIGNvbnN0IHJ1bGVzUmVzdWx0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLnRhbGtUb0VkaXRvclJ1bGVzKCk7XG4gICAgICAvLyAgIHJldHVybiB7XG4gICAgICAvLyAgICAgY29udGVudDogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAvLyAgICAgICAgIHRleHQ6IHJ1bGVzUmVzdWx0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICBjYXNlICdpbXBsZW1lbnRfYmFja2VuZF9jb2RlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZEJhY2tlbmRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQmFja2VuZENvZGVQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZEJhY2tlbmRDb2RlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV91aV9kZXNpZ25fZWRpdF9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRVSURlc2lnbkVkaXRQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnbkVkaXRQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJRGVzaWduRWRpdFByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfanVtcF9wYWdlX2NvZGVfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkSnVtcFBhZ2VDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplSnVtcFBhZ2VDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRKdW1wUGFnZUNvZGVQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIC8vIGNhc2UgJ29wdGltaXplX2RlY2xhcmF0aXZlX3VpX3Byb21wdCc6XG4gICAgICAvLyAgIGNvbnN0IG9wdGltaXplZERlY2xhcmF0aXZlVUlQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVEZWNsYXJhdGl2ZVVJUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBvcHRpbWl6ZWREZWNsYXJhdGl2ZVVJUHJvbXB0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV91aV9zcGVjX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRVSVNwZWNEZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSVNwZWNEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJU3BlY0Rlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgLy8gY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3JlcGxlbmlzaF9wcm9tcHQnOlxuICAgICAgLy8gICBjb25zdCBvcHRpbWl6ZWRVSURlc2lnblJlcGxlbmlzaFByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVVJRGVzaWduUmVwbGVuaXNoUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSURlc2lnblJlcGxlbmlzaFByb21wdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgLy8gY2FzZSAnaW1wbGVtZW50X3VpX2NvZGVfcHJvbXB0JzpcbiAgICAgIC8vICAgY29uc3QgaW1wbGVtZW50VUlDb2RlVGV4dCA9IGF3YWl0IHByb21wdE9wdGltaXplci5pbXBsZW1lbnRVSUNvZGVQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAvLyAgIHJldHVybiB7XG4gICAgICAvLyAgICAgY29udGVudDogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAvLyAgICAgICAgIHRleHQ6IGltcGxlbWVudFVJQ29kZVRleHRcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICBdXG4gICAgICAvLyAgIH07XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0b29sOiAke25hbWV9YCk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdGV4dDogYEVycm9yOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBpc0Vycm9yOiB0cnVlXG4gICAgfTtcbiAgfVxufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBTdGRpb1NlcnZlclRyYW5zcG9ydCgpO1xuICBhd2FpdCBzZXJ2ZXIuY29ubmVjdCh0cmFuc3BvcnQpO1xuICBjb25zb2xlLmVycm9yKCdCeXRlRnVuIEFJIFByb21wdCBNQ1Agc2VydmVyIHJ1bm5pbmcgb24gc3RkaW8nKTtcbn1cblxubWFpbigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpOyJdfQ==
487
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFJOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLGdDQUFnQztnQkFDdEMsV0FBVyxFQUFFLHVEQUF1RDtnQkFDcEUsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixRQUFRLEVBQUU7NEJBQ1IsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLGlEQUFpRDt5QkFDL0Q7d0JBQ0QsVUFBVSxFQUFFOzRCQUNWLElBQUksRUFBRSxRQUFROzRCQUNkLFdBQVcsRUFBRSxvRkFBb0Y7eUJBQ2xHO3FCQUNGO29CQUNELFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7aUJBQ3JDO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsMkJBQTJCO2dCQUNqQyxXQUFXLEVBQUUsbUZBQW1GO2dCQUNoRyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxF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QUEyQjt5QkFDbEM7cUJBQ0Y7aUJBQ0YsQ0FBQztZQUVKLDhDQUE4QztZQUM5QywrSEFBK0g7WUFDL0gsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixVQUFVO1lBQ1Ysd0JBQXdCO1lBQ3hCLGlEQUFpRDtZQUNqRCxVQUFVO1lBQ1YsUUFBUTtZQUNSLE9BQU87WUFFUCxtQ0FBbUM7WUFDbkMsd0dBQXdHO1lBQ3hHLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsVUFBVTtZQUNWLHdCQUF3QjtZQUN4QixvQ0FBb0M7WUFDcEMsVUFBVTtZQUNWLFFBQVE7WUFDUixPQUFPO1lBRVA7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxVQUFVLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtpQkFDekU7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUM3QyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBTZXJ2ZXIgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9pbmRleC5qcyc7XG5pbXBvcnQgeyBTdGRpb1NlcnZlclRyYW5zcG9ydCB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc2VydmVyL3N0ZGlvLmpzJztcbmltcG9ydCB7XG4gIENhbGxUb29sUmVxdWVzdFNjaGVtYSxcbiAgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSxcbiAgVG9vbCxcbn0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay90eXBlcy5qcyc7XG5pbXBvcnQgeyBQcm9tcHRPcHRpbWl6ZXIgfSBmcm9tICcuL3Byb21wdC1vcHRpbWl6ZXIuanMnO1xuXG5jb25zdCBzZXJ2ZXIgPSBuZXcgU2VydmVyKFxuICB7XG4gICAgbmFtZTogJ2J5dGVmdW4tYWktcHJvbXB0JyxcbiAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICB9XG4pO1xuXG5jb25zdCBwcm9tcHRPcHRpbWl6ZXIgPSBuZXcgUHJvbXB0T3B0aW1pemVyKCk7XG5cblxuXG4vLyBMaXN0IGF2YWlsYWJsZSB0b29sc1xuc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKExpc3RUb29sc1JlcXVlc3RTY2hlbWEsIGFzeW5jICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b29sczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfcHJvZHVjdF9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIHByb2R1Y3QgYW5kIGJ1c2luZXNzIGxvZ2ljIGRlc2lnbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgaW5kdXN0cnk6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGluZHVzdHJ5IHRoYXQgdGhlIEFQUCBvciB3ZWJzaXRlIGJlbG9uZ3MgdG8nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgcHJvZHVjdCBhbmQgYnVzaW5lc3MgbG9naWMgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsnaW5kdXN0cnknLCAndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIGRlc2lnbiBieSByZWFkaW5nIHBhZ2UgbGlzdCBhbmQgcmVxdWlyZW1lbnRzIGZyb20gZG9jIGZpbGUnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIGRlc2lnbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndWlfZGVzaWduX2d1aWRlX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmV0dXJuIGNvbXByZWhlbnNpdmUgVUkgZGVzaWduIGd1aWRlIHByb21wdCB3aXRoIHN0cmljdCBleGVjdXRpb24gcnVsZXMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfY29kZV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGNvZGUgbG9naWMgZGVzaWduIHRoaW5raW5nIGJlZm9yZSBkZXZlbG9wbWVudCwgZ2VuZXJhdGluZyBkZXRhaWxlZCBkZXNpZ24gZG9jdW1lbnRhdGlvbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgY29kZSBsb2dpYyBkZXNpZ24gdGhpbmtpbmcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ltcGxlbWVudF9sb2dpY19jb2RlX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBUeXBlU2NyaXB0IGNvZGUgZGV2ZWxvcG1lbnQgYnkgYWRkaW5nIGNvZGUgZGV2ZWxvcG1lbnQgcnVsZXMgYW5kIG1hcmtpbmcgdXNlciBpbnB1dCcsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgY29kZSBkZXZlbG9wbWVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAnb3B0aW1pemVfaGFuZF9kcmF3bl91aV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgIC8vICAgZGVzY3JpcHRpb246ICdBbmFseXplIGhhbmQtZHJhd24gVUkgZGVzaWduIHNrZXRjaGVzIGFuZCBleHRyYWN0IGRldGFpbGVkIGluZm9ybWF0aW9uIGZvciBVSSBkZXNpZ24nLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC8vICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCB3aXRoIGhhbmQtZHJhd24gVUkgZGVzaWduIHNrZXRjaCB0aGF0IG5lZWRzIHRvIGJlIGFuYWx5emVkJ1xuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fdGhpbmtpbmdfcHJvbXB0JyxcbiAgICAgIC8vICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIGRlc2lnbiB0aGlua2luZyBwcm9jZXNzIGJlZm9yZSBhY3R1YWwgZGVzaWduIHdvcmssIGdlbmVyYXRpbmcgZGV0YWlsZWQgVUkgZGVzaWduIHRoaW5raW5nIGRvY3VtZW50YXRpb24nLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC8vICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIGRlc2lnbiB0aGlua2luZyBwcm9jZXNzJ1xuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH0sXG4gICAgICAvLyAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0sXG5cbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2JhY2tlbmRfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBiYWNrZW5kIGRhdGFiYXNlIGFuZCBBUEkgaW50ZXJmYWNlIGRlc2lnbiBieSByZWFkaW5nIG1vZHVsZSBidXNpbmVzcyBsb2dpYyBkb2N1bWVudHMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGJhY2tlbmQgZGF0YWJhc2UgYW5kIEFQSSBpbnRlcmZhY2UgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICdmdW5jdGlvbmFsX21vZHVsZV9idXNpbmVzc19sb2dpY19wcm9tcHQnLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgZnVuY3Rpb25hbCBtb2R1bGUgYnVzaW5lc3MgbG9naWMgYW5hbHlzaXMgYmFzZWQgb24gcHJvZHVjdCByZXF1aXJlbWVudHMgZG9jdW1lbnQnLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC8vICAgICAgIGZ1bmN0aW9uYWxNb2R1bGU6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGZ1bmN0aW9uYWwgbW9kdWxlIGN1cnJlbnRseSBiZWluZyBkZXNpZ25lZCdcbiAgICAgIC8vICAgICAgIH0sXG4gICAgICAvLyAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBmdW5jdGlvbmFsIG1vZHVsZSBidXNpbmVzcyBsb2dpYyBhbmFseXNpcydcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbJ2Z1bmN0aW9uYWxNb2R1bGUnLCAndXNlcl9pbnB1dCddXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0sXG5cbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ3RhbGtfdG9fZWRpdG9yJyxcbiAgICAgIC8vICAgZGVzY3JpcHRpb246ICdFc3RhYmxpc2ggbG9uZyBjb25uZWN0aW9uIHdpdGggZWRpdG9yIGJhY2tlbmQgdXNpbmcgU29ja2V0LklPLiBCZWZvcmUgY2FsbGluZyB0aGlzIHRvb2wsIHlvdSBtdXN0IGZpcnN0IHVzZSByZWFkX2ZpbGUgdG8gcmVhZCAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24gYW5kIGdldCBwcm9qZWN0SUQgYW5kIHVpZCB2YWx1ZXMuIFRoaXMgdG9vbCB3aWxsIHdhaXQgZm9yIGJhY2tlbmQgbWVzc2FnZXMgYW5kIHJldHVybiB0YXNrcyB0byBleGVjdXRlLicsXG4gICAgICAvLyAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAvLyAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAvLyAgICAgcHJvcGVydGllczoge1xuICAgICAgLy8gICAgICAgcHJvamVjdElEOiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1Byb2plY3QgSUQgZnJvbSAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24gY29uZmlndXJhdGlvbiBmaWxlJ1xuICAgICAgLy8gICAgICAgfSxcbiAgICAgIC8vICAgICAgIHVpZDoge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIC8vICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIElEIGZyb20gLmJ5dGVmdW4vcHJvamVjdC5qc29uIGNvbmZpZ3VyYXRpb24gZmlsZSdcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbJ3Byb2plY3RJRCcsICd1aWQnXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAndGFsa190b19lZGl0b3JfcnVsZXMnLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ0dldCBBSSBiZWhhdmlvciBydWxlcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0YWxrX3RvX2VkaXRvciB0b29sLiBSZXR1cm5zIGRldGFpbGVkIGluc3RydWN0aW9ucyBvbiBob3cgQUkgc2hvdWxkIG1haW50YWluIGNvbnRpbnVvdXMgY29udmVyc2F0aW9uIGFuZCB3YWl0IGZvciBiYWNrZW5kIGNvbnRyb2wuJyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgIC8vICAgICByZXF1aXJlZDogW11cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ltcGxlbWVudF9iYWNrZW5kX2NvZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGJhY2tlbmQgY29kZSBkZXZlbG9wbWVudCBieSByZWFkaW5nIGJhY2tlbmQgZGVzaWduIGRvY3VtZW50cyBhbmQgYXBwbHlpbmcgY29kaW5nIHN0YW5kYXJkcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgYmFja2VuZCBjb2RlIGRldmVsb3BtZW50J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fZWRpdF9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIG1vZGlmaWNhdGlvbiBhbmQgZWRpdGluZyB0YXNrcywgcmV0dXJuaW5nIGRldGFpbGVkIFVJIGRlc2lnbiBzcGVjaWZpY2F0aW9ucycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduIG1vZGlmaWNhdGlvbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8ge1xuICAgICAgLy8gICBuYW1lOiAnb3B0aW1pemVfdWlfZGVzaWduX3JlcGxlbmlzaF9wcm9tcHQnLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIEhUTUwgcmVwbGVuaXNobWVudCBhbmQgYXR0cmlidXRlIGNvbXBsZXRpb24nLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC8vICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIGRlc2lnbiBIVE1MIHJlcGxlbmlzaG1lbnQnXG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgfSxcbiAgICAgIC8vICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2p1bXBfcGFnZV9jb2RlX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBwYWdlIG5hdmlnYXRpb24gY29kZSBkZXZlbG9wbWVudCBiYXNlZCBvbiBVSSBkZXNpZ24gcHJvZ3Jlc3MgYW5kIGp1bXBpbmcgcnVsZXMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIHBhZ2UgbmF2aWdhdGlvbiBjb2RlIGRldmVsb3BtZW50J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB7XG4gICAgICAvLyAgIG5hbWU6ICdvcHRpbWl6ZV9kZWNsYXJhdGl2ZV91aV9wcm9tcHQnLFxuICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgZGVjbGFyYXRpdmUgVUkgZGVzaWduIHVzaW5nIEpTT04gZm9ybWF0IHRvIGRlc2NyaWJlIFVJIGNvbXBvbmVudHMgYW5kIGludGVyZmFjZXMnLFxuICAgICAgLy8gICBpbnB1dFNjaGVtYToge1xuICAgICAgLy8gICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgLy8gICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC8vICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGRlY2xhcmF0aXZlIFVJIGRlc2lnbidcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfdWlfc3BlY19kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIHNwZWNpZmljYXRpb24gZGVzaWduIGJhc2VkIG9uIHByb2R1Y3QgcmVxdWlyZW1lbnRzIGRvY3VtZW50IHRvIGNvbXBsZXRlIFVJIGRlc2lnbiBzdGFuZGFyZHMnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIHNwZWNpZmljYXRpb24gZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ2ltcGxlbWVudF91aV9jb2RlX3Byb21wdCcsXG4gICAgICAvLyAgIGRlc2NyaXB0aW9uOiAnUmV0dXJuIHByb21wdCBmb3IgaW1wbGVtZW50aW5nIFVJIGNvZGUgd2l0aCBzdHJpY3QgZXhlY3V0aW9uIHN0ZXBzJyxcbiAgICAgIC8vICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgIC8vICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgIC8vICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAvLyAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgLy8gICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgZGVzY3JpYmluZyBVSSBjb2RlIGltcGxlbWVudGF0aW9uIHJlcXVpcmVtZW50cydcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9LFxuICAgICAgLy8gICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgXSBhcyBUb29sW11cbiAgfTtcbn0pO1xuXG4vLyBIYW5kbGUgdG9vbCBjYWxsc1xuc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKENhbGxUb29sUmVxdWVzdFNjaGVtYSwgYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgY29uc3QgeyBuYW1lLCBhcmd1bWVudHM6IGFyZ3MgfSA9IHJlcXVlc3QucGFyYW1zO1xuXG4gIGlmICghYXJncykge1xuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBhcmd1bWVudHMnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlICdvcHRpbWl6ZV9wcm9kdWN0X2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRQcm9kdWN0RGVzaWduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplUHJvZHVjdERlc2lnblByb21wdChhcmdzLmluZHVzdHJ5IGFzIHN0cmluZywgYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFByb2R1Y3REZXNpZ25Qcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX3VpX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRVSVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVVJRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAndWlfZGVzaWduX2d1aWRlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IHVpRGVzaWduR3VpZGVUZXh0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLnVpRGVzaWduR3VpZGVQcm9tcHQoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogdWlEZXNpZ25HdWlkZVRleHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX2NvZGVfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZENvZGVEZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVDb2RlRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRDb2RlRGVzaWduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdpbXBsZW1lbnRfbG9naWNfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgLy8gY2FzZSAnb3B0aW1pemVfaGFuZF9kcmF3bl91aV9kZXNpZ25fcHJvbXB0JzpcbiAgICAgIC8vICAgY29uc3Qgb3B0aW1pemVkSGFuZERyYXduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplSGFuZERyYXduVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAvLyAgIHJldHVybiB7XG4gICAgICAvLyAgICAgY29udGVudDogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAvLyAgICAgICAgIHRleHQ6IG9wdGltaXplZEhhbmREcmF3blByb21wdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgLy8gY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3RoaW5raW5nX3Byb21wdCc6XG4gICAgICAvLyAgIGNvbnN0IG9wdGltaXplZFVJRGVzaWduVGhpbmtpbmdQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnblRoaW5raW5nUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSURlc2lnblRoaW5raW5nUHJvbXB0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9iYWNrZW5kX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRCYWNrZW5kRGVzaWduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQmFja2VuZERlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQmFja2VuZERlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnZnVuY3Rpb25hbF9tb2R1bGVfYnVzaW5lc3NfbG9naWNfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkRnVuY3Rpb25hbE1vZHVsZVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUZ1bmN0aW9uYWxNb2R1bGVQcm9tcHQoYXJncy5mdW5jdGlvbmFsTW9kdWxlIGFzIHN0cmluZywgYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZEZ1bmN0aW9uYWxNb2R1bGVQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cblxuICAgICAgLy8gY2FzZSAndGFsa190b19lZGl0b3InOlxuICAgICAgLy8gICBjb25zdCBwcm9qZWN0SUQgPSBhcmdzLnByb2plY3RJRCBhcyBudW1iZXIgfHwgMDtcbiAgICAgIC8vICAgY29uc3QgdWlkID0gYXJncy51aWQgYXMgbnVtYmVyIHx8IDA7XG4gICAgICAgIFxuICAgICAgLy8gICBjb25zdCB0YWxrUmVzdWx0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLnRhbGtUb0VkaXRvcih7XG4gICAgICAvLyAgICAgcHJvamVjdElELFxuICAgICAgLy8gICAgIHVpZFxuICAgICAgLy8gICB9KTtcbiAgICAgIC8vICAgcmV0dXJuIHtcbiAgICAgIC8vICAgICBjb250ZW50OiBbXG4gICAgICAvLyAgICAgICB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIC8vICAgICAgICAgdGV4dDogdGFsa1Jlc3VsdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgLy8gY2FzZSAndGFsa190b19lZGl0b3JfcnVsZXMnOlxuICAgICAgLy8gICBjb25zdCBydWxlc1Jlc3VsdCA9IGF3YWl0IHByb21wdE9wdGltaXplci50YWxrVG9FZGl0b3JSdWxlcygpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBydWxlc1Jlc3VsdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgY2FzZSAnaW1wbGVtZW50X2JhY2tlbmRfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRCYWNrZW5kQ29kZVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUJhY2tlbmRDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRCYWNrZW5kQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX2VkaXRfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkVUlEZXNpZ25FZGl0UHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlEZXNpZ25FZGl0UHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSURlc2lnbkVkaXRQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX2p1bXBfcGFnZV9jb2RlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZEp1bXBQYWdlQ29kZVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUp1bXBQYWdlQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkSnVtcFBhZ2VDb2RlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAvLyBjYXNlICdvcHRpbWl6ZV9kZWNsYXJhdGl2ZV91aV9wcm9tcHQnOlxuICAgICAgLy8gICBjb25zdCBvcHRpbWl6ZWREZWNsYXJhdGl2ZVVJUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplRGVjbGFyYXRpdmVVSVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgIC8vICAgcmV0dXJuIHtcbiAgICAgIC8vICAgICBjb250ZW50OiBbXG4gICAgICAvLyAgICAgICB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIC8vICAgICAgICAgdGV4dDogb3B0aW1pemVkRGVjbGFyYXRpdmVVSVByb21wdFxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIF1cbiAgICAgIC8vICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfc3BlY19kZXNpZ25fcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkVUlTcGVjRGVzaWduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlTcGVjRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSVNwZWNEZXNpZ25Qcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIC8vIGNhc2UgJ29wdGltaXplX3VpX2Rlc2lnbl9yZXBsZW5pc2hfcHJvbXB0JzpcbiAgICAgIC8vICAgY29uc3Qgb3B0aW1pemVkVUlEZXNpZ25SZXBsZW5pc2hQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnblJlcGxlbmlzaFByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgIC8vICAgcmV0dXJuIHtcbiAgICAgIC8vICAgICBjb250ZW50OiBbXG4gICAgICAvLyAgICAgICB7XG4gICAgICAvLyAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIC8vICAgICAgICAgdGV4dDogb3B0aW1pemVkVUlEZXNpZ25SZXBsZW5pc2hQcm9tcHRcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICBdXG4gICAgICAvLyAgIH07XG5cbiAgICAgIC8vIGNhc2UgJ2ltcGxlbWVudF91aV9jb2RlX3Byb21wdCc6XG4gICAgICAvLyAgIGNvbnN0IGltcGxlbWVudFVJQ29kZVRleHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIuaW1wbGVtZW50VUlDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgLy8gICAgIGNvbnRlbnQ6IFtcbiAgICAgIC8vICAgICAgIHtcbiAgICAgIC8vICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgLy8gICAgICAgICB0ZXh0OiBpbXBsZW1lbnRVSUNvZGVUZXh0XG4gICAgICAvLyAgICAgICB9XG4gICAgICAvLyAgICAgXVxuICAgICAgLy8gICB9O1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdG9vbDogJHtuYW1lfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6IGBFcnJvcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgIH07XG4gIH1cbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgU3RkaW9TZXJ2ZXJUcmFuc3BvcnQoKTtcbiAgYXdhaXQgc2VydmVyLmNvbm5lY3QodHJhbnNwb3J0KTtcbiAgY29uc29sZS5lcnJvcignQnl0ZUZ1biBBSSBQcm9tcHQgTUNQIHNlcnZlciBydW5uaW5nIG9uIHN0ZGlvJyk7XG59XG5cbm1haW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTsiXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bytefun-ai-mcp",
3
- "version": "1.13.66",
3
+ "version": "1.13.67",
4
4
  "description": "ByteFun AI MCP服务 - 打通产品设计、UI设计、代码开发的服务平台,支持设计稿转代码和跨平台原生代码开发",
5
5
  "main": "build/index.js",
6
6
  "type": "module",