bytefun-ai-mcp 1.0.2 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,15 +1,13 @@
1
1
  # ByteFun AI MCP 服务
2
2
 
3
- ByteFun AI MCP服务 - 打通原型设计、UI设计与设计稿转代码、跨平台原生代码开发等的服务平台。
3
+ ByteFun AI MCP服务 - 智能UI设计与代码开发服务平台,支持设计稿转代码和跨平台原生代码开发。
4
4
 
5
5
  ## 功能概述
6
6
 
7
- ByteFun AI MCP服务提供四大核心功能模块,实现从设计到代码的完整工作流:
7
+ ByteFun AI MCP服务提供两大核心功能模块,实现从设计到代码的完整工作流:
8
8
 
9
- 1. **原型设计优化** - 将用户输入的需求转换为带有原型设计规范的产品原型提示词,建立产品设计基础
10
- 2. **UI设计优化** - 将用户输入的需求转换为带有UI设计规范的静态HTML+CSS设计提示词,实现设计稿到代码的转换
11
- 3. **代码开发优化** - 将用户输入的需求转换为带有完整开发规则的TypeScript代码开发提示词,支持跨平台原生开发
12
- 4. **🤖 AI全自动智能分发** - 自动分析用户需求并执行相应的优化工具,一键获得所有结果
9
+ 1. **UI设计优化** - 将用户输入的需求转换为带有UI设计规范的静态HTML+CSS设计提示词,实现设计稿到代码的转换
10
+ 2. **代码开发优化** - 将用户输入的需求转换为带有完整开发规则的TypeScript代码开发提示词,支持跨平台原生开发
13
11
 
14
12
  ## 安装
15
13
 
@@ -31,17 +29,17 @@ npm install bytefun-ai-mcp
31
29
 
32
30
  ### ⚠️ 重要说明
33
31
 
34
- **工具独立性**:ByteFun AI MCP服务提供三个完全独立的工具,每次只能调用一个工具,不会根据用户输入自动选择或组合调用。
32
+ **智能单一选择**:ByteFun AI MCP服务根据用户需求智能判断选择最合适的单一功能,每次只执行一个工具。
35
33
 
36
34
  **使用机制**:
37
- - 🎯 **单一需求**:如果只需要UI设计,选择 `optimize_ui_design_prompt` 工具
38
- - 🔄 **复合需求**:如果需要"原型+UI+代码",需要依次调用三个工具
39
- - 👤 **用户选择**:由用户或MCP客户端明确指定调用哪个工具
35
+ - 🎯 **UI设计需求**:当用户关注界面、设计、样式、布局等视觉方面时,自动选择 `optimize_ui_design_prompt`
36
+ - 🔧 **代码开发需求**:当用户关注功能、逻辑、实现、开发等技术方面时,自动选择 `optimize_code_prompt`
37
+ - 🤖 **智能判断**:系统自动分析用户真实意图,选择最合适的功能
40
38
 
41
- **典型使用流程**:
42
- 1. **完整产品开发流程**:原型设计 → UI设计 → 代码开发
43
- 2. **UI到代码流程**:UI设计 → 代码开发
44
- 3. **单一功能开发**:选择对应的单个工具
39
+ **典型使用场景**:
40
+ 1. **界面设计**:专注视觉设计和用户体验
41
+ 2. **功能开发**:专注业务逻辑和技术实现
42
+ 3. **设计转代码**:从设计稿到可执行代码
45
43
 
46
44
  ### 在MCP客户端中配置
47
45
 
@@ -84,23 +82,11 @@ npm install bytefun-ai-mcp
84
82
  优化后: 包含UI设计规范 + 设计稿转代码规则 + "# 用户需求描述\n设计一个现代化的电商商品列表页面"
85
83
  ```
86
84
 
87
- #### 3. optimize_prototype_design_prompt
88
- 优化原型设计提示词,打通设计到开发流程
89
-
90
- **参数:**
91
- - `user_input` (string): 用户输入的原型设计需求
92
-
93
- **示例:**
94
- ```
95
- 用户输入: "制作一个社交APP的动态发布原型"
96
- 优化后: 包含原型设计规范 + 交互流程设计 + "# 用户需求描述\n制作一个社交APP的动态发布原型"
97
- ```
98
-
99
85
  ## 核心价值
100
86
 
101
- ### 🎨 完整设计到代码链路
102
- - **原型设计** → **UI设计** → **代码实现**
103
- - 三个环节无缝衔接,确保产品一致性
87
+ ### 🎨 智能设计到代码链路
88
+ - **UI设计** → **代码实现**
89
+ - 两个环节无缝衔接,确保产品一致性
104
90
 
105
91
  ### 🔧 跨平台原生开发支持
106
92
  - TypeScript代码规范
@@ -117,6 +103,18 @@ npm install bytefun-ai-mcp
117
103
  - 毫秒级响应速度
118
104
  - 内存使用优化
119
105
 
106
+ ## 智能判断原则
107
+
108
+ ### 单一功能选择
109
+ 根据用户描述,智能判断选择唯一最合适的功能:
110
+ - 如果用户主要关注"界面外观、设计、布局、样式"→ **UI设计优化**
111
+ - 如果用户主要关注"功能实现、逻辑处理、代码开发"→ **代码开发优化**
112
+
113
+ ### 判断策略
114
+ - **UI设计优先**:用户明确提到界面、设计、样式、布局、外观等视觉相关词汇
115
+ - **代码开发优先**:用户明确提到功能、逻辑、实现、开发、编程等技术相关词汇
116
+ - **模糊情况**:优先选择代码开发(覆盖范围更广)
117
+
120
118
  ## 技术架构
121
119
 
122
120
  - **MCP协议**: 基于Model Context Protocol标准
package/build/index.js CHANGED
@@ -39,20 +39,6 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
39
39
  },
40
40
  required: ['user_input']
41
41
  }
42
- },
43
- {
44
- name: 'optimize_prototype_design_prompt',
45
- description: 'Optimize prompt for prototype design by adding prototype design rules and marking user input',
46
- inputSchema: {
47
- type: 'object',
48
- properties: {
49
- user_input: {
50
- type: 'string',
51
- description: 'User input prompt that needs to be optimized for prototype design'
52
- }
53
- },
54
- required: ['user_input']
55
- }
56
42
  }
57
43
  ]
58
44
  };
@@ -85,16 +71,6 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
85
71
  }
86
72
  ]
87
73
  };
88
- case 'optimize_prototype_design_prompt':
89
- const optimizedPrototypePrompt = await promptOptimizer.optimizePrototypeDesignPrompt(args.user_input);
90
- return {
91
- content: [
92
- {
93
- type: 'text',
94
- text: optimizedPrototypePrompt
95
- }
96
- ]
97
- };
98
74
  default:
99
75
  throw new Error(`Unknown tool: ${name}`);
100
76
  }
@@ -117,4 +93,4 @@ async function main() {
117
93
  console.error('ByteFun AI Prompt MCP server running on stdio');
118
94
  }
119
95
  main().catch(console.error);
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFFOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsV0FBVyxFQUFFLHlHQUF5RztnQkFDdEgsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLG1FQUFtRTt5QkFDakY7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN6QjthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsV0FBVyxFQUFFLGdGQUFnRjtnQkFDN0YsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLDREQUE0RDt5QkFDMUU7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN6QjthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGtDQUFrQztnQkFDeEMsV0FBVyxFQUFFLDhGQUE4RjtnQkFDM0csV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLG1FQUFtRTt5QkFDakY7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN6QjthQUNGO1NBQ1E7S0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBRWpELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssc0JBQXNCO2dCQUN6QixNQUFNLG1CQUFtQixHQUFHLE1BQU0sZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLENBQUM7Z0JBQ2hHLE9BQU87b0JBQ0wsT0FBTyxFQUFFO3dCQUNQOzRCQUNFLElBQUksRUFBRSxNQUFNOzRCQUNaLElBQUksRUFBRSxtQkFBbUI7eUJBQzFCO3FCQUNGO2lCQUNGLENBQUM7WUFFSixLQUFLLDJCQUEyQjtnQkFDOUIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBb0IsQ0FBQyxDQUFDO2dCQUNsRyxPQUFPO29CQUNMLE9BQU8sRUFBRTt3QkFDUDs0QkFDRSxJQUFJLEVBQUUsTUFBTTs0QkFDWixJQUFJLEVBQUUsaUJBQWlCO3lCQUN4QjtxQkFDRjtpQkFDRixDQUFDO1lBRUosS0FBSyxrQ0FBa0M7Z0JBQ3JDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxlQUFlLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLFVBQW9CLENBQUMsQ0FBQztnQkFDaEgsT0FBTztvQkFDTCxPQUFPLEVBQUU7d0JBQ1A7NEJBQ0UsSUFBSSxFQUFFLE1BQU07NEJBQ1osSUFBSSxFQUFFLHdCQUF3Qjt5QkFDL0I7cUJBQ0Y7aUJBQ0YsQ0FBQztZQUVKO2dCQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsVUFBVSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7aUJBQ3pFO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFSCxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLFNBQVMsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7SUFDN0MsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IHsgU2VydmVyIH0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zZXJ2ZXIvaW5kZXguanMnO1xuaW1wb3J0IHsgU3RkaW9TZXJ2ZXJUcmFuc3BvcnQgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9zdGRpby5qcyc7XG5pbXBvcnQge1xuICBDYWxsVG9vbFJlcXVlc3RTY2hlbWEsXG4gIExpc3RUb29sc1JlcXVlc3RTY2hlbWEsXG4gIFRvb2wsXG59IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvdHlwZXMuanMnO1xuaW1wb3J0IHsgUHJvbXB0T3B0aW1pemVyIH0gZnJvbSAnLi9wcm9tcHQtb3B0aW1pemVyLmpzJztcblxuY29uc3Qgc2VydmVyID0gbmV3IFNlcnZlcihcbiAge1xuICAgIG5hbWU6ICdieXRlZnVuLWFpLXByb21wdCcsXG4gICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgfVxuKTtcblxuY29uc3QgcHJvbXB0T3B0aW1pemVyID0gbmV3IFByb21wdE9wdGltaXplcigpO1xuXG4vLyBMaXN0IGF2YWlsYWJsZSB0b29sc1xuc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKExpc3RUb29sc1JlcXVlc3RTY2hlbWEsIGFzeW5jICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b29sczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVHlwZVNjcmlwdCBjb2RlIGRldmVsb3BtZW50IGJ5IGFkZGluZyBjb2RlIGRldmVsb3BtZW50IHJ1bGVzIGFuZCBtYXJraW5nIHVzZXIgaW5wdXQnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIGJ5IGFkZGluZyBVSSBkZXNpZ24gcnVsZXMgYW5kIG1hcmtpbmcgdXNlciBpbnB1dCcsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9wcm90b3R5cGVfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBwcm90b3R5cGUgZGVzaWduIGJ5IGFkZGluZyBwcm90b3R5cGUgZGVzaWduIHJ1bGVzIGFuZCBtYXJraW5nIHVzZXIgaW5wdXQnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIHByb3RvdHlwZSBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0gYXMgVG9vbFtdXG4gIH07XG59KTtcblxuLy8gSGFuZGxlIHRvb2wgY2FsbHNcbnNlcnZlci5zZXRSZXF1ZXN0SGFuZGxlcihDYWxsVG9vbFJlcXVlc3RTY2hlbWEsIGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gIGNvbnN0IHsgbmFtZSwgYXJndW1lbnRzOiBhcmdzIH0gPSByZXF1ZXN0LnBhcmFtcztcblxuICBpZiAoIWFyZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgYXJndW1lbnRzJyk7XG4gIH1cblxuICB0cnkge1xuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSAnb3B0aW1pemVfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFVJUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9wcm90b3R5cGVfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFByb3RvdHlwZVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVByb3RvdHlwZURlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkUHJvdG90eXBlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdG9vbDogJHtuYW1lfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6IGBFcnJvcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgIH07XG4gIH1cbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgU3RkaW9TZXJ2ZXJUcmFuc3BvcnQoKTtcbiAgYXdhaXQgc2VydmVyLmNvbm5lY3QodHJhbnNwb3J0KTtcbiAgY29uc29sZS5lcnJvcignQnl0ZUZ1biBBSSBQcm9tcHQgTUNQIHNlcnZlciBydW5uaW5nIG9uIHN0ZGlvJyk7XG59XG5cbm1haW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTsgIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFFOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsV0FBVyxFQUFFLHlHQUF5RztnQkFDdEgsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLG1FQUFtRTt5QkFDakY7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN6QjthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsV0FBVyxFQUFFLGdGQUFnRjtnQkFDN0YsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLDREQUE0RDt5QkFDMUU7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN6QjthQUNGO1NBQ1E7S0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSCxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBRWpELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssc0JBQXNCO2dCQUN6QixNQUFNLG1CQUFtQixHQUFHLE1BQU0sZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFvQixDQUFDLENBQUM7Z0JBQ2hHLE9BQU87b0JBQ0wsT0FBTyxFQUFFO3dCQUNQOzRCQUNFLElBQUksRUFBRSxNQUFNOzRCQUNaLElBQUksRUFBRSxtQkFBbUI7eUJBQzFCO3FCQUNGO2lCQUNGLENBQUM7WUFFSixLQUFLLDJCQUEyQjtnQkFDOUIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBb0IsQ0FBQyxDQUFDO2dCQUNsRyxPQUFPO29CQUNMLE9BQU8sRUFBRTt3QkFDUDs0QkFDRSxJQUFJLEVBQUUsTUFBTTs0QkFDWixJQUFJLEVBQUUsaUJBQWlCO3lCQUN4QjtxQkFDRjtpQkFDRixDQUFDO1lBRUo7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPO1lBQ0wsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxVQUFVLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtpQkFDekU7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILEtBQUssVUFBVSxJQUFJO0lBQ2pCLE1BQU0sU0FBUyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUM3QyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBTZXJ2ZXIgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9pbmRleC5qcyc7XG5pbXBvcnQgeyBTdGRpb1NlcnZlclRyYW5zcG9ydCB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc2VydmVyL3N0ZGlvLmpzJztcbmltcG9ydCB7XG4gIENhbGxUb29sUmVxdWVzdFNjaGVtYSxcbiAgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSxcbiAgVG9vbCxcbn0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay90eXBlcy5qcyc7XG5pbXBvcnQgeyBQcm9tcHRPcHRpbWl6ZXIgfSBmcm9tICcuL3Byb21wdC1vcHRpbWl6ZXIuanMnO1xuXG5jb25zdCBzZXJ2ZXIgPSBuZXcgU2VydmVyKFxuICB7XG4gICAgbmFtZTogJ2J5dGVmdW4tYWktcHJvbXB0JyxcbiAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICB9XG4pO1xuXG5jb25zdCBwcm9tcHRPcHRpbWl6ZXIgPSBuZXcgUHJvbXB0T3B0aW1pemVyKCk7XG5cbi8vIExpc3QgYXZhaWxhYmxlIHRvb2xzXG5zZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSwgYXN5bmMgKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHRvb2xzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9jb2RlX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBUeXBlU2NyaXB0IGNvZGUgZGV2ZWxvcG1lbnQgYnkgYWRkaW5nIGNvZGUgZGV2ZWxvcG1lbnQgcnVsZXMgYW5kIG1hcmtpbmcgdXNlciBpbnB1dCcsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgY29kZSBkZXZlbG9wbWVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfdWlfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gYnkgYWRkaW5nIFVJIGRlc2lnbiBydWxlcyBhbmQgbWFya2luZyB1c2VyIGlucHV0JyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0gYXMgVG9vbFtdXG4gIH07XG59KTtcblxuLy8gSGFuZGxlIHRvb2wgY2FsbHNcbnNlcnZlci5zZXRSZXF1ZXN0SGFuZGxlcihDYWxsVG9vbFJlcXVlc3RTY2hlbWEsIGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gIGNvbnN0IHsgbmFtZSwgYXJndW1lbnRzOiBhcmdzIH0gPSByZXF1ZXN0LnBhcmFtcztcblxuICBpZiAoIWFyZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgYXJndW1lbnRzJyk7XG4gIH1cblxuICB0cnkge1xuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSAnb3B0aW1pemVfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFVJUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdG9vbDogJHtuYW1lfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6IGBFcnJvcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgIH07XG4gIH1cbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgU3RkaW9TZXJ2ZXJUcmFuc3BvcnQoKTtcbiAgYXdhaXQgc2VydmVyLmNvbm5lY3QodHJhbnNwb3J0KTtcbiAgY29uc29sZS5lcnJvcignQnl0ZUZ1biBBSSBQcm9tcHQgTUNQIHNlcnZlciBydW5uaW5nIG9uIHN0ZGlvJyk7XG59XG5cbm1haW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTsgIl19
@@ -2,20 +2,16 @@
2
2
  * ByteFun AI MCP 提示词优化器
3
3
  *
4
4
  * 重要说明:
5
- * - 本类提供三个独立的优化工具,每个工具处理不同类型的需求
5
+ * - 本类提供两个独立的优化工具,每个工具处理不同类型的需求
6
6
  * - 每次只能调用一个工具方法,不会自动组合或选择
7
- * - 如果用户需求涉及多个方面,需要分别调用多个工具
8
7
  *
9
8
  * 使用方式:
10
- * 1. 原型设计需求 → 调用 optimizePrototypeDesignPrompt()
11
- * 2. UI设计需求 → 调用 optimizeUIDesignPrompt()
12
- * 3. 代码开发需求 → 调用 optimizeCodePrompt()
13
- * 4. 复合需求 → 依次调用多个相关工具
9
+ * 1. UI设计需求 → 调用 optimizeUIDesignPrompt()
10
+ * 2. 代码开发需求 → 调用 optimizeCodePrompt()
14
11
  */
15
12
  export declare class PromptOptimizer {
16
13
  private readonly codePromptTemplate;
17
14
  private readonly uiDesignPromptTemplate;
18
- private readonly prototypeDesignPromptTemplate;
19
15
  /**
20
16
  * 优化代码开发提示词
21
17
  * 注意:此方法专门处理代码开发相关需求,不会自动处理UI设计或原型设计内容
@@ -26,10 +22,5 @@ export declare class PromptOptimizer {
26
22
  * 注意:此方法专门处理UI设计相关需求,不会自动处理代码开发或原型设计内容
27
23
  */
28
24
  optimizeUIDesignPrompt(userInput: string): Promise<string>;
29
- /**
30
- * 优化原型设计提示词
31
- * 注意:此方法专门处理原型设计相关需求,不会自动处理UI设计或代码开发内容
32
- */
33
- optimizePrototypeDesignPrompt(userInput: string): Promise<string>;
34
25
  }
35
26
  //# sourceMappingURL=prompt-optimizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA0FlC;IAED,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CA6BvC;IAEA,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CA+G9C;IAEA;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOhE;;;OAGG;IACG,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAMxE"}
1
+ {"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA0FlC;IAED,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAIvC;IAEA;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAMjE"}
@@ -2,15 +2,12 @@
2
2
  * ByteFun AI MCP 提示词优化器
3
3
  *
4
4
  * 重要说明:
5
- * - 本类提供三个独立的优化工具,每个工具处理不同类型的需求
5
+ * - 本类提供两个独立的优化工具,每个工具处理不同类型的需求
6
6
  * - 每次只能调用一个工具方法,不会自动组合或选择
7
- * - 如果用户需求涉及多个方面,需要分别调用多个工具
8
7
  *
9
8
  * 使用方式:
10
- * 1. 原型设计需求 → 调用 optimizePrototypeDesignPrompt()
11
- * 2. UI设计需求 → 调用 optimizeUIDesignPrompt()
12
- * 3. 代码开发需求 → 调用 optimizeCodePrompt()
13
- * 4. 复合需求 → 依次调用多个相关工具
9
+ * 1. UI设计需求 → 调用 optimizeUIDesignPrompt()
10
+ * 2. 代码开发需求 → 调用 optimizeCodePrompt()
14
11
  */
15
12
  export class PromptOptimizer {
16
13
  codePromptTemplate = `# 你是typescript代码专家,根据'规则'、'例子'和用户输入的需求描述,完成代码开发
