@yelon/bis 15.2.6 → 16.0.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.
Files changed (84) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +23 -23
  3. package/{esm2020 → esm2022}/bis.mjs +4 -4
  4. package/{esm2020 → esm2022}/index.mjs +1 -1
  5. package/{esm2020 → esm2022}/layout/bis.config.mjs +10 -10
  6. package/{esm2020 → esm2022}/layout/html-names.mjs +32 -32
  7. package/{esm2020 → esm2022}/layout/icon/style-icons.mjs +795 -795
  8. package/{esm2020 → esm2022}/layout/layout-basic/index.mjs +2 -2
  9. package/{esm2020 → esm2022}/layout/layout-basic/interface.mjs +6 -6
  10. package/{esm2020 → esm2022}/layout/layout-basic/layout-basic.component.mjs +356 -356
  11. package/{esm2020 → esm2022}/layout/layout-nav/index.mjs +4 -4
  12. package/esm2022/layout/layout-nav/layout-nav-application.component.mjs +328 -0
  13. package/{esm2020 → esm2022}/layout/layout-nav/layout-nav-group.component.mjs +125 -124
  14. package/esm2022/layout/layout-nav/layout-nav-tile.component.mjs +16 -0
  15. package/{esm2020 → esm2022}/layout/layout-nav/types.mjs +1 -1
  16. package/{esm2020 → esm2022}/layout/layout.mjs +4 -4
  17. package/{esm2020 → esm2022}/layout/public_api.mjs +12 -12
  18. package/{esm2020 → esm2022}/layout/widgets/index.mjs +6 -6
  19. package/esm2022/layout/widgets/yunzai-clear-storage.component.mjs +46 -0
  20. package/esm2022/layout/widgets/yunzai-fullscreen.component.mjs +46 -0
  21. package/{esm2020 → esm2022}/layout/widgets/yunzai-i18n.component.mjs +147 -146
  22. package/esm2022/layout/widgets/yunzai-notify.component.mjs +184 -0
  23. package/esm2022/layout/widgets/yunzai-theme-btn.component.mjs +202 -0
  24. package/esm2022/layout/widgets/yunzai-user.component.mjs +131 -0
  25. package/esm2022/layout/yunzai-act.guard.mjs +108 -0
  26. package/{esm2020 → esm2022}/layout/yunzai-auth.service.mjs +174 -174
  27. package/{esm2020 → esm2022}/layout/yunzai-default.interceptor.mjs +209 -209
  28. package/{esm2020 → esm2022}/layout/yunzai-i18n.service.mjs +131 -131
  29. package/{esm2020 → esm2022}/layout/yunzai-lang.mjs +113 -113
  30. package/esm2022/layout/yunzai-layout.module.mjs +77 -0
  31. package/{esm2020 → esm2022}/layout/yunzai-startup.service.mjs +157 -157
  32. package/{esm2020 → esm2022}/public_api.mjs +1 -1
  33. package/{fesm2015 → fesm2022}/bis.mjs +6 -6
  34. package/{fesm2020 → fesm2022}/layout.mjs +3245 -3245
  35. package/{fesm2015 → fesm2022}/layout.mjs.map +1 -1
  36. package/index.d.ts +1 -1
  37. package/index.less +1 -1
  38. package/layout/bis.config.d.ts +3 -3
  39. package/layout/html-names.d.ts +31 -31
  40. package/layout/icon/style-icons.d.ts +1 -1
  41. package/layout/index.d.ts +5 -5
  42. package/layout/layout-basic/index.d.ts +2 -2
  43. package/layout/layout-basic/interface.d.ts +24 -24
  44. package/layout/layout-basic/layout-basic.component.d.ts +32 -32
  45. package/layout/layout-nav/index.d.ts +4 -4
  46. package/layout/layout-nav/layout-nav-application.component.d.ts +27 -27
  47. package/layout/layout-nav/layout-nav-group.component.d.ts +17 -17
  48. package/layout/layout-nav/layout-nav-tile.component.d.ts +6 -6
  49. package/layout/layout-nav/types.d.ts +15 -15
  50. package/layout/public_api.d.ts +12 -12
  51. package/layout/style/index.less +154 -154
  52. package/layout/widgets/index.d.ts +6 -6
  53. package/layout/widgets/yunzai-clear-storage.component.d.ts +11 -11
  54. package/layout/widgets/yunzai-fullscreen.component.d.ts +8 -8
  55. package/layout/widgets/yunzai-i18n.component.d.ts +21 -21
  56. package/layout/widgets/yunzai-notify.component.d.ts +30 -30
  57. package/layout/widgets/yunzai-theme-btn.component.d.ts +32 -32
  58. package/layout/widgets/yunzai-user.component.d.ts +28 -28
  59. package/layout/yunzai-act.guard.d.ts +22 -22
  60. package/layout/yunzai-auth.service.d.ts +21 -21
  61. package/layout/yunzai-default.interceptor.d.ts +27 -27
  62. package/layout/yunzai-i18n.service.d.ts +33 -33
  63. package/layout/yunzai-lang.d.ts +11 -11
  64. package/layout/yunzai-layout.module.d.ts +21 -21
  65. package/layout/yunzai-startup.service.d.ts +37 -37
  66. package/package.json +39 -47
  67. package/public_api.d.ts +2 -2
  68. package/theme-compact.less +3 -3
  69. package/theme-dark.less +46 -46
  70. package/theme-default.less +46 -46
  71. package/esm2020/layout/layout-nav/layout-nav-application.component.mjs +0 -327
  72. package/esm2020/layout/layout-nav/layout-nav-tile.component.mjs +0 -15
  73. package/esm2020/layout/widgets/yunzai-clear-storage.component.mjs +0 -45
  74. package/esm2020/layout/widgets/yunzai-fullscreen.component.mjs +0 -45
  75. package/esm2020/layout/widgets/yunzai-notify.component.mjs +0 -183
  76. package/esm2020/layout/widgets/yunzai-theme-btn.component.mjs +0 -201
  77. package/esm2020/layout/widgets/yunzai-user.component.mjs +0 -130
  78. package/esm2020/layout/yunzai-act.guard.mjs +0 -107
  79. package/esm2020/layout/yunzai-layout.module.mjs +0 -76
  80. package/fesm2015/layout.mjs +0 -3236
  81. package/fesm2020/bis.mjs +0 -6
  82. package/fesm2020/bis.mjs.map +0 -1
  83. package/fesm2020/layout.mjs.map +0 -1
  84. /package/{fesm2015 → fesm2022}/bis.mjs.map +0 -0
