@opensumi/ide-main-layout 2.12.1-next-079c1930
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 +296 -0
- package/lib/browser/accordion/accordion.service.d.ts +85 -0
- package/lib/browser/accordion/accordion.service.d.ts.map +1 -0
- package/lib/browser/accordion/accordion.service.js +538 -0
- package/lib/browser/accordion/accordion.service.js.map +1 -0
- package/lib/browser/accordion/accordion.view.d.ts +19 -0
- package/lib/browser/accordion/accordion.view.d.ts.map +1 -0
- package/lib/browser/accordion/accordion.view.js +43 -0
- package/lib/browser/accordion/accordion.view.js.map +1 -0
- package/lib/browser/accordion/section.view.d.ts +24 -0
- package/lib/browser/accordion/section.view.d.ts.map +1 -0
- package/lib/browser/accordion/section.view.js +58 -0
- package/lib/browser/accordion/section.view.js.map +1 -0
- package/lib/browser/accordion/styles.module.less +189 -0
- package/lib/browser/accordion/titlebar.view.d.ts +6 -0
- package/lib/browser/accordion/titlebar.view.d.ts.map +1 -0
- package/lib/browser/accordion/titlebar.view.js +13 -0
- package/lib/browser/accordion/titlebar.view.js.map +1 -0
- package/lib/browser/default-config.d.ts +3 -0
- package/lib/browser/default-config.d.ts.map +1 -0
- package/lib/browser/default-config.js +32 -0
- package/lib/browser/default-config.js.map +1 -0
- package/lib/browser/index.d.ts +7 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +52 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/input/index.d.ts +6 -0
- package/lib/browser/input/index.d.ts.map +1 -0
- package/lib/browser/input/index.js +33 -0
- package/lib/browser/input/index.js.map +1 -0
- package/lib/browser/layout.service.d.ts +58 -0
- package/lib/browser/layout.service.d.ts.map +1 -0
- package/lib/browser/layout.service.js +431 -0
- package/lib/browser/layout.service.js.map +1 -0
- package/lib/browser/main-layout.contribution.d.ts +41 -0
- package/lib/browser/main-layout.contribution.d.ts.map +1 -0
- package/lib/browser/main-layout.contribution.js +304 -0
- package/lib/browser/main-layout.contribution.js.map +1 -0
- package/lib/browser/tabbar/bar.view.d.ts +28 -0
- package/lib/browser/tabbar/bar.view.d.ts.map +1 -0
- package/lib/browser/tabbar/bar.view.js +150 -0
- package/lib/browser/tabbar/bar.view.js.map +1 -0
- package/lib/browser/tabbar/panel.view.d.ts +16 -0
- package/lib/browser/tabbar/panel.view.d.ts.map +1 -0
- package/lib/browser/tabbar/panel.view.js +108 -0
- package/lib/browser/tabbar/panel.view.js.map +1 -0
- package/lib/browser/tabbar/renderer.view.d.ts +34 -0
- package/lib/browser/tabbar/renderer.view.d.ts.map +1 -0
- package/lib/browser/tabbar/renderer.view.js +64 -0
- package/lib/browser/tabbar/renderer.view.js.map +1 -0
- package/lib/browser/tabbar/styles.module.less +367 -0
- package/lib/browser/tabbar/tabbar.service.d.ts +100 -0
- package/lib/browser/tabbar/tabbar.service.d.ts.map +1 -0
- package/lib/browser/tabbar/tabbar.service.js +675 -0
- package/lib/browser/tabbar/tabbar.service.js.map +1 -0
- package/lib/browser/tabbar-handler.d.ts +91 -0
- package/lib/browser/tabbar-handler.d.ts.map +1 -0
- package/lib/browser/tabbar-handler.js +172 -0
- package/lib/browser/tabbar-handler.js.map +1 -0
- package/lib/browser/views-registry.d.ts +33 -0
- package/lib/browser/views-registry.d.ts.map +1 -0
- package/lib/browser/views-registry.js +131 -0
- package/lib/browser/views-registry.js.map +1 -0
- package/lib/browser/welcome.view.d.ts +11 -0
- package/lib/browser/welcome.view.d.ts.map +1 -0
- package/lib/browser/welcome.view.js +106 -0
- package/lib/browser/welcome.view.js.map +1 -0
- package/lib/common/index.d.ts +2 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +5 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/main-layout.defination.d.ts +101 -0
- package/lib/common/main-layout.defination.d.ts.map +1 -0
- package/lib/common/main-layout.defination.js +18 -0
- package/lib/common/main-layout.defination.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/package.json +28 -0
package/README.md
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: main-layout
|
|
3
|
+
title: 布局模块
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
main-layout 模块负责 IDE 的基础布局划分,将整个窗口划分为形如left、main、bottom的若干块区域,我们定义这种区域为插槽。在布局划分之后,又通过提供的插槽渲染器组件来消费注册到插槽的若干个大视图。在如左侧边栏这类特殊的插槽中,一个大的视图(称为视图容器)还可以支持注册多个小的子视图。所以最终整个布局和 React 视图组件的一个组织关系为
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
我们注册的视图最终会落到视图容器或子视图内。每个视图会通过 ContextProvider 注入全局的 DI 实例,视图内通过 `useInjectable` 方法就可以拿到各个类的实例。
|
|
11
|
+
|
|
12
|
+
<!-- TODO: 是否有必要根据内容快速生成导航链接overview?文档本身有右侧菜单了 -->
|
|
13
|
+
|
|
14
|
+
# 贡献点
|
|
15
|
+
|
|
16
|
+
## Contribution Providers
|
|
17
|
+
|
|
18
|
+
模块定义的用于其他模块贡献的贡献点。
|
|
19
|
+
|
|
20
|
+
### ComponentContribution
|
|
21
|
+
|
|
22
|
+
用于向 `ComponentRegistry` 注册视图信息的贡献点,注册的视图信息会被关联到对应的Token(一般约定为包名)内,通过配置 `LayoutConfig` 进行消费。
|
|
23
|
+
|
|
24
|
+
##### Example
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
// 关联视图信息到token
|
|
28
|
+
registerComponent(registry: ComponentRegistry) {
|
|
29
|
+
registry.register('@opensumi/ide-debug-console', {
|
|
30
|
+
id: DEBUG_CONSOLE_VIEW_ID,
|
|
31
|
+
component: DebugConsoleView,
|
|
32
|
+
}, {
|
|
33
|
+
title: localize('debug.console.panel.title'),
|
|
34
|
+
priority: 8,
|
|
35
|
+
containerId: DEBUG_CONSOLE_CONTAINER_ID,
|
|
36
|
+
iconClass: getIcon('debug'),
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
// 映射token到视图Slot
|
|
40
|
+
const LayoutConfig = {
|
|
41
|
+
[SlotLocation.left]: {modules: ['@opensumi/ide-debug-console']}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### SlotRendererContribution
|
|
46
|
+
|
|
47
|
+
> TODO
|
|
48
|
+
|
|
49
|
+
### TabBarToolbarContribution
|
|
50
|
+
|
|
51
|
+
> TODO
|
|
52
|
+
|
|
53
|
+
## Contributions
|
|
54
|
+
|
|
55
|
+
模块注册的贡献点。
|
|
56
|
+
|
|
57
|
+
### Command
|
|
58
|
+
|
|
59
|
+
* `main-layout.left-panel.toggle`: 切换左侧面板
|
|
60
|
+
* `main-layout.right-panel.toggle`: 切换右侧面板
|
|
61
|
+
* `main-layout.bottom-panel.toggle`: 切换底部面板
|
|
62
|
+
* `main-layout.bottom-panel.expand`: 最大化底部面板
|
|
63
|
+
* `main-layout.bottom-panel.shrink`: 最小化底部面板
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### Preference
|
|
67
|
+
|
|
68
|
+
无
|
|
69
|
+
|
|
70
|
+
### KeyBinding
|
|
71
|
+
|
|
72
|
+
* `ctrlcmd+b`: 切换左面板
|
|
73
|
+
* `ctrlcmd+j`: 切换底部面板
|
|
74
|
+
|
|
75
|
+
### Menu
|
|
76
|
+
|
|
77
|
+
> TODO: 不被依赖,是否有必要列出来?
|
|
78
|
+
|
|
79
|
+
* `view.outward.right-panel.hide`: 隐藏右侧面板
|
|
80
|
+
|
|
81
|
+
### ClientAppConfig
|
|
82
|
+
|
|
83
|
+
> 这个不能算贡献点,但是很重要,放哪里比较好?
|
|
84
|
+
|
|
85
|
+
* `defaultPanels`: 侧边栏、底部栏默认展开的面板
|
|
86
|
+
|
|
87
|
+
# 类
|
|
88
|
+
|
|
89
|
+
## LayoutService
|
|
90
|
+
|
|
91
|
+
`DI token: IMainLayoutService`
|
|
92
|
+
|
|
93
|
+
布局模块最上层的控制服务。
|
|
94
|
+
|
|
95
|
+
### Static Methods
|
|
96
|
+
|
|
97
|
+
#### `test()`
|
|
98
|
+
|
|
99
|
+
```js
|
|
100
|
+
static test(
|
|
101
|
+
text: string,
|
|
102
|
+
delimiter?: string
|
|
103
|
+
): ContentState
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
这是一个测试的静态方法(LayoutService没有静态方法,先做个示例).
|
|
107
|
+
|
|
108
|
+
### Methods
|
|
109
|
+
|
|
110
|
+
#### `isVisible()`
|
|
111
|
+
|
|
112
|
+
```js
|
|
113
|
+
isVisible(location: string): Boolean
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
仅在支持多视图注册、可折叠展开的Slot可用。传入Slot位置,返回视图是否可见(非折叠状态)的状态。
|
|
117
|
+
|
|
118
|
+
#### `toggleSlot()`
|
|
119
|
+
|
|
120
|
+
```js
|
|
121
|
+
toggleSlot(location: string, show?: boolean | undefined, size?: number | undefined): void
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
仅在支持多视图注册、可折叠展开的Slot可用。切换Slot的折叠展开状态,支持显示的传入`show`参数指定是否展开,未传入则取当前状态相反值进行切换;支持显示传入`size`参数指定最终的展开尺寸。
|
|
125
|
+
|
|
126
|
+
传入的`size`若为0会被忽略。
|
|
127
|
+
|
|
128
|
+
#### `getTabbarService()`
|
|
129
|
+
|
|
130
|
+
```js
|
|
131
|
+
getTabbarService(location: string): TabbarService
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
仅在支持多视图注册、可折叠展开的Slot可用。传入Slot位置,返回指定位置的`TabbarService`实例。
|
|
135
|
+
|
|
136
|
+
#### `getAccordionService()`
|
|
137
|
+
|
|
138
|
+
```js
|
|
139
|
+
getAccordionService(containerId: string): AccordionService
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
仅在支持多子视图渲染的Slot可用。传入Slot位置,返回指定位置的`AccordionService`实例。
|
|
143
|
+
|
|
144
|
+
#### `getTabbarHandler()`
|
|
145
|
+
|
|
146
|
+
```js
|
|
147
|
+
getTabbarHandler(viewOrContainerId: string): TabBarHandler | undefined
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
仅在支持多视图注册、可折叠展开的Slot可用。获取视图或子视图对应的视图控制器,控制器支持进行视图事件监听、主动切换展开状态等能力。
|
|
151
|
+
|
|
152
|
+
一般情况下推荐使用`TabBarHandler`对视图状态进行主动控制,而不是使用`toggleSlot` api。
|
|
153
|
+
|
|
154
|
+
##### Example
|
|
155
|
+
|
|
156
|
+
```js
|
|
157
|
+
const handler = layoutService.getTabbarHandler('explorer');
|
|
158
|
+
handler.onActivate(() => {console.log('explorer tab activated!')});
|
|
159
|
+
handler.activate();
|
|
160
|
+
```
|
|
161
|
+
#### `collectTabbarComponent()`
|
|
162
|
+
|
|
163
|
+
```js
|
|
164
|
+
collectTabbarComponent(views: View[], options: ViewContainerOptions, side: string): string
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
仅在支持多视图注册、可折叠展开的Slot可用。往指定Slot注册一个或多个视图(若指定Slot不支持多个子视图,则只会渲染第一个)。支持自定义视图的标题组件`titleComponent`,标题组件为侧边栏顶部区域或底部栏的左上角区域。
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
#### `disposeContainer()`
|
|
171
|
+
|
|
172
|
+
```js
|
|
173
|
+
disposeContainer(containerId: string): void
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
仅在支持多视图注册、可折叠展开的Slot可用。销毁一个已注册的视图面板。
|
|
177
|
+
|
|
178
|
+
#### `collectViewComponent()`
|
|
179
|
+
|
|
180
|
+
```js
|
|
181
|
+
collectViewComponent(view: View, containerId: string, props: any = {}): string
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
仅在支持多子视图渲染的Slot可用。往一个视图面板内加入新的子视图面板,支持传入自定义的默认props。
|
|
185
|
+
|
|
186
|
+
#### `replaceViewComponent()`
|
|
187
|
+
|
|
188
|
+
```js
|
|
189
|
+
replaceViewComponent(view: View, props?: any): void
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
仅在支持多子视图渲染的Slot可用。替换一个已存在的子视图,一般用于预加载场景下,替换加载中的占位视图。
|
|
193
|
+
|
|
194
|
+
#### `disposeViewComponent()`
|
|
195
|
+
|
|
196
|
+
```js
|
|
197
|
+
disposeViewComponent(viewId: string): void
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
仅在支持多子视图渲染的Slot可用。销毁一个已经注册的子视图。
|
|
201
|
+
|
|
202
|
+
#### `revealView()`
|
|
203
|
+
|
|
204
|
+
```js
|
|
205
|
+
revealView(viewId: string): void
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
仅在支持多子视图渲染的Slot可用。强制展开一个子视图,注意该方法并不会保证子视图所在的视图容器可见。
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## TabbarService
|
|
213
|
+
|
|
214
|
+
`DI Token: TabbarServiceFactory`
|
|
215
|
+
|
|
216
|
+
面向多视图注册、可折叠展开的Slot使用的视图激活控制服务。
|
|
217
|
+
|
|
218
|
+
### Properties
|
|
219
|
+
|
|
220
|
+
#### `onCurrentChange`
|
|
221
|
+
|
|
222
|
+
```js
|
|
223
|
+
readonly onCurrentChange: Event<{previousId: string; currentId: string}>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
当前激活视图变化的事件
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
##### Example
|
|
230
|
+
|
|
231
|
+
```js
|
|
232
|
+
tabbarService.onCurrentChange((e) => {
|
|
233
|
+
console.log(e.currentId, e.previousId);
|
|
234
|
+
});
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Methods
|
|
238
|
+
|
|
239
|
+
#### `registerContainer()`
|
|
240
|
+
|
|
241
|
+
```js
|
|
242
|
+
registerContainer(containerId: string, componentInfo: ComponentRegistryInfo): IDisposable
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
注册一个新的视图容器。返回一个销毁该容器及其所有副作用的句柄。
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
# React 组件
|
|
250
|
+
|
|
251
|
+
## `<TabRendererBase />`
|
|
252
|
+
|
|
253
|
+
### props
|
|
254
|
+
|
|
255
|
+
#### `side`
|
|
256
|
+
|
|
257
|
+
```js
|
|
258
|
+
side: string;
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
#### `className`
|
|
262
|
+
|
|
263
|
+
```js
|
|
264
|
+
className?: string;
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
#### `components`
|
|
268
|
+
|
|
269
|
+
```js
|
|
270
|
+
components: ComponentRegistryInfo[];
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
#### `direction`
|
|
274
|
+
|
|
275
|
+
```js
|
|
276
|
+
direction?: Layout.direction;
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
#### `TabbarView`
|
|
280
|
+
|
|
281
|
+
```js
|
|
282
|
+
TabbarView: React.FC;
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
#### `TabpanelView`
|
|
286
|
+
|
|
287
|
+
```js
|
|
288
|
+
TabpanelView: React.FC;
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
#### `noAccordion`
|
|
292
|
+
|
|
293
|
+
```js
|
|
294
|
+
noAccordion?: boolean;
|
|
295
|
+
```
|
|
296
|
+
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/// <reference types="lodash" />
|
|
2
|
+
/// <reference types="react" />
|
|
3
|
+
import { View, WithEventBus, ResizeEvent, Event } from '@opensumi/ide-core-browser';
|
|
4
|
+
import { SplitPanelManager, SplitPanelService } from '@opensumi/ide-core-browser/lib/components/layout/split-panel.service';
|
|
5
|
+
import { AbstractContextMenuService, AbstractMenuService, IMenu, IMenuRegistry } from '@opensumi/ide-core-browser/lib/menu/next';
|
|
6
|
+
export interface SectionState {
|
|
7
|
+
collapsed: boolean;
|
|
8
|
+
hidden: boolean;
|
|
9
|
+
size?: number;
|
|
10
|
+
nextSize?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class AccordionService extends WithEventBus {
|
|
13
|
+
containerId: string;
|
|
14
|
+
private noRestore?;
|
|
15
|
+
protected splitPanelManager: SplitPanelManager;
|
|
16
|
+
protected menuService: AbstractMenuService;
|
|
17
|
+
protected ctxMenuService: AbstractContextMenuService;
|
|
18
|
+
protected menuRegistry: IMenuRegistry;
|
|
19
|
+
private commandRegistry;
|
|
20
|
+
private readonly contextMenuRenderer;
|
|
21
|
+
private viewContextKeyRegistry;
|
|
22
|
+
private contextKeyService;
|
|
23
|
+
private layoutState;
|
|
24
|
+
private progressService;
|
|
25
|
+
protected splitPanelService: SplitPanelService;
|
|
26
|
+
private forceRevealContextKeys;
|
|
27
|
+
private viewWhenContextkeys;
|
|
28
|
+
private appendedViewSet;
|
|
29
|
+
private viewsWithContextKey;
|
|
30
|
+
views: View[];
|
|
31
|
+
state: {
|
|
32
|
+
[viewId: string]: SectionState;
|
|
33
|
+
};
|
|
34
|
+
forceUpdate: number;
|
|
35
|
+
rendered: boolean;
|
|
36
|
+
private headerSize;
|
|
37
|
+
private minSize;
|
|
38
|
+
private menuId;
|
|
39
|
+
private toDispose;
|
|
40
|
+
private topViewKey;
|
|
41
|
+
private scopedCtxKeyService;
|
|
42
|
+
private beforeAppendViewEmitter;
|
|
43
|
+
onBeforeAppendViewEvent: Event<string>;
|
|
44
|
+
private afterAppendViewEmitter;
|
|
45
|
+
onAfterAppendViewEvent: Event<string>;
|
|
46
|
+
private afterDisposeViewEmitter;
|
|
47
|
+
onAfterDisposeViewEvent: Event<string>;
|
|
48
|
+
constructor(containerId: string, noRestore?: boolean | undefined);
|
|
49
|
+
tryUpdateResize(): void;
|
|
50
|
+
restoreState(): void;
|
|
51
|
+
restoreSize(): void;
|
|
52
|
+
initConfig(config: {
|
|
53
|
+
headerSize: number;
|
|
54
|
+
minSize: number;
|
|
55
|
+
}): void;
|
|
56
|
+
getSectionToolbarMenu(viewId: string): IMenu;
|
|
57
|
+
appendView(view: View, replace?: boolean): void;
|
|
58
|
+
disposeView(viewId: string): void;
|
|
59
|
+
revealView(viewId: string): void;
|
|
60
|
+
disposeAll(): void;
|
|
61
|
+
protected onResize(e: ResizeEvent): void;
|
|
62
|
+
private doUpdateResize;
|
|
63
|
+
private getPanelFullHeight;
|
|
64
|
+
protected listenWindowResize(): void;
|
|
65
|
+
private createRevealContextKey;
|
|
66
|
+
protected storeState: import("lodash").DebouncedFunc<() => void>;
|
|
67
|
+
private registerGlobalToggleCommand;
|
|
68
|
+
private registerVisibleToggleCommand;
|
|
69
|
+
protected doToggleView(viewId: string, forceShow?: boolean): void;
|
|
70
|
+
popViewKeyIfOnlyOneViewVisible(): void;
|
|
71
|
+
toggleViewVisibility(viewId: string, show?: boolean): void;
|
|
72
|
+
get visibleViews(): View[];
|
|
73
|
+
get expandedViews(): View[];
|
|
74
|
+
toggleOpen(viewId: string, collapsed: boolean): void;
|
|
75
|
+
handleSectionClick(viewId: string, collapsed: boolean, index: number): void;
|
|
76
|
+
handleContextMenu(event: React.MouseEvent, viewId?: string): void;
|
|
77
|
+
getViewState(viewId: string): SectionState;
|
|
78
|
+
protected doToggleOpen(viewId: string, collapsed: boolean, index: number, noAnimation?: boolean): void;
|
|
79
|
+
protected setSize(index: number, targetSize: number, isIncrement?: boolean, noAnimation?: boolean): number;
|
|
80
|
+
protected getAvailableSize(): number;
|
|
81
|
+
private handleContextKeyChange;
|
|
82
|
+
private fillKeysInWhenExpr;
|
|
83
|
+
}
|
|
84
|
+
export declare const AccordionServiceFactory: unique symbol;
|
|
85
|
+
//# sourceMappingURL=accordion.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.service.d.ts","sourceRoot":"","sources":["../../../src/browser/accordion/accordion.service.ts"],"names":[],"mappings":"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"}
|