@@ -106,145 +103,8 @@ export default class HomePageData {
106
103
  }`;
107
104
  uiDesignPromptTemplate = `# 你是专业的UI设计师和前端开发工程师,现在需要根据'生成规则'和'需求描述'来生成静态html代码,并按照'写入文件规则'将生成html写到html文件。
108
105
 
109
- ## 生成规则
110
- - 一个页面对应一个html+css代码文件,如果需要多个页面的,那就创建对应的html+css代码文件。
111
- - 必须只能使用静态html+css的写法完成静态html+css网页,该网页代码无js的代码,无js业务与交互逻辑,绝对不能使用vue、React、React Native、javascript等代码实现。
112
- - 必须要以手机屏幕分辨率:376*700。的规则来设计。
113
- - 设计样式规范必须遵循'样式UI规范',如果用户没有指定'样式UI规范',那就必须参考市面上流行的专业的APP/网站的相关页面的布局、样式、风格设计。
114
- - html的body节点必须写死width=376, height=700
115
- - 每一个节点必须添加一个组件类型属性:vtype。比如文字vtype="text"、按钮vtype="button"、文字按钮vtype="textButton"、输入框vtype="input"、图标vtype="icon"、图片vtype="image"、矩形vtype="rect"、圆形vtype="circle"、线条vtype="line"、基础容器vtype="container"、卡片容器vtype="card"、grid容器vtype="grid"、单选vtype="radio"、多选vtype="checkBox"、竖向列表vtype="verticalListView"、横向列表vtype="horizontalListView"、轮播vtype="viewPager"、轮播指示器容器vtype="IndicatorContainer"、Tab选项卡容器vtype="tabContainer"、Tab选项卡菜单栏vtype="tabMenuBar"、底部TAB导航栏vtype="bottomTabNavigateBar"、对话框vtype="dialog"、Toast提示vtype="toast"、下拉菜单vtype="dropDownMenu"、侧滑面板vtype="sideSlidePanel"等以此类推。
116
- - 除了vtype为'text'的所有节点必须添加一个英文id属性和中文名字name属性。你需要根据功能逻辑和组件类型来命名id属性和name属性,描述该元素在产品中的作用,命名使用简洁的风格。
117
- - 每一个节点必须添加这四个新属性:x1、y1、w1、h1。x1和y1是相对于屏幕左上角的像素绝对值,w1和h1是像素绝对值。这四个属性只起到信息提示作用,不会作用于布局和显示,但信息提示非常重要,因此你必须要给出准确的x1、y1、w1、h1的像素绝对值。
118
- - 如果是竖向列表、横向列表、轮播、tab选项卡的容器组件,里面的卡片item样式如果一样的话,只需要列出一个item的div即可,类似android的RecyclerView的卡片ViewHolder复用机制,只需要声明一个样式的卡片ViewHolder。
119
- - 所有关于像素大小的都必须使用px,如:15px。不得使用em、百分比%等等其他的。
120
- - html的内容除非有要求使用非中文,默认都使用中文
121
- - 节点的css样式不得使用before、after方式,如不可以这样写:.text:before, .text:after {
122
- position: absolute;
123
- top: 50%;
124
- width: 60px;
125
- height: 1px;
126
- background: #e5e5e5;
127
- }
128
- - 如果是图片image节点,必须使用img标签,绝对不能使用div标签。
129
- - 如果是图标icon节点,绝对不能使用div标签,图标使用svg绘制。
130
- - 如果节点是active、selected、disabled状态,需要添加属性:state="active"或state="selected"或state="disabled"
131
- - 注意背景色和文字色冲突问题,比如浅背景色+浅色文字色会导致文字看不清,同样深色也是如此
132
- - css的代码必须内联写出来,绝对不能使用外联,如不能使用:href="style.css"。
133
-
134
106
  ## 写入文件规则
135
- - 将生成的html+css代码写入工程根目录下面的.bytefun文件夹里面,只将html+css的代码写入对应的页面文件,其他任何注释、解释、澄清、总结等文字不得写入该文件。
136
- `;
137
- prototypeDesignPromptTemplate = `# 你是专业的产品原型设计师和用户体验设计师,现在需要根据'需求文档生成规则'、'静态html+css生成规则'、'简单ts交互逻辑规则'和'需求描述'来生成1个产品需求文档、1个或多个产品原型html+css静态页面代码,并按照'写入文件规则'将生成的需求文档和html写到对应文件。
138
-
139
- ## 需求文档生成规则
140
- ### 阅读并理解用户描述
141
- - 只需要生成业务功能性需求类文档即可
142
- - 需求文档需要生成维护在根目录的'需求文档.md'文件里面
143
- - 首先,请仔细阅读用户给出的描述,判断描述是否完整。如果信息不足,应主动提出至少 3 个关键性澄清问题,引导用户补充。
144
-
145
- ### 文档格式与输出规范
146
- - 文档采用 Markdown 格式,章节层级清晰(一级标题、二级标题、三级标题)。
147
- - 内容要专业、简洁、条理清晰,适用于团队内分享与后续跟进。
148
- - 每一章都要有简要前言,点明本章目的。
149
- - 必要时配备表格、流程图示意(以文字形式描述即可)。
150
-
151
- ### 需求文档结构
152
- #### 一、项目概述
153
- > **目的**:说明该文档的编写背景、目标和作用。
154
-
155
- 1. **项目名称**
156
- 2. **项目背景与现状**
157
- - 行业背景、市场痛点
158
- - 竞品分析(如果有简要信息可列出)
159
- - 用户痛点与机会点
160
- 3. **项目目标**(SMART 原则:具体、可量化、可实现、关联性、时限性)
161
-
162
- #### 二、用户及场景分析
163
- > **目的**:帮助团队理解目标用户及其使用场景。
164
-
165
- 1. **目标用户画像**
166
- - 用户群体划分(如年龄、性别、职业、教育程度、地区等)
167
- - 用户需求与痛点
168
- - 用户动机分析
169
- 2. **用户使用场景**
170
- - 核心使用场景描述(场景 A / 场景 B / 场景 C)
171
- - 使用流程示意(以文字描述关键步骤)
172
- 3. **关键用户旅程(User Journey)**
173
- - 步骤分解:从「获取到认知」到「使用过程」再到「持续留存/分享」
174
- - 每个节点的用户心理与系统响应
175
-
176
- #### 三、功能需求
177
- > **目的**:详细罗列系统需要实现的所有功能,分主次、分模块。
178
-
179
- 1. **整体功能架构图**(文字描述也可)
180
- 2. **功能模块划分**
181
- - 模块 A:名称(例如:用户管理、身份认证)
182
- 1. 功能点 1:描述(包括业务逻辑、输入输出)
183
- 2. 功能点 2:描述
184
- 3. …
185
- - 模块 B:名称(例如:内容展示、搜索、推荐)
186
- 1. 功能点 1:描述
187
- 2. …
188
- - 模块 C:名称(例如:支付与订单)
189
- 1. 功能点 1:描述
190
- 2. …
191
- - 模块 D:名称(例如:权限与运维)
192
- 1. 功能点 1:描述
193
- 2. …
194
- 3. **优先级排序**
195
- - 使用 MoSCoW 方法划分:Must Have / Should Have / Could Have / Won’t Have
196
- 4. **用例示例(Use Case)**
197
- - 用例标题(例如:用户注册与登录)
198
- - 参与者:用户、系统、第三方服务
199
- - 前置条件:用户已经下载并打开 APP…
200
- - 触发事件:用户点击「注册」
201
- - 基本流程:步骤 1→步骤 2→步骤 3…
202
- - 异常流程:手机号已注册、验证码错误(并说明如何处理)
203
- - 后置条件:用户成功注册并登录系统
204
-
205
- ---
206
-
207
- **温馨提示:**
208
- - 保证文档结构完整、逻辑严密,每一处功能需求都有明确的输入输出、边界条件和优先级。
209
- - 输出时保持专业术语准确、表达简洁明了,注意使用 Markdown 的编号、标题、列表和表格来增强可读性。
210
-
211
-
212
- ## 静态html+css生成规则
213
- - 一个页面对应一个html+css代码文件,如果需要多个页面的,那就创建对应的html+css代码文件。
214
- - 必须只能使用静态html+css的写法完成产品原型静态html+css网页,该网页代码无js的代码,无js业务与交互逻辑,绝对不能使用vue、React、React Native、javascript等代码实现。
215
- - 必须要以手机屏幕分辨率:376*700。的规则来设计。
216
- - 原型设计风格必须遵循'产品原型规范',如果用户没有指定'产品原型规范',那就必须参考业界流行的低保真到中保真原型设计风格,重点展示功能布局、用户流程和交互逻辑,而非视觉美感。
217
- - html的body节点必须写死width=376, height=700
218
- - 每一个节点必须添加一个组件类型属性:vtype。比如文字vtype="text"、按钮vtype="button"、文字按钮vtype="textButton"、输入框vtype="input"、图标vtype="icon"、图片vtype="image"、矩形vtype="rect"、圆形vtype="circle"、线条vtype="line"、基础容器vtype="container"、卡片容器vtype="card"、grid容器vtype="grid"、单选vtype="radio"、多选vtype="checkBox"、竖向列表vtype="verticalListView"、横向列表vtype="horizontalListView"、轮播vtype="viewPager"、轮播指示器容器vtype="IndicatorContainer"、Tab选项卡容器vtype="tabContainer"、Tab选项卡菜单栏vtype="tabMenuBar"、底部TAB导航栏vtype="bottomTabNavigateBar"、对话框vtype="dialog"、Toast提示vtype="toast"、下拉菜单vtype="dropDownMenu"、侧滑面板vtype="sideSlidePanel"、占位符vtype="placeholder"、注释说明vtype="annotation"等以此类推。
219
- - 除了vtype为'text'的所有节点必须添加一个英文id属性和中文名字name属性。你需要根据功能逻辑和组件类型来命名id属性和name属性,描述该元素在产品中的作用,命名使用简洁的风格。
220
- - 每一个节点必须添加这四个新属性:x1、y1、w1、h1。x1和y1是相对于屏幕左上角的像素绝对值,w1和h1是像素绝对值。这四个属性只起到信息提示作用,不会作用于布局和显示,但信息提示非常重要,因此你必须要给出准确的x1、y1、w1、h1的像素绝对值。
221
- - 所有关于像素大小的都必须使用px,如:15px。不得使用em、百分比%等等其他的。
222
- - html的内容除非有要求使用非中文,默认都使用中文
223
- - 节点的css样式不得使用before、after方式,如不可以这样写:.text:before, .text:after {
224
- position: absolute;
225
- top: 50%;
226
- width: 60px;
227
- height: 1px;
228
- background: #e5e5e5;
229
- }
230
- - 如果是图片image节点,必须使用img标签,绝对不能使用div标签。
231
- - 如果是图标icon节点,绝对不能使用div标签,图标使用简单的几何形状或文字表示。
232
- - 如果节点是active、selected、disabled状态,需要添加属性:state="active"或state="selected"或state="disabled"
233
- - 原型设计应使用简洁的色彩方案,重点突出关键功能和用户路径
234
- - css的代码必须内联写出来,绝对不能使用外联,如不能使用:href="style.css"。
235
- - 优先展示核心功能流程,减少装饰性元素,重点关注信息架构和交互逻辑
236
- - 使用占位符(vtype="placeholder")来表示内容区域,使用注释说明(vtype="annotation")来解释功能逻辑
237
- - 原型设计的边框线条可以使用虚线或较粗的实线来表示不同的功能区域
238
- - 文字内容应该具有实际意义,能够说明功能用途,而不是lorem ipsum等占位文字
239
-
240
- ## 简单ts交互逻辑规则
241
- - 如果需要交互逻辑,比如跳转页面、弹框、点击事件、输入框等,请先经过optimize_code_prompt的mcp服务处理后的提示词规则,再进行交互逻辑的编写。
242
- - 绝不涉及具体业务逻辑,因为这只是一个需求评审时用于展示用的界面,不需要具体业务数据和逻辑。
243
-
244
- ## 写入文件规则
245
- - 将生成的需求文档内容写到工程根目录下面doc文件夹里面的'需求文档.md'文件里面,其他任何注释、解释、澄清、总结等文字不得写入该文件。
246
- - 将生成的一个或多个html+css静态页面代码写入工程根目录下面doc文件夹里面的'html'文件夹里面,只将html+css的代码写入对应的页面文件,其他任何注释、解释、澄清、总结等文字不得写入该文件。
247
- - 将生成的一个或多个ts代码写入工程根目录下面doc文件夹里面的'ts'文件夹里面,只将ts的代码写入对应的ts文件,其他任何注释、解释、澄清、总结等文字不得写入该文件。
107
+ - 将生成的html+css代码写入工程根目录下面的.bytefun文件夹里面的'tempUI.html'文件里面,只将html+css的代码写入对应的页面文件,其他任何注释、解释、澄清、总结等文字不得写入该文件。
248
108
  `;
249
109
  /**
250
110
  * 优化代码开发提示词
@@ -263,18 +123,8 @@ ${userInput}`;
263
123
  async optimizeUIDesignPrompt(userInput) {
264
124
  return `${this.uiDesignPromptTemplate}
265
125
 
266
- # 用户需求描述
267
- ${userInput}`;
268
- }
269
- /**
270
- * 优化原型设计提示词
271
- * 注意:此方法专门处理原型设计相关需求,不会自动处理UI设计或代码开发内容
272
- */
273
- async optimizePrototypeDesignPrompt(userInput) {
274
- return `${this.prototypeDesignPromptTemplate}
275
-
276
126
  # 用户需求描述
277
127
  ${userInput}`;
278
128
  }