@@ -1,5 +1,5 @@
1
- export * from './layout-nav-application.component';
2
- export * from './layout-nav-group.component';
3
- export * from './layout-nav-tile.component';
4
- export * from './types';
1
+ export * from './layout-nav-application.component';
2
+ export * from './layout-nav-group.component';
3
+ export * from './layout-nav-tile.component';
4
+ export * from './types';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L2xheW91dC1uYXYvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xheW91dC1uYXYtYXBwbGljYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGF5b3V0LW5hdi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sYXlvdXQtbmF2LXRpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -0,0 +1,328 @@
1
+ import { Component } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import { WINDOW } from '@yelon/util';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@yelon/cache";
6
+ import * as i2 from "../yunzai-i18n.service";
7
+ import * as i3 from "@yelon/theme";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@angular/forms";
10
+ import * as i6 from "ng-zorro-antd/core/transition-patch";
11
+ import * as i7 from "ng-zorro-antd/grid";
12
+ import * as i8 from "ng-zorro-antd/icon";
13
+ import * as i9 from "ng-zorro-antd/input";
14
+ class LayoutNavApplicationComponent {
15
+ constructor(cacheService, i18n, http, inject) {
16
+ this.cacheService = cacheService;
17
+ this.i18n = i18n;
18
+ this.http = http;
19
+ this.inject = inject;
20
+ this.state = {
21
+ active: false,
22
+ type: 'all',
23
+ topic: undefined,
24
+ topics: [],
25
+ list: [],
26
+ search: null,
27
+ destroy$: new Subject()
28
+ };
29
+ }
30
+ ngOnInit() {
31
+ this.fetchAllTopic();
32
+ this.attachNav('all');
33
+ }
34
+ fetchAllTopic() {
35
+ this.state.topics = this.cacheService.get('_yz_header', { mode: 'none' });
36
+ }
37
+ attachNav(type, topic) {
38
+ this.state.type = type;
39
+ this.clearSearch();
40
+ if (type === 'all') {
41
+ this.displayAllNav();
42
+ }
43
+ if (type === 'mine') {
44
+ this.displayMineNav();
45
+ }
46
+ if (type === 'other' && topic) {
47
+ this.displayOtherNav(topic);
48
+ }
49
+ }
50
+ clearSearch() {
51
+ this.state.search = null;
52
+ }
53
+ displayAllNav() {
54
+ this.state.list = this.cacheService.get('_yz_header', { mode: 'none' });
55
+ }
56
+ displayMineNav() {
57
+ const temp = this.cacheService.get('_yz_header', { mode: 'none' });
58
+ this.state.list = temp
59
+ .filter((topic) => {
60
+ topic.children = topic.children.filter((child) => {
61
+ return child.auth;
62
+ });
63
+ return topic;
64
+ })
65
+ .filter((topic) => {
66
+ return topic.children.length > 0;
67
+ });
68
+ }
69
+ displayOtherNav(topic) {
70
+ this.state.topic = topic;
71
+ const temp = this.cacheService.get('_yz_header', { mode: 'none' });
72
+ this.state.list = temp.filter(t => t.key === topic.key)[0].children;
73
+ }
74
+ diffChange(flag) {
75
+ if (flag) {
76
+ this.state.active = flag;
77
+ }
78
+ else {
79
+ this.state.active = !this.state.active;
80
+ }
81
+ }
82
+ open(topic) {
83
+ if (topic.key) {
84
+ this.http
85
+ .post(`/app-manager/web-scan/save`, {
86
+ appId: topic.key,
87
+ createDate: new Date()
88
+ })
89
+ .pipe(takeUntil(this.state.destroy$))
90
+ .subscribe();
91
+ }
92
+ switch (topic.target) {
93
+ case 'href':
94
+ this.inject.get(WINDOW).location.href = topic.url;
95
+ break;
96
+ case 'blank':
97
+ this.inject.get(WINDOW).location.href = topic.url;
98
+ break;
99
+ case 'target':
100
+ this.inject.get(WINDOW).location.href = topic.url;
101
+ break;
102
+ default:
103
+ this.inject.get(WINDOW).location.href = topic.url;
104
+ break;
105
+ }
106
+ }
107
+ onSearch() {
108
+ const temp = this.cacheService.get('_yz_header', { mode: 'none' });
109
+ if (this.state.search) {
110
+ this.state.list = temp
111
+ .filter((topic) => {
112
+ if (this.i18n.fanyi(topic.name).includes(this.state.search)) {
113
+ return topic;
114
+ }
115
+ else {
116
+ topic.children = topic.children.filter((child) => {
117
+ return this.i18n.fanyi(child.name).includes(this.state.search);
118
+ });
119
+ return topic;
120
+ }
121
+ })
122
+ .filter((topic) => {
123
+ return topic.children.length > 0;
124
+ });
125
+ }
126
+ else {
127
+ this.state.list = this.cacheService.get('_yz_header', { mode: 'none' });
128
+ }
129
+ }
130
+ ngOnDestroy() {
131
+ this.state.destroy$.complete();
132
+ }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: LayoutNavApplicationComponent, deps: [{ token: i1.CacheService }, { token: i2.YunzaiI18NService }, { token: i3._HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.2", type: LayoutNavApplicationComponent, selector: "layout-nav-application", ngImport: i0, template: `
135
+ <!-- search start-->
136
+ <ng-template #search>
137
+ <div nz-row class="yz-application-list-search">
138
+ <nz-input-group [nzPrefix]="prefixTemplate">
139
+ <input
140
+ data-event-id="_nav_search"
141
+ type="text"
142
+ nz-input
143
+ placeholder="{{ 'application.search' | i18n }}"
144
+ [(ngModel)]="state.search"
145
+ (ngModelChange)="onSearch()"
146
+ />
147
+ <ng-template #prefixTemplate>
148
+ <i nz-icon nzType="search" nzTheme="outline"></i>
149
+ </ng-template>
150
+ </nz-input-group>
151
+ </div>
152
+ </ng-template>
153
+ <!-- search end -->
154
+
155
+ <!-- right menu start -->
156
+ <ng-template #ld>
157
+ <div class="yz-application-list">
158
+ <ul>
159
+ <li *ngFor="let topic of state.list">
160
+ <h5>{{ topic.name | i18n }}</h5>
161
+ <a
162
+ data-event-id="_nav_item"
163
+ [attr.data-name]="nav.name | i18n"
164
+ href="javascript:;"
165
+ *ngFor="let nav of topic.children"
166
+ (click)="open(nav)"
167
+ >{{ nav.name | i18n }}</a
168
+ >
169
+ </li>
170
+ </ul>
171
+ </div>
172
+ </ng-template>
173
+ <!-- right menu end -->
174
+
175
+ <!-- button start-->
176
+ <div data-event-id="_nav_app" class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'mode.nav' | i18n }}</div>
177
+ <!-- button end-->
178
+
179
+ <!-- header start-->
180
+ <div class="yz-application" nz-row *ngIf="state.active">
181
+ <div nz-col [nzSpan]="3" class="yz-application-topic">
182
+ <div data-event-id="_nav_topic" data-name="全部应用" class="yz-application-text" (click)="attachNav('all')">{{
183
+ 'mode.nav.all' | i18n
184
+ }}</div>
185
+ <div data-event-id="_nav_topic" data-name="我的应用" class="yz-application-text" (click)="attachNav('mine')">{{
186
+ 'mode.nav.mine' | i18n
187
+ }}</div>
188
+ <div
189
+ data-event-id="_nav_topic"
190
+ [attr.data-name]="nav.name | i18n"
191
+ class="yz-application-text"
192
+ *ngFor="let nav of state.topics"
193
+ (click)="attachNav('other', nav)"
194
+ >{{ nav.name | i18n }}</div
195
+ >
196
+ </div>
197
+ <div nz-col [nzSpan]="21" [ngSwitch]="state.topic" class="yz-application-container">
198
+ <div *ngIf="state.type === 'all'">
199
+ <ng-template [ngTemplateOutlet]="search"></ng-template>
200
+ <ng-template [ngTemplateOutlet]="ld"></ng-template>
201
+ </div>
202
+ <div *ngIf="state.type === 'mine'">
203
+ <ng-template [ngTemplateOutlet]="search"></ng-template>
204
+ <ng-template [ngTemplateOutlet]="ld"></ng-template>
205
+ </div>
206
+ <div *ngIf="state.type === 'other'" class="yz-application-list">
207
+ <div class="yz-application-list-item">
208
+ <ul>
209
+ <li
210
+ data-event-id="_nav_item"
211
+ [attr.data-name]="nav.name | i18n"
212
+ *ngFor="let nav of state.list"
213
+ (click)="open(nav)"
214
+ >
215
+ <a href="javascript:;">
216
+ <h4>{{ nav.name | i18n }}</h4>
217
+ <p>{{ nav.intro | i18n }}</p>
218
+ </a>
219
+ </li>
220
+ </ul>
221
+ </div>
222
+ </div>
223
+ </div>
224
+ </div>
225
+ <!-- header end-->
226
+ `, isInline: true, dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i7.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i7.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i8.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i9.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "component", type: i9.NzInputGroupComponent, selector: "nz-input-group", inputs: ["nzAddOnBeforeIcon", "nzAddOnAfterIcon", "nzPrefixIcon", "nzSuffixIcon", "nzAddOnBefore", "nzAddOnAfter", "nzPrefix", "nzStatus", "nzSuffix", "nzSize", "nzSearch", "nzCompact"], exportAs: ["nzInputGroup"] }, { kind: "directive", type: i9.NzInputGroupWhitSuffixOrPrefixDirective, selector: "nz-input-group[nzSuffix], nz-input-group[nzPrefix]" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
227
+ }
228
+ export { LayoutNavApplicationComponent };
229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: LayoutNavApplicationComponent, decorators: [{
230
+ type: Component,
231
+ args: [{
232
+ selector: `layout-nav-application`,
233
+ template: `
234
+ <!-- search start-->
235
+ <ng-template #search>
236
+ <div nz-row class="yz-application-list-search">
237
+ <nz-input-group [nzPrefix]="prefixTemplate">
238
+ <input
239
+ data-event-id="_nav_search"
240
+ type="text"
241
+ nz-input
242
+ placeholder="{{ 'application.search' | i18n }}"
243
+ [(ngModel)]="state.search"
244
+ (ngModelChange)="onSearch()"
245
+ />
246
+ <ng-template #prefixTemplate>
247
+ <i nz-icon nzType="search" nzTheme="outline"></i>
248
+ </ng-template>
249
+ </nz-input-group>
250
+ </div>
251
+ </ng-template>
252
+ <!-- search end -->
253
+
254
+ <!-- right menu start -->
255
+ <ng-template #ld>
256
+ <div class="yz-application-list">
257
+ <ul>
258
+ <li *ngFor="let topic of state.list">
259
+ <h5>{{ topic.name | i18n }}</h5>
260
+ <a
261
+ data-event-id="_nav_item"
262
+ [attr.data-name]="nav.name | i18n"
263
+ href="javascript:;"
264
+ *ngFor="let nav of topic.children"
265
+ (click)="open(nav)"
266
+ >{{ nav.name | i18n }}</a
267
+ >
268
+ </li>
269
+ </ul>
270
+ </div>
271
+ </ng-template>
272
+ <!-- right menu end -->
273
+
274
+ <!-- button start-->
275
+ <div data-event-id="_nav_app" class="yunzai-default__nav-item" (click)="diffChange()"> {{ 'mode.nav' | i18n }}</div>
276
+ <!-- button end-->
277
+
278
+ <!-- header start-->
279
+ <div class="yz-application" nz-row *ngIf="state.active">
280
+ <div nz-col [nzSpan]="3" class="yz-application-topic">
281
+ <div data-event-id="_nav_topic" data-name="全部应用" class="yz-application-text" (click)="attachNav('all')">{{
282
+ 'mode.nav.all' | i18n
283
+ }}</div>
284
+ <div data-event-id="_nav_topic" data-name="我的应用" class="yz-application-text" (click)="attachNav('mine')">{{
285
+ 'mode.nav.mine' | i18n
286
+ }}</div>
287
+ <div
288
+ data-event-id="_nav_topic"
289
+ [attr.data-name]="nav.name | i18n"
290
+ class="yz-application-text"
291
+ *ngFor="let nav of state.topics"
292
+ (click)="attachNav('other', nav)"
293
+ >{{ nav.name | i18n }}</div
294
+ >
295
+ </div>
296
+ <div nz-col [nzSpan]="21" [ngSwitch]="state.topic" class="yz-application-container">
297
+ <div *ngIf="state.type === 'all'">
298
+ <ng-template [ngTemplateOutlet]="search"></ng-template>
299
+ <ng-template [ngTemplateOutlet]="ld"></ng-template>
300
+ </div>
301
+ <div *ngIf="state.type === 'mine'">
302
+ <ng-template [ngTemplateOutlet]="search"></ng-template>
303
+ <ng-template [ngTemplateOutlet]="ld"></ng-template>
304
+ </div>
305
+ <div *ngIf="state.type === 'other'" class="yz-application-list">
306
+ <div class="yz-application-list-item">
307
+ <ul>
308
+ <li
309
+ data-event-id="_nav_item"
310
+ [attr.data-name]="nav.name | i18n"
311
+ *ngFor="let nav of state.list"
312
+ (click)="open(nav)"
313
+ >
314
+ <a href="javascript:;">
315
+ <h4>{{ nav.name | i18n }}</h4>
316
+ <p>{{ nav.intro | i18n }}</p>
317
+ </a>
318
+ </li>
319
+ </ul>
320
+ </div>
321
+ </div>
322
+ </div>
323
+ </div>
324
+ <!-- header end-->
325
+ `
326
+ }]
327
+ }], ctorParameters: function () { return [{ type: i1.CacheService }, { type: i2.YunzaiI18NService }, { type: i3._HttpClient }, { type: i0.Injector }]; } });
328
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW5hdi1hcHBsaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9iaXMvbGF5b3V0L2xheW91dC1uYXYvbGF5b3V0LW5hdi1hcHBsaWNhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7QUFLckMsTUFnR2EsNkJBQTZCO0lBV3hDLFlBQ1UsWUFBMEIsRUFDMUIsSUFBdUIsRUFDdkIsSUFBaUIsRUFDakIsTUFBZ0I7UUFIaEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBZDFCLFVBQUssR0FBOEI7WUFDakMsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEVBQUU7WUFDUixNQUFNLEVBQUUsSUFBSTtZQUNaLFFBQVEsRUFBRSxJQUFJLE9BQU8sRUFBTztTQUM3QixDQUFDO0lBT0MsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxN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dCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlLCBZdW56YWlOYXZUb3BpYyB9IGZyb20gJ0B5ZWxvbi9jYWNoZSc7XG5pbXBvcnQgeyBfSHR0cENsaWVudCB9IGZyb20gJ0B5ZWxvbi90aGVtZSc7XG5pbXBvcnQgeyBXSU5ET1cgfSBmcm9tICdAeWVsb24vdXRpbCc7XG5cbmltcG9ydCB7IFl1bnphaUkxOE5TZXJ2aWNlIH0gZnJvbSAnLi4veXVuemFpLWkxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBMYXlvdXROYXZBcHBsaWNhdGlvblN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogYGxheW91dC1uYXYtYXBwbGljYXRpb25gLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0gICAgICBzZWFyY2ggc3RhcnQtLT5cbiAgICA8bmctdGVtcGxhdGUgI3NlYXJjaD5cbiAgICAgIDxkaXYgbnotcm93IGNsYXNzPVwieXotYXBwbGljYXRpb24tbGlzdC1zZWFyY2hcIj5cbiAgICAgICAgPG56LWlucHV0LWdyb3VwIFtuelByZWZpeF09XCJwcmVmaXhUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgZGF0YS1ldmVudC1pZD1cIl9uYXZfc2VhcmNoXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdhcHBsaWNhdGlvbi5zZWFyY2gnIHwgaTE4biB9fVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInN0YXRlLnNlYXJjaFwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaCgpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHJlZml4VGVtcGxhdGU+XG4gICAgICAgICAgICA8aSBuei1pY29uIG56VHlwZT1cInNlYXJjaFwiIG56VGhlbWU9XCJvdXRsaW5lXCI+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbnotaW5wdXQtZ3JvdXA+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwhLS0gc2VhcmNoIGVuZCAtLT5cblxuICAgIDwhLS0gcmlnaHQgbWVudSBzdGFydCAtLT5cbiAgICA8bmctdGVtcGxhdGUgI2xkPlxuICAgICAgPGRpdiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3RcIj5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdG9waWMgb2Ygc3RhdGUubGlzdFwiPlxuICAgICAgICAgICAgPGg1Pnt7IHRvcGljLm5hbWUgfCBpMThuIH19PC9oNT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGRhdGEtZXZlbnQtaWQ9XCJfbmF2X2l0ZW1cIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLW5hbWVdPVwibmF2Lm5hbWUgfCBpMThuXCJcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBuYXYgb2YgdG9waWMuY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbihuYXYpXCJcbiAgICAgICAgICAgICAgPnt7IG5hdi5uYW1lIHwgaTE4biB9fTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwhLS0gcmlnaHQgbWVudSBlbmQgLS0+XG5cbiAgICA8IS0tICAgICAgYnV0dG9uIHN0YXJ0LS0+XG4gICAgPGRpdiBkYXRhLWV2ZW50LWlkPVwiX25hdl9hcHBcIiBjbGFzcz1cInl1bnphaS1kZWZhdWx0X19uYXYtaXRlbVwiIChjbGljayk9XCJkaWZmQ2hhbmdlKClcIj4ge3sgJ21vZGUubmF2JyB8IGkxOG4gfX08L2Rpdj5cbiAgICA8IS0tICAgICAgYnV0dG9uIGVuZC0tPlxuXG4gICAgPCEtLSAgICAgIGhlYWRlciBzdGFydC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvblwiIG56LXJvdyAqbmdJZj1cInN0YXRlLmFjdGl2ZVwiPlxuICAgICAgPGRpdiBuei1jb2wgW256U3Bhbl09XCIzXCIgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi10b3BpY1wiPlxuICAgICAgICA8ZGl2IGRhdGEtZXZlbnQtaWQ9XCJfbmF2X3RvcGljXCIgZGF0YS1uYW1lPVwi5YWo6YOo5bqU55SoXCIgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi10ZXh0XCIgKGNsaWNrKT1cImF0dGFjaE5hdignYWxsJylcIj57e1xuICAgICAgICAgICdtb2RlLm5hdi5hbGwnIHwgaTE4blxuICAgICAgICB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGRhdGEtZXZlbnQtaWQ9XCJfbmF2X3RvcGljXCIgZGF0YS1uYW1lPVwi5oiR55qE5bqU55SoXCIgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi10ZXh0XCIgKGNsaWNrKT1cImF0dGFjaE5hdignbWluZScpXCI+e3tcbiAgICAgICAgICAnbW9kZS5uYXYubWluZScgfCBpMThuXG4gICAgICAgIH19PC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWV2ZW50LWlkPVwiX25hdl90b3BpY1wiXG4gICAgICAgICAgW2F0dHIuZGF0YS1uYW1lXT1cIm5hdi5uYW1lIHwgaTE4blwiXG4gICAgICAgICAgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi10ZXh0XCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbmF2IG9mIHN0YXRlLnRvcGljc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImF0dGFjaE5hdignb3RoZXInLCBuYXYpXCJcbiAgICAgICAgICA+e3sgbmF2Lm5hbWUgfCBpMThuIH19PC9kaXZcbiAgICAgICAgPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IG56LWNvbCBbbnpTcGFuXT1cIjIxXCIgW25nU3dpdGNoXT1cInN0YXRlLnRvcGljXCIgY2xhc3M9XCJ5ei1hcHBsaWNhdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInN0YXRlLnR5cGUgPT09ICdhbGwnXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxkXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzdGF0ZS50eXBlID09PSAnbWluZSdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInN0YXRlLnR5cGUgPT09ICdvdGhlcidcIiBjbGFzcz1cInl6LWFwcGxpY2F0aW9uLWxpc3RcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieXotYXBwbGljYXRpb24tbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgIGRhdGEtZXZlbnQtaWQ9XCJfbmF2X2l0ZW1cIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbmFtZV09XCJuYXYubmFtZSB8IGkxOG5cIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBuYXYgb2Ygc3RhdGUubGlzdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW4obmF2KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCI+XG4gICAgICAgICAgICAgICAgICA8aDQ+e3sgbmF2Lm5hbWUgfCBpMThuIH19PC9oND5cbiAgICAgICAgICAgICAgICAgIDxwPnt7IG5hdi5pbnRybyB8IGkxOG4gfX08L3A+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tICAgICAgaGVhZGVyIGVuZC0tPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIExheW91dE5hdkFwcGxpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0ZTogTGF5b3V0TmF2QXBwbGljYXRpb25TdGF0ZSA9IHtcbiAgICBhY3RpdmU6IGZhbHNlLFxuICAgIHR5cGU6ICdhbGwnLFxuICAgIHRvcGljOiB1bmRlZmluZWQsXG4gICAgdG9waWNzOiBbXSxcbiAgICBsaXN0OiBbXSxcbiAgICBzZWFyY2g6IG51bGwsXG4gICAgZGVzdHJveSQ6IG5ldyBTdWJqZWN0PGFueT4oKVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FjaGVTZXJ2aWNlOiBDYWNoZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpMThuOiBZdW56YWlJMThOU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IF9IdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgaW5qZWN0OiBJbmplY3RvclxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZXRjaEFsbFRvcGljKCk7XG4gICAgdGhpcy5hdHRhY2hOYXYoJ2FsbCcpO1xuICB9XG5cbiAgZmV0Y2hBbGxUb3BpYygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnRvcGljcyA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldCgnX3l6X2hlYWRlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICB9XG5cbiAgYXR0YWNoTmF2KHR5cGU6ICdhbGwnIHwgJ21pbmUnIHwgJ290aGVyJywgdG9waWM/OiBZdW56YWlOYXZUb3BpYyk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5jbGVhclNlYXJjaCgpO1xuICAgIGlmICh0eXBlID09PSAnYWxsJykge1xuICAgICAgdGhpcy5kaXNwbGF5QWxsTmF2KCk7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnbWluZScpIHtcbiAgICAgIHRoaXMuZGlzcGxheU1pbmVOYXYoKTtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdvdGhlcicgJiYgdG9waWMpIHtcbiAgICAgIHRoaXMuZGlzcGxheU90aGVyTmF2KHRvcGljKTtcbiAgICB9XG4gIH1cblxuICBjbGVhclNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnNlYXJjaCA9IG51bGw7XG4gIH1cblxuICBkaXNwbGF5QWxsTmF2KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUubGlzdCA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldCgnX3l6X2hlYWRlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICB9XG5cbiAgZGlzcGxheU1pbmVOYXYoKTogdm9pZCB7XG4gICAgY29uc3QgdGVtcDogWXVuemFpTmF2VG9waWNbXSA9IHRoaXMuY2FjaGVTZXJ2aWNlLmdldCgnX3l6X2hlYWRlcicsIHsgbW9kZTogJ25vbmUnIH0pO1xuICAgIHRoaXMuc3RhdGUubGlzdCA9IHRlbXBcbiAgICAgIC5maWx0ZXIoKHRvcGljOiBZdW56YWlOYXZUb3BpYykgPT4ge1xuICAgICAgICB0b3BpYy5jaGlsZHJlbiA9IHRvcGljLmNoaWxkcmVuLmZpbHRlcigoY2hpbGQ6IFl1bnphaU5hdlRvcGljKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNoaWxkLmF1dGg7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdG9waWM7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigodG9waWM6IFl1bnphaU5hdlRvcGljKSA9PiB7XG4gICAgICAgIHJldHVybiB0b3BpYy5jaGlsZHJlbi5sZW5ndGggPiAwO1xuICAgICAgfSk7XG4gIH1cblxuICBkaXNwbGF5T3RoZXJOYXYodG9waWM6IFl1bnphaU5hdlRvcGljKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS50b3BpYyA9IHRvcGljO1xuICAgIGNvbnN0IHRlbXA6IFl1bnphaU5hdlRvcGljW10gPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el9oZWFkZXInLCB7IG1vZGU6ICdub25lJyB9KTtcbiAgICB0aGlzLnN0YXRlLmxpc3QgPSB0ZW1wLmZpbHRlcih0ID0+IHQua2V5ID09PSB0b3BpYy5rZXkpWzBdLmNoaWxkcmVuO1xuICB9XG5cbiAgZGlmZkNoYW5nZShmbGFnPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChmbGFnKSB7XG4gICAgICB0aGlzLnN0YXRlLmFjdGl2ZSA9IGZsYWc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGUuYWN0aXZlID0gIXRoaXMuc3RhdGUuYWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4odG9waWM6IFl1bnphaU5hdlRvcGljKTogdm9pZCB7XG4gICAgaWYgKHRvcGljLmtleSkge1xuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5wb3N0KGAvYXBwLW1hbmFnZXIvd2ViLXNjYW4vc2F2ZWAsIHtcbiAgICAgICAgICBhcHBJZDogdG9waWMua2V5LFxuICAgICAgICAgIGNyZWF0ZURhdGU6IG5ldyBEYXRlKClcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuc3RhdGUuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHN3aXRjaCAodG9waWMudGFyZ2V0KSB7XG4gICAgICBjYXNlICdocmVmJzpcbiAgICAgICAgdGhpcy5pbmplY3QuZ2V0KFdJTkRPVykubG9jYXRpb24uaHJlZiA9IHRvcGljLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdibGFuayc6XG4gICAgICAgIHRoaXMuaW5qZWN0LmdldChXSU5ET1cpLmxvY2F0aW9uLmhyZWYgPSB0b3BpYy51cmw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGFyZ2V0JzpcbiAgICAgICAgdGhpcy5pbmplY3QuZ2V0KFdJTkRPVykubG9jYXRpb24uaHJlZiA9IHRvcGljLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmluamVjdC5nZXQoV0lORE9XKS5sb2NhdGlvbi5ocmVmID0gdG9waWMudXJsO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaCgpOiB2b2lkIHtcbiAgICBjb25zdCB0ZW1wOiBZdW56YWlOYXZUb3BpY1tdID0gdGhpcy5jYWNoZVNlcnZpY2UuZ2V0KCdfeXpfaGVhZGVyJywgeyBtb2RlOiAnbm9uZScgfSk7XG4gICAgaWYgKHRoaXMuc3RhdGUuc2VhcmNoKSB7XG4gICAgICB0aGlzLnN0YXRlLmxpc3QgPSB0ZW1wXG4gICAgICAgIC5maWx0ZXIoKHRvcGljOiBZdW56YWlOYXZUb3BpYykgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmkxOG4uZmFueWkodG9waWMubmFtZSkuaW5jbHVkZXModGhpcy5zdGF0ZS5zZWFyY2ghKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRvcGljO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0b3BpYy5jaGlsZHJlbiA9IHRvcGljLmNoaWxkcmVuLmZpbHRlcigoY2hpbGQ6IFl1bnphaU5hdlRvcGljKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmkxOG4uZmFueWkoY2hpbGQubmFtZSkuaW5jbHVkZXModGhpcy5zdGF0ZS5zZWFyY2ghKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRvcGljO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigodG9waWM6IFl1bnphaU5hdlRvcGljKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRvcGljLmNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXRlLmxpc3QgPSB0aGlzLmNhY2hlU2VydmljZS5nZXQoJ195el9oZWFkZXInLCB7IG1vZGU6ICdub25lJyB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==