ngx-edu-sharing-ui 10.0.20 → 10.0.22

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 (131) hide show
  1. package/assets/scss/material-theme.scss +3 -3
  2. package/assets/scss/mixins.scss +1 -1
  3. package/assets/scss/variables-root.scss +2 -0
  4. package/assets/scss/variables-scss.scss +3 -4
  5. package/assets/scss/variables.scss +1 -1
  6. package/fesm2022/ngx-edu-sharing-ui.mjs +376 -319
  7. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  8. package/lib/index.d.ts +1 -0
  9. package/lib/list-items/list-widget.d.ts +1 -1
  10. package/lib/mds-viewer/mds-editor-instance-service.abstract.d.ts +14 -0
  11. package/lib/mds-viewer/widget/mds-widget.component.d.ts +6 -4
  12. package/package.json +8 -9
  13. package/esm2022/lib/actionbar/actionbar.component.mjs +0 -206
  14. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +0 -170
  15. package/esm2022/lib/directives/border-box-observer.directive.mjs +0 -71
  16. package/esm2022/lib/directives/check-text-overflow.directive.mjs +0 -71
  17. package/esm2022/lib/directives/drag-nodes/drag-nodes.mjs +0 -14
  18. package/esm2022/lib/directives/drag-nodes/nodes-drag-source.directive.mjs +0 -79
  19. package/esm2022/lib/directives/drag-nodes/nodes-drag.directive.mjs +0 -49
  20. package/esm2022/lib/directives/drag-nodes/nodes-drop-target.directive.mjs +0 -105
  21. package/esm2022/lib/directives/focus-state.directive.mjs +0 -44
  22. package/esm2022/lib/directives/icon.directive.mjs +0 -184
  23. package/esm2022/lib/directives/infinite-scroll.directive.mjs +0 -85
  24. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -83
  25. package/esm2022/lib/edu-sharing-ui-configuration.mjs +0 -48
  26. package/esm2022/lib/edu-sharing-ui.module.mjs +0 -82
  27. package/esm2022/lib/index.mjs +0 -96
  28. package/esm2022/lib/list-items/available-widgets.mjs +0 -27
  29. package/esm2022/lib/list-items/format-duration.pipe.mjs +0 -20
  30. package/esm2022/lib/list-items/list-base/list-base.component.mjs +0 -46
  31. package/esm2022/lib/list-items/list-collection-info/list-collection-info.component.mjs +0 -29
  32. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +0 -56
  33. package/esm2022/lib/list-items/list-items.module.mjs +0 -50
  34. package/esm2022/lib/list-items/list-node-license/list-node-license.component.mjs +0 -41
  35. package/esm2022/lib/list-items/list-node-replication-source/list-node-replication-source.component.mjs +0 -47
  36. package/esm2022/lib/list-items/list-node-workflow/list-node-workflow.component.mjs +0 -24
  37. package/esm2022/lib/list-items/list-text/list-text.component.mjs +0 -106
  38. package/esm2022/lib/list-items/list-widget.mjs +0 -49
  39. package/esm2022/lib/list-items/node-row/node-row.component.mjs +0 -24
  40. package/esm2022/lib/list-items/node-source.pipe.mjs +0 -49
  41. package/esm2022/lib/mds/mds-helper.service.mjs +0 -167
  42. package/esm2022/lib/mds/mds.module.mjs +0 -16
  43. package/esm2022/lib/mds-viewer/mds-viewer.component.mjs +0 -170
  44. package/esm2022/lib/mds-viewer/mds-viewer.service.mjs +0 -18
  45. package/esm2022/lib/mds-viewer/replace-element-with-div.mjs +0 -47
  46. package/esm2022/lib/mds-viewer/view-instance.service.mjs +0 -27
  47. package/esm2022/lib/mds-viewer/widget/mds-widget.component.mjs +0 -379
  48. package/esm2022/lib/node-entries/combined-data-source.mjs +0 -41
  49. package/esm2022/lib/node-entries/custom-templates-data-source.mjs +0 -7
  50. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +0 -21
  51. package/esm2022/lib/node-entries/entries-model.mjs +0 -24
  52. package/esm2022/lib/node-entries/items-cap.mjs +0 -47
  53. package/esm2022/lib/node-entries/list-item-label.pipe.mjs +0 -37
  54. package/esm2022/lib/node-entries/node-cache.mjs +0 -73
  55. package/esm2022/lib/node-entries/node-data-source-remote.mjs +0 -4
  56. package/esm2022/lib/node-entries/node-data-source.mjs +0 -117
  57. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +0 -117
  58. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +0 -329
  59. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +0 -44
  60. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +0 -27
  61. package/esm2022/lib/node-entries/node-entries-global.service.mjs +0 -71
  62. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +0 -42
  63. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +0 -294
  64. package/esm2022/lib/node-entries/node-entries-templates.service.mjs +0 -11
  65. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +0 -369
  66. package/esm2022/lib/node-entries/node-entries.component.mjs +0 -132
  67. package/esm2022/lib/node-entries/node-entries.module.mjs +0 -161
  68. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +0 -125
  69. package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +0 -48
  70. package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +0 -36
  71. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +0 -75
  72. package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +0 -53
  73. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +0 -41
  74. package/esm2022/lib/node-url/node-url.component.mjs +0 -132
  75. package/esm2022/lib/pipes/file-size.pipe.mjs +0 -32
  76. package/esm2022/lib/pipes/format-date.pipe.mjs +0 -38
  77. package/esm2022/lib/pipes/mds-duration.pipe.mjs +0 -25
  78. package/esm2022/lib/pipes/node-icon.pipe.mjs +0 -18
  79. package/esm2022/lib/pipes/node-image-size.pipe.mjs +0 -24
  80. package/esm2022/lib/pipes/node-image.pipe.mjs +0 -55
  81. package/esm2022/lib/pipes/node-license.pipe.mjs +0 -24
  82. package/esm2022/lib/pipes/node-person-name.pipe.mjs +0 -50
  83. package/esm2022/lib/pipes/node-title.pipe.mjs +0 -35
  84. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +0 -33
  85. package/esm2022/lib/pipes/property-slug.pipe.mjs +0 -16
  86. package/esm2022/lib/pipes/replace-chars.pipe.mjs +0 -29
  87. package/esm2022/lib/pipes/vcard-name.pipe.mjs +0 -25
  88. package/esm2022/lib/services/abstract/app.service.mjs +0 -3
  89. package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +0 -10
  90. package/esm2022/lib/services/abstract/options-helper.service.mjs +0 -3
  91. package/esm2022/lib/services/abstract/toast.service.mjs +0 -3
  92. package/esm2022/lib/services/accessibility.service.mjs +0 -73
  93. package/esm2022/lib/services/app-container.service.mjs +0 -69
  94. package/esm2022/lib/services/local-events.service.mjs +0 -43
  95. package/esm2022/lib/services/node-entries.service.mjs +0 -201
  96. package/esm2022/lib/services/node-helper.service.mjs +0 -330
  97. package/esm2022/lib/services/nodes-drag-drop.service.mjs +0 -155
  98. package/esm2022/lib/services/options-helper-data.service.mjs +0 -142
  99. package/esm2022/lib/services/render-helper.service.mjs +0 -114
  100. package/esm2022/lib/services/repo-url.service.mjs +0 -50
  101. package/esm2022/lib/services/search-helper.service.mjs +0 -52
  102. package/esm2022/lib/services/temporary-storage.service.mjs +0 -48
  103. package/esm2022/lib/services/ui.service.mjs +0 -327
  104. package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +0 -50
  105. package/esm2022/lib/spinner/spinner.component.mjs +0 -19
  106. package/esm2022/lib/spinner-small/spinner-small.component.mjs +0 -18
  107. package/esm2022/lib/translations/fallback-translation-handler.mjs +0 -6
  108. package/esm2022/lib/translations/translation-loader.mjs +0 -219
  109. package/esm2022/lib/translations/translation-source.mjs +0 -11
  110. package/esm2022/lib/translations/translations.module.mjs +0 -82
  111. package/esm2022/lib/translations/translations.service.mjs +0 -238
  112. package/esm2022/lib/types/accessibillity.mjs +0 -19
  113. package/esm2022/lib/types/api-models.mjs +0 -2
  114. package/esm2022/lib/types/drag-drop.mjs +0 -2
  115. package/esm2022/lib/types/injection-tokens.mjs +0 -31
  116. package/esm2022/lib/types/keyboard-shortcuts.mjs +0 -11
  117. package/esm2022/lib/types/list-item.mjs +0 -41
  118. package/esm2022/lib/types/option-item.mjs +0 -192
  119. package/esm2022/lib/types/workflow.mjs +0 -25
  120. package/esm2022/lib/util/DateHelper.mjs +0 -200
  121. package/esm2022/lib/util/VCard.mjs +0 -278
  122. package/esm2022/lib/util/color-helper.mjs +0 -124
  123. package/esm2022/lib/util/duration-helper.mjs +0 -102
  124. package/esm2022/lib/util/functions.mjs +0 -13
  125. package/esm2022/lib/util/helper.mjs +0 -64
  126. package/esm2022/lib/util/isNumeric.mjs +0 -11
  127. package/esm2022/lib/util/rest-helper.mjs +0 -42
  128. package/esm2022/lib/util/ui-animation.mjs +0 -146
  129. package/esm2022/lib/util/ui-constants.mjs +0 -21
  130. package/esm2022/ngx-edu-sharing-ui.mjs +0 -5
  131. package/esm2022/public-api.mjs +0 -2