279
129
  }
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUNULGtCQUFrQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwRnRDLENBQUM7SUFFZ0Isc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNkIzQyxDQUFDO0lBRWlCLDZCQUE2QixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0ErR2xELENBQUM7SUFFQTs7O09BR0c7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBaUI7UUFDeEMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0I7OztFQUduQyxTQUFTLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsc0JBQXNCLENBQUMsU0FBaUI7UUFDNUMsT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0I7OztFQUd2QyxTQUFTLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsNkJBQTZCLENBQUMsU0FBaUI7UUFDbkQsT0FBTyxHQUFHLElBQUksQ0FBQyw2QkFBNkI7OztFQUc5QyxTQUFTLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnl0ZUZ1biBBSSBNQ1Ag5o+Q56S66K+N5LyY5YyW5ZmoXG4gKiBcbiAqIOmHjeimgeivtOaYju+8mlxuICogLSDmnKznsbvmj5DkvpvkuInkuKrni6znq4vnmoTkvJjljJblt6XlhbfvvIzmr4/kuKrlt6XlhbflpITnkIbkuI3lkIznsbvlnovnmoTpnIDmsYJcbiAqIC0g5q+P5qyh5Y+q6IO96LCD55So5LiA5Liq5bel5YW35pa55rOV77yM5LiN5Lya6Ieq5Yqo57uE5ZCI5oiW6YCJ5oupXG4gKiAtIOWmguaenOeUqOaIt+mcgOaxgua2ieWPiuWkmuS4quaWuemdou+8jOmcgOimgeWIhuWIq+iwg+eUqOWkmuS4quW3peWFt1xuICogXG4gKiDkvb/nlKjmlrnlvI/vvJpcbiAqIDEuIOWOn+Wei+iuvuiuoemcgOaxgiDihpIg6LCD55SoIG9wdGltaXplUHJvdG90eXBlRGVzaWduUHJvbXB0KClcbiAqIDIuIFVJ6K6+6K6h6ZyA5rGCIOKGkiDosIPnlKggb3B0aW1pemVVSURlc2lnblByb21wdCgpICBcbiAqIDMuIOS7o+eggeW8gOWPkemcgOaxgiDihpIg6LCD55SoIG9wdGltaXplQ29kZVByb21wdCgpXG4gKiA0LiDlpI3lkIjpnIDmsYIg4oaSIOS+neasoeiwg+eUqOWkmuS4quebuOWFs+W3peWFt1xuICovXG5leHBvcnQgY2xhc3MgUHJvbXB0T3B0aW1pemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK90eXBlc2NyaXB05Luj56CB5LiT5a6277yM5qC55o2uJ+inhOWImSfjgIEn5L6L5a2QJ+WSjOeUqOaIt+i+k+WFpeeahOmcgOaxguaPj+i/sO+8jOWujOaIkOS7o+eggeW8gOWPkVxuXG4jIyDpobnnm67moYbmnrbmj4/ov7Bcbi0g5pW05Liq6aG555uu5qGG5p625YiG5Li656iL5bqP5YWl5Y+jQXBwbGljYXRpb24udHPjgIHnqIvluo/lhajlsYDpnZnmgIHlj5jph49TdGF0aWNEYXRhLnRz44CB5omA5pyJ6aG16Z2icGFnZeaWh+S7tuWkueOAgVVJ57uE5Lu25bqTdWlsaWLmlofku7blpLnjgIHlkI7nq6/mjqXlj6NBbGxCYWNrRW5kQXBpLnRz44CB5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPjgIJcbi0g6L+Z5piv5LiA5Liq5paw5Z6L5byA5Y+R5qGG5p6277yMVUnnlYzpnaLlt7Lnu4/kvb/nlKjlj6/op4bljJblt6XlhbfnlJ/miJDkuobmiYDmnInnmoTpnZnmgIHnmoRVSemhtemdouS6hu+8jOeEtuWQjuS9oOmcgOimgeS9v+eUqHRz5Luj56CB5byA5Y+R5Lia5Yqh6YC76L6R5LiOVUnkuqTkupLpgLvovpHvvIzlm6DmraTnvJblhpl0c+S7o+eggeWPqumcgOimgeaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+R44CCXG5cbiMjIOinhOWIme+8mlxuMeOAgVVJ55WM6Z2i5bey57uP5byA5Y+R5a6M5q+V77yM5LiN6ZyA6KaB5aKe5Yig5pS55Lu75L2V6Z2Z5oCBVUnnlYzpnaLjgIJcbjLjgIHkvaDlj6rpnIDopoHmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dkvb/nlKh0c+S7o+eggeWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+RXG4z44CB6K+35Lil5qC85oyJ54Wn5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPvvIzkuI3opoHmlrDlop7jgIHliKDpmaTmiJbkv67mlLnku7vkvZVBbGxGdW5jdGlvbuaOpeWPo+WjsOaYju+8m+S5n+S4jeimgeiwg+eUqOWFtuS7luacquWcqEFsbEZ1bmN0aW9u5Lit5Ye6546w55qE5Ye95pWw5oiW5qih5Z2XXG4044CB5omA5pyJ5ZCO56uvQVBJ6LCD55So5b+F6aG75L2/55SoQWxsQmFja0VuZEFwaeexu+S4reWumuS5ieeahOaWueazle+8jOS4jeWFgeiuuOS9v+eUqOacquWcqEFsbEJhY2tFbmRBcGnkuK3lrprkuYnnmoTlkI7nq69BUEnjgIJcbjXjgIFVSeeVjOmdouOAgVVJ6buY6K6k5pWw5o2u44CBVUnmoLflvI/lt7Lnu4/lhajpg6jnlJ/miJDlpb3nmoTkuobvvIzkvaDkuI3og73lnKhpbml0Vmlld+aWueazlemHjOmdouaTheiHqua3u+WKoOS4gOS6m3ZpZXfnmoRVSeagt+W8j+aIluWxnuaAp+etieWIneWni+WMlu+8jOmZpOmdnueUqOaIt+mcgOaxguaPj+i/sOaYjuehruaMh+WHuumcgOimgeabtOaUueWTquS6m+agt+W8j+aIluWxnuaAp+OAglxuNuOAgeWtl+espuS4suimgeS7peWNleW8leWPt+adpeWGme+8jOWmgu+8mifmiJHnmoQn44CCXG4344CB5Lu75L2V5pa55rOV5Ye95pWw5a6a5LmJ77yM5LiN5b6X5L2/55SoYXN5bmPlkoxQcm9taXNl77yM5omA5pyJ5byC5q2l5pON5L2c5b+F6aG75L2/55So566t5aS05Ye95pWw44CCXG4444CB5omA5pyJUGFnZeeahOWtkOexu++8jOmDveWFgeiuuOa3u+WKoOaehOmAoOWHveaVsOWSjOaehOmAoOWHveaVsOeahOWPguaVsO+8jOi/meS6m+WPguaVsOWwseeUqOadpemhtemdoui3s+i9rOaXtumhtemdouS5i+mXtOS8oOmAkuaVsOaNruS9v+eUqO+8jOavlOWmgu+8muWVhuWTgeWIl+ihqOmhtVByb2plY3RMaXN0UGFnZei3s+WIsOWVhuWTgeivpuaDhemhtVByb2plY3REZXRhaWxQYWdl77yM6YKj5LmIUHJvamVjdExpc3RQYWdl5bqU6K+l6KaB5Lyg57uZUHJvamVjdERldGFpbFBhZ2XkuIDkuKrlj4LmlbDvvJpwcm9kdWN0SUTjgILmiYDku6XvvIxQcm9qZWN0RGV0YWlsUGFnZeeahOmhtemdouWPguaVsOWjsOaYjuWSjOaehOmAoOWHveaVsOW6lOivpeaYr+i/meagt+WGme+8mnByaXZhdGUgcHJvZHVjdElEOiBzdHJpbmdcblxuXHRjb25zdHJ1Y3Rvcihwcm9kdWN0SUQ6IHN0cmluZykge1xuXHRcdHN1cGVyKClcblx0XHR0aGlzLnByb2R1Y3RJRCA9IHByb2R1Y3RJRFxuXHR944CCXG4544CBVmlld+ebuOWFs+WPmOmHj+W/hemhu+WcqHh4eFBhZ2XnsbvlvIDlp4vml7blo7DmmI7vvIzlv4Xpobvlo7DmmI7lhbfkvZPnmoRWaWV357G75Z6L5aaC77yaSW5wdXRWaWV377yM6ICM5LiN5piv55u05o6l5aOw5piO57G75Z6L5Li6QmFzZVZpZXfvvIzmiYDmnIlWaWV35b+F6aG7ZmluZFZpZXdCeUlE5Yid5aeL5YyW77yM5aaC77yac2F2ZUJ1dHRvbjogQnV0dG9uVmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlQnV0dG9uJykgYXMgQnV0dG9uVmlld+OAgui/memHjOeahGZpbmRWaWV3QnlJROWFtuS4rWlk5Y+C5pWw5piv5Zyo6K+l6aG16Z2i55qEaHRtbOaWh+S7tumHjOmdouiOt+WPluWIsOeahGlk5YC844CCXG4xMOOAgeWTjeW6lOW8j+W8leeUqHJlZueahOS9v+eUqO+8muexu+Wei3Z1ZTPnmoRyZWbvvIzlj6/ku6XlsIbkuIDkuKrlgLzlj5jmiJDlk43lupTlvI/nmoTvvIzku47ogIzlnKjor6XlgLzlj5HnlJ/lj5jljJbml7bvvIzoh6rliqjop6blj5Hnm7jlhbPnlYzpnaLnmoTmm7TmlrDjgIJcbjEx44CBY29tcHV0ZWTnmoTkvb/nlKjvvJrnsbvlnot2dWUz55qEY29tcHV0ZWTvvIzlvZPkvaDpnIDopoHmoLnmja7kuIDkuKrmiJblpJrkuKrlk43lupTlvI/mupAocmVmKeiuoeeul+WHuuS4gOS4quaWsOeahOWAvOaXtu+8jOWwseeUqCBjb21wdXRlZFxuMTLjgIHlpoLmnpzmmK/lpJrkuKrpobXpnaLlhbHnlKjnmoTmlbDmja7lj5jph4/vvIzlj6/ku6XogIPomZHlo7DmmI7kuLrlhajlsYDpnZnmgIHlj5jph4/jgIJcbjEz44CB5YWo5bGA6Z2Z5oCB5Y+Y6YeP5Zyo5YWz6ZetQVBQ5oiW6ICF572R6aG15ZCO5Lya5riF55CG5o6J55qE77yM5omA5Lul5L2g6KaB5oCd6ICD5riF5qWa5ZOq5Lqb5pWw5o2u5Y+Y6YeP6ZyA6KaB5oyB5LmF5YyW5YKo5a2Y77yM5ZOq5Lqb5piv5YWo5bGA6Z2Z5oCB5Y+Y6YeP77yM5oyB5LmF5YyW5o6l5Y+j77yac2F2ZURhdGFiYXNlWHh45ZKMZ2V0RGF0YWJhc2VEYXRhWHh477yM5q+U5aaC5piv5ZCm5bey57uP5by55Ye66L+H5bm/5ZGK5by55qGG77yM6L+Z5Liq5bqU6K+l5oyB5LmF5YyW5YKo5a2Y44CCXG4xNOOAgeaJgOacieeahOe9kee7nOaLpuaIqueahOWFqOWxgOe7n+S4gOWkhOeQhumcgOimgeWcqEFwcGxpY2F0aW9u5Lit55qEb25HbG9iYWxOZXRTdWNjZXNzSW50ZXJjZXB0KOiBlOe9keaIkOWKn+WQju+8jOWQjuerr+S4muWKoeato+ehruS4jumUmeivr+mDveS8muWbnuiwg+WIsOi/memHjO+8jOaJgOS7peWcqOi/memHjOWPr+e7n+S4gOWkhOeQhuS4muWKoemUmeivr+eggSnmiJZvbkdsb2JhbE5ldEZhaWxJbnRlcmNlcHQo572R57uc5LiN6YCa77yM6L+e5o6l5aSx6LSl5oOF5Ya15Lya5Zue6LCD5Yiw6L+Z6YeMKemHjOmdouWkhOeQhuOAglxuMTXjgIHpobXpnaLot7Povazkvb/nlKhBbGxGdW5jdGlvbi5uYXZpZ2F0ZVRv5a6e546w77yMbmF2aWdhdGVUb+S8oOWFpVBhZ2XnmoTlrZDnsbvlr7nosaHvvIzlpoLvvJpBbGxGdW5jdGlvbi5uYXZpZ2F0ZVRvKG5ldyBQcm9kdWN0UGFnZSh0aGlzLnByb2R1Y3RJRCkp44CCXG4xNuOAgemhtemdouWGheeahOe9kee7nOivt+axguS4muWKoeWkhOeQhuS4jeW+l+WGmeWcqEFwcGxpY2F0aW9u55qEb25HbG9iYWxOZXRTdWNjZXNzSW50ZXJjZXB06YeM6Z2i44CCXG4xN+OAgeWtl+espuS4suS4jeW+l+ebtOaOpei/m+ihjGJvb2xlYW7ov5DnrpfnhLblkI7otYvlgLznu5lib29sZWFu57G75Z6L55qE5Y+Y6YeP77yM6ZyA6KaB5Zyo5a2X56ym5Liy5YmN6Z2i5re75Yqg5Lik5Liq6Z2e6L+Q566X77yaISHjgILmr5TlpoLmraPnoa7nmoTlhpnms5XvvJpjb25zdCBpc0FkZCA9ICEhdGhpcy5pbnB1dFZpZXcudGV4dCAmJiBpc05ld1xuMTjjgIHlpoLnlKjmiLfmj4/ov7DmsqHmnInmmI7noa7or7TmmI7pnIDopoF0b2FzdOaPkOekuu+8jOS9oOS4jeW+l+aTheiHqui/m+ihjFRvYXN044CCXG4xOeOAgeW7tuaXtuaJp+ihjEFsbEZ1bmN0aW9uLnNldFRpbWVvdXTns7vnu5/kvJroh6rliqjmuIXnkIZ0aW1lb3V077yM5Luj56CB5LiK57ud5a+55LiN6IO96L+b6KGMY2xlYVRpbWVvdXTnrYnnsbvkvLzmk43kvZzvvIzlm6DmraRzZXRUaW1lb3V05Lmf5LiN6ZyA6KaB5aOw5piO5Y+Y6YeP5Y675o6l5pS2c2V0VGltZW91dOi/lOWbnueahOW8leeUqOOAglxuMjDjgIHmiYDmnInku6PnoIHkuI3lvpfkvb/nlKhpbnRlcmZhY2XvvIzmlbDmja7lrp7kvZNlbnRpdHnvvIzlv4Xpobvkvb/nlKhjbGFzc+WumuS5ie+8jOS4jeW+l+S9v+eUqGludGVyZmFjZe+8jOS9v+eUqOS5i+WJjemcgOimgW5ld+WunuS+i+WMllxuMjHjgIHmr4/kuIDkuKrpobXpnaIo5aaCbG9naW5QYWdlKeW7uuiuruWcqHBhZ2Xmlofku7blpLnkuIvpnaLliJvlu7rkuIDkuKrpobXpnaLmlofku7blpLko5aaCbG9naW4p77yM54S25ZCO6aG16Z2i55qEdHPmlofku7Yo5aaCbG9naW5QYWdlLnRzKeWIm+W7uuWcqOmhtemdouaWh+S7tuWkueS4i+mdou+8jOmhtemdouaWh+S7tuWkueS4i+i/mOmcgOWIm+W7uuS4gOS4qumhtemdouaVsOaNrnRz5paH5Lu2KOWmgmxvZ2luUGFnZURhdGEudHMp77yM6L+Z5qC35aaCbG9naW5QYWdl6LSf6LSj5Lia5Yqh6YC76L6R5ZKM5Lqk5LqS6YC76L6R77yM5aaCbG9naW5QYWdlRGF0Yei0n+i0o+aVsOaNruWjsOaYjuWumuS5ieOAgeWIneWni+WMluS4jueuoeeQhuetieOAglxuMjLjgIHpobXpnaLmlofku7blpLnkuIvpnaLnmoTpobXpnaJodG1sKOWmgmxvZ2luUGFnZVZpZXcuaHRtbCnvvIzov5nmmK/lj6/op4bljJblt7Lnu4/nlJ/miJDnmoRVSeeVjOmdoueahOiKgueCueaYoOWwhO+8jOivpeaWh+S7tuWPquaYr+eUqOS6juS9oOabtOWKoOeQhuino+ivpemhtemdoueahFVJ57uT5p6E5ZKM57uE5Lu25ZG95ZCN6ICM6K6+56uL55qE77yM6K+l5paH5Lu25LiN5Y+C5LiO57yW6K+R77yM5LuF5LuF5piv5L+h5oGv5paH5qGj5o+Q56S65L2c55So77yM5Zug5q2k5LiN5Y+v5Lul5L+u5pS56L+Z5LiqaHRtbOaWh+S7tuOAglxuMjPjgIHlj6rnu5nor6XpobXpnaLkvb/nlKjnmoRlbnRpdHnpnIDopoHlu7rnq4vlnKjor6XpobXpnaLmlofku7blpLnkuIvpnaLnmoRlbnRpdHnmlofku7blpLnkuIvpnaLjgIJcbjI044CBbGli5paH5Lu25aS55piv5omA5pyJVUnnu4Tku7blkozog73lipvmlrnms5XnmoTlrprkuYnlo7DmmI7vvIzlupXlsYLmoYbmnrblt7Lms6jlhaXlrp7njrDlhbfkvZPpgLvovpHvvIzlm6DmraTkvaDkuI3pnIDopoHkuZ/kuI3lhYHorrjlop7liKDmlLlsaWLmlofku7blpLnph4zpnaLnmoTku6PnoIHjgIJcblxuIyMg5L6L5a2Q77yaXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZSBleHRlbmRzIFBhZ2Uge1xuICAgIC8vIOaVsOaNruWvueixoeWunuS+i+WjsOaYjlxuICAgIHByaXZhdGUgaG9tZVBhZ2VEYXRhOiBIb21lUGFnZURhdGEgPSBuZXcgSG9tZVBhZ2VEYXRhKClcbiAgICAvLyDop4blm77lr7nosaHlrp7kvovlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVCdXR0b246IEJ1dHRvblZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnc2F2ZUJ1dHRvbicpIGFzIEJ1dHRvblZpZXdcbiAgICBwcml2YXRlIHRpdGxlVGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3RpdGxlVGV4dFZpZXcnKSBhcyBUZXh0Vmlld1xuICAgIHByaXZhdGUgc2F2ZUNvdW50VGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVDb3VudFRleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFRleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdhbGxTYXZlQ291bnRUZXh0VmlldycpIGFzIFRleHRWaWV3XG4gICAgcHJpdmF0ZSBzYXZlVGlwc1RleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlVGlwc1RleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICAvLyByZWbmlbDmja7lr7nosaHlvJXnlKjlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KHRoaXMuaG9tZVBhZ2VEYXRhLnNhdmVDb3VudClcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KDApXG4gICAgLy8g5pmu6YCa5Y+Y6YeP5aOw5piOXG4gICAgcHJpdmF0ZSBzYXZlVGlwcyA9ICcnXG5cbiAgICBwcm90ZWN0ZWQgb25QYWdlQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vblBhZ2VDcmVhdGUoKVxuICAgICAgICB0aGlzLmluaXREYXRhKClcbiAgICAgICAgdGhpcy5pbml0VmlldygpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlVGlwcyA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlID4gNSA/ICfkv53lrZjmiJDlip8nIDogJ+S/neWtmOWksei0pSdcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRSZWYgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgb3RoZXJDb3VudCA9IDJcbiAgICAgICAgICAgIG90aGVyQ291bnQgKz0gdGhpcy5zYXZlQ291bnRSZWYudmFsdWVcbiAgICAgICAgICAgIGlmIChvdGhlckNvdW50ID4gNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyA1XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyAxMFxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2F2ZUNvdW50VGV4dFZpZXcudGV4dCA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlICsgJ+S4qidcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRUZXh0Vmlldy50ZXh0ID0gdGhpcy5hbGxTYXZlQ291bnRSZWYudmFsdWUgKyAn5LiqJ1xuICAgICAgICB0aGlzLnNhdmVCdXR0b24ub25DbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlKytcbiAgICAgICAgICAgIHRoaXMuaG9tZVBhZ2VEYXRhLnRpdGxlID0gJ0hvbWUgUGFnZSdcbiAgICAgICAgICAgIHRoaXMudGl0bGVUZXh0Vmlldy50ZXh0ID0gdGhpcy5ob21lUGFnZURhdGEudGl0bGVcbiAgICAgICAgICAgIHRoaXMuc2F2ZVRpcHNUZXh0Vmlldy50ZXh0ID0gdGhpcy5zYXZlVGlwc1xuICAgICAgICAgICAgQWxsRnVuY3Rpb24uc2F2ZURhdGFiYXNlTnVtYmVyKCdzYXZlQ291bnQnLCB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZSlcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZURhdGEge1xuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJydcbiAgICBwdWJsaWMgc2F2ZUNvdW50OiBudW1iZXIgPSAwXG4gICAgcHVibGljIHVzZXJJbmZvOiBCb29rSW5mbyA9IG5ldyBCb29rSW5mbygpXG59YDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK/kuJPkuJrnmoRVSeiuvuiuoeW4iOWSjOWJjeerr+W8gOWPkeW3peeoi+W4iO+8jOeOsOWcqOmcgOimgeagueaNrifnlJ/miJDop4TliJkn5ZKMJ+mcgOaxguaPj+i/sCfmnaXnlJ/miJDpnZnmgIFodG1s5Luj56CB77yM5bm25oyJ54WnJ+WGmeWFpeaWh+S7tuinhOWImSflsIbnlJ/miJBodG1s5YaZ5YiwaHRtbOaWh+S7tuOAglxuXG4jIyDnlJ/miJDop4TliJlcbi0g5LiA5Liq6aG16Z2i5a+55bqU5LiA5LiqaHRtbCtjc3Pku6PnoIHmlofku7bvvIzlpoLmnpzpnIDopoHlpJrkuKrpobXpnaLnmoTvvIzpgqPlsLHliJvlu7rlr7nlupTnmoRodG1sK2Nzc+S7o+eggeaWh+S7tuOAglxuLSDlv4Xpobvlj6rog73kvb/nlKjpnZnmgIFodG1sK2Nzc+eahOWGmeazleWujOaIkOmdmeaAgWh0bWwrY3Nz572R6aG177yM6K+l572R6aG15Luj56CB5peganPnmoTku6PnoIHvvIzml6Bqc+S4muWKoeS4juS6pOS6kumAu+i+ke+8jOe7neWvueS4jeiDveS9v+eUqHZ1ZeOAgVJlYWN044CBUmVhY3QgTmF0aXZl44CBamF2YXNjcmlwdOetieS7o+eggeWunueOsOOAglxuLSDlv4XpobvopoHku6XmiYvmnLrlsY/luZXliIbovqjnjofvvJozNzYqNzAw44CC55qE6KeE5YiZ5p2l6K6+6K6h44CCXG4tIOiuvuiuoeagt+W8j+inhOiMg+W/hemhu+mBteW+qifmoLflvI9VSeinhOiMgyfvvIzlpoLmnpznlKjmiLfmsqHmnInmjIflrpon5qC35byPVUnop4TojIMn77yM6YKj5bCx5b+F6aG75Y+C6ICD5biC6Z2i5LiK5rWB6KGM55qE5LiT5Lia55qEQVBQL+e9keermeeahOebuOWFs+mhtemdoueahOW4g+WxgOOAgeagt+W8j+OAgemjjuagvOiuvuiuoeOAglxuLSBodG1s55qEYm9keeiKgueCueW/hemhu+WGmeatu3dpZHRoPTM3Nu+8jCBoZWlnaHQ9NzAwXG4tIOavj+S4gOS4quiKgueCueW/hemhu+a3u+WKoOS4gOS4que7hOS7tuexu+Wei+WxnuaAp++8mnZ0eXBl44CC5q+U5aaC5paH5a2XdnR5cGU9XCJ0ZXh0XCLjgIHmjInpkq52dHlwZT1cImJ1dHRvblwi44CB5paH5a2X5oyJ6ZKudnR5cGU9XCJ0ZXh0QnV0dG9uXCLjgIHovpPlhaXmoYZ2dHlwZT1cImlucHV0XCLjgIHlm77moId2dHlwZT1cImljb25cIuOAgeWbvueJh3Z0eXBlPVwiaW1hZ2VcIuOAgeefqeW9onZ0eXBlPVwicmVjdFwi44CB5ZyG5b2idnR5cGU9XCJjaXJjbGVcIuOAgee6v+adoXZ0eXBlPVwibGluZVwi44CB5Z+656GA5a655ZmodnR5cGU9XCJjb250YWluZXJcIuOAgeWNoeeJh+WuueWZqHZ0eXBlPVwiY2FyZFwi44CBZ3JpZOWuueWZqHZ0eXBlPVwiZ3JpZFwi44CB5Y2V6YCJdnR5cGU9XCJyYWRpb1wi44CB5aSa6YCJdnR5cGU9XCJjaGVja0JveFwi44CB56uW5ZCR5YiX6KGodnR5cGU9XCJ2ZXJ0aWNhbExpc3RWaWV3XCLjgIHmqKrlkJHliJfooah2dHlwZT1cImhvcml6b250YWxMaXN0Vmlld1wi44CB6L2u5pKtdnR5cGU9XCJ2aWV3UGFnZXJcIuOAgei9ruaSreaMh+ekuuWZqOWuueWZqHZ0eXBlPVwiSW5kaWNhdG9yQ29udGFpbmVyXCLjgIFUYWLpgInpobnljaHlrrnlmah2dHlwZT1cInRhYkNvbnRhaW5lclwi44CBVGFi6YCJ6aG55Y2h6I+c5Y2V5qCPdnR5cGU9XCJ0YWJNZW51QmFyXCLjgIHlupXpg6hUQULlr7zoiKrmoI92dHlwZT1cImJvdHRvbVRhYk5hdmlnYXRlQmFyXCLjgIHlr7nor53moYZ2dHlwZT1cImRpYWxvZ1wi44CBVG9hc3Tmj5DnpLp2dHlwZT1cInRvYXN0XCLjgIHkuIvmi4noj5zljZV2dHlwZT1cImRyb3BEb3duTWVudVwi44CB5L6n5ruR6Z2i5p2/dnR5cGU9XCJzaWRlU2xpZGVQYW5lbFwi562J5Lul5q2k57G75o6o44CCXG4tIOmZpOS6hnZ0eXBl5Li6J3RleHQn55qE5omA5pyJ6IqC54K55b+F6aG75re75Yqg5LiA5Liq6Iux5paHaWTlsZ7mgKflkozkuK3mloflkI3lrZduYW1l5bGe5oCn44CC5L2g6ZyA6KaB5qC55o2u5Yqf6IO96YC76L6R5ZKM57uE5Lu257G75Z6L5p2l5ZG95ZCNaWTlsZ7mgKflkoxuYW1l5bGe5oCn77yM5o+P6L+w6K+l5YWD57Sg5Zyo5Lqn5ZOB5Lit55qE5L2c55So77yM5ZG95ZCN5L2/55So566A5rSB55qE6aOO5qC844CCXG4tIOavj+S4gOS4quiKgueCueW/hemhu+a3u+WKoOi/meWbm+S4quaWsOWxnuaAp++8mngx44CBeTHjgIF3MeOAgWgx44CCeDHlkox5MeaYr+ebuOWvueS6juWxj+W5leW3puS4iuinkueahOWDj+e0oOe7neWvueWAvO+8jHcx5ZKMaDHmmK/lg4/ntKDnu53lr7nlgLzjgILov5nlm5vkuKrlsZ7mgKflj6rotbfliLDkv6Hmga/mj5DnpLrkvZznlKjvvIzkuI3kvJrkvZznlKjkuo7luIPlsYDlkozmmL7npLrvvIzkvYbkv6Hmga/mj5DnpLrpnZ7luLjph43opoHvvIzlm6DmraTkvaDlv4XpobvopoHnu5nlh7rlh4bnoa7nmoR4MeOAgXkx44CBdzHjgIFoMeeahOWDj+e0oOe7neWvueWAvOOAglxuLSDlpoLmnpzmmK/nq5blkJHliJfooajjgIHmqKrlkJHliJfooajjgIHova7mkq3jgIF0YWLpgInpobnljaHnmoTlrrnlmajnu4Tku7bvvIzph4zpnaLnmoTljaHniYdpdGVt5qC35byP5aaC5p6c5LiA5qC355qE6K+d77yM5Y+q6ZyA6KaB5YiX5Ye65LiA5LiqaXRlbeeahGRpduWNs+WPr++8jOexu+S8vGFuZHJvaWTnmoRSZWN5Y2xlclZpZXfnmoTljaHniYdWaWV3SG9sZGVy5aSN55So5py65Yi277yM5Y+q6ZyA6KaB5aOw5piO5LiA5Liq5qC35byP55qE5Y2h54mHVmlld0hvbGRlcuOAglxuLSDmiYDmnInlhbPkuo7lg4/ntKDlpKflsI/nmoTpg73lv4Xpobvkvb/nlKhweO+8jOWmgu+8mjE1cHjjgILkuI3lvpfkvb/nlKhlbeOAgeeZvuWIhuavlCXnrYnnrYnlhbbku5bnmoTjgIJcbi0gaHRtbOeahOWGheWuuemZpOmdnuacieimgeaxguS9v+eUqOmdnuS4reaWh++8jOm7mOiupOmDveS9v+eUqOS4reaWh1xuLSDoioLngrnnmoRjc3PmoLflvI/kuI3lvpfkvb/nlKhiZWZvcmXjgIFhZnRlcuaWueW8j++8jOWmguS4jeWPr+S7pei/meagt+WGme+8mi50ZXh0OmJlZm9yZSwgLnRleHQ6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlNWU1ZTU7XG4gICAgfVxuLSDlpoLmnpzmmK/lm77niYdpbWFnZeiKgueCue+8jOW/hemhu+S9v+eUqGltZ+agh+etvu+8jOe7neWvueS4jeiDveS9v+eUqGRpduagh+etvuOAglxuLSDlpoLmnpzmmK/lm77moIdpY29u6IqC54K577yM57ud5a+55LiN6IO95L2/55SoZGl25qCH562+77yM5Zu+5qCH5L2/55Soc3Zn57uY5Yi244CCXG4tIOWmguaenOiKgueCueaYr2FjdGl2ZeOAgXNlbGVjdGVk44CBZGlzYWJsZWTnirbmgIHvvIzpnIDopoHmt7vliqDlsZ7mgKfvvJpzdGF0ZT1cImFjdGl2ZVwi5oiWc3RhdGU9XCJzZWxlY3RlZFwi5oiWc3RhdGU9XCJkaXNhYmxlZFwiXG4tIOazqOaEj+iDjOaZr+iJsuWSjOaWh+Wtl+iJsuWGsueqgemXrumimO+8jOavlOWmgua1heiDjOaZr+iJsivmtYXoibLmloflrZfoibLkvJrlr7zoh7TmloflrZfnnIvkuI3muIXvvIzlkIzmoLfmt7HoibLkuZ/mmK/lpoLmraRcbi0gY3Nz55qE5Luj56CB5b+F6aG75YaF6IGU5YaZ5Ye65p2l77yM57ud5a+55LiN6IO95L2/55So5aSW6IGU77yM5aaC5LiN6IO95L2/55So77yaaHJlZj1cInN0eWxlLmNzc1wi44CCXG5cbiMjIOWGmeWFpeaWh+S7tuinhOWImVxuLSDlsIbnlJ/miJDnmoRodG1sK2Nzc+S7o+eggeWGmeWFpeW3peeoi+agueebruW9leS4i+mdoueahC5ieXRlZnVu5paH5Lu25aS56YeM6Z2i77yM5Y+q5bCGaHRtbCtjc3PnmoTku6PnoIHlhpnlhaXlr7nlupTnmoTpobXpnaLmlofku7bvvIzlhbbku5bku7vkvZXms6jph4rjgIHop6Pph4rjgIHmvoTmuIXjgIHmgLvnu5PnrYnmloflrZfkuI3lvpflhpnlhaXor6Xmlofku7bjgIJcbmA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm90b3R5cGVEZXNpZ25Qcm9tcHRUZW1wbGF0ZSA9IGAjIOS9oOaYr+S4k+S4mueahOS6p+WTgeWOn+Wei+iuvuiuoeW4iOWSjOeUqOaIt+S9k+mqjOiuvuiuoeW4iO+8jOeOsOWcqOmcgOimgeagueaNrifpnIDmsYLmlofmoaPnlJ/miJDop4TliJkn44CBJ+mdmeaAgWh0bWwrY3Nz55Sf5oiQ6KeE5YiZJ+OAgSfnroDljZV0c+S6pOS6kumAu+i+keinhOWImSflkown6ZyA5rGC5o+P6L+wJ+adpeeUn+aIkDHkuKrkuqflk4HpnIDmsYLmlofmoaPjgIEx5Liq5oiW5aSa5Liq5Lqn5ZOB5Y6f5Z6LaHRtbCtjc3PpnZnmgIHpobXpnaLku6PnoIHvvIzlubbmjInnhacn5YaZ5YWl5paH5Lu26KeE5YiZJ+WwhueUn+aIkOeahOmcgOaxguaWh+aho+WSjGh0bWzlhpnliLDlr7nlupTmlofku7bjgIJcblxuIyMg6ZyA5rGC5paH5qGj55Sf5oiQ6KeE5YiZXG4jIyMg6ZiF6K+75bm255CG6Kej55So5oi35o+P6L+wXG4tIOWPqumcgOimgeeUn+aIkOS4muWKoeWKn+iDveaAp+mcgOaxguexu+aWh+aho+WNs+WPr1xuLSDpnIDmsYLmlofmoaPpnIDopoHnlJ/miJDnu7TmiqTlnKjmoLnnm67lvZXnmoQn6ZyA5rGC5paH5qGjLm1kJ+aWh+S7tumHjOmdolxuLSDpppblhYjvvIzor7fku5Tnu4bpmIXor7vnlKjmiLfnu5nlh7rnmoTmj4/ov7DvvIzliKTmlq3mj4/ov7DmmK/lkKblrozmlbTjgILlpoLmnpzkv6Hmga/kuI3otrPvvIzlupTkuLvliqjmj5Dlh7roh7PlsJEgMyDkuKrlhbPplK7mgKfmvoTmuIXpl67popjvvIzlvJXlr7znlKjmiLfooaXlhYXjgIJcblxuIyMjIOaWh+aho+agvOW8j+S4jui+k+WHuuinhOiMg1xuLSDmlofmoaPph4fnlKggTWFya2Rvd24g5qC85byP77yM56ug6IqC5bGC57qn5riF5pmw77yI5LiA57qn5qCH6aKY44CB5LqM57qn5qCH6aKY44CB5LiJ57qn5qCH6aKY77yJ44CCXG4tIOWGheWuueimgeS4k+S4muOAgeeugOa0geOAgeadoeeQhua4heaZsO+8jOmAgueUqOS6juWboumYn+WGheWIhuS6q+S4juWQjue7rei3n+i/m+OAglxuLSDmr4/kuIDnq6Dpg73opoHmnInnroDopoHliY3oqIDvvIzngrnmmI7mnKznq6Dnm67nmoTjgIJcbi0g5b+F6KaB5pe26YWN5aSH6KGo5qC844CB5rWB56iL5Zu+56S65oSP77yI5Lul5paH5a2X5b2i5byP5o+P6L+w5Y2z5Y+v77yJ44CCXG5cbiMjIyDpnIDmsYLmlofmoaPnu5PmnoRcbiMjIyMg5LiA44CB6aG555uu5qaC6L+wXG4+ICoq55uu55qEKirvvJror7TmmI7or6XmlofmoaPnmoTnvJblhpnog4zmma/jgIHnm67moIflkozkvZznlKjjgIJcblxuMS4gKirpobnnm67lkI3np7AqKlxuMi4gKirpobnnm67og4zmma/kuI7njrDnirYqKiAgXG4gICAtIOihjOS4muiDjOaZr+OAgeW4guWcuueXm+eCuSAgXG4gICAtIOernuWTgeWIhuaekO+8iOWmguaenOacieeugOimgeS/oeaBr+WPr+WIl+WHuu+8iSAgXG4gICAtIOeUqOaIt+eXm+eCueS4juacuuS8mueCuSAgXG4zLiAqKumhueebruebruaghyoq77yIU01BUlQg5Y6f5YiZ77ya5YW35L2T44CB5Y+v6YeP5YyW44CB5Y+v5a6e546w44CB5YWz6IGU5oCn44CB5pe26ZmQ5oCn77yJXG5cbiMjIyMg5LqM44CB55So5oi35Y+K5Zy65pmv5YiG5p6QXG4+ICoq55uu55qEKirvvJrluK7liqnlm6LpmJ/nkIbop6Pnm67moIfnlKjmiLflj4rlhbbkvb/nlKjlnLrmma/jgIJcblxuMS4gKirnm67moIfnlKjmiLfnlLvlg48qKiAgXG4gICAtIOeUqOaIt+e+pOS9k+WIkuWIhu+8iOWmguW5tOm+hOOAgeaAp+WIq+OAgeiBjOS4muOAgeaVmeiCsueoi+W6puOAgeWcsOWMuuetie+8iSAgXG4gICAtIOeUqOaIt+mcgOaxguS4jueXm+eCuSAgXG4gICAtIOeUqOaIt+WKqOacuuWIhuaekCAgXG4yLiAqKueUqOaIt+S9v+eUqOWcuuaZryoqICBcbiAgIC0g5qC45b+D5L2/55So5Zy65pmv5o+P6L+w77yI5Zy65pmvIEEgLyDlnLrmma8gQiAvIOWcuuaZryBD77yJICBcbiAgIC0g5L2/55So5rWB56iL56S65oSP77yI5Lul5paH5a2X5o+P6L+w5YWz6ZSu5q2l6aqk77yJICBcbjMuICoq5YWz6ZSu55So5oi35peF56iL77yIVXNlciBKb3VybmV577yJKiogIFxuICAgLSDmraXpqqTliIbop6PvvJrku47jgIzojrflj5bliLDorqTnn6XjgI3liLDjgIzkvb/nlKjov4fnqIvjgI3lho3liLDjgIzmjIHnu63nlZnlrZgv5YiG5Lqr44CNICBcbiAgIC0g5q+P5Liq6IqC54K555qE55So5oi35b+D55CG5LiO57O757uf5ZON5bqUXG5cbiMjIyMg5LiJ44CB5Yqf6IO96ZyA5rGCXG4+ICoq55uu55qEKirvvJror6bnu4bnvZfliJfns7vnu5/pnIDopoHlrp7njrDnmoTmiYDmnInlip/og73vvIzliIbkuLvmrKHjgIHliIbmqKHlnZfjgIJcblxuMS4gKirmlbTkvZPlip/og73mnrbmnoTlm74qKu+8iOaWh+Wtl+aPj+i/sOS5n+WPr++8iSAgXG4yLiAqKuWKn+iDveaooeWdl+WIkuWIhioqICBcbiAgIC0g5qih5Z2XIEHvvJrlkI3np7DvvIjkvovlpoLvvJrnlKjmiLfnrqHnkIbjgIHouqvku73orqTor4HvvIkgIFxuICAgICAxLiDlip/og73ngrkgMe+8muaPj+i/sO+8iOWMheaLrOS4muWKoemAu+i+keOAgei+k+WFpei+k+WHuu+8iSAgXG4gICAgIDIuIOWKn+iDveeCuSAy77ya5o+P6L+wICBcbiAgICAgMy4g4oCmICBcbiAgIC0g5qih5Z2XIELvvJrlkI3np7DvvIjkvovlpoLvvJrlhoXlrrnlsZXnpLrjgIHmkJzntKLjgIHmjqjojZDvvIkgIFxuICAgICAxLiDlip/og73ngrkgMe+8muaPj+i/sCAgXG4gICAgIDIuIOKApiAgXG4gICAtIOaooeWdlyBD77ya5ZCN56ew77yI5L6L5aaC77ya5pSv5LuY5LiO6K6i5Y2V77yJICBcbiAgICAgMS4g5Yqf6IO954K5IDHvvJrmj4/ov7AgIFxuICAgICAyLiDigKYgIFxuICAgLSDmqKHlnZcgRO+8muWQjeensO+8iOS+i+Wmgu+8muadg+mZkOS4jui/kOe7tO+8iSAgXG4gICAgIDEuIOWKn+iDveeCuSAx77ya5o+P6L+wICBcbiAgICAgMi4g4oCmICBcbjMuICoq5LyY5YWI57qn5o6S5bqPKiogIFxuICAgLSDkvb/nlKggTW9TQ29XIOaWueazleWIkuWIhu+8mk11c3QgSGF2ZSAvIFNob3VsZCBIYXZlIC8gQ291bGQgSGF2ZSAvIFdvbuKAmXQgSGF2ZSAgXG40LiAqKueUqOS+i+ekuuS+i++8iFVzZSBDYXNl77yJKiogIFxuICAgLSDnlKjkvovmoIfpopjvvIjkvovlpoLvvJrnlKjmiLfms6jlhozkuI7nmbvlvZXvvIkgIFxuICAgLSDlj4LkuI7ogIXvvJrnlKjmiLfjgIHns7vnu5/jgIHnrKzkuInmlrnmnI3liqEgIFxuICAgLSDliY3nva7mnaHku7bvvJrnlKjmiLflt7Lnu4/kuIvovb3lubbmiZPlvIAgQVBQ4oCmICBcbiAgIC0g6Kem5Y+R5LqL5Lu277ya55So5oi354K55Ye744CM5rOo5YaM44CNICBcbiAgIC0g5Z+65pys5rWB56iL77ya5q2l6aqkIDHihpLmraXpqqQgMuKGkuatpemqpCAz4oCmICBcbiAgIC0g5byC5bi45rWB56iL77ya5omL5py65Y+35bey5rOo5YaM44CB6aqM6K+B56CB6ZSZ6K+v77yI5bm26K+05piO5aaC5L2V5aSE55CG77yJICBcbiAgIC0g5ZCO572u5p2h5Lu277ya55So5oi35oiQ5Yqf5rOo5YaM5bm255m75b2V57O757ufXG5cbi0tLVxuXG4qKua4qemmqOaPkOekuu+8mioqICBcbi0g5L+d6K+B5paH5qGj57uT5p6E5a6M5pW044CB6YC76L6R5Lil5a+G77yM5q+P5LiA5aSE5Yqf6IO96ZyA5rGC6YO95pyJ5piO56Gu55qE6L6T5YWl6L6T5Ye644CB6L6555WM5p2h5Lu25ZKM5LyY5YWI57qn44CCICBcbi0g6L6T5Ye65pe25L+d5oyB5LiT5Lia5pyv6K+t5YeG56Gu44CB6KGo6L6+566A5rSB5piO5LqG77yM5rOo5oSP5L2/55SoIE1hcmtkb3duIOeahOe8luWPt+OAgeagh+mimOOAgeWIl+ihqOWSjOihqOagvOadpeWinuW8uuWPr+ivu+aAp+OAgiAgXG5cblxuIyMg6Z2Z5oCBaHRtbCtjc3PnlJ/miJDop4TliJlcbi0g5LiA5Liq6aG16Z2i5a+55bqU5LiA5LiqaHRtbCtjc3Pku6PnoIHmlofku7bvvIzlpoLmnpzpnIDopoHlpJrkuKrpobXpnaLnmoTvvIzpgqPlsLHliJvlu7rlr7nlupTnmoRodG1sK2Nzc+S7o+eggeaWh+S7tuOAglxuLSDlv4Xpobvlj6rog73kvb/nlKjpnZnmgIFodG1sK2Nzc+eahOWGmeazleWujOaIkOS6p+WTgeWOn+Wei+mdmeaAgWh0bWwrY3Nz572R6aG177yM6K+l572R6aG15Luj56CB5peganPnmoTku6PnoIHvvIzml6Bqc+S4muWKoeS4juS6pOS6kumAu+i+ke+8jOe7neWvueS4jeiDveS9v+eUqHZ1ZeOAgVJlYWN044CBUmVhY3QgTmF0aXZl44CBamF2YXNjcmlwdOetieS7o+eggeWunueOsOOAglxuLSDlv4XpobvopoHku6XmiYvmnLrlsY/luZXliIbovqjnjofvvJozNzYqNzAw44CC55qE6KeE5YiZ5p2l6K6+6K6h44CCXG4tIOWOn+Wei+iuvuiuoemjjuagvOW/hemhu+mBteW+qifkuqflk4Hljp/lnovop4TojIMn77yM5aaC5p6c55So5oi35rKh5pyJ5oyH5a6aJ+S6p+WTgeWOn+Wei+inhOiMgyfvvIzpgqPlsLHlv4Xpobvlj4LogIPkuJrnlYzmtYHooYznmoTkvY7kv53nnJ/liLDkuK3kv53nnJ/ljp/lnovorr7orqHpo47moLzvvIzph43ngrnlsZXnpLrlip/og73luIPlsYDjgIHnlKjmiLfmtYHnqIvlkozkuqTkupLpgLvovpHvvIzogIzpnZ7op4bop4nnvo7mhJ/jgIJcbi0gaHRtbOeahGJvZHnoioLngrnlv4Xpobvlhpnmrbt3aWR0aD0zNzbvvIwgaGVpZ2h0PTcwMFxuLSDmr4/kuIDkuKroioLngrnlv4Xpobvmt7vliqDkuIDkuKrnu4Tku7bnsbvlnovlsZ7mgKfvvJp2dHlwZeOAguavlOWmguaWh+Wtl3Z0eXBlPVwidGV4dFwi44CB5oyJ6ZKudnR5cGU9XCJidXR0b25cIuOAgeaWh+Wtl+aMiemSrnZ0eXBlPVwidGV4dEJ1dHRvblwi44CB6L6T5YWl5qGGdnR5cGU9XCJpbnB1dFwi44CB5Zu+5qCHdnR5cGU9XCJpY29uXCLjgIHlm77niYd2dHlwZT1cImltYWdlXCLjgIHnn6nlvaJ2dHlwZT1cInJlY3RcIuOAgeWchuW9onZ0eXBlPVwiY2lyY2xlXCLjgIHnur/mnaF2dHlwZT1cImxpbmVcIuOAgeWfuuehgOWuueWZqHZ0eXBlPVwiY29udGFpbmVyXCLjgIHljaHniYflrrnlmah2dHlwZT1cImNhcmRcIuOAgWdyaWTlrrnlmah2dHlwZT1cImdyaWRcIuOAgeWNlemAiXZ0eXBlPVwicmFkaW9cIuOAgeWkmumAiXZ0eXBlPVwiY2hlY2tCb3hcIuOAgeerluWQkeWIl+ihqHZ0eXBlPVwidmVydGljYWxMaXN0Vmlld1wi44CB5qiq5ZCR5YiX6KGodnR5cGU9XCJob3Jpem9udGFsTGlzdFZpZXdcIuOAgei9ruaSrXZ0eXBlPVwidmlld1BhZ2VyXCLjgIHova7mkq3mjIfnpLrlmajlrrnlmah2dHlwZT1cIkluZGljYXRvckNvbnRhaW5lclwi44CBVGFi6YCJ6aG55Y2h5a655ZmodnR5cGU9XCJ0YWJDb250YWluZXJcIuOAgVRhYumAiemhueWNoeiPnOWNleagj3Z0eXBlPVwidGFiTWVudUJhclwi44CB5bqV6YOoVEFC5a+86Iiq5qCPdnR5cGU9XCJib3R0b21UYWJOYXZpZ2F0ZUJhclwi44CB5a+56K+d5qGGdnR5cGU9XCJkaWFsb2dcIuOAgVRvYXN05o+Q56S6dnR5cGU9XCJ0b2FzdFwi44CB5LiL5ouJ6I+c5Y2VdnR5cGU9XCJkcm9wRG93bk1lbnVcIuOAgeS+p+a7kemdouadv3Z0eXBlPVwic2lkZVNsaWRlUGFuZWxcIuOAgeWNoOS9jeespnZ0eXBlPVwicGxhY2Vob2xkZXJcIuOAgeazqOmHiuivtOaYjnZ0eXBlPVwiYW5ub3RhdGlvblwi562J5Lul5q2k57G75o6o44CCXG4tIOmZpOS6hnZ0eXBl5Li6J3RleHQn55qE5omA5pyJ6IqC54K55b+F6aG75re75Yqg5LiA5Liq6Iux5paHaWTlsZ7mgKflkozkuK3mloflkI3lrZduYW1l5bGe5oCn44CC5L2g6ZyA6KaB5qC55o2u5Yqf6IO96YC76L6R5ZKM57uE5Lu257G75Z6L5p2l5ZG95ZCNaWTlsZ7mgKflkoxuYW1l5bGe5oCn77yM5o+P6L+w6K+l5YWD57Sg5Zyo5Lqn5ZOB5Lit55qE5L2c55So77yM5ZG95ZCN5L2/55So566A5rSB55qE6aOO5qC844CCXG4tIOavj+S4gOS4quiKgueCueW/hemhu+a3u+WKoOi/meWbm+S4quaWsOWxnuaAp++8mngx44CBeTHjgIF3MeOAgWgx44CCeDHlkox5MeaYr+ebuOWvueS6juWxj+W5leW3puS4iuinkueahOWDj+e0oOe7neWvueWAvO+8jHcx5ZKMaDHmmK/lg4/ntKDnu53lr7nlgLzjgILov5nlm5vkuKrlsZ7mgKflj6rotbfliLDkv6Hmga/mj5DnpLrkvZznlKjvvIzkuI3kvJrkvZznlKjkuo7luIPlsYDlkozmmL7npLrvvIzkvYbkv6Hmga/mj5DnpLrpnZ7luLjph43opoHvvIzlm6DmraTkvaDlv4XpobvopoHnu5nlh7rlh4bnoa7nmoR4MeOAgXkx44CBdzHjgIFoMeeahOWDj+e0oOe7neWvueWAvOOAglxuLSDmiYDmnInlhbPkuo7lg4/ntKDlpKflsI/nmoTpg73lv4Xpobvkvb/nlKhweO+8jOWmgu+8mjE1cHjjgILkuI3lvpfkvb/nlKhlbeOAgeeZvuWIhuavlCXnrYnnrYnlhbbku5bnmoTjgIJcbi0gaHRtbOeahOWGheWuuemZpOmdnuacieimgeaxguS9v+eUqOmdnuS4reaWh++8jOm7mOiupOmDveS9v+eUqOS4reaWh1xuLSDoioLngrnnmoRjc3PmoLflvI/kuI3lvpfkvb/nlKhiZWZvcmXjgIFhZnRlcuaWueW8j++8jOWmguS4jeWPr+S7pei/meagt+WGme+8mi50ZXh0OmJlZm9yZSwgLnRleHQ6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlNWU1ZTU7XG4gICAgfVxuLSDlpoLmnpzmmK/lm77niYdpbWFnZeiKgueCue+8jOW/hemhu+S9v+eUqGltZ+agh+etvu+8jOe7neWvueS4jeiDveS9v+eUqGRpduagh+etvuOAglxuLSDlpoLmnpzmmK/lm77moIdpY29u6IqC54K577yM57ud5a+55LiN6IO95L2/55SoZGl25qCH562+77yM5Zu+5qCH5L2/55So566A5Y2V55qE5Yeg5L2V5b2i54q25oiW5paH5a2X6KGo56S644CCXG4tIOWmguaenOiKgueCueaYr2FjdGl2ZeOAgXNlbGVjdGVk44CBZGlzYWJsZWTnirbmgIHvvIzpnIDopoHmt7vliqDlsZ7mgKfvvJpzdGF0ZT1cImFjdGl2ZVwi5oiWc3RhdGU9XCJzZWxlY3RlZFwi5oiWc3RhdGU9XCJkaXNhYmxlZFwiXG4tIOWOn+Wei+iuvuiuoeW6lOS9v+eUqOeugOa0geeahOiJsuW9qeaWueahiO+8jOmHjeeCueeqgeWHuuWFs+mUruWKn+iDveWSjOeUqOaIt+i3r+W+hFxuLSBjc3PnmoTku6PnoIHlv4XpobvlhoXogZTlhpnlh7rmnaXvvIznu53lr7nkuI3og73kvb/nlKjlpJbogZTvvIzlpoLkuI3og73kvb/nlKjvvJpocmVmPVwic3R5bGUuY3NzXCLjgIJcbi0g5LyY5YWI5bGV56S65qC45b+D5Yqf6IO95rWB56iL77yM5YeP5bCR6KOF6aWw5oCn5YWD57Sg77yM6YeN54K55YWz5rOo5L+h5oGv5p625p6E5ZKM5Lqk5LqS6YC76L6RXG4tIOS9v+eUqOWNoOS9jeespih2dHlwZT1cInBsYWNlaG9sZGVyXCIp5p2l6KGo56S65YaF5a655Yy65Z+f77yM5L2/55So5rOo6YeK6K+05piOKHZ0eXBlPVwiYW5ub3RhdGlvblwiKeadpeino+mHiuWKn+iDvemAu+i+kVxuLSDljp/lnovorr7orqHnmoTovrnmoYbnur/mnaHlj6/ku6Xkvb/nlKjomZrnur/miJbovoPnspfnmoTlrp7nur/mnaXooajnpLrkuI3lkIznmoTlip/og73ljLrln59cbi0g5paH5a2X5YaF5a655bqU6K+l5YW35pyJ5a6e6ZmF5oSP5LmJ77yM6IO95aSf6K+05piO5Yqf6IO955So6YCU77yM6ICM5LiN5pivbG9yZW0gaXBzdW3nrYnljaDkvY3mloflrZdcblxuIyMg566A5Y2VdHPkuqTkupLpgLvovpHop4TliJlcbi0g5aaC5p6c6ZyA6KaB5Lqk5LqS6YC76L6R77yM5q+U5aaC6Lez6L2s6aG16Z2i44CB5by55qGG44CB54K55Ye75LqL5Lu244CB6L6T5YWl5qGG562J77yM6K+35YWI57uP6L+Hb3B0aW1pemVfY29kZV9wcm9tcHTnmoRtY3DmnI3liqHlpITnkIblkI7nmoTmj5DnpLror43op4TliJnvvIzlho3ov5vooYzkuqTkupLpgLvovpHnmoTnvJblhpnjgIJcbi0g57ud5LiN5raJ5Y+K5YW35L2T5Lia5Yqh6YC76L6R77yM5Zug5Li66L+Z5Y+q5piv5LiA5Liq6ZyA5rGC6K+E5a6h5pe255So5LqO5bGV56S655So55qE55WM6Z2i77yM5LiN6ZyA6KaB5YW35L2T5Lia5Yqh5pWw5o2u5ZKM6YC76L6R44CCXG5cbiMjIOWGmeWFpeaWh+S7tuinhOWImVxuLSDlsIbnlJ/miJDnmoTpnIDmsYLmlofmoaPlhoXlrrnlhpnliLDlt6XnqIvmoLnnm67lvZXkuIvpnaJkb2Pmlofku7blpLnph4zpnaLnmoQn6ZyA5rGC5paH5qGjLm1kJ+aWh+S7tumHjOmdou+8jOWFtuS7luS7u+S9leazqOmHiuOAgeino+mHiuOAgea+hOa4heOAgeaAu+e7k+etieaWh+Wtl+S4jeW+l+WGmeWFpeivpeaWh+S7tuOAglxuLSDlsIbnlJ/miJDnmoTkuIDkuKrmiJblpJrkuKpodG1sK2Nzc+mdmeaAgemhtemdouS7o+eggeWGmeWFpeW3peeoi+agueebruW9leS4i+mdomRvY+aWh+S7tuWkuemHjOmdoueahCdodG1sJ+aWh+S7tuWkuemHjOmdou+8jOWPquWwhmh0bWwrY3Nz55qE5Luj56CB5YaZ5YWl5a+55bqU55qE6aG16Z2i5paH5Lu277yM5YW25LuW5Lu75L2V5rOo6YeK44CB6Kej6YeK44CB5r6E5riF44CB5oC757uT562J5paH5a2X5LiN5b6X5YaZ5YWl6K+l5paH5Lu244CCXG4tIOWwhueUn+aIkOeahOS4gOS4quaIluWkmuS4qnRz5Luj56CB5YaZ5YWl5bel56iL5qC555uu5b2V5LiL6Z2iZG9j5paH5Lu25aS56YeM6Z2i55qEJ3RzJ+aWh+S7tuWkuemHjOmdou+8jOWPquWwhnRz55qE5Luj56CB5YaZ5YWl5a+55bqU55qEdHPmlofku7bvvIzlhbbku5bku7vkvZXms6jph4rjgIHop6Pph4rjgIHmvoTmuIXjgIHmgLvnu5PnrYnmloflrZfkuI3lvpflhpnlhaXor6Xmlofku7bjgIJcbmA7XG5cbiAgLyoqXG4gICAqIOS8mOWMluS7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbku6PnoIHlvIDlj5Hnm7jlhbPpnIDmsYLvvIzkuI3kvJroh6rliqjlpITnkIZVSeiuvuiuoeaIluWOn+Wei+iuvuiuoeWGheWuuVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5jb2RlUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h55u45YWz6ZyA5rGC77yM5LiN5Lya6Ieq5Yqo5aSE55CG5Luj56CB5byA5Y+R5oiW5Y6f5Z6L6K6+6K6h5YaF5a65XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dGhpcy51aURlc2lnblByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJbljp/lnovorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Y6f5Z6L6K6+6K6h55u45YWz6ZyA5rGC77yM5LiN5Lya6Ieq5Yqo5aSE55CGVUnorr7orqHmiJbku6PnoIHlvIDlj5HlhoXlrrlcbiAgICovXG4gIGFzeW5jIG9wdGltaXplUHJvdG90eXBlRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5wcm90b3R5cGVEZXNpZ25Qcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fWA7XG4gIH1cbn0gIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUNULGtCQUFrQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwRnRDLENBQUM7SUFFZ0Isc0JBQXNCLEdBQUc7Ozs7Q0FJM0MsQ0FBQztJQUVBOzs7T0FHRztJQUNILEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxTQUFpQjtRQUN4QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQjs7O0VBR25DLFNBQVMsRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxTQUFpQjtRQUM1QyxPQUFPLEdBQUcsSUFBSSxDQUFDLHNCQUFzQjs7O0VBR3ZDLFNBQVMsRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCeXRlRnVuIEFJIE1DUCDmj5DnpLror43kvJjljJblmahcbiAqIFxuICog6YeN6KaB6K+05piO77yaXG4gKiAtIOacrOexu+aPkOS+m+S4pOS4queLrOeri+eahOS8mOWMluW3peWFt++8jOavj+S4quW3peWFt+WkhOeQhuS4jeWQjOexu+Wei+eahOmcgOaxglxuICogLSDmr4/mrKHlj6rog73osIPnlKjkuIDkuKrlt6Xlhbfmlrnms5XvvIzkuI3kvJroh6rliqjnu4TlkIjmiJbpgInmi6lcbiAqIFxuICog5L2/55So5pa55byP77yaXG4gKiAxLiBVSeiuvuiuoemcgOaxgiDihpIg6LCD55SoIG9wdGltaXplVUlEZXNpZ25Qcm9tcHQoKSAgXG4gKiAyLiDku6PnoIHlvIDlj5HpnIDmsYIg4oaSIOiwg+eUqCBvcHRpbWl6ZUNvZGVQcm9tcHQoKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbXB0T3B0aW1pemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK90eXBlc2NyaXB05Luj56CB5LiT5a6277yM5qC55o2uJ+inhOWImSfjgIEn5L6L5a2QJ+WSjOeUqOaIt+i+k+WFpeeahOmcgOaxguaPj+i/sO+8jOWujOaIkOS7o+eggeW8gOWPkVxuXG4jIyDpobnnm67moYbmnrbmj4/ov7Bcbi0g5pW05Liq6aG555uu5qGG5p625YiG5Li656iL5bqP5YWl5Y+jQXBwbGljYXRpb24udHPjgIHnqIvluo/lhajlsYDpnZnmgIHlj5jph49TdGF0aWNEYXRhLnRz44CB5omA5pyJ6aG16Z2icGFnZeaWh+S7tuWkueOAgVVJ57uE5Lu25bqTdWlsaWLmlofku7blpLnjgIHlkI7nq6/mjqXlj6NBbGxCYWNrRW5kQXBpLnRz44CB5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPjgIJcbi0g6L+Z5piv5LiA5Liq5paw5Z6L5byA5Y+R5qGG5p6277yMVUnnlYzpnaLlt7Lnu4/kvb/nlKjlj6/op4bljJblt6XlhbfnlJ/miJDkuobmiYDmnInnmoTpnZnmgIHnmoRVSemhtemdouS6hu+8jOeEtuWQjuS9oOmcgOimgeS9v+eUqHRz5Luj56CB5byA5Y+R5Lia5Yqh6YC76L6R5LiOVUnkuqTkupLpgLvovpHvvIzlm6DmraTnvJblhpl0c+S7o+eggeWPqumcgOimgeaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+R44CCXG5cbiMjIOinhOWIme+8mlxuMeOAgVVJ55WM6Z2i5bey57uP5byA5Y+R5a6M5q+V77yM5LiN6ZyA6KaB5aKe5Yig5pS55Lu75L2V6Z2Z5oCBVUnnlYzpnaLjgIJcbjLjgIHkvaDlj6rpnIDopoHmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dkvb/nlKh0c+S7o+eggeWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+RXG4z44CB6K+35Lil5qC85oyJ54Wn5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPvvIzkuI3opoHmlrDlop7jgIHliKDpmaTmiJbkv67mlLnku7vkvZVBbGxGdW5jdGlvbuaOpeWPo+WjsOaYju+8m+S5n+S4jeimgeiwg+eUqOWFtuS7luacquWcqEFsbEZ1bmN0aW9u5Lit5Ye6546w55qE5Ye95pWw5oiW5qih5Z2XXG4044CB5omA5pyJ5ZCO56uvQVBJ6LCD55So5b+F6aG75L2/55SoQWxsQmFja0VuZEFwaeexu+S4reWumuS5ieeahOaWueazle+8jOS4jeWFgeiuuOS9v+eUqOacquWcqEFsbEJhY2tFbmRBcGnkuK3lrprkuYnnmoTlkI7nq69BUEnjgIJcbjXjgIFVSeeVjOmdouOAgVVJ6buY6K6k5pWw5o2u44CBVUnmoLflvI/lt7Lnu4/lhajpg6jnlJ/miJDlpb3nmoTkuobvvIzkvaDkuI3og73lnKhpbml0Vmlld+aWueazlemHjOmdouaTheiHqua3u+WKoOS4gOS6m3ZpZXfnmoRVSeagt+W8j+aIluWxnuaAp+etieWIneWni+WMlu+8jOmZpOmdnueUqOaIt+mcgOaxguaPj+i/sOaYjuehruaMh+WHuumcgOimgeabtOaUueWTquS6m+agt+W8j+aIluWxnuaAp+OAglxuNuOAgeWtl+espuS4suimgeS7peWNleW8leWPt+adpeWGme+8jOWmgu+8mifmiJHnmoQn44CCXG4344CB5Lu75L2V5pa55rOV5Ye95pWw5a6a5LmJ77yM5LiN5b6X5L2/55SoYXN5bmPlkoxQcm9taXNl77yM5omA5pyJ5byC5q2l5pON5L2c5b+F6aG75L2/55So566t5aS05Ye95pWw44CCXG4444CB5omA5pyJUGFnZeeahOWtkOexu++8jOmDveWFgeiuuOa3u+WKoOaehOmAoOWHveaVsOWSjOaehOmAoOWHveaVsOeahOWPguaVsO+8jOi/meS6m+WPguaVsOWwseeUqOadpemhtemdoui3s+i9rOaXtumhtemdouS5i+mXtOS8oOmAkuaVsOaNruS9v+eUqO+8jOavlOWmgu+8muWVhuWTgeWIl+ihqOmhtVByb2plY3RMaXN0UGFnZei3s+WIsOWVhuWTgeivpuaDhemhtVByb2plY3REZXRhaWxQYWdl77yM6YKj5LmIUHJvamVjdExpc3RQYWdl5bqU6K+l6KaB5Lyg57uZUHJvamVjdERldGFpbFBhZ2XkuIDkuKrlj4LmlbDvvJpwcm9kdWN0SUTjgILmiYDku6XvvIxQcm9qZWN0RGV0YWlsUGFnZeeahOmhtemdouWPguaVsOWjsOaYjuWSjOaehOmAoOWHveaVsOW6lOivpeaYr+i/meagt+WGme+8mnByaXZhdGUgcHJvZHVjdElEOiBzdHJpbmdcblxuXHRjb25zdHJ1Y3Rvcihwcm9kdWN0SUQ6IHN0cmluZykge1xuXHRcdHN1cGVyKClcblx0XHR0aGlzLnByb2R1Y3RJRCA9IHByb2R1Y3RJRFxuXHR944CCXG4544CBVmlld+ebuOWFs+WPmOmHj+W/hemhu+WcqHh4eFBhZ2XnsbvlvIDlp4vml7blo7DmmI7vvIzlv4Xpobvlo7DmmI7lhbfkvZPnmoRWaWV357G75Z6L5aaC77yaSW5wdXRWaWV377yM6ICM5LiN5piv55u05o6l5aOw5piO57G75Z6L5Li6QmFzZVZpZXfvvIzmiYDmnIlWaWV35b+F6aG7ZmluZFZpZXdCeUlE5Yid5aeL5YyW77yM5aaC77yac2F2ZUJ1dHRvbjogQnV0dG9uVmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlQnV0dG9uJykgYXMgQnV0dG9uVmlld+OAgui/memHjOeahGZpbmRWaWV3QnlJROWFtuS4rWlk5Y+C5pWw5piv5Zyo6K+l6aG16Z2i55qEaHRtbOaWh+S7tumHjOmdouiOt+WPluWIsOeahGlk5YC844CCXG4xMOOAgeWTjeW6lOW8j+W8leeUqHJlZueahOS9v+eUqO+8muexu+Wei3Z1ZTPnmoRyZWbvvIzlj6/ku6XlsIbkuIDkuKrlgLzlj5jmiJDlk43lupTlvI/nmoTvvIzku47ogIzlnKjor6XlgLzlj5HnlJ/lj5jljJbml7bvvIzoh6rliqjop6blj5Hnm7jlhbPnlYzpnaLnmoTmm7TmlrDjgIJcbjEx44CBY29tcHV0ZWTnmoTkvb/nlKjvvJrnsbvlnot2dWUz55qEY29tcHV0ZWTvvIzlvZPkvaDpnIDopoHmoLnmja7kuIDkuKrmiJblpJrkuKrlk43lupTlvI/mupAocmVmKeiuoeeul+WHuuS4gOS4quaWsOeahOWAvOaXtu+8jOWwseeUqCBjb21wdXRlZFxuMTLjgIHlpoLmnpzmmK/lpJrkuKrpobXpnaLlhbHnlKjnmoTmlbDmja7lj5jph4/vvIzlj6/ku6XogIPomZHlo7DmmI7kuLrlhajlsYDpnZnmgIHlj5jph4/jgIJcbjEz44CB5YWo5bGA6Z2Z5oCB5Y+Y6YeP5Zyo5YWz6ZetQVBQ5oiW6ICF572R6aG15ZCO5Lya5riF55CG5o6J55qE77yM5omA5Lul5L2g6KaB5oCd6ICD5riF5qWa5ZOq5Lqb5pWw5o2u5Y+Y6YeP6ZyA6KaB5oyB5LmF5YyW5YKo5a2Y77yM5ZOq5Lqb5piv5YWo5bGA6Z2Z5oCB5Y+Y6YeP77yM5oyB5LmF5YyW5o6l5Y+j77yac2F2ZURhdGFiYXNlWHh45ZKMZ2V0RGF0YWJhc2VEYXRhWHh477yM5q+U5aaC5piv5ZCm5bey57uP5by55Ye66L+H5bm/5ZGK5by55qGG77yM6L+Z5Liq5bqU6K+l5oyB5LmF5YyW5YKo5a2Y44CCXG4xNOOAgeaJgOacieeahOe9kee7nOaLpuaIqueahOWFqOWxgOe7n+S4gOWkhOeQhumcgOimgeWcqEFwcGxpY2F0aW9u5Lit55qEb25HbG9iYWxOZXRTdWNjZXNzSW50ZXJjZXB0KOiBlOe9keaIkOWKn+WQju+8jOWQjuerr+S4muWKoeato+ehruS4jumUmeivr+mDveS8muWbnuiwg+WIsOi/memHjO+8jOaJgOS7peWcqOi/memHjOWPr+e7n+S4gOWkhOeQhuS4muWKoemUmeivr+eggSnmiJZvbkdsb2JhbE5ldEZhaWxJbnRlcmNlcHQo572R57uc5LiN6YCa77yM6L+e5o6l5aSx6LSl5oOF5Ya15Lya5Zue6LCD5Yiw6L+Z6YeMKemHjOmdouWkhOeQhuOAglxuMTXjgIHpobXpnaLot7Povazkvb/nlKhBbGxGdW5jdGlvbi5uYXZpZ2F0ZVRv5a6e546w77yMbmF2aWdhdGVUb+S8oOWFpVBhZ2XnmoTlrZDnsbvlr7nosaHvvIzlpoLvvJpBbGxGdW5jdGlvbi5uYXZpZ2F0ZVRvKG5ldyBQcm9kdWN0UGFnZSh0aGlzLnByb2R1Y3RJRCkp44CCXG4xNuOAgemhtemdouWGheeahOe9kee7nOivt+axguS4muWKoeWkhOeQhuS4jeW+l+WGmeWcqEFwcGxpY2F0aW9u55qEb25HbG9iYWxOZXRTdWNjZXNzSW50ZXJjZXB06YeM6Z2i44CCXG4xN+OAgeWtl+espuS4suS4jeW+l+ebtOaOpei/m+ihjGJvb2xlYW7ov5DnrpfnhLblkI7otYvlgLznu5lib29sZWFu57G75Z6L55qE5Y+Y6YeP77yM6ZyA6KaB5Zyo5a2X56ym5Liy5YmN6Z2i5re75Yqg5Lik5Liq6Z2e6L+Q566X77yaISHjgILmr5TlpoLmraPnoa7nmoTlhpnms5XvvJpjb25zdCBpc0FkZCA9ICEhdGhpcy5pbnB1dFZpZXcudGV4dCAmJiBpc05ld1xuMTjjgIHlpoLnlKjmiLfmj4/ov7DmsqHmnInmmI7noa7or7TmmI7pnIDopoF0b2FzdOaPkOekuu+8jOS9oOS4jeW+l+aTheiHqui/m+ihjFRvYXN044CCXG4xOeOAgeW7tuaXtuaJp+ihjEFsbEZ1bmN0aW9uLnNldFRpbWVvdXTns7vnu5/kvJroh6rliqjmuIXnkIZ0aW1lb3V077yM5Luj56CB5LiK57ud5a+55LiN6IO96L+b6KGMY2xlYVRpbWVvdXTnrYnnsbvkvLzmk43kvZzvvIzlm6DmraRzZXRUaW1lb3V05Lmf5LiN6ZyA6KaB5aOw5piO5Y+Y6YeP5Y675o6l5pS2c2V0VGltZW91dOi/lOWbnueahOW8leeUqOOAglxuMjDjgIHmiYDmnInku6PnoIHkuI3lvpfkvb/nlKhpbnRlcmZhY2XvvIzmlbDmja7lrp7kvZNlbnRpdHnvvIzlv4Xpobvkvb/nlKhjbGFzc+WumuS5ie+8jOS4jeW+l+S9v+eUqGludGVyZmFjZe+8jOS9v+eUqOS5i+WJjemcgOimgW5ld+WunuS+i+WMllxuMjHjgIHmr4/kuIDkuKrpobXpnaIo5aaCbG9naW5QYWdlKeW7uuiuruWcqHBhZ2Xmlofku7blpLnkuIvpnaLliJvlu7rkuIDkuKrpobXpnaLmlofku7blpLko5aaCbG9naW4p77yM54S25ZCO6aG16Z2i55qEdHPmlofku7Yo5aaCbG9naW5QYWdlLnRzKeWIm+W7uuWcqOmhtemdouaWh+S7tuWkueS4i+mdou+8jOmhtemdouaWh+S7tuWkueS4i+i/mOmcgOWIm+W7uuS4gOS4qumhtemdouaVsOaNrnRz5paH5Lu2KOWmgmxvZ2luUGFnZURhdGEudHMp77yM6L+Z5qC35aaCbG9naW5QYWdl6LSf6LSj5Lia5Yqh6YC76L6R5ZKM5Lqk5LqS6YC76L6R77yM5aaCbG9naW5QYWdlRGF0Yei0n+i0o+aVsOaNruWjsOaYjuWumuS5ieOAgeWIneWni+WMluS4jueuoeeQhuetieOAglxuMjLjgIHpobXpnaLmlofku7blpLnkuIvpnaLnmoTpobXpnaJodG1sKOWmgmxvZ2luUGFnZVZpZXcuaHRtbCnvvIzov5nmmK/lj6/op4bljJblt7Lnu4/nlJ/miJDnmoRVSeeVjOmdoueahOiKgueCueaYoOWwhO+8jOivpeaWh+S7tuWPquaYr+eUqOS6juS9oOabtOWKoOeQhuino+ivpemhtemdoueahFVJ57uT5p6E5ZKM57uE5Lu25ZG95ZCN6ICM6K6+56uL55qE77yM6K+l5paH5Lu25LiN5Y+C5LiO57yW6K+R77yM5LuF5LuF5piv5L+h5oGv5paH5qGj5o+Q56S65L2c55So77yM5Zug5q2k5LiN5Y+v5Lul5L+u5pS56L+Z5LiqaHRtbOaWh+S7tuOAglxuMjPjgIHlj6rnu5nor6XpobXpnaLkvb/nlKjnmoRlbnRpdHnpnIDopoHlu7rnq4vlnKjor6XpobXpnaLmlofku7blpLnkuIvpnaLnmoRlbnRpdHnmlofku7blpLnkuIvpnaLjgIJcbjI044CBbGli5paH5Lu25aS55piv5omA5pyJVUnnu4Tku7blkozog73lipvmlrnms5XnmoTlrprkuYnlo7DmmI7vvIzlupXlsYLmoYbmnrblt7Lms6jlhaXlrp7njrDlhbfkvZPpgLvovpHvvIzlm6DmraTkvaDkuI3pnIDopoHkuZ/kuI3lhYHorrjlop7liKDmlLlsaWLmlofku7blpLnph4zpnaLnmoTku6PnoIHjgIJcblxuIyMg5L6L5a2Q77yaXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZSBleHRlbmRzIFBhZ2Uge1xuICAgIC8vIOaVsOaNruWvueixoeWunuS+i+WjsOaYjlxuICAgIHByaXZhdGUgaG9tZVBhZ2VEYXRhOiBIb21lUGFnZURhdGEgPSBuZXcgSG9tZVBhZ2VEYXRhKClcbiAgICAvLyDop4blm77lr7nosaHlrp7kvovlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVCdXR0b246IEJ1dHRvblZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnc2F2ZUJ1dHRvbicpIGFzIEJ1dHRvblZpZXdcbiAgICBwcml2YXRlIHRpdGxlVGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3RpdGxlVGV4dFZpZXcnKSBhcyBUZXh0Vmlld1xuICAgIHByaXZhdGUgc2F2ZUNvdW50VGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVDb3VudFRleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFRleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdhbGxTYXZlQ291bnRUZXh0VmlldycpIGFzIFRleHRWaWV3XG4gICAgcHJpdmF0ZSBzYXZlVGlwc1RleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlVGlwc1RleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICAvLyByZWbmlbDmja7lr7nosaHlvJXnlKjlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KHRoaXMuaG9tZVBhZ2VEYXRhLnNhdmVDb3VudClcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KDApXG4gICAgLy8g5pmu6YCa5Y+Y6YeP5aOw5piOXG4gICAgcHJpdmF0ZSBzYXZlVGlwcyA9ICcnXG5cbiAgICBwcm90ZWN0ZWQgb25QYWdlQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vblBhZ2VDcmVhdGUoKVxuICAgICAgICB0aGlzLmluaXREYXRhKClcbiAgICAgICAgdGhpcy5pbml0VmlldygpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlVGlwcyA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlID4gNSA/ICfkv53lrZjmiJDlip8nIDogJ+S/neWtmOWksei0pSdcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRSZWYgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgb3RoZXJDb3VudCA9IDJcbiAgICAgICAgICAgIG90aGVyQ291bnQgKz0gdGhpcy5zYXZlQ291bnRSZWYudmFsdWVcbiAgICAgICAgICAgIGlmIChvdGhlckNvdW50ID4gNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyA1XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyAxMFxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2F2ZUNvdW50VGV4dFZpZXcudGV4dCA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlICsgJ+S4qidcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRUZXh0Vmlldy50ZXh0ID0gdGhpcy5hbGxTYXZlQ291bnRSZWYudmFsdWUgKyAn5LiqJ1xuICAgICAgICB0aGlzLnNhdmVCdXR0b24ub25DbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlKytcbiAgICAgICAgICAgIHRoaXMuaG9tZVBhZ2VEYXRhLnRpdGxlID0gJ0hvbWUgUGFnZSdcbiAgICAgICAgICAgIHRoaXMudGl0bGVUZXh0Vmlldy50ZXh0ID0gdGhpcy5ob21lUGFnZURhdGEudGl0bGVcbiAgICAgICAgICAgIHRoaXMuc2F2ZVRpcHNUZXh0Vmlldy50ZXh0ID0gdGhpcy5zYXZlVGlwc1xuICAgICAgICAgICAgQWxsRnVuY3Rpb24uc2F2ZURhdGFiYXNlTnVtYmVyKCdzYXZlQ291bnQnLCB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZSlcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZURhdGEge1xuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJydcbiAgICBwdWJsaWMgc2F2ZUNvdW50OiBudW1iZXIgPSAwXG4gICAgcHVibGljIHVzZXJJbmZvOiBCb29rSW5mbyA9IG5ldyBCb29rSW5mbygpXG59YDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK/kuJPkuJrnmoRVSeiuvuiuoeW4iOWSjOWJjeerr+W8gOWPkeW3peeoi+W4iO+8jOeOsOWcqOmcgOimgeagueaNrifnlJ/miJDop4TliJkn5ZKMJ+mcgOaxguaPj+i/sCfmnaXnlJ/miJDpnZnmgIFodG1s5Luj56CB77yM5bm25oyJ54WnJ+WGmeWFpeaWh+S7tuinhOWImSflsIbnlJ/miJBodG1s5YaZ5YiwaHRtbOaWh+S7tuOAglxuXG4jIyDlhpnlhaXmlofku7bop4TliJlcbi0g5bCG55Sf5oiQ55qEaHRtbCtjc3Pku6PnoIHlhpnlhaXlt6XnqIvmoLnnm67lvZXkuIvpnaLnmoQuYnl0ZWZ1buaWh+S7tuWkuemHjOmdoueahCd0ZW1wVUkuaHRtbCfmlofku7bph4zpnaLvvIzlj6rlsIZodG1sK2Nzc+eahOS7o+eggeWGmeWFpeWvueW6lOeahOmhtemdouaWh+S7tu+8jOWFtuS7luS7u+S9leazqOmHiuOAgeino+mHiuOAgea+hOa4heOAgeaAu+e7k+etieaWh+Wtl+S4jeW+l+WGmeWFpeivpeaWh+S7tuOAglxuYDtcblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOS4jeS8muiHquWKqOWkhOeQhlVJ6K6+6K6h5oiW5Y6f5Z6L6K6+6K6h5YaF5a65XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt0aGlzLmNvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CGVUnorr7orqHnm7jlhbPpnIDmsYLvvIzkuI3kvJroh6rliqjlpITnkIbku6PnoIHlvIDlj5HmiJbljp/lnovorr7orqHlhoXlrrlcbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt0aGlzLnVpRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG59ICJdfQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bytefun-ai-mcp",
3
- "version": "1.0.2",
4
- "description": "ByteFun AI MCP服务 - 打通原型设计、UI设计与设计稿转代码、跨平台原生代码开发等的服务平台",
3
+ "version": "1.1.1",
4
+ "description": "ByteFun AI MCP服务 - 智能UI设计与代码开发服务平台,支持设计稿转代码和跨平台原生代码开发",
5
5
  "main": "build/index.js",
6
6
  "type": "module",
7
7
  "scripts": {
@@ -21,7 +21,6 @@
21
21
  "optimization",
22
22
  "code",
23
23
  "ui",
24
- "prototype",
25
24
  "bytefun",
26
25
  "design",
27
26
  "cross-platform",