@@ -1,238 +0,0 @@
1
- import { Inject, Injectable, Optional } from '@angular/core';
2
- import { BehaviorSubject, from, of, of as observableOf } from 'rxjs';
3
- import { first, map, switchMap, tap } from 'rxjs/operators';
4
- import { LANGUAGES, SessionStorageService } from 'ngx-edu-sharing-api';
5
- import { I18N_CONFIG, I18nConfig } from '../types/injection-tokens';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "ngx-edu-sharing-api";
8
- import * as i2 from "@angular/router";
9
- import * as i3 from "@ngx-translate/core";
10
- import * as i4 from "../services/abstract/app.service";
11
- import * as i5 from "../types/injection-tokens";
12
- // 'none' means that only labels should be shown (for dev)
13
- const DEFAULT_SUPPORTED_LANGUAGES = [
14
- 'de',
15
- 'de-informal',
16
- 'de-no-binnen-i',
17
- 'en',
18
- 'fr',
19
- 'it',
20
- 'none',
21
- ];
22
- export class TranslationsService {
23
- constructor(config, injector,
24
- // optional, some web components may don't have it!
25
- route, i18nConfig, translate, ref, appService) {
26
- this.config = config;
27
- this.injector = injector;
28
- this.route = route;
29
- this.i18nConfig = i18nConfig;
30
- this.translate = translate;
31
- this.ref = ref;
32
- this.appService = appService;
33
- this.languageLoaded = new BehaviorSubject(false);
34
- if (!this.i18nConfig) {
35
- this.i18nConfig = new I18nConfig();
36
- }
37
- if (this.i18nConfig.obeyUserProfile) {
38
- this.injector
39
- .get(SessionStorageService)
40
- ?.observe('language')
41
- .subscribe((lang) => {
42
- // language has changed, i.e. user has different preference
43
- if (this.translate.currentLang && this.translate.currentLang !== lang) {
44
- this.initialize().subscribe(() => {
45
- this.ref.tick();
46
- });
47
- }
48
- });
49
- }
50
- }
51
- /**
52
- * Determines and configures the language to use and triggers loading of translations with
53
- * ngx-translate.
54
- *
55
- * Call this once in the app component.
56
- */
57
- initialize() {
58
- const supportedLanguages$ = from(this.config.get('supportedLanguages', DEFAULT_SUPPORTED_LANGUAGES));
59
- if (this.appService?.isRunningApp()) {
60
- return supportedLanguages$.pipe(switchMap((supportedLanguages) => this.initializeCordova(supportedLanguages)), map(() => void 0));
61
- }
62
- supportedLanguages$
63
- .pipe(tap((supportedLanguages) => {
64
- if (!supportedLanguages.includes('none')) {
65
- supportedLanguages.push('none');
66
- }
67
- }), tap((supportedLanguages) => this.translate.addLangs(supportedLanguages)),
68
- // Select queryParams.locale if set meaningfully
69
- switchMap((supportedLanguages) => (this.route ? this.route.queryParams : of(null)).pipe(first(), map((params) => {
70
- let selectedLanguage = null;
71
- if (supportedLanguages.indexOf(params?.locale) !== -1) {
72
- selectedLanguage = params?.locale;
73
- }
74
- else if (params?.locale) {
75
- if (params?.locale === 'de') {
76
- const deVariants = supportedLanguages.filter((l) => l.startsWith('de-'));
77
- if (deVariants?.length === 1) {
78
- selectedLanguage = deVariants[0];
79
- }
80
- else {
81
- console.warn(`Url requested language ${params.locale}, ` +
82
- 'but ambiguous variants are present: ' +
83
- supportedLanguages);
84
- }
85
- }
86
- else {
87
- console.warn(`Url requested language ${params.locale}, ` +
88
- 'but it was not found or is not configured in the allowed languages: ' +
89
- supportedLanguages);
90
- }
91
- }
92
- return {
93
- supportedLanguages,
94
- selectedLanguage,
95
- };
96
- }))),
97
- // Select storage.get('language') if set meaningfully
98
- switchMap(({ supportedLanguages, selectedLanguage }) => {
99
- if (selectedLanguage) {
100
- return observableOf({
101
- supportedLanguages,
102
- selectedLanguage,
103
- useStored: false,
104
- });
105
- }
106
- else {
107
- if (!this.i18nConfig.obeyUserProfile) {
108
- console.info('obeyUserProfile is disabled, using default language ' +
109
- supportedLanguages[0]);
110
- return of({
111
- supportedLanguages,
112
- selectedLanguage,
113
- useStored: false,
114
- });
115
- }
116
- return this.injector
117
- .get(SessionStorageService)
118
- .get('language')
119
- .pipe(map((storageLanguage) => {
120
- let useStored = false;
121
- if (supportedLanguages.indexOf(storageLanguage) !== -1) {
122
- selectedLanguage = storageLanguage;
123
- useStored = true;
124
- }
125
- return {
126
- supportedLanguages,
127
- selectedLanguage,
128
- useStored,
129
- };
130
- }));
131
- }
132
- }),
133
- // Use browser language if available, otherwise fall back to the first supported
134
- // language.
135
- map(({ supportedLanguages, selectedLanguage, useStored }) => {
136
- if (selectedLanguage) {
137
- return {
138
- supportedLanguages,
139
- selectedLanguage,
140
- useStored,
141
- };
142
- }
143
- else if (
144
- // Select browser language if set meaningfully
145
- supportedLanguages.indexOf(this.translate.getBrowserLang()) !== -1) {
146
- return {
147
- supportedLanguages,
148
- selectedLanguage: this.translate.getBrowserLang(),
149
- useStored,
150
- };
151
- }
152
- else {
153
- // Select first supported language
154
- return {
155
- supportedLanguages,
156
- selectedLanguage: supportedLanguages[0],
157
- useStored,
158
- };
159
- }
160
- }),
161
- // Set fallback language
162
- tap(({ supportedLanguages, selectedLanguage, useStored }) => {
163
- if (!useStored && this.i18nConfig.obeyUserProfile) {
164
- void this.injector
165
- .get(SessionStorageService)
166
- .set('language', selectedLanguage);
167
- }
168
- if (selectedLanguage === 'none') {
169
- this.translate.setDefaultLang('none');
170
- }
171
- else if (selectedLanguage?.startsWith('de-')) {
172
- this.translate.setDefaultLang('de');
173
- }
174
- else {
175
- this.translate.setDefaultLang(supportedLanguages[0]);
176
- }
177
- }),
178
- // Configure `ngx-translate` to use the determined language and trigger loading of
179
- // translations.
180
- switchMap(({ selectedLanguage }) => {
181
- // console.log('language used: ' + selectedLanguage);
182
- this.language = selectedLanguage;
183
- return this.translate.use(selectedLanguage).pipe(map(() => void 0));
184
- }))
185
- .subscribe(() => {
186
- // Notify anyone waiting for translations to be loaded.
187
- this.languageLoaded.next(true);
188
- });
189
- return this.waitForInit();
190
- }
191
- async initializeCordova(supportedLanguages = DEFAULT_SUPPORTED_LANGUAGES) {
192
- this.translate.addLangs(supportedLanguages);
193
- let language = supportedLanguages[0];
194
- this.translate.setDefaultLang(language);
195
- this.translate.use(language);
196
- this.language = language;
197
- const data = await this.appService.getLanguage();
198
- if (supportedLanguages.indexOf(data) != -1) {
199
- language = data;
200
- }
201
- this.language = language;
202
- this.translate.use(language).subscribe(() => {
203
- this.languageLoaded.next(true);
204
- });
205
- // this.translate.getTranslation(language).subscribe(() => {
206
- // });
207
- return this.waitForInit();
208
- }
209
- waitForInit() {
210
- return this.languageLoaded.pipe(first((languageLoaded) => languageLoaded), map(() => void 0));
211
- }
212
- /** Same as `translate.currentLang`. */
213
- getLanguage() {
214
- return this.language;
215
- }
216
- getISOLanguage() {
217
- return LANGUAGES[this.language];
218
- }
219
- getLocale() {
220
- return this.getISOLanguage().replace('_', '-');
221
- }
222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TranslationsService, deps: [{ token: i1.ConfigService }, { token: i0.Injector }, { token: i2.ActivatedRoute, optional: true }, { token: I18N_CONFIG, optional: true }, { token: i3.TranslateService }, { token: i0.ApplicationRef }, { token: i4.AppService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
223
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TranslationsService, providedIn: 'root' }); }
224
- }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TranslationsService, decorators: [{
226
- type: Injectable,
227
- args: [{ providedIn: 'root' }]
228
- }], ctorParameters: () => [{ type: i1.ConfigService }, { type: i0.Injector }, { type: i2.ActivatedRoute, decorators: [{
229
- type: Optional
230
- }] }, { type: i5.I18nConfig, decorators: [{
231
- type: Optional
232
- }, {
233
- type: Inject,
234
- args: [I18N_CONFIG]
235
- }] }, { type: i3.TranslateService }, { type: i0.ApplicationRef }, { type: i4.AppService, decorators: [{
236
- type: Optional
237
- }] }] });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3RyYW5zbGF0aW9ucy90cmFuc2xhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLE1BQU0sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFFcEUsMERBQTBEO0FBQzFELE1BQU0sMkJBQTJCLEdBQUc7SUFDaEMsSUFBSTtJQUNKLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osTUFBTTtDQUNULENBQUM7QUFHRixNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQ1ksTUFBcUIsRUFDckIsUUFBa0I7SUFDMUIsbURBQW1EO0lBQy9CLEtBQXFCLEVBQ0EsVUFBc0IsRUFDdkQsU0FBMkIsRUFDM0IsR0FBbUIsRUFDUCxVQUFzQjtRQVBsQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFTixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNBLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdkQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsUUFBRyxHQUFI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Q0FBQyxFQUN6QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDcEIsQ0FBQztJQUNOLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQzsrR0FwT1EsbUJBQW1CLHFIQVNKLFdBQVc7bUhBVDFCLG1CQUFtQixjQUROLE1BQU07OzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFTekIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxXQUFXOzswQkFHOUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgb2YgYXMgb2JzZXJ2YWJsZU9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UsIExBTkdVQUdFUywgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWJzdHJhY3QvYXBwLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4Tl9DT05GSUcsIEkxOG5Db25maWcgfSBmcm9tICcuLi90eXBlcy9pbmplY3Rpb24tdG9rZW5zJztcblxuLy8gJ25vbmUnIG1lYW5zIHRoYXQgb25seSBsYWJlbHMgc2hvdWxkIGJlIHNob3duIChmb3IgZGV2KVxuY29uc3QgREVGQVVMVF9TVVBQT1JURURfTEFOR1VBR0VTID0gW1xuICAgICdkZScsXG4gICAgJ2RlLWluZm9ybWFsJyxcbiAgICAnZGUtbm8tYmlubmVuLWknLFxuICAgICdlbicsXG4gICAgJ2ZyJyxcbiAgICAnaXQnLFxuICAgICdub25lJyxcbl07XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25zU2VydmljZSB7XG4gICAgcHJpdmF0ZSBsYW5ndWFnZTogc3RyaW5nO1xuICAgIHByaXZhdGUgbGFuZ3VhZ2VMb2FkZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIC8vIG9wdGlvbmFsLCBzb21lIHdlYiBjb21wb25lbnRzIG1heSBkb24ndCBoYXZlIGl0IVxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChJMThOX0NPTkZJRykgcHJpdmF0ZSBpMThuQ29uZmlnOiBJMThuQ29uZmlnLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIGlmICghdGhpcy5pMThuQ29uZmlnKSB7XG4gICAgICAgICAgICB0aGlzLmkxOG5Db25maWcgPSBuZXcgSTE4bkNvbmZpZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmkxOG5Db25maWcub2JleVVzZXJQcm9maWxlKSB7XG4gICAgICAgICAgICB0aGlzLmluamVjdG9yXG4gICAgICAgICAgICAgICAgLmdldChTZXNzaW9uU3RvcmFnZVNlcnZpY2UpXG4gICAgICAgICAgICAgICAgPy5vYnNlcnZlKCdsYW5ndWFnZScpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgobGFuZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBsYW5ndWFnZSBoYXMgY2hhbmdlZCwgaS5lLiB1c2VyIGhhcyBkaWZmZXJlbnQgcHJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcgJiYgdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcgIT09IGxhbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWYudGljaygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgYW5kIGNvbmZpZ3VyZXMgdGhlIGxhbmd1YWdlIHRvIHVzZSBhbmQgdHJpZ2dlcnMgbG9hZGluZyBvZiB0cmFuc2xhdGlvbnMgd2l0aFxuICAgICAqIG5neC10cmFuc2xhdGUuXG4gICAgICpcbiAgICAgKiBDYWxsIHRoaXMgb25jZSBpbiB0aGUgYXBwIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBpbml0aWFsaXplKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCBzdXBwb3J0ZWRMYW5ndWFnZXMkID0gZnJvbShcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmdldCgnc3VwcG9ydGVkTGFuZ3VhZ2VzJywgREVGQVVMVF9TVVBQT1JURURfTEFOR1VBR0VTKSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuYXBwU2VydmljZT8uaXNSdW5uaW5nQXBwKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWRMYW5ndWFnZXMkLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChzdXBwb3J0ZWRMYW5ndWFnZXM6IHN0cmluZ1tdKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVDb3Jkb3ZhKHN1cHBvcnRlZExhbmd1YWdlcyksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gdm9pZCAwKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChzdXBwb3J0ZWRMYW5ndWFnZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdXBwb3J0ZWRMYW5ndWFnZXMuaW5jbHVkZXMoJ25vbmUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLnB1c2goJ25vbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRhcCgoc3VwcG9ydGVkTGFuZ3VhZ2VzOiBzdHJpbmdbXSkgPT4gdGhpcy50cmFuc2xhdGUuYWRkTGFuZ3Moc3VwcG9ydGVkTGFuZ3VhZ2VzKSksXG4gICAgICAgICAgICAgICAgLy8gU2VsZWN0IHF1ZXJ5UGFyYW1zLmxvY2FsZSBpZiBzZXQgbWVhbmluZ2Z1bGx5XG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChzdXBwb3J0ZWRMYW5ndWFnZXM6IHN0cmluZ1tdKSA9PlxuICAgICAgICAgICAgICAgICAgICAodGhpcy5yb3V0ZSA/IHRoaXMucm91dGUucXVlcnlQYXJhbXMgOiBvZihudWxsKSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZExhbmd1YWdlOiBzdHJpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0ZWRMYW5ndWFnZXMuaW5kZXhPZihwYXJhbXM/LmxvY2FsZSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2UgPSBwYXJhbXM/LmxvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcz8ubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbXM/LmxvY2FsZSA9PT0gJ2RlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVWYXJpYW50cyA9IHN1cHBvcnRlZExhbmd1YWdlcy5maWx0ZXIoKGwpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbC5zdGFydHNXaXRoKCdkZS0nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVWYXJpYW50cz8ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZSA9IGRlVmFyaWFudHNbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFVybCByZXF1ZXN0ZWQgbGFuZ3VhZ2UgJHtwYXJhbXMubG9jYWxlfSwgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnV0IGFtYmlndW91cyB2YXJpYW50cyBhcmUgcHJlc2VudDogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgVXJsIHJlcXVlc3RlZCBsYW5ndWFnZSAke3BhcmFtcy5sb2NhbGV9LCBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1dCBpdCB3YXMgbm90IGZvdW5kIG9yIGlzIG5vdCBjb25maWd1cmVkIGluIHRoZSBhbGxvd2VkIGxhbmd1YWdlczogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBzdG9yYWdlLmdldCgnbGFuZ3VhZ2UnKSBpZiBzZXQgbWVhbmluZ2Z1bGx5XG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh7IHN1cHBvcnRlZExhbmd1YWdlcywgc2VsZWN0ZWRMYW5ndWFnZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZExhbmd1YWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTdG9yZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaTE4bkNvbmZpZy5vYmV5VXNlclByb2ZpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmV5VXNlclByb2ZpbGUgaXMgZGlzYWJsZWQsIHVzaW5nIGRlZmF1bHQgbGFuZ3VhZ2UgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXNbMF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVN0b3JlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbmplY3RvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2xhbmd1YWdlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChzdG9yYWdlTGFuZ3VhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VTdG9yZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0ZWRMYW5ndWFnZXMuaW5kZXhPZihzdG9yYWdlTGFuZ3VhZ2UpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2UgPSBzdG9yYWdlTGFuZ3VhZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC8vIFVzZSBicm93c2VyIGxhbmd1YWdlIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byB0aGUgZmlyc3Qgc3VwcG9ydGVkXG4gICAgICAgICAgICAgICAgLy8gbGFuZ3VhZ2UuXG4gICAgICAgICAgICAgICAgbWFwKCh7IHN1cHBvcnRlZExhbmd1YWdlcywgc2VsZWN0ZWRMYW5ndWFnZSwgdXNlU3RvcmVkIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBicm93c2VyIGxhbmd1YWdlIGlmIHNldCBtZWFuaW5nZnVsbHlcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcy5pbmRleE9mKHRoaXMudHJhbnNsYXRlLmdldEJyb3dzZXJMYW5nKCkpICE9PSAtMVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2U6IHRoaXMudHJhbnNsYXRlLmdldEJyb3dzZXJMYW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBmaXJzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2U6IHN1cHBvcnRlZExhbmd1YWdlc1swXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTdG9yZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgLy8gU2V0IGZhbGxiYWNrIGxhbmd1YWdlXG4gICAgICAgICAgICAgICAgdGFwKCh7IHN1cHBvcnRlZExhbmd1YWdlcywgc2VsZWN0ZWRMYW5ndWFnZSwgdXNlU3RvcmVkIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VTdG9yZWQgJiYgdGhpcy5pMThuQ29uZmlnLm9iZXlVc2VyUHJvZmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCB0aGlzLmluamVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChTZXNzaW9uU3RvcmFnZVNlcnZpY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldCgnbGFuZ3VhZ2UnLCBzZWxlY3RlZExhbmd1YWdlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRMYW5ndWFnZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnbm9uZScpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkTGFuZ3VhZ2U/LnN0YXJ0c1dpdGgoJ2RlLScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZygnZGUnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKHN1cHBvcnRlZExhbmd1YWdlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAvLyBDb25maWd1cmUgYG5neC10cmFuc2xhdGVgIHRvIHVzZSB0aGUgZGV0ZXJtaW5lZCBsYW5ndWFnZSBhbmQgdHJpZ2dlciBsb2FkaW5nIG9mXG4gICAgICAgICAgICAgICAgLy8gdHJhbnNsYXRpb25zLlxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoeyBzZWxlY3RlZExhbmd1YWdlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2xhbmd1YWdlIHVzZWQ6ICcgKyBzZWxlY3RlZExhbmd1YWdlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZSA9IHNlbGVjdGVkTGFuZ3VhZ2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS51c2Uoc2VsZWN0ZWRMYW5ndWFnZSkucGlwZShtYXAoKCkgPT4gdm9pZCAwKSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBOb3RpZnkgYW55b25lIHdhaXRpbmcgZm9yIHRyYW5zbGF0aW9ucyB0byBiZSBsb2FkZWQuXG4gICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUxvYWRlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JJbml0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplQ29yZG92YShzdXBwb3J0ZWRMYW5ndWFnZXMgPSBERUZBVUxUX1NVUFBPUlRFRF9MQU5HVUFHRVMpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuYWRkTGFuZ3Moc3VwcG9ydGVkTGFuZ3VhZ2VzKTtcbiAgICAgICAgbGV0IGxhbmd1YWdlID0gc3VwcG9ydGVkTGFuZ3VhZ2VzWzBdO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZyhsYW5ndWFnZSk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5ndWFnZSk7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuYXBwU2VydmljZS5nZXRMYW5ndWFnZSgpO1xuICAgICAgICBpZiAoc3VwcG9ydGVkTGFuZ3VhZ2VzLmluZGV4T2YoZGF0YSkgIT0gLTEpIHtcbiAgICAgICAgICAgIGxhbmd1YWdlID0gZGF0YTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShsYW5ndWFnZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VMb2FkZWQubmV4dCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHRoaXMudHJhbnNsYXRlLmdldFRyYW5zbGF0aW9uKGxhbmd1YWdlKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FpdEZvckluaXQoKTtcbiAgICB9XG5cbiAgICB3YWl0Rm9ySW5pdCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VMb2FkZWQucGlwZShcbiAgICAgICAgICAgIGZpcnN0KChsYW5ndWFnZUxvYWRlZCkgPT4gbGFuZ3VhZ2VMb2FkZWQpLFxuICAgICAgICAgICAgbWFwKCgpID0+IHZvaWQgMCksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIFNhbWUgYXMgYHRyYW5zbGF0ZS5jdXJyZW50TGFuZ2AuICovXG4gICAgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2U7XG4gICAgfVxuXG4gICAgZ2V0SVNPTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIExBTkdVQUdFU1t0aGlzLmxhbmd1YWdlXTtcbiAgICB9XG5cbiAgICBnZXRMb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SVNPTGFuZ3VhZ2UoKS5yZXBsYWNlKCdfJywgJy0nKTtcbiAgICB9XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- export class AccessibilitySettings {
2
- constructor() {
3
- this.toastMode = 'all';
4
- this.toastDuration = ToastDuration.Seconds_5;
5
- this.contrastMode = false;
6
- this.indicatorIcons = true;
7
- }
8
- }
9
- export var ToastDuration;
10
- (function (ToastDuration) {
11
- ToastDuration[ToastDuration["Seconds_3"] = 3] = "Seconds_3";
12
- ToastDuration[ToastDuration["Seconds_5"] = 5] = "Seconds_5";
13
- ToastDuration[ToastDuration["Seconds_8"] = 8] = "Seconds_8";
14
- ToastDuration[ToastDuration["Seconds_15"] = 15] = "Seconds_15";
15
- ToastDuration[ToastDuration["Seconds_30"] = 30] = "Seconds_30";
16
- ToastDuration[ToastDuration["Seconds_60"] = 60] = "Seconds_60";
17
- ToastDuration[ToastDuration["Infinite"] = null] = "Infinite";
18
- })(ToastDuration || (ToastDuration = {}));
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzaWJpbGxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3R5cGVzL2FjY2Vzc2liaWxsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxxQkFBcUI7SUFBbEM7UUFDSSxjQUFTLEdBQXdCLEtBQUssQ0FBQztRQUN2QyxrQkFBYSxHQUFrQixhQUFhLENBQUMsU0FBUyxDQUFDO1FBQ3ZELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7Q0FBQTtBQUNELE1BQU0sQ0FBTixJQUFZLGFBUVg7QUFSRCxXQUFZLGFBQWE7SUFDckIsMkRBQWEsQ0FBQTtJQUNiLDJEQUFhLENBQUE7SUFDYiwyREFBYSxDQUFBO0lBQ2IsOERBQWUsQ0FBQTtJQUNmLDhEQUFlLENBQUE7SUFDZiw4REFBZSxDQUFBO0lBQ2YsMENBQVcsSUFBSSxjQUFBLENBQUE7QUFDbkIsQ0FBQyxFQVJXLGFBQWEsS0FBYixhQUFhLFFBUXhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFjY2Vzc2liaWxpdHlTZXR0aW5ncyB7XG4gICAgdG9hc3RNb2RlOiAnaW1wb3J0YW50JyB8ICdhbGwnID0gJ2FsbCc7XG4gICAgdG9hc3REdXJhdGlvbjogVG9hc3REdXJhdGlvbiA9IFRvYXN0RHVyYXRpb24uU2Vjb25kc181O1xuICAgIGNvbnRyYXN0TW9kZSA9IGZhbHNlO1xuICAgIGluZGljYXRvckljb25zID0gdHJ1ZTtcbn1cbmV4cG9ydCBlbnVtIFRvYXN0RHVyYXRpb24ge1xuICAgIFNlY29uZHNfMyA9IDMsXG4gICAgU2Vjb25kc181ID0gNSxcbiAgICBTZWNvbmRzXzggPSA4LFxuICAgIFNlY29uZHNfMTUgPSAxNSxcbiAgICBTZWNvbmRzXzMwID0gMzAsXG4gICAgU2Vjb25kc182MCA9IDYwLFxuICAgIEluZmluaXRlID0gbnVsbCxcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvdHlwZXMvYXBpLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuZXhwb3J0IGludGVyZmFjZSBWaXJ0dWFsTm9kZSBleHRlbmRzIE5vZGUge1xuICAgIHZpcnR1YWw6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogc2hvdWxkIHRoZSB2aXJ0dWFsIG5vZGUgb3ZlcnJpZGUgYW4gZXhpc3Rpbmcgbm9kZVxuICAgICAqIChpZiB1bnNldCwgZXF1YWxzIHRydWUpXG4gICAgICovXG4gICAgb3ZlcnJpZGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIG9ic2VydmUgdGhpcyBub2RlIGZvciBjaGFuZ2VzIChpLmUuIGNvbm5lY3RvciBub2RlcylcbiAgICAgKi9cbiAgICBvYnNlcnZlPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi90eXBlcy9kcmFnLWRyb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGUgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcblxuZXhwb3J0IHR5cGUgRHJvcEFjdGlvbiA9ICdtb3ZlJyB8ICdjb3B5JyB8ICdsaW5rJztcblxuZXhwb3J0IGludGVyZmFjZSBEcmFnRGF0YTxUID0gdW5rbm93bj4ge1xuICAgIGRyYWdnZWROb2RlczogTm9kZVtdO1xuICAgIGFjdGlvbjogRHJvcEFjdGlvbjtcbiAgICB0YXJnZXQ6IFQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIERyb3BUYXJnZXRTdGF0ZSB7XG4gICAgYWN0aW9uOiBEcm9wQWN0aW9uO1xuICAgIGNhbkRyb3A6IENhbkRyb3A7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuRHJvcCB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIHRhcmdldCBpcyBhIHZhbGlkIGRyb3AgdGFyZ2V0IGZvciB0aGUgZHJhZ2dlZCBub2RlcyBhbmQgdGhlIGdpdmVuIGFjdGlvbi4gKi9cbiAgICBhY2NlcHQ6IGJvb2xlYW47XG4gICAgLyoqIFdoZW4gZGVuaWVkLCB3aGV0aGVyIHRvIGV4cGxpY2l0bHkgbWFyayB0aGUgdGFyZ2V0IHdoZW4gaG92ZXJlZC4gKi9cbiAgICBkZW55RXhwbGljaXQ/OiBib29sZWFuO1xuICAgIC8qKiBBIG1lc3NhZ2UgdG8gc2hvdyB3aGVuIHRyaWVkIHRvIGRyb3Agb24gYSBkZW5pZWQgdGFyZ2V0LiAqL1xuICAgIGRlbnlSZWFzb24/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1,31 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- /**
3
- * A custom base path for the assets directory.
4
- *
5
- * This is useful when the application cannot be served from the base HREF set in index.html. This
6
- * is the case when it is embedded as a web component into another website.
7
- */
8
- export const ASSETS_BASE_PATH = new InjectionToken('ASSETS_BASE_PATH');
9
- export class I18nConfig {
10
- constructor() {
11
- /**
12
- * shall the user profile be read
13
- * If not set, defaults to true
14
- */
15
- this.obeyUserProfile = true;
16
- }
17
- }
18
- /**
19
- * additional configuration options
20
- */
21
- export const I18N_CONFIG = new InjectionToken('I18N_CONFIG');
22
- /**
23
- * custom additional uris to fetch language files from
24
- *
25
- * Might be used if additional angular modules require language data
26
- *
27
- * Example
28
- *{provide: ADDITIONAL_I18N_PROVIDER, useValue: (lang: string) => { return ['/edu-sharing/assets/i18n/myI18n/' + lang + '.json']}},
29
- */
30
- export const ADDITIONAL_I18N_PROVIDER = new InjectionToken('ADDITIONAL_I18N_PROVIDER');
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvdHlwZXMvaW5qZWN0aW9uLXRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQVMsa0JBQWtCLENBQUMsQ0FBQztBQUUvRSxNQUFNLE9BQU8sVUFBVTtJQUF2QjtRQUNJOzs7V0FHRztRQUNILG9CQUFlLEdBQWEsSUFBSSxDQUFDO0lBQ3JDLENBQUM7Q0FBQTtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFhLGFBQWEsQ0FBQyxDQUFDO0FBQ3pFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsMEJBQTBCLENBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEEgY3VzdG9tIGJhc2UgcGF0aCBmb3IgdGhlIGFzc2V0cyBkaXJlY3RvcnkuXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgd2hlbiB0aGUgYXBwbGljYXRpb24gY2Fubm90IGJlIHNlcnZlZCBmcm9tIHRoZSBiYXNlIEhSRUYgc2V0IGluIGluZGV4Lmh0bWwuIFRoaXNcbiAqIGlzIHRoZSBjYXNlIHdoZW4gaXQgaXMgZW1iZWRkZWQgYXMgYSB3ZWIgY29tcG9uZW50IGludG8gYW5vdGhlciB3ZWJzaXRlLlxuICovXG5leHBvcnQgY29uc3QgQVNTRVRTX0JBU0VfUEFUSCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdBU1NFVFNfQkFTRV9QQVRIJyk7XG5cbmV4cG9ydCBjbGFzcyBJMThuQ29uZmlnIHtcbiAgICAvKipcbiAgICAgKiBzaGFsbCB0aGUgdXNlciBwcm9maWxlIGJlIHJlYWRcbiAgICAgKiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byB0cnVlXG4gICAgICovXG4gICAgb2JleVVzZXJQcm9maWxlPzogYm9vbGVhbiA9IHRydWU7XG59XG5cbi8qKlxuICogYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IEkxOE5fQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEkxOG5Db25maWc+KCdJMThOX0NPTkZJRycpO1xuLyoqXG4gKiBjdXN0b20gYWRkaXRpb25hbCB1cmlzIHRvIGZldGNoIGxhbmd1YWdlIGZpbGVzIGZyb21cbiAqXG4gKiBNaWdodCBiZSB1c2VkIGlmIGFkZGl0aW9uYWwgYW5ndWxhciBtb2R1bGVzIHJlcXVpcmUgbGFuZ3VhZ2UgZGF0YVxuICpcbiAqIEV4YW1wbGVcbiAqe3Byb3ZpZGU6IEFERElUSU9OQUxfSTE4Tl9QUk9WSURFUiwgdXNlVmFsdWU6IChsYW5nOiBzdHJpbmcpID0+IHsgcmV0dXJuIFsnL2VkdS1zaGFyaW5nL2Fzc2V0cy9pMThuL215STE4bi8nICsgbGFuZyArICcuanNvbiddfX0sXG4gKi9cbmV4cG9ydCBjb25zdCBBRERJVElPTkFMX0kxOE5fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48KGxhbmc6IHN0cmluZykgPT4gc3RyaW5nW10+KFxuICAgICdBRERJVElPTkFMX0kxOE5fUFJPVklERVInLFxuKTtcbiJdfQ==
@@ -1,11 +0,0 @@
1
- export function matchesShortcutCondition(event, condition) {
2
- return (event.code === condition.keyCode &&
3
- matchesModifiers(event, condition.modifiers) &&
4
- !condition.ignoreWhen?.(event));
5
- }
6
- function matchesModifiers(event, modifiers = []) {
7
- return (modifiers.includes('Alt') === event.altKey &&
8
- modifiers.includes('Shift') === event.shiftKey &&
9
- modifiers.includes('Ctrl/Cmd') === (event.ctrlKey || event.metaKey));
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc2hvcnRjdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi90eXBlcy9rZXlib2FyZC1zaG9ydGN1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxVQUFVLHdCQUF3QixDQUNwQyxLQUFvQixFQUNwQixTQUFvQztJQUVwQyxPQUFPLENBQ0gsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsT0FBTztRQUNoQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUM1QyxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDakMsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEtBQW9CLEVBQUUsWUFBd0IsRUFBRTtJQUN0RSxPQUFPLENBQ0gsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsTUFBTTtRQUMxQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssQ0FBQyxRQUFRO1FBQzlDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDdEUsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBNb2RpZmllciA9ICdDdHJsL0NtZCcgfCAnU2hpZnQnIHwgJ0FsdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Ym9hcmRTaG9ydGN1dENvbmRpdGlvbiB7XG4gICAgbW9kaWZpZXJzPzogTW9kaWZpZXJbXTtcbiAgICBrZXlDb2RlOiBzdHJpbmc7XG4gICAgaWdub3JlV2hlbj86IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgS2V5Ym9hcmRTaG9ydGN1dCBleHRlbmRzIEtleWJvYXJkU2hvcnRjdXRDb25kaXRpb24ge1xuICAgIGNhbGxiYWNrOiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hlc1Nob3J0Y3V0Q29uZGl0aW9uKFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgIGNvbmRpdGlvbjogS2V5Ym9hcmRTaG9ydGN1dENvbmRpdGlvbixcbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIGV2ZW50LmNvZGUgPT09IGNvbmRpdGlvbi5rZXlDb2RlICYmXG4gICAgICAgIG1hdGNoZXNNb2RpZmllcnMoZXZlbnQsIGNvbmRpdGlvbi5tb2RpZmllcnMpICYmXG4gICAgICAgICFjb25kaXRpb24uaWdub3JlV2hlbj8uKGV2ZW50KVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXNNb2RpZmllcnMoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIG1vZGlmaWVyczogTW9kaWZpZXJbXSA9IFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgbW9kaWZpZXJzLmluY2x1ZGVzKCdBbHQnKSA9PT0gZXZlbnQuYWx0S2V5ICYmXG4gICAgICAgIG1vZGlmaWVycy5pbmNsdWRlcygnU2hpZnQnKSA9PT0gZXZlbnQuc2hpZnRLZXkgJiZcbiAgICAgICAgbW9kaWZpZXJzLmluY2x1ZGVzKCdDdHJsL0NtZCcpID09PSAoZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5KVxuICAgICk7XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- /**
2
- * A list item info, which is basically a column
3
- * Example:
4
- this.columns.push(new ListItem(RestConstants.CM_NAME));
5
- this.columns.push(new ListItem(RestConstants.CM_ARCHIVED_DATE));
6
- */
7
- export class ListItem {
8
- constructor(type, name, config = {
9
- showLabel: false,
10
- }) {
11
- this.type = type;
12
- this.name = name;
13
- this.config = config;
14
- /**
15
- * Should this item be shown by default
16
- * @type {boolean}
17
- */
18
- this.visible = true;
19
- }
20
- static getCollectionDefaults() {
21
- let columns = [];
22
- columns.push(new ListItem('COLLECTION', 'title'));
23
- columns.push(new ListItem('COLLECTION', 'info'));
24
- columns.push(new ListItem('COLLECTION', 'scope'));
25
- return columns;
26
- }
27
- }
28
- export class ListItemSort extends ListItem {
29
- constructor(type, name, mode = null, config = {
30
- showLabel: false,
31
- }) {
32
- super(type, name, config);
33
- this.type = type;
34
- this.name = name;
35
- this.mode = mode;
36
- this.config = config;
37
- }
38
- }
39
- export class SortEvent extends ListItemSort {
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi90eXBlcy9saXN0LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQWdCakIsWUFDVyxJQUFrQixFQUNsQixJQUFZLEVBQ1osU0FBUztRQUNaLFNBQVMsRUFBRSxLQUFLO0tBQ25CO1FBSk0sU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osV0FBTSxHQUFOLE1BQU0sQ0FFWjtRQXBCTDs7O1dBR0c7UUFDSSxZQUFPLEdBQUcsSUFBSSxDQUFDO0lBaUJuQixDQUFDO0lBRUosTUFBTSxDQUFDLHFCQUFxQjtRQUN4QixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztDQUNKO0FBQ0QsTUFBTSxPQUFPLFlBQWEsU0FBUSxRQUFRO0lBQ3RDLFlBQ1csSUFBa0IsRUFDbEIsSUFBWSxFQUNaLE9BQTBDLElBQUksRUFDOUMsU0FBUztRQUNaLFNBQVMsRUFBRSxLQUFLO0tBQ25CO1FBRUQsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFQbkIsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBMEM7UUFDOUMsV0FBTSxHQUFOLE1BQU0sQ0FFWjtJQUdMLENBQUM7Q0FDSjtBQUNELE1BQU0sT0FBTyxTQUFVLFNBQVEsWUFBWTtDQUUxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBMaXN0SXRlbVR5cGUgPSAnTk9ERScgfCAnTk9ERV9QUk9QT1NBTCcgfCAnQ09MTEVDVElPTicgfCAnT1JHJyB8ICdHUk9VUCcgfCAnVVNFUic7XG5cbi8qKlxuICogQSBsaXN0IGl0ZW0gaW5mbywgd2hpY2ggaXMgYmFzaWNhbGx5IGEgY29sdW1uXG4gKiBFeGFtcGxlOlxuIHRoaXMuY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbShSZXN0Q29uc3RhbnRzLkNNX05BTUUpKTtcbiB0aGlzLmNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oUmVzdENvbnN0YW50cy5DTV9BUkNISVZFRF9EQVRFKSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0SXRlbSB7XG4gICAgLyoqXG4gICAgICogU2hvdWxkIHRoaXMgaXRlbSBiZSBzaG93biBieSBkZWZhdWx0XG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIHZpc2libGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogTGFiZWwgdG8gZGlzcGxheSwgaWYgc2V0LCBzaG91bGQgYmUgcHJlZmVycmVkIGluc3RlYWQgb2YgYXV0b21hdGljIGkxOG5cbiAgICAgKi9cbiAgICBwdWJsaWMgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIGN1c3RvbSBmb3JtYXQgc3RyaW5nIGZvciBkYXRlIGZpZWxkcywgbWF5IGJlIG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybWF0OiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0eXBlOiBMaXN0SXRlbVR5cGUsXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBjb25maWcgPSB7XG4gICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICkge31cblxuICAgIHN0YXRpYyBnZXRDb2xsZWN0aW9uRGVmYXVsdHMoKSB7XG4gICAgICAgIGxldCBjb2x1bW5zID0gW107XG4gICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ0NPTExFQ1RJT04nLCAndGl0bGUnKSk7XG4gICAgICAgIGNvbHVtbnMucHVzaChuZXcgTGlzdEl0ZW0oJ0NPTExFQ1RJT04nLCAnaW5mbycpKTtcbiAgICAgICAgY29sdW1ucy5wdXNoKG5ldyBMaXN0SXRlbSgnQ09MTEVDVElPTicsICdzY29wZScpKTtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIExpc3RJdGVtU29ydCBleHRlbmRzIExpc3RJdGVtIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHR5cGU6IExpc3RJdGVtVHlwZSxcbiAgICAgICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgICAgICAgcHVibGljIG1vZGU6ICdhc2NlbmRpbmcnIHwgJ2Rlc2NlbmRpbmcnIHwgbnVsbCA9IG51bGwsXG4gICAgICAgIHB1YmxpYyBjb25maWcgPSB7XG4gICAgICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICkge1xuICAgICAgICBzdXBlcih0eXBlLCBuYW1lLCBjb25maWcpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBTb3J0RXZlbnQgZXh0ZW5kcyBMaXN0SXRlbVNvcnQge1xuICAgIGFzY2VuZGluZzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBVSSBlbGVtZW50IHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGNob29zZSBzb3J0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRQYW5lbCB7XG4gICAgYWN0aXZlOiBzdHJpbmc7XG4gICAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uO1xuICAgIHJlYWRvbmx5IHNvcnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTb3J0Pjtcbn1cbiJdfQ==
@@ -1,192 +0,0 @@
1
- export var NodesRightMode;
2
- (function (NodesRightMode) {
3
- // rights on the current node, no matter if its a reference or origianl
4
- NodesRightMode[NodesRightMode["Local"] = 0] = "Local";
5
- // effective rights on the current node, only relevant for collection references (for non-refs, this equals to local)
6
- NodesRightMode[NodesRightMode["Effective"] = 1] = "Effective";
7
- })(NodesRightMode || (NodesRightMode = {}));
8
- export class OptionItem {
9
- /**
10
- *
11
- * @param name the option name, which is used for the translation
12
- * @param icon A material icon name
13
- * @param callback A function callback when this option is chosen. Will get the current node
14
- * passed as an argument. If available, the relevant nodes are passed as second argument,
15
- * i.e., the selection, if any, or the current node as single-item array otherwise.
16
- */
17
- constructor(name, icon,
18
- // TODO: Maybe switch to only providing the second parameter.
19
- callback) {
20
- this.name = name;
21
- this.icon = icon;
22
- this.callback = callback;
23
- /**
24
- * If true, this option will be shown all the time in the node table
25
- * @type {boolean}
26
- */
27
- this.showAlways = false;
28
- /**
29
- * If true, this option will be shown as an action (if room). If none of the items has showAsAction set, the first items will always be shown as action
30
- * @type {boolean}
31
- */
32
- this.showAsAction = false;
33
- /**
34
- * If true, this option will be shown as a toggle on the right side (provide iconToggle as a toggle icon)
35
- * @type {boolean}
36
- */
37
- this.isToggle = false;
38
- /**
39
- * Only when @isToggle. is the toggle currently visible
40
- */
41
- this.isToggleVisible = true;
42
- /**
43
- * Only when @isToggle. Where to place the toggle, before or after all other actions
44
- * @type {boolean}
45
- */
46
- this.togglePosition = 'after';
47
- /**
48
- * If true, shows a line at the top.
49
- *
50
- * This feature is usually handled now by associating an entry to a `group`
51
- * now. However `isSeparate` is kept as fallback for now.
52
- */
53
- this.isSeparate = false;
54
- /**
55
- * The item will be indicated with an accent color in the menu.
56
- *
57
- * Used by the dropdown variant of the main menu to indicate the currently
58
- * active scope.
59
- */
60
- this.isSelected = false;
61
- /**
62
- * If true, only displayed on a mobile device (based on the navigator agent)
63
- * @type {boolean}
64
- */
65
- this.onlyMobile = false;
66
- /**
67
- * custom aria-label
68
- * @type {string}
69
- */
70
- this.ariaLabel = '';
71
- /**
72
- * If true, only displayed on a desktop device (based on the navigator agent)
73
- * @type {boolean}
74
- */
75
- this.onlyDesktop = false;
76
- /**
77
- * Set to false if the action should be shown, but should not be clickable
78
- * @type {boolean}
79
- */
80
- this.isEnabled = true;
81
- /**
82
- * Show the given name (if false, only icon will show)
83
- */
84
- this.showName = true;
85
- /**
86
- * Or concat of supported element types for the action
87
- */
88
- this.elementType = [ElementType.Node];
89
- this.permissionsMode = HideMode.Disable;
90
- this.permissionsRightMode = NodesRightMode.Local;
91
- this.toolpermissionsMode = HideMode.Disable;
92
- }
93
- }
94
- export class CustomOptions {
95
- constructor() {
96
- /**
97
- * If true, all existing or available options for the object stay
98
- * If false, no options will be set, only the options in "addOptions" are used
99
- */
100
- this.useDefaultOptions = true;
101
- }
102
- }
103
- export var HideMode;
104
- (function (HideMode) {
105
- HideMode[HideMode["Disable"] = 0] = "Disable";
106
- HideMode[HideMode["Hide"] = 1] = "Hide";
107
- })(HideMode || (HideMode = {}));
108
- export var Scope;
109
- (function (Scope) {
110
- Scope["Render"] = "Render";
111
- Scope["Search"] = "Search";
112
- Scope["SearchCollections"] = "SearchCollections";
113
- Scope["SavedSearches"] = "SavedSearches";
114
- Scope["CollectionsReferences"] = "CollectionsReferences";
115
- Scope["CollectionsProposals"] = "CollectionsProposals";
116
- Scope["CollectionsCollection"] = "CollectionsCollection";
117
- Scope["WorkspaceList"] = "WorkspaceList";
118
- Scope["WorkspaceTree"] = "WorkspaceTree";
119
- Scope["Sharing"] = "Sharing";
120
- Scope["Oer"] = "Oer";
121
- Scope["UserManagement"] = "UserManagement";
122
- Scope["UserProfile"] = "UserProfile";
123
- Scope["Stream"] = "Stream";
124
- Scope["CreateMenu"] = "CreateMenu";
125
- Scope["MediacenterNodesList"] = "MediacenterNodesList";
126
- Scope["Admin"] = "Admin";
127
- Scope["DebugShowAll"] = "DebugShowAll";
128
- })(Scope || (Scope = {}));
129
- export var ElementType;
130
- (function (ElementType) {
131
- ElementType[ElementType["Node"] = 0] = "Node";
132
- ElementType[ElementType["NodeChild"] = 1] = "NodeChild";
133
- ElementType[ElementType["MapRef"] = 2] = "MapRef";
134
- ElementType[ElementType["NodePublishedCopy"] = 3] = "NodePublishedCopy";
135
- ElementType[ElementType["NodeRevoked"] = 4] = "NodeRevoked";
136
- ElementType[ElementType["NodeBlockedImport"] = 5] = "NodeBlockedImport";
137
- ElementType[ElementType["NodeProposal"] = 6] = "NodeProposal";
138
- ElementType[ElementType["Person"] = 7] = "Person";
139
- ElementType[ElementType["Group"] = 8] = "Group";
140
- ElementType[ElementType["SavedSearch"] = 9] = "SavedSearch";
141
- ElementType[ElementType["Unknown"] = 10] = "Unknown";
142
- })(ElementType || (ElementType = {}));
143
- export class OptionGroup {
144
- /**
145
- * @param id The group identifier. Used to seperate elements based on the group
146
- * @param priority Group with 0 has highest priority, higher values mean lower priority
147
- */
148
- constructor(id, priority) {
149
- this.id = id;
150
- this.priority = priority;
151
- }
152
- }
153
- export class DefaultGroups {
154
- static { this.Primary = new OptionGroup('Primary', 10); }
155
- static { this.Create = new OptionGroup('Create', 15); }
156
- static { this.View = new OptionGroup('View', 20); }
157
- static { this.CreateConnector = new OptionGroup('CreateConnector', 25); }
158
- static { this.CreateLtiTools = new OptionGroup('CreateLtiTools', 28); }
159
- static { this.Reuse = new OptionGroup('Reuse', 30); }
160
- static { this.Edit = new OptionGroup('Edit', 40); }
161
- static { this.FileOperations = new OptionGroup('FileOperations', 50); }
162
- static { this.Delete = new OptionGroup('Delete', 60); }
163
- static { this.Toggles = new OptionGroup('Toggles', 70); }
164
- }
165
- export var Constrain;
166
- (function (Constrain) {
167
- Constrain[Constrain["CollectionReference"] = 0] = "CollectionReference";
168
- Constrain[Constrain["NoCollectionReference"] = 1] = "NoCollectionReference";
169
- Constrain[Constrain["Directory"] = 2] = "Directory";
170
- Constrain[Constrain["Collections"] = 3] = "Collections";
171
- Constrain[Constrain["Files"] = 4] = "Files";
172
- Constrain[Constrain["FilesAndDirectories"] = 5] = "FilesAndDirectories";
173
- Constrain[Constrain["Admin"] = 6] = "Admin";
174
- Constrain[Constrain["AdminOrDebug"] = 7] = "AdminOrDebug";
175
- Constrain[Constrain["NoBulk"] = 8] = "NoBulk";
176
- Constrain[Constrain["NoSelection"] = 9] = "NoSelection";
177
- Constrain[Constrain["ClipboardContent"] = 10] = "ClipboardContent";
178
- Constrain[Constrain["AddObjects"] = 11] = "AddObjects";
179
- Constrain[Constrain["HomeRepository"] = 12] = "HomeRepository";
180
- Constrain[Constrain["User"] = 13] = "User";
181
- Constrain[Constrain["NoScope"] = 14] = "NoScope";
182
- Constrain[Constrain["ReurlMode"] = 15] = "ReurlMode";
183
- Constrain[Constrain["LTIMode"] = 16] = "LTIMode";
184
- })(Constrain || (Constrain = {}));
185
- export var Target;
186
- (function (Target) {
187
- Target[Target["List"] = 0] = "List";
188
- Target[Target["ListDropdown"] = 1] = "ListDropdown";
189
- Target[Target["Actionbar"] = 2] = "Actionbar";
190
- Target[Target["CreateMenu"] = 3] = "CreateMenu";
191
- })(Target || (Target = {}));
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3R5cGVzL29wdGlvbi1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsdUVBQXVFO0lBQ3ZFLHFEQUFLLENBQUE7SUFDTCxxSEFBcUg7SUFDckgsNkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUNELE1BQU0sT0FBTyxVQUFVO0lBb0luQjs7Ozs7OztPQU9HO0lBQ0gsWUFDVyxJQUFZLEVBQ1osSUFBWTtJQUNuQiw2REFBNkQ7SUFDdEQsUUFBaUU7UUFIakUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFFWixhQUFRLEdBQVIsUUFBUSxDQUF5RDtRQS9JNUU7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUI7OztXQUdHO1FBQ0ksbUJBQWMsR0FBdUIsT0FBTyxDQUFDO1FBQ3BEOzs7OztXQUtHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7Ozs7V0FLRztRQUNJLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUI7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCOzs7V0FHRztRQUNJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBWTNCOzs7V0FHRztRQUNJLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFtQ3hCOztXQUVHO1FB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O0FBbEJELFdBQVksU0FBUztJQUNqQix1RUFBbUIsQ0FBQTtJQUNuQiwyRUFBcUIsQ0FBQTtJQUNyQixtREFBUyxDQUFBO0lBQ1QsdURBQVcsQ0FBQTtJQUNYLDJDQUFLLENBQUE7SUFDTCx1RUFBbUIsQ0FBQTtJQUNuQiwyQ0FBSyxDQUFBO0lBQ0wseURBQVksQ0FBQTtJQUNaLDZDQUFNLENBQUE7SUFDTix1REFBVyxDQUFBO0lBQ1gsa0VBQWdCLENBQUE7SUFDaEIsc0RBQVUsQ0FBQTtJQUNWLDhEQUFjLENBQUE7SUFDZCwwQ0FBSSxDQUFBO0lBQ0osZ0RBQU8sQ0FBQTtJQUNQLG9EQUFTLENBQUE7SUFDVCxnREFBTyxDQUFBO0FBQ1gsQ0FBQyxFQWxCVyxTQUFTLEtBQVQsU0FBUyxRQWtCcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQUtYO0FBTEQsV0FBWSxNQUFNO0lBQ2QsbUNBQUksQ0FBQTtJQUNKLG1EQUFZLENBQUE7SUFDWiw2Q0FBUyxDQUFBO0lBQ1QsK0NBQVUsQ0FBQTtBQUNkLENBQUMsRUFMVyxNQUFNLEtBQU4sTUFBTSxRQUtqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBvcHRpb24gZnJvbSB0aGUgYWN0aW9uYmFyK2Ryb3Bkb3duIG1lbnVcbiAqIEV4YW1wbGU6XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJSRVNUT1JFX1NJTkdMRVwiLFwidW5kb1wiLCAobm9kZSkgPT4gdGhpcy5yZXN0b3JlU2luZ2xlKG5vZGUpKSk7XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJERUxFVEVfU0lOR0xFXCIsXCJhcmNoaXZlRGVsZXRlXCIsIChub2RlKSA9PiB0aGlzLmRlbGV0ZVNpbmdsZShub2RlKSkpO1xuXG4gKi9cbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRDb25kaXRpb24gfSBmcm9tICcuLi90eXBlcy9rZXlib2FyZC1zaG9ydGN1dHMnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuXG5leHBvcnQgZW51bSBOb2Rlc1JpZ2h0TW9kZSB7XG4gICAgLy8gcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG5vIG1hdHRlciBpZiBpdHMgYSByZWZlcmVuY2Ugb3Igb3JpZ2lhbmxcbiAgICBMb2NhbCxcbiAgICAvLyBlZmZlY3RpdmUgcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG9ubHkgcmVsZXZhbnQgZm9yIGNvbGxlY3Rpb24gcmVmZXJlbmNlcyAoZm9yIG5vbi1yZWZzLCB0aGlzIGVxdWFscyB0byBsb2NhbClcbiAgICBFZmZlY3RpdmUsXG59XG5leHBvcnQgY2xhc3MgT3B0aW9uSXRlbSB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhbGwgdGhlIHRpbWUgaW4gdGhlIG5vZGUgdGFibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0Fsd2F5cyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoaXMgb3B0aW9uIHdpbGwgYmUgc2hvd24gYXMgYW4gYWN0aW9uIChpZiByb29tKS4gSWYgbm9uZSBvZiB0aGUgaXRlbXMgaGFzIHNob3dBc0FjdGlvbiBzZXQsIHRoZSBmaXJzdCBpdGVtcyB3aWxsIGFsd2F5cyBiZSBzaG93biBhcyBhY3Rpb25cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0FzQWN0aW9uID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhcyBhIHRvZ2dsZSBvbiB0aGUgcmlnaHQgc2lkZSAocHJvdmlkZSBpY29uVG9nZ2xlIGFzIGEgdG9nZ2xlIGljb24pXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIGlzVG9nZ2xlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogT25seSB3aGVuIEBpc1RvZ2dsZS4gaXMgdGhlIHRvZ2dsZSBjdXJyZW50bHkgdmlzaWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1RvZ2dsZVZpc2libGUgPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIE9ubHkgd2hlbiBAaXNUb2dnbGUuIFdoZXJlIHRvIHBsYWNlIHRoZSB0b2dnbGUsIGJlZm9yZSBvciBhZnRlciBhbGwgb3RoZXIgYWN0aW9uc1xuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJztcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBzaG93cyBhIGxpbmUgYXQgdGhlIHRvcC5cbiAgICAgKlxuICAgICAqIFRoaXMgZmVhdHVyZSBpcyB1c3VhbGx5IGhhbmRsZWQgbm93IGJ5IGFzc29jaWF0aW5nIGFuIGVudHJ5IHRvIGEgYGdyb3VwYFxuICAgICAqIG5vdy4gSG93ZXZlciBgaXNTZXBhcmF0ZWAgaXMga2VwdCBhcyBmYWxsYmFjayBmb3Igbm93LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1NlcGFyYXRlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW0gd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhbiBhY2NlbnQgY29sb3IgaW4gdGhlIG1lbnUuXG4gICAgICpcbiAgICAgKiBVc2VkIGJ5IHRoZSBkcm9wZG93biB2YXJpYW50IG9mIHRoZSBtYWluIG1lbnUgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnRseVxuICAgICAqIGFjdGl2ZSBzY29wZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIG9ubHkgZGlzcGxheWVkIG9uIGEgbW9iaWxlIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seU1vYmlsZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIGN1c3RvbSBhcmlhLWxhYmVsXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBwdWJsaWMgYXJpYUxhYmVsID0gJyc7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgb25seSBkaXNwbGF5ZWQgb24gYSBkZXNrdG9wIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seURlc2t0b3AgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBZb3UgY2FuIHNldCBhIG1lZGlhLXF1ZXJ5IHNpbWlsYXIgdG8gQ1NTLCBzZWUgdGhlIE1FRElBX1FVRVJZIGNvbnN0YW50cyBpbiB1aS1jb25zdGFudHNcbiAgICAgKiBVc2UgaW4gY29tYmluYXRpb24gd2l0aCBtZWRpYVF1ZXJ5VmFsdWVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWVkaWFRdWVyeVR5cGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBkZWZpbmVkIG1lZGlhIHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIG1lZGlhUXVlcnlWYWx1ZTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHRvIGZhbHNlIGlmIHRoZSBhY3Rpb24gc2hvdWxkIGJlIHNob3duLCBidXQgc2hvdWxkIG5vdCBiZSBjbGlja2FibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNFbmFibGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBzaG91bGQgYmUgbWFudWFsbHkgbWFya2VkIGFzIHByaW1hcnkgYWN0aW9uIHdoZW4gYWx3YXlzIHZpc2libGUgb24gYW5cbiAgICAgKiBgYWN0aW9uYmFyYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIElzIGhhbmRsZWQgYnkgb3B0aW9uc0hlbHBlciBhbmQgbWF5IG5vdCBiZSB1c2VkIG90aGVyd2lzZVxuICAgICAqIFBsZWFzZSB1c2UgQGN1c3RvbVNob3dDYWxsYmFjayBpbnN0ZWFkXG4gICAgICovXG4gICAgcHVibGljIHNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFybSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbVNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICAgKiBJcyBoYW5kbGVkIGJ5IG9wdGlvbnNIZWxwZXIgYW5kIG1heSBub3QgYmUgdXNlZCBvdGhlcndpc2VcbiAgICAgKiBQbGVhc2UgdXNlIEBjdXN0b21FbmFibGVkQ2FsbGJhY2sgaW5zdGVhZFxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVkQ2FsbGJhY2s6IChub2Rlcz86IE5vZGVbXSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIGNhbGxlZCB3aXRoIHRoZSBub2RlIGFzIHBhcmFtIHdoaWNoIHNob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSBpZiB0aGUgb3B0aW9uIHNob3VsZCBiZSBlbmFibGVkIG9yIG5vdFxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUVuYWJsZWRDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiAgIE9wdGlvbmFsOiBBIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBvcHRpb24gd2hlbiBpdCdzIGN1cnJlbnRseSBkaXNhYmxlZCAoZ3JleWVkIG91dClcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZWRDYWxsYmFjazogKG5vZGU/OiBOb2RlIHwgYW55KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqICAgU2hvdyB0aGUgZ2l2ZW4gbmFtZSAoaWYgZmFsc2UsIG9ubHkgaWNvbiB3aWxsIHNob3cpXG4gICAgICovXG4gICAgcHVibGljIHNob3dOYW1lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIGVsZW1lbnQgd2l0aCAwIGhhcyBoaWdoZXN0IHByaW9yaXR5IGluIGl0J3MgZ3JvdXAsIGhpZ2hlciB2YWx1ZXMgbWVhbiBsb3dlciBwcmlvcml0eVxuICAgICAqL1xuICAgIHB1YmxpYyBwcmlvcml0eTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIHRoZSBncm91cCB0aGlzIG9wdGlvbiBiZWxvbmdzIHRvXG4gICAgICovXG4gICAgcHVibGljIGdyb3VwOiBPcHRpb25Hcm91cDtcblxuICAgIHB1YmxpYyBrZXlib2FyZFNob3J0Y3V0OiBLZXlib2FyZFNob3J0Y3V0Q29uZGl0aW9uO1xuXG4gICAgLyoqXG4gICAgICogT3IgY29uY2F0IG9mIHN1cHBvcnRlZCBlbGVtZW50IHR5cGVzIGZvciB0aGUgYWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIGVsZW1lbnRUeXBlID0gW0VsZW1lbnRUeXBlLk5vZGVdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgcHVibGljIGNvbnN0cmFpbnM6IENvbnN0cmFpbltdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc01vZGUgPSBIaWRlTW9kZS5EaXNhYmxlO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc1JpZ2h0TW9kZSA9IE5vZGVzUmlnaHRNb2RlLkxvY2FsO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnNNb2RlID0gSGlkZU1vZGUuRGlzYWJsZTtcbiAgICBwdWJsaWMgc2NvcGVzOiBTY29wZVtdO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSB0aGUgb3B0aW9uIG5hbWUsIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSB0cmFuc2xhdGlvblxuICAgICAqIEBwYXJhbSBpY29uIEEgbWF0ZXJpYWwgaWNvbiBuYW1lXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIEEgZnVuY3Rpb24gY2FsbGJhY2sgd2hlbiB0aGlzIG9wdGlvbiBpcyBjaG9zZW4uIFdpbGwgZ2V0IHRoZSBjdXJyZW50IG5vZGVcbiAgICAgKiBwYXNzZWQgYXMgYW4gYXJndW1lbnQuIElmIGF2YWlsYWJsZSwgdGhlIHJlbGV2YW50IG5vZGVzIGFyZSBwYXNzZWQgYXMgc2Vjb25kIGFyZ3VtZW50LFxuICAgICAqIGkuZS4sIHRoZSBzZWxlY3Rpb24sIGlmIGFueSwgb3IgdGhlIGN1cnJlbnQgbm9kZSBhcyBzaW5nbGUtaXRlbSBhcnJheSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBpY29uOiBzdHJpbmcsXG4gICAgICAgIC8vIFRPRE86IE1heWJlIHN3aXRjaCB0byBvbmx5IHByb3ZpZGluZyB0aGUgc2Vjb25kIHBhcmFtZXRlci5cbiAgICAgICAgcHVibGljIGNhbGxiYWNrOiAob2JqZWN0PzogTm9kZSB8IGFueSwgb2JqZWN0cz86IChOb2RlIHwgYW55KVtdKSA9PiB2b2lkLFxuICAgICkge31cbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21PcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhbGwgZXhpc3Rpbmcgb3IgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHRoZSBvYmplY3Qgc3RheVxuICAgICAqIElmIGZhbHNlLCBubyBvcHRpb25zIHdpbGwgYmUgc2V0LCBvbmx5IHRoZSBvcHRpb25zIGluIFwiYWRkT3B0aW9uc1wiIGFyZSB1c2VkXG4gICAgICovXG4gICAgcHVibGljIHVzZURlZmF1bHRPcHRpb25zPyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBpZHMgb2Ygb3B0aW9ucyB0byBleHBsaWNpdGx5IHN1cHBvcnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VwcG9ydGVkT3B0aW9ucz86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgaWRzIG9mIG9wdGlvbnMgdG8gZXhwbGljaXRseSByZW1vdmVcbiAgICAgKiBPbmx5IHN1cHBvcnRlZCBpZiBzdXBwb3J0ZWRPcHRpb25zIGlzIGVtcHR5XG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25zIHRvIGFkZC9pbnNlcnQgaW50byB0aGUgbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRPcHRpb25zPzogT3B0aW9uSXRlbVtdO1xufVxuZXhwb3J0IGVudW0gSGlkZU1vZGUge1xuICAgIERpc2FibGUsXG4gICAgSGlkZSxcbn1cbmV4cG9ydCBlbnVtIFNjb3BlIHtcbiAgICBSZW5kZXIgPSAnUmVuZGVyJyxcbiAgICBTZWFyY2ggPSAnU2VhcmNoJyxcbiAgICBTZWFyY2hDb2xsZWN0aW9ucyA9ICdTZWFyY2hDb2xsZWN0aW9ucycsXG4gICAgU2F2ZWRTZWFyY2hlcyA9ICdTYXZlZFNlYXJjaGVzJyxcbiAgICBDb2xsZWN0aW9uc1JlZmVyZW5jZXMgPSAnQ29sbGVjdGlvbnNSZWZlcmVuY2VzJyxcbiAgICBDb2xsZWN0aW9uc1Byb3Bvc2FscyA9ICdDb2xsZWN0aW9uc1Byb3Bvc2FscycsXG4gICAgQ29sbGVjdGlvbnNDb2xsZWN0aW9uID0gJ0NvbGxlY3Rpb25zQ29sbGVjdGlvbicsXG4gICAgV29ya3NwYWNlTGlzdCA9ICdXb3Jrc3BhY2VMaXN0JyxcbiAgICBXb3Jrc3BhY2VUcmVlID0gJ1dvcmtzcGFjZVRyZWUnLFxuICAgIFNoYXJpbmcgPSAnU2hhcmluZycsXG4gICAgT2VyID0gJ09lcicsXG4gICAgVXNlck1hbmFnZW1lbnQgPSAnVXNlck1hbmFnZW1lbnQnLFxuICAgIFVzZXJQcm9maWxlID0gJ1VzZXJQcm9maWxlJyxcbiAgICBTdHJlYW0gPSAnU3RyZWFtJyxcbiAgICBDcmVhdGVNZW51ID0gJ0NyZWF0ZU1lbnUnLFxuXG4gICAgTWVkaWFjZW50ZXJOb2Rlc0xpc3QgPSAnTWVkaWFjZW50ZXJOb2Rlc0xpc3QnLFxuICAgIEFkbWluID0gJ0FkbWluJywgLy8gQWRtaW4gVG9vbHMgLyBEZWJ1Z2dpbmdcbiAgICBEZWJ1Z1Nob3dBbGwgPSAnRGVidWdTaG93QWxsJywgLy8gRnVsbCBkZWJ1ZyBtb2RlIHdoaWNoIGVuYWJsZXMgYWxsIG9wdGlvbnNcbn1cbmV4cG9ydCBlbnVtIEVsZW1lbnRUeXBlIHtcbiAgICBOb2RlLFxuICAgIE5vZGVDaGlsZCwgLy8gQ2hpbGQgb2JqZWN0XG4gICAgTWFwUmVmLCAvLyBNYXAgcmVmIChsaW5rIHRvIGFub3RoZXIgbWFwKVxuICAgIE5vZGVQdWJsaXNoZWRDb3B5LFxuICAgIE5vZGVSZXZva2VkLCAvLyByZXZva2VkIGNvcHkgLyByZXZva2VkIHB1Ymxpc2hlZCBub2RlXG4gICAgTm9kZUJsb2NrZWRJbXBvcnQsIC8vIG5vZGUgd2l0aCBwcm9wZXJ0eSBjY206aW1wb3J0YmxvY2tlZCA9PSB0cnVlXG4gICAgTm9kZVByb3Bvc2FsLCAvLyBub2RlIHByb3Bvc2FsIGZvciBhIGNvbGxlY3Rpb25cbiAgICBQZXJzb24sXG4gICAgR3JvdXAsXG4gICAgU2F2ZWRTZWFyY2gsXG4gICAgVW5rbm93bixcbn1cbmV4cG9ydCBjbGFzcyBPcHRpb25Hcm91cCB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGlkIFRoZSBncm91cCBpZGVudGlmaWVyLiBVc2VkIHRvIHNlcGVyYXRlIGVsZW1lbnRzIGJhc2VkIG9uIHRoZSBncm91cFxuICAgICAqIEBwYXJhbSBwcmlvcml0eSBHcm91cCB3aXRoIDAgaGFzIGhpZ2hlc3QgcHJpb3JpdHksIGhpZ2hlciB2YWx1ZXMgbWVhbiBsb3dlciBwcmlvcml0eVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBpZDogc3RyaW5nLCBwdWJsaWMgcHJpb3JpdHk6IG51bWJlcikge31cbn1cbmV4cG9ydCBjbGFzcyBEZWZhdWx0R3JvdXBzIHtcbiAgICBzdGF0aWMgUHJpbWFyeSA9IG5ldyBPcHRpb25Hcm91cCgnUHJpbWFyeScsIDEwKTtcbiAgICBzdGF0aWMgQ3JlYXRlID0gbmV3IE9wdGlvbkdyb3VwKCdDcmVhdGUnLCAxNSk7XG4gICAgc3RhdGljIFZpZXcgPSBuZXcgT3B0aW9uR3JvdXAoJ1ZpZXcnLCAyMCk7XG4gICAgc3RhdGljIENyZWF0ZUNvbm5lY3RvciA9IG5ldyBPcHRpb25Hcm91cCgnQ3JlYXRlQ29ubmVjdG9yJywgMjUpO1xuICAgIHN0YXRpYyBDcmVhdGVMdGlUb29scyA9IG5ldyBPcHRpb25Hcm91cCgnQ3JlYXRlTHRpVG9vbHMnLCAyOCk7XG4gICAgc3RhdGljIFJldXNlID0gbmV3IE9wdGlvbkdyb3VwKCdSZXVzZScsIDMwKTtcbiAgICBzdGF0aWMgRWRpdCA9IG5ldyBPcHRpb25Hcm91cCgnRWRpdCcsIDQwKTtcbiAgICBzdGF0aWMgRmlsZU9wZXJhdGlvbnMgPSBuZXcgT3B0aW9uR3JvdXAoJ0ZpbGVPcGVyYXRpb25zJywgNTApO1xuICAgIHN0YXRpYyBEZWxldGUgPSBuZXcgT3B0aW9uR3JvdXAoJ0RlbGV0ZScsIDYwKTtcbiAgICBzdGF0aWMgVG9nZ2xlcyA9IG5ldyBPcHRpb25Hcm91cCgnVG9nZ2xlcycsIDcwKTtcbn1cbmV4cG9ydCBlbnVtIENvbnN0cmFpbiB7XG4gICAgQ29sbGVjdGlvblJlZmVyZW5jZSwgLy8gb3B0aW9uIGlzIG9ubHkgdmlzaWJsZSBmb3IgY29sbGVjdGlvbiByZWZlcmVuY2VzXG4gICAgTm9Db2xsZWN0aW9uUmVmZXJlbmNlLCAvLyBvcHRpb24gaXMgb25seSB2aXNpYmxlIGZvciBub24tY29sbGVjdGlvbiByZWZlcmVuY2VzXG4gICAgRGlyZWN0b3J5LCAvLyBvbmx5IHZpc2libGUgZm9yIGRpcmVjdG9yaWVzIChjY206bWFwKVxuICAgIENvbGxlY3Rpb25zLCAvLyBvbmx5IHZpc2libGUgZm9yIGNvbGxlY3Rpb25zXG4gICAgRmlsZXMsIC8vIG9ubHkgdmlzaWJsZSBmb3IgZmlsZXMgKGNjbTppbylcbiAgICBGaWxlc0FuZERpcmVjdG9yaWVzLCAvLyBvbmx5IHZpc2libGUgZm9yIGZpbGVzIGFuZCBkaXJlY3RvcmllcyAoY2NtOmlvIC8gY2NtOm1hcCkgLSBubyBjb2xsZWN0aW9ucyFcbiAgICBBZG1pbiwgLy8gb25seSB2aXNpYmxlIGlmIHVzZXIgaXMgYWRtaW4gb3IgZXNEZWJ1ZyBpcyBlbmFibGVkIG9uIHdpbmRvdyBjb21wb25lbnRcbiAgICBBZG1pbk9yRGVidWcsIC8vIG9ubHkgdmlzaWJsZSBpZiB1c2VyIGlzIGFkbWluIG9yIGVzRGVidWcgaXMgZW5hYmxlZCBvbiB3aW5kb3cgY29tcG9uZW50XG4gICAgTm9CdWxrLCAvLyBObyBzdXBwb3J0IGZvciBidWxrIChtdWx0aXBsZSBvYmplY3RzKVxuICAgIE5vU2VsZWN0aW9uLCAvLyBPbmx5IHZpc2libGUgd2hlbiBjdXJyZW50bHkgbm8gZWxlbWVudCBpcyBzZWxlY3RlZFxuICAgIENsaXBib2FyZENvbnRlbnQsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIHRoZSBjbGlwYm9hcmQgaGFzIGNvbnRlbnRcbiAgICBBZGRPYmplY3RzLCAvLyBPbmx5IHZpc2libGUgd2hlbiBpdCBpcyBwb3NzaWJsZSB0byBhZGQgb2JqZWN0cyBpbnRvIHRoZSBjdXJyZW50IGxpc3RcbiAgICBIb21lUmVwb3NpdG9yeSwgLy8gT25seSB2aXNpYmxlIHdoZW4gdGhlIG5vZGVzIGFyZSBmcm9tIHRoZSBsb2NhbCAoaG9tZSkgcmVwb3NpdG9yeVxuICAgIFVzZXIsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGEgdXNlciBpcyBwcmVzZW50IGFuZCBsb2dnZWQgaW5cbiAgICBOb1Njb3BlLCAvLyBPbmx5IHZpc2libGUgd2hlbiBubyBjdXJyZW50IHNjb3BlIChpLmUgXCJzYWZlXCIgc2NvcGUpIGlzIHNldFxuICAgIFJldXJsTW9kZSwgLy8gT25seSB2aXNpYmxlIHdoZW4gYSByZXVybCBpcyBwcmVzZW50IChjYWxsZWQgdG8gcGljayBvYmplY3QgZnJvbSBsbXMpXG4gICAgTFRJTW9kZSwgLy8gT25seSB2aXNpYmxlIHdoZW4gYSBsdGkgc2Vzc2lvbiBpcyBwcmVzZW50IChjYWxsZWQgdG8gcGljayBvYmplY3QgZnJvbSBsdGkgcGxhdGZvcm0pXG59XG5cbmV4cG9ydCBlbnVtIFRhcmdldCB7XG4gICAgTGlzdCwgLy8gVGFyZ2V0IGlzIHRoZSBMaXN0VGFibGVDb21wb25lbnRcbiAgICBMaXN0RHJvcGRvd24sXG4gICAgQWN0aW9uYmFyLFxuICAgIENyZWF0ZU1lbnUsXG59XG4iXX